From eb2bc4fd09dbce05a7431c80ba243b0fdcf5b9f8 Mon Sep 17 00:00:00 2001 From: cawtds Date: Sat, 4 May 2024 13:33:20 +0200 Subject: [PATCH] new pokemon, updated species_info and learnsets --- build.log | 3377 +++ graphics/pokemon/annihilape/icon.png | Bin 475 -> 866 bytes graphics/pokemon/arboliva/back.png | Bin 885 -> 629 bytes graphics/pokemon/arboliva/front.png | Bin 908 -> 1058 bytes graphics/pokemon/arboliva/icon.png | Bin 512 -> 871 bytes graphics/pokemon/arboliva/normal.pal | 32 +- graphics/pokemon/arboliva/shiny.pal | 32 +- graphics/pokemon/arcanine/hisuian/icon.png | Bin 427 -> 433 bytes graphics/pokemon/archaludon/back.png | Bin 0 -> 609 bytes graphics/pokemon/archaludon/front.png | Bin 0 -> 1210 bytes graphics/pokemon/archaludon/icon.png | Bin 0 -> 609 bytes graphics/pokemon/archaludon/normal.pal | 19 + graphics/pokemon/archaludon/shiny.pal | 19 + graphics/pokemon/arctibax/icon.png | Bin 408 -> 746 bytes graphics/pokemon/armarouge/icon.png | Bin 476 -> 872 bytes graphics/pokemon/basculegion/female/icon.png | Bin 474 -> 455 bytes graphics/pokemon/basculegion/icon.png | Bin 509 -> 465 bytes .../pokemon/basculin/white_striped/icon.png | Bin 376 -> 341 bytes graphics/pokemon/baxcalibur/icon.png | Bin 501 -> 848 bytes graphics/pokemon/bellibolt/icon.png | Bin 326 -> 713 bytes graphics/pokemon/bombirdier/icon.png | Bin 454 -> 743 bytes graphics/pokemon/brambleghast/icon.png | Bin 350 -> 760 bytes graphics/pokemon/bramblin/icon.png | Bin 323 -> 706 bytes graphics/pokemon/braviary/hisuian/icon.png | Bin 484 -> 428 bytes graphics/pokemon/brute_bonnet/back.png | Bin 664 -> 692 bytes graphics/pokemon/brute_bonnet/front.png | Bin 939 -> 891 bytes graphics/pokemon/brute_bonnet/icon.png | Bin 449 -> 793 bytes graphics/pokemon/brute_bonnet/normal.pal | 32 +- graphics/pokemon/brute_bonnet/shiny.pal | 32 +- graphics/pokemon/capsakid/icon.png | Bin 334 -> 703 bytes graphics/pokemon/ceruledge/icon.png | Bin 458 -> 853 bytes graphics/pokemon/cetitan/icon.png | Bin 456 -> 865 bytes graphics/pokemon/cetoddle/icon.png | Bin 327 -> 725 bytes graphics/pokemon/charcadet/back.png | Bin 559 -> 625 bytes graphics/pokemon/charcadet/front.png | Bin 548 -> 581 bytes graphics/pokemon/charcadet/icon.png | Bin 319 -> 700 bytes graphics/pokemon/charcadet/normal.pal | 32 +- graphics/pokemon/charcadet/shiny.pal | 32 +- graphics/pokemon/chi_yu/back.png | Bin 597 -> 562 bytes graphics/pokemon/chi_yu/front.png | Bin 586 -> 705 bytes graphics/pokemon/chi_yu/icon.png | Bin 388 -> 801 bytes graphics/pokemon/chi_yu/normal.pal | 32 +- graphics/pokemon/chi_yu/shiny.pal | 32 +- graphics/pokemon/chien_pao/back.png | Bin 787 -> 780 bytes graphics/pokemon/chien_pao/front.png | Bin 1024 -> 942 bytes graphics/pokemon/chien_pao/icon.png | Bin 463 -> 838 bytes graphics/pokemon/chien_pao/normal.pal | 32 +- graphics/pokemon/chien_pao/shiny.pal | 32 +- graphics/pokemon/clodsire/icon.png | Bin 361 -> 751 bytes graphics/pokemon/crocalor/icon.png | Bin 375 -> 789 bytes graphics/pokemon/cyclizar/icon.png | Bin 390 -> 694 bytes graphics/pokemon/dachsbun/icon.png | Bin 413 -> 759 bytes graphics/pokemon/decidueye/hisuian/icon.png | Bin 410 -> 364 bytes graphics/pokemon/dipplin/icon.png | Bin 310 -> 727 bytes graphics/pokemon/dolliv/back.png | Bin 601 -> 693 bytes graphics/pokemon/dolliv/front.png | Bin 601 -> 640 bytes graphics/pokemon/dolliv/icon.png | Bin 343 -> 789 bytes graphics/pokemon/dolliv/normal.pal | 28 +- graphics/pokemon/dolliv/shiny.pal | 28 +- graphics/pokemon/dondozo/icon.png | Bin 468 -> 898 bytes graphics/pokemon/dudunsparce/icon.png | Bin 423 -> 836 bytes graphics/pokemon/eevee/partner/icon.png | Bin 0 -> 362 bytes graphics/pokemon/eevee/partner/iconf.png | Bin 0 -> 362 bytes graphics/pokemon/electrode/hisuian/icon.png | Bin 277 -> 269 bytes graphics/pokemon/enamorus/icon.png | Bin 480 -> 485 bytes graphics/pokemon/enamorus/therian/icon.png | Bin 488 -> 481 bytes graphics/pokemon/espathra/icon.png | Bin 466 -> 852 bytes graphics/pokemon/farigiraf/icon.png | Bin 1269 -> 807 bytes graphics/pokemon/fezandipiti/icon.png | Bin 395 -> 860 bytes graphics/pokemon/fidough/icon.png | Bin 355 -> 717 bytes graphics/pokemon/finizen/icon.png | Bin 337 -> 734 bytes graphics/pokemon/flamigo/icon.png | Bin 419 -> 712 bytes graphics/pokemon/flittle/icon.png | Bin 322 -> 695 bytes graphics/pokemon/floragato/icon.png | Bin 381 -> 757 bytes graphics/pokemon/flutter_mane/back.png | Bin 809 -> 911 bytes graphics/pokemon/flutter_mane/front.png | Bin 894 -> 743 bytes graphics/pokemon/flutter_mane/icon.png | Bin 403 -> 789 bytes graphics/pokemon/flutter_mane/normal.pal | 32 +- graphics/pokemon/flutter_mane/shiny.pal | 32 +- graphics/pokemon/frigibax/icon.png | Bin 325 -> 686 bytes graphics/pokemon/fuecoco/icon.png | Bin 309 -> 699 bytes graphics/pokemon/garganacl/icon.png | Bin 455 -> 877 bytes graphics/pokemon/gholdengo/icon.png | Bin 413 -> 802 bytes .../pokemon/ghost/front.png:Zone.Identifier | 3 - graphics/pokemon/gimmighoul/icon.png | Bin 416 -> 788 bytes graphics/pokemon/gimmighoul/roaming/icon.png | Bin 324 -> 670 bytes graphics/pokemon/glimmet/icon.png | Bin 312 -> 645 bytes graphics/pokemon/glimmora/icon.png | Bin 518 -> 694 bytes graphics/pokemon/goodra/hisuian/icon.png | Bin 509 -> 475 bytes graphics/pokemon/gouging_fire/back.png | Bin 0 -> 804 bytes graphics/pokemon/gouging_fire/front.png | Bin 0 -> 1159 bytes graphics/pokemon/gouging_fire/icon.png | Bin 0 -> 551 bytes graphics/pokemon/gouging_fire/normal.pal | 19 + graphics/pokemon/gouging_fire/shiny.pal | 19 + graphics/pokemon/grafaiai/icon.png | Bin 461 -> 861 bytes graphics/pokemon/great_tusk/icon.png | Bin 533 -> 977 bytes graphics/pokemon/greavard/icon.png | Bin 364 -> 728 bytes graphics/pokemon/growlithe/hisuian/icon.png | Bin 327 -> 331 bytes graphics/pokemon/houndstone/icon.png | Bin 537 -> 874 bytes graphics/pokemon/hydrapple/back.png | Bin 0 -> 829 bytes graphics/pokemon/hydrapple/front.png | Bin 0 -> 1159 bytes graphics/pokemon/hydrapple/icon.png | Bin 0 -> 476 bytes graphics/pokemon/hydrapple/normal.pal | 19 + graphics/pokemon/hydrapple/shiny.pal | 19 + graphics/pokemon/iron_boulder/back.png | Bin 0 -> 674 bytes graphics/pokemon/iron_boulder/front.png | Bin 0 -> 1041 bytes graphics/pokemon/iron_boulder/icon.png | Bin 0 -> 503 bytes graphics/pokemon/iron_boulder/normal.pal | 19 + graphics/pokemon/iron_boulder/shiny.pal | 19 + graphics/pokemon/iron_bundle/back.png | Bin 641 -> 637 bytes graphics/pokemon/iron_bundle/front.png | Bin 794 -> 706 bytes graphics/pokemon/iron_bundle/icon.png | Bin 384 -> 750 bytes graphics/pokemon/iron_bundle/normal.pal | 30 +- graphics/pokemon/iron_bundle/shiny.pal | 30 +- graphics/pokemon/iron_crown/back.png | Bin 0 -> 765 bytes graphics/pokemon/iron_crown/front.png | Bin 0 -> 930 bytes graphics/pokemon/iron_crown/icon.png | Bin 0 -> 461 bytes graphics/pokemon/iron_crown/normal.pal | 19 + graphics/pokemon/iron_crown/shiny.pal | 19 + graphics/pokemon/iron_hands/icon.png | Bin 465 -> 918 bytes graphics/pokemon/iron_jugulis/icon.png | Bin 519 -> 907 bytes graphics/pokemon/iron_leaves/icon.png | Bin 363 -> 769 bytes graphics/pokemon/iron_moth/icon.png | Bin 530 -> 874 bytes graphics/pokemon/iron_thorns/icon.png | Bin 427 -> 871 bytes graphics/pokemon/iron_treads/icon.png | Bin 449 -> 895 bytes graphics/pokemon/iron_valiant/icon.png | Bin 428 -> 909 bytes graphics/pokemon/kilowattrel/icon.png | Bin 413 -> 789 bytes graphics/pokemon/kingambit/icon.png | Bin 514 -> 885 bytes graphics/pokemon/klawf/icon.png | Bin 401 -> 769 bytes graphics/pokemon/kleavor/icon.png | Bin 563 -> 427 bytes graphics/pokemon/koraidon/icon.png | Bin 479 -> 973 bytes graphics/pokemon/lechonk/icon.png | Bin 303 -> 724 bytes graphics/pokemon/lilligant/hisuian/icon.png | Bin 414 -> 368 bytes graphics/pokemon/lokix/icon.png | Bin 543 -> 796 bytes graphics/pokemon/mabosstiff/back.png | Bin 592 -> 598 bytes graphics/pokemon/mabosstiff/front.png | Bin 946 -> 867 bytes graphics/pokemon/mabosstiff/icon.png | Bin 446 -> 806 bytes graphics/pokemon/mabosstiff/normal.pal | 30 +- graphics/pokemon/mabosstiff/shiny.pal | 30 +- graphics/pokemon/maschiff/icon.png | Bin 375 -> 733 bytes graphics/pokemon/maushold/four/icon.png | Bin 373 -> 796 bytes graphics/pokemon/maushold/icon.png | Bin 424 -> 799 bytes graphics/pokemon/meowscarada/icon.png | Bin 494 -> 799 bytes graphics/pokemon/miraidon/icon.png | Bin 542 -> 882 bytes graphics/pokemon/munkidori/icon.png | Bin 337 -> 709 bytes graphics/pokemon/nacli/icon.png | Bin 325 -> 697 bytes graphics/pokemon/naclstack/icon.png | Bin 365 -> 770 bytes graphics/pokemon/nymble/icon.png | Bin 308 -> 700 bytes graphics/pokemon/ogerpon/cornerstone/icon.png | Bin 0 -> 816 bytes .../pokemon/ogerpon/cornerstone/shiny.pal | 18 + graphics/pokemon/ogerpon/hearthflame/icon.png | Bin 0 -> 825 bytes .../pokemon/ogerpon/hearthflame/shiny.pal | 19 + graphics/pokemon/ogerpon/icon.png | Bin 364 -> 818 bytes graphics/pokemon/ogerpon/normal.pal | 2 +- graphics/pokemon/ogerpon/shiny.pal | 18 + graphics/pokemon/ogerpon/wellspring/icon.png | Bin 0 -> 816 bytes graphics/pokemon/ogerpon/wellspring/shiny.pal | 19 + graphics/pokemon/oinkologne/female/icon.png | Bin 466 -> 829 bytes .../pokemon/oinkologne/female/iconTODO.png | Bin 916 -> 0 bytes graphics/pokemon/oinkologne/icon.png | Bin 466 -> 789 bytes graphics/pokemon/okidogi/icon.png | Bin 442 -> 814 bytes graphics/pokemon/orthworm/icon.png | Bin 459 -> 828 bytes graphics/pokemon/overqwil/icon.png | Bin 514 -> 464 bytes graphics/pokemon/palafin/hero/icon.png | Bin 501 -> 848 bytes graphics/pokemon/palafin/icon.png | Bin 401 -> 738 bytes graphics/pokemon/pawmi/icon.png | Bin 345 -> 728 bytes graphics/pokemon/pawmo/icon.png | Bin 400 -> 744 bytes graphics/pokemon/pawmot/icon.png | Bin 456 -> 775 bytes graphics/pokemon/pecharunt/back.png | Bin 0 -> 588 bytes graphics/pokemon/pecharunt/front.png | Bin 0 -> 771 bytes graphics/pokemon/pecharunt/icon.png | Bin 0 -> 534 bytes graphics/pokemon/pecharunt/normal.pal | 19 + graphics/pokemon/pecharunt/shiny.pal | 19 + graphics/pokemon/pikachu/partner/icon.png | Bin 0 -> 388 bytes graphics/pokemon/pikachu/partner/iconf.png | Bin 0 -> 391 bytes graphics/pokemon/poltchageist/icon.png | Bin 340 -> 786 bytes graphics/pokemon/quaquaval/icon.png | Bin 518 -> 867 bytes graphics/pokemon/quaxly/icon.png | Bin 296 -> 725 bytes graphics/pokemon/quaxwell/icon.png | Bin 398 -> 743 bytes graphics/pokemon/qwilfish/hisuian/icon.png | Bin 365 -> 352 bytes graphics/pokemon/rabsca/icon.png | Bin 515 -> 848 bytes graphics/pokemon/raging_bolt/back.png | Bin 0 -> 840 bytes graphics/pokemon/raging_bolt/front.png | Bin 0 -> 1232 bytes graphics/pokemon/raging_bolt/icon.png | Bin 0 -> 516 bytes graphics/pokemon/raging_bolt/normal.pal | 19 + graphics/pokemon/raging_bolt/shiny.pal | 19 + graphics/pokemon/rellor/icon.png | Bin 343 -> 776 bytes graphics/pokemon/revavroom/icon.png | Bin 476 -> 800 bytes graphics/pokemon/roaring_moon/icon.png | Bin 571 -> 936 bytes graphics/pokemon/samurott/hisuian/icon.png | Bin 503 -> 427 bytes graphics/pokemon/sandy_shocks/back.png | Bin 687 -> 942 bytes graphics/pokemon/sandy_shocks/front.png | Bin 973 -> 1135 bytes graphics/pokemon/sandy_shocks/icon.png | Bin 546 -> 823 bytes graphics/pokemon/sandy_shocks/normal.pal | 32 +- graphics/pokemon/sandy_shocks/shiny.pal | 32 +- graphics/pokemon/scovillain/icon.png | Bin 1269 -> 807 bytes graphics/pokemon/scream_tail/back.png | Bin 606 -> 610 bytes graphics/pokemon/scream_tail/front.png | Bin 915 -> 687 bytes graphics/pokemon/scream_tail/icon.png | Bin 411 -> 766 bytes graphics/pokemon/scream_tail/normal.pal | 33 +- graphics/pokemon/scream_tail/shiny.pal | 33 +- graphics/pokemon/shroodle/icon.png | Bin 325 -> 676 bytes graphics/pokemon/sinistcha/icon.png | Bin 339 -> 715 bytes graphics/pokemon/skeledirge/back.png | Bin 686 -> 820 bytes graphics/pokemon/skeledirge/front.png | Bin 957 -> 943 bytes graphics/pokemon/skeledirge/icon.png | Bin 504 -> 904 bytes graphics/pokemon/skeledirge/normal.pal | 26 +- graphics/pokemon/skeledirge/shiny.pal | 28 +- graphics/pokemon/sliggoo/hisuian/icon.png | Bin 392 -> 352 bytes graphics/pokemon/slither_wing/back.png | Bin 878 -> 753 bytes graphics/pokemon/slither_wing/front.png | Bin 1064 -> 837 bytes graphics/pokemon/slither_wing/icon.png | Bin 454 -> 855 bytes graphics/pokemon/slither_wing/normal.pal | 32 +- graphics/pokemon/slither_wing/shiny.pal | 32 +- graphics/pokemon/smoliv/icon.png | Bin 307 -> 652 bytes graphics/pokemon/sneasel/hisuian/icon.png | Bin 332 -> 331 bytes graphics/pokemon/sneasler/icon.png | Bin 478 -> 420 bytes graphics/pokemon/spidops/icon.png | Bin 487 -> 774 bytes graphics/pokemon/sprigatito/icon.png | Bin 317 -> 693 bytes .../squawkabilly/blue_plumage/icon.png | Bin 384 -> 719 bytes .../squawkabilly/green_plumage/icon.png | Bin 384 -> 0 bytes graphics/pokemon/squawkabilly/icon.png | Bin 0 -> 764 bytes .../{green_plumage => }/normal.pal | 0 .../{green_plumage => }/shiny.pal | 0 .../squawkabilly/white_plumage/icon.png | Bin 380 -> 715 bytes .../squawkabilly/yellow_plumage/icon.png | Bin 383 -> 727 bytes graphics/pokemon/tadbulb/icon.png | Bin 369 -> 636 bytes graphics/pokemon/tandemaus/icon.png | Bin 433 -> 762 bytes graphics/pokemon/tarountula/icon.png | Bin 412 -> 732 bytes .../pokemon/tatsugiri/{curly => }/back.png | Bin graphics/pokemon/tatsugiri/curly/icon.png | Bin 334 -> 0 bytes graphics/pokemon/tatsugiri/droopy/icon.png | Bin 317 -> 667 bytes .../pokemon/tatsugiri/{curly => }/front.png | Bin graphics/pokemon/tatsugiri/icon.png | Bin 0 -> 669 bytes .../pokemon/tatsugiri/{curly => }/normal.pal | 0 .../pokemon/tatsugiri/{curly => }/shiny.pal | 0 graphics/pokemon/tatsugiri/stretchy/icon.png | Bin 316 -> 691 bytes .../tauros/paldean_aqua_breed/icon.png | Bin 389 -> 822 bytes .../tauros/paldean_blaze_breed/icon.png | Bin 391 -> 837 bytes .../tauros/paldean_combat_breed/icon.png | Bin 369 -> 780 bytes graphics/pokemon/terapagos/icon.png | Bin 0 -> 423 bytes graphics/pokemon/terapagos/stellar/icon.png | Bin 0 -> 582 bytes graphics/pokemon/terapagos/terastal/icon.png | Bin 0 -> 485 bytes graphics/pokemon/ting_lu/icon.png | Bin 504 -> 889 bytes graphics/pokemon/tinkatink/back.png | Bin 520 -> 535 bytes graphics/pokemon/tinkatink/front.png | Bin 535 -> 544 bytes graphics/pokemon/tinkatink/icon.png | Bin 318 -> 690 bytes graphics/pokemon/tinkatink/normal.pal | 32 +- graphics/pokemon/tinkatink/shiny.pal | 32 +- graphics/pokemon/tinkaton/back.png | Bin 777 -> 838 bytes graphics/pokemon/tinkaton/front.png | Bin 1047 -> 1061 bytes graphics/pokemon/tinkaton/icon.png | Bin 681 -> 931 bytes graphics/pokemon/tinkaton/normal.pal | 32 +- graphics/pokemon/tinkaton/shiny.pal | 32 +- graphics/pokemon/tinkatuff/back.png | Bin 693 -> 514 bytes graphics/pokemon/tinkatuff/front.png | Bin 650 -> 771 bytes graphics/pokemon/tinkatuff/icon.png | Bin 491 -> 709 bytes graphics/pokemon/tinkatuff/normal.pal | 30 +- graphics/pokemon/tinkatuff/shiny.pal | 30 +- graphics/pokemon/toedscool/icon.png | Bin 405 -> 687 bytes graphics/pokemon/toedscruel/icon.png | Bin 513 -> 742 bytes graphics/pokemon/typhlosion/hisuian/icon.png | Bin 438 -> 382 bytes graphics/pokemon/ursaluna/bloodmoon/icon.png | Bin 0 -> 917 bytes graphics/pokemon/ursaluna/icon.png | Bin 420 -> 388 bytes graphics/pokemon/varoom/icon.png | Bin 416 -> 719 bytes graphics/pokemon/veluza/icon.png | Bin 549 -> 777 bytes graphics/pokemon/voltorb/hisuian/icon.png | Bin 254 -> 246 bytes graphics/pokemon/walking_wake/icon.png | Bin 427 -> 918 bytes graphics/pokemon/wattrel/icon.png | Bin 378 -> 671 bytes graphics/pokemon/wiglett/icon.png | Bin 399 -> 647 bytes graphics/pokemon/wo_chien/icon.png | Bin 593 -> 998 bytes .../pokemon/wooper/wooper_paldean/icon.png | Bin 0 -> 297 bytes graphics/pokemon/wugtrio/icon.png | Bin 527 -> 810 bytes graphics/pokemon/wyrdeer/icon.png | Bin 395 -> 409 bytes graphics/pokemon/zoroark/hisuian/icon.png | Bin 634 -> 512 bytes graphics/pokemon/zorua/hisuian/icon.png | Bin 431 -> 365 bytes include/config/pokemon.h | 16 + include/config/species_enabled.h | 9 + include/constants/cries.h | 26 +- include/constants/pokedex.h | 30 +- include/pokemon.h | 7 +- src/data/graphics/pokemon.h | 2178 +- src/data/pokemon/form_species_tables.h | 414 + src/data/pokemon/level_up_learnsets/gen_1.h | 19852 ++++++++++++++ src/data/pokemon/level_up_learnsets/gen_2.h | 20096 ++++++++++++++ src/data/pokemon/level_up_learnsets/gen_3.h | 20322 ++++++++++++++ src/data/pokemon/level_up_learnsets/gen_4.h | 21596 +++++++++++++++ src/data/pokemon/level_up_learnsets/gen_5.h | 22119 +++++++++++++++ src/data/pokemon/level_up_learnsets/gen_6.h | 22769 ++++++++++++++++ .../gen_7.h} | 899 +- src/data/pokemon/level_up_learnsets/gen_8.h | 22703 +++++++++++++++ src/data/pokemon/level_up_learnsets/gen_9.h | 22476 +++++++++++++++ src/data/pokemon/pokedex_text.h | 5 - src/data/pokemon/pokedex_text_fr.h | 2720 -- src/data/pokemon/pokedex_text_lg.h | 2711 -- src/data/pokemon/species_info.h | 294 +- .../{gen_1.h => gen_1_families.h} | 10236 ++++--- .../{gen_2.h => gen_2_families.h} | 3803 +-- .../{gen_3.h => gen_3_families.h} | 5743 ++-- .../{gen_4.h => gen_4_families.h} | 3714 ++- .../{gen_5.h => gen_5_families.h} | 5759 ++-- .../{gen_6.h => gen_6_families.h} | 3286 ++- .../{gen_7.h => gen_7_families.h} | 3803 ++- .../{gen_8.h => gen_8_families.h} | 4738 ++-- .../{gen_9.h => gen_9_families.h} | 3748 ++- .../pokemon/species_info/shared_dex_text.h | 282 + src/data/pokemon/teachable_learnsets.h | 11379 +++----- src/data/pokemon_graphics/front_pic_anims.h | 55 + src/pokedex_screen.c | 2 - src/pokemon.c | 42 +- 310 files changed, 212973 insertions(+), 29577 deletions(-) create mode 100644 build.log create mode 100644 graphics/pokemon/archaludon/back.png create mode 100644 graphics/pokemon/archaludon/front.png create mode 100644 graphics/pokemon/archaludon/icon.png create mode 100644 graphics/pokemon/archaludon/normal.pal create mode 100644 graphics/pokemon/archaludon/shiny.pal create mode 100644 graphics/pokemon/eevee/partner/icon.png create mode 100644 graphics/pokemon/eevee/partner/iconf.png delete mode 100644 graphics/pokemon/ghost/front.png:Zone.Identifier create mode 100644 graphics/pokemon/gouging_fire/back.png create mode 100644 graphics/pokemon/gouging_fire/front.png create mode 100644 graphics/pokemon/gouging_fire/icon.png create mode 100644 graphics/pokemon/gouging_fire/normal.pal create mode 100644 graphics/pokemon/gouging_fire/shiny.pal create mode 100644 graphics/pokemon/hydrapple/back.png create mode 100644 graphics/pokemon/hydrapple/front.png create mode 100644 graphics/pokemon/hydrapple/icon.png create mode 100644 graphics/pokemon/hydrapple/normal.pal create mode 100644 graphics/pokemon/hydrapple/shiny.pal create mode 100644 graphics/pokemon/iron_boulder/back.png create mode 100644 graphics/pokemon/iron_boulder/front.png create mode 100644 graphics/pokemon/iron_boulder/icon.png create mode 100644 graphics/pokemon/iron_boulder/normal.pal create mode 100644 graphics/pokemon/iron_boulder/shiny.pal create mode 100644 graphics/pokemon/iron_crown/back.png create mode 100644 graphics/pokemon/iron_crown/front.png create mode 100644 graphics/pokemon/iron_crown/icon.png create mode 100644 graphics/pokemon/iron_crown/normal.pal create mode 100644 graphics/pokemon/iron_crown/shiny.pal create mode 100644 graphics/pokemon/ogerpon/cornerstone/icon.png create mode 100644 graphics/pokemon/ogerpon/cornerstone/shiny.pal create mode 100644 graphics/pokemon/ogerpon/hearthflame/icon.png create mode 100644 graphics/pokemon/ogerpon/hearthflame/shiny.pal create mode 100644 graphics/pokemon/ogerpon/shiny.pal create mode 100644 graphics/pokemon/ogerpon/wellspring/icon.png create mode 100644 graphics/pokemon/ogerpon/wellspring/shiny.pal delete mode 100644 graphics/pokemon/oinkologne/female/iconTODO.png create mode 100644 graphics/pokemon/pecharunt/back.png create mode 100644 graphics/pokemon/pecharunt/front.png create mode 100644 graphics/pokemon/pecharunt/icon.png create mode 100644 graphics/pokemon/pecharunt/normal.pal create mode 100644 graphics/pokemon/pecharunt/shiny.pal create mode 100644 graphics/pokemon/pikachu/partner/icon.png create mode 100644 graphics/pokemon/pikachu/partner/iconf.png create mode 100644 graphics/pokemon/raging_bolt/back.png create mode 100644 graphics/pokemon/raging_bolt/front.png create mode 100644 graphics/pokemon/raging_bolt/icon.png create mode 100644 graphics/pokemon/raging_bolt/normal.pal create mode 100644 graphics/pokemon/raging_bolt/shiny.pal delete mode 100644 graphics/pokemon/squawkabilly/green_plumage/icon.png create mode 100644 graphics/pokemon/squawkabilly/icon.png rename graphics/pokemon/squawkabilly/{green_plumage => }/normal.pal (100%) rename graphics/pokemon/squawkabilly/{green_plumage => }/shiny.pal (100%) rename graphics/pokemon/tatsugiri/{curly => }/back.png (100%) delete mode 100644 graphics/pokemon/tatsugiri/curly/icon.png rename graphics/pokemon/tatsugiri/{curly => }/front.png (100%) create mode 100644 graphics/pokemon/tatsugiri/icon.png rename graphics/pokemon/tatsugiri/{curly => }/normal.pal (100%) rename graphics/pokemon/tatsugiri/{curly => }/shiny.pal (100%) create mode 100644 graphics/pokemon/terapagos/icon.png create mode 100644 graphics/pokemon/terapagos/stellar/icon.png create mode 100644 graphics/pokemon/terapagos/terastal/icon.png create mode 100644 graphics/pokemon/ursaluna/bloodmoon/icon.png create mode 100644 graphics/pokemon/wooper/wooper_paldean/icon.png create mode 100644 src/data/pokemon/level_up_learnsets/gen_1.h create mode 100644 src/data/pokemon/level_up_learnsets/gen_2.h create mode 100644 src/data/pokemon/level_up_learnsets/gen_3.h create mode 100644 src/data/pokemon/level_up_learnsets/gen_4.h create mode 100644 src/data/pokemon/level_up_learnsets/gen_5.h create mode 100644 src/data/pokemon/level_up_learnsets/gen_6.h rename src/data/pokemon/{level_up_learnsets.h => level_up_learnsets/gen_7.h} (97%) create mode 100644 src/data/pokemon/level_up_learnsets/gen_8.h create mode 100644 src/data/pokemon/level_up_learnsets/gen_9.h delete mode 100644 src/data/pokemon/pokedex_text.h delete mode 100644 src/data/pokemon/pokedex_text_fr.h delete mode 100644 src/data/pokemon/pokedex_text_lg.h rename src/data/pokemon/species_info/{gen_1.h => gen_1_families.h} (51%) rename src/data/pokemon/species_info/{gen_2.h => gen_2_families.h} (59%) rename src/data/pokemon/species_info/{gen_3.h => gen_3_families.h} (57%) rename src/data/pokemon/species_info/{gen_4.h => gen_4_families.h} (53%) rename src/data/pokemon/species_info/{gen_5.h => gen_5_families.h} (60%) rename src/data/pokemon/species_info/{gen_6.h => gen_6_families.h} (56%) rename src/data/pokemon/species_info/{gen_7.h => gen_7_families.h} (54%) rename src/data/pokemon/species_info/{gen_8.h => gen_8_families.h} (51%) rename src/data/pokemon/species_info/{gen_9.h => gen_9_families.h} (58%) create mode 100644 src/data/pokemon/species_info/shared_dex_text.h diff --git a/build.log b/build.log new file mode 100644 index 000000000..c6c960350 --- /dev/null +++ b/build.log @@ -0,0 +1,3377 @@ +In file included from src/data/pokemon/species_info.h:67, + from src/pokemon.c:683: +src/data/pokemon/species_info/gen_8_families.h:2400: `sHydrappleTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_8_families.h:2400: initializer element for `gSpeciesInfo[1426].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_8_families.h:2401: initializer element for `gSpeciesInfo[1426]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2401: initializer element for `gSpeciesInfo[1426]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2414: initializer element for `gSpeciesInfo[843].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2422: initializer element for `gSpeciesInfo[843].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2423: initializer element for `gSpeciesInfo[843].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2425: initializer element for `gSpeciesInfo[843].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2428: initializer element for `gSpeciesInfo[843].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2434: initializer element for `gSpeciesInfo[843].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2455: initializer element for `gSpeciesInfo[843].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:2456: initializer element for `gSpeciesInfo[843]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2456: initializer element for `gSpeciesInfo[843]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2456: initializer element for `gSpeciesInfo[843]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2456: initializer element for `gSpeciesInfo[843]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2456: initializer element for `gSpeciesInfo[843]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2456: initializer element for `gSpeciesInfo[843]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2456: initializer element for `gSpeciesInfo[843]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2466: initializer element for `gSpeciesInfo[844].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2474: initializer element for `gSpeciesInfo[844].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2475: initializer element for `gSpeciesInfo[844].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2477: initializer element for `gSpeciesInfo[844].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2480: initializer element for `gSpeciesInfo[844].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2487: initializer element for `gSpeciesInfo[844].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2510: initializer element for `gSpeciesInfo[844]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2510: initializer element for `gSpeciesInfo[844]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2510: initializer element for `gSpeciesInfo[844]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2510: initializer element for `gSpeciesInfo[844]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2510: initializer element for `gSpeciesInfo[844]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2510: initializer element for `gSpeciesInfo[844]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2521: initializer element for `gSpeciesInfo[1512].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2529: initializer element for `gSpeciesInfo[1512].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2530: initializer element for `gSpeciesInfo[1512].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2532: initializer element for `gSpeciesInfo[1512].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2535: initializer element for `gSpeciesInfo[1512].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2542: initializer element for `gSpeciesInfo[1512].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2566: initializer element for `gSpeciesInfo[1512]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2566: initializer element for `gSpeciesInfo[1512]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2566: initializer element for `gSpeciesInfo[1512]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2566: initializer element for `gSpeciesInfo[1512]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2566: initializer element for `gSpeciesInfo[1512]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2566: initializer element for `gSpeciesInfo[1512]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2579: initializer element for `gSpeciesInfo[845].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2587: initializer element for `gSpeciesInfo[845].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2588: initializer element for `gSpeciesInfo[845].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2590: initializer element for `gSpeciesInfo[845].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2593: initializer element for `gSpeciesInfo[845].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2599: initializer element for `gSpeciesInfo[845].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2622: initializer element for `gSpeciesInfo[845]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2622: initializer element for `gSpeciesInfo[845]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2622: initializer element for `gSpeciesInfo[845]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2622: initializer element for `gSpeciesInfo[845]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2622: initializer element for `gSpeciesInfo[845]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2622: initializer element for `gSpeciesInfo[845]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2632: initializer element for `gSpeciesInfo[1211].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2640: initializer element for `gSpeciesInfo[1211].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2641: initializer element for `gSpeciesInfo[1211].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2643: initializer element for `gSpeciesInfo[1211].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2646: initializer element for `gSpeciesInfo[1211].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2653: initializer element for `gSpeciesInfo[1211].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2676: initializer element for `gSpeciesInfo[1211]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2676: initializer element for `gSpeciesInfo[1211]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2676: initializer element for `gSpeciesInfo[1211]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2676: initializer element for `gSpeciesInfo[1211]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2676: initializer element for `gSpeciesInfo[1211]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2676: initializer element for `gSpeciesInfo[1211]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2686: initializer element for `gSpeciesInfo[1212].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2694: initializer element for `gSpeciesInfo[1212].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2695: initializer element for `gSpeciesInfo[1212].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2697: initializer element for `gSpeciesInfo[1212].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2700: initializer element for `gSpeciesInfo[1212].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2707: initializer element for `gSpeciesInfo[1212].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2730: initializer element for `gSpeciesInfo[1212]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2730: initializer element for `gSpeciesInfo[1212]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2730: initializer element for `gSpeciesInfo[1212]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2730: initializer element for `gSpeciesInfo[1212]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2730: initializer element for `gSpeciesInfo[1212]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2730: initializer element for `gSpeciesInfo[1212]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2742: initializer element for `gSpeciesInfo[846].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2750: initializer element for `gSpeciesInfo[846].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2751: initializer element for `gSpeciesInfo[846].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2753: initializer element for `gSpeciesInfo[846].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2756: initializer element for `gSpeciesInfo[846].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2763: initializer element for `gSpeciesInfo[846].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2784: initializer element for `gSpeciesInfo[846].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:2785: initializer element for `gSpeciesInfo[846]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2785: initializer element for `gSpeciesInfo[846]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2785: initializer element for `gSpeciesInfo[846]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2785: initializer element for `gSpeciesInfo[846]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2785: initializer element for `gSpeciesInfo[846]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2785: initializer element for `gSpeciesInfo[846]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2785: initializer element for `gSpeciesInfo[846]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2795: initializer element for `gSpeciesInfo[847].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2803: initializer element for `gSpeciesInfo[847].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2804: initializer element for `gSpeciesInfo[847].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2806: initializer element for `gSpeciesInfo[847].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2809: initializer element for `gSpeciesInfo[847].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2816: initializer element for `gSpeciesInfo[847].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2837: initializer element for `gSpeciesInfo[847]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2837: initializer element for `gSpeciesInfo[847]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2837: initializer element for `gSpeciesInfo[847]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2837: initializer element for `gSpeciesInfo[847]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2837: initializer element for `gSpeciesInfo[847]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2837: initializer element for `gSpeciesInfo[847]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2849: initializer element for `gSpeciesInfo[848].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2857: initializer element for `gSpeciesInfo[848].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2858: initializer element for `gSpeciesInfo[848].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2860: initializer element for `gSpeciesInfo[848].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2863: initializer element for `gSpeciesInfo[848].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2870: initializer element for `gSpeciesInfo[848].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2892: initializer element for `gSpeciesInfo[848].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:2893: initializer element for `gSpeciesInfo[848]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2893: initializer element for `gSpeciesInfo[848]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2893: initializer element for `gSpeciesInfo[848]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2893: initializer element for `gSpeciesInfo[848]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2893: initializer element for `gSpeciesInfo[848]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2893: initializer element for `gSpeciesInfo[848]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2893: initializer element for `gSpeciesInfo[848]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2903: initializer element for `gSpeciesInfo[849].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2911: initializer element for `gSpeciesInfo[849].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2912: initializer element for `gSpeciesInfo[849].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2914: initializer element for `gSpeciesInfo[849].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2917: initializer element for `gSpeciesInfo[849].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2924: initializer element for `gSpeciesInfo[849].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:2947: initializer element for `gSpeciesInfo[849]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2947: initializer element for `gSpeciesInfo[849]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2947: initializer element for `gSpeciesInfo[849]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2947: initializer element for `gSpeciesInfo[849]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2947: initializer element for `gSpeciesInfo[849]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2947: initializer element for `gSpeciesInfo[849]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2958: initializer element for `gSpeciesInfo[1513].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:2966: initializer element for `gSpeciesInfo[1513].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:2967: initializer element for `gSpeciesInfo[1513].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:2969: initializer element for `gSpeciesInfo[1513].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2972: initializer element for `gSpeciesInfo[1513].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:2999: initializer element for `gSpeciesInfo[1513]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2999: initializer element for `gSpeciesInfo[1513]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2999: initializer element for `gSpeciesInfo[1513]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2999: initializer element for `gSpeciesInfo[1513]' is not constant +src/data/pokemon/species_info/gen_8_families.h:2999: initializer element for `gSpeciesInfo[1513]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3010: initializer element for `gSpeciesInfo[1213].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3018: initializer element for `gSpeciesInfo[1213].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3019: initializer element for `gSpeciesInfo[1213].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3021: initializer element for `gSpeciesInfo[1213].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3024: initializer element for `gSpeciesInfo[1213].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3030: initializer element for `gSpeciesInfo[1213].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3053: initializer element for `gSpeciesInfo[1213]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3053: initializer element for `gSpeciesInfo[1213]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3053: initializer element for `gSpeciesInfo[1213]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3053: initializer element for `gSpeciesInfo[1213]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3053: initializer element for `gSpeciesInfo[1213]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3053: initializer element for `gSpeciesInfo[1213]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3064: initializer element for `gSpeciesInfo[1514].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3072: initializer element for `gSpeciesInfo[1514].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3073: initializer element for `gSpeciesInfo[1514].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3075: initializer element for `gSpeciesInfo[1514].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3078: initializer element for `gSpeciesInfo[1514].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3105: initializer element for `gSpeciesInfo[1514]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3105: initializer element for `gSpeciesInfo[1514]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3105: initializer element for `gSpeciesInfo[1514]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3105: initializer element for `gSpeciesInfo[1514]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3105: initializer element for `gSpeciesInfo[1514]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3118: initializer element for `gSpeciesInfo[850].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3126: initializer element for `gSpeciesInfo[850].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3127: initializer element for `gSpeciesInfo[850].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3129: initializer element for `gSpeciesInfo[850].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3132: initializer element for `gSpeciesInfo[850].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3138: initializer element for `gSpeciesInfo[850].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3159: initializer element for `gSpeciesInfo[850].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:3160: initializer element for `gSpeciesInfo[850]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3160: initializer element for `gSpeciesInfo[850]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3160: initializer element for `gSpeciesInfo[850]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3160: initializer element for `gSpeciesInfo[850]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3160: initializer element for `gSpeciesInfo[850]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3160: initializer element for `gSpeciesInfo[850]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3160: initializer element for `gSpeciesInfo[850]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3170: initializer element for `gSpeciesInfo[851].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3178: initializer element for `gSpeciesInfo[851].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3179: initializer element for `gSpeciesInfo[851].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3181: initializer element for `gSpeciesInfo[851].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3184: initializer element for `gSpeciesInfo[851].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3191: initializer element for `gSpeciesInfo[851].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3214: initializer element for `gSpeciesInfo[851]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3214: initializer element for `gSpeciesInfo[851]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3214: initializer element for `gSpeciesInfo[851]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3214: initializer element for `gSpeciesInfo[851]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3214: initializer element for `gSpeciesInfo[851]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3214: initializer element for `gSpeciesInfo[851]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3225: initializer element for `gSpeciesInfo[1515].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3233: initializer element for `gSpeciesInfo[1515].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3234: initializer element for `gSpeciesInfo[1515].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3236: initializer element for `gSpeciesInfo[1515].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3239: initializer element for `gSpeciesInfo[1515].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3246: initializer element for `gSpeciesInfo[1515].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3270: initializer element for `gSpeciesInfo[1515]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3270: initializer element for `gSpeciesInfo[1515]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3270: initializer element for `gSpeciesInfo[1515]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3270: initializer element for `gSpeciesInfo[1515]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3270: initializer element for `gSpeciesInfo[1515]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3270: initializer element for `gSpeciesInfo[1515]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3283: initializer element for `gSpeciesInfo[852].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3291: initializer element for `gSpeciesInfo[852].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3292: initializer element for `gSpeciesInfo[852].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3294: initializer element for `gSpeciesInfo[852].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3297: initializer element for `gSpeciesInfo[852].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3304: initializer element for `gSpeciesInfo[852].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3325: initializer element for `gSpeciesInfo[852].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:3326: initializer element for `gSpeciesInfo[852]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3326: initializer element for `gSpeciesInfo[852]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3326: initializer element for `gSpeciesInfo[852]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3326: initializer element for `gSpeciesInfo[852]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3326: initializer element for `gSpeciesInfo[852]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3326: initializer element for `gSpeciesInfo[852]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3326: initializer element for `gSpeciesInfo[852]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3336: initializer element for `gSpeciesInfo[853].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3344: initializer element for `gSpeciesInfo[853].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3345: initializer element for `gSpeciesInfo[853].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3347: initializer element for `gSpeciesInfo[853].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3350: initializer element for `gSpeciesInfo[853].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3356: initializer element for `gSpeciesInfo[853].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3377: initializer element for `gSpeciesInfo[853]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3377: initializer element for `gSpeciesInfo[853]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3377: initializer element for `gSpeciesInfo[853]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3377: initializer element for `gSpeciesInfo[853]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3377: initializer element for `gSpeciesInfo[853]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3377: initializer element for `gSpeciesInfo[853]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3389: initializer element for `gSpeciesInfo[854].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3397: initializer element for `gSpeciesInfo[854].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3398: initializer element for `gSpeciesInfo[854].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3400: initializer element for `gSpeciesInfo[854].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3403: initializer element for `gSpeciesInfo[854].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3409: initializer element for `gSpeciesInfo[854].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3432: initializer element for `gSpeciesInfo[854].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:3433: initializer element for `gSpeciesInfo[854]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3433: initializer element for `gSpeciesInfo[854]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3433: initializer element for `gSpeciesInfo[854]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3433: initializer element for `gSpeciesInfo[854]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3433: initializer element for `gSpeciesInfo[854]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3433: initializer element for `gSpeciesInfo[854]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3433: initializer element for `gSpeciesInfo[854]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3443: initializer element for `gSpeciesInfo[1214].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3451: initializer element for `gSpeciesInfo[1214].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3452: initializer element for `gSpeciesInfo[1214].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3454: initializer element for `gSpeciesInfo[1214].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3457: initializer element for `gSpeciesInfo[1214].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3464: initializer element for `gSpeciesInfo[1214].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3487: initializer element for `gSpeciesInfo[1214].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:3488: initializer element for `gSpeciesInfo[1214]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3488: initializer element for `gSpeciesInfo[1214]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3488: initializer element for `gSpeciesInfo[1214]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3488: initializer element for `gSpeciesInfo[1214]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3488: initializer element for `gSpeciesInfo[1214]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3488: initializer element for `gSpeciesInfo[1214]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3488: initializer element for `gSpeciesInfo[1214]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3498: initializer element for `gSpeciesInfo[855].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3506: initializer element for `gSpeciesInfo[855].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3507: initializer element for `gSpeciesInfo[855].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3509: initializer element for `gSpeciesInfo[855].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3512: initializer element for `gSpeciesInfo[855].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3518: initializer element for `gSpeciesInfo[855].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3541: initializer element for `gSpeciesInfo[855]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3541: initializer element for `gSpeciesInfo[855]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3541: initializer element for `gSpeciesInfo[855]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3541: initializer element for `gSpeciesInfo[855]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3541: initializer element for `gSpeciesInfo[855]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3541: initializer element for `gSpeciesInfo[855]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3551: initializer element for `gSpeciesInfo[1215].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3559: initializer element for `gSpeciesInfo[1215].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3560: initializer element for `gSpeciesInfo[1215].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3562: initializer element for `gSpeciesInfo[1215].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3565: initializer element for `gSpeciesInfo[1215].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3572: initializer element for `gSpeciesInfo[1215].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3595: initializer element for `gSpeciesInfo[1215]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3595: initializer element for `gSpeciesInfo[1215]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3595: initializer element for `gSpeciesInfo[1215]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3595: initializer element for `gSpeciesInfo[1215]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3595: initializer element for `gSpeciesInfo[1215]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3595: initializer element for `gSpeciesInfo[1215]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3607: initializer element for `gSpeciesInfo[856].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3615: initializer element for `gSpeciesInfo[856].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3616: initializer element for `gSpeciesInfo[856].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3618: initializer element for `gSpeciesInfo[856].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3621: initializer element for `gSpeciesInfo[856].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3628: initializer element for `gSpeciesInfo[856].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3649: initializer element for `gSpeciesInfo[856].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:3650: initializer element for `gSpeciesInfo[856]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3650: initializer element for `gSpeciesInfo[856]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3650: initializer element for `gSpeciesInfo[856]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3650: initializer element for `gSpeciesInfo[856]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3650: initializer element for `gSpeciesInfo[856]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3650: initializer element for `gSpeciesInfo[856]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3650: initializer element for `gSpeciesInfo[856]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3660: initializer element for `gSpeciesInfo[857].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3668: initializer element for `gSpeciesInfo[857].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3669: initializer element for `gSpeciesInfo[857].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3671: initializer element for `gSpeciesInfo[857].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3674: initializer element for `gSpeciesInfo[857].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3680: initializer element for `gSpeciesInfo[857].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3701: initializer element for `gSpeciesInfo[857].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:3702: initializer element for `gSpeciesInfo[857]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3702: initializer element for `gSpeciesInfo[857]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3702: initializer element for `gSpeciesInfo[857]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3702: initializer element for `gSpeciesInfo[857]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3702: initializer element for `gSpeciesInfo[857]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3702: initializer element for `gSpeciesInfo[857]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3702: initializer element for `gSpeciesInfo[857]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3712: initializer element for `gSpeciesInfo[858].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3720: initializer element for `gSpeciesInfo[858].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3721: initializer element for `gSpeciesInfo[858].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3723: initializer element for `gSpeciesInfo[858].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3726: initializer element for `gSpeciesInfo[858].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3732: initializer element for `gSpeciesInfo[858].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3755: initializer element for `gSpeciesInfo[858]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3755: initializer element for `gSpeciesInfo[858]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3755: initializer element for `gSpeciesInfo[858]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3755: initializer element for `gSpeciesInfo[858]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3755: initializer element for `gSpeciesInfo[858]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3755: initializer element for `gSpeciesInfo[858]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3766: initializer element for `gSpeciesInfo[1516].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3774: initializer element for `gSpeciesInfo[1516].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3775: initializer element for `gSpeciesInfo[1516].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3777: initializer element for `gSpeciesInfo[1516].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3780: initializer element for `gSpeciesInfo[1516].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3787: initializer element for `gSpeciesInfo[1516].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3811: initializer element for `gSpeciesInfo[1516]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3811: initializer element for `gSpeciesInfo[1516]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3811: initializer element for `gSpeciesInfo[1516]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3811: initializer element for `gSpeciesInfo[1516]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3811: initializer element for `gSpeciesInfo[1516]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3811: initializer element for `gSpeciesInfo[1516]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3824: initializer element for `gSpeciesInfo[859].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3832: initializer element for `gSpeciesInfo[859].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3833: initializer element for `gSpeciesInfo[859].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3835: initializer element for `gSpeciesInfo[859].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3838: initializer element for `gSpeciesInfo[859].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3845: initializer element for `gSpeciesInfo[859].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3866: initializer element for `gSpeciesInfo[859].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:3867: initializer element for `gSpeciesInfo[859]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3867: initializer element for `gSpeciesInfo[859]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3867: initializer element for `gSpeciesInfo[859]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3867: initializer element for `gSpeciesInfo[859]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3867: initializer element for `gSpeciesInfo[859]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3867: initializer element for `gSpeciesInfo[859]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3867: initializer element for `gSpeciesInfo[859]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3877: initializer element for `gSpeciesInfo[860].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3885: initializer element for `gSpeciesInfo[860].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3886: initializer element for `gSpeciesInfo[860].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3888: initializer element for `gSpeciesInfo[860].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3891: initializer element for `gSpeciesInfo[860].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3898: initializer element for `gSpeciesInfo[860].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3919: initializer element for `gSpeciesInfo[860].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:3920: initializer element for `gSpeciesInfo[860]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3920: initializer element for `gSpeciesInfo[860]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3920: initializer element for `gSpeciesInfo[860]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3920: initializer element for `gSpeciesInfo[860]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3920: initializer element for `gSpeciesInfo[860]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3920: initializer element for `gSpeciesInfo[860]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3920: initializer element for `gSpeciesInfo[860]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3931: initializer element for `gSpeciesInfo[861].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3939: initializer element for `gSpeciesInfo[861].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3940: initializer element for `gSpeciesInfo[861].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3942: initializer element for `gSpeciesInfo[861].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3945: initializer element for `gSpeciesInfo[861].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3951: initializer element for `gSpeciesInfo[861].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:3974: initializer element for `gSpeciesInfo[861]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3974: initializer element for `gSpeciesInfo[861]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3974: initializer element for `gSpeciesInfo[861]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3974: initializer element for `gSpeciesInfo[861]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3974: initializer element for `gSpeciesInfo[861]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3974: initializer element for `gSpeciesInfo[861]' is not constant +src/data/pokemon/species_info/gen_8_families.h:3985: initializer element for `gSpeciesInfo[1517].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:3993: initializer element for `gSpeciesInfo[1517].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:3994: initializer element for `gSpeciesInfo[1517].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:3996: initializer element for `gSpeciesInfo[1517].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:3999: initializer element for `gSpeciesInfo[1517].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4006: initializer element for `gSpeciesInfo[1517].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4030: initializer element for `gSpeciesInfo[1517]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4030: initializer element for `gSpeciesInfo[1517]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4030: initializer element for `gSpeciesInfo[1517]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4030: initializer element for `gSpeciesInfo[1517]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4030: initializer element for `gSpeciesInfo[1517]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4030: initializer element for `gSpeciesInfo[1517]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4043: initializer element for `gSpeciesInfo[868].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4051: initializer element for `gSpeciesInfo[868].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4052: initializer element for `gSpeciesInfo[868].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4054: initializer element for `gSpeciesInfo[868].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4057: initializer element for `gSpeciesInfo[868].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4063: initializer element for `gSpeciesInfo[868].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4093: initializer element for `gSpeciesInfo[868].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:4094: initializer element for `gSpeciesInfo[868]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4094: initializer element for `gSpeciesInfo[868]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4094: initializer element for `gSpeciesInfo[868]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4094: initializer element for `gSpeciesInfo[868]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4094: initializer element for `gSpeciesInfo[868]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4094: initializer element for `gSpeciesInfo[868]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4094: initializer element for `gSpeciesInfo[868]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4149: initializer element for `gSpeciesInfo[869]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4150: initializer element for `gSpeciesInfo[1216]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4151: initializer element for `gSpeciesInfo[1217]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4152: initializer element for `gSpeciesInfo[1218]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4153: initializer element for `gSpeciesInfo[1219]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4154: initializer element for `gSpeciesInfo[1220]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4155: initializer element for `gSpeciesInfo[1221]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4156: initializer element for `gSpeciesInfo[1222]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4157: initializer element for `gSpeciesInfo[1223]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4158: initializer element for `gSpeciesInfo[1235]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4159: initializer element for `gSpeciesInfo[1236]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4160: initializer element for `gSpeciesInfo[1237]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4161: initializer element for `gSpeciesInfo[1238]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4162: initializer element for `gSpeciesInfo[1239]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4163: initializer element for `gSpeciesInfo[1240]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4164: initializer element for `gSpeciesInfo[1241]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4165: initializer element for `gSpeciesInfo[1242]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4166: initializer element for `gSpeciesInfo[1243]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4167: initializer element for `gSpeciesInfo[1244]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4168: initializer element for `gSpeciesInfo[1245]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4169: initializer element for `gSpeciesInfo[1246]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4170: initializer element for `gSpeciesInfo[1247]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4171: initializer element for `gSpeciesInfo[1248]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4172: initializer element for `gSpeciesInfo[1249]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4173: initializer element for `gSpeciesInfo[1250]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4174: initializer element for `gSpeciesInfo[1251]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4175: initializer element for `gSpeciesInfo[1252]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4176: initializer element for `gSpeciesInfo[1253]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4177: initializer element for `gSpeciesInfo[1254]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4178: initializer element for `gSpeciesInfo[1255]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4179: initializer element for `gSpeciesInfo[1256]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4180: initializer element for `gSpeciesInfo[1257]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4181: initializer element for `gSpeciesInfo[1258]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4182: initializer element for `gSpeciesInfo[1259]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4183: initializer element for `gSpeciesInfo[1260]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4184: initializer element for `gSpeciesInfo[1261]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4185: initializer element for `gSpeciesInfo[1262]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4186: initializer element for `gSpeciesInfo[1263]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4187: initializer element for `gSpeciesInfo[1264]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4188: initializer element for `gSpeciesInfo[1265]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4189: initializer element for `gSpeciesInfo[1266]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4190: initializer element for `gSpeciesInfo[1267]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4191: initializer element for `gSpeciesInfo[1268]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4192: initializer element for `gSpeciesInfo[1269]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4193: initializer element for `gSpeciesInfo[1270]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4194: initializer element for `gSpeciesInfo[1271]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4195: initializer element for `gSpeciesInfo[1272]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4196: initializer element for `gSpeciesInfo[1273]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4197: initializer element for `gSpeciesInfo[1274]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4198: initializer element for `gSpeciesInfo[1275]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4199: initializer element for `gSpeciesInfo[1276]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4200: initializer element for `gSpeciesInfo[1277]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4201: initializer element for `gSpeciesInfo[1278]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4202: initializer element for `gSpeciesInfo[1279]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4203: initializer element for `gSpeciesInfo[1280]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4204: initializer element for `gSpeciesInfo[1281]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4205: initializer element for `gSpeciesInfo[1282]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4206: initializer element for `gSpeciesInfo[1283]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4207: initializer element for `gSpeciesInfo[1284]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4208: initializer element for `gSpeciesInfo[1285]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4209: initializer element for `gSpeciesInfo[1286]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4210: initializer element for `gSpeciesInfo[1287]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4211: initializer element for `gSpeciesInfo[1288]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4215: initializer element for `gSpeciesInfo[1518].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4215: initializer element for `gSpeciesInfo[1518].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4215: initializer element for `gSpeciesInfo[1518].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4216: initializer element for `gSpeciesInfo[1518].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4219: initializer element for `gSpeciesInfo[1518].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4226: initializer element for `gSpeciesInfo[1518].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4250: initializer element for `gSpeciesInfo[1518]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4250: initializer element for `gSpeciesInfo[1518]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4250: initializer element for `gSpeciesInfo[1518]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4250: initializer element for `gSpeciesInfo[1518]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4250: initializer element for `gSpeciesInfo[1518]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4250: initializer element for `gSpeciesInfo[1518]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4263: initializer element for `gSpeciesInfo[870].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4272: initializer element for `gSpeciesInfo[870].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4273: initializer element for `gSpeciesInfo[870].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4275: initializer element for `gSpeciesInfo[870].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4278: initializer element for `gSpeciesInfo[870].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4283: initializer element for `gSpeciesInfo[870].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4304: initializer element for `gSpeciesInfo[870]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4304: initializer element for `gSpeciesInfo[870]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4304: initializer element for `gSpeciesInfo[870]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4304: initializer element for `gSpeciesInfo[870]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4304: initializer element for `gSpeciesInfo[870]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4304: initializer element for `gSpeciesInfo[870]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4316: initializer element for `gSpeciesInfo[871].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4324: initializer element for `gSpeciesInfo[871].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4325: initializer element for `gSpeciesInfo[871].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4327: initializer element for `gSpeciesInfo[871].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4330: initializer element for `gSpeciesInfo[871].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4336: initializer element for `gSpeciesInfo[871].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4357: initializer element for `gSpeciesInfo[871]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4357: initializer element for `gSpeciesInfo[871]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4357: initializer element for `gSpeciesInfo[871]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4357: initializer element for `gSpeciesInfo[871]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4357: initializer element for `gSpeciesInfo[871]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4357: initializer element for `gSpeciesInfo[871]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4369: initializer element for `gSpeciesInfo[872].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4378: initializer element for `gSpeciesInfo[872].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4379: initializer element for `gSpeciesInfo[872].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4381: initializer element for `gSpeciesInfo[872].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4384: initializer element for `gSpeciesInfo[872].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4391: initializer element for `gSpeciesInfo[872].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4412: initializer element for `gSpeciesInfo[872].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:4413: initializer element for `gSpeciesInfo[872]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4413: initializer element for `gSpeciesInfo[872]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4413: initializer element for `gSpeciesInfo[872]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4413: initializer element for `gSpeciesInfo[872]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4413: initializer element for `gSpeciesInfo[872]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4413: initializer element for `gSpeciesInfo[872]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4413: initializer element for `gSpeciesInfo[872]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4423: initializer element for `gSpeciesInfo[873].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4431: initializer element for `gSpeciesInfo[873].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4432: initializer element for `gSpeciesInfo[873].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4434: initializer element for `gSpeciesInfo[873].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4437: initializer element for `gSpeciesInfo[873].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4444: initializer element for `gSpeciesInfo[873].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4466: initializer element for `gSpeciesInfo[873]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4466: initializer element for `gSpeciesInfo[873]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4466: initializer element for `gSpeciesInfo[873]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4466: initializer element for `gSpeciesInfo[873]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4466: initializer element for `gSpeciesInfo[873]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4466: initializer element for `gSpeciesInfo[873]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4478: initializer element for `gSpeciesInfo[874].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4486: initializer element for `gSpeciesInfo[874].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4487: initializer element for `gSpeciesInfo[874].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4489: initializer element for `gSpeciesInfo[874].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4492: initializer element for `gSpeciesInfo[874].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4499: initializer element for `gSpeciesInfo[874].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4520: initializer element for `gSpeciesInfo[874]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4520: initializer element for `gSpeciesInfo[874]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4520: initializer element for `gSpeciesInfo[874]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4520: initializer element for `gSpeciesInfo[874]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4520: initializer element for `gSpeciesInfo[874]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4520: initializer element for `gSpeciesInfo[874]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4532: initializer element for `gSpeciesInfo[875].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4540: initializer element for `gSpeciesInfo[875].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4541: initializer element for `gSpeciesInfo[875].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4543: initializer element for `gSpeciesInfo[875].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4546: initializer element for `gSpeciesInfo[875].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4553: initializer element for `gSpeciesInfo[875].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4576: initializer element for `gSpeciesInfo[875]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4576: initializer element for `gSpeciesInfo[875]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4576: initializer element for `gSpeciesInfo[875]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4576: initializer element for `gSpeciesInfo[875]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4576: initializer element for `gSpeciesInfo[875]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4576: initializer element for `gSpeciesInfo[875]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4586: initializer element for `gSpeciesInfo[1224].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4594: initializer element for `gSpeciesInfo[1224].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4595: initializer element for `gSpeciesInfo[1224].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4597: initializer element for `gSpeciesInfo[1224].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4600: initializer element for `gSpeciesInfo[1224].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4607: initializer element for `gSpeciesInfo[1224].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4630: initializer element for `gSpeciesInfo[1224]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4630: initializer element for `gSpeciesInfo[1224]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4630: initializer element for `gSpeciesInfo[1224]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4630: initializer element for `gSpeciesInfo[1224]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4630: initializer element for `gSpeciesInfo[1224]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4630: initializer element for `gSpeciesInfo[1224]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4642: initializer element for `gSpeciesInfo[876].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4650: initializer element for `gSpeciesInfo[876].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4651: initializer element for `gSpeciesInfo[876].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4653: initializer element for `gSpeciesInfo[876].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4656: initializer element for `gSpeciesInfo[876].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4663: initializer element for `gSpeciesInfo[876].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4685: initializer element for `gSpeciesInfo[876]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4685: initializer element for `gSpeciesInfo[876]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4685: initializer element for `gSpeciesInfo[876]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4685: initializer element for `gSpeciesInfo[876]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4685: initializer element for `gSpeciesInfo[876]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4685: initializer element for `gSpeciesInfo[876]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4695: initializer element for `gSpeciesInfo[1225].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4703: initializer element for `gSpeciesInfo[1225].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4704: initializer element for `gSpeciesInfo[1225].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4706: initializer element for `gSpeciesInfo[1225].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4709: initializer element for `gSpeciesInfo[1225].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4716: initializer element for `gSpeciesInfo[1225].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4738: initializer element for `gSpeciesInfo[1225]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4738: initializer element for `gSpeciesInfo[1225]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4738: initializer element for `gSpeciesInfo[1225]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4738: initializer element for `gSpeciesInfo[1225]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4738: initializer element for `gSpeciesInfo[1225]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4738: initializer element for `gSpeciesInfo[1225]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4750: initializer element for `gSpeciesInfo[877].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4758: initializer element for `gSpeciesInfo[877].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4759: initializer element for `gSpeciesInfo[877].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4761: initializer element for `gSpeciesInfo[877].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4764: initializer element for `gSpeciesInfo[877].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4771: initializer element for `gSpeciesInfo[877].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4794: initializer element for `gSpeciesInfo[877]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4794: initializer element for `gSpeciesInfo[877]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4794: initializer element for `gSpeciesInfo[877]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4794: initializer element for `gSpeciesInfo[877]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4794: initializer element for `gSpeciesInfo[877]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4794: initializer element for `gSpeciesInfo[877]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4804: initializer element for `gSpeciesInfo[1226].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4812: initializer element for `gSpeciesInfo[1226].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4813: initializer element for `gSpeciesInfo[1226].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4815: initializer element for `gSpeciesInfo[1226].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4818: initializer element for `gSpeciesInfo[1226].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4825: initializer element for `gSpeciesInfo[1226].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4848: initializer element for `gSpeciesInfo[1226]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4848: initializer element for `gSpeciesInfo[1226]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4848: initializer element for `gSpeciesInfo[1226]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4848: initializer element for `gSpeciesInfo[1226]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4848: initializer element for `gSpeciesInfo[1226]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4848: initializer element for `gSpeciesInfo[1226]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4860: initializer element for `gSpeciesInfo[878].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4869: initializer element for `gSpeciesInfo[878].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4870: initializer element for `gSpeciesInfo[878].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4872: initializer element for `gSpeciesInfo[878].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4875: initializer element for `gSpeciesInfo[878].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4882: initializer element for `gSpeciesInfo[878].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4903: initializer element for `gSpeciesInfo[878].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:4904: initializer element for `gSpeciesInfo[878]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4904: initializer element for `gSpeciesInfo[878]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4904: initializer element for `gSpeciesInfo[878]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4904: initializer element for `gSpeciesInfo[878]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4904: initializer element for `gSpeciesInfo[878]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4904: initializer element for `gSpeciesInfo[878]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4904: initializer element for `gSpeciesInfo[878]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4914: initializer element for `gSpeciesInfo[879].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4923: initializer element for `gSpeciesInfo[879].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4924: initializer element for `gSpeciesInfo[879].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4926: initializer element for `gSpeciesInfo[879].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4929: initializer element for `gSpeciesInfo[879].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4935: initializer element for `gSpeciesInfo[879].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:4958: initializer element for `gSpeciesInfo[879]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4958: initializer element for `gSpeciesInfo[879]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4958: initializer element for `gSpeciesInfo[879]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4958: initializer element for `gSpeciesInfo[879]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4958: initializer element for `gSpeciesInfo[879]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4958: initializer element for `gSpeciesInfo[879]' is not constant +src/data/pokemon/species_info/gen_8_families.h:4969: initializer element for `gSpeciesInfo[1519].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:4978: initializer element for `gSpeciesInfo[1519].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:4979: initializer element for `gSpeciesInfo[1519].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:4981: initializer element for `gSpeciesInfo[1519].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4984: initializer element for `gSpeciesInfo[1519].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:4991: initializer element for `gSpeciesInfo[1519].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5015: initializer element for `gSpeciesInfo[1519]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5015: initializer element for `gSpeciesInfo[1519]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5015: initializer element for `gSpeciesInfo[1519]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5015: initializer element for `gSpeciesInfo[1519]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5015: initializer element for `gSpeciesInfo[1519]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5015: initializer element for `gSpeciesInfo[1519]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5028: initializer element for `gSpeciesInfo[880].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5036: initializer element for `gSpeciesInfo[880].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5037: initializer element for `gSpeciesInfo[880].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5039: initializer element for `gSpeciesInfo[880].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5042: initializer element for `gSpeciesInfo[880].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5049: initializer element for `gSpeciesInfo[880].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5070: initializer element for `gSpeciesInfo[880]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5070: initializer element for `gSpeciesInfo[880]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5070: initializer element for `gSpeciesInfo[880]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5070: initializer element for `gSpeciesInfo[880]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5070: initializer element for `gSpeciesInfo[880]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5070: initializer element for `gSpeciesInfo[880]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5082: initializer element for `gSpeciesInfo[881].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5090: initializer element for `gSpeciesInfo[881].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5091: initializer element for `gSpeciesInfo[881].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5093: initializer element for `gSpeciesInfo[881].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5096: initializer element for `gSpeciesInfo[881].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5102: initializer element for `gSpeciesInfo[881].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5123: initializer element for `gSpeciesInfo[881]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5123: initializer element for `gSpeciesInfo[881]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5123: initializer element for `gSpeciesInfo[881]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5123: initializer element for `gSpeciesInfo[881]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5123: initializer element for `gSpeciesInfo[881]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5123: initializer element for `gSpeciesInfo[881]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5135: initializer element for `gSpeciesInfo[882].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5143: initializer element for `gSpeciesInfo[882].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5144: initializer element for `gSpeciesInfo[882].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5146: initializer element for `gSpeciesInfo[882].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5149: initializer element for `gSpeciesInfo[882].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5156: initializer element for `gSpeciesInfo[882].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5177: initializer element for `gSpeciesInfo[882]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5177: initializer element for `gSpeciesInfo[882]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5177: initializer element for `gSpeciesInfo[882]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5177: initializer element for `gSpeciesInfo[882]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5177: initializer element for `gSpeciesInfo[882]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5177: initializer element for `gSpeciesInfo[882]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5189: initializer element for `gSpeciesInfo[883].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5197: initializer element for `gSpeciesInfo[883].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5198: initializer element for `gSpeciesInfo[883].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5200: initializer element for `gSpeciesInfo[883].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5203: initializer element for `gSpeciesInfo[883].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5210: initializer element for `gSpeciesInfo[883].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5231: initializer element for `gSpeciesInfo[883]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5231: initializer element for `gSpeciesInfo[883]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5231: initializer element for `gSpeciesInfo[883]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5231: initializer element for `gSpeciesInfo[883]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5231: initializer element for `gSpeciesInfo[883]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5231: initializer element for `gSpeciesInfo[883]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5243: initializer element for `gSpeciesInfo[884].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5251: initializer element for `gSpeciesInfo[884].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5252: initializer element for `gSpeciesInfo[884].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5254: initializer element for `gSpeciesInfo[884].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5257: initializer element for `gSpeciesInfo[884].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5263: initializer element for `gSpeciesInfo[884].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5286: initializer element for `gSpeciesInfo[884].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:5287: initializer element for `gSpeciesInfo[884]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5287: initializer element for `gSpeciesInfo[884]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5287: initializer element for `gSpeciesInfo[884]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5287: initializer element for `gSpeciesInfo[884]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5287: initializer element for `gSpeciesInfo[884]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5287: initializer element for `gSpeciesInfo[884]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5287: initializer element for `gSpeciesInfo[884]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5298: initializer element for `gSpeciesInfo[1520].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5306: initializer element for `gSpeciesInfo[1520].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5307: initializer element for `gSpeciesInfo[1520].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5309: initializer element for `gSpeciesInfo[1520].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5312: initializer element for `gSpeciesInfo[1520].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5319: initializer element for `gSpeciesInfo[1520].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5343: initializer element for `gSpeciesInfo[1520]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5343: initializer element for `gSpeciesInfo[1520]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5343: initializer element for `gSpeciesInfo[1520]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5343: initializer element for `gSpeciesInfo[1520]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5343: initializer element for `gSpeciesInfo[1520]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5343: initializer element for `gSpeciesInfo[1520]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5355: initializer element for `gSpeciesInfo[1425].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5363: initializer element for `gSpeciesInfo[1425].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5364: initializer element for `gSpeciesInfo[1425].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5366: initializer element for `gSpeciesInfo[1425].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5369: initializer element for `gSpeciesInfo[1425].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5376: initializer element for `gSpeciesInfo[1425].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5396: `sArchaludonTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_8_families.h:5396: initializer element for `gSpeciesInfo[1425].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_8_families.h:5397: initializer element for `gSpeciesInfo[1425]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5397: initializer element for `gSpeciesInfo[1425]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5397: initializer element for `gSpeciesInfo[1425]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5397: initializer element for `gSpeciesInfo[1425]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5397: initializer element for `gSpeciesInfo[1425]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5397: initializer element for `gSpeciesInfo[1425]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5397: initializer element for `gSpeciesInfo[1425]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5410: initializer element for `gSpeciesInfo[885].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5418: initializer element for `gSpeciesInfo[885].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5419: initializer element for `gSpeciesInfo[885].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5421: initializer element for `gSpeciesInfo[885].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5424: initializer element for `gSpeciesInfo[885].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5431: initializer element for `gSpeciesInfo[885].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5453: initializer element for `gSpeciesInfo[885].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:5454: initializer element for `gSpeciesInfo[885]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5454: initializer element for `gSpeciesInfo[885]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5454: initializer element for `gSpeciesInfo[885]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5454: initializer element for `gSpeciesInfo[885]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5454: initializer element for `gSpeciesInfo[885]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5454: initializer element for `gSpeciesInfo[885]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5454: initializer element for `gSpeciesInfo[885]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5464: initializer element for `gSpeciesInfo[886].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5472: initializer element for `gSpeciesInfo[886].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5473: initializer element for `gSpeciesInfo[886].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5475: initializer element for `gSpeciesInfo[886].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5478: initializer element for `gSpeciesInfo[886].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5484: initializer element for `gSpeciesInfo[886].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5506: initializer element for `gSpeciesInfo[886].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:5507: initializer element for `gSpeciesInfo[886]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5507: initializer element for `gSpeciesInfo[886]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5507: initializer element for `gSpeciesInfo[886]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5507: initializer element for `gSpeciesInfo[886]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5507: initializer element for `gSpeciesInfo[886]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5507: initializer element for `gSpeciesInfo[886]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5507: initializer element for `gSpeciesInfo[886]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5517: initializer element for `gSpeciesInfo[887].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5525: initializer element for `gSpeciesInfo[887].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5526: initializer element for `gSpeciesInfo[887].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5528: initializer element for `gSpeciesInfo[887].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5531: initializer element for `gSpeciesInfo[887].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5538: initializer element for `gSpeciesInfo[887].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5560: initializer element for `gSpeciesInfo[887]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5560: initializer element for `gSpeciesInfo[887]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5560: initializer element for `gSpeciesInfo[887]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5560: initializer element for `gSpeciesInfo[887]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5560: initializer element for `gSpeciesInfo[887]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5560: initializer element for `gSpeciesInfo[887]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5572: initializer element for `gSpeciesInfo[888].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5580: initializer element for `gSpeciesInfo[888].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5581: initializer element for `gSpeciesInfo[888].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5583: initializer element for `gSpeciesInfo[888].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5586: initializer element for `gSpeciesInfo[888].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5592: initializer element for `gSpeciesInfo[888].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5616: initializer element for `gSpeciesInfo[888]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5616: initializer element for `gSpeciesInfo[888]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5616: initializer element for `gSpeciesInfo[888]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5616: initializer element for `gSpeciesInfo[888]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5616: initializer element for `gSpeciesInfo[888]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5616: initializer element for `gSpeciesInfo[888]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5626: initializer element for `gSpeciesInfo[1227].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5634: initializer element for `gSpeciesInfo[1227].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5635: initializer element for `gSpeciesInfo[1227].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5637: initializer element for `gSpeciesInfo[1227].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5640: initializer element for `gSpeciesInfo[1227].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5647: initializer element for `gSpeciesInfo[1227].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5671: initializer element for `gSpeciesInfo[1227]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5671: initializer element for `gSpeciesInfo[1227]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5671: initializer element for `gSpeciesInfo[1227]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5671: initializer element for `gSpeciesInfo[1227]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5671: initializer element for `gSpeciesInfo[1227]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5671: initializer element for `gSpeciesInfo[1227]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5683: initializer element for `gSpeciesInfo[889].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5691: initializer element for `gSpeciesInfo[889].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5692: initializer element for `gSpeciesInfo[889].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5694: initializer element for `gSpeciesInfo[889].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5697: initializer element for `gSpeciesInfo[889].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5704: initializer element for `gSpeciesInfo[889].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5728: initializer element for `gSpeciesInfo[889]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5728: initializer element for `gSpeciesInfo[889]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5728: initializer element for `gSpeciesInfo[889]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5728: initializer element for `gSpeciesInfo[889]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5728: initializer element for `gSpeciesInfo[889]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5728: initializer element for `gSpeciesInfo[889]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5738: initializer element for `gSpeciesInfo[1228].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5746: initializer element for `gSpeciesInfo[1228].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5747: initializer element for `gSpeciesInfo[1228].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5749: initializer element for `gSpeciesInfo[1228].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5752: initializer element for `gSpeciesInfo[1228].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5759: initializer element for `gSpeciesInfo[1228].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5783: initializer element for `gSpeciesInfo[1228]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5783: initializer element for `gSpeciesInfo[1228]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5783: initializer element for `gSpeciesInfo[1228]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5783: initializer element for `gSpeciesInfo[1228]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5783: initializer element for `gSpeciesInfo[1228]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5783: initializer element for `gSpeciesInfo[1228]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5795: initializer element for `gSpeciesInfo[890].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5803: initializer element for `gSpeciesInfo[890].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5804: initializer element for `gSpeciesInfo[890].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5806: initializer element for `gSpeciesInfo[890].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5809: initializer element for `gSpeciesInfo[890].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5816: initializer element for `gSpeciesInfo[890].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5840: initializer element for `gSpeciesInfo[890]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5840: initializer element for `gSpeciesInfo[890]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5840: initializer element for `gSpeciesInfo[890]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5840: initializer element for `gSpeciesInfo[890]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5840: initializer element for `gSpeciesInfo[890]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5840: initializer element for `gSpeciesInfo[890]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5850: initializer element for `gSpeciesInfo[1229].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5858: initializer element for `gSpeciesInfo[1229].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5859: initializer element for `gSpeciesInfo[1229].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5861: initializer element for `gSpeciesInfo[1229].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5864: initializer element for `gSpeciesInfo[1229].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5871: initializer element for `gSpeciesInfo[1229].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5895: initializer element for `gSpeciesInfo[1229]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5895: initializer element for `gSpeciesInfo[1229]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5895: initializer element for `gSpeciesInfo[1229]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5895: initializer element for `gSpeciesInfo[1229]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5895: initializer element for `gSpeciesInfo[1229]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5895: initializer element for `gSpeciesInfo[1229]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5907: initializer element for `gSpeciesInfo[891].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5915: initializer element for `gSpeciesInfo[891].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5916: initializer element for `gSpeciesInfo[891].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5918: initializer element for `gSpeciesInfo[891].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5921: initializer element for `gSpeciesInfo[891].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5927: initializer element for `gSpeciesInfo[891].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:5952: initializer element for `gSpeciesInfo[891].evolutions' is not constant +src/data/pokemon/species_info/gen_8_families.h:5953: initializer element for `gSpeciesInfo[891]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5953: initializer element for `gSpeciesInfo[891]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5953: initializer element for `gSpeciesInfo[891]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5953: initializer element for `gSpeciesInfo[891]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5953: initializer element for `gSpeciesInfo[891]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5953: initializer element for `gSpeciesInfo[891]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5953: initializer element for `gSpeciesInfo[891]' is not constant +src/data/pokemon/species_info/gen_8_families.h:5963: initializer element for `gSpeciesInfo[892].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:5971: initializer element for `gSpeciesInfo[892].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:5972: initializer element for `gSpeciesInfo[892].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:5974: initializer element for `gSpeciesInfo[892].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5977: initializer element for `gSpeciesInfo[892].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:5984: initializer element for `gSpeciesInfo[892].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6008: initializer element for `gSpeciesInfo[892]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6008: initializer element for `gSpeciesInfo[892]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6008: initializer element for `gSpeciesInfo[892]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6008: initializer element for `gSpeciesInfo[892]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6008: initializer element for `gSpeciesInfo[892]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6008: initializer element for `gSpeciesInfo[892]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6019: initializer element for `gSpeciesInfo[1521].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6027: initializer element for `gSpeciesInfo[1521].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6028: initializer element for `gSpeciesInfo[1521].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6030: initializer element for `gSpeciesInfo[1521].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6033: initializer element for `gSpeciesInfo[1521].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6040: initializer element for `gSpeciesInfo[1521].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6064: initializer element for `gSpeciesInfo[1521]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6064: initializer element for `gSpeciesInfo[1521]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6064: initializer element for `gSpeciesInfo[1521]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6064: initializer element for `gSpeciesInfo[1521]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6064: initializer element for `gSpeciesInfo[1521]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6064: initializer element for `gSpeciesInfo[1521]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6075: initializer element for `gSpeciesInfo[1230].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6083: initializer element for `gSpeciesInfo[1230].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6084: initializer element for `gSpeciesInfo[1230].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6086: initializer element for `gSpeciesInfo[1230].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6089: initializer element for `gSpeciesInfo[1230].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6096: initializer element for `gSpeciesInfo[1230].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6120: initializer element for `gSpeciesInfo[1230]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6120: initializer element for `gSpeciesInfo[1230]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6120: initializer element for `gSpeciesInfo[1230]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6120: initializer element for `gSpeciesInfo[1230]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6120: initializer element for `gSpeciesInfo[1230]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6120: initializer element for `gSpeciesInfo[1230]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6131: initializer element for `gSpeciesInfo[1522].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6139: initializer element for `gSpeciesInfo[1522].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6140: initializer element for `gSpeciesInfo[1522].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6142: initializer element for `gSpeciesInfo[1522].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6145: initializer element for `gSpeciesInfo[1522].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6152: initializer element for `gSpeciesInfo[1522].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6176: initializer element for `gSpeciesInfo[1522]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6176: initializer element for `gSpeciesInfo[1522]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6176: initializer element for `gSpeciesInfo[1522]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6176: initializer element for `gSpeciesInfo[1522]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6176: initializer element for `gSpeciesInfo[1522]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6176: initializer element for `gSpeciesInfo[1522]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6190: initializer element for `gSpeciesInfo[893].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6198: initializer element for `gSpeciesInfo[893].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6199: initializer element for `gSpeciesInfo[893].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6201: initializer element for `gSpeciesInfo[893].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6204: initializer element for `gSpeciesInfo[893].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6211: initializer element for `gSpeciesInfo[893].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6234: initializer element for `gSpeciesInfo[893]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6234: initializer element for `gSpeciesInfo[893]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6234: initializer element for `gSpeciesInfo[893]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6234: initializer element for `gSpeciesInfo[893]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6234: initializer element for `gSpeciesInfo[893]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6234: initializer element for `gSpeciesInfo[893]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6243: initializer element for `gSpeciesInfo[1231].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6251: initializer element for `gSpeciesInfo[1231].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6252: initializer element for `gSpeciesInfo[1231].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6254: initializer element for `gSpeciesInfo[1231].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6257: initializer element for `gSpeciesInfo[1231].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6264: initializer element for `gSpeciesInfo[1231].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6287: initializer element for `gSpeciesInfo[1231]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6287: initializer element for `gSpeciesInfo[1231]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6287: initializer element for `gSpeciesInfo[1231]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6287: initializer element for `gSpeciesInfo[1231]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6287: initializer element for `gSpeciesInfo[1231]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6287: initializer element for `gSpeciesInfo[1231]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6299: initializer element for `gSpeciesInfo[894].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6307: initializer element for `gSpeciesInfo[894].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6308: initializer element for `gSpeciesInfo[894].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6310: initializer element for `gSpeciesInfo[894].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6313: initializer element for `gSpeciesInfo[894].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6320: initializer element for `gSpeciesInfo[894].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6343: initializer element for `gSpeciesInfo[894]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6343: initializer element for `gSpeciesInfo[894]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6343: initializer element for `gSpeciesInfo[894]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6343: initializer element for `gSpeciesInfo[894]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6343: initializer element for `gSpeciesInfo[894]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6343: initializer element for `gSpeciesInfo[894]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6355: initializer element for `gSpeciesInfo[895].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6363: initializer element for `gSpeciesInfo[895].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6364: initializer element for `gSpeciesInfo[895].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6366: initializer element for `gSpeciesInfo[895].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6369: initializer element for `gSpeciesInfo[895].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6376: initializer element for `gSpeciesInfo[895].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6399: initializer element for `gSpeciesInfo[895]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6399: initializer element for `gSpeciesInfo[895]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6399: initializer element for `gSpeciesInfo[895]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6399: initializer element for `gSpeciesInfo[895]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6399: initializer element for `gSpeciesInfo[895]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6399: initializer element for `gSpeciesInfo[895]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6411: initializer element for `gSpeciesInfo[896].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6419: initializer element for `gSpeciesInfo[896].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6420: initializer element for `gSpeciesInfo[896].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6422: initializer element for `gSpeciesInfo[896].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6425: initializer element for `gSpeciesInfo[896].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6431: initializer element for `gSpeciesInfo[896].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6453: initializer element for `gSpeciesInfo[896]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6453: initializer element for `gSpeciesInfo[896]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6453: initializer element for `gSpeciesInfo[896]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6453: initializer element for `gSpeciesInfo[896]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6453: initializer element for `gSpeciesInfo[896]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6453: initializer element for `gSpeciesInfo[896]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6465: initializer element for `gSpeciesInfo[897].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6473: initializer element for `gSpeciesInfo[897].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6474: initializer element for `gSpeciesInfo[897].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6476: initializer element for `gSpeciesInfo[897].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6479: initializer element for `gSpeciesInfo[897].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6486: initializer element for `gSpeciesInfo[897].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6508: initializer element for `gSpeciesInfo[897]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6508: initializer element for `gSpeciesInfo[897]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6508: initializer element for `gSpeciesInfo[897]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6508: initializer element for `gSpeciesInfo[897]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6508: initializer element for `gSpeciesInfo[897]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6508: initializer element for `gSpeciesInfo[897]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6520: initializer element for `gSpeciesInfo[898].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6528: initializer element for `gSpeciesInfo[898].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6529: initializer element for `gSpeciesInfo[898].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6531: initializer element for `gSpeciesInfo[898].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6534: initializer element for `gSpeciesInfo[898].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6541: initializer element for `gSpeciesInfo[898].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6564: initializer element for `gSpeciesInfo[898]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6564: initializer element for `gSpeciesInfo[898]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6564: initializer element for `gSpeciesInfo[898]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6564: initializer element for `gSpeciesInfo[898]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6564: initializer element for `gSpeciesInfo[898]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6564: initializer element for `gSpeciesInfo[898]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6575: initializer element for `gSpeciesInfo[1232].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6583: initializer element for `gSpeciesInfo[1232].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6584: initializer element for `gSpeciesInfo[1232].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6586: initializer element for `gSpeciesInfo[1232].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6589: initializer element for `gSpeciesInfo[1232].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6596: initializer element for `gSpeciesInfo[1232].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6620: initializer element for `gSpeciesInfo[1232]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6620: initializer element for `gSpeciesInfo[1232]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6620: initializer element for `gSpeciesInfo[1232]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6620: initializer element for `gSpeciesInfo[1232]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6620: initializer element for `gSpeciesInfo[1232]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6620: initializer element for `gSpeciesInfo[1232]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6630: initializer element for `gSpeciesInfo[1233].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6638: initializer element for `gSpeciesInfo[1233].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6639: initializer element for `gSpeciesInfo[1233].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6641: initializer element for `gSpeciesInfo[1233].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6644: initializer element for `gSpeciesInfo[1233].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6651: initializer element for `gSpeciesInfo[1233].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6675: initializer element for `gSpeciesInfo[1233]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6675: initializer element for `gSpeciesInfo[1233]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6675: initializer element for `gSpeciesInfo[1233]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6675: initializer element for `gSpeciesInfo[1233]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6675: initializer element for `gSpeciesInfo[1233]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6675: initializer element for `gSpeciesInfo[1233]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6688: initializer element for `gSpeciesInfo[905].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6696: initializer element for `gSpeciesInfo[905].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6697: initializer element for `gSpeciesInfo[905].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6699: initializer element for `gSpeciesInfo[905].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6702: initializer element for `gSpeciesInfo[905].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6709: initializer element for `gSpeciesInfo[905].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6733: initializer element for `gSpeciesInfo[905]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6733: initializer element for `gSpeciesInfo[905]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6733: initializer element for `gSpeciesInfo[905]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6733: initializer element for `gSpeciesInfo[905]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6733: initializer element for `gSpeciesInfo[905]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6733: initializer element for `gSpeciesInfo[905]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6743: initializer element for `gSpeciesInfo[1103].types' is not constant +src/data/pokemon/species_info/gen_8_families.h:6751: initializer element for `gSpeciesInfo[1103].eggGroups' is not constant +src/data/pokemon/species_info/gen_8_families.h:6752: initializer element for `gSpeciesInfo[1103].abilities' is not constant +src/data/pokemon/species_info/gen_8_families.h:6754: initializer element for `gSpeciesInfo[1103].speciesName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6757: initializer element for `gSpeciesInfo[1103].categoryName' is not constant +src/data/pokemon/species_info/gen_8_families.h:6764: initializer element for `gSpeciesInfo[1103].description' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +src/data/pokemon/species_info/gen_8_families.h:6787: initializer element for `gSpeciesInfo[1103]' is not constant +In file included from src/data/pokemon/species_info.h:68, + from src/pokemon.c:683: +src/data/pokemon/species_info/gen_9_families.h:15: initializer element for `gSpeciesInfo[1289].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:23: initializer element for `gSpeciesInfo[1289].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:24: initializer element for `gSpeciesInfo[1289].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:26: initializer element for `gSpeciesInfo[1289].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:29: initializer element for `gSpeciesInfo[1289].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:36: initializer element for `gSpeciesInfo[1289].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:57: initializer element for `gSpeciesInfo[1289].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:58: initializer element for `gSpeciesInfo[1289]' is not constant +src/data/pokemon/species_info/gen_9_families.h:58: initializer element for `gSpeciesInfo[1289]' is not constant +src/data/pokemon/species_info/gen_9_families.h:58: initializer element for `gSpeciesInfo[1289]' is not constant +src/data/pokemon/species_info/gen_9_families.h:58: initializer element for `gSpeciesInfo[1289]' is not constant +src/data/pokemon/species_info/gen_9_families.h:58: initializer element for `gSpeciesInfo[1289]' is not constant +src/data/pokemon/species_info/gen_9_families.h:58: initializer element for `gSpeciesInfo[1289]' is not constant +src/data/pokemon/species_info/gen_9_families.h:58: initializer element for `gSpeciesInfo[1289]' is not constant +src/data/pokemon/species_info/gen_9_families.h:68: initializer element for `gSpeciesInfo[1290].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:76: initializer element for `gSpeciesInfo[1290].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:77: initializer element for `gSpeciesInfo[1290].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:79: initializer element for `gSpeciesInfo[1290].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:82: initializer element for `gSpeciesInfo[1290].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:89: initializer element for `gSpeciesInfo[1290].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:110: initializer element for `gSpeciesInfo[1290].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:111: initializer element for `gSpeciesInfo[1290]' is not constant +src/data/pokemon/species_info/gen_9_families.h:111: initializer element for `gSpeciesInfo[1290]' is not constant +src/data/pokemon/species_info/gen_9_families.h:111: initializer element for `gSpeciesInfo[1290]' is not constant +src/data/pokemon/species_info/gen_9_families.h:111: initializer element for `gSpeciesInfo[1290]' is not constant +src/data/pokemon/species_info/gen_9_families.h:111: initializer element for `gSpeciesInfo[1290]' is not constant +src/data/pokemon/species_info/gen_9_families.h:111: initializer element for `gSpeciesInfo[1290]' is not constant +src/data/pokemon/species_info/gen_9_families.h:111: initializer element for `gSpeciesInfo[1290]' is not constant +src/data/pokemon/species_info/gen_9_families.h:121: initializer element for `gSpeciesInfo[1291].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:129: initializer element for `gSpeciesInfo[1291].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:130: initializer element for `gSpeciesInfo[1291].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:132: initializer element for `gSpeciesInfo[1291].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:135: initializer element for `gSpeciesInfo[1291].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:142: initializer element for `gSpeciesInfo[1291].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:163: initializer element for `gSpeciesInfo[1291]' is not constant +src/data/pokemon/species_info/gen_9_families.h:163: initializer element for `gSpeciesInfo[1291]' is not constant +src/data/pokemon/species_info/gen_9_families.h:163: initializer element for `gSpeciesInfo[1291]' is not constant +src/data/pokemon/species_info/gen_9_families.h:163: initializer element for `gSpeciesInfo[1291]' is not constant +src/data/pokemon/species_info/gen_9_families.h:163: initializer element for `gSpeciesInfo[1291]' is not constant +src/data/pokemon/species_info/gen_9_families.h:163: initializer element for `gSpeciesInfo[1291]' is not constant +src/data/pokemon/species_info/gen_9_families.h:175: initializer element for `gSpeciesInfo[1292].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:183: initializer element for `gSpeciesInfo[1292].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:184: initializer element for `gSpeciesInfo[1292].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:186: initializer element for `gSpeciesInfo[1292].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:189: initializer element for `gSpeciesInfo[1292].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:196: initializer element for `gSpeciesInfo[1292].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:217: initializer element for `gSpeciesInfo[1292].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:218: initializer element for `gSpeciesInfo[1292]' is not constant +src/data/pokemon/species_info/gen_9_families.h:218: initializer element for `gSpeciesInfo[1292]' is not constant +src/data/pokemon/species_info/gen_9_families.h:218: initializer element for `gSpeciesInfo[1292]' is not constant +src/data/pokemon/species_info/gen_9_families.h:218: initializer element for `gSpeciesInfo[1292]' is not constant +src/data/pokemon/species_info/gen_9_families.h:218: initializer element for `gSpeciesInfo[1292]' is not constant +src/data/pokemon/species_info/gen_9_families.h:218: initializer element for `gSpeciesInfo[1292]' is not constant +src/data/pokemon/species_info/gen_9_families.h:218: initializer element for `gSpeciesInfo[1292]' is not constant +src/data/pokemon/species_info/gen_9_families.h:228: initializer element for `gSpeciesInfo[1293].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:236: initializer element for `gSpeciesInfo[1293].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:237: initializer element for `gSpeciesInfo[1293].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:239: initializer element for `gSpeciesInfo[1293].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:242: initializer element for `gSpeciesInfo[1293].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:249: initializer element for `gSpeciesInfo[1293].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:270: initializer element for `gSpeciesInfo[1293].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:271: initializer element for `gSpeciesInfo[1293]' is not constant +src/data/pokemon/species_info/gen_9_families.h:271: initializer element for `gSpeciesInfo[1293]' is not constant +src/data/pokemon/species_info/gen_9_families.h:271: initializer element for `gSpeciesInfo[1293]' is not constant +src/data/pokemon/species_info/gen_9_families.h:271: initializer element for `gSpeciesInfo[1293]' is not constant +src/data/pokemon/species_info/gen_9_families.h:271: initializer element for `gSpeciesInfo[1293]' is not constant +src/data/pokemon/species_info/gen_9_families.h:271: initializer element for `gSpeciesInfo[1293]' is not constant +src/data/pokemon/species_info/gen_9_families.h:271: initializer element for `gSpeciesInfo[1293]' is not constant +src/data/pokemon/species_info/gen_9_families.h:281: initializer element for `gSpeciesInfo[1294].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:289: initializer element for `gSpeciesInfo[1294].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:290: initializer element for `gSpeciesInfo[1294].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:292: initializer element for `gSpeciesInfo[1294].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:295: initializer element for `gSpeciesInfo[1294].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:302: initializer element for `gSpeciesInfo[1294].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:323: initializer element for `gSpeciesInfo[1294]' is not constant +src/data/pokemon/species_info/gen_9_families.h:323: initializer element for `gSpeciesInfo[1294]' is not constant +src/data/pokemon/species_info/gen_9_families.h:323: initializer element for `gSpeciesInfo[1294]' is not constant +src/data/pokemon/species_info/gen_9_families.h:323: initializer element for `gSpeciesInfo[1294]' is not constant +src/data/pokemon/species_info/gen_9_families.h:323: initializer element for `gSpeciesInfo[1294]' is not constant +src/data/pokemon/species_info/gen_9_families.h:323: initializer element for `gSpeciesInfo[1294]' is not constant +src/data/pokemon/species_info/gen_9_families.h:335: initializer element for `gSpeciesInfo[1295].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:343: initializer element for `gSpeciesInfo[1295].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:344: initializer element for `gSpeciesInfo[1295].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:346: initializer element for `gSpeciesInfo[1295].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:349: initializer element for `gSpeciesInfo[1295].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:356: initializer element for `gSpeciesInfo[1295].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:377: initializer element for `gSpeciesInfo[1295].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:378: initializer element for `gSpeciesInfo[1295]' is not constant +src/data/pokemon/species_info/gen_9_families.h:378: initializer element for `gSpeciesInfo[1295]' is not constant +src/data/pokemon/species_info/gen_9_families.h:378: initializer element for `gSpeciesInfo[1295]' is not constant +src/data/pokemon/species_info/gen_9_families.h:378: initializer element for `gSpeciesInfo[1295]' is not constant +src/data/pokemon/species_info/gen_9_families.h:378: initializer element for `gSpeciesInfo[1295]' is not constant +src/data/pokemon/species_info/gen_9_families.h:378: initializer element for `gSpeciesInfo[1295]' is not constant +src/data/pokemon/species_info/gen_9_families.h:378: initializer element for `gSpeciesInfo[1295]' is not constant +src/data/pokemon/species_info/gen_9_families.h:388: initializer element for `gSpeciesInfo[1296].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:396: initializer element for `gSpeciesInfo[1296].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:397: initializer element for `gSpeciesInfo[1296].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:399: initializer element for `gSpeciesInfo[1296].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:402: initializer element for `gSpeciesInfo[1296].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:409: initializer element for `gSpeciesInfo[1296].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:430: initializer element for `gSpeciesInfo[1296].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:431: initializer element for `gSpeciesInfo[1296]' is not constant +src/data/pokemon/species_info/gen_9_families.h:431: initializer element for `gSpeciesInfo[1296]' is not constant +src/data/pokemon/species_info/gen_9_families.h:431: initializer element for `gSpeciesInfo[1296]' is not constant +src/data/pokemon/species_info/gen_9_families.h:431: initializer element for `gSpeciesInfo[1296]' is not constant +src/data/pokemon/species_info/gen_9_families.h:431: initializer element for `gSpeciesInfo[1296]' is not constant +src/data/pokemon/species_info/gen_9_families.h:431: initializer element for `gSpeciesInfo[1296]' is not constant +src/data/pokemon/species_info/gen_9_families.h:431: initializer element for `gSpeciesInfo[1296]' is not constant +src/data/pokemon/species_info/gen_9_families.h:441: initializer element for `gSpeciesInfo[1297].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:449: initializer element for `gSpeciesInfo[1297].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:450: initializer element for `gSpeciesInfo[1297].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:452: initializer element for `gSpeciesInfo[1297].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:455: initializer element for `gSpeciesInfo[1297].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:462: initializer element for `gSpeciesInfo[1297].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:483: initializer element for `gSpeciesInfo[1297]' is not constant +src/data/pokemon/species_info/gen_9_families.h:483: initializer element for `gSpeciesInfo[1297]' is not constant +src/data/pokemon/species_info/gen_9_families.h:483: initializer element for `gSpeciesInfo[1297]' is not constant +src/data/pokemon/species_info/gen_9_families.h:483: initializer element for `gSpeciesInfo[1297]' is not constant +src/data/pokemon/species_info/gen_9_families.h:483: initializer element for `gSpeciesInfo[1297]' is not constant +src/data/pokemon/species_info/gen_9_families.h:483: initializer element for `gSpeciesInfo[1297]' is not constant +src/data/pokemon/species_info/gen_9_families.h:495: initializer element for `gSpeciesInfo[1298].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:503: initializer element for `gSpeciesInfo[1298].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:504: initializer element for `gSpeciesInfo[1298].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:506: initializer element for `gSpeciesInfo[1298].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:509: initializer element for `gSpeciesInfo[1298].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:516: initializer element for `gSpeciesInfo[1298].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:538: initializer element for `gSpeciesInfo[1298].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:539: initializer element for `gSpeciesInfo[1298]' is not constant +src/data/pokemon/species_info/gen_9_families.h:539: initializer element for `gSpeciesInfo[1298]' is not constant +src/data/pokemon/species_info/gen_9_families.h:539: initializer element for `gSpeciesInfo[1298]' is not constant +src/data/pokemon/species_info/gen_9_families.h:539: initializer element for `gSpeciesInfo[1298]' is not constant +src/data/pokemon/species_info/gen_9_families.h:539: initializer element for `gSpeciesInfo[1298]' is not constant +src/data/pokemon/species_info/gen_9_families.h:539: initializer element for `gSpeciesInfo[1298]' is not constant +src/data/pokemon/species_info/gen_9_families.h:539: initializer element for `gSpeciesInfo[1298]' is not constant +src/data/pokemon/species_info/gen_9_families.h:549: initializer element for `gSpeciesInfo[1299].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:557: initializer element for `gSpeciesInfo[1299].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:558: initializer element for `gSpeciesInfo[1299].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:560: initializer element for `gSpeciesInfo[1299].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:563: initializer element for `gSpeciesInfo[1299].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:569: initializer element for `gSpeciesInfo[1299].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:591: initializer element for `gSpeciesInfo[1299]' is not constant +src/data/pokemon/species_info/gen_9_families.h:591: initializer element for `gSpeciesInfo[1299]' is not constant +src/data/pokemon/species_info/gen_9_families.h:591: initializer element for `gSpeciesInfo[1299]' is not constant +src/data/pokemon/species_info/gen_9_families.h:591: initializer element for `gSpeciesInfo[1299]' is not constant +src/data/pokemon/species_info/gen_9_families.h:591: initializer element for `gSpeciesInfo[1299]' is not constant +src/data/pokemon/species_info/gen_9_families.h:591: initializer element for `gSpeciesInfo[1299]' is not constant +src/data/pokemon/species_info/gen_9_families.h:601: initializer element for `gSpeciesInfo[1300].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:609: initializer element for `gSpeciesInfo[1300].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:610: initializer element for `gSpeciesInfo[1300].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:612: initializer element for `gSpeciesInfo[1300].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:615: initializer element for `gSpeciesInfo[1300].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:622: initializer element for `gSpeciesInfo[1300].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:644: initializer element for `gSpeciesInfo[1300]' is not constant +src/data/pokemon/species_info/gen_9_families.h:644: initializer element for `gSpeciesInfo[1300]' is not constant +src/data/pokemon/species_info/gen_9_families.h:644: initializer element for `gSpeciesInfo[1300]' is not constant +src/data/pokemon/species_info/gen_9_families.h:644: initializer element for `gSpeciesInfo[1300]' is not constant +src/data/pokemon/species_info/gen_9_families.h:644: initializer element for `gSpeciesInfo[1300]' is not constant +src/data/pokemon/species_info/gen_9_families.h:644: initializer element for `gSpeciesInfo[1300]' is not constant +src/data/pokemon/species_info/gen_9_families.h:656: initializer element for `gSpeciesInfo[1301].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:664: initializer element for `gSpeciesInfo[1301].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:665: initializer element for `gSpeciesInfo[1301].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:667: initializer element for `gSpeciesInfo[1301].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:670: initializer element for `gSpeciesInfo[1301].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:677: initializer element for `gSpeciesInfo[1301].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:698: initializer element for `gSpeciesInfo[1301].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:699: initializer element for `gSpeciesInfo[1301]' is not constant +src/data/pokemon/species_info/gen_9_families.h:699: initializer element for `gSpeciesInfo[1301]' is not constant +src/data/pokemon/species_info/gen_9_families.h:699: initializer element for `gSpeciesInfo[1301]' is not constant +src/data/pokemon/species_info/gen_9_families.h:699: initializer element for `gSpeciesInfo[1301]' is not constant +src/data/pokemon/species_info/gen_9_families.h:699: initializer element for `gSpeciesInfo[1301]' is not constant +src/data/pokemon/species_info/gen_9_families.h:699: initializer element for `gSpeciesInfo[1301]' is not constant +src/data/pokemon/species_info/gen_9_families.h:699: initializer element for `gSpeciesInfo[1301]' is not constant +src/data/pokemon/species_info/gen_9_families.h:709: initializer element for `gSpeciesInfo[1302].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:717: initializer element for `gSpeciesInfo[1302].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:718: initializer element for `gSpeciesInfo[1302].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:720: initializer element for `gSpeciesInfo[1302].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:723: initializer element for `gSpeciesInfo[1302].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:730: initializer element for `gSpeciesInfo[1302].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:751: initializer element for `gSpeciesInfo[1302]' is not constant +src/data/pokemon/species_info/gen_9_families.h:751: initializer element for `gSpeciesInfo[1302]' is not constant +src/data/pokemon/species_info/gen_9_families.h:751: initializer element for `gSpeciesInfo[1302]' is not constant +src/data/pokemon/species_info/gen_9_families.h:751: initializer element for `gSpeciesInfo[1302]' is not constant +src/data/pokemon/species_info/gen_9_families.h:751: initializer element for `gSpeciesInfo[1302]' is not constant +src/data/pokemon/species_info/gen_9_families.h:751: initializer element for `gSpeciesInfo[1302]' is not constant +src/data/pokemon/species_info/gen_9_families.h:763: initializer element for `gSpeciesInfo[1303].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:771: initializer element for `gSpeciesInfo[1303].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:772: initializer element for `gSpeciesInfo[1303].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:774: initializer element for `gSpeciesInfo[1303].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:777: initializer element for `gSpeciesInfo[1303].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:784: initializer element for `gSpeciesInfo[1303].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:805: initializer element for `gSpeciesInfo[1303].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:806: initializer element for `gSpeciesInfo[1303]' is not constant +src/data/pokemon/species_info/gen_9_families.h:806: initializer element for `gSpeciesInfo[1303]' is not constant +src/data/pokemon/species_info/gen_9_families.h:806: initializer element for `gSpeciesInfo[1303]' is not constant +src/data/pokemon/species_info/gen_9_families.h:806: initializer element for `gSpeciesInfo[1303]' is not constant +src/data/pokemon/species_info/gen_9_families.h:806: initializer element for `gSpeciesInfo[1303]' is not constant +src/data/pokemon/species_info/gen_9_families.h:806: initializer element for `gSpeciesInfo[1303]' is not constant +src/data/pokemon/species_info/gen_9_families.h:806: initializer element for `gSpeciesInfo[1303]' is not constant +src/data/pokemon/species_info/gen_9_families.h:816: initializer element for `gSpeciesInfo[1304].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:824: initializer element for `gSpeciesInfo[1304].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:825: initializer element for `gSpeciesInfo[1304].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:827: initializer element for `gSpeciesInfo[1304].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:830: initializer element for `gSpeciesInfo[1304].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:837: initializer element for `gSpeciesInfo[1304].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:858: initializer element for `gSpeciesInfo[1304]' is not constant +src/data/pokemon/species_info/gen_9_families.h:858: initializer element for `gSpeciesInfo[1304]' is not constant +src/data/pokemon/species_info/gen_9_families.h:858: initializer element for `gSpeciesInfo[1304]' is not constant +src/data/pokemon/species_info/gen_9_families.h:858: initializer element for `gSpeciesInfo[1304]' is not constant +src/data/pokemon/species_info/gen_9_families.h:858: initializer element for `gSpeciesInfo[1304]' is not constant +src/data/pokemon/species_info/gen_9_families.h:858: initializer element for `gSpeciesInfo[1304]' is not constant +src/data/pokemon/species_info/gen_9_families.h:870: initializer element for `gSpeciesInfo[1305].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:878: initializer element for `gSpeciesInfo[1305].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:879: initializer element for `gSpeciesInfo[1305].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:881: initializer element for `gSpeciesInfo[1305].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:884: initializer element for `gSpeciesInfo[1305].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:891: initializer element for `gSpeciesInfo[1305].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:912: initializer element for `gSpeciesInfo[1305].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:913: initializer element for `gSpeciesInfo[1305]' is not constant +src/data/pokemon/species_info/gen_9_families.h:913: initializer element for `gSpeciesInfo[1305]' is not constant +src/data/pokemon/species_info/gen_9_families.h:913: initializer element for `gSpeciesInfo[1305]' is not constant +src/data/pokemon/species_info/gen_9_families.h:913: initializer element for `gSpeciesInfo[1305]' is not constant +src/data/pokemon/species_info/gen_9_families.h:913: initializer element for `gSpeciesInfo[1305]' is not constant +src/data/pokemon/species_info/gen_9_families.h:913: initializer element for `gSpeciesInfo[1305]' is not constant +src/data/pokemon/species_info/gen_9_families.h:913: initializer element for `gSpeciesInfo[1305]' is not constant +src/data/pokemon/species_info/gen_9_families.h:923: initializer element for `gSpeciesInfo[1306].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:931: initializer element for `gSpeciesInfo[1306].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:932: initializer element for `gSpeciesInfo[1306].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:934: initializer element for `gSpeciesInfo[1306].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:937: initializer element for `gSpeciesInfo[1306].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:944: initializer element for `gSpeciesInfo[1306].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:965: initializer element for `gSpeciesInfo[1306].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:966: initializer element for `gSpeciesInfo[1306]' is not constant +src/data/pokemon/species_info/gen_9_families.h:966: initializer element for `gSpeciesInfo[1306]' is not constant +src/data/pokemon/species_info/gen_9_families.h:966: initializer element for `gSpeciesInfo[1306]' is not constant +src/data/pokemon/species_info/gen_9_families.h:966: initializer element for `gSpeciesInfo[1306]' is not constant +src/data/pokemon/species_info/gen_9_families.h:966: initializer element for `gSpeciesInfo[1306]' is not constant +src/data/pokemon/species_info/gen_9_families.h:966: initializer element for `gSpeciesInfo[1306]' is not constant +src/data/pokemon/species_info/gen_9_families.h:966: initializer element for `gSpeciesInfo[1306]' is not constant +src/data/pokemon/species_info/gen_9_families.h:976: initializer element for `gSpeciesInfo[1307].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:984: initializer element for `gSpeciesInfo[1307].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:985: initializer element for `gSpeciesInfo[1307].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:987: initializer element for `gSpeciesInfo[1307].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:990: initializer element for `gSpeciesInfo[1307].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:997: initializer element for `gSpeciesInfo[1307].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1018: initializer element for `gSpeciesInfo[1307]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1018: initializer element for `gSpeciesInfo[1307]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1018: initializer element for `gSpeciesInfo[1307]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1018: initializer element for `gSpeciesInfo[1307]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1018: initializer element for `gSpeciesInfo[1307]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1018: initializer element for `gSpeciesInfo[1307]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1030: initializer element for `gSpeciesInfo[1308].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1038: initializer element for `gSpeciesInfo[1308].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1039: initializer element for `gSpeciesInfo[1308].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1041: initializer element for `gSpeciesInfo[1308].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1044: initializer element for `gSpeciesInfo[1308].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1051: initializer element for `gSpeciesInfo[1308].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1073: initializer element for `gSpeciesInfo[1308].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:1074: initializer element for `gSpeciesInfo[1308]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1074: initializer element for `gSpeciesInfo[1308]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1074: initializer element for `gSpeciesInfo[1308]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1074: initializer element for `gSpeciesInfo[1308]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1074: initializer element for `gSpeciesInfo[1308]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1074: initializer element for `gSpeciesInfo[1308]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1074: initializer element for `gSpeciesInfo[1308]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1084: initializer element for `gSpeciesInfo[1309].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1092: initializer element for `gSpeciesInfo[1309].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1093: initializer element for `gSpeciesInfo[1309].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1095: initializer element for `gSpeciesInfo[1309].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1098: initializer element for `gSpeciesInfo[1309].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1105: initializer element for `gSpeciesInfo[1309].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1127: initializer element for `gSpeciesInfo[1309]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1127: initializer element for `gSpeciesInfo[1309]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1127: initializer element for `gSpeciesInfo[1309]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1127: initializer element for `gSpeciesInfo[1309]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1127: initializer element for `gSpeciesInfo[1309]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1127: initializer element for `gSpeciesInfo[1309]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1136: initializer element for `gSpeciesInfo[1310].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1144: initializer element for `gSpeciesInfo[1310].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1145: initializer element for `gSpeciesInfo[1310].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1147: initializer element for `gSpeciesInfo[1310].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1150: initializer element for `gSpeciesInfo[1310].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1157: initializer element for `gSpeciesInfo[1310].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1179: initializer element for `gSpeciesInfo[1310]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1179: initializer element for `gSpeciesInfo[1310]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1179: initializer element for `gSpeciesInfo[1310]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1179: initializer element for `gSpeciesInfo[1310]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1179: initializer element for `gSpeciesInfo[1310]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1179: initializer element for `gSpeciesInfo[1310]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1191: initializer element for `gSpeciesInfo[1311].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1199: initializer element for `gSpeciesInfo[1311].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1200: initializer element for `gSpeciesInfo[1311].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1202: initializer element for `gSpeciesInfo[1311].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1205: initializer element for `gSpeciesInfo[1311].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1212: initializer element for `gSpeciesInfo[1311].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1233: initializer element for `gSpeciesInfo[1311].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:1234: initializer element for `gSpeciesInfo[1311]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1234: initializer element for `gSpeciesInfo[1311]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1234: initializer element for `gSpeciesInfo[1311]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1234: initializer element for `gSpeciesInfo[1311]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1234: initializer element for `gSpeciesInfo[1311]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1234: initializer element for `gSpeciesInfo[1311]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1234: initializer element for `gSpeciesInfo[1311]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1244: initializer element for `gSpeciesInfo[1312].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1252: initializer element for `gSpeciesInfo[1312].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1253: initializer element for `gSpeciesInfo[1312].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1255: initializer element for `gSpeciesInfo[1312].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1258: initializer element for `gSpeciesInfo[1312].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1265: initializer element for `gSpeciesInfo[1312].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1286: initializer element for `gSpeciesInfo[1312]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1286: initializer element for `gSpeciesInfo[1312]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1286: initializer element for `gSpeciesInfo[1312]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1286: initializer element for `gSpeciesInfo[1312]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1286: initializer element for `gSpeciesInfo[1312]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1286: initializer element for `gSpeciesInfo[1312]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1298: initializer element for `gSpeciesInfo[1313].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1306: initializer element for `gSpeciesInfo[1313].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1307: initializer element for `gSpeciesInfo[1313].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1309: initializer element for `gSpeciesInfo[1313].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1312: initializer element for `gSpeciesInfo[1313].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1319: initializer element for `gSpeciesInfo[1313].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1340: initializer element for `gSpeciesInfo[1313].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:1341: initializer element for `gSpeciesInfo[1313]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1341: initializer element for `gSpeciesInfo[1313]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1341: initializer element for `gSpeciesInfo[1313]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1341: initializer element for `gSpeciesInfo[1313]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1341: initializer element for `gSpeciesInfo[1313]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1341: initializer element for `gSpeciesInfo[1313]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1341: initializer element for `gSpeciesInfo[1313]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1351: initializer element for `gSpeciesInfo[1314].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1359: initializer element for `gSpeciesInfo[1314].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1360: initializer element for `gSpeciesInfo[1314].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1362: initializer element for `gSpeciesInfo[1314].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1365: initializer element for `gSpeciesInfo[1314].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1372: initializer element for `gSpeciesInfo[1314].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1393: initializer element for `gSpeciesInfo[1314].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:1394: initializer element for `gSpeciesInfo[1314]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1394: initializer element for `gSpeciesInfo[1314]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1394: initializer element for `gSpeciesInfo[1314]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1394: initializer element for `gSpeciesInfo[1314]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1394: initializer element for `gSpeciesInfo[1314]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1394: initializer element for `gSpeciesInfo[1314]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1394: initializer element for `gSpeciesInfo[1314]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1404: initializer element for `gSpeciesInfo[1315].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1412: initializer element for `gSpeciesInfo[1315].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1413: initializer element for `gSpeciesInfo[1315].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1415: initializer element for `gSpeciesInfo[1315].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1418: initializer element for `gSpeciesInfo[1315].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1425: initializer element for `gSpeciesInfo[1315].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1446: initializer element for `gSpeciesInfo[1315]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1446: initializer element for `gSpeciesInfo[1315]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1446: initializer element for `gSpeciesInfo[1315]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1446: initializer element for `gSpeciesInfo[1315]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1446: initializer element for `gSpeciesInfo[1315]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1446: initializer element for `gSpeciesInfo[1315]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1458: initializer element for `gSpeciesInfo[1316].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1466: initializer element for `gSpeciesInfo[1316].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1467: initializer element for `gSpeciesInfo[1316].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1469: initializer element for `gSpeciesInfo[1316].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1472: initializer element for `gSpeciesInfo[1316].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1479: initializer element for `gSpeciesInfo[1316].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1501: initializer element for `gSpeciesInfo[1316]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1501: initializer element for `gSpeciesInfo[1316]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1501: initializer element for `gSpeciesInfo[1316]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1501: initializer element for `gSpeciesInfo[1316]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1501: initializer element for `gSpeciesInfo[1316]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1501: initializer element for `gSpeciesInfo[1316]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1511: initializer element for `gSpeciesInfo[1317].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1519: initializer element for `gSpeciesInfo[1317].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1520: initializer element for `gSpeciesInfo[1317].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1522: initializer element for `gSpeciesInfo[1317].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1525: initializer element for `gSpeciesInfo[1317].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1532: initializer element for `gSpeciesInfo[1317].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1554: initializer element for `gSpeciesInfo[1317]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1554: initializer element for `gSpeciesInfo[1317]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1554: initializer element for `gSpeciesInfo[1317]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1554: initializer element for `gSpeciesInfo[1317]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1554: initializer element for `gSpeciesInfo[1317]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1554: initializer element for `gSpeciesInfo[1317]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1564: initializer element for `gSpeciesInfo[1318].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1572: initializer element for `gSpeciesInfo[1318].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1573: initializer element for `gSpeciesInfo[1318].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1575: initializer element for `gSpeciesInfo[1318].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1578: initializer element for `gSpeciesInfo[1318].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1585: initializer element for `gSpeciesInfo[1318].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1607: initializer element for `gSpeciesInfo[1318]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1607: initializer element for `gSpeciesInfo[1318]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1607: initializer element for `gSpeciesInfo[1318]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1607: initializer element for `gSpeciesInfo[1318]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1607: initializer element for `gSpeciesInfo[1318]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1607: initializer element for `gSpeciesInfo[1318]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1617: initializer element for `gSpeciesInfo[1319].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1625: initializer element for `gSpeciesInfo[1319].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1626: initializer element for `gSpeciesInfo[1319].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1628: initializer element for `gSpeciesInfo[1319].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1631: initializer element for `gSpeciesInfo[1319].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1638: initializer element for `gSpeciesInfo[1319].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1660: initializer element for `gSpeciesInfo[1319]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1660: initializer element for `gSpeciesInfo[1319]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1660: initializer element for `gSpeciesInfo[1319]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1660: initializer element for `gSpeciesInfo[1319]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1660: initializer element for `gSpeciesInfo[1319]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1660: initializer element for `gSpeciesInfo[1319]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1672: initializer element for `gSpeciesInfo[1320].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1680: initializer element for `gSpeciesInfo[1320].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1681: initializer element for `gSpeciesInfo[1320].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1683: initializer element for `gSpeciesInfo[1320].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1686: initializer element for `gSpeciesInfo[1320].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1693: initializer element for `gSpeciesInfo[1320].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1714: initializer element for `gSpeciesInfo[1320].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:1715: initializer element for `gSpeciesInfo[1320]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1715: initializer element for `gSpeciesInfo[1320]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1715: initializer element for `gSpeciesInfo[1320]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1715: initializer element for `gSpeciesInfo[1320]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1715: initializer element for `gSpeciesInfo[1320]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1715: initializer element for `gSpeciesInfo[1320]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1715: initializer element for `gSpeciesInfo[1320]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1725: initializer element for `gSpeciesInfo[1321].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1733: initializer element for `gSpeciesInfo[1321].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1734: initializer element for `gSpeciesInfo[1321].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1736: initializer element for `gSpeciesInfo[1321].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1739: initializer element for `gSpeciesInfo[1321].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1746: initializer element for `gSpeciesInfo[1321].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1767: initializer element for `gSpeciesInfo[1321].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:1768: initializer element for `gSpeciesInfo[1321]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1768: initializer element for `gSpeciesInfo[1321]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1768: initializer element for `gSpeciesInfo[1321]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1768: initializer element for `gSpeciesInfo[1321]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1768: initializer element for `gSpeciesInfo[1321]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1768: initializer element for `gSpeciesInfo[1321]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1768: initializer element for `gSpeciesInfo[1321]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1778: initializer element for `gSpeciesInfo[1322].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1786: initializer element for `gSpeciesInfo[1322].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1787: initializer element for `gSpeciesInfo[1322].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1789: initializer element for `gSpeciesInfo[1322].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1792: initializer element for `gSpeciesInfo[1322].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1799: initializer element for `gSpeciesInfo[1322].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1820: initializer element for `gSpeciesInfo[1322]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1820: initializer element for `gSpeciesInfo[1322]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1820: initializer element for `gSpeciesInfo[1322]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1820: initializer element for `gSpeciesInfo[1322]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1820: initializer element for `gSpeciesInfo[1322]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1820: initializer element for `gSpeciesInfo[1322]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1832: initializer element for `gSpeciesInfo[1323].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1840: initializer element for `gSpeciesInfo[1323].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1841: initializer element for `gSpeciesInfo[1323].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1843: initializer element for `gSpeciesInfo[1323].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1846: initializer element for `gSpeciesInfo[1323].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1853: initializer element for `gSpeciesInfo[1323].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1875: initializer element for `gSpeciesInfo[1323].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:1876: initializer element for `gSpeciesInfo[1323]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1876: initializer element for `gSpeciesInfo[1323]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1876: initializer element for `gSpeciesInfo[1323]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1876: initializer element for `gSpeciesInfo[1323]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1876: initializer element for `gSpeciesInfo[1323]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1876: initializer element for `gSpeciesInfo[1323]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1876: initializer element for `gSpeciesInfo[1323]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1886: initializer element for `gSpeciesInfo[1324].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1894: initializer element for `gSpeciesInfo[1324].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1895: initializer element for `gSpeciesInfo[1324].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1897: initializer element for `gSpeciesInfo[1324].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1900: initializer element for `gSpeciesInfo[1324].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1907: initializer element for `gSpeciesInfo[1324].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1928: initializer element for `gSpeciesInfo[1324]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1928: initializer element for `gSpeciesInfo[1324]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1928: initializer element for `gSpeciesInfo[1324]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1928: initializer element for `gSpeciesInfo[1324]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1928: initializer element for `gSpeciesInfo[1324]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1928: initializer element for `gSpeciesInfo[1324]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1938: initializer element for `gSpeciesInfo[1325].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:1946: initializer element for `gSpeciesInfo[1325].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:1947: initializer element for `gSpeciesInfo[1325].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:1949: initializer element for `gSpeciesInfo[1325].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1952: initializer element for `gSpeciesInfo[1325].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:1959: initializer element for `gSpeciesInfo[1325].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:1980: initializer element for `gSpeciesInfo[1325]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1980: initializer element for `gSpeciesInfo[1325]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1980: initializer element for `gSpeciesInfo[1325]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1980: initializer element for `gSpeciesInfo[1325]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1980: initializer element for `gSpeciesInfo[1325]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1980: initializer element for `gSpeciesInfo[1325]' is not constant +src/data/pokemon/species_info/gen_9_families.h:1992: initializer element for `gSpeciesInfo[1326].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2000: initializer element for `gSpeciesInfo[1326].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2001: initializer element for `gSpeciesInfo[1326].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2003: initializer element for `gSpeciesInfo[1326].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2006: initializer element for `gSpeciesInfo[1326].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2013: initializer element for `gSpeciesInfo[1326].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2035: initializer element for `gSpeciesInfo[1326].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2036: initializer element for `gSpeciesInfo[1326]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2036: initializer element for `gSpeciesInfo[1326]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2036: initializer element for `gSpeciesInfo[1326]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2036: initializer element for `gSpeciesInfo[1326]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2036: initializer element for `gSpeciesInfo[1326]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2036: initializer element for `gSpeciesInfo[1326]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2036: initializer element for `gSpeciesInfo[1326]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2046: initializer element for `gSpeciesInfo[1327].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2054: initializer element for `gSpeciesInfo[1327].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2055: initializer element for `gSpeciesInfo[1327].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2057: initializer element for `gSpeciesInfo[1327].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2060: initializer element for `gSpeciesInfo[1327].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2067: initializer element for `gSpeciesInfo[1327].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2088: initializer element for `gSpeciesInfo[1327]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2088: initializer element for `gSpeciesInfo[1327]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2088: initializer element for `gSpeciesInfo[1327]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2088: initializer element for `gSpeciesInfo[1327]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2088: initializer element for `gSpeciesInfo[1327]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2088: initializer element for `gSpeciesInfo[1327]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2100: initializer element for `gSpeciesInfo[1328].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2108: initializer element for `gSpeciesInfo[1328].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2109: initializer element for `gSpeciesInfo[1328].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2111: initializer element for `gSpeciesInfo[1328].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2114: initializer element for `gSpeciesInfo[1328].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2121: initializer element for `gSpeciesInfo[1328].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2142: initializer element for `gSpeciesInfo[1328].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2143: initializer element for `gSpeciesInfo[1328]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2143: initializer element for `gSpeciesInfo[1328]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2143: initializer element for `gSpeciesInfo[1328]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2143: initializer element for `gSpeciesInfo[1328]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2143: initializer element for `gSpeciesInfo[1328]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2143: initializer element for `gSpeciesInfo[1328]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2143: initializer element for `gSpeciesInfo[1328]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2153: initializer element for `gSpeciesInfo[1329].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2161: initializer element for `gSpeciesInfo[1329].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2162: initializer element for `gSpeciesInfo[1329].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2164: initializer element for `gSpeciesInfo[1329].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2167: initializer element for `gSpeciesInfo[1329].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2174: initializer element for `gSpeciesInfo[1329].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2195: initializer element for `gSpeciesInfo[1329]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2195: initializer element for `gSpeciesInfo[1329]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2195: initializer element for `gSpeciesInfo[1329]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2195: initializer element for `gSpeciesInfo[1329]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2195: initializer element for `gSpeciesInfo[1329]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2195: initializer element for `gSpeciesInfo[1329]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2207: initializer element for `gSpeciesInfo[1330].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2215: initializer element for `gSpeciesInfo[1330].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2216: initializer element for `gSpeciesInfo[1330].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2218: initializer element for `gSpeciesInfo[1330].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2221: initializer element for `gSpeciesInfo[1330].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2228: initializer element for `gSpeciesInfo[1330].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2249: initializer element for `gSpeciesInfo[1330].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2250: initializer element for `gSpeciesInfo[1330]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2250: initializer element for `gSpeciesInfo[1330]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2250: initializer element for `gSpeciesInfo[1330]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2250: initializer element for `gSpeciesInfo[1330]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2250: initializer element for `gSpeciesInfo[1330]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2250: initializer element for `gSpeciesInfo[1330]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2250: initializer element for `gSpeciesInfo[1330]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2260: initializer element for `gSpeciesInfo[1331].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2268: initializer element for `gSpeciesInfo[1331].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2269: initializer element for `gSpeciesInfo[1331].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2271: initializer element for `gSpeciesInfo[1331].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2274: initializer element for `gSpeciesInfo[1331].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2281: initializer element for `gSpeciesInfo[1331].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2302: initializer element for `gSpeciesInfo[1331]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2302: initializer element for `gSpeciesInfo[1331]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2302: initializer element for `gSpeciesInfo[1331]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2302: initializer element for `gSpeciesInfo[1331]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2302: initializer element for `gSpeciesInfo[1331]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2302: initializer element for `gSpeciesInfo[1331]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2314: initializer element for `gSpeciesInfo[1332].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2322: initializer element for `gSpeciesInfo[1332].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2323: initializer element for `gSpeciesInfo[1332].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2325: initializer element for `gSpeciesInfo[1332].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2328: initializer element for `gSpeciesInfo[1332].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2335: initializer element for `gSpeciesInfo[1332].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2356: initializer element for `gSpeciesInfo[1332].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2357: initializer element for `gSpeciesInfo[1332]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2357: initializer element for `gSpeciesInfo[1332]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2357: initializer element for `gSpeciesInfo[1332]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2357: initializer element for `gSpeciesInfo[1332]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2357: initializer element for `gSpeciesInfo[1332]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2357: initializer element for `gSpeciesInfo[1332]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2357: initializer element for `gSpeciesInfo[1332]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2367: initializer element for `gSpeciesInfo[1333].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2375: initializer element for `gSpeciesInfo[1333].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2376: initializer element for `gSpeciesInfo[1333].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2378: initializer element for `gSpeciesInfo[1333].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2381: initializer element for `gSpeciesInfo[1333].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2388: initializer element for `gSpeciesInfo[1333].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2409: initializer element for `gSpeciesInfo[1333]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2409: initializer element for `gSpeciesInfo[1333]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2409: initializer element for `gSpeciesInfo[1333]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2409: initializer element for `gSpeciesInfo[1333]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2409: initializer element for `gSpeciesInfo[1333]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2409: initializer element for `gSpeciesInfo[1333]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2421: initializer element for `gSpeciesInfo[1334].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2429: initializer element for `gSpeciesInfo[1334].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2430: initializer element for `gSpeciesInfo[1334].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2432: initializer element for `gSpeciesInfo[1334].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2435: initializer element for `gSpeciesInfo[1334].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2442: initializer element for `gSpeciesInfo[1334].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2463: initializer element for `gSpeciesInfo[1334].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2464: initializer element for `gSpeciesInfo[1334]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2464: initializer element for `gSpeciesInfo[1334]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2464: initializer element for `gSpeciesInfo[1334]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2464: initializer element for `gSpeciesInfo[1334]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2464: initializer element for `gSpeciesInfo[1334]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2464: initializer element for `gSpeciesInfo[1334]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2464: initializer element for `gSpeciesInfo[1334]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2474: initializer element for `gSpeciesInfo[1335].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2482: initializer element for `gSpeciesInfo[1335].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2483: initializer element for `gSpeciesInfo[1335].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2485: initializer element for `gSpeciesInfo[1335].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2488: initializer element for `gSpeciesInfo[1335].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2495: initializer element for `gSpeciesInfo[1335].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2516: initializer element for `gSpeciesInfo[1335]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2516: initializer element for `gSpeciesInfo[1335]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2516: initializer element for `gSpeciesInfo[1335]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2516: initializer element for `gSpeciesInfo[1335]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2516: initializer element for `gSpeciesInfo[1335]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2516: initializer element for `gSpeciesInfo[1335]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2528: initializer element for `gSpeciesInfo[1336].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2536: initializer element for `gSpeciesInfo[1336].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2537: initializer element for `gSpeciesInfo[1336].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2539: initializer element for `gSpeciesInfo[1336].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2542: initializer element for `gSpeciesInfo[1336].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2549: initializer element for `gSpeciesInfo[1336].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2570: initializer element for `gSpeciesInfo[1336].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2571: initializer element for `gSpeciesInfo[1336]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2571: initializer element for `gSpeciesInfo[1336]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2571: initializer element for `gSpeciesInfo[1336]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2571: initializer element for `gSpeciesInfo[1336]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2571: initializer element for `gSpeciesInfo[1336]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2571: initializer element for `gSpeciesInfo[1336]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2571: initializer element for `gSpeciesInfo[1336]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2581: initializer element for `gSpeciesInfo[1337].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2589: initializer element for `gSpeciesInfo[1337].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2590: initializer element for `gSpeciesInfo[1337].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2592: initializer element for `gSpeciesInfo[1337].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2595: initializer element for `gSpeciesInfo[1337].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2602: initializer element for `gSpeciesInfo[1337].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2623: initializer element for `gSpeciesInfo[1337]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2623: initializer element for `gSpeciesInfo[1337]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2623: initializer element for `gSpeciesInfo[1337]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2623: initializer element for `gSpeciesInfo[1337]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2623: initializer element for `gSpeciesInfo[1337]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2623: initializer element for `gSpeciesInfo[1337]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2635: initializer element for `gSpeciesInfo[1338].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2643: initializer element for `gSpeciesInfo[1338].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2644: initializer element for `gSpeciesInfo[1338].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2646: initializer element for `gSpeciesInfo[1338].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2649: initializer element for `gSpeciesInfo[1338].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2656: initializer element for `gSpeciesInfo[1338].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2677: initializer element for `gSpeciesInfo[1338]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2677: initializer element for `gSpeciesInfo[1338]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2677: initializer element for `gSpeciesInfo[1338]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2677: initializer element for `gSpeciesInfo[1338]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2677: initializer element for `gSpeciesInfo[1338]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2677: initializer element for `gSpeciesInfo[1338]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2689: initializer element for `gSpeciesInfo[1339].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2697: initializer element for `gSpeciesInfo[1339].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2698: initializer element for `gSpeciesInfo[1339].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2700: initializer element for `gSpeciesInfo[1339].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2703: initializer element for `gSpeciesInfo[1339].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2710: initializer element for `gSpeciesInfo[1339].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2731: initializer element for `gSpeciesInfo[1339].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2732: initializer element for `gSpeciesInfo[1339]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2732: initializer element for `gSpeciesInfo[1339]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2732: initializer element for `gSpeciesInfo[1339]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2732: initializer element for `gSpeciesInfo[1339]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2732: initializer element for `gSpeciesInfo[1339]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2732: initializer element for `gSpeciesInfo[1339]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2732: initializer element for `gSpeciesInfo[1339]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2742: initializer element for `gSpeciesInfo[1340].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2750: initializer element for `gSpeciesInfo[1340].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2751: initializer element for `gSpeciesInfo[1340].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2753: initializer element for `gSpeciesInfo[1340].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2756: initializer element for `gSpeciesInfo[1340].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2763: initializer element for `gSpeciesInfo[1340].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2784: initializer element for `gSpeciesInfo[1340]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2784: initializer element for `gSpeciesInfo[1340]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2784: initializer element for `gSpeciesInfo[1340]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2784: initializer element for `gSpeciesInfo[1340]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2784: initializer element for `gSpeciesInfo[1340]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2784: initializer element for `gSpeciesInfo[1340]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2796: initializer element for `gSpeciesInfo[1341].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2804: initializer element for `gSpeciesInfo[1341].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2805: initializer element for `gSpeciesInfo[1341].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2807: initializer element for `gSpeciesInfo[1341].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2810: initializer element for `gSpeciesInfo[1341].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2817: initializer element for `gSpeciesInfo[1341].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2838: initializer element for `gSpeciesInfo[1341].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2839: initializer element for `gSpeciesInfo[1341]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2839: initializer element for `gSpeciesInfo[1341]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2839: initializer element for `gSpeciesInfo[1341]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2839: initializer element for `gSpeciesInfo[1341]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2839: initializer element for `gSpeciesInfo[1341]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2839: initializer element for `gSpeciesInfo[1341]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2839: initializer element for `gSpeciesInfo[1341]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2849: initializer element for `gSpeciesInfo[1342].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2857: initializer element for `gSpeciesInfo[1342].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2858: initializer element for `gSpeciesInfo[1342].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2860: initializer element for `gSpeciesInfo[1342].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2863: initializer element for `gSpeciesInfo[1342].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2870: initializer element for `gSpeciesInfo[1342].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2891: initializer element for `gSpeciesInfo[1342]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2891: initializer element for `gSpeciesInfo[1342]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2891: initializer element for `gSpeciesInfo[1342]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2891: initializer element for `gSpeciesInfo[1342]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2891: initializer element for `gSpeciesInfo[1342]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2891: initializer element for `gSpeciesInfo[1342]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2903: initializer element for `gSpeciesInfo[1343].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2911: initializer element for `gSpeciesInfo[1343].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2912: initializer element for `gSpeciesInfo[1343].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2914: initializer element for `gSpeciesInfo[1343].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2917: initializer element for `gSpeciesInfo[1343].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2924: initializer element for `gSpeciesInfo[1343].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2945: initializer element for `gSpeciesInfo[1343].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:2946: initializer element for `gSpeciesInfo[1343]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2946: initializer element for `gSpeciesInfo[1343]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2946: initializer element for `gSpeciesInfo[1343]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2946: initializer element for `gSpeciesInfo[1343]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2946: initializer element for `gSpeciesInfo[1343]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2946: initializer element for `gSpeciesInfo[1343]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2946: initializer element for `gSpeciesInfo[1343]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2956: initializer element for `gSpeciesInfo[1344].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:2964: initializer element for `gSpeciesInfo[1344].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:2965: initializer element for `gSpeciesInfo[1344].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:2967: initializer element for `gSpeciesInfo[1344].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2970: initializer element for `gSpeciesInfo[1344].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:2977: initializer element for `gSpeciesInfo[1344].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:2998: initializer element for `gSpeciesInfo[1344]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2998: initializer element for `gSpeciesInfo[1344]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2998: initializer element for `gSpeciesInfo[1344]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2998: initializer element for `gSpeciesInfo[1344]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2998: initializer element for `gSpeciesInfo[1344]' is not constant +src/data/pokemon/species_info/gen_9_families.h:2998: initializer element for `gSpeciesInfo[1344]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3010: initializer element for `gSpeciesInfo[1345].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3018: initializer element for `gSpeciesInfo[1345].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3019: initializer element for `gSpeciesInfo[1345].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3021: initializer element for `gSpeciesInfo[1345].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3024: initializer element for `gSpeciesInfo[1345].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3031: initializer element for `gSpeciesInfo[1345].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3052: initializer element for `gSpeciesInfo[1345].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:3053: initializer element for `gSpeciesInfo[1345]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3053: initializer element for `gSpeciesInfo[1345]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3053: initializer element for `gSpeciesInfo[1345]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3053: initializer element for `gSpeciesInfo[1345]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3053: initializer element for `gSpeciesInfo[1345]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3053: initializer element for `gSpeciesInfo[1345]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3053: initializer element for `gSpeciesInfo[1345]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3063: initializer element for `gSpeciesInfo[1346].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3071: initializer element for `gSpeciesInfo[1346].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3072: initializer element for `gSpeciesInfo[1346].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3074: initializer element for `gSpeciesInfo[1346].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3077: initializer element for `gSpeciesInfo[1346].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3084: initializer element for `gSpeciesInfo[1346].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3105: initializer element for `gSpeciesInfo[1346].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:3106: initializer element for `gSpeciesInfo[1346]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3106: initializer element for `gSpeciesInfo[1346]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3106: initializer element for `gSpeciesInfo[1346]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3106: initializer element for `gSpeciesInfo[1346]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3106: initializer element for `gSpeciesInfo[1346]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3106: initializer element for `gSpeciesInfo[1346]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3106: initializer element for `gSpeciesInfo[1346]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3116: initializer element for `gSpeciesInfo[1347].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3124: initializer element for `gSpeciesInfo[1347].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3125: initializer element for `gSpeciesInfo[1347].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3127: initializer element for `gSpeciesInfo[1347].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3130: initializer element for `gSpeciesInfo[1347].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3137: initializer element for `gSpeciesInfo[1347].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3158: initializer element for `gSpeciesInfo[1347]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3158: initializer element for `gSpeciesInfo[1347]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3158: initializer element for `gSpeciesInfo[1347]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3158: initializer element for `gSpeciesInfo[1347]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3158: initializer element for `gSpeciesInfo[1347]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3158: initializer element for `gSpeciesInfo[1347]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3170: initializer element for `gSpeciesInfo[1348].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3178: initializer element for `gSpeciesInfo[1348].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3179: initializer element for `gSpeciesInfo[1348].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3181: initializer element for `gSpeciesInfo[1348].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3184: initializer element for `gSpeciesInfo[1348].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3190: initializer element for `gSpeciesInfo[1348].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3211: initializer element for `gSpeciesInfo[1348].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:3212: initializer element for `gSpeciesInfo[1348]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3212: initializer element for `gSpeciesInfo[1348]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3212: initializer element for `gSpeciesInfo[1348]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3212: initializer element for `gSpeciesInfo[1348]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3212: initializer element for `gSpeciesInfo[1348]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3212: initializer element for `gSpeciesInfo[1348]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3212: initializer element for `gSpeciesInfo[1348]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3222: initializer element for `gSpeciesInfo[1349].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3230: initializer element for `gSpeciesInfo[1349].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3231: initializer element for `gSpeciesInfo[1349].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3233: initializer element for `gSpeciesInfo[1349].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3236: initializer element for `gSpeciesInfo[1349].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3242: initializer element for `gSpeciesInfo[1349].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3263: initializer element for `gSpeciesInfo[1349]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3263: initializer element for `gSpeciesInfo[1349]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3263: initializer element for `gSpeciesInfo[1349]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3263: initializer element for `gSpeciesInfo[1349]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3263: initializer element for `gSpeciesInfo[1349]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3263: initializer element for `gSpeciesInfo[1349]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3275: initializer element for `gSpeciesInfo[1350].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3283: initializer element for `gSpeciesInfo[1350].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3284: initializer element for `gSpeciesInfo[1350].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3286: initializer element for `gSpeciesInfo[1350].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3289: initializer element for `gSpeciesInfo[1350].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3296: initializer element for `gSpeciesInfo[1350].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3318: initializer element for `gSpeciesInfo[1350]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3318: initializer element for `gSpeciesInfo[1350]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3318: initializer element for `gSpeciesInfo[1350]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3318: initializer element for `gSpeciesInfo[1350]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3318: initializer element for `gSpeciesInfo[1350]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3318: initializer element for `gSpeciesInfo[1350]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3330: initializer element for `gSpeciesInfo[1351].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3338: initializer element for `gSpeciesInfo[1351].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3339: initializer element for `gSpeciesInfo[1351].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3341: initializer element for `gSpeciesInfo[1351].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3344: initializer element for `gSpeciesInfo[1351].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3350: initializer element for `gSpeciesInfo[1351].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3371: initializer element for `gSpeciesInfo[1351].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:3372: initializer element for `gSpeciesInfo[1351]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3372: initializer element for `gSpeciesInfo[1351]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3372: initializer element for `gSpeciesInfo[1351]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3372: initializer element for `gSpeciesInfo[1351]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3372: initializer element for `gSpeciesInfo[1351]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3372: initializer element for `gSpeciesInfo[1351]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3372: initializer element for `gSpeciesInfo[1351]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3382: initializer element for `gSpeciesInfo[1352].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3390: initializer element for `gSpeciesInfo[1352].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3391: initializer element for `gSpeciesInfo[1352].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3393: initializer element for `gSpeciesInfo[1352].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3396: initializer element for `gSpeciesInfo[1352].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3403: initializer element for `gSpeciesInfo[1352].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3426: initializer element for `gSpeciesInfo[1352]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3426: initializer element for `gSpeciesInfo[1352]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3426: initializer element for `gSpeciesInfo[1352]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3426: initializer element for `gSpeciesInfo[1352]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3426: initializer element for `gSpeciesInfo[1352]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3426: initializer element for `gSpeciesInfo[1352]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3436: initializer element for `gSpeciesInfo[1353].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3444: initializer element for `gSpeciesInfo[1353].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3445: initializer element for `gSpeciesInfo[1353].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3447: initializer element for `gSpeciesInfo[1353].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3450: initializer element for `gSpeciesInfo[1353].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3457: initializer element for `gSpeciesInfo[1353].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3480: initializer element for `gSpeciesInfo[1353]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3480: initializer element for `gSpeciesInfo[1353]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3480: initializer element for `gSpeciesInfo[1353]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3480: initializer element for `gSpeciesInfo[1353]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3480: initializer element for `gSpeciesInfo[1353]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3480: initializer element for `gSpeciesInfo[1353]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3492: initializer element for `gSpeciesInfo[1354].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3500: initializer element for `gSpeciesInfo[1354].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3501: initializer element for `gSpeciesInfo[1354].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3503: initializer element for `gSpeciesInfo[1354].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3506: initializer element for `gSpeciesInfo[1354].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3513: initializer element for `gSpeciesInfo[1354].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3534: initializer element for `gSpeciesInfo[1354].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:3535: initializer element for `gSpeciesInfo[1354]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3535: initializer element for `gSpeciesInfo[1354]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3535: initializer element for `gSpeciesInfo[1354]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3535: initializer element for `gSpeciesInfo[1354]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3535: initializer element for `gSpeciesInfo[1354]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3535: initializer element for `gSpeciesInfo[1354]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3535: initializer element for `gSpeciesInfo[1354]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3545: initializer element for `gSpeciesInfo[1355].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3553: initializer element for `gSpeciesInfo[1355].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3554: initializer element for `gSpeciesInfo[1355].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3556: initializer element for `gSpeciesInfo[1355].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3559: initializer element for `gSpeciesInfo[1355].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3566: initializer element for `gSpeciesInfo[1355].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3587: initializer element for `gSpeciesInfo[1355]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3587: initializer element for `gSpeciesInfo[1355]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3587: initializer element for `gSpeciesInfo[1355]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3587: initializer element for `gSpeciesInfo[1355]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3587: initializer element for `gSpeciesInfo[1355]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3587: initializer element for `gSpeciesInfo[1355]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3599: initializer element for `gSpeciesInfo[1356].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3607: initializer element for `gSpeciesInfo[1356].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3608: initializer element for `gSpeciesInfo[1356].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3610: initializer element for `gSpeciesInfo[1356].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3613: initializer element for `gSpeciesInfo[1356].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3620: initializer element for `gSpeciesInfo[1356].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3641: initializer element for `gSpeciesInfo[1356]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3641: initializer element for `gSpeciesInfo[1356]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3641: initializer element for `gSpeciesInfo[1356]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3641: initializer element for `gSpeciesInfo[1356]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3641: initializer element for `gSpeciesInfo[1356]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3641: initializer element for `gSpeciesInfo[1356]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3653: initializer element for `gSpeciesInfo[1357].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3661: initializer element for `gSpeciesInfo[1357].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3662: initializer element for `gSpeciesInfo[1357].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3664: initializer element for `gSpeciesInfo[1357].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3667: initializer element for `gSpeciesInfo[1357].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3674: initializer element for `gSpeciesInfo[1357].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3695: initializer element for `gSpeciesInfo[1357]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3695: initializer element for `gSpeciesInfo[1357]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3695: initializer element for `gSpeciesInfo[1357]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3695: initializer element for `gSpeciesInfo[1357]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3695: initializer element for `gSpeciesInfo[1357]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3695: initializer element for `gSpeciesInfo[1357]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3707: initializer element for `gSpeciesInfo[1358].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3715: initializer element for `gSpeciesInfo[1358].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3716: initializer element for `gSpeciesInfo[1358].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3718: initializer element for `gSpeciesInfo[1358].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3721: initializer element for `gSpeciesInfo[1358].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3728: initializer element for `gSpeciesInfo[1358].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3750: initializer element for `gSpeciesInfo[1358].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:3751: initializer element for `gSpeciesInfo[1358]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3751: initializer element for `gSpeciesInfo[1358]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3751: initializer element for `gSpeciesInfo[1358]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3751: initializer element for `gSpeciesInfo[1358]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3751: initializer element for `gSpeciesInfo[1358]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3751: initializer element for `gSpeciesInfo[1358]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3751: initializer element for `gSpeciesInfo[1358]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3761: initializer element for `gSpeciesInfo[1359].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3769: initializer element for `gSpeciesInfo[1359].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3770: initializer element for `gSpeciesInfo[1359].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3772: initializer element for `gSpeciesInfo[1359].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3775: initializer element for `gSpeciesInfo[1359].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3782: initializer element for `gSpeciesInfo[1359].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3804: initializer element for `gSpeciesInfo[1359]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3804: initializer element for `gSpeciesInfo[1359]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3804: initializer element for `gSpeciesInfo[1359]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3804: initializer element for `gSpeciesInfo[1359]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3804: initializer element for `gSpeciesInfo[1359]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3804: initializer element for `gSpeciesInfo[1359]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3816: initializer element for `gSpeciesInfo[1360].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3824: initializer element for `gSpeciesInfo[1360].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3825: initializer element for `gSpeciesInfo[1360].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3827: initializer element for `gSpeciesInfo[1360].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3830: initializer element for `gSpeciesInfo[1360].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3837: initializer element for `gSpeciesInfo[1360].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3858: initializer element for `gSpeciesInfo[1360].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:3859: initializer element for `gSpeciesInfo[1360]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3859: initializer element for `gSpeciesInfo[1360]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3859: initializer element for `gSpeciesInfo[1360]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3859: initializer element for `gSpeciesInfo[1360]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3859: initializer element for `gSpeciesInfo[1360]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3859: initializer element for `gSpeciesInfo[1360]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3859: initializer element for `gSpeciesInfo[1360]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3869: initializer element for `gSpeciesInfo[1361].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3877: initializer element for `gSpeciesInfo[1361].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3878: initializer element for `gSpeciesInfo[1361].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3880: initializer element for `gSpeciesInfo[1361].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3883: initializer element for `gSpeciesInfo[1361].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3890: initializer element for `gSpeciesInfo[1361].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3911: initializer element for `gSpeciesInfo[1361]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3911: initializer element for `gSpeciesInfo[1361]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3911: initializer element for `gSpeciesInfo[1361]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3911: initializer element for `gSpeciesInfo[1361]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3911: initializer element for `gSpeciesInfo[1361]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3911: initializer element for `gSpeciesInfo[1361]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3923: initializer element for `gSpeciesInfo[1362].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3931: initializer element for `gSpeciesInfo[1362].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3932: initializer element for `gSpeciesInfo[1362].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3934: initializer element for `gSpeciesInfo[1362].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3937: initializer element for `gSpeciesInfo[1362].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3944: initializer element for `gSpeciesInfo[1362].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:3965: initializer element for `gSpeciesInfo[1362]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3965: initializer element for `gSpeciesInfo[1362]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3965: initializer element for `gSpeciesInfo[1362]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3965: initializer element for `gSpeciesInfo[1362]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3965: initializer element for `gSpeciesInfo[1362]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3965: initializer element for `gSpeciesInfo[1362]' is not constant +src/data/pokemon/species_info/gen_9_families.h:3977: initializer element for `gSpeciesInfo[1363].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:3985: initializer element for `gSpeciesInfo[1363].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:3986: initializer element for `gSpeciesInfo[1363].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:3988: initializer element for `gSpeciesInfo[1363].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3991: initializer element for `gSpeciesInfo[1363].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:3998: initializer element for `gSpeciesInfo[1363].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4019: initializer element for `gSpeciesInfo[1363].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:4020: initializer element for `gSpeciesInfo[1363]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4020: initializer element for `gSpeciesInfo[1363]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4020: initializer element for `gSpeciesInfo[1363]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4020: initializer element for `gSpeciesInfo[1363]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4020: initializer element for `gSpeciesInfo[1363]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4020: initializer element for `gSpeciesInfo[1363]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4020: initializer element for `gSpeciesInfo[1363]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4030: initializer element for `gSpeciesInfo[1364].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4038: initializer element for `gSpeciesInfo[1364].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4039: initializer element for `gSpeciesInfo[1364].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4041: initializer element for `gSpeciesInfo[1364].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4044: initializer element for `gSpeciesInfo[1364].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4051: initializer element for `gSpeciesInfo[1364].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4072: initializer element for `gSpeciesInfo[1364]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4072: initializer element for `gSpeciesInfo[1364]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4072: initializer element for `gSpeciesInfo[1364]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4072: initializer element for `gSpeciesInfo[1364]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4072: initializer element for `gSpeciesInfo[1364]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4072: initializer element for `gSpeciesInfo[1364]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4084: initializer element for `gSpeciesInfo[1365].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4092: initializer element for `gSpeciesInfo[1365].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4093: initializer element for `gSpeciesInfo[1365].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4095: initializer element for `gSpeciesInfo[1365].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4098: initializer element for `gSpeciesInfo[1365].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4105: initializer element for `gSpeciesInfo[1365].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4127: initializer element for `gSpeciesInfo[1365]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4127: initializer element for `gSpeciesInfo[1365]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4127: initializer element for `gSpeciesInfo[1365]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4127: initializer element for `gSpeciesInfo[1365]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4127: initializer element for `gSpeciesInfo[1365]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4127: initializer element for `gSpeciesInfo[1365]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4139: initializer element for `gSpeciesInfo[1366].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4147: initializer element for `gSpeciesInfo[1366].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4148: initializer element for `gSpeciesInfo[1366].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4150: initializer element for `gSpeciesInfo[1366].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4153: initializer element for `gSpeciesInfo[1366].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4160: initializer element for `gSpeciesInfo[1366].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4182: initializer element for `gSpeciesInfo[1366]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4182: initializer element for `gSpeciesInfo[1366]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4182: initializer element for `gSpeciesInfo[1366]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4182: initializer element for `gSpeciesInfo[1366]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4182: initializer element for `gSpeciesInfo[1366]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4182: initializer element for `gSpeciesInfo[1366]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4194: initializer element for `gSpeciesInfo[1367].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4202: initializer element for `gSpeciesInfo[1367].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4203: initializer element for `gSpeciesInfo[1367].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4205: initializer element for `gSpeciesInfo[1367].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4208: initializer element for `gSpeciesInfo[1367].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4215: initializer element for `gSpeciesInfo[1367].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4237: initializer element for `gSpeciesInfo[1367]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4237: initializer element for `gSpeciesInfo[1367]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4237: initializer element for `gSpeciesInfo[1367]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4237: initializer element for `gSpeciesInfo[1367]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4237: initializer element for `gSpeciesInfo[1367]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4237: initializer element for `gSpeciesInfo[1367]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4247: initializer element for `gSpeciesInfo[1368].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4255: initializer element for `gSpeciesInfo[1368].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4256: initializer element for `gSpeciesInfo[1368].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4258: initializer element for `gSpeciesInfo[1368].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4261: initializer element for `gSpeciesInfo[1368].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4267: initializer element for `gSpeciesInfo[1368].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4289: initializer element for `gSpeciesInfo[1368]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4289: initializer element for `gSpeciesInfo[1368]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4289: initializer element for `gSpeciesInfo[1368]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4289: initializer element for `gSpeciesInfo[1368]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4289: initializer element for `gSpeciesInfo[1368]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4289: initializer element for `gSpeciesInfo[1368]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4299: initializer element for `gSpeciesInfo[1369].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4307: initializer element for `gSpeciesInfo[1369].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4308: initializer element for `gSpeciesInfo[1369].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4310: initializer element for `gSpeciesInfo[1369].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4313: initializer element for `gSpeciesInfo[1369].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4319: initializer element for `gSpeciesInfo[1369].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4341: initializer element for `gSpeciesInfo[1369]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4341: initializer element for `gSpeciesInfo[1369]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4341: initializer element for `gSpeciesInfo[1369]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4341: initializer element for `gSpeciesInfo[1369]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4341: initializer element for `gSpeciesInfo[1369]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4341: initializer element for `gSpeciesInfo[1369]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4353: initializer element for `gSpeciesInfo[1376].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4361: initializer element for `gSpeciesInfo[1376].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4362: initializer element for `gSpeciesInfo[1376].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4364: initializer element for `gSpeciesInfo[1376].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4367: initializer element for `gSpeciesInfo[1376].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4374: initializer element for `gSpeciesInfo[1376].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4396: initializer element for `gSpeciesInfo[1376]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4396: initializer element for `gSpeciesInfo[1376]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4396: initializer element for `gSpeciesInfo[1376]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4396: initializer element for `gSpeciesInfo[1376]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4396: initializer element for `gSpeciesInfo[1376]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4396: initializer element for `gSpeciesInfo[1376]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4408: initializer element for `gSpeciesInfo[1377].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4416: initializer element for `gSpeciesInfo[1377].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4417: initializer element for `gSpeciesInfo[1377].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4419: initializer element for `gSpeciesInfo[1377].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4422: initializer element for `gSpeciesInfo[1377].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4429: initializer element for `gSpeciesInfo[1377].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4451: initializer element for `gSpeciesInfo[1377]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4451: initializer element for `gSpeciesInfo[1377]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4451: initializer element for `gSpeciesInfo[1377]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4451: initializer element for `gSpeciesInfo[1377]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4451: initializer element for `gSpeciesInfo[1377]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4451: initializer element for `gSpeciesInfo[1377]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4463: initializer element for `gSpeciesInfo[1378].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4471: initializer element for `gSpeciesInfo[1378].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4472: initializer element for `gSpeciesInfo[1378].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4474: initializer element for `gSpeciesInfo[1378].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4477: initializer element for `gSpeciesInfo[1378].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4484: initializer element for `gSpeciesInfo[1378].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4506: initializer element for `gSpeciesInfo[1378]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4506: initializer element for `gSpeciesInfo[1378]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4506: initializer element for `gSpeciesInfo[1378]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4506: initializer element for `gSpeciesInfo[1378]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4506: initializer element for `gSpeciesInfo[1378]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4506: initializer element for `gSpeciesInfo[1378]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4518: initializer element for `gSpeciesInfo[1379].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4528: initializer element for `gSpeciesInfo[1379].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4529: initializer element for `gSpeciesInfo[1379].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4531: initializer element for `gSpeciesInfo[1379].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4534: initializer element for `gSpeciesInfo[1379].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4541: initializer element for `gSpeciesInfo[1379].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4564: initializer element for `gSpeciesInfo[1379]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4564: initializer element for `gSpeciesInfo[1379]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4564: initializer element for `gSpeciesInfo[1379]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4564: initializer element for `gSpeciesInfo[1379]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4564: initializer element for `gSpeciesInfo[1379]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4564: initializer element for `gSpeciesInfo[1379]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4576: initializer element for `gSpeciesInfo[1380].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4584: initializer element for `gSpeciesInfo[1380].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4585: initializer element for `gSpeciesInfo[1380].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4587: initializer element for `gSpeciesInfo[1380].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4590: initializer element for `gSpeciesInfo[1380].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4596: initializer element for `gSpeciesInfo[1380].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4618: initializer element for `gSpeciesInfo[1380]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4618: initializer element for `gSpeciesInfo[1380]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4618: initializer element for `gSpeciesInfo[1380]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4618: initializer element for `gSpeciesInfo[1380]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4618: initializer element for `gSpeciesInfo[1380]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4618: initializer element for `gSpeciesInfo[1380]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4630: initializer element for `gSpeciesInfo[1381].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4638: initializer element for `gSpeciesInfo[1381].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4639: initializer element for `gSpeciesInfo[1381].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4641: initializer element for `gSpeciesInfo[1381].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4644: initializer element for `gSpeciesInfo[1381].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4651: initializer element for `gSpeciesInfo[1381].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4673: initializer element for `gSpeciesInfo[1381]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4673: initializer element for `gSpeciesInfo[1381]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4673: initializer element for `gSpeciesInfo[1381]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4673: initializer element for `gSpeciesInfo[1381]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4673: initializer element for `gSpeciesInfo[1381]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4673: initializer element for `gSpeciesInfo[1381]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4685: initializer element for `gSpeciesInfo[1382].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4693: initializer element for `gSpeciesInfo[1382].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4694: initializer element for `gSpeciesInfo[1382].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4696: initializer element for `gSpeciesInfo[1382].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4699: initializer element for `gSpeciesInfo[1382].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4706: initializer element for `gSpeciesInfo[1382].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4728: initializer element for `gSpeciesInfo[1382]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4728: initializer element for `gSpeciesInfo[1382]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4728: initializer element for `gSpeciesInfo[1382]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4728: initializer element for `gSpeciesInfo[1382]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4728: initializer element for `gSpeciesInfo[1382]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4728: initializer element for `gSpeciesInfo[1382]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4740: initializer element for `gSpeciesInfo[1383].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4748: initializer element for `gSpeciesInfo[1383].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4749: initializer element for `gSpeciesInfo[1383].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4751: initializer element for `gSpeciesInfo[1383].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4754: initializer element for `gSpeciesInfo[1383].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4761: initializer element for `gSpeciesInfo[1383].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4783: initializer element for `gSpeciesInfo[1383]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4783: initializer element for `gSpeciesInfo[1383]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4783: initializer element for `gSpeciesInfo[1383]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4783: initializer element for `gSpeciesInfo[1383]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4783: initializer element for `gSpeciesInfo[1383]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4783: initializer element for `gSpeciesInfo[1383]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4795: initializer element for `gSpeciesInfo[1384].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4803: initializer element for `gSpeciesInfo[1384].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4804: initializer element for `gSpeciesInfo[1384].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4806: initializer element for `gSpeciesInfo[1384].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4809: initializer element for `gSpeciesInfo[1384].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4816: initializer element for `gSpeciesInfo[1384].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4838: initializer element for `gSpeciesInfo[1384]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4838: initializer element for `gSpeciesInfo[1384]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4838: initializer element for `gSpeciesInfo[1384]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4838: initializer element for `gSpeciesInfo[1384]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4838: initializer element for `gSpeciesInfo[1384]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4838: initializer element for `gSpeciesInfo[1384]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4850: initializer element for `gSpeciesInfo[1385].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4858: initializer element for `gSpeciesInfo[1385].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4859: initializer element for `gSpeciesInfo[1385].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4861: initializer element for `gSpeciesInfo[1385].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4864: initializer element for `gSpeciesInfo[1385].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4871: initializer element for `gSpeciesInfo[1385].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4894: initializer element for `gSpeciesInfo[1385]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4894: initializer element for `gSpeciesInfo[1385]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4894: initializer element for `gSpeciesInfo[1385]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4894: initializer element for `gSpeciesInfo[1385]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4894: initializer element for `gSpeciesInfo[1385]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4894: initializer element for `gSpeciesInfo[1385]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4906: initializer element for `gSpeciesInfo[1386].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4914: initializer element for `gSpeciesInfo[1386].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4915: initializer element for `gSpeciesInfo[1386].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4917: initializer element for `gSpeciesInfo[1386].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4920: initializer element for `gSpeciesInfo[1386].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4927: initializer element for `gSpeciesInfo[1386].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:4950: initializer element for `gSpeciesInfo[1386]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4950: initializer element for `gSpeciesInfo[1386]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4950: initializer element for `gSpeciesInfo[1386]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4950: initializer element for `gSpeciesInfo[1386]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4950: initializer element for `gSpeciesInfo[1386]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4950: initializer element for `gSpeciesInfo[1386]' is not constant +src/data/pokemon/species_info/gen_9_families.h:4962: initializer element for `gSpeciesInfo[1387].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:4970: initializer element for `gSpeciesInfo[1387].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:4971: initializer element for `gSpeciesInfo[1387].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:4973: initializer element for `gSpeciesInfo[1387].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4976: initializer element for `gSpeciesInfo[1387].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:4983: initializer element for `gSpeciesInfo[1387].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5005: initializer element for `gSpeciesInfo[1387]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5005: initializer element for `gSpeciesInfo[1387]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5005: initializer element for `gSpeciesInfo[1387]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5005: initializer element for `gSpeciesInfo[1387]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5005: initializer element for `gSpeciesInfo[1387]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5005: initializer element for `gSpeciesInfo[1387]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5017: initializer element for `gSpeciesInfo[1388].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5025: initializer element for `gSpeciesInfo[1388].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5026: initializer element for `gSpeciesInfo[1388].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5028: initializer element for `gSpeciesInfo[1388].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5031: initializer element for `gSpeciesInfo[1388].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5038: initializer element for `gSpeciesInfo[1388].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5059: initializer element for `gSpeciesInfo[1388].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:5060: initializer element for `gSpeciesInfo[1388]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5060: initializer element for `gSpeciesInfo[1388]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5060: initializer element for `gSpeciesInfo[1388]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5060: initializer element for `gSpeciesInfo[1388]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5060: initializer element for `gSpeciesInfo[1388]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5060: initializer element for `gSpeciesInfo[1388]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5060: initializer element for `gSpeciesInfo[1388]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5070: initializer element for `gSpeciesInfo[1389].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5078: initializer element for `gSpeciesInfo[1389].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5079: initializer element for `gSpeciesInfo[1389].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5081: initializer element for `gSpeciesInfo[1389].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5084: initializer element for `gSpeciesInfo[1389].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5091: initializer element for `gSpeciesInfo[1389].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5112: initializer element for `gSpeciesInfo[1389].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:5113: initializer element for `gSpeciesInfo[1389]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5113: initializer element for `gSpeciesInfo[1389]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5113: initializer element for `gSpeciesInfo[1389]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5113: initializer element for `gSpeciesInfo[1389]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5113: initializer element for `gSpeciesInfo[1389]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5113: initializer element for `gSpeciesInfo[1389]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5113: initializer element for `gSpeciesInfo[1389]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5123: initializer element for `gSpeciesInfo[1390].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5131: initializer element for `gSpeciesInfo[1390].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5132: initializer element for `gSpeciesInfo[1390].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5134: initializer element for `gSpeciesInfo[1390].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5137: initializer element for `gSpeciesInfo[1390].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5144: initializer element for `gSpeciesInfo[1390].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5165: initializer element for `gSpeciesInfo[1390]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5165: initializer element for `gSpeciesInfo[1390]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5165: initializer element for `gSpeciesInfo[1390]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5165: initializer element for `gSpeciesInfo[1390]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5165: initializer element for `gSpeciesInfo[1390]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5165: initializer element for `gSpeciesInfo[1390]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5177: initializer element for `gSpeciesInfo[1391].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5185: initializer element for `gSpeciesInfo[1391].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5186: initializer element for `gSpeciesInfo[1391].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5188: initializer element for `gSpeciesInfo[1391].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5191: initializer element for `gSpeciesInfo[1391].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5198: initializer element for `gSpeciesInfo[1391].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5220: initializer element for `gSpeciesInfo[1391].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:5221: initializer element for `gSpeciesInfo[1391]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5221: initializer element for `gSpeciesInfo[1391]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5221: initializer element for `gSpeciesInfo[1391]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5221: initializer element for `gSpeciesInfo[1391]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5221: initializer element for `gSpeciesInfo[1391]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5221: initializer element for `gSpeciesInfo[1391]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5221: initializer element for `gSpeciesInfo[1391]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5231: initializer element for `gSpeciesInfo[1392].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5239: initializer element for `gSpeciesInfo[1392].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5240: initializer element for `gSpeciesInfo[1392].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5242: initializer element for `gSpeciesInfo[1392].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5245: initializer element for `gSpeciesInfo[1392].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5252: initializer element for `gSpeciesInfo[1392].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5274: initializer element for `gSpeciesInfo[1392].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:5275: initializer element for `gSpeciesInfo[1392]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5275: initializer element for `gSpeciesInfo[1392]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5275: initializer element for `gSpeciesInfo[1392]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5275: initializer element for `gSpeciesInfo[1392]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5275: initializer element for `gSpeciesInfo[1392]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5275: initializer element for `gSpeciesInfo[1392]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5275: initializer element for `gSpeciesInfo[1392]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5285: initializer element for `gSpeciesInfo[1393].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5293: initializer element for `gSpeciesInfo[1393].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5294: initializer element for `gSpeciesInfo[1393].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5296: initializer element for `gSpeciesInfo[1393].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5299: initializer element for `gSpeciesInfo[1393].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5306: initializer element for `gSpeciesInfo[1393].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5327: initializer element for `gSpeciesInfo[1393]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5327: initializer element for `gSpeciesInfo[1393]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5327: initializer element for `gSpeciesInfo[1393]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5327: initializer element for `gSpeciesInfo[1393]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5327: initializer element for `gSpeciesInfo[1393]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5327: initializer element for `gSpeciesInfo[1393]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5339: initializer element for `gSpeciesInfo[1394].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5347: initializer element for `gSpeciesInfo[1394].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5348: initializer element for `gSpeciesInfo[1394].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5350: initializer element for `gSpeciesInfo[1394].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5353: initializer element for `gSpeciesInfo[1394].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5360: initializer element for `gSpeciesInfo[1394].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5382: initializer element for `gSpeciesInfo[1394]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5382: initializer element for `gSpeciesInfo[1394]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5382: initializer element for `gSpeciesInfo[1394]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5382: initializer element for `gSpeciesInfo[1394]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5382: initializer element for `gSpeciesInfo[1394]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5382: initializer element for `gSpeciesInfo[1394]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5394: initializer element for `gSpeciesInfo[1395].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5402: initializer element for `gSpeciesInfo[1395].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5403: initializer element for `gSpeciesInfo[1395].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5405: initializer element for `gSpeciesInfo[1395].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5408: initializer element for `gSpeciesInfo[1395].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5415: initializer element for `gSpeciesInfo[1395].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5437: initializer element for `gSpeciesInfo[1395]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5437: initializer element for `gSpeciesInfo[1395]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5437: initializer element for `gSpeciesInfo[1395]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5437: initializer element for `gSpeciesInfo[1395]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5437: initializer element for `gSpeciesInfo[1395]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5437: initializer element for `gSpeciesInfo[1395]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5449: initializer element for `gSpeciesInfo[1396].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5457: initializer element for `gSpeciesInfo[1396].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5458: initializer element for `gSpeciesInfo[1396].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5460: initializer element for `gSpeciesInfo[1396].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5463: initializer element for `gSpeciesInfo[1396].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5470: initializer element for `gSpeciesInfo[1396].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5492: initializer element for `gSpeciesInfo[1396]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5492: initializer element for `gSpeciesInfo[1396]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5492: initializer element for `gSpeciesInfo[1396]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5492: initializer element for `gSpeciesInfo[1396]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5492: initializer element for `gSpeciesInfo[1396]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5492: initializer element for `gSpeciesInfo[1396]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5504: initializer element for `gSpeciesInfo[1397].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5512: initializer element for `gSpeciesInfo[1397].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5513: initializer element for `gSpeciesInfo[1397].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5515: initializer element for `gSpeciesInfo[1397].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5518: initializer element for `gSpeciesInfo[1397].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5525: initializer element for `gSpeciesInfo[1397].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5548: initializer element for `gSpeciesInfo[1397]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5548: initializer element for `gSpeciesInfo[1397]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5548: initializer element for `gSpeciesInfo[1397]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5548: initializer element for `gSpeciesInfo[1397]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5548: initializer element for `gSpeciesInfo[1397]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5548: initializer element for `gSpeciesInfo[1397]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5560: initializer element for `gSpeciesInfo[1398].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5568: initializer element for `gSpeciesInfo[1398].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5569: initializer element for `gSpeciesInfo[1398].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5571: initializer element for `gSpeciesInfo[1398].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5574: initializer element for `gSpeciesInfo[1398].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5581: initializer element for `gSpeciesInfo[1398].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5604: initializer element for `gSpeciesInfo[1398]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5604: initializer element for `gSpeciesInfo[1398]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5604: initializer element for `gSpeciesInfo[1398]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5604: initializer element for `gSpeciesInfo[1398]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5604: initializer element for `gSpeciesInfo[1398]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5604: initializer element for `gSpeciesInfo[1398]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5616: initializer element for `gSpeciesInfo[1399].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5624: initializer element for `gSpeciesInfo[1399].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5625: initializer element for `gSpeciesInfo[1399].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5627: initializer element for `gSpeciesInfo[1399].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5630: initializer element for `gSpeciesInfo[1399].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5636: initializer element for `gSpeciesInfo[1399].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5658: initializer element for `gSpeciesInfo[1399]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5658: initializer element for `gSpeciesInfo[1399]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5658: initializer element for `gSpeciesInfo[1399]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5658: initializer element for `gSpeciesInfo[1399]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5658: initializer element for `gSpeciesInfo[1399]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5658: initializer element for `gSpeciesInfo[1399]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5670: initializer element for `gSpeciesInfo[1400].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5678: initializer element for `gSpeciesInfo[1400].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5679: initializer element for `gSpeciesInfo[1400].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5681: initializer element for `gSpeciesInfo[1400].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5684: initializer element for `gSpeciesInfo[1400].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5691: initializer element for `gSpeciesInfo[1400].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5714: initializer element for `gSpeciesInfo[1400]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5714: initializer element for `gSpeciesInfo[1400]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5714: initializer element for `gSpeciesInfo[1400]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5714: initializer element for `gSpeciesInfo[1400]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5714: initializer element for `gSpeciesInfo[1400]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5714: initializer element for `gSpeciesInfo[1400]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5726: initializer element for `gSpeciesInfo[1401].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5734: initializer element for `gSpeciesInfo[1401].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5735: initializer element for `gSpeciesInfo[1401].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5737: initializer element for `gSpeciesInfo[1401].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5740: initializer element for `gSpeciesInfo[1401].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5747: initializer element for `gSpeciesInfo[1401].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5770: initializer element for `gSpeciesInfo[1401]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5770: initializer element for `gSpeciesInfo[1401]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5770: initializer element for `gSpeciesInfo[1401]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5770: initializer element for `gSpeciesInfo[1401]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5770: initializer element for `gSpeciesInfo[1401]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5770: initializer element for `gSpeciesInfo[1401]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5782: initializer element for `gSpeciesInfo[1406].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5790: initializer element for `gSpeciesInfo[1406].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5791: initializer element for `gSpeciesInfo[1406].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5793: initializer element for `gSpeciesInfo[1406].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5796: initializer element for `gSpeciesInfo[1406].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5802: initializer element for `gSpeciesInfo[1406].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5824: initializer element for `gSpeciesInfo[1406]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5824: initializer element for `gSpeciesInfo[1406]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5824: initializer element for `gSpeciesInfo[1406]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5824: initializer element for `gSpeciesInfo[1406]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5824: initializer element for `gSpeciesInfo[1406]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5824: initializer element for `gSpeciesInfo[1406]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5836: initializer element for `gSpeciesInfo[1407].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5844: initializer element for `gSpeciesInfo[1407].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5845: initializer element for `gSpeciesInfo[1407].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5847: initializer element for `gSpeciesInfo[1407].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5850: initializer element for `gSpeciesInfo[1407].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5856: initializer element for `gSpeciesInfo[1407].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5878: initializer element for `gSpeciesInfo[1407]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5878: initializer element for `gSpeciesInfo[1407]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5878: initializer element for `gSpeciesInfo[1407]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5878: initializer element for `gSpeciesInfo[1407]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5878: initializer element for `gSpeciesInfo[1407]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5878: initializer element for `gSpeciesInfo[1407]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5890: initializer element for `gSpeciesInfo[1409].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5898: initializer element for `gSpeciesInfo[1409].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5899: initializer element for `gSpeciesInfo[1409].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5901: initializer element for `gSpeciesInfo[1409].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5904: initializer element for `gSpeciesInfo[1409].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5911: initializer element for `gSpeciesInfo[1409].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5933: initializer element for `gSpeciesInfo[1409].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:5934: initializer element for `gSpeciesInfo[1409]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5934: initializer element for `gSpeciesInfo[1409]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5934: initializer element for `gSpeciesInfo[1409]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5934: initializer element for `gSpeciesInfo[1409]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5934: initializer element for `gSpeciesInfo[1409]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5934: initializer element for `gSpeciesInfo[1409]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5934: initializer element for `gSpeciesInfo[1409]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5943: initializer element for `gSpeciesInfo[1410].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:5951: initializer element for `gSpeciesInfo[1410].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:5952: initializer element for `gSpeciesInfo[1410].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:5954: initializer element for `gSpeciesInfo[1410].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5957: initializer element for `gSpeciesInfo[1410].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:5964: initializer element for `gSpeciesInfo[1410].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:5986: initializer element for `gSpeciesInfo[1410].evolutions' is not constant +src/data/pokemon/species_info/gen_9_families.h:5987: initializer element for `gSpeciesInfo[1410]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5987: initializer element for `gSpeciesInfo[1410]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5987: initializer element for `gSpeciesInfo[1410]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5987: initializer element for `gSpeciesInfo[1410]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5987: initializer element for `gSpeciesInfo[1410]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5987: initializer element for `gSpeciesInfo[1410]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5987: initializer element for `gSpeciesInfo[1410]' is not constant +src/data/pokemon/species_info/gen_9_families.h:5997: initializer element for `gSpeciesInfo[1411].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6005: initializer element for `gSpeciesInfo[1411].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6006: initializer element for `gSpeciesInfo[1411].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6008: initializer element for `gSpeciesInfo[1411].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6011: initializer element for `gSpeciesInfo[1411].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6018: initializer element for `gSpeciesInfo[1411].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6040: initializer element for `gSpeciesInfo[1411]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6040: initializer element for `gSpeciesInfo[1411]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6040: initializer element for `gSpeciesInfo[1411]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6040: initializer element for `gSpeciesInfo[1411]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6040: initializer element for `gSpeciesInfo[1411]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6040: initializer element for `gSpeciesInfo[1411]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6049: initializer element for `gSpeciesInfo[1412].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6057: initializer element for `gSpeciesInfo[1412].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6058: initializer element for `gSpeciesInfo[1412].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6060: initializer element for `gSpeciesInfo[1412].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6063: initializer element for `gSpeciesInfo[1412].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6070: initializer element for `gSpeciesInfo[1412].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6092: initializer element for `gSpeciesInfo[1412]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6092: initializer element for `gSpeciesInfo[1412]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6092: initializer element for `gSpeciesInfo[1412]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6092: initializer element for `gSpeciesInfo[1412]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6092: initializer element for `gSpeciesInfo[1412]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6092: initializer element for `gSpeciesInfo[1412]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6104: initializer element for `gSpeciesInfo[1413].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6112: initializer element for `gSpeciesInfo[1413].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6113: initializer element for `gSpeciesInfo[1413].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6115: initializer element for `gSpeciesInfo[1413].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6118: initializer element for `gSpeciesInfo[1413].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6125: initializer element for `gSpeciesInfo[1413].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6147: initializer element for `gSpeciesInfo[1413]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6147: initializer element for `gSpeciesInfo[1413]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6147: initializer element for `gSpeciesInfo[1413]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6147: initializer element for `gSpeciesInfo[1413]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6147: initializer element for `gSpeciesInfo[1413]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6147: initializer element for `gSpeciesInfo[1413]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6159: initializer element for `gSpeciesInfo[1414].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6167: initializer element for `gSpeciesInfo[1414].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6168: initializer element for `gSpeciesInfo[1414].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6170: initializer element for `gSpeciesInfo[1414].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6173: initializer element for `gSpeciesInfo[1414].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6180: initializer element for `gSpeciesInfo[1414].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6202: initializer element for `gSpeciesInfo[1414]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6202: initializer element for `gSpeciesInfo[1414]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6202: initializer element for `gSpeciesInfo[1414]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6202: initializer element for `gSpeciesInfo[1414]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6202: initializer element for `gSpeciesInfo[1414]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6202: initializer element for `gSpeciesInfo[1414]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6214: initializer element for `gSpeciesInfo[1415].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6222: initializer element for `gSpeciesInfo[1415].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6223: initializer element for `gSpeciesInfo[1415].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6225: initializer element for `gSpeciesInfo[1415].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6228: initializer element for `gSpeciesInfo[1415].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6235: initializer element for `gSpeciesInfo[1415].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6257: initializer element for `gSpeciesInfo[1415]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6257: initializer element for `gSpeciesInfo[1415]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6257: initializer element for `gSpeciesInfo[1415]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6257: initializer element for `gSpeciesInfo[1415]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6257: initializer element for `gSpeciesInfo[1415]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6257: initializer element for `gSpeciesInfo[1415]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6312: initializer element for `gSpeciesInfo[1416]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6313: initializer element for `gSpeciesInfo[1417]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6314: initializer element for `gSpeciesInfo[1418]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6315: initializer element for `gSpeciesInfo[1419]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6317: initializer element for `gSpeciesInfo[1420]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6318: initializer element for `gSpeciesInfo[1421]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6319: initializer element for `gSpeciesInfo[1422]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6320: initializer element for `gSpeciesInfo[1423]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6334: initializer element for `gSpeciesInfo[1427].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6342: initializer element for `gSpeciesInfo[1427].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6343: initializer element for `gSpeciesInfo[1427].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6345: initializer element for `gSpeciesInfo[1427].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6348: initializer element for `gSpeciesInfo[1427].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6355: initializer element for `gSpeciesInfo[1427].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6376: `sGougingFireTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_9_families.h:6376: initializer element for `gSpeciesInfo[1427].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_9_families.h:6377: initializer element for `gSpeciesInfo[1427]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6377: initializer element for `gSpeciesInfo[1427]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6377: initializer element for `gSpeciesInfo[1427]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6377: initializer element for `gSpeciesInfo[1427]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6377: initializer element for `gSpeciesInfo[1427]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6377: initializer element for `gSpeciesInfo[1427]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6377: initializer element for `gSpeciesInfo[1427]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6389: initializer element for `gSpeciesInfo[1428].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6397: initializer element for `gSpeciesInfo[1428].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6398: initializer element for `gSpeciesInfo[1428].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6400: initializer element for `gSpeciesInfo[1428].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6403: initializer element for `gSpeciesInfo[1428].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6410: initializer element for `gSpeciesInfo[1428].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6431: `sRagingBoltTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_9_families.h:6431: initializer element for `gSpeciesInfo[1428].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_9_families.h:6432: initializer element for `gSpeciesInfo[1428]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6432: initializer element for `gSpeciesInfo[1428]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6432: initializer element for `gSpeciesInfo[1428]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6432: initializer element for `gSpeciesInfo[1428]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6432: initializer element for `gSpeciesInfo[1428]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6432: initializer element for `gSpeciesInfo[1428]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6432: initializer element for `gSpeciesInfo[1428]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6444: initializer element for `gSpeciesInfo[1429].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6452: initializer element for `gSpeciesInfo[1429].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6453: initializer element for `gSpeciesInfo[1429].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6455: initializer element for `gSpeciesInfo[1429].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6458: initializer element for `gSpeciesInfo[1429].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6464: initializer element for `gSpeciesInfo[1429].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6485: `sIronBoulderTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_9_families.h:6485: initializer element for `gSpeciesInfo[1429].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_9_families.h:6486: initializer element for `gSpeciesInfo[1429]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6486: initializer element for `gSpeciesInfo[1429]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6486: initializer element for `gSpeciesInfo[1429]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6486: initializer element for `gSpeciesInfo[1429]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6486: initializer element for `gSpeciesInfo[1429]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6486: initializer element for `gSpeciesInfo[1429]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6486: initializer element for `gSpeciesInfo[1429]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6498: initializer element for `gSpeciesInfo[1430].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6506: initializer element for `gSpeciesInfo[1430].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6507: initializer element for `gSpeciesInfo[1430].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6509: initializer element for `gSpeciesInfo[1430].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6512: initializer element for `gSpeciesInfo[1430].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6519: initializer element for `gSpeciesInfo[1430].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6540: `sIronCrownTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_9_families.h:6540: initializer element for `gSpeciesInfo[1430].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_9_families.h:6541: initializer element for `gSpeciesInfo[1430]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6541: initializer element for `gSpeciesInfo[1430]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6541: initializer element for `gSpeciesInfo[1430]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6541: initializer element for `gSpeciesInfo[1430]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6541: initializer element for `gSpeciesInfo[1430]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6541: initializer element for `gSpeciesInfo[1430]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6541: initializer element for `gSpeciesInfo[1430]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6553: initializer element for `gSpeciesInfo[1431].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6561: initializer element for `gSpeciesInfo[1431].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6562: initializer element for `gSpeciesInfo[1431].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6564: initializer element for `gSpeciesInfo[1431].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6567: initializer element for `gSpeciesInfo[1431].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6574: initializer element for `gSpeciesInfo[1431].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6595: `sTerapagosTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_9_families.h:6595: initializer element for `gSpeciesInfo[1431].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_9_families.h:6598: initializer element for `gSpeciesInfo[1431]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6598: initializer element for `gSpeciesInfo[1431]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6598: initializer element for `gSpeciesInfo[1431]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6598: initializer element for `gSpeciesInfo[1431]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6598: initializer element for `gSpeciesInfo[1431]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6598: initializer element for `gSpeciesInfo[1431]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6598: initializer element for `gSpeciesInfo[1431]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6608: initializer element for `gSpeciesInfo[1432].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6617: initializer element for `gSpeciesInfo[1432].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6618: initializer element for `gSpeciesInfo[1432].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6620: initializer element for `gSpeciesInfo[1432].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6623: initializer element for `gSpeciesInfo[1432].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6630: initializer element for `gSpeciesInfo[1432].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6651: `sTerapagosTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_9_families.h:6651: initializer element for `gSpeciesInfo[1432].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_9_families.h:6654: initializer element for `gSpeciesInfo[1432]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6654: initializer element for `gSpeciesInfo[1432]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6654: initializer element for `gSpeciesInfo[1432]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6654: initializer element for `gSpeciesInfo[1432]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6654: initializer element for `gSpeciesInfo[1432]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6654: initializer element for `gSpeciesInfo[1432]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6654: initializer element for `gSpeciesInfo[1432]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6664: initializer element for `gSpeciesInfo[1433].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6672: initializer element for `gSpeciesInfo[1433].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6673: initializer element for `gSpeciesInfo[1433].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6675: initializer element for `gSpeciesInfo[1433].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6678: initializer element for `gSpeciesInfo[1433].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6685: initializer element for `gSpeciesInfo[1433].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6706: `sTerapagosTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_9_families.h:6706: initializer element for `gSpeciesInfo[1433].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_9_families.h:6709: initializer element for `gSpeciesInfo[1433]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6709: initializer element for `gSpeciesInfo[1433]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6709: initializer element for `gSpeciesInfo[1433]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6709: initializer element for `gSpeciesInfo[1433]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6709: initializer element for `gSpeciesInfo[1433]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6709: initializer element for `gSpeciesInfo[1433]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6709: initializer element for `gSpeciesInfo[1433]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6721: initializer element for `gSpeciesInfo[1434].types' is not constant +src/data/pokemon/species_info/gen_9_families.h:6729: initializer element for `gSpeciesInfo[1434].eggGroups' is not constant +src/data/pokemon/species_info/gen_9_families.h:6730: initializer element for `gSpeciesInfo[1434].abilities' is not constant +src/data/pokemon/species_info/gen_9_families.h:6732: initializer element for `gSpeciesInfo[1434].speciesName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6735: initializer element for `gSpeciesInfo[1434].categoryName' is not constant +src/data/pokemon/species_info/gen_9_families.h:6742: initializer element for `gSpeciesInfo[1434].description' is not constant +src/data/pokemon/species_info/gen_9_families.h:6763: `sPecharuntTeachableLearnset' undeclared here (not in a function) +src/data/pokemon/species_info/gen_9_families.h:6763: initializer element for `gSpeciesInfo[1434].teachableLearnset' is not constant +src/data/pokemon/species_info/gen_9_families.h:6764: initializer element for `gSpeciesInfo[1434]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6764: initializer element for `gSpeciesInfo[1434]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6764: initializer element for `gSpeciesInfo[1434]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6764: initializer element for `gSpeciesInfo[1434]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6764: initializer element for `gSpeciesInfo[1434]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6764: initializer element for `gSpeciesInfo[1434]' is not constant +src/data/pokemon/species_info/gen_9_families.h:6764: initializer element for `gSpeciesInfo[1434]' is not constant +In file included from src/pokemon.c:683: +src/data/pokemon/species_info.h:82: initializer element for `gSpeciesInfo[1524]' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +src/data/pokemon/species_info.h:154: initializer element for `gSpeciesInfo' is not constant +make: *** [Makefile:276: build/firered/src/pokemon.o] Error 1 diff --git a/graphics/pokemon/annihilape/icon.png b/graphics/pokemon/annihilape/icon.png index 561a4afedd2003b1b1b6ee3e3941a15adca8ebc0..e45f7583cb5b61ca503d1ae51980e2f2dfdefaa0 100644 GIT binary patch delta 784 zcmV+r1MmFX1L6jdBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zETGrk{RX65VmKYv+CL_t(YiOp2OuEQV~1&NL7J8s8!yP-g_oeNKgdp#im-;FD(;FsUJq zyMJ>>n}%_DP`%2z9RTwx>9p7^>*%1VpF6})X9s?e8Wi=tuwtq~*#8MA$4)}RlD2?A z471{Lpwn2d>EVSbv`t?m-)aC`2fa4J{%v(hpGK{`Hl0F2K5AxDKwhYrzBw{96T7N?o&j+EnH)oMu9)AJkNkl|L{30XZy6A&4_$H|XwE=kd9+oXfRx@(@=HxQpErQkn)G|@CBZU|%;D}epp_z)xaRYw4`=9zeT!0tH;p(Q36e=Lz zCUux^76*L}<4GL=GY~PL$}nPIWRr&}NNffo2C4Nn<=;7w|5_ik=?$0DekuR}0000< KMNUMnLSTZ}f&F9v delta 830 zcmV-E1Ht_D1oZ}xDKwbSpa?J!aF9R%I1m_kC;$Ke`1tU+z^F)INXT$Ns6Z$<5Ey76 zFgOSpP#_op005UhfFF@v9)AMlNklZ(URmK2t|X%?aV{w|9^KB6hX0jW^41% zol4+{7Zh_{|LtOyKO*XPf4ry^Zth%)-2Dqc250^Z$UEVIn>qq}3@c#x zbFP6zCX99`zdYX11!kB# zfE6$d!~EanAy`EKE&hi@dIH`8y8kAIC(sal4Sz~NEm;czz(;^(p#mr-RlK#}d(^Z6 zW)f9v4+y460D!Lnt!_H_kMZpBD1nLS;?gex;n|!)4Qr9$&w#TE2LL%+0ibPEry!15 zkOkV6#^sX%zw$P~7=H@7W;?(qqm>e+fR;mgzCQp&nZ}?A(Co>SpQjT#K+V7r5H)}f zBjXiJKz}sCuw>E>V67OS>;Ma3Rs)44Ikyx2IRRWXT?c^LP7y`Crq&WbB#^5Y@rO48 z?)%0XK&YmXMH-oOqfm2iSIuGs)Q*4@5aX2Lm9PXrQ=qsbMSno^#~(%H{E8riK8zA;Mx?}37Y~4 zFGjR*2aDLnynj3Uc0Ni`HwpM-0SM~}MBYHM?-Hqwd4Bm2%})4!9wdj!UH${0`d302wC~o)xM={7B|nTU zTW7z90*M3|{xl2;ammOKt>o=Im;jo0eXX^7!-p$#99Jj&0QKD{GHnvh$p8QV07*qo IM6N<$f=x_$ApigX diff --git a/graphics/pokemon/arboliva/front.png b/graphics/pokemon/arboliva/front.png index 13521182f132f7a12c938304a9f5644b72412b5a..37a208c3438834191672605f41b2f5ae5ab04e46 100644 GIT binary patch delta 1005 zcmVzkk{r~h*VNJio zug`=~t4=XeC>-t(^pcTX9)AOoNklYi;m+U3`JuG15;@7|9`u_wjm^GM^U>- zyJ|x2@!OhZxf~)oJcsKiZw>{O|NI;zA%@WJ|7H<{BEJAAvVZWS2ztW-;Gz#94uIYU zxAaQ?6I4H6i(K?GK&`w3P<*ZL04JQYwBJ#RalSPFV@wA?biiCI(to>z6G@Nh696d@ z0H^@~G0`OuO`pmW?O{m$$7Ni2b{_0MM5S5FnRdXMk9m06FJU`i;NWpe(dr2FrjR2nHbMUpcv)0C0*t zvkn;MRZ)uTf9*J-7k_b4|Luk9k&9Um1>Tq617J*})Gj<8NF(#&btF0fj8L*6vI1xn zfoglmktDV%PdwML8_k&k03l}sj8+!F!%wThqM%-d;x3d9fIPERr{~ZdFamoPL$5;7 z#258oaXBB0unY%gz$k-?9I!CXsS5ZRC?hpD-jGB-b-Vz2duc1?(#Ls}F_HU^1`4N{v8BOtCzn1Vy^Ki-tx+1b z1^|<=>%A#DA@0LO4f+(u9``b4Z9)f(PCm_&0%}!#cfgB~r$LxHc>rj3VRArr7|j4D zj85(V?7D!m0e?V!7LqMU>dPqEQj|bO z7fTl&0NTk`*XbJ+&lZv{)^xa27fQ*akt9SQ#FPCqH5nX`W;ubNaZdms@>B}ZVHKkY z7Lcb8E$f7n-W#eDByLGXYr!%?_RbqfyLg(Uxgl+>X@BBGFS8g7U}pUjUz5u#2b@p3 zksq}_8ver3=N)h{zISv7;Cndm1ff-b<6VD_eFC^XsLd++r|lE<$E)`iAOl(yApT)| zSOG$)x=;v(E`Iky+X_8?eF9iSX@KQ3JrEA~{P6z(Y~KRDa$!Ru zzj47@>2nw0z*jDa1M4>~zySoYeM%7VW`K431fkl7FfbF_{V|;MGSe7I9V%tqpJw%4 z2DuIw`ng3=ITnEcbSn(P9S=5_^MXwxE+~QdZY}`cefZP>to^jzZ>Px;+dpPS+$Ow% bzP|Yfg&H#-){ddj00000NkvXXu0mjfD-^zQ delta 854 zcmV-c1F8I?2#g1iDKwbSpa6g%nBX`7I1m8HAOHXW`1tU+z^F)INZ^1-z(^=)AUL2n zP&fz}P#_op001^QORbSz9)AM+Nkl6mtrs=1P@c8DUfXDv?PyitCxPG2zeU1{U{wn|%z;h#L;u-+)^xR4)7;1eI zGlu~H+-D-F5yNx60(A0Z9t`#>`O zG!GF8kP(2^1B!86UkJJxWK8dbZ}dh0L%!3G7iH$Ns1C`soUs*^p&UXLW{zxtAp&b% zUH}MQoPQZlU(eEwt$#DK>QRh>0(2(tjK0#d)_rcp-}@Q#*bN4FtL;8q-?gptoB%J$ zYYYG?T*s*#aQC+%#W&oS3NxWL1bv9>R_< zL=@27WHwa2&VMDS^`32U34RcmxCv4M7NNmPBj}q`?wg`!+chlU4N>xohrbV(s7Q{0J?jx zh&{tNpL!cn0jUpRsu{Kvy!{^l=dxUm5vEtd(E&8W0Dou--p?E&Z{HlrcGJZ9H;~Ykt~`gmz0o>0=~BZJ~3N* gl!LzzeixkjAHOOgkfQI#Hvj+t07*qoM6N<$g6Bhtw*UYD diff --git a/graphics/pokemon/arboliva/icon.png b/graphics/pokemon/arboliva/icon.png index 039efb54894a10e4e9051253538905d90d46d5fe..07f763a941e94c7fea555babdf4d210c451fcc18 100644 GIT binary patch delta 849 zcmV-X1Frml1m^~jBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP%?7bG^O2|NsAcoJyR{N|g3W?sJ^>l=i)(TK48C_V%pR)oSKSDPm$; zK|w)jIel9I00Cl2L_t(YiRF~rZp0uAM3EvJ9xVI+|F+}BBwRw$r&d*wb``?-!az<+ zKR(Rf1b_UZFn&^)uRjQop6EefOiDz$RTyJkbzj7YRZ)Uz71Z6M!`-^r=U??umBX%> z2q#g@?TF!%2&w`V7EDciRSr=U!AogLkeXd?ieUe-iv?*Ti3!)InnJZUgm&X~DY0>+ zMgFkCPESuk_z=4^E+w9Ft}QUpLG3V5q6v`M-G4yO31xAh0c|K>wWvE@Tt$es_wdfc*s50|HnA0r<+f;4^%d`KNZ8b4+}oCG=f zF-q~_B*=yj7eSg}3EBz delta 487 zcmVy&5pw$41|lch(nP5{%>2)7y{w1sg+>_6DYOYV#wOhi6|CvprGN z#j00Mylv_9G6Ak^4N#ch9m=h2_hL~9%55{B0$0Q$=DrpwA7gbIP?t7eVznq9!Tm!` zP{U}xs6ZVV0)N}Fp0jcpnN1)_5Cptdw#%2&0QY8tjc}Kew&c-bqugqt6veh6&tc1e zgOrX4*1r{A+j@W$2Bg#OiWh@((aq(v~*IqkDSk*9;Z|B zq5d1=zw)6Eu;N3vc{@JTld|W77U6~uam$C+*iY`rhhQf_dOpPW*m5mo ziC}gDQmesovU*~qt5X76wDsBoa%dy`)cUu@##3@*xBrGmi`cd$;PWrG2$XOqXfL!VWVfmkpA0000!ypibc>{D_vVqKyY;@=zKZ{ez-W(}|+3IJ7O7;fEmFf+O!6Z_*N|mzo z7LJdf6LvLhou~Cqk z3r|!B;ujIq-R+b$vQ|EKHuUqn>Gl`yu~9b46AU$lpI9 zWUILEQmpL{fIWIb{2S(3hI#lS8|D$4VSeF{Z<;Fo*J6JczyJUM07*qoM6N<$g1@$! A&;S4c diff --git a/graphics/pokemon/archaludon/back.png b/graphics/pokemon/archaludon/back.png new file mode 100644 index 0000000000000000000000000000000000000000..4b2d3971efb04d27643c20b1855affe8780d66c8 GIT binary patch literal 609 zcmV-n0-pVeP)He>9rOQ(9veVvTmb*75NBaD@@b0000G zbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0005dNkl}c_Md|QgI*ROu{AGJK>;h_MQ^_ig&OeTV*5zHlG!8i7;$1K_|kTVedp3G>9N=yK4>Of|OEEFl-?HQG_J5x#r(>br(#}uyqXk zjG!0c+}AfnaL$=wLV$>oN(J<4mm|0V2|bG;qL1E_gG|)^zF7nq=tBe;eGI{Sk1>!Y zC5r$flK>V3;;A$VMNtE_GB63?4opyzM2nEpz!bOxcgGUhg856G!9`Ld~PB)yD|T=f~Lr z`3Q{X1^*O5c)I%lM~>tDywhk`s&5dUAB^QDh@;#Io#bT%v%H6;9H)C@y@FOI}zx!X*^^e555xUB%25w vKJqYI-X?j9(Byotb}bkW>|a#0000G zbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs000CjNklwS?IdtabWu>3?nGruAmB?lZt}?6M7n^=7i}`%Jwz5KNcBX;A3C^0%$(KKE}a-4~Y{%7y-#~nU5om0G8tp92Si+NTuLE&c~4- z0`SEohE$#a>=xKFj{^P!0C&~?A>i)-LinEc@^t9|;0(EpPY1vn`k7a(DnPyhShD1g zeF6X;Sg3*>E4TpBpyYRZ1>^$~Bx6_7Ai!GJdX?UH4?d(h_LZYW5mMBP*lN1}X#2N#Rb>%4_D1eyb)&VVzD!|HcE`TMN3vt<&kjf*CT7|H0Wl_7UTXRGXl@Qp^ zZ!s_nvsVGvFt|;6R&$Ix(litfur~nZ)(JXD4jDp#2J6;GO8OKXgk|O_k@d3`5{PDh zj9KN~320uJCqF9Ec_v%20%A7RZr?kL72qw7O zmk>IjL~Vy8F@Sa0LmzvEAEf^a7ln~ zsDjhRV(f+BX{Oo+01N`Egy2hyD4P!{^-5}Am;h2Is=X;8??S2-7(58kHCQpz5aJjd z5ZRr`xlrxn;C>k3=0mtA$&%pq8U<>AwuexbQELH-EbhZlCdFdOtqO>` zfSO8o#zT;z#j*HMr~r*p&|9LFz$jo?XosU#f*xO6Dztp+Ng4e#v1f*aGi?dCylr_B z%*kvEu_b!37r~R1HYX?|T!dz<*OsXOeft0bW0);i7s2w@-Ypt|*8uqYmqIbqkwC#3 zQ@+2R*zY&WzY%Id=wxb$F928Qw*E=ARkF0f_72E$y}>og0|Ch+3q%L-i+#PM8K7K& zSSmsXRxSWkANWOrU();zVQ;t|h((iVfLNpO7Db)j{y5utx%ZKcUjyLkD3c)A>!S(K zCc2*zGH#ISgUAHXUw|_}sDSs|W^MqkF}o8+fV`wZ=XV|dwQ}YFoj1P${r%xXmNL&= zz{L9PLvTQiPn$5~ju6E1C^qtb1tA2xr|>VsVN0}9v7z}^%x}j&cj#qo3i#6+YwPp* Y2aSAH#dxm>@c;k-07*qoM6N<$f^r-viU0rr literal 0 HcmV?d00001 diff --git a/graphics/pokemon/archaludon/icon.png b/graphics/pokemon/archaludon/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9ad59de8feea5e67b05c271e7a0af20028a85df6 GIT binary patch literal 609 zcmV-n0-pVeP)Px#Fi=cXMPi(TgM)Luy}kec|GlI^_Vy{&VnOzlDT{mmVoJ^KbDaOQq@>0FYOI`M zVp>5#L0PGgWB>pG-$_J4R7i=%l-rIYF$hFsP$DC>;Q#-2C~PNSXL_~LO4~_ZQl|l5 zsveKOdd&WyzXtFtHi5+*)$Mfy*wbtkSl|H&W;9dlCt&Oy95CzM`enzG1|Tj6AQm;N z4&ZWK)q&=nz61Is=+uY+JVym#bO}uCy zGx!=>1+0sRdR-BWflc55jOHAMQxez3DY~K>`AU5^WDaUzUibpTdVDHvZykuf0Qhel zc>^H%I0-}mexWcGY1Mu0vqWo#ar|`3h4QYp2tPQq$~txSy;y{@;&yHT{;~1+GMUT0 z-g)1LTbFM9zkTjXhc9pPA4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zEKl-ml#FbG6L+XMxp|Npl;Cb0D4`nK$a4y7-1VoYPFlv^K=L8(p9 zL?X_VreK-`gwYc)4FHqjGK1(WeCfveutk_u0CWoqz@9*d0sxO%#Y;e_+8Gc4rT`cv zl$q@ahy%55XoPk6#}dk;14wZYJ*^)^_qBZDi@o3ALumKb0FhEqz_2s!${V0dhXdGF zzXV1VZz0&B4qx350l#5e7B(DI>D5^Hz@XH+=5tfhxw`c)dUJs6^C1q9T|Pts@+65VmK7RogNklPW^JY8Q*931RgC7!trVsv;zss2rxT z7G+hbPy)@81}t}=Q3=2gZ018r0QL+h0RsVH3y6sA0d-)WuN*`W^?eISOh7?=S~#Sx zse7?3OV~fp2lsW@-|N{45Bm#F0Jned<1R#Q|Hy|}S_YJRJ`@j#Q9eXK4E_J&UcIjy Xm|7RUWMaT$00000NkvXXu0mjfh1Ql^ diff --git a/graphics/pokemon/armarouge/icon.png b/graphics/pokemon/armarouge/icon.png index 2a348cab51a130f8eec2bfa789c5fe4b4066eac0..5cf958e57835c704eee90ff73cc7b9924dac26e6 100644 GIT binary patch delta 790 zcmV+x1L^$S1Ly{jBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zEz3^s+_&|KBc+n>ZE0-P6?OkP9s$(C_v7{0Cqk@4f95 z7T+t-sMw}3g-BWmpxUGhHDS2fr)oJ=0|i>K&%%oE5@RDbTF@R=@ZS^?V9!Otu9O&RS6|)iXg?t_dr#qa6CP-#$GQsXk})a3E+_ zTPYN1xOV7lM&a3b<-jr8TIEYS&SAgSzSw&~Qouj@{)mU%yaNwd_vI2e9y-@LOW}HW z$j;w*$nxKK$nL-K5Xax}5DR|6gD2SF0kX$~yMN*#asR|a;{J(;#QhTwiTfuW68BF$ zB<_F1L+bvE4|ZAPewI4;fOsN?hl>xP{fP&5Beg&AU{{sYyTpT+liL3$@5k-`4X9-o U3|!!Uw*UYD07*qoM6N<$f|8hhT>t<8 delta 392 zcmV;30eAlB2HXRXBMSflb5ch_0Itp)>65VmKYv3>TS65?X(ND0CnnQ`;jW*E)({C4 z=tVyb3&KMnu#TTm;ngbyVZ=w!S2qA7T&bacYZ#NK9h?T4^bPuCK5Clb_J)U7%yqEdbf9 z1x-uc3$WOlSSOllL%+YbPY;Ef&lwyJ1YLV8#RL+r9oQbDSZ=&>urcadI8Ily%xrfU~PGnb=b+A zO|2J1{JoaX=J&Q^4WaEMy~(lcoZFrI9$y&0F8@t{S^n2umQV8M@v!WIMgDO-Oq3V- z^LP-ulfT)i|DF6biE}Ui^LY4%{13n@`A_G=PX0N?kIVnkrX>HZ`X~A0D*jdeb%&Vc c|L64o0l79Fi=e_^nE(I)07*qoM6N<$g5j>V9smFU delta 401 zcmV;C0dD@s1KIUq zK~y-6#gnm4!!Qtr^9I&!86qR`0u}XIDX+(1m1nA0JX~#cV+m5|!f;JYvxbJ$cC6YG z3=DAFeY!Zg-(QO256iN&XZ2t+Af^PI*J5RF(ID1jOu-@?x=u;7qd|WZ>wqhTJ#Bw# zKQIB5qzJdq4%oQ|sauZ9T%Ta3m6hBzK#%AKSPN1CHV0DvNCxHp1*#KpsT}x#vN=E} zf$*vD;L&WjLaw$pf(N17bwGE!w>n(kmFVDr*WuOa;KFq}@b^py%5~7W4l>gL=~p@|s|Fp| vafxUQI>di!G(m@$r^$7&SC&=o$B*>|lDiA&AP(4J00000NkvXXu0mjf-}SOK diff --git a/graphics/pokemon/basculegion/icon.png b/graphics/pokemon/basculegion/icon.png index 579a83d550f34d76e10a945350ee77e18ccd5fb3..6226cf6a59db4ae1e4a47d10778b98c080a02f43 100644 GIT binary patch delta 392 zcmV;30eAlW1JMJJ7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&^R0Z&OpK~zYIE} z_XrXaffki#vBQBEmK^B{F6ad^cM)M)D7i*FZLQx=!uhLJgV6dzThZtU&MilK;*ohY zwM-0ejYW7mkG5mN8}`~`iowq!z8s9&o&#X#J?__M_`g|aKQ8|Z2S@o&tfTy6Je=mo zN&XxUSl`P(#>1+2@>k9JpXF~^oR{(+o4x{Wt>j;eTTq+~F`swhaIttIxOpoo8N zh_Ez=m%gBlqLm?o$L9{X#wd!^{w$DW*8%d)-LsS%jlKiiU1zw<4D}#KX<^pk;f%+4V;?s9`M fsp%~J`1O1PPKl*-U49nb&L`K7{zwdS_=B-wPJgHmfWaS= zKt_L{*aQszC=3kq;*Zck-}<9gw+nv|71b~N(fy(c`CoOvOqUyv`6IzR0WI$iU)-48 Q$N&HU07*qoM6N<$g1LQp;{X5v delta 302 zcmV+}0nz@|0{8-u7zqRe0001qplF?uEa7bBm000ie000ie0hKEb8vpFbqX~1A@>T_XtHoAd@5AsCO*9Dn5Z-L(p0?G6ZyURCS0&d&wU3Z+svK zQhHVOdI@1$gE0_5fJ7#SS#(8adRGG65m^fWnB$rPW<*7}0!R+k#a@;bXhiz{96^7K zRPEH=%1DhqcHW4!xNkZVTY%-klaavkXp%T(8O9*%yvgqR|2zx84#c>7(@4owq6;+p zlQak%);_6?A6U=jGyeplqgsVY*)ZzcqkVvw1=9BLRt$33=$?zX(bcA5;RoEO)=Gh@ zpO5Po$&T}xrznib0$oRthAhLd6$Tp8=JqG~1!;(Tm$X&`V*mgE07*qoM6N<$f+#10 Av;Y7A diff --git a/graphics/pokemon/baxcalibur/icon.png b/graphics/pokemon/baxcalibur/icon.png index befc75d3c8eba7afebeb485857b881ba8effd559..e5386582f05a8b01dd1a8886653c52dd8d338855 100644 GIT binary patch delta 766 zcmV4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zE(c|v4Ug&|KFaRw%0aE!#y1gX6RTa&9UWJuh*M}Gp2Y^ zEfa<()s&tI#1liF7#m&+f-x$^iR-tjk-+aQ#RD()MLY;e+FG1{XAgWJVo9ZElvLD; zF#`$w5N#Qzhyx;QM0h#Uj*IC4k3x4GHcWruI1)sPt^zl}G|IP{qv~*q;p@7>5K3>1 z4Zg_k3;3>DOMt*@MSeRY#Hty@kh25r*!WZ6U@bYX+0cn?;4B$bGMl06gFP)J{f1`*xLlF|pa@c9uK2x_h!I{_gQv|39vOp00mv!$D#g zuK(!|59@#W!^8R?{%~3U3m)r#@dxPyuZz|ALwiQ&58X&wf4Di!*5=(G+Jn6HhZe5} wa`lIyfz15j*FeY^_`_}>jJbhS>c1Pv4|0?rZ;(Vka{vGU07*qoM6N<$f=`QU*#H0l delta 418 zcmV;T0bTyk2K57wBMSflb5ch_0Itp)>65VmKYw#cL_t(YiPei)Qd=2I4p^z^lX5hu;|Ir^itRzQ7Z;rzC{!U zd>$?4deJZFZb&rtV)#4GfEN>K5}F+)715%o00Z7gMu!Uf2EH^hY{seUq!Q@fXxCZ8 z0)NJ50WUFiV9KoG?Q5-3=kOke9mm1SKI!IY@@4F{Gro(|7MR#-M|Ru8hgB<(a?Zv) zUK@ULozY9qN7kv$q>Q`7!X&d!I&M(?GN2P~EzozA#-FI8+AHF^&{(p~#OZ)>q4Dk>6aEX7&havs}A8Pz_OJ~f7 z&C~EpK5)nfzlSsZJQry3fAN7wKGgVM_(0RO)?jr$wD`BWLko=$E&g@~NS|isLyi9c zkQ*O7{ygd!<;e$9*8_mO`M|U808zQ{VF8es4;>&2KD;vV2YmPeWR@Ra2H^6A01E&B M07*qoM6N<$f^wqEzyJUM diff --git a/graphics/pokemon/bellibolt/icon.png b/graphics/pokemon/bellibolt/icon.png index 28492e341db336738b35916d763db405e0d0a985..5f2a98c8ef38d6e9daa1a4dcb0bdb73c7234aab5 100644 GIT binary patch delta 412 zcmV;N0b~Bg0?7rCBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5| GE*JrbMZP}( delta 23 fcmX@fdW>m;GB*Qbage(c!@6@aFE?*wlwbq^TE_>Y diff --git a/graphics/pokemon/bombirdier/icon.png b/graphics/pokemon/bombirdier/icon.png index 06bcf71c867acf5ce324d8268a2f35404daeeb09..45e4ac91df5fa828a60091a7b346b775459b2617 100644 GIT binary patch delta 660 zcmV;F0&D%o1Lp;hBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPfONklF}@tA{S!u uq2&ipm>Lg@4+#i~hqcpwgNOcKQP&6P?hq;|n6@+k0000c7)?E0978-h--aAqci4a>Yc2hTa|-k()E6II=X9$- zH!HkFhkZAn=$js6SSbg=< zzboq}`@hZzPTT2VZ~6b-hhwr0-sJ*1%`5IQp0=ww|08NizxeLjlz$&YKF$6YAi!6@ z;#uVnXTuA1Kb+6~I3!cUF=L72V4U P7=Xaj)z4*}Q$iB}ZfUX| diff --git a/graphics/pokemon/brambleghast/icon.png b/graphics/pokemon/brambleghast/icon.png index 645ed7014d08f8709a2b49b944d9c4575eda05d2..ca6a29df23ab18b67b6ddcb606ec65aed6b3030a 100644 GIT binary patch delta 737 zcmV<70v`R|0{8`xBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&FNd%eB1|NsAUbIqiz_Oydq?!}A6tSR>PDfVJglzYv^q|Lo4oMK{H zK|w+3M6_Q3008qzL_t(YiS3lz3WP8WM14w1TQdLux0^&)dr4hb_GQ6<2+rv=tz@?C zsi|;0OMks!L%ktRAZCE#Km|A?K*f8gl|lejVBQd7mWfbX({(9|Fiiw>(Fp*;!oWZX zvtkSfl_2T}5EDqho4;EOx_Ks$A<5K{H~=;s$&E%p7iZn21$siv*3OYr4z}3)X1}NG zEc4JLS^H%D^KLL)74(d%k;%aZ`%Rd!sub%NVOs4Y{@+@%D00000NkvXXu0mjfJ`-Av delta 309 zcmV-50m}aP1>ORXBMSflb5ch_0Itp)>65Vm6n}f1N}SC~w1Zmi#f!zPDfad$)nY-E zd(Fk9&GwWjVq#iBK|%9-Hc9{h0NhDLK~zYI?Uc<9gD?z(IXP8Z#qa;NOUeW^WIs2g zjYwSZ7bh(;%W~JL_0g@~RAvvu8C*;H^M zXn#!`K&q&aflv{{gab4JmfW*I9;91gyE*lp`<`>b8E4 zT52+4-CM>z)xnB{CE@GC_m|ZmTovt%rorW8zil02|48^BVTymqg)Igi;~(@9ZXVs^|F`M?@$f$Y*tr{=l%1yu00000NkvXX Hu0mjfqH&Wk diff --git a/graphics/pokemon/bramblin/icon.png b/graphics/pokemon/bramblin/icon.png index 9833e5007bc397bd368ae871448daa6d0937285d..64fa8677b3ae2e04f372329b61eede99936f735c 100644 GIT binary patch delta 683 zcmV;c0#yCO0>TB5BYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP%?7bG^O2|NsAcoJyR{N|g3W?sJ^>l=i)(TK48C_V%pR)oSKSDPm$; zK|w)jIel9I006y7L_t(YiS3k83&S7`gnbKIlKcPvcDba`F{2FjHVicu?;}=AuC){Y z8Mwz%?|;aF1%_@g0vE9gu*(QIVKV`^4wqQLIDG=X8d@a27XIbi?* delta 282 zcmV+#0p65Vm6n{Z#lwy>mq{aX4bDY&;LA|6}_U0+} z_N>*_YW9>VVq#iBK|um8y^;U`0KrK_K~zYI?Ud09!ypVr^JcV=`~QEt+@!EEqipP< zFdAAdy$7upkH}sBSvc=y-jO#J7`nj-9K>{%JmLt(?j7*AkwwGjg1|X8 zyMKv*zZy((h&~YnG)5S{n(`}siU>4-HUq7hHBRAcEmpy8Xxd1yU2K$^XR3=l3H580 zb34^cvHhdi#&_NIMd76_^EgZ!gU}x$8-vgfl4r6oNctoFP#Prt@dRdrgg@k0fsD@t gGAY@r_$&vK9kJCq0#e1<2)D`mkrP0+%4X+cPvs`P0E>IMEQL?M z?_tTMEKAAWh$^{%PhAgXFU3~pqX#35p{~Tb7g3^P6HqVEm)Ld))%VR$&`<)~wyicP zf~@NbKYI#*&zf(GL0gHghYjr$K~o(DAR&yHgS%m}>FkL9l6Nc!ut07@RT8I!`h-<<$Iq?KS!qgW1 zd|!Qrgn4#%ZX_hkc+N3lCP1Gs6CxzcNK8hb(gU&J6e4vRoMHd~002ovPDHLkV1fsA BorC}Y delta 412 zcmV;N0b~BG1LOmc7zqRe0001qplF?uER4`WRGZ1%SN=zb# z3JGK9nv_^#V1t`-|JoC|+U zS=5P$a$3w$q-@SHF?~vLx)CT@EEV=4kd+T*Ua?sm9*RDem)TP~LySWz`d(aT`Brg6 zY@C1caer0VqP4)}f;zj&6;^D~Aqpz8>UJp$HJ~72e|IbJ^K}_?f?D0LbZcPQ1TfSv z0R-@(M}f=*chj}lseHlwV#|NRz@L8rB2NM7DIjGu6}W1qIW6bf7yO(FL3VSNAVmbZ zC9cgGT7u?|Ak*K$5%g>cN}3j>O@fUhXv<=I{#5BBL7~M#xz`Q^RXYnzKf{^`sxht_ zdiFq2RS#_p1dWFzg4l7Ko}f2N&?pQ9jVS{`Q}g|w?F;#xwbe0PS`YvL000O{MNUMn GLSTZ?_pR~( diff --git a/graphics/pokemon/brute_bonnet/back.png b/graphics/pokemon/brute_bonnet/back.png index b73cb1589ebf1e06be6f634c76e3c7b2fabb2d53..36a261487e9dbb289fbac7bd953ce094f1bee566 100644 GIT binary patch delta 635 zcmV->0)+jT1+)c_DKwhYrw9lLEG#UcnR#?v($>zdQAs~oJfTEwOl75Ujo*e~DLKZl zH@9?-^rOlY6cq4Ut;&&IAAciBL_t(oh3%Hfa>F1DK!Y#_e9`~^ZP5k-+etdT^k8MC z0pjHi^R`X2gc#^OT(%buDZg2>;=>}79Jmqh<8TW~YJR7DdKy(7mAL(TG z`B{)}cp90%5f!B9>YoMK4=r-XX)*AD8U#KSFq*dKy+OYdo?oxvjbNDY^}?G1qUV<$ zMju&Z~y0d;)y4I5kK+2 VGOd$H#XJB2002ovPDHLkV1j!~9pC@} delta 607 zcmV-l0-*i01(*epDKwnYq;pcj_e=^hO3Q4!5o=eY zU&5p(w-7$~!=u|HK=4ZNy&j=p0GtpX?K`2+9wPQEaO?UoMV~-^0fYcg3DDdOsMY*p zRRZ27Kr?j#j1-CiaNdI5FV9?OV=n*|fVUM?$3Fp>fS~@n7S;%1K zTuz~v!DW&GCF+Ci6o26DDY^hE|EWrh>eo~7`4kVo0?+|0so(kq0Gh%LfbA|pUR13K zMgXUWb-K<;0lQ0)UEr}ba_^zsKw?Ci0KzNK*MGIqh`YZ5Qc4Rzd4eD7 zVvnh5c9(J!izo&#o|IxWwp5o`a|aN62V~>rQx|3qT4VLrV|i8sq#2MEkXkoVTL;%z zlU2=t)Bw}(Y;|HD7$8q2bU+#<;Vb`G;Dyp t0hZVSgax3hR3L6_%{a$NdiCnn@dG8BN1h5c4p{&I002ovPDHLkV1gZm5xM{X diff --git a/graphics/pokemon/brute_bonnet/front.png b/graphics/pokemon/brute_bonnet/front.png index 46347100a2c9415059549d63ec29688d93e0a589..f34d40221728eb06328c4c9e491fa75132b99d86 100644 GIT binary patch delta 837 zcmV-L1G@aH2m1z)DKwhYrw9lLV>T_Fo0aEGQP0-Kd{jxXA~{5DOl75Ujo*e~DLKZl zH@9?-^rOl?A|6TgV|0;S9)AMrNkl2m8J423HZR>$%CzwOlmSQy7nd#C@Z znIsrEABWxf`udCC2*7tG2%iC*60inHaK-~}A&3lcBJ|$75JG%#L;!pc0OK_PJhe!A z=T#n6&VfRSw*b#_H?-dL1c>pb3&2V|(MvZXMjn$}fcT&FOyI050)MwHa@L2VzW3%W z0euVYK#akJG4zHo>dzxy5b#!QY@858@2r|eT)$CM17#x6_&F<8#qe!0^Lj#~#hL&} z;vv^UG{pf<^j*sz+Ca`F(qhg^=%B#WW1 zl3Sk34k$aI{=f{VHMBh%#ASuv_F&}1g6V8&fMs3R-18?V6W|cwmgTji{{g^jd8MY# z`%fjDbYX8L3t)Y{pvf$NOV6gERniolZm_N(it4ZRC!GKw)qi>o!T?YEVF1+OpiC+l z0Px@mgE|Z12K0ClXaztLHf_=Z@t|iwhTg$40Fq1EvQ{8511te(0W-CZIrpdPeaan> z0L3TWPIE3iH`yp6+n9#(Gm#Y8Gs#-4*($$ASTf}z5vkz9Ni>D z6+ogV7yvpHnSTLP0CI5;hZ@K^LI)5^L*&N*eDVemfp@$ByaDi|XMpsPFUMWqjet3o zY0Ufp&^ti^d>9_(6%eFxuM7)ts&}$PI586#5L)&@FK;yxbe5NvJ`!ki1^ety06Z}X zf^#!N{Dp2o9_?Dj+CH(!>5ecF!UneBu$w_{vX;UyLVxP51!%I4mm{>z0o!yRw>L&> z;o?1~6OOTM8&m{b=m~I2;9NlfT*`G24veimZxT1J%%D|!brM+8EdY$=_PV{Nz5@Ug zKLLQLIs!f#g8DaM&(sBRKLs6dxHjsN`sgpq*-Uo_p8zhXKiB`ouf{(s@iN4O|B~DQ P0000Ky}iQT4|sfDk0x zHKQE{*tSC%GF}2u0XYoQ7O`mcr2ri=3ug&H6PMDP)>Xq(87lx{?tjb9lYGWF;;jK8 z4`%gW<+EJ~lic-h^Ixi&2*aLztp6JU!$kO10g}QaK)*R=)9x*G-MHy7e6quB9qa%a z-MAR`K}jWhaV=m3AR)3ChQUu%gVaA0RR9t8X^04jj~`(`4T#T2Iw=?_6jg3daiyDKomj%&o{jh3W=(} z07{T*Xg5H3y~@;kc~%rPPX~C=9}W=x>jir=YN$G107^vl0tgDA5inA`RM!uMRzS`i zp1}dM1ng@-ZGixu&u6gWhIPONKy3wMh6A*O=L#@Q26Yo!TYozs2l*<_03fKGk~;v% zS8v|4{xcNbJphW+G9XR>%J5sjz63x6=ug9tC)LVq8w>`vUeJubf}Ay$D*;aOtj#b0 zZ6CGx0yt-Y>~ZdZ$k+jEL1b|^X1b`}%|7feD0y2mr7Qp#9=ToWyi0v;^ z>$RtzP4-(5fSzR-4e$`af}jmzIlfe@$Cv`-l3+bV%@@6_9t+@#(3k>rEP!auJ=!e; zJw*ZHNwHWL#}Ob4wx_hC0jdNiz{O+}{RFm~gjS2~aDV0Cr>c2U_zW@ diff --git a/graphics/pokemon/brute_bonnet/icon.png b/graphics/pokemon/brute_bonnet/icon.png index 052517c12d97244d824dc79a424ab5ead0861ca9..82161e124d57138fec53c6fd858a41f5fb3b0dde 100644 GIT binary patch delta 712 zcmV;(0yq7^1DOVpBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWr6iGxuR7i>Klx+`!FbsrAvy{NH>;M0^UIB5N9r(d-dchd&vlqJEP1Enm><$py zG^|6gDMUC>GIACaDnKmf4B@A23IH!srNqQuFO^!t%vZ00?q&EhclFc)$*cnSqUjCb zpXcPPqX7&lsjhhTNeQ$QAVIO(%J0OgYP)}e6^>Jsb%wI&>UIF0f*R&|-m8iZV3Wlr zBfyE254uLOO{|M-0LQ<#+S^8e^2NYCMaQ+sjwpOj5%47VK!Qud1}+OnFTU8|-kBeX zO&9m_gRA}57i4ym5BBT%;P$`E2VCXDVgHMK!0yO#KDhncd-lN5)+=v$K} zNnj@fiJ$DCb{LF88cCo(8|Z%{Atcfz;HnXNCTT;*ZDG#rbxua$UsTwxf%BXg~i3wLeOtJ0*%}k zgNL|Xw{6oHy5(TT++;-#w`04j-n|_Epgw%~@SzKW4|3)MB|e1U!UsuwaJ=+xU)Byj z1^2BYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPe*Nklp%k;fdu7?;r-6oI)7lST|ZiOn|13N7&WKpaV!; zRPo*!;AmNsoxpGte-P>hw7BR=cmY*w{%cTrt(8Dd5MV@}F;X@!xe$Ko&fovxF8!Xq zctBp?kB524_hZdNT*O=EVZRR~)Q{ahu<7IWY#;Ea`)~&y*bl>~<^QMv0000c81{O)IEHw1zMZm{>#zY&i}QplT5NZJ z@6Yw;o12w+;>tnyh0S(;_D9NPqWxJ*Okde(Gf8N=Fy2W$HJ#ysplqX{*uAJ3kv_uT zMH>Y+pWG12+EM7;y^$?L!Qn{GmN}p1DSkSCJYT=@bmSwgWnEXd7RKtyI7i0o&U9JP zCC2Qd)U6m~`QgSFaV67*UjkNFe~38c>%|<$RN3>b`O$jjeOIpS&v@=UoB!sbv+Y0s u{H}TM`TZxw`Ttj+ZD(Hp{apL=Ukue4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zE`{<|7}M(?Gn$5Gho|cKz%FxRX>c$ZTo`*+yQM( zz;6H&y66HPGt&zK(9j6e3joSLhiY83fV*2nT-H|tp;_aiK!mG$b}0cw3yi=u)fPDv3Cbu|>I6xdo1`yHwKv~2oDCNXyP_!myLjC%eR(>-|aR9uxdui-%$-HeRVqcO(n_n;ZT&Z|hlA{&Rdl%F?P!qdq7^W}F{Dbq;h`>!mEc0jK z9S`4*2SptZ>8Eu*2$uPf_WzO(v;D_>DC|GxLt+0hA5QK*3^eA$?C$;=Uil!iyVLyo znGc0`6TmATN_V4&-!mSz%H9365VmKYvI`L_t(YiS3llZo@DPgPTb@$q?WF zZA*E@VlT3D=mzXCp9=V^e&~>o$1fb<4rqGnnlKtg$E%;i{fpN&wNqBfIn=t_%U?eOA#hDF9w`LU(Rj-S;KfMIk2TeQv=O z8-IaniyVpsWfUuQf~3rG9BR4Ag@9#!BtfZJ3Db82h-f}g7I6wnIWY{1*2GMxUw>)k zn^B4r;JxK%KqA&yx654b${xnZJHkv!B4N{o756ZC^h8$HTkvkapU~gJ2sE>Hcr=aCQG24~6^Z zcqrUI$HQRm(?4@O6w79Z4;nL_U7GtVA9~(Y)*bR;VeTOx7UmxEVRLW`{A@lv0j`N0 U@In*L5C8xG07*qoM6N<$f{ux+8vp4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zE87@%ea)ARrU N002ovPDHLkV1oOuZdd>S delta 372 zcmV-)0gL|O2FL@DBMSflb5ch_0Itp)>65VmKYvC^L_t(YiS3oavcn(C~(E{7WF{Ctwia9JWB3cblF*>MZpSq@qtc;0_+cjqtu zJw7MM1|W?fX$z1>kUM|`K^_1S1mTk)3td1u9~wdS0I8iIJAfPn*#M+|4-kC@2;@hA z`0*bB!nz#)2_SveSKA1XoAZAHBnUEd5J&z1NRF4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zE-wH%$JR#9SD{tG~KwyS<9GCu8mfH9P0W2dX z6o@CpX0hUf5`H8sD!m32p2z^GD%IySRU=V-6Pu4S!TJHhFh=x;HvJ_gaC`WWP$_|! zita}SIZCq&OM_91i^LEYJ<_fr`(y-jk=16OU$OS>IkfjLUHV+#21NDGfY|XtSomOX z_~3Nd@*&QD%Lnfed{BMxp*cSj_jT|Ni1zx`+b18;UcZ-!Ccy{xeDI&jNJ7|x4^IGD c=_mZS0sW2)HW$yq_W%F@07*qoM6N<$f{tD*D*ylh delta 242 zcmV65VmKYztZL_t(YiS3lJ4g)a=Loaw^F#rFz z1=5pxg`{IE^}O1Ffb=+yTmLFcZG3_NmJt&Q#1mq(Sn)v#KN1#|-UA9xWB^o^>T{Z^ zk*L0j&BvKw{QzMYBl<&|{t^?oJ$y*0lt4^H_alQGrP+n0!KlSWVu*_#Y1fc_GJ?6t z>RZpRSo`)G+WWU|o%(hB?F0S}{}%tCdyBt!2>ew~{2RJV+}FV;|1I3=?Gt~raC?bp s68N*n-+wA24}dN3f4L7Uedjzp0R4{)P~1{KIRF3v07*qoM6N<$f@+;{ivR!s diff --git a/graphics/pokemon/charcadet/back.png b/graphics/pokemon/charcadet/back.png index 01ead6b28103de430b8c49873e4ec3a21862dd77..b064e26a76b62ac75c2466dd5d6a1fa63524a80c 100644 GIT binary patch delta 600 zcmV-e0;m121n~rrB!4haOjJdh)TdxUrE6jM*m=rW5E_sqH`+Bp2nYyXRZ%lBG2VS4 z791e*vLzvu?EL)vbJpr2gNkMV000nlQchF<|NsC0|NsC0|NsC0|NsBZA+nSJ00H1h zL_t(oh3(csa)U4o1yIsRR*;?hU$^?QA%rl+GBaItsy1mi|9?fYA!eHXSlz5H#lNh^ z1&?0<(7xv{jA6oUx{Y_?QM}#9gc`LU`{hBP=20U8-#0bX0;5)eh6oEbAf)TKk@lwjhjPjiyoHy@Dfr04z~}FXg9+Ou)6|X^!V7A;gLNk05XV=NuG> zq(b6(;*&MXV~30$q6LSWgV&2quaMRcTA^rfHs2x5W;}!0_2_+_J4r3!VO`!HGrRmj}CMt@))oP z#f1@|3B`r@8f;pCaK4Q{%mCpuzI>S-En_J?c^5h1J64)O8`*9@oJlb z#Y}kc#8EJ(qig~8M+FDwOzp@y6GWR(7rzPkI-AH3iVnbUoKlz20slIi#i86WL%n%R m+XMEe1PHTO{v7zP->+}P0wF(bfcc{U0000IJ*$`O%s#QUW00054NklJDDAfXXA1^^J08Ua(x z{@O;C08N1(em@|__{?CQmny=p2`j+j2TV@@GFX;|B0Oq<3RFdKFbJHRnCenEnj|HJ zbgA^01ZxCy;>#De0ODN?z+1nF+%J*|vGgn9@_vp5y?;`>H64hcFSd4s@Zm;)H~S5h z35De2jU=0|f>0tH{!CB=zdjahD<=SZjl~i>v%iS|LFjXcYu4)lAn0zM6rdNzYB(c^ z$d(YWk^q3_bV?|~5Z$hj*y9*C;yGZOh6oUa=&0-vElompUJPH0kDZfKE Y1H&0lE)SZZ1poj507*qoM6N<$f{5wkasU7T diff --git a/graphics/pokemon/charcadet/front.png b/graphics/pokemon/charcadet/front.png index c90c6a2db06c10219387f790813f1263b7acf169..b00dc06924ff23daf28f706eed44c296c05dda0e 100644 GIT binary patch delta 556 zcmV+{0@MAZ1jPi9B!4haOjJdh)TdxUrE6jM*m=rW5E_sqH`+Bp2nYyXRZ%lBG2VS4 z791e*vL*i#68!x9@Y(?5PuK1_D^EE3Yf1ErfI%H zp!|}4o^O|KFx?P!f`}>!Re9<}qb~0Dq%C0AV9#VF1vfHQE>h1kVG$asa?^01{W=nFRQO@T`F`317NP^u1P-w?^LOg?q0Zf-P!JKkN=(oIwr`~KcDKNyHOm*3kdW~J=(Cz!ah*pF4^2nV*A8y20-9JGVOc>(tz#6>u9B{J+nzd;r#y4BT58(AENx)0m$bN9r#*BOhJ+mA4e|${Ny&9 uumVpCJ0;`(X5b>A{oEv_N`A*X67dNZNfhvScODx60000aWO$JW;yp}X#nm+nJI?r>I@JtivB!3*A2hcn}=jTX(xe>B{ zBNQ+SW$os-UlKsYl=pXlX(+)Efd&B{f}jk58Gj}}oZ^01iP_VGlsKMTX@n3h?}#Wt z)^%N$j*x8&6U6-;Ax@B#-wB1 z`|i_l6M!n%1@M5s9;z?Eb{}AN)yJbAivwQ%TL6#XI)3`6n|^0#m)Rw7_^%Wqq554J zBG@NDguU*!^abUNZG(%y6rby$7yDc$n|}ag!Gc?32!DJH*jL#G0AVVl1T6K!xct^C zXoF3mwb%ga9k7K`#J`ad0<-F*RMxd+;2^-ItIG)-yTZ30{qypPWeU%N!tWb4H$@h} zoE~8WkdNRc7y{TXo`&ww2+~1uaUY#D;RQ&{V3V{pkOy2qAN`fS066;*eV^C7TL1t6 N07*qoL4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<006g1L_t(YiS3l(3d1l6glh{1BzW)tw$-g$q2wHtF&MCwi@UjSi zdL*IU`7Pt{W*gTv@0f!gZ!2^S7gYm!MNSBdw3n&vL1ENTfXF%`-`C34bfASUkAhvCaex3K4Qj000000 LNkvXXu0mjfNWwLN delta 293 zcmV+=0owk&1-}B2BYyw^b5ch_0Itp)=>Px#Fi=cXMPi(Tb8~aOy}kec|9hNDoXtv< z_Db$^oc5IVy`)<9<|+2}tku5#L1{UCTL1t6y-7qtR7i>KR5236FbE6I zzphF%-axFM5N+3O`h>`l1b$It(^T9i^(d%gyALSC^5U*f|FsGZT zP8RPmE#)j;4`~H~>PG(`%0?G>i*8&5{VafXJsj!R-{DUGY4S?HO!qVWSf~4w{*VIJ ro-X5m7;`_g=^p-VKQ!^b>V9|t)Nl^Dk(w3@00000NkvXXu0mjfDKwhYrw$e~I6qD^b)g6d2nLnpj_vbB%k(E*svuc1sl&QKl1zun zfdBvh1}qj)QBmA#n}U&DAAg}qL_t(oh3%C|l7lb|MX?dcLooNhZAB*BPPyRTH^Lt9Ene&~3Sgkcv2^Yl|xXuwWZ$32~_%)vjdi>Q8La_Er zUTbyWFHTEAyi%nJb6yw9td)rg+a`jSuMA43*=4Zcrw~sD?|s9Nr+=MGICHqhAPb!5 zSYOw0ZN+?pIl_y;TH6(r%P?Q*C~(dNnS%{J^bGMbD?SF^1jJiJ02mAMQK*Kh0K2ZR z?Q9qeROFX?0m1|9JJ>Ft>Ywi|EP|bQGV}#y22~GT$OVwV^~WHFwMuYVz(;_sD-c8V z|4|Tv2sm56gelIjQGY`4KDhn8fE8_lWkcl0f=Sg!K)Hb=kQ#U-10L!wA~G)}I0r8p z$*2G*Jf?PH5^x*nwc`Cy0OrP{L>?llfnN!41eiM@JmMjU$DoW)z(3D|Q{Y1Z9EdSw zFlmn~6v6ufvcQNV@^q6y_|V{0{wT_NHY7d`hTlj{JbeMuMma_Jbp9-$wwMNAJ|Sgu u;(241k)Y5gb~69gMs&d+pZ+rB;e39$DQd# z(M>Y#?5EYA({)cg@x&8PJn?sengQ*E-?l(~GoXzCeG@?RApAeV04*l?M+iex8K}Yy zEuDac!6n2$raYw*3r-QYfc#IQvs+ex_h5|Q=e^F2@VCMFX_|l-Z+{TB^cesXM&w>R zDFAV2f>l)Hx$iPY>ZcMnCi2c?d8&k6f9SomA|P%FNv^{q09>{|K<`7C5mf}A^-A#X zdY&zo&x8bU8UQ5krUwDB%rVvpRP?gH$%2-i0lX|>TEU20wGU+wkXjLBiM=yG*p{&F z`zoM|)IQ5FtcVOS3xB+Xh4;9{eLVpr_1h+?0VFoS;LHOO1F$h)0lJHJ3B>@EWcFRM zp@4`U#C79Ob7X!29PSGMO~52pp6di=n}(E70c_a<_UQ`fm^puu8$2dZSV1iCx<+hc zb&g#b1sFy4(gaw*5A zQSKw@UXIeJs=PZMAzg-a#sxsSnl}%tK0k$!0ba6_w2|yM?%#G@XX%0c8hCj~9f6CL dOxIBXd;xt?5~sL%GuHqB002ovPDHLkV1faV{ICE3 diff --git a/graphics/pokemon/chi_yu/front.png b/graphics/pokemon/chi_yu/front.png index 6a41c507a50e8101af6fedc8b1e005d2e6a28372..5dfea02b9342d3195ab284a5e56b72525dfb231d 100644 GIT binary patch delta 649 zcmV;40(Sk%1i=N6DKwhYr&tUQiWwWmF%Ad_2;x8m_`hf0ghQYp2q0N9sl&QKl1zun zfdBvh1}qj)QBe~eJ1mi19)AKbNkl$8H-iy9=(Mdk1ciww$W38ey^V2hc)qeGu%*Zl2^T0mMK>)F1AUK;FW+O*=* zhsOZ}vWoJT98<#+k*E?FkpwNGsF3Ye^RG`a19T zvjEKXUOx!tzDh{sl^M9=dx>|><$noid_+1R$SL;% z=4`F?oktyq2ESye^|~%jK#gby3SvN0LAio2^f0KP;EXAm3CPuVo{IC_5Cot3q^q`X zkc$E&t`vAp5KY+z-t`=}Q>EiBIijnLE%ytpEf)zyCf)B>;r8o?+Dd$V*!RID0 zRAU%|8Tf9PZQ~(eVt?=)gIm5!nASj$+4wZOz`H^qSu}OQ&j#xPJdv9MQ>e1UPFfIn zaTd#wyI}^*v{Inl2rEZ{MTY@wg+Z|moCV~?;|wkYs2)40@gOxd!Gb}#?@s16b|P-W zcAsk+m*Rqzjyd^`q}XcItoPiNA^uB7_!t TSwh3u00000NkvXXu0mjfv-4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zE zsV>%M$sKm+r!CtqeJg*FCNWVrxDQzj>N*0%Lzo$~HQ#BP>9x4tnu5AEogB77xr!b{ zLE~?O6$s_M)(Uqp&=g?z^=$*-4vy)TR-}KS>|lT+OSq$fhEl<^?m)=k4n;w=ZV-e^ zur@q6YK{WT&9XQ$IXP7oRT`J88hv`g2aX9T(VumH%#hZR6x@!{{h%^6>UkBlBoay002ovPDHLkV1iSY BQRDys delta 304 zcmV-00nh%S2808UBMSflb5ch_0Itp)>65VmKYs#AL_t(YiS3lzio-ArL=6TRL^AXL zf4d{+(yniP*`-jb2M0W3Nw&gC=^OtPWg6!nuj5L80C=e zSAxC?lJHXEBz>gk6nZHR>0Z2XaD!_XHHkyU-v%a_wPVzSs-L3;i1(6>G#?KjZATq1h5KCqSl%xd1Xl%mW}3!rTCv5oQIDgD@+A z1Ywo{3Bs%Zau8+(kV=>pK!PxT1dw}-GZ}!qgAYHF>J<6GP|3mo0000 zZtNfogaaauA>{pE_lz+Fa)Hq5{H&!)yXwxz*cijI{Kfx`O@D)aDYx6IK|=Y3er?QK{OM_$EN7`XqN(c_j?IaI1G$IdV%| zW6a14XZ_mh&(fw3-Vd_@!LG%C%ljaWb={spIk*@oJJ5)=xME^d&tkykj;wuULvX>a zF-BnfdTIf!b${pqpt$cJ06GD5ZEYdIz`iGE0|1fM{-#d^LI%lI50Lae1KQGK&CB;0 zKw}^^*jW&?)M~#nI01BqTEO3C?aDJHpe(l%=m&uq0ifSH04@m#fXmU;A(w)kN%ngN zxX~*h%QJut21D1r0+QaRUt4t#wI1|sV>w7Y`wH-<9)D^+M~oQQ7zO~~I0X1ppIm6z zB#(0d1U-W}1OR~NBlZbW#4ErU)i0vs#moUJ!FZ$kg@Xb-ANvqMHvp=R{P8c$fw-U# zVweCFf<;X^82~_p>`nLrv;?_cPQamnBYpws0x+sa4bsYnCjc#>7+A89`8$O+32W#I z$f;w zD(c|4pGXh@IKl+r(Mc&*9A=xSQcMOZb`N9)R6@R%tc)tG55TeSJrj>sqkl zg(Jw6`T@XK1a=fPi2bq3l~4ihBmj{*sSmI(0BubAN?2vk4*<&>z+VWs8YcjB*~fHO zRK_+1X!QBIt3I|t5$#6L@P$y`ZrukCuAnzSL-0dF^4}r&tB2PY3cqS^h*F0)0uS^L m!uEWv4h?8~e_8m8U&lY{KRB(WR zdU|@O(D?ZH_;9f3XGI;YRoBS?000nlQchF<|NsC0|NsC0|NsC0|NsBZA+nSJ00M$Z zL_t(oh3%Hk+-4H|aJDN^g&!CT^4S#q%e)hAU-I-zw;cIX2 z44c*8AgZ^68T%1JWIx@#G23RXT_q?bqW#m|sN+~CD0B9gKMdHJpdSw%LQ3}l`}CJk zD&QXoMhAQ)cS{J^srU;DFjWZ0#$Pc;Gm#K<0Vr7=t^C(4ZksmKWCZ2d%SM}X27xu% z3eeg}F7Ay12!AEoLa3G!aYV2@1NZ{q7&;&&?};nHKa&`UtLKpm)|{)mEB;nz8&&`w zJrIJfnv-Mytht-8|162b%bi2SSgRX=a=`8Y{1Ecr74 z{a68e0nC$N$e#e{=T49q;;ar0U^>8N9wDMd2^_-}Pzb&OR_bs9FhMf}TkorN@Z~h@ zfWR`c4r>z9B?-g?422-VQWBm35QxWEga=sdrTaQ0{{)yPfUWn^t%T%G0P z2vW_L7z#j-ZmD_~UI6AKq4W}SwETVt=rI@~X!;`|APM?7hN(ym&;*d@YccdBKs~lD zHuCrB1t4PTI|~vZeT$43KD|)4YXqj;Z1UQZ{B)rYam4TYn@VCi6MTIjHA0fw*fNty zWI#Q~4+XR`cB?0QBP7?y(+VUa7sC>8E58CT)zm)akOCua<8CY`D!D7*%&G?+5W^UF t5(RMSqY;4-w{7&E&@FuZkpJ1h{sSo~A`7(uBX9r!002ovPDHLkV1hRPT0{T< diff --git a/graphics/pokemon/chien_pao/front.png b/graphics/pokemon/chien_pao/front.png index b871128b41b272b40364c0c55eb249c00fbc6ac3..b942da0ac1c4cad6dbdcc32ab44a0b02e2659330 100644 GIT binary patch delta 920 zcmV;J184kz2(AZ^B!4PUOjJdh)Tdl=okwSM<@EZc+wb@H_rNC8-m z*8t?!skUH@4}St4PK+SiE6a@ab-e3+{Ut5hrGP5oS_>e^wtMxCA7u0(G9-h@26HLMR{Dak2m)e?{U@>iJ0n&g1)bcnF>qg3XnUXRFZA1c(NK*T%4>1 zFamdg29%Pu7OMd7?K8~+3l6rq5y0yy2DSmopZU|YyUSQt*l ziUI zUVnN4_~gTD2?bzLKMDW`Js7V7QA9tpN5aeBLNjmyxfDzfE%*j&^ZA(x{zq zZ2nz9?dk)8BuoHX15o!D`x(ob6%gs>UuyaErhs7*;&emt<&8q$K{TfOxCVH8`d5HT u8gs?`?$zZylL0;tToe9oqF?)0_6I#}CJ_o>)>Ul)0000{KRB(WR zdU|@O(D?ZH_;9f3jhLwNPuODs000nlQchF<|NsC0|NsC0|NsC0|NsBZA+nSJ00VDH zL_t(oh3%Hxa-=W}L6*q+zxcl?gu@!yYS zp&vaxKNljhNeJ=#1U#*XC5Dhv&P2EX0Dl`m`n<{k$RS3Xm7f5hSd!`SKN_L@AOa=0 zei+bkHy|Qk5tgj)Rs)r$zG0ktBuD6TQ^=YDLS0uQK)h|+G_k0@Jr!oYge-3%)NSpg za;Q`06E6}TD}TdjQv|Km2zA{y0Gg^Z&xc(b9ti}()?U;%CB)wQMxmvv{MAys04_na zCTIZ8FtJlN2VTL(82bT`d;)Nv4ldHF*SO_W%JE3idAvOMlIE{wuP?pnMUXFMswFgg zQK^-n4-}_`#lftZ*5Q{4N;NI0KXgoZt-Yv_>M8I((|<+oT{C_HX4RCC;e<#3`x7xB z1^e{sHLx!{^?c}|XBCT4)BsTyek$1fkiUKmBAe|0?SQ|))ZvYq_HMopSoj7L% zURSlC*?*KKRxl*^O7LQY`(Ws@X1T7NO&@#*Ak&ZZBXghV0a(dfbu8%Pr8Kq}CWMpU z^j5f|hhaep7K2^qt7YqA^sRkn-@ml_dY7!P$N-Slu7FGCPr~3#eIR5D3&Blruimv< z2k+9?ognW9q81z-HImT#wBTN1o&;gf15zNSpMMdk{%nYH#DF^J?Guojw|Nu$2u@G~ za%rfUgh1U2!tIE`is$*_x$ty{pk0m?LBzdyI=l`$za0d+jC3tsGRoQ(vx-#EiO3$2 z*MW9=JV@U4@E>PBYc0Ljt}b*%(f)Wcn%*)>Y|F&riR|U Y0PM;rD*B~S>Hq)$07*qoM6N<$f^Wp;s{jB1 diff --git a/graphics/pokemon/chien_pao/icon.png b/graphics/pokemon/chien_pao/icon.png index eaad400548515f66f40c5f88b2440400036f8e76..d2626c65549a29483917cb01ece1fa7aec5b40cd 100644 GIT binary patch delta 756 zcmV4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zEq zBSx_r7S^;awRc5sJ@oM)=|cb^eS*8;kR(eT5dl3;NUz-Eq~(6y!qmq~r(Ne6;Nz~; zi{5$YGK+l`2haMu;f>p$0SD*r_<&KbrQTBXe*r`R2>L&D#s-kE%z)ScGA46#R)APs z3m+;#Djy0!PJGA!Iq_iu$cYaNK+b$f06Fnt0Z8y+YyS+8;KSDb3qX$Tp8#@~Vr%~d mkaz9B0AwE(Acu&L2FMS&WEQWFrWoe{00000;ji delta 379 zcmV->0fhd>2G0YKBMSflb5ch_0Itp)>65VmKYvY0L_t(YiS3lZvcn(wC%d{o|DNWUbupe=eqvVaQ~t+yU#)EU+5}Q%4;?zY>scb;>CT|m3e&ki2_|j zNQQ+wkMH;~kAR4eGDa?#4+d9UZ; zpnu9(#gGjv!K(L8xEY}X65^3vWZ4EI!!lwN*|4ypW!ZaI)K)|94~jkn5XvXG8=53p z_7M@#qeFVu9-XH1bqiDPnNGXTBf$GvsVBX1*JW(>l^lH5-wiKZJ_a0||Hm(kd~W#| z0}zQIi7)`fbaghugyl?-jWB(3zP*_+*JJ{aOqdLiM3@smX2P5RvJmD3kcBX3fJ}sG zd`JM92m?TXQX3y$gb9E|kC_h$fJ+dj*S_;1wCWAeE#Sn507!JxQcrw9K8dv}T002ovPDHLkV1i?rw3Pq= diff --git a/graphics/pokemon/chien_pao/normal.pal b/graphics/pokemon/chien_pao/normal.pal index e5dca7fc5..ae9d76607 100644 --- a/graphics/pokemon/chien_pao/normal.pal +++ b/graphics/pokemon/chien_pao/normal.pal @@ -1,19 +1,17 @@ JASC-PAL 0100 -16 -156 210 164 -114 89 64 -40 56 56 -248 248 248 -185 198 216 -227 227 227 -168 168 168 -0 0 0 -80 96 96 -84 84 84 -112 128 128 -122 122 122 -168 208 248 -248 248 248 -112 176 232 -141 152 168 +14 +154 212 167 +92 113 157 +71 103 116 +229 244 250 +165 219 239 +247 247 247 +197 185 192 +133 141 151 +8 8 8 +127 180 198 +73 143 240 +69 82 97 +27 36 46 +76 186 190 diff --git a/graphics/pokemon/chien_pao/shiny.pal b/graphics/pokemon/chien_pao/shiny.pal index a0e08cb82..c0279e59f 100644 --- a/graphics/pokemon/chien_pao/shiny.pal +++ b/graphics/pokemon/chien_pao/shiny.pal @@ -1,19 +1,17 @@ JASC-PAL 0100 -16 -156 210 164 -114 89 64 -40 56 56 -187 155 118 -135 102 64 -227 227 227 -168 168 168 -0 0 0 -80 96 96 -84 84 84 -112 128 128 -122 122 122 -168 208 248 -248 248 248 -112 176 232 -103 69 29 +14 +154 212 167 +116 129 139 +33 27 22 +229 244 250 +235 240 244 +129 115 100 +92 77 71 +60 48 48 +8 8 8 +178 184 190 +73 143 240 +69 82 97 +27 36 46 +76 186 190 diff --git a/graphics/pokemon/clodsire/icon.png b/graphics/pokemon/clodsire/icon.png index bcc0e34e5047df603c7fc74c7cd3ae5ce1c71c5e..277d20250b5899259261a39471790fc33bad6730 100644 GIT binary patch delta 728 zcmV;}0w?|H0`CQoBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<008PqL_t(YiS3om4#F@DgGm-~AX5DPZ%a}-Mzgfy28Vspc9@-ZKeBhb zUHmBsR)3-~v(*lOn8_UGYMnOg4%#-ifGw@l^=9DB*ocyWsL4S%oWTJa;4s+25c8A_ z7!4vaZXteE{e)dVJ%u`^u8R7!s7iiJGi_L?=0|!{@J-vj`|55hz6cOYOT1*2Jic4{ z+~R{?Tzn69W^#-Fv>$rBr~U95|GFRE@vr+~h*56Q4=MfUegNh8r+zq8)ct^0Zez~l zU-Sd)-gxwUpZft#4#H6N1G?^xNk5?9g>NwFhoeBI{jmHM{FEoz#}L}i^@vFT0000< KMNUMnLSTX&_F>=v delta 335 zcmV-V0kHn>1?d8iBYyw^b5ch_0Itp)=>Px#Fi=cXMPi(TdwYAmy|n-T|8sNAq^$O| zgIeyzi^Z%d_Vy|EVp5cQ&Bdh6y(yexVp>5#LFq)aUjP6A=Sf6CR7i>KRm&2CKnN2& zz<414|F?zhT3uwF-r9qi(Sr%Fk4apX2Y(6#?nq;1s}%q-lYcpwt3IvP6|}A{0bA z7_3|5LvsH$A4ovi{wW_07Ii-0?c1nx`xp5D+urE@zUBkA?U0oDa8gY20euxdV3H3< hfK2n@_E+#zya0wv5lEqw@>u`?002ovPDHLkV1gDvqxk>; diff --git a/graphics/pokemon/crocalor/icon.png b/graphics/pokemon/crocalor/icon.png index dea043b25f3acc8044d066161aa76251631118a8..615e2e6de037dbf10393174a1bd345bbf780df54 100644 GIT binary patch delta 708 zcmV;#0z3Wp0+j}kBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zEKlu?VsFbIU3n&?Bo`Tzg+G+naPm|Zvy?xj+?urrLtw%>6)^@{?& z=&gNl0BA&Q8v+(~19NVHh%mQi29d;pCSn&ilO>x3{G!_B#^d ztT<8Gt6vU;9B4tUpvq(p6QOsVn5=M`NS=QKy&o3TFAH&3Z>4b?Fs*v^t~4C+EY`kz zRpshUG@ccz)l_wj#+d6KRQ-8)dJ^D^(NaXq(354Nl!6hH>*IwPH=x+k5<{>)^}qGt zVa3B@2zWTc+9DqO3%Iqq_<)lpAE3by`JmtUu65VmK7Ro9NklKEol;iXEN3=0PC&KpT1obtWTBgr0R`vchg6xexSw zSbxww5aOxcO7k{gTKAe$DTsU)Yd^iZa`z^h&kEIUs=7uo=DG(}|2^EjF!04_Yoaam zVwq^IA#7?r{xI4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPeyNklgd6QV6Sj;$YvmsVvIQ%ZO_ z2k7O31h~)VKrdnq06F0eD%*KtYO@2vrYQgwRS|0=eMWdNzonTF5v#FQjx7MPG$$CW zvL9rrMyMjbC*>MyuT`xsnB0~3AT#^*IlD)TS|b>celVyRaX$&chg)j(TW$S~c7TKc x3ClYK2*-Gc0TNrhB|vQNmjTlEo_t+Cd;pe>4sHNkqLlyu002ovPDHLkV1m-t6Da@y delta 307 zcmdnS+QvLVdGcmP+j@bLAiv=MXyB~krYQ^z3|~E6978-h--cY|JLJG2t#0G>|9`%& z&)H`WOzb3lpCm?J>&s4jz3ESkViw!(j*8MhhcVF;Y%e1UzrPIr0X(~LqoR+B{_c5O7sPBJ~%-U?w{-C)fpgMtN-Ngo;7pHE# zo%&tsbcdK&&lTfi%Yrv#wkTZ@(A8j*;7<>1)$Ub0xN+aM?MjIuy|G%G1Ns-goZ*xe zv+;?+?4|MYi|1Sk%RH0fwxH$a^8GSr|Gw`1rG93++8Hy2RV_FF{4G7yQ+en|-P-mR z&F!1KXCy7suv`*-sD!b|e@0qJ4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o SAwQ9P{s{m{MNUMnLSTZSDZ@kn delta 77 zcmey)I+uBZ^5o5owvqxRL4Lsu|53q#fNtl_Zy6aGmHAR5JkxxA8MGJ}7&w3!1TFHi diff --git a/graphics/pokemon/decidueye/hisuian/icon.png b/graphics/pokemon/decidueye/hisuian/icon.png index 997071396f393ebfb463eeb9ac891cc1a02c3915..bd490472d20d318db180056634a3b9811ff2ac25 100644 GIT binary patch delta 290 zcmV+-0p0$Z1MC8j7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S>PbXFR7i>Kl)Vna zFbITWK(KM||F%7nPARsBE~!)!dATqAIOvY!7Xup^x+EwERs01ZE+ClyXay-I7a5E6Q|5M~J_CN!Xldz9ISexys o&kY1+3u^;8{b6MwkM)NaSl$$-uR^CG00000NkvXXu0mh|f+UN5#Q*>R delta 336 zcmV-W0k8h-0-6Jm7zqRe0001qplF?uEa7bBm000ie000ie0hKEb8vpzl09$2Fc60Q4^EMoiInb0l!2{Lr80NHVk;BPMh6;hbAD_1@@7JU@aS3@>N_uV zXr>vd6uk;WDUR&++8E*eM98l^SS;X> zxl&3z49xl4xXR-~nIv>v)sr42!GNKAc+BcL4NFC9vU*5@z$M+)G-{hPZA!ENCoatJ z);Q;eaM9QONzo_nW8_f`*i539Zc{ul?QqMI-USBk0V8Y#jIc2<&;vt_9vJ!y{}vd} i2M5OU!GZZ@KE42~ShytVe~gC!00004Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPf8NklJxIEwHC3RWD}S> zk!oj7c412I_OcI_;55KPTsNTX0iWQ+=%Z*y-2r`$(5|J{dL)$JfJk&97$em6@V-oc zRdx^?GWjWi{BOAHa^3d-z5UHPQ~R6w$nDRmEk-^NeVGqohmU*+^W#!J9Q9p31o^Sc ehgkpDe0TtGc7?ygvIEHw1zMW#o$D+u?yq!TQBJuzK z?c$qN8CSjDz|zaE&NSuu&MsHEKbzRg{++nTkkiXv&+uT8H)F5H%B@mD%pRYniU{fR zJCrI|Z`CmDS`xF9t0JS|!1=?E)OJgHF(zD74tHw!y6&z`(mvitpX1^S6nq;rYdB;l zzW+JliSqL^oDT9r0e9ys{b1Az%&rKZvOa8QO~9)5xASA>?fupMu4c#Qhv(Ym6--1| U?_Y6wCeXzUp00i_>zopr04r%}*Z=?k diff --git a/graphics/pokemon/dolliv/back.png b/graphics/pokemon/dolliv/back.png index 9a179e325e73022094505b80470e2f00526151a3..4b46b21557fc68686aa1f27c8a699dba2be55f5d 100644 GIT binary patch delta 669 zcmV;O0%HBy1hoZ_B!4YXOjJdh)TbLs6DF)G96T5e4jMrq`g z^a^OYlt0(MMo91={WKx#8@cw+)?+)#m4F3s)@$cTI0h9t0iQh~0G#xy-e!PKFVhDJ z@3%p}jf8#zq<lHL{>8c`>q+_(T~~@LjYL_ zoDs%F909D?Bb;#Pn;rxl^kRSk+!*Pjz9XofDxfDUE@oquRk7Zs&=YWdv9T~z@4Ryd zAXGZOkyi#{3XuV>1qcE^s!JSt*XTn?e7|kESpmK?pnoQegcRd>2^)ZgAO@7cr|_f? z2}~9;AOc{FXMoWHW`M>3uvm~&Q1xd*Gy_8UeCHrahPDCb5jjPC1Bem%q<#jZv;w5` zQT*0Iv_8;Z0~T{I&tPT2Y+zx*Zh+sji3Q$6TQUIX@<{zYI#V*xM8bq559=Y9A7m?& zuso~T2Y(hhImeHjZ4pt+iYBG)s_G4!_00000NkvXXu0mjf DblEXu delta 576 zcmV-G0>AyW1=$3UB!3}LOjJdg(xea&5G_&+C>b_p(N<#&jz z07%&z09!Y5l?u442){QOGyng}!k0ZdTCvYR)!Jr8YPsLLv)L@J-rl1G{ALq2z!u29ZJR9Bw1A`4; zB8|as1T=`oIX{SQ@D}nQ>aPJ@6wq~$!Uf}RISCBij6Q@UPz;furEq1zfpryRst^ne znfGf7WZXkRVB}uwWxp;#2p1Sr2>Nlrj?e3Zb4?F8uzyla@F=Jg2nun~%>)-goXoBY z>EslT0$cYW#q&Jfs;(Jez%L72@jhC^nqU|Ug1KRV{|ADp;co;J!x}#^tO`bk2bYgp zx&by0YnlPJ&YRs_pzW5othec$c;28Z9AvLs70~u%lY(hd&~f2)K`Fy{fZLA8jSZM- z+GN9N-#N%ueJ=lT@id{p7mx)?4i4|@Vx+0pz8CS>>rbC&l0_Wy&`Q2na)zG`h`& z`~TWfVNL)4|G&ep8_$X_0000FbW%=J|NsC0|NsC0|NsC0|NsB_-ghhj00Hw!L_t(o zh3%HzlEWYfg+oXqsGIkH+~r42_hy6kwr8f(j?MW*P|UV{^?%i~;8XvOANrR7hp7Ra z0HV16WfFw?6#xSi@}CZPorn4oI!6F^WRU=rAkLH!k^}6I^L!$V02Gi!C?EB=@khdO z4#Me#WCU!3M*z?e;)g-#egT~HKY`9B&3)qLA7LHG6QC0;_v+^aFxDk0cm!;u2vomM z&-*S2x2qljihn>&Tq}ZA5&Fs^ei63hL960TnDpn|2=d$PF@Fa@E~T>)5Jm0H4^UKt zFmbZggP2SCLzn^JZC3)$0z|dEDI4MgK*@O`gDxtS@;hM4t$<2DWL~OEfQ_<8Ae>qj z{2TS?g|iZX6KY+|fD>{{V6KxDaM^AW={NI25`8;+TYto*94JEVjH@>+@$&30KSV3* zZ+@0*4S;!d4Fb>{@G1gWIx6cDfUQ3P;0#CRrJjRv!=-RKwEW;z;7+nGABq7j{cIbd zl>w(>@W^Q!03~4S?4bbI{rm>-of*ECSZ5-;nw?-P54S~s5V@TN1@QbnK-NuU6z2J@ zq%A;}f?#&H0?#45gD}bqjsQ6AcyUKW7~~IM@{R&ESAAc;u8xSDOaq9;0965!)T=Wh zb@0cDcF1+B8FuPp*F+u7bOU^B{(iI1dQ1B%re6oD8+?ttUC96d002ovPDHLkV1jo? BBNhMv delta 576 zcmV-G0>Ax$1=$3UB!3}LOjJdg(xea&5HD;lc3vTb!8YF3ZMLORWSKzC!F>Pvx$^Sz zB4gnj0000BbW%=J|NsC0|NsC0|NsAIP40gH00G=dL_t(oh3%HzuG}yPgah^(-1mRr z4nNLzrAjeAQq_y)Cc9DQ3kE#Sb$#O-|8o%EKbdOMW^qwZ0)KNa0a|+@Mx*Wo;obpg zLEX{6G5`QUy6Icq-9d~67$ErTyU=}aJQD5%kOJP$pZeCuQ#soBNZ~_|6^uuK5i*!X zY!y821VDdo2vN#=1_&byFka6YID+VwJAyK)=Mt<)eO^S8(5iZsBv8brd;xgQcM99u zThBD-A{+pSbbor#34m^S5~=`<(|iY${0uO))PMwNi&ZE!ovKwm{DXdZ7jS6@dP`wt zaFoDD5svh4f^yZ9R}i!Hkg=Wl`RTvteKW9ht`9*H%v8;h$}^CGwa1>SzSvjHW{74> zeyIUOT>IAfnkpKXhLXQq^ z^^tv&6+^5FW0L^*6zqMj`P^wF05`MUr0bB~8w4Cnsw{A01CR~2>MRYCePB3X5TjBCON@;1V;)0G1>=*lN&SYP?r4(K4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zEKl)-L9AqYin9w9*q_y7O4puRR~g;`8yR>PJn;zdqtpZF618mfHn zVvG=;^U`}aW`GSR4MfC@*fnLh6Jyts%-zDy1kJU<47 zz~qp30gW*<6n1_o^m2tigcG|UaKWW!nV)|cItEm8zugPfQ-8njP)h5sE?CkQV~S){ zR6q>Njpk(BF${B?DEFa(!pFh}Qg5SZa{e`3S}2yP&VS65VmK7Rn!NklC z|Nk~awpc0gQEZc9X?f-tJgq(P6#yDm`Q9xR1&;I9drwtB6C(y@mMKamkKTU?1RF?2 zR<9AkxAk6xtwult^F~O;UTK30%)3hgX@figarY=9$D1M!5?n+la=}30h|HOu@Nh@O zTx@S@5iy$Y+9PCI|C~Z?I$~W>QWh0Z$D+_WId>f+DU-}~XpquzA%g_RSPc33YdB&- zoYXr1#5S<8f4Tdn{bOT)me|<8J@&u$xM%;r@&D5P_1XT?{%`!v5}usr|KR`t002ov JPDHLkV1nXbcR~OF diff --git a/graphics/pokemon/dolliv/normal.pal b/graphics/pokemon/dolliv/normal.pal index f2e41f0ac..1b6033b74 100644 --- a/graphics/pokemon/dolliv/normal.pal +++ b/graphics/pokemon/dolliv/normal.pal @@ -1,14 +1,18 @@ JASC-PAL 0100 -11 -153 210 164 -16 16 16 -47 108 46 -118 94 33 -132 193 54 -222 214 109 -182 165 81 -100 153 64 -205 193 124 -255 250 185 -242 242 242 +15 +154 212 167 +52 99 44 +154 225 71 +28 60 24 +83 112 41 +192 210 61 +144 151 63 +101 202 55 +8 8 8 +67 148 52 +186 205 133 +251 255 218 +82 97 77 +255 255 255 +191 195 175 diff --git a/graphics/pokemon/dolliv/shiny.pal b/graphics/pokemon/dolliv/shiny.pal index d46280571..c533b5220 100644 --- a/graphics/pokemon/dolliv/shiny.pal +++ b/graphics/pokemon/dolliv/shiny.pal @@ -1,14 +1,18 @@ JASC-PAL 0100 -11 -153 210 164 -16 16 16 -45 82 12 -40 25 54 -102 209 86 -89 77 95 -57 45 65 -91 160 71 -198 201 130 -251 255 178 -242 242 242 +15 +154 212 167 +27 73 19 +38 172 42 +28 60 24 +13 14 26 +65 53 83 +39 31 50 +40 142 53 +8 8 8 +36 97 36 +186 205 133 +251 255 218 +82 97 77 +255 255 255 +191 195 175 diff --git a/graphics/pokemon/dondozo/icon.png b/graphics/pokemon/dondozo/icon.png index 066128e0d48c4a72dd67f75b1816fda39facdd2c..a704280ec0414272fd8ff2a1bce351ecbfbfd786 100644 GIT binary patch delta 818 zcmV-21I_%@1A+&TBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWreMv+?R7i>4mCS!@m@AcE zH*UPKI5P~~9vw(v2FGFen9xnF=txPvmNvYuYJP@?+wny^hQ?P?J@a$Je8k@R9EurK zk0oM7)I_@Q;phqn6$eQ?6_%+>Cz^&_64rl+hcXS3OoXQ1@ZrKtctc4wbQspYnp;L^ zcv^DMxl0?<3O4C!Am~==G@kYz*&-A#GeM!3!zoi@7Uu}H{4J#w;UEac5mEDf07S>_WBmT0ZpeNctVGKs{jB107*qoM6N<$g3}Fy^8f$< delta 386 zcmV-|0e$|02h;YuIV%`H-^vT{6aGGAuG@%@7@9AM75#x} zg!d$-GFBLK=x|~f$~xRZaZpv)uZDHsKBkU{G_QQkPz-UZ6g@1*>ibrg)pwf8X5ZjF zJacmuZiBCTmsu*n>36b^5@*Aq`me^f2=SEM5~A>7Pl%Zh)Cp1f5ZAvCSojcs@bdfG znGb;f<3s#doe%Q_8$K)m>3o<0l6(k23_hf>0%YMs1IWsU29U;w29T8xD?qL`g%4YR g%zW4Z4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zE<2hfbQ*&h)fkV)0jkp&OuT<>O@!hCdIOB)tcy57`&3uW-PJMCSoZ@C zIqUHaqVt$cMuWp&8jP{#^CZD#8e$N||3g7AKRh!#;5R7fneq zzcc22UgGdp|HJjm0%?9&2qZHJ1=8Z55rzV3@ee;>f%Lr|ek_m{|MUYCNQ-~?0SZ>6 z$3Ogl1Tx|uegFcw;vaqh0=eQJen0{l@lQVhfn4!VKLA1W_=g`*fJgk@4@e+a{Ga?V k;{V`>ZNz^a@Gr&x0~#_GgSL_vYXATM07*qoM6N<$f-`Yml>h($ delta 339 zcmV-Z0j&PS2B!m%BMSflb5ch_0Itp)>65VmKYt}jL_t(YiS3lpj)Oo5MH^uf63ONN z|8{|~?J9J9?It^qas&oEJ|5qD>@Kcr!c^CUL9qf1V~iDH>;SibSv>tI^%H%MIDprE5YuYZpJurJxK_cAqK(z4Fw_c zVa?)zcfj46vWM7_A2jt7@GU4rMY{S=#yroB4tMb{JAYd4Y2ZTc!@z~yhu-XF;bVtk zx4Tn-Px#Fi=cXMPi(TdwYAmy|n-T|8sNAq^$O|gIeyzi^Z%d_Vy|EVp5cQ&Bdh6y(yex zVp>5#LFq)aUjP6A=t)FDR7i>Klu--AFbISPf*ETmkiOhkHA?RB z_`3j3bUOq5gm?p3m4YiM+bR(>r1&sVhfudrJpf2Uz%r)Z0FVi&MYGZn*r+;FsG2qa ze-}g(3XP~&5#eEz8<-;j-2us_Ak3{Uvxqu&eGKqKXASm-fPM=dbs z{Rl9Dqt-tHs>1Xoe<4B#SHYEi%z$08$K0fL%g%eq99O?-PN5YJv%KR%aW((wsNx^( z`>+0Ctv~Gk;T=%@qxFaC9}9nY`G>CkVfx26e@Oqh{o!Zv1SanmNGLq2y#N3J07*qo IM6N<$f{Wmy2><{9 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/eevee/partner/iconf.png b/graphics/pokemon/eevee/partner/iconf.png new file mode 100644 index 0000000000000000000000000000000000000000..c82f753f324c79487d45c99b812a0c9e06c7cbca GIT binary patch literal 362 zcmV-w0hRuVP)Px#Fi=cXMPi(TdwYAmy|n-T|8sNAq^$O|gIeyzi^Z%d_Vy|EVp5cQ&Bdh6y(yex zVp>5#LFq)aUjP6A=t)FDR7i>Klu--AFbISPfHs?)(HzeHtNU&+ISxU zHgHS^Cm^23_Njj&LI+R5lO1+Im-N^#snxOjJ7lb@zBIQ`3ezs{x=>v$KPoEaNBRHH z`5|RK?D^qkJf!?!Jm`_g`LW1{SAOU^A4YzB%ZHvHcRu{Ao)#Y#Lf=?bKL7v#07*qo IM6N<$g3b%7 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/electrode/hisuian/icon.png b/graphics/pokemon/electrode/hisuian/icon.png index d624e246cb59c8bf27196d0faea8f8c2175428b5..76efc29827d66207d9b1e4b98d8cac14a4a32194 100644 GIT binary patch delta 194 zcmV;z06qVe0*wNY7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{Si%CR5R7i>KlR*xI zFbo4LIAkNG&i{YAPB^aH^9t1hE;BKusAHV`X_DFEV3rE8M_&u2#tZY7LV7$#J(Q7X z$Oc`Jfu09i`ZY4L7XU|<2*DE^uMQ74AsF9{;HR>|rdou3Y71DPIRyY#nNtcQ@9Rcm w&AHXUg`Qvk4Pb*IA7zVA-j#E@&*^?az8i-T=~ue`)Bpeg07*qoM6N<$f;KTvIsgCw delta 202 zcmV;*05$)O0+j-g7zqRe0001qplF?uEa7bBm000ie000ie0hKEb8vpGb7-t9qKUXjW*RWKr4(&Ga zakbrSdGuvxy#n(qlGl!O`n|AzALi}zxS2nhuJ0eI1y?PZ!_hUxP5=M^07*qoM6N<$ Ef;s6@)&Kwi diff --git a/graphics/pokemon/enamorus/icon.png b/graphics/pokemon/enamorus/icon.png index c127c07345928e0594282d69f6d67b78f0610585..3c808f30b13b394deab467a11624c20e01d94b64 100644 GIT binary patch delta 412 zcmV;N0b~B)1LXsd7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&^R0b@x-K~zYI-IP&p z!ypWVgZ+RN3E%(!w>#5iC15&Dnl!B_4^8iEjB&o>`0)bx;FUoj`oaJacagmV>c`

=IB^jS_Zxlcr(W>dpCt1xMBkcr~-?Jq1ef$pNd)nptl`=&fN&a7Kb^ z>J{F1yBic5`bph?(A<{{3YKu{scLY5j=4%uicJ(=3d0w@I1k8Ec;9}J8P;6P8SR-Y ztcwl?7q2u;Clua5o!?EB9iz@O7sw|8a}Gm7$lSs>7XoylTu^ zv&tIv@s6Q{&qa&NCF58PUFpg0LveRdmT9Os>eBze;$`l8R5&6mR{UOPE{0j~&~_gl z@W_Buo-M5@u~u zP8f`zcS4u}AQNHu#3%N=(hXtc8^WXjxd<}>WFgGI1IP!WoE}P!K<+XC0000$+b!?6gpJ9CUpqkg~z{cx zf-Xx7>=~+)ei!=0Mz@vN5hO_jbz`PW$<2Eh?6!xp%tX+J5Ao%gQBh%B!#H+(PQ@8U z>xO}MzIzh|$i%K+rIlP?yF5CZvJ1qzCM%yRU!1_4OVy;bKjt+WixA#YKclbZ0qk}P z$Z*sBW3;bYGLNVr1ZZ+k2_e%25FUTt9GZ{oS_VTz9K4K(kvV~UX@mg*JQM&IjR9By zHmI3$W;0m*NmL_l{Lk|Xq<$z!ePtL5vPd(1TEm91y&f9jP?>)r)W4ebDD9p z8kA^6LxX4%a1n`r>N$$gpb*<|6%B^vtf3J&1SgyycM(gF&`U5j2^8Ra5-8Ey)=1!o zJy1l#YKLi35UC={$^&DLMy^2q)6C4h_t3ghsF*bpXoAg$9V>-)$0QSq?_NPy5eg9>r zf~^U+iyQj&>&m~c6XqE)s|>=mSx)&GF)Kz!%qJ6OjF_{8nIqK|Z zwcCNELp?3WICd?t98QpfM>C1YHO8<>7di9+8^ms-x{W|M2u6$Kgd$s*4EHX_gwmpPAc z5(&;3JIplTxM!FPj-iS*0CkL*--dt7iZq3(I#KGvj&VgG)c~SW$2E&pJF2cthY7r{ zZUZxk*UfAgY4>eXdspOIH~^gW{=xat;^Y_v)U$4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<00B=)L_t(YiS1NDj>I4gqaX+pqvZd;T_D3IZ{0_=_T?l$D}{4^+0u#o#bL_@zyZz|6CV#HI=o zq;O#Zc$h^ZP_-U8S)CdWjdV?1RUjS&FnDfLNQi1OMne;#k)c&8s231&!zgW*s8z7C zFYr>fN)O#0p zZr|367AF1lg+b=+)3Q09zpRt;UjO1Z_{(%~^Wl~b>aR5)u5=Kq8)X<<;*k!!faU}7 z-Q7JM!j%v0=59-eIUfdh?;X`sJs%n^?zVWSXFlY%xZC2Pp7{X#FYdN@==tEe+kAKA z12@W^yFPx#Fi=cXMPi(TdwYAmy|n-T|9hNDoXtwK zgIeyzi^Z%d_Vy{&VnLL9&Bdh6_LM1NVp>5#LGybyN&o->P)S5VR7i>Kl);k3AP7Vq zJXmT0|Npn!pvfeWWN%Y*m_DV776|f8>8GOw_dfgqs4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?iHTS-u^w)>hA}4-EyfQ6>f3> z001zNe>8ttsgPs<00AONL_t(YiS3lpYQ;bZM6>H^AcgV&|F)x>dugfOr$Sq(@QDofy^K@rlH_4U_W`m4s0|PS5@`cu z^4~z0K)L`CnN#kdt3xp4DbfcBc8xYb#|XfiU~I7GR@2n%&}RL zY1C2d_aPwqw#>@?Cq6#={$u~58RqL=TeVkl1-vNse9}@BB4Ao^KB7sXoH3;-B2~bl z=ZH%v=gh3!Ywf8pQifh_9Ew2UuB!5Ct+2}_UWPgHba5>Ec;A_we}~b|5K>HCV!97T2Q|J mdi2)0z@XzxjqptK^<~fkvN?bl1TF4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWrS4l)cR7i>4l;MiRAPj^XTNM;C@Bg+psoiDmChoz(aa^FkGD(bfzHR&606qy0 ztVK8uX!aFnAyhT{0%U70DM`-iDZoOeDG+ssP>^#V#dps=F$x z4|W>k!OM|qcUg<2(z z1d5hf0Up1K+I3q4EmI4w(6#rbCg3Wlb3IybjS7C_#ma4fm9wl_56f3J(0d0P%r;HM zp1i!B5YJ9(Y4@+;YSziR`@b$kg&FM8kBzeseADHx&nB`I;2RG6%kd*T4EM))INfi* z#sl5|0T1Tx7!Sk!7al_QUwDY!f8il^{{s)9`!77i?tkJTbpOD^aK9e|5AmZt@UXce z-0?6;%>6SSW`3ORzvJPx#p&549?Y{VJY4Qy;Nf-D0uTR~4_^a%8jZ$k*Ixht002ov JPDHLkV1ia|aA5!d delta 313 zcmcb^*3CRYdGcmPn|cO;k|4j}|7hT>;-)DK3=F?KT^vI^I^Rw?z3Q+5kBhSPwu4PG z|Np;j?X^I4?WD5Omr6}*N=&Mbo&L1nt&S-y&N(K0(bFSh9t^tdH=OQxZM-%?Fl50U zCZ0?o#^P!F3xXr5?%)9a!z8GVM&u(Nn*pTWd5F@4URaVru}`*FPnh29*)# z`DRBeY`uJ1@ACAHSf)RZ_4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPe}Nkl;Sjk0Z3}Jn|FnbYraMVoF~~&ornOV2Xu12ouYjkh z5ISHs#t@e{bl!#_N)WPdg{xZZ2#v-qRA4!-DH=i*)`8aw&?~}xjCY6V(<-ysp&pA& zX}@{+3lFMdX8a{AO^S)Aa>0nvXp8fHE=gW{$j9b_`~}1Q$Lirzr#|Xu{Hy-LpNnqz zSNX8;ukzuJKZSeYU*yAuf0+*x|1uvY{#8C)_?P)G@vrh>;$P>(8~;r{w7=m00DT=0 UuR3&k&Hw-a07*qoM6N<$g6{}0mjD0& delta 272 zcmX@h`j}~g^5o5ow)FxfL4Lvi(ZE^7O;Z>c7%q9bIEHw1zMXQA>xcn|3%Bjdj(`8} zznf8(=&Wx0c4df@zTH`kmpQkk|MzLl+jX*9k2rnY4rh}r7!g_pszSaI`j{(4@=sUC*z8>KEP83*5SoGPiae2QK8 zqU{!5*8Yl%T=PGkDHm5XmYwG=w=g8g!N1{&hEzx3JQ>%g=X0A*uVKCLp4Iuz+1)#< zgYs=Of`rBQhbl@y Q?=g6~`mwsKb4q9e0P{V2xc~qF diff --git a/graphics/pokemon/finizen/icon.png b/graphics/pokemon/finizen/icon.png index b82b4c673ff4a51c004c3d9623d40574bb3792de..b689ed7879d11ec6a8606d5b5dae5d5a01f1e120 100644 GIT binary patch delta 651 zcmV;60(AY+0^S9XBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPfFNkl#QElDvs_ah_nMxqQL#N?oF8Zb=kD-Q4;G2~4|(S_6i+07$BAcYJ8 zrMd9I1b_%Sp2f<#Fi|CvV9WV<5i<>N$7tdu&qLFWatFHR2 zzUzl%zxP81bbiQ2=>3ofG(RMY>isZ(|G^I-ke<=wz_TA9qa~U^iXTidbh!)U{QQY1 lLm*8LGw^t$bGV;!#0|m75M@cz&X@oI002ovPDHLkV1kDqD`5Zt delta 253 zcmcb|dXZ^@^5o5ow)FxfL4Lvi(ZE^7O;Z>c7!G*4IEHw1zMbO8*KEMUviQx>wKDJj z*GH=}MLiOTTG<|!)c@v$o12eUc%A7J&wd+qjsmkTNv*YuvQ#{pS5>&Ot1$dKvt{X& z!u>2$H|%JN=Fc#E+4-D7eMx`{lS3Z2%O459qAv^ut6QS-jwi_+*xkSW$P2ez=1rza zHAhrSPkbp3$+#B3^Hboy=k3j&v*p{WD!v|m@%{eKgKdBB@wYQY{t<{<^tt(K)r-FZ wUj+VKkbfj=|Ke49v+}w+i;K>`ylrh5dd>-`1ROiZ1N01or>mdKI;Vst01z~MV*mgE diff --git a/graphics/pokemon/flamigo/icon.png b/graphics/pokemon/flamigo/icon.png index 0f0381579cbb2ca40770bb79b7dc4ba3f6a56506..f1970373f4ecc647bced11edfac3be01b69dfcb3 100644 GIT binary patch delta 666 zcmV;L0%iT91IPuCBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAsT;__Db$^oc5IVy`)<9<|+2}tku5#L1{UCTL1t6!%0LzR7i>4lrati zF$e^0Q-EBs|Nm_;O1iLIlPEdb9f6Il8RPE?Q8YF)sR@XP$u0@ZIYlO4K0CzCQqi%o#g}O!nS@Ln|4*R`X2EVZfahvDhW09x(9MV07hHH zm=cI}o^!BY6K|pA8J~pD#X5*A{x28#l+O_y0GpqA0}Oh=TNFAwNN0!nc{_M#2YkT} zmw+pNV0rq13MBnNZjydr0(tp?N$3asa8p4%0C58j=`=m=WdHyG07*qoM6N<$f@^Xu AjsO4v delta 373 zcmX@Xx|n%_^5o5o67`N*Q{ENN`8MU--X&4rzI87-`afyPlB-FMNl8(Tj*bgYi8BC! zKuM5a@P9OLR&mo51_nkUPZ!4!kIuJK949dua<~d_VyHg2|9>vKRiT>Jg5Y;L7hmz} zJ6xK3{nqM6<1QP)mlH%j?h$Sldc^fWNZ8oF{#IcO*Mip;e3N=MJU#3rwBUPRo1>CU zKPS7CispkBb*%+wYc4(DchK&;Bdu{m$#KIc2JatXG6^@%f0ps7-ZrC>yKaW~nxy(O zH5(G&FEDESS&?zDj<09Q;a{(64s5R55_o^HzFuF})a!o^EL^hc=JZOT6dz8W3mWl1 z9cGp<*p-mAtzZ51+fO0FRjg~hw^TKiKXU$~cuBi{L&V=h^1%jE<>JJ6>_0Q#`sB>E zLeKt)c=l&!i!<-qJrv68I9N9QR1`V!uH8jpx4cs0oga#ZPp|Xu7yb9TU0y6!LZH6w RlpiSYJYD@<);T3K0RWFfvY7w? diff --git a/graphics/pokemon/flittle/icon.png b/graphics/pokemon/flittle/icon.png index f588d537efad1163eeffea4c8541a1575484a1da..1f96368e8970ad313c611d7a4f986a29e27262a4 100644 GIT binary patch delta 655 zcmV;A0&xAp0=ET_BYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAryamoJyR{N|g3W?sJ^>l=i)(TK48C_V%pR)oSKSDPm$;K|w)jIel9I006Q{L_t(Y ziS3lZ3Ij0+M1wg*JvjgWx7An{N@G&!sb%LnZ)4oRYwgaD1~}A2*nyyt0D5r}#LPcN z?*#!<4@^2O35aHd)|Y@XbM#gWP*Khk3P5ux$`bIqQH+;>7KE>;K4AiCAee30C!!4%1sAKE|r;Q`m_4c?w6-Ua{w002ovPDHLkV1n&(FcAO% delta 282 zcmdnadWdO)^5o5oLiLVWQkk}>-Kf4gr3POsiwX}Z?E5@jpk7izDfGWpMv{YT3!|CoJ(s8m->8Dq zDN({JbXYvZo_FvrP~NP@WWC@tSN+7N(-OE=6v=N|+ZeFgEJr(gN4wy0m(XmB6_V%A z_^rB8nz4UF=fmfLX6Lou{y3Tc4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPfcNkl$w zpolj6z7?NF^ng$YP>OdNo3J8YMO0&f57K{RHfVAZA?*wsxI3MD@oBJm~^1E<=_)PP>8$2B#cg)oj{1Aicf&c&j07(Z$ JPDHLkV1mH`JjDP2 delta 298 zcmey$`j=^f^5o5ow)FxfL4Lsu|53q#fNp0728K7DE{-7{oo}aja~(F|abcc!i{2nkL%bK?Z{;8jIz(Fv#Y@g_Sx01#H_JFQ%Df2{6 zo9-3I*yNY6hPq!?X+N61c5Sa%_|EA6qVFzLgngE+6^VUoIqB?zz1t-x|^5C&+c)oomoLr{+Ws_kW_P2a|p7NaFkK7lwb2( q-Qm;z+wzQ$jL$xf`~Q+*C-e51!oO1US=Ix6&fw|l=d#Wzp$Pz+V1wxZ diff --git a/graphics/pokemon/flutter_mane/back.png b/graphics/pokemon/flutter_mane/back.png index 8052cafc196cbae00833be82a78e5dbb2729b6a1..f05b2adf3cccfa219ca336e743d8e0a230431296 100644 GIT binary patch delta 856 zcmV-e1E>6{29F1jDKwhYr<*(u{D>+D2nf?Y7~ zLy!<6;34M&fY}K&P1B77T_*`)(U!*){&A?CcEyfO*_GlL5%kcK>j zAn}V)PfqQsSz+-!NDIh$vRzuC>!c|m$D0xAgV+%j07W3(2Y&*TGK1t9orNvTrxbF4 zdH|;=IH6}bnOQCe$itZnTL8Kc24J8h%yCxB<=~*6m>q|uL&o%k!H3hkjt~*nVwbLQ zM_|YaU^M_qKwf-?_rZn`DxQlcSIg397I*+OA_CCw)eOE6Qzd-7Fkp*jBo}}+Z_Dsc zHg8J{DZ;$TmVdl8bbChqMhk8o42mGFDc!aYy)ksvq)Mw0ZTpxs2SEeE$JAwCYYb@K z>Ma`{!!y7!hz$V03!zl?Rpj@CKSMK&EQl7WHvrmO;BhEzc7w2_HM9*kEij(bbV%AAguhL_t(oh3%Ema_TS)L?bz}okIEl&+V?PI0+C4Fmvw< znt{-1_IM>r_Aq?o8~-arZkhY0~6Fsdfx=}BR_8^k#6+j@q&SC{pbOPnH>S> zn8wX|5(vw`zoyroYP|v^O=G$$fH=c42w6L@A?nYDpwOq#_hp2eGJhsykP+JCcrEeY z^=Bs3H2_j|mGmNb21KZ0ns^rS;Qot)r+lJQ#c zZRqkqq~r-Oin`Zi=kvJ}VB|tTX-Vo@j>?W{E&;=oB@MzpdrqP>6 zMqfWl;1*gH4HZ09y?-zi6auhM+(xq~QQwcH1YXBhfisMs0-*t*QmhnP=fGGpfJ;=7 z6__UXf5C#Nr#gUaDW&M`G})$%I!zOG&{r)UriKh)0e{~gMq2>}ESsr99bIkwLY6eY zqn`Spr2|A7$>&@x7V`ncH9S^6L`b&ihWa0 jgkRJLllaCr{%QOH0`VYjLz%6y00000NkvXXu0mjf>>6w8 diff --git a/graphics/pokemon/flutter_mane/front.png b/graphics/pokemon/flutter_mane/front.png index ce45a4b9238f66e3cdfa9f24421774f3bb6d1845..77302c68de1c4e8dd7de66b780176b7476cf5c1e 100644 GIT binary patch delta 686 zcmV;f0#W_`2ImEkDKwhYr&}Or*mvv*2ne1(vuFVg^e|5zMo|qXEjfLSDqd-@10G|r zr$dH*$Cq3G$#}Kz!J?5}AAeR!L_t(oh3%Ewa;q>5MZq#imP7LYe|xqhLztALxH%7< zY4kv5XxBnF%rJc76Tdpfclq?D;XerIO+M53j=}_)hRGe{xRrBOI;J${Ow&w8r({1g zbQH#k$2<-YNQTQK$Y+S_8NN)!B-1=oDV9O%<%>NVmsz!x96WQ%iGR)*z=N$+)Nn+~ znVByaMq@%S?)v%#H@-ynEkG}qWm(u7>o{_HA_%-#`BfVX+GDw}@d7+Q;ichXDQJ82 z8c2eT$L*XBYY1FqvgA>|mA#L}Iw-2prlT4pp3aO3SoYAd?qDAP{%oD)gBob%*&3)J zC}voUj`j<1GhiNH1%KW%3PJD%*)EF^Zsz!Zz__QJ5eEi!fkp$Pq9Uebj`53n0*n$4 zHVOg+*&13hAz*pnEw~&lBq^IS0g6@Tj_`jCLUJPy3rn{On3 zZa5K8`BsElH(udQ5(2)`t$GWrhifmt$A|TmDBL)jDlwgf!@#x#51^xz*DKwnYq?8_L5D*Z=W})Vy%{WO=ZIz^2bajY07+kE5|DvM*L_~HM9*kCqXkJFJ|AAjvhL_t(oh3%Kydg3q)gkw3f4aVX9-*#uDKuU1Hl#AVq zb-z*$nct&>6*^7-;0p3BAbv>*F^0cuA$(yWM0@zXg)qwzAPf~J%yTe;c0L($72SfS z-PO>K0n9?kUjS%9Q{Dl>9OfT|K|cDl5G>XXATqtd8FFj~+aP|)DStfzSeIF>M3Bch z9)%-u4hTQz^jHOjDu`_>iY~*mz|{e$CIjHovguDJiG)+1)!p>NknDggQ#s2IfJ%($ zF6c9#&2#LBf&8V!i>4m{=nVjU=0ZR;&^s=YTyF*{9*P6hJm4ACZlc@Sre_3Zph~IO zYtjqlCngYjd?*=j$A3-=q^xN@3}6NTD0RVW zY0N+5tUY?{rTzv`07^=Q+nWW*Aw$-1#9rzhptd>NAwi6{#DASfzDL5-th(n=*BmCI z2mpauG2=WVBpe&iwpP((c$!T?J!;`{5{?bfF#D*jfOTOwtfplw}B_k=9EZ7A1;U9?i( z8JKLI$#O+6nt%K%R{)?dIF^~k96=CpRa&lB8er=!3ppelx8b%R^dPiiqOkRgEcZe1 zUT;%t%>hG!0SuN8^gcMZGGyUsdp$=w1YtV8cpOjiksbrxZVWd2n1_1=qXga%e3g2x zTLy*+G>zX{3nnv0>pIEC38*`^J{w`N9=H<*Etq!$$bX}Ln4m)Q%zhC&Vp-&)N{F>D zvUl$XytcHCwGsfhEBM~GlWEBqQ(Fwr!^A8N1ElRoi&#NF0$2o1*7?kyte?ctlmp6d zj--|H89*Ap??S8otpV9bTE}w$!sNFa|MT1bKGc=k2Fu^~LBenK|JUgH1OI3xdV^RO R6aWAK00>D%PDHLkV1lSej3fX6 diff --git a/graphics/pokemon/flutter_mane/icon.png b/graphics/pokemon/flutter_mane/icon.png index 2b65fc048f897ec8aab0091f0c9c77011d2b4fcb..ab756908b9b8be3a0d0409a115be1b3762825fbf 100644 GIT binary patch delta 766 zcmV4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&FNd%eB1|NsAUbIqiz_Oydq?!}A6tSR>PDfVJglzYv^q|Lo4oMK{H zK|w+3M6_Q3009t5L_t(YiRF~Rj>8}fL@_59M>GHbx3x(X6%3n|b`RCA+e4Ij84So% z%3mt-4u3dqh!MzsJRrQJl^p}{p9bN0wh)1<&HrRA$-;F(Q)rWhQft=DASwp0T5DQ? zp_}Xe@u`!;P6DuiY7pKp4aZv_jL#()DHRYzNAJr}5Ek8}i$M<#{>pj<6SVJn?18YW zI+PD8-ah!ycv$G?QM6O%`tE~ZbhEv87C&mB?RNoffa%u4-J^fieAO@D>>s*c!n{w} zY~j@<_glEuxdHxr{X8CKA~}xvurmC_d{_WOK1>0U^I;Bm;e9( delta 377 zcmV-<0fzpS29pDjBYyxeP)t-sVw{6>b924Dz5oCJdz?y~%}POPlVw9xSVnJeJT0ucUp~@Ek0000GbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs00033 zNkl_ZjAucRhbthP<-gZB?vGl;Uaw( z#8V-_+}%ZoT);?0N?S?_-E{!nDr|$$e>TW9n z_OOWKG*>OeqH;uK0U-7uJge1f#NHL$qS^9##TQpx+`g-;dDp+|V>`V4Fa!H4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<005~;L_t(YiS3lZ3Ij0+L|0>OiSz$|+ev!agW5u&(2{{Y`OvJwyRMVp z44ASmDt}r)tgHI^5(3?JT{Q+^4gy9@LIMWi5O_~oz@)YHNCIICuufuksDSl`5a0t_ z)0zJURD4bsmuv!;;4XVvG0@>-434mP4ZM_W!g~Tdj|pU(zF~F!cK6*o-*%5Cv!Y0`wdSt(w%($&dcMpT-r=C#zqX9Gk+_7}6DETV(PWREl$UuyE{k2xNRF%kwsV(?)@Xs+Na#^>nF6 zt$x8FedMAE2fM+e3z}O`TG{aX)}Px{QhqjkvF(1l-SVg0e>HBFzx18?i~j4g&hCAs tA|5wX>O8iDDyVVvRDEFmbp7uK2F=$z39T0%JOKKD!PC{xWt~$(69CkRkAnaJ diff --git a/graphics/pokemon/fuecoco/icon.png b/graphics/pokemon/fuecoco/icon.png index 923e5f03fd97a16c71957613d02ec8cdf029685a..31bcf19b0f301435d254985bb4b88924beaf3179 100644 GIT binary patch delta 676 zcmV;V0$csH0=or}BYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&FNd%eB1|NsAUbIqiz_Oydq?!}A6tSR>PDfVJglzYv^q|Lo4oMK{H zK|w+3M6_Q3006d0L_t(YiS3lZ4#Xe`M4On1a+vx5zb$auwqS3&o2GN+IST4*+pF)3 z#&J+%DL_dX8 zTL2PWz}m>BMOB!h4$a0zqMP9Ld|c!hPN1ubWSewYtG>KTej)VBCKT(3bNjAdJw*SI zAkPbs3v&n%>-FqH{R|MD*KLjgqRIF70I{EssvUmHhkO#h%7-1Mk`GXNVFh>q0000< KMNUMnLSTY67Cz_z delta 283 zcmdnZx|L~yay^4VfKP~P(wyez=Hk73_x}I?fA12k6Dq& zIj}*YG3EdN`(`_(Z#6EttgGwhQzzk~Qa`=uOUnuUvV6^h_pC3AY~xc?jG54QWc@l* zr>3jnJ^?;cqL>>*x5WrPU^JQ@D=1j@-$ap#%P_sv-s=E^LCD-2wdz;-f6Fb-ch)fD zJ|LX(T01H`$!^=ey^e}W{ueT2_Ox8651v{7#s61l+sV$|i4{`MvLt$?pDlLSG}Asn bL0^O~iPwVj%fx#?7c+Re`njxgN@xNAXJCW7 diff --git a/graphics/pokemon/garganacl/icon.png b/graphics/pokemon/garganacl/icon.png index bc2d038478cd2fec5c7506bb406211a2cf25569d..e9a02452778e3a7d8c56ad4370bfa241161dbff6 100644 GIT binary patch delta 797 zcmV+&1LFM01MLQoBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWrXh}ptR7i>Kl+lg@AqYi@CYrv;|Nrg61r?pK+cxRLCTlWwDn~#@F3}rCpYI5G%k70EMu64t+Su!_3cs^d@1-{#e@p0000 delta 373 zcmV-*0gC?Z2FC-CBa^cMJbwTXbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0003tNkl|F<2m(+1-ts`j#na%#eq0qmD;`!dwxE?*Eg0?*U6py%%d zLESm5>}vx z7swvgg6=!*`yq%PaDYYmILsb4q%t%07PE)?=${tSBHTjGG4DZ}%9sMlA}tM3wTunn zuv)8ivcQYha26!kH{)?SEvwKfj>0UMv@VCJURMb}=Zj@`!QZO8Nm&W-*0+Q5Xrm+n z9j6SP$Si>35cF%8k7{%5nDi~kSE}FT0oOI4`h@RO{P6$bzx^NlnXmCj0aA|mCpORc zSB(Ov|AfEs9TZOg34iJzfFKxHcl@o@ATas^{{9rZjQGPU-^z&pc1h@;@lWvrM}i=b TWzVd+00000NkvXXu0mjf4==$g diff --git a/graphics/pokemon/gholdengo/icon.png b/graphics/pokemon/gholdengo/icon.png index 99d0e122f2b40287c125747192b80124137eead9..a49e6561a9a95011bad7f3b65d9eb433a2da555b 100644 GIT binary patch delta 721 zcmV;?0xtcX1EL0yBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWr9Z5t%R7i>4l)(-HF$hGrDYO^E{QuuNbd6mVy2f}gl0BI4ECo8VZNC@5Nxmyq z461e`lbsF%MkWN9tkqQfivaX4!qbI$k$`Z(q#1iPbs4!}9)Rry-K8IT$Q5qbxhe3b)>mYz87yxs;YaiCsGF%v7gsS3rl*X6l6W2 z%HoyKhg*dV!9h$PAHOKN-n{zX!{h@i9k;2v)pvakeIw+-R(eFmC}VytU&-taMRy7F z79AZ|l^2o$%Nw?=lR8!F^!C;#x0zGtR& a=zq55YsGYCx_n*B00f?{elF{r5}E){ETdNd diff --git a/graphics/pokemon/ghost/front.png:Zone.Identifier b/graphics/pokemon/ghost/front.png:Zone.Identifier deleted file mode 100644 index 053d1127c..000000000 --- a/graphics/pokemon/ghost/front.png:Zone.Identifier +++ /dev/null @@ -1,3 +0,0 @@ -[ZoneTransfer] -ZoneId=3 -HostUrl=about:internet diff --git a/graphics/pokemon/gimmighoul/icon.png b/graphics/pokemon/gimmighoul/icon.png index 91914063265b96b679842a5a852fea286e966e84..79167add314e0a639c4c2785c15b10db70b63e76 100644 GIT binary patch delta 415 zcmV;Q0bu^11C$1kBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o JAwIEtB>^`}zc2s* delta 42 lcmbQjwt#tp^5o5oHc|`%B|(0{4F6HVfq-u3&2Jgi83Dp)7o7kA diff --git a/graphics/pokemon/gimmighoul/roaming/icon.png b/graphics/pokemon/gimmighoul/roaming/icon.png index e803b525545897761f4137c46ade0df4144024f5..13ec7881b5040f8b49a44b891dd6fae063c272eb 100644 GIT binary patch delta 424 zcmV;Z0ayOS0-gnsBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o SAwQ9Pr3nB@MNUMnLSTYPk;1qD delta 76 zcmbQodW30$^5o5owvqxRL4Lsu|53q#fNtl>Zy8r8^QA_3ruq6ZXfZG_Z~!p~Tne5H OqC8#wT-G@yGywpFGaozv diff --git a/graphics/pokemon/glimmet/icon.png b/graphics/pokemon/glimmet/icon.png index 1bc74def326e19676e980d1632b145d19b1a8010..1b6e11e218e2f8804561d8e5bc8b9956fa4abd85 100644 GIT binary patch delta 562 zcmV-20?qxn0)+*TBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPeBNkl#Bw?|2kSTOw?swDqWb=;PInQD1>F1WTeNvoH=h=+W%zl#rh;+t X5&jphPx@8?-OS+W>gTe~DWM4fIR|m@ diff --git a/graphics/pokemon/glimmora/icon.png b/graphics/pokemon/glimmora/icon.png index 12e50f0cbc4b6a5c1b3e12a54496bdd3b740c6de..7ea164f38a2c2961c1b8cc7cb7a97cb0076268be 100644 GIT binary patch delta 611 zcmV-p0-XJZ1hxf`BYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPeyNklMiEz8tXMb~XPB|~f> zyzWYYg;vU08abE&m8~`z8{p+sa;^?St$`9_xQ0-@)kM#c*R^+WuM@&Ea$aBP47AO5 zwNQ{ppc{gEzO{(akYo)|g7z4#sXdP~M5jkAmk93oX@Y+K&T{|XQ&T^BIv*M!LOz^; xi1^R|5%Hk`BI3grAOb#|fQb2U0OCLS@CJME5!GGa#hU;C002ovPDHLkV1nvW9IyZY delta 436 zcmV;l0Zab21%?EWBa^cMJ%12%QchF<|NsC0|NsC0|NsC0|NsBZA+nSJ00DJLL_t(Y ziS3o!ZUQk3L^lYeSn}on|F$06?2>F2)Q3KmsA^Ts!AYDMvu)q?C(C@jm3!}U$v|cX zqD#WMcF3yQ`=UtcP}%Fq2{BSCxnmnpiCtC%?x#ehIyM4kt$#K3DoJ1$;g`GE z?dCvBfa?&VdkKU5Xpg-D79IMA`t9ECT8D6syc;S9;s3=JKvE?V84ih0;2QV~N=T+Y z_@ZY8|1{C6laxrvi^o8TLarY?kawQ350?5j>r)#nop>EC_Zz!9dw$p5iOkA@tpNlx zs3l;T&9L+WaN9*VD}Pugz_`MV-~Mw3qza_&79Ou^?3%}72j+8H57R1@PN#5(Rbfg1 zV0qZXAZNm32%*>zEids*IHnAkQ9lx{6>y!ScO<;>Kk2e3oN|ElsSDoxOgQzLgTpnw zO}(!9e2cLU7;)LDnzX{Rsp@*sM8ZRC<1)q$2_WLC)~~I%-e62E4RK7 epT@`U=gSYDNFRSmE^IUa0000kJ&L|y>#(*Do| zs26}E3B*c(=srS!wW$`sW1|B2-H0g&`!*qR8alz|WkfnbGmyEObmGkG5zMV+9t7E( z$Lmu&b0;!3)8Puy?dWC_3FzaC$MKXsi|zCrAoN^FjoM>*I@N5`CkMX3%$kY z<0o0V`;z33in$2%VBCObZsCrOS%8tSlgJTi4PZu4YeWeSKn76PcZW(+C;*G75{G|% zZpS^{u~doeP&ENCI`C|)bUo81H>1{u^$YzL#>(z%ZFf80WOe{HVMzZ16*bX|uLGtA6@=5qN{h4_fa67z{dKQSo$T&<2q=-%keNuKJo=)M|~zWxveV${vJU&6^=+-!8@l f1hEhCC|=hud=}QbYP4mw00000NkvXXu0mjf`TfIL diff --git a/graphics/pokemon/gouging_fire/back.png b/graphics/pokemon/gouging_fire/back.png new file mode 100644 index 0000000000000000000000000000000000000000..8a0f79ef5cff3509e824be4147fc7a276be16676 GIT binary patch literal 804 zcmV+<1Ka$GP)mte%x8lCVbH(latLU0hsrJv2QL8JJ)>XE3yq0000G zbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0007$Nkl9lYH44k)=xjsJV9eyPt%ik1WUKV#d z0OcnK1kfk|>g--`H4`lL`fmXj2N-~P29{-M6;}s1s5=K<06YSFcq9w}Bt^_sVrR*S zk%H=)0{Jo5(_wrdrF%VDsZ_$+6P_F>rn7TA?WS(yz6Dr5`=g}YJ-2|-mJmU6SUyaD zIZ_^64u)Yt|Eqo(mCY0|s^`~$iT)eFWIw%4!W7WEFayqabf=gDLIpH;Yv;lokW-bf zb-Vy?(+Hncwp6AHNXP3el1!^RGU%7I8v*BgGXP}M+Gzj;fD*8~@Wvy(`m9X}3j!#i zIC2gKX2)9Y+8cI(HSP%6(=-o$hlLD40Xsw|!c+!#76RaiB?kF3VcMSwwH#~>_>9?i z)rrst`wgM$;Te$GQ*ojtT<__iUmXC;0SBW}1Bf#iu4yP|)I~7iVNR4E^hR!1BoX9> za|bd?8SK6e$FcXOSdr?-XF~>Qvo0N(hj5$(nAu|;9Ue>CKHI@9ls3OokJ^y(v~^xs zsbp2ATt?!AEcdo4fq(P18(Ify#bI&;zoid0l5{Y|0F<%9E+T12QCjav(2DhQLPzG` zrUcGHUg3JnKtl*UE`W-FW`zMvkOg%8QmV!?X*s-!xRfLL$0%b~W75>mte%xMj5I7!$Dh|G(Yt zmSIBzbA8yVb%m*9;y#vI66ALKkC)kR0r%e!i~#@5>5eOXn_yes0NDK}fcp>#oKC=Z z2*yQ1A|Z9amu)m`$1+PIki&Oh4#Dr+f^_%^z#W^@otgmzSP&n+VFDOZ+YX@K1lXO( zAM=P97y%570N{x~byOZd3#b!td=Fp%0fxBF&SUvBBM<#>XAP4@G(&Qp{T2Pq+?c}< z2~6~Z?>rYU$~C~Ejc$g$B18a>DfG$5Lj5H`ZGd3mS(+vW9{R^4^vO%fU4LE(cEO$b z+BAvqqUY%XnTwQyLC>2A~D`wUN(@ ziGwwyzxuz;KxxjqC#Lod0N&dofLU*(uH_j>LRuE(*;Dio7$(3F0IH)8szHkvTe~$B zBj0i)^lTxw4x5JnXq2S46HV3U!)Vd5gb42W4WnAc}}XogEqK7?xW7lwdo67N`qo0vy;*X8@2R zhZ6uFC0v?COIsJof}N0P0djCn*3m*fS#$(%3MpU~CA8-lltViiD#o_h3YC&eeGz3xS%1<2uSru|uKoNTQb-BD`~ zU~N@70Pse@6wc`X2*JzvU^n*V-2+=|YYln;>MOyubut}~yVpaXNnO0gU5-0m0_ZXAT6n;QsCE4X z09N`2n4P~gXj>T-07CFvtE}W%4mpG1xE*;1c;c_k@EtjTpdLmmG*Mncz!m^XL)bYy z@Rs=VrpZIq&SM|O5qA2^@!A7GONlH3iYMw}BVOJVK-NQ!cjb0G9ydyC@xtt2m{Xs1 z{;H+Q9RP<%RPkuA9dLscoR~(f0PEgIs_D}>AsueR7tAu+m2DL}B7+r!h*$i}{Wy$` z8@Q);Sa-)aYb(-S8?W~vmV5ZBGShm}AX!}nYw_poKBOHZ4kbTqI)*nd0K|3i>jpb! z4i6b8-8nBXd?}9W5&(q4WDA@Cc%O)xoazHm2suB(pRUuz1B$MzBR*X{!XK&?LtOu8 Z{Q(-XH!`1q*1Z4#002ovPDHLkV1j}g4+H=J literal 0 HcmV?d00001 diff --git a/graphics/pokemon/gouging_fire/icon.png b/graphics/pokemon/gouging_fire/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..38e429abbf3f52938a412533faa1b56bd70228d6 GIT binary patch literal 551 zcmV+?0@(eDP)Px#Fi=cXMPi(TdwYAmy|n-T|9hNDoXtwKgIeyzi^Z%d_Vy{&VnLL9&Bdh6_LM1N zVp>5#LGybyN&o->rAb6VR7i>4l-q8^APhuf8zG>w{r`X4F$uYlWc$*WmfdWmo$-K4 zILq=o!`(mYBE>i3v(t-+L+-a1N3FPCbr?#8N9;Wy)mn?yM}xc7loBqOo*ZbRCN14m zEEc;=&0vP2_(lTO$rj)4*_vM*2~{-`iWwV|i7@`>?vhwT2}9^?gpV*IYi%1hv$V|+ z#YBb}7=%{?;>2o6rPo6z%eiOtZE^H3D20q)6N`Gwh+tlOachv)fv09+wS-PKeeu>B zQW~cy4H!nag!xRHsy54^TfR6jU1p}%6iOHhx|keci1Hkg$6C$? z&)67JjrJ|p=8<%Axb-@`!q5$l!zb6TaL4vh#suKU*_EIv<2>%rF5Y_<-uYr3oN|4{}U! z0SFB~@Nv4&03kd0F!UK9gAeD^e*wtg!?9m?fJ}V21LVes86Yzs0FZV74Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWrSV=@dR7i>Kl)-MqFbG70u`1j+@c)0?!A`oeV;WUzZ);^wjDZEu+qU<49kV9^ zbxEi*C70N4fyPvI-_3t}Pi13O7a)o+yTDq;DFwng<3kc7KVuH0*fXgT6iQtnVuQex zGc$6K3#Yg@C7cp-kt;#bsSEK0MWhnaAzpvR6q{8Difpy|?G~Skuo6qHl}Rn7RM6E_ zgIvK}QQH+V&(w#LvWWL)CE0C(7@rwth5P8>z7i|PQK3PLDd}QmCLf=u0)ejXdj?cU zXdQxJ<$aB4GVu=&%tVj-9~dg3l{nlgJw4#}`PcJ%fZXl>0?5+-BS04RzW~ztu(oi2 z2MG8O*uMkB`LMSCH$X~Y{|g|E4}tyV0fheD2F(MIBa^cMJbwTXbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0003zNklR~UfYH1Ivc^aF5XWRZ{VWp{vv>;SOj8g!R zm?Xxj1){22NdT8YylQTONLtlo1k4o__7D{D^qez7Fd$^Qrf4QXCV$DFdd`%M*LHY1 zNXQ1LRK$=Dpe#jANU2hUs)Ia7(Z9-=dnu<_o7TaOL9$ni^Ayvl0~FB_6xy@u0CTTf z8`JmejEPxB;wmydC3bG4HntAT$-58O_^gvE;9jV(XlMOqllxYHVLzTenb%R>DNG41 zejR1?vMaRG|Ldpqt8fCup_%|0H?Iwle)F6F>6Y6Kkk-KokSE{;NOKA&K)U4~0%Y9I zEA&~X5FfQ;z?-P^;~_A5Z#um*nz$RzG@2Z*b0*uy$N>`|@*#F+O7 Z$On+08;7+|Xi5M8002ovPDHLkV1fn4xflQd diff --git a/graphics/pokemon/great_tusk/icon.png b/graphics/pokemon/great_tusk/icon.png index 30384d570dadafef2a510fb921b100651ec86651..60bbe9f419b85ec53e2040cf6d2e6d0661b49c63 100644 GIT binary patch delta 897 zcmV-{1AhFK1kneOBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWr%t=H+R7i>Kl--U4AqYknO^l%i-v4d)1Am}RZF;-Oda-MVBO>FRpP#=vR6j?R zuK<=R3paU7cuSwEq5(qs0HCGTT6}+@7=7zIN3zyI^ING3;*V5J*V^2|t8D*uJkVknm+g2t=|#k{^yhjvr{XfBGQ=vivXwlKgN4lKkLZ z%zkizY(H#)EI))mjvq`Q$qz>$=^IrIKZHOoeh7iQ-k0r%n?SZ7?gH6j_#luc?(6Xj Xur?&wtJV>A00000NkvXXu0mjfh?beo delta 452 zcmV;#0XzQD2bBbnBa^cMJbwTXbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0004mNklQJ3g3i+gm=Et@tqIB_Di8uY54q$p;+( zx$waOf@swfUipyj01+6Fck-bHA8s}+=(B2_O-w%A$cKCZ$T>3~f*`i$1Coz7b{N%x u500--`EbX>k`FfMu;#<0!4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<007fTL_t(YiS3k23d1lAL?a1|LXGDBx2Eq*pU7#}}7C}PYBuvoE8=LU?9w0593V4;zZ zVH6=cVB~W{!oqxE!shy2SE+9UwufTGT* np67!HNbvxfVn1?&QlBYyxeP)t-sVw{6}dwadTwEzGAb92q4toF2nTJFV*#jGjz_9^ya zQj~km#iY%>DV$0!G}TLPy%9DgX(%krCnyZW9J*dHl? zeO*%t3go~7v%KCIX^YxgJpfEF)UzJy0Ju7Y0F=>G$wBG}ur7|M`3wcDBMwL)V5S^i zhRO(_6kljQAW{bc6c>hRGf1h!CSfcx3lHk$v4wAd*$G6O>@6GsYKe|{^x$Fm5yP9H ztS1-Gt`j})UQ6viJ{0fT!}6g4F!}#q{UHE;!XJv+#+>>Cv~0R*;t!XBWd3j% k$lM=J14;a$8_4J52?t~k_cYx&82|tP07*qoM6N<$g6oE*+5i9m diff --git a/graphics/pokemon/growlithe/hisuian/icon.png b/graphics/pokemon/growlithe/hisuian/icon.png index b2b03733f0ff1b2db1108ff6de6f59d3c61345c5..71a2ffdbae84f6d74b99a415f179792caab60206 100644 GIT binary patch delta 256 zcmV+b0ssET0?PuB7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S$w@>(R7i>Kl*tan zAPhqrN|Rgs|9?9UAdRLhJyn_mk*Y3!3T{9?j$LmQ@Svw90Z2+RC*X z5O?8aoJ28n*ZE0bqPZD|8IK(hM4crUk$%@eXJO9O*#jgIPF{?IXoT7UH?=&Kz4w9U6ue@<)-7D9h*o0000=W77zqRe0001qplF?uEa7bBm000ie000ie0hKEb8vp>hBI8mwr> zogyyfm2yxX$hPu^tF!j$34Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAryaebIqiz_Oydq?!}A6tSR>PDfVJglzYv^q|Lo4oMK{HK|w+3M6_Q300Cu5L_t(Y ziS3llj>9krgaaHMG4KDjI}q22sa>tKdn|`46=T3Z^Bu=GN&xtrH?xpn2MfuG=JQMtx$=J+0_EQ_GfQ}LRWmC1>oxBhr-F?%^JNcQ=`Ds+3q@>cJ_R#w!eb%F3&Grjd!|C=>K|K~1zhizWkaD^ z!b<^(^2#O>5;uPe@Jf2Gz;Av$1RRemcoQ5n2ZT*G1+myYuTzi%@}}m;5N|;u5TAeb z5L1CnGat>CPw#qY5Xk438Qs6}$M~)LxB2e=Cm&|P<$hk);6r&c-Tip*p;+hT{-JmW zNVk@TsjaPbsx$-7Mx*KL8qL|R_vT_v+6Tgg?E~S`?0+MW5-YGS%DDyt zW3jI46^2B!=8morS@W&6o-=FwIV30Ghz7zg9|eLluPQcyctm6X$dkyKT|x?gN3(T^%>vCNg@(--*=pP}#uLHo* zKLEt1hs~b+gD)YHZmWNI@u;}>b{kB$hZ}f0&<;!o+Wcdj*l?iDKT_i1KppS_6bD-T o!+Q;%4&?IYAKv{#{;hxf07(NQcbv{VRR91007*qoM6N<$f;R&2egFUf diff --git a/graphics/pokemon/hydrapple/back.png b/graphics/pokemon/hydrapple/back.png new file mode 100644 index 0000000000000000000000000000000000000000..f84712a508af9a67d89eb9b93c815e52122fc87f GIT binary patch literal 829 zcmV-D1H$}?P)vJNbiCd{XkjI>Y_+-qYzMA@q#EdpYwd z(I%9piw^P9MCR1$ko`mbBq1hpt03C>g!ER9*i}!8gjO*zUU{B(YINE}FJ6*kTJ;QK zbUJJCGX|`GluBV4yDO2Mx6~5vY$}D3+lcIZp(gkn0m`q4Wpus}-}i4~fS4GjKX86! zfOsv45WnZ4S_7ecBrF3&AV6pV=fuj1NiY_o1mIhIDL`<7umh(<3LysJ?&HNGvV8!; zffV9RxImh~^6W_o4%6^a6Kf#Pma*04GMpe-0jTj=527N(ffS`{Jpgg{=V~n8j;ERy zmT?#UD2drv_$Yg=1H({)AzZRQm?nUQBTTs_LJLL!@C4zpn2t>y_{GBzwx?W_TMZxw zob&MG@|uR4s~EyO?=KEBN7xBW4H&^~=l$@LTY)>MU5DZWYC{T2j}lh${R09KwiCf! z3;q@Ri+m*w;Qj(9fMH*P7rce+ZGfY7lmP9aBv9OJC373d8Uy`yeJ+3+gPC@_t|EII zjKqBkh-%E9s4+?fQHsUn1@2r7)Znz!zbc?@q$ughFHoW;b> z2^^ZX*R6V+xQu}d`1SU?@@=_}^CK1XP5{;AyD*xR^87LezM|$5$Q<2h{H~`nBd~R_{{(S01jnXNoGw=04e|g00;m8000000Mb*F00000NkvXX Hu0mjfP4H}V literal 0 HcmV?d00001 diff --git a/graphics/pokemon/hydrapple/front.png b/graphics/pokemon/hydrapple/front.png new file mode 100644 index 0000000000000000000000000000000000000000..eecdea6d782df1824dd4c7112ecc90d50d6a6517 GIT binary patch literal 1159 zcmV;21bF+2P)ML^aHVUn<{EEjIF*rUdQkgPRVs5)dapCNC?a`x_!cM41R{pP(l|Nk3=&~6>z zPh9*hMtj#0KJmXkdjR;nb9(8H_Qwxiwtjizn&|_87QP9ld9n}CULsT{ft$h!`W>5pSu74CzG{f;CCXQ`%=$ryC|@@MIyXgk^^*`)RM*hc z4}e3y6y141AO+t7vyFa#AU!zbH%8aM$P`sA#Y|i;?^Db&KDp=;`Bvrfpn3wp`3Jy_ zVc~lqTie0-$6bvyF{XT0G6~oU&{@8IV%7j;+vpnrl!i5sW~*TQI7uZkJr^5ooX;!? zXhH&d##nA|Ruc|@etTn-h-9-=HK%~AV2fzJDJ;I0z~mxJ53?nj)WAqDSQuB#CQx+(5W~zl40AzREV<{QukWq{$)>*20EJhiN-vMBh1J^^y0$?tPs2Dp- z0FXT{#7IffChcRS%?Yt9Ohm|Tlm9CyATF^6P2ho3!Gnm1oo|6V@lG{NV)bY_n8^M} z1%MrK35>QgL$<#d&L%yvqqB*Kijf{~6QpD}PHCWW+0pGt0@Juue~V2GOwXT~@;+%5 z8&&x&t^utwl-YW6Z3aQHOg{qjY;vK7QeREhqPvJ#0yXAa01E2U+%P8RFxXjPtxM3l zSV} zo2Aqyi?L>3Z2^93#T%X7!4{?lM#IQiK-+p%BrWe7=+dHJLIMnjnh%wT{$bzrASc^Q6|98qso;HW00z z+V2jGFiIB5%pb8Gu_(qu4EJ z_jVi_%>w_u-YLwbL-v>@5oprc8&$*uyPMa4*@aJVgZWma0000EWmrjOO-%qQ00008 Z000000002eQPx#Fi=cXMPi(TdwYAmy|n-T|9hNDoXtwKgIeyzi^Z%d_Vy{&VnLL9&Bdh6_LM1N zVp>5#LGybyN&o->T1iAfR7i={l+kX(FbG8}&0vCL`2WA%#c|UIL%Ka|)2zNUoMIsK zJRaXU{x1FoaQ1sD06(epdM7hitrEB!HEO*E#E9A<)~YK6zdw$nwUR*m0~xp?0?@-) zI0f7(NL!C z8zBN_#3vyz$Sd0(IHv9bL>4B2PX_Uz0?W?UwTh=b-85$i65@ke%=rIML(2(|3>rQ zKSrpg7DyZr*#cdD&{&T|5SJgwqM1YxPe17L!~RxYe(*{V%MV-%;`GCB3*r;KT^-d4 SAgYc40000pwZ0PTbIfZ0000G zbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0006JNkltoUt;ELjz zDo-J7BZB!Swo3RGlaJ07K#maBwI|>v*8uGOQsray8-T-rfLkYkzbvGy2w~l>grIvck<@b(T>$XgTxA=C(De{D4WRWdW>tXr z4dA3$2=_+;34|RZ~{|yiYK)D$O#Fz=60I2Ce)cBhw1^^If5Fn<; zZ-_F5`Xr@f0P}O_kJrZvhf@Ke1fb(k0>y#Ue*#jH-z$LjLkZG8-67du2nm(D0VXOV zpkxGcByS(0W`s#Ed?6s~aqKBaD5sH<5O%Cy-e851N+53^TMCOQpuW`rNINX>Yqc>h zJDCZ#ln_#KuFg;h>Te7kLi~ti1pKDO1Cjj%zw5T3OCehf0%ib6l2?^$0t~kh!=Nig z+traJ-w+)2i#0*$ zB}0G&XVOk*dQo3=lGOXL`m;H=+yC`fm&l*VH6?9`?ZX#Khr~sp^7FTLbPNCpI*$J3 zD?;cqm+QX=3`tYI-|s~!e}>ap2HCnr2h~xaDF8q&A|C-J)U`dT2>^IcIv7e&N(G_| zu!(?Cn*m720fa%#v=*+~t%Ef{(xzwV0hmNfVK!dcfOW_(5Op#K^GNr*~bS+JRaL4?}{2nOJKPeH`c zR({tFo&xWF>>q>%07$7Bmif4N%mj?jnDBQt~f)v9q0I0eF^RvVO-b?{FHADbNaQ%b`066GZ!14pYQqN6o zlLP$uvzSNg07;vH2tghXc#v0sTM%Xs29SVK6*Vz?0v$miHT>0(UATIX*-{}tk zm~i>UXiIMRWKTW&IM-CIJU!w@au0wlJRFXCHbSK^a@4;jQFU1ns;hIagBOWa?gJPvXHqvg9`AL? zCDQqU;0Y72NR#uI?D_z7lejvF&#{awo=Ht_)-MAOzx@uuWrg;jflQoVHy=CGs9831kd40y+$9OSzG3av+UsW-d(UOyt9&yU-g1(`k+(r}P5QG1i^ zIEnNld_;L^A;)!ih!QFEw+3Pnz%(1{a6!nGhdDRz3|PDN$rhEU!vz3)XFIPx#Fi=cXMPi(TdwYAmy|n-T|9hNDoXtwKgIeyzi^Z%d_Vy{&VnLL9&Bdh6_LM1N zVp>5#LGybyN&o->bxA})R7i>Cl*?{~FbqVoSs+ES=l}n<9tZM(aJy`)W^;8j<0o*o z?YAA^8(jpSjG?<@G(HR-2MGP{$gt4iqU!lO8DL3j=R@3jT@g z%8f?+&Jj3vn^d`4t-Je+nn$}o}c8yrN8mv0>~R5E`YrA;RJ}Egh<1{hdV&>wVwF! z29Tk`0w5C~762Lfum;G)hXp_;KCA#T^I-{)J0B*1Ecq}1r19YbME&0RJtaW0&^7>~ t<6-7Q1H=sv4?x`T@B{?zU-RDs#202bA{gF?&1nDt002ovPDHLkV1kx(YTEhQrbcD6H zz_R53P+4LyFfbe=5ap3wAAjsgL_t(oh3%Hhj)O1^MSC5y2u#KQ|Lyoi8XoO9-OL6{ zMO5ORTpK&#@wnrTJ3a-l-Fyk)$(5Ln1muuRlRbF?fRdhsAX=2;^LaoiV!|$=gzHPT zDoUVIN(1Q9Fu>nsV1NZ+K@$g%AQ_b+5Y8-LP5>dOB~SwJU_KHU1%LWiE(yI7UO7Zd z7(jn1Kr;c0KCPtQCBS4Mh%W#Smy^9vY=D93@YQJ(4jTyf8v#y08i0wWy#)*!pd(<^ zfVM!VFT)13iHQ0Hz(W-%UC0FKn`BOINS;BbHzUk-=B$N1Ao6F?^O6MYGKeAKx$^Rp zBgh8Sb)ObN7Uy{uK!1(^C14{UdZ5l&vIM3!|7c^t6^lB_0jSsxhF2a%#mkb?LpNYL zR8o0Ky^f;P?Fx`=1fNA{@mmV^B8Ga|=h1cSq>=5!{1bHpr6tV+4i)r7h7EK8C1lQ| zYXk6uX*=iMM2+YTQ21xJ@Ci`s98tL$h@rGY0Us@x{P}DM@_&ULqz3G8d2gY1Y76cF zXlDZ6S*QoO6Hqn)M?GXfE&+Re+ z*#fr&I!s;HwEuL3;CcyTUgO>q4=@fVZ?3dmWSi?g36L81B$1ma56>G@} SB0m5C002ovP6b4+LSTZnUINqr delta 584 zcmV-O0=NDB1c3#RDKwnYq`mh4TEhST&OyzMDSJc!0000fBq^+_w8h4~Vr6qdL`qUn zQk;#HT3uQ}jkHC~u%?k+AAiMR*f9^C1NrrvW~#9S(9-pQ&6;YioDj>W9`;1fw)b1{w0xl?kSW5_E$bW|0%NV0sO2v2vm~aim zxU@2bpclY|%ltA{tluRB*@7Z(4xx+|2{=cWc{BHrhZ}-Um=<8#BJxm@Lii1sH=u7r z2P#p9)Ng#jU*PrHX+$xRW5C%TEhRPfl2@2 zbF$?BW*!VMFfbbOoy?J4AAd1PL_t(oh3%H>a_b-rge?$YE+y~(wp|Hu(&;${(!bG6 zZe#XiB?~#n@rh6TCy4$EFh2Z0ESTY-W0T>$VMJlgl z03jSKyaIOg>K_321mL?dDB)@mWq*mboSS~j1Py>kz`&5x&Rx(P!hd-__3QGZh}DIZB(`mlRApl6nLGWZa}t_5-&69|S=RKi9ZHvp*;fQU~x*sh`Fq~@7Z zk{0y)DL|KVW`5IwgN0m5$&!h++eMVypnAA}Pp|he=fYNlc2bB4Ofi{Y-1Nj7tr%na zN-2RL2q_=&PAkWxQGZ!WkAQ)lMihOl)d$a38rkY>gTAg2U|-Y-&oYUek^Of7wFZ@Y zesCL0S_Tl7S}|6PAk}w()dPvcyl6r6XVdFp#z+zXg+&XhKUH7xg#>^DX(_0MIia52 z06!YQ${P$Q;NfS4oR?K!OeJ-35~EbsKU j>qb3hvAXUPpLmULVelGkVCr?w00000NkvXXu0mjfMk6)V delta 738 zcmV<80v-Lr1)2tsDKwnYq`mh4TEhST&OyzMDSJc!0000fBq`ZNH~;$jjw>rcL`qK{ zAFi&pT3uQ}jkJ{@)K`&RAAfI2L_t(oh3%Hxa>F1DM6rVuL%96^-*zQ|?R4zev~Qhi zn#K>_!%7Gd=lBmfTLfPr_P3SnQvy^UV1 zx;)RdU`KfrP`J!`#5Aavm8XLJoGL)$76gEHBEmlf05t^Q3;@yNK?WGr3!p;& z5Q0>(@L&z3hyZx+sZ=qLM~eUpg**(P0YyKYgLHEyqTFM+5gg}zjOZ}}WFo+OSK}n# zCP2MN@UzJIvrx*dZGTX8d`id>dP@R;s_{v0>KB6BAcKF?<8ak^ni1y+=uQ0sWt|1w zzG6yqi!%f-$;7}sLmQ^+RDe4{Ooli#5R=I9kra|mGw4{?XDMy$CZ;1oici%F19}CB zYzJ5tAxtM8IGKN2Uje4Vbc!9YbPtCBtKf^-X)`o^1H`)o$bVgHrY2dS-z;>(Q5B?v zxozls>;b6cbhZ)Oh9YWx2lO18h0g%IjA2?&Eu3uRn+5U7hZd|GE&x#+yaQGXcK{%y z`c2<0#5;h5m(#izNrM~E0G9@~qH~I7z*18EbPb4{;?_kgf$jTTPlOLEA?ng8?f|ke z{88`dL5@5-TYpzNa}T%}DC!+|3I1Fs^apvaItf0?@wyiPZbYIONl%6qF$wExs2aiJ zM)Tw~>^8tXFOQO*Rp<)f#e>N0Y&xaMWzS9vbV2AIczsh0c*)G0m8;-&E^GwSUke^^ zy3`*sb^Tpgen6mK>0M9kX9@iM_yX89ElGJ4w6OpH03!}%SV?A0O#mtY000O800000 U007cclK=n!07*qoM6N<$f}(LmL;wH) diff --git a/graphics/pokemon/iron_bundle/icon.png b/graphics/pokemon/iron_bundle/icon.png index 99b380a54315c44d9ab74965eace31e7d39180e9..df537e34d27b7efa7566238081b678864c9efbde 100644 GIT binary patch delta 667 zcmV;M0%ZMw1MUToBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPfVNklClS&BOa(-610=zS5E4Nr0W*jQOE<(UdsUr+$*X?47x8q!+M3M1rwM8%949** zMC%dRKN$n1faNX&DN%if`*!sq@@j?(X*gYhS-2 zKjtO8$d4HheSX~Iq05g)Jai_0Iv(C4AKpD4J^NlJe^zxj&v!BQI!mDpg9Ui;;vhQEy zix5;WS?9uZmbqxFwNf1CtV6l?%cE4=r1;A>`zNUg_O7tI{Nd}th_1+ep{s4qdnm5{ z-rMo~$>j}_2a7Mgk1mvsxnf>0bP0l+XkKyswi- diff --git a/graphics/pokemon/iron_bundle/normal.pal b/graphics/pokemon/iron_bundle/normal.pal index ea35b3b98..4c712297b 100644 --- a/graphics/pokemon/iron_bundle/normal.pal +++ b/graphics/pokemon/iron_bundle/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -189 246 255 +154 212 167 +110 110 110 +210 210 210 +161 161 161 +8 8 8 +245 245 245 +141 36 22 +194 54 33 +217 95 85 +46 109 165 90 194 255 -255 206 65 -205 141 41 -123 68 0 -0 0 0 -41 36 41 -217 69 55 -255 250 250 -142 43 43 -65 68 74 -79 30 31 -174 174 182 -90 93 90 -65 141 180 +166 129 73 +255 225 115 +178 228 255 +102 30 12 +48 48 48 diff --git a/graphics/pokemon/iron_bundle/shiny.pal b/graphics/pokemon/iron_bundle/shiny.pal index b27dde2a6..818d73de9 100644 --- a/graphics/pokemon/iron_bundle/shiny.pal +++ b/graphics/pokemon/iron_bundle/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -189 246 255 +154 212 167 +80 89 98 +166 174 182 +116 130 141 +8 8 8 +218 221 224 +116 130 141 +166 174 182 +218 221 224 +46 109 165 90 194 255 -255 206 65 -205 141 41 -123 68 0 -0 0 0 -41 36 41 -172 170 180 -197 198 189 -98 101 115 -65 68 74 -82 80 82 -156 141 148 -90 93 90 -65 141 180 +109 116 132 +181 183 192 +178 228 255 +80 89 98 +48 48 48 diff --git a/graphics/pokemon/iron_crown/back.png b/graphics/pokemon/iron_crown/back.png new file mode 100644 index 0000000000000000000000000000000000000000..a3a513550342d1eff07e07eb2e029785a43b140b GIT binary patch literal 765 zcmVgw=dU}(a^%J}&EijtZ$Z5!~qrTRx_cMDQ^R!?}-@fZ>(mOoZO+ppz^U|y-P@9695!lC?W3Qn_w2Mj~2WqIRHeK+)lYp%p z9w+i{X(Z>?5Syjcj5@6~YL?EbElR`oaX2KNoF!>mw z2yv(YgF2vLni9f$O<#a;1faDKL>nSCp#&+!wi~p*ZXqmakf8|1(|N5fI#!7-ElLPh ziy@>^QVxn)(>!1Oun-DBR@PPkfG=DqrsE}ml-9M#7XUt(9XVo~U5fTCOXlnWpYWFG)VK)9aCK|slF0Ix9s?NxvR zwow4T0|q7B0oajoK#kL4#{gA;093-zKD+@owjmXLR!gsQ$a+0s61J|LQjBte!p^1b1+W)@n{|}L(tZZufgH~J3>0Vz@_PY6 z038YX=8cyZ2?LrU5SRo2I$h9*MPp_g>8rh{QfuzEk)8m3t7sdk2Ow1J8#k03ItbDc z06G$ZxVSAW0000G zbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0009KNkl}Un+3T4Sk-?oi3A`A$W2d#Y#Hb+!T=F-HzEhLMq~g7$r5-p1-6+C zP%gZO0w)m*oUfadoh2v%>MeNym_C+4 zt<&8DN|d^lKoTX;0E}M&{t7_7E(G?o$mOukg#1<5^DpN>P<;ki+Sv*~c-{-T{j~vG zZ1P)BlT2 zrtBiA{=Ne~1K3Uy&f`u<7e{XTW6>6|J7|Qs1`GAUQ6rbr@W(<0ls15q^S|q6d<1Yd z-tUAJaQN)H1>hy?6W|h_xkHSvUvbVCzNc-i&(+~R@y&00#CO4OpMi|z_TKG!8tQ#I zJYo#@wY#c!^ZYRyOxYhPV|+gy@Cq=Ku#N8F2nX^RFgF0`$N;NCPXqn|D0{~~I@aO) z{!woAivy0$>(A)paACu_IHBb9on^RlIFXhwF?lrn7qiSQT=SOt_y7O^07*qoM6N<$ Eg1mUSY5)KL literal 0 HcmV?d00001 diff --git a/graphics/pokemon/iron_crown/icon.png b/graphics/pokemon/iron_crown/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cb127c82df9ef226d11eae2af6994c716a57cb08 GIT binary patch literal 461 zcmV;;0W$uHP)Px#Fi=cXMPi(Tb8~aOy}kec|3PY$Vw9w$#sBVeoYi7My`)<9<|+2}tku5#K>{wlk^le!OG!jQR7i>Cl)-WYAqYfw5UA1v{QuvkQFk|S(8?i)tqMo_4I+d6 zc>G~F;tWVp@7zw;kS3M^JwLHbuhmdp%dQWvW>R%iJ^&MGwTW$e)S|5kxLu0~5n~;| zdRa7Ip!-WNv;ZV>;i4=ZaI*Cvr;89T;JOyVBS*|;_%_k|Jq>b;d4bD-W)ynGK$ug# zbfD|WFaqF)d7E&dJK>CzrQsGVOgSJBW137hZ+io102p)9C5S$!IjNjL;QN@eCyOz1 z-T}Yvqjc@LQQIv6`bVxjb~o9pp2In`-O5pilHYWz^U3jBgE;8JAa-@!hrh%dONn6+ zaY|mnD;`Gp!`47d^yCjXTFb#7u(9R4Kiv9o(!Q@xeYJ>)Pp?GNemU;H8I z^rt^$z`yW^c>O1Tn6H2D56{%WAI1hugV?{2k2HucYYrI&0c`zz00000NkvXXu0mjf Dm8#OL literal 0 HcmV?d00001 diff --git a/graphics/pokemon/iron_crown/normal.pal b/graphics/pokemon/iron_crown/normal.pal new file mode 100644 index 000000000..2df8f4b6a --- /dev/null +++ b/graphics/pokemon/iron_crown/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +0 163 172 +96 240 240 +210 248 248 +8 8 8 +179 146 50 +122 86 30 +130 138 163 +240 194 19 +1 68 78 +19 163 180 +59 202 202 +19 114 130 +60 68 78 +202 202 218 +162 202 218 diff --git a/graphics/pokemon/iron_crown/shiny.pal b/graphics/pokemon/iron_crown/shiny.pal new file mode 100644 index 000000000..aaf724e6b --- /dev/null +++ b/graphics/pokemon/iron_crown/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +0 163 172 +96 240 240 +210 248 248 +8 8 8 +171 172 186 +50 60 68 +130 138 163 +234 234 240 +96 96 104 +194 194 202 +248 248 251 +138 146 154 +60 68 78 +202 202 218 +162 202 218 diff --git a/graphics/pokemon/iron_hands/icon.png b/graphics/pokemon/iron_hands/icon.png index d28b62a6d0e851dad8d4bb1c9fd5bd9d252907df..5fc933dd96430e693e48ef8e9542ec95244b8f37 100644 GIT binary patch delta 838 zcmV-M1G)Us1C|GnBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWrkx4{BR7i>4l*^9nFbD+$I8wZU|Nq-L;74#?vz>dRwA$)Z2FLBxw*9%w?B!>R z$n2<3h!tkTZS|YcEiMTlGeL^Oc(hyuzs+NKsFqOAdA?8~9}YPl*=2QXq$G2}#+ z8lZ&(x;r3j%CzqbptujrCuUZS`~=7W_D_FY7y<-9eVu5?D8SJviXkl}?oq_l6Ydop zKwQo)n~6{FCE5a_!ZQ#hJT1GX2f^d3N?QsD&*x?uc+4XwJVtd4m#qdaOh8yl!FHwP zwF&_6@QPh@_C`3c$M$$0gkq5^p*8k0=7Okt0ZjcQV8fj7gQ3eJHXO+k%Qhs)kK=!S zH0K}F@@t$)^-cHyaN5de{`&U(N7pY;_~wThzxkmX=ED!oFsmOHpc!WI!zz$wnCyo| zAjvS(4_P47Fxd}xf#9vkepm(44U_$l1#%iD`ymTt80O-KERb#(Nq%?~Nb55@G{jdsT3L^VqeRqc-rXDITz!b!b9;P5(^)LkSrH6i?|4}{s0CGbdCh08| QV*mgE07*qoM6N<$f)^Tx(*OVf delta 383 zcmV-_0f7FN2hjtNBa^cMJbwTXbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0003%NklIDTUR_*gC_FCEvwkaI2z z2U1F)9`Z6G3@P*)F*#86FkJH3Cz3RJxOWEXjx)JThA3eI%!TFXmwyA6uD`+G)7@!K zYMmo=hEQZgT&T5%0|HO43L68|JBNzPC5xLyfJ>7B)fjiiOiqK=qcgZk=^G#Dey`X*`M5O5MYY6q(0V!3&t10lxK`eg7@3XroZ51n5*`;65^uC@GTaG&_n z$~eI|-PqwK?7x0g-*o1~t#A2oC4a&P?D_BjWX*>gAYbRhIrHH~n1>H@17yNGA1tmX zfINKQPDZi;AT1xHBB0;9EgvdCtOrQX2dVpe07%P+1wcAJYyi^oVF8ei4;z3qe5e39 dhWg`tcmo=i74Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<00D+cL_t(YiQSb;jsqbKM4?v}LazJYcFG1i80gM!G#Zpelq&oKUQ+s% z1>jxJIe))f7=f00U8ne#t8l3nbHMjc!CSO)6<@G0 zqo5we<9iI6Jc=8ckSp?0oo(}3|1vG=@z+8k)N~}Uy4VT(bQ-5f(sCWtyPK*T8Xukja^OP*$bkDV$^op6B5ui<3y({axz1PgzRV7S03MnOW1 zktHZ7$OIdnQq8dIs>4jRC3+C-euBNF6fkVp&T2=7zBH?V5(v}m2vp( zY&!%JG+nfY-DXs>);C6Ma|yTOgK`FziYZ3FnNCc}A(T_Y1F$-NRywhf-Qld_b!?9p zK#%P+{@4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPfoNklds!ih*)s6`iylo!~V1YNeXQ0`N z@OBDej`N|&9t`PS4|Ry#BpQA zV0SMThBy|g_BZ|)9)VGpwf delta 280 zcmZoeji6;})N>yCe7{%7&-Z-KzOzaQ2Vyl;Oy|NCL) ZS#e^=)f?-0R{{OW;OXk;vd$@?2>`qMfu8^X diff --git a/graphics/pokemon/iron_moth/icon.png b/graphics/pokemon/iron_moth/icon.png index ac43ad66ea5b66091904dd4fc20131a1cbd35fa7..b42f88fc0b2b8bee86451f9b66eb32450f6ff069 100644 GIT binary patch delta 852 zcmV-a1FQU!1nLHmBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP%?7bG^O2|Ns9%YLsG>q@>0F?sJ^gVnMy6TK48C_V%pR)oS*XDPm$; zK|w(RF1?Zf00Cu5L_t(YiPe9krL_@4Zelh(2-*zCEnv0s3R;#ttMhfFG5PX*9 zOH1TQFn=BtGLpiZLJ$8)GP356<`A^Wh#8*B~h#@7j~#57rL=5iMhL zlcQZ7nf2*v&U`37mdt#}c(A#>`B39w;zNlC$A^puoifjdxLrQ-!K(6nNC)8R%zQ|A zuuVhWd?@iS@u9}U%!e8|XBx0000DV$Ng-rONkE9V!dCKptO*(?D@#nLf~71G74R6tlr5`VWZBf08H$e^KsNLL-kXNU1@>*+L%Z-vmvuFI?BwR%M4h;Io3|6J}5t3-x zHemo@`;ln#c7NijVQ35v6KI#QET-)Q-~<>9$88j1^+J646Xd8hOu?yEGHYCN7s)J( zpXcbu&$?9wpR)OUor8CBdET6q4Bi!VBJwt4dsb6q~MRj~Ek4AfHfCmO&0 z{Eq*e6(}#AXRqum7rGa>&Hh4nrQZda?)Ee?-OYKL{c@A;j{ZXTHd6scqI;!32J#Kv z6YoNIzC|w%Gu;KO2k)SJIJ^n&S;M4zfjc(LbhmI9x;wZRy0;lhbhq;r?mOM>Eql=` v^5&i{ICf`U=xwHDp?7C@ZR%gL`={pz^m`)wE%-Pi00000NkvXXu0mjfk=gwg diff --git a/graphics/pokemon/iron_thorns/icon.png b/graphics/pokemon/iron_thorns/icon.png index 48391a50c774911b129b2b8fc3708f42cb97c37b..2c1e0812174a1e41d29338954a0902e1d832eb70 100644 GIT binary patch delta 790 zcmV+x1L^#$1Lp>iBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWrVo5|nR7i={l+A7gF$jZ~3b;gq_kY{knQ5CJGHOq4bJ#uD!N5e{>-Dpf`6NPa z4~DdC%^nS{HH|!_;CgEwaGeYeou;FX16i0+rF4UZsD-+h2J?6m!wDBDYM?}y;S;H9 zq=*RwB-nMr z>02Ec+(Pf5DsjayLG>=NZ6d8t$;;feW7j!7KxA;&S0fS0-N#TS6r!wQfK5ECDw1jHvF7JyuUnD{UP3ZwvOQF5GT_U9JK&+-_b43eeyHKZex zZ4E-YYGi8|kPLK&YG9;1=naT6uyGKTFe3D)acCX+ z`9yk{dks-V3|y`c!}YRV1z?fdZ`-Wu(cO=|TKRBqcvh4{G3})|vs9_qD{GtoZrS_$ zuG{+Z;rD#7ANX+U-cItNKD;|0uDSrS^I-?b00000NkvXXu0mjfz9p)# diff --git a/graphics/pokemon/iron_treads/icon.png b/graphics/pokemon/iron_treads/icon.png index a75d7f93c9c17151aa7241c1c2c62f866ad6f763..25e9038a69204d48b0cbce31bed1ed276c85e29b 100644 GIT binary patch delta 873 zcmV-v1D5>31OEn)BYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP%?7bG^O2|NsAcoJyR{N|g3W?sJ^>l=i)(TK48C_V%pR)oSKSDPm$; zK|w)jIel9I00DYQL_t(YiS3ljvcw<=M1wA}68`^hhi*vJJgl0{EN)#ENh&l5DrejN zo>|ztyMOKb-kLsX5UB2H3NxK0;cOnO_-gSr_(epK9{=5mY+W|^06 zO2$epOQc_mn=h)p3d8zHo&GAd7$tTJa($#JwboJ#C1NR1&H6lET~LMVoK+aRj|5Vr zS_n$-!q{A+s;Gw+C}a>EE4Z>?pCJ&v3eZMV!GAVEprtFYj}UlgNT5dlR0N}WCf*zT zrelVvk}2Hp)uBa^=`2{phJ&bC|K-x8!hhGP!SOs}?@jC2;Hb!)Hdg;=@3;EjzOn@$ zVo0C(V21%94}9QNQ)>r6ZhYXCe6SlI5+Da3dWFG<0LY3D1jv#P1jvdH0LY3DCqQ2L04M|>W;`5xAV882GahpK z36LEB+nsU643MkwB%pZ11EcX=;31FZ=Xm%4qWZjoE*00000NkvXXu0mjf8UdaV delta 424 zcmV;Z0ayP22EhZ6BYyxeP)t-sVw{76gLA#Tz5oCJy`(|*_9@k3LH3j>i+lfKO3m(b zod2|>q{aVgtej$ET0ucUS*eg@0000GbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0003n zNklFAV|9?ADa*`%-(hkE89VVb?QGY$tl$!GK_@r{y_BI1b z0h`vE%^3pGR#}-L?w|;Q0M*WYD=HztnTX3R35z-qo|p3^TXO4r!jb-XJmfp7+YTtj zbP4<6ghby>8xAe{&@`O0_XY59AcxS44Wvj-7f#yKAqDugjtZ!?`nqFlX#lOKII9kY zSaJ#b=1mSL;C~hBFD4w))CIsWQ2A+GG4^Z(D9-tze*7|hn^P_c42!V=67@iEb*__( zd%;h;hD@gC)b?kA+*J^p^x>(IQTR!EkN8A-3f}ks>z%sEhpZpu1E1tSmk$Ci^C1I- z#AQAx9^~RaAM*ddF8NpT!M~ReImWAeuw|+~$%i!_E+O+_jfd-eSf1Ap%!e;7m?O)t S1C0leBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAsT;__Db$^oc5IVy`)<9<|+2}tku5#L1{UCTL1t7h)G02R7i=glBWls>;6K??<0w`MmN?lb~ zMChum5t$QENjaVw0VVK}vb$!(Fao7fcd381x^^7s528^wui`oZ;Hi6eMo4W0x-)<1 z>Nrxr0q7>)G@`e26C+?E!d4chndvbF$+)Ei$nSmJL_PB|lM|6T=tr~$>dfTTV<#h! zoyaa#5>@Ia*`G6K!hoCHR zrk4N=Vegr4NT5T$Gu*aIf5-26^7$r#+YLe84Y_I}Mx)*Vo@Exu7mI-LE_qx4>3=H` zyCQVEl^{+4UcwTfv%1+m074JjGC@V`)E*Pd&}o0LQ#Ku!z?~mpn)$#*gJBOa4Gt}00000NkvXXu0mjf9PodGcmPiF(JZDesEse4FxZ?~NG&=vHpCW_Ze=Ea0umJi>H*B$;R{&41}b9-OZvbnJB z=~7NU=lLNr?nI#w^R(9{tddEOU-e3O>BpAlF`Pf1D4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<009t5L_t(YiS3k83&Su7gcFJhl%oIt-|o()V`)vwV0#$MLSDR`n#C`r zf4m)rn1ALqXPqc4dkhu)Jwk>ayFrza1q|@nvbo^etd&()UAD!WFh4qxtqhgg1ZtK~ z0@G4Nd@-pPwLiH9zc%R-( zC_rL2s5R(u??HEi;J!Hpdvt^7|FB}nSC$$)8+YT2s;EADRj?`3S4W#^{vV%-A6x$* z->rWn=+-|1$m{w?0O{600tggxtbdLHqECTF0BLxjfbh5gq~W3QApl6*{xKg8JdF9! w@G#+nPch>I@xU3zd~iJ6@*&;fA$b924Dz5oCJL28s@l%%A^|L${~)nY-tq+0go zDfafP)zxbDlqq6jT0ucU0xrFh0000GbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0003D zNklFG5L1MuiZ%cLw>vLOQOCXQ12*(fNE)Z(On*XnD?r%Nk>E?vqM&&S zJeYl?=n4|(@dZ@hc_O9g2yh%H33B!Y{Ewx$g21fsevw7c1#{D2yfy+6gVl9{STMg5 z$O&YPhBkH-Mw3GU(M!GvAL%GyEYeC419=@ikhKTdc)}py%jU1L(K(MrG)3;18fpqC zyBaL0Wd4D>1bjT0&EdgU9u__7JPphNv03}~3#QrHEe9Dj8ojMzzh2*uPv?VN^(G%| z{df5w0pjNa&;5&hsQY|Cs`Z`^)8?h53Twm^4<_jOFvSD&sb2Xo#{;UKaLb2rGqprN hA2dJy`4E0QAD%M~9H~qCke2`e002ovPDHLkV1ls%yg&c| diff --git a/graphics/pokemon/kingambit/icon.png b/graphics/pokemon/kingambit/icon.png index ce85b3c190708444fe57895fc4f80f97f7a4743d..c4d91769d9bd0e2872b01ea4ced2cd8fdb74ab21 100644 GIT binary patch delta 863 zcmV-l1EBnZ1oZ}xBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<00D4GL_t(YiRF|_mc$?kMT5i)GJyT>ws=^nh#0H;^st#FJo$-t+kS4U zU;MllD1YyDsrV*pR4kjRG#Kq4RVxYm3ycjiOz7tVYb0FwET05bAn07&M;0FcawwBzCV1Lu=T-Oqov pH2w3R^PzkGQ$E}}UGm}A_5z`*AH1Wlpb-E7002ovPDHLkV1hl?mFNHf delta 489 zcmVb924Dz5oCJL28s@l%%A^|L${~)nY-tq+0go zDfafP)zxbDlqq6jT0ucU0xrFh0000GbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0004T zNkl4^bIDnn;jIcy>*pq ft_+0W&l<=Fkzg+f8j91T00000NkvXXu0mjfkWTP% diff --git a/graphics/pokemon/klawf/icon.png b/graphics/pokemon/klawf/icon.png index e7c232f1305e56d82f6f50e44168fffaff9047d1..6b393ebdfbdf32bb30164d2074b9d303e3d1c327 100644 GIT binary patch delta 687 zcmV;g0#N;t1AzvRBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPfoNklhQ|J$Au23PiRNcZceTL{7>ZfHo|W%<}U8oAyt zf?Q~%frTI9tu?yA+@tV4g^f*7xdjr(T^e561!lucgv7mzb6@~5ZU*6yA3sAy+|zFs z2L_3Zu2-U~h=H9!chu}Pg^#N~<8H<+Zux&=OFnEMXW*Nl1$Jm$Wyp|&^qtUqk2R@Q z01S=txv!JG3Ww`od$KhWmX2fvC(}UbdEe*3FOoKdWtUB7g0; zpXJZ@lm8@}=knjrhu_QJPULTx#J$R2lu7=0l)r3}|6J)V|4siT|2WbApE(A;0P+*d V7YB(+fL{Or002ovPDHLkV1k=hND=@5 delta 318 zcmZoOBiJ7U1m!t4?8sj>3^ z_P0EJyGx@p`)y5fHr?cvKiofI{p*c~8_fT4m~44JzfLIaMf3;rN|yWAG-9uQ;N+R| zC+(>V%VUpb!yMLAZih=V4&2c>~?(`~T-EVA?q6 zx8d^|(S!GH+Frf;J5lSzX|o2S+85!1N{jBSHrcqFIqK=F#g9*(K4Z3^{-pTaLo1hY z#O>zl>ztc@t*HEsQkb&D$(=J@L`+-mb7e;{d8DXacz32Zk8>AGfmEz7bJxNHyeFnc zO$kx*Y-|-Z{$>#G%~GWF0^Go@l{6Q|1*Z43{O5wI~RWSv0?xM MPgg&ebxsLQ0B}#6QUCw| diff --git a/graphics/pokemon/kleavor/icon.png b/graphics/pokemon/kleavor/icon.png index 4443cc1433f26af5b18dbe01e2496224c77ad72f..63d9653597f7c7cb9ecb18c3d69c83bf145b94e9 100644 GIT binary patch delta 354 zcmV-o0iFJ{1gis(7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&^R0VzpDK~zYI?UdaL z!ypWWn+WmleCAJgw(S?qpZvNeT%Q5F37>$@U4_JF^Ku24 zzM6>DsACGCRMt)DaDY+z0&Vp!2g2jmX7+$`K| zW+>6Ketu$@j4=RA!10N=9Tg;hBJl{gLx2Pg`?Afjr(k*(D-mz#l0cM@g(?H)x+CHd z@g8E^#{?&o50RWtE@BAw^zZoFvwc8e7WZ@t$c?}>0y5J7zqRe0001qplF?uE>Q5FVo3 zU-x~#&E|&()15uv33KyZfTk7!ZXA@8@0qVc9e4w~muxbO&h!ksHVgh@LeF}xN@9QC z8Z$Q9s;<@9E+gZu0f65=NPcs*S*7w$u3a)`lElRFqR}VoX^J{efDda(=g7& zY@z_tFV}W%5uNE$i3xhIXF{eBV*qvNEICBqLP|n5OpK1vS0RNAVr=(xBCnn&*(4BJ zz1OFqBc<9oB|+XE=+ll$UP|J^n}&abkAjX#a0=29LnlJqB;l0Gf#j%jt1yglW>uFh z(@`2AT5b6kR~hblCn%r)eSZYz)*+2~qbq-4v%3SPDMS@u)MN1|z?@cL z0mg-{5VQcpub1MIfiVj}JQZNVLXg)P7+!!89N0u)Ts0*eA~A;uj8p9r669C<5g4Z` zw~41=L=^-WwyNUPJ)!dg%-&}lBng`cjL*CjV1%)Z1G>lu3l3?KvDL)KgV^gVkq@@3 hz3{<&-TLqN_ySoTL?dithFt&v002ovPDHLkV1gcX+iL&- diff --git a/graphics/pokemon/koraidon/icon.png b/graphics/pokemon/koraidon/icon.png index 127a03e5d7f8ee007fb0a97fb9b470374b6c5d8f..4048255617b70d4e7a24ebf46a8a67e49dc2f83c 100644 GIT binary patch delta 893 zcmV-@1A_eD1I-7JBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWr$Vo&&R7i=k$rE zC*_OmK{W(3^9HNxNO5kMs8NJ$@;ip_ihUsglwCpdk+1<*Q8h5Otri*>m9UHM4OcQ; z?u1Q%5f81tSAw4mFR~Tlq8-5x8PB;C!zX{E0DF108Xn{$0fqt3W-6a?NH}r)!jwQL z79=JsRJU>Z&VN%N0WZZpkJDz2EcOP$Vgxl;m8${;#N#_woF_6rdjJmIYzfOuHY>T{ z>N19DO#^sHJQHEm$R)-QvISgQrFe8tt#^?Pgorvg2yuMzI?$taDkKO1NYRK752Jr6 zB;ctY=TyDB6PTf4KEt5^2*Gd_RL9k;s*M#K&7n6t>Ic5wTZM>C zA%myqLmeu()Sh^Wwfk=;b$8R|vs@T$uqOuX^X%0>S$~la!w_fr(3^Lf4|jLZ^T98| zG#?IU%=4jl_cR}RchB-+oZT%S%Ew_S-6Z;anAv~GhlTyGd|284%!h^juY6e8zsrXw z`!gRN?azEz+W*Xlh5gTbc(Q-Zho$|ye3;q)%7>Nx&wN9)3>%4-kPgNF|F`GR-L!V>bPxA%52GMe*aYK5xmp21j;ErpWS_dw#UUJXmL!-cVM#(2lI)IlyM6K-JYP z#oX^%*#*J8-aw-WXnzngN0uMzJHb&uXf%ou7>~9wZOUU0ql%W<7#?1Da`-V}+|DM} zz&J>eJQ+fr+!Sd7!zNSX>7^o5DV4`2=aSit`p$K|=}aj6u9<3m;q{|Lh^xIz*pd3@ scw-3;+NC diff --git a/graphics/pokemon/lechonk/icon.png b/graphics/pokemon/lechonk/icon.png index d368c427bee854fe14b50c0de68e6c8460d8c8d0..6123d0773a39e195f576c859a9905dfe0b3adbad 100644 GIT binary patch delta 641 zcmV-{0)G9k0@MYNBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPf5NklK ze;cTt-}MuJsPD1EU(E-;=M8@~A70~+BmRo4cjI3KR{Yg`IO4B%vBSTZ504P>znBm0 bGx*;D7iSV79Zf&^00000NkvXXu0mjflFce4 delta 219 zcmcb@x}Ir*^5o5ow)FxfL4Lvi(ZE^7O;Z>c80LApIEHw1zMZm>@2~=o%SMS9<2!%< z-@m4ob%|}x!dC%X=O~HU_cR~TPJJ4G_(W)=jfbGqwg$%j+l%{h7hYCxN;CMFpKoZk zAwlMqu3E8xL4tiU(+l3Ip+*gh7OlM|_LWBzopr0I0oneZ1MmWn7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S?ny*JR7i>Kl+kJg zF$hJ6sL{#7_5c62CNPCUZuYH|vU&BO=4R$x*FQX&$SV(JmyC2mR5>Di3@|{|!$U^U z7L$;03AP1LL%bl?!MeHYr1nJi-c4E!BK4QLh)aj+mPkXJzzZN3tr%NtYA~8*-s7&Y zJB?CNJJw_DSE!tSU}D&BSSy+VmBhTmz5}3EK}=%5WsNAH&p}3rlxGCHh6vDDbrAt? zhx!6e^+mh^2JYjCQEzcMK&T%c sfw14_5y;_#DSsRVlJZs{f71_Nk|z;$t-@Lq00000NkvWtM6N<$g2d5)ZvX%Q delta 340 zcmV-a0jvJ-0-ghq7zqRe0001qplF?uEa7bBm000ie000ie0hKEb8vp&tH!u!vCMY_}BISNCI)+%Wti%M-m8mUR%8CJ(3Au{jQtewM8=I zpG$f9^>QSE->J`Q-9vK(!bB#wbpc(|`f|2?i*S zmSFy)Czv?21j8RPAPI&6J;D4(PcT4VAPEN9FW>}&>^o3``GTYboM8ST4B>Z0OECOj mKncbL+3DZ}gB*r5P9Fe>{4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWr7fD1xR7i>Kl+6wTF$jc(O|~b7_kUX{+ge+wUc6`|dz%SATlj9bp9+1alRI?l zQ`TWib%LsbTb|%k0w7>`9-)}Y9AqCvUFYCX)0>0DbPk3~H$!zY=LVwE3`qtrQHr<$ zLHE|ruG>g)3V}6mI^1!_3Zke%SB^}-+C+bAVscbX`=szP^S{<|i(d0T1j5JjbhWA7z=bm+m>V*o;n%Eee4(aA0LQM<0HYt z%#Y+Q7JejnnEA0g?gu|Mco_WH0A}zbZso#{3=b1O5O002ovPDHLkV1lZ>M#2C9 delta 462 zcmV;<0WtoZ2A>3wBa^cMJbwTXbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0004wNkl5JgD)V(y$@UL*`q=}G2aDwue%Z!ibhC=pb|b=&x8YoOJ!z7fS$fL8e`t7-cpz9ZQQ41 z05~X1Z3p3i6Yx?R5r1)#Qo-d`YO|2tCOAHpL1!L38d{<=Mb+;<;;)0dv|=?)49xRy z)|Go(L;Kal#vs!lx;Ko@X?O&J2p|7jAiyv$fk4Cj1mZFShIt7D8DP$vSGdg z$>YBWWM`O{KtPGNK!9Q10zq521%eH8=uaRqTwlXDaS22i9Ya(Amq5Hv7{3LA{4o=l zKn70$e9cE7;g1ab1cLps3IzLO5eW9jB9P7S{J#SE0~q-wcZ$~9J^%m!07*qoM6N<$ Ef&&ZHU;qFB diff --git a/graphics/pokemon/mabosstiff/back.png b/graphics/pokemon/mabosstiff/back.png index d572c7cbdb4554aa6d037fcf4f8bb92a39d799a1..057fc137a51f3ac9ca65c73b6c5e965ebd93d213 100644 GIT binary patch delta 573 zcmV-D0>b^!1l9zQB!4PUOjJdh)Tcf^HMzODfq8-1+1U{h5hEiS2nYxxBO_8xbANG_ z__9VZEk=oGBTh+f1ONa44s=pZQ~&?}|NsC0|NsC0|NsAJ!ZSqx00GTOL_t(oh3%Eu zj>8}fMdKnCBmVz;$6yR5Ap@C8^OUQqO{<&}W0oGrn>YU)Q-AUW{h`nY{KWx+J-;_*%37UV@$(C4hig@fM@T7Q=D_V{HOBPc08nnxK_{%$PQA^&Y_`U zjJPsDTYKRY7JtNr02-dx0%$=V!O8&8mc2v^*l;TVXeU4bxEe$-??PF-vTetRz!w2d z1&UVHUkxnq6Z~_Jvj9;9coINs+zoy;_yJ$iGKQHza9(n^d=+E^Vp4)S^s?OVX^0|7 zxrEdwLHJ+kEQqp{6A4@^z{4I7F^`)C$#;Qo1uXc$bAMMhlM?vSK(plQF3g5O;OV5+ zf;g#s1z-e9!u=QC$Ezlhp3*cj03-BtyL2%p%dIWqR0Qw)%f=T5q zeH;7G1U3Od-#mNpLIB|;NLrAlBNznXT&~k!lKOTzOW(YC^KE_rjszoQH1~SI00000 LNkvXXu0mjf;rIxZ delta 567 zcmV-70?7T=1kePKB!4haOjJdf(4b&gU@$N^sHmvO$jEqrhzJM>C@3&MKsab%aG;Q= z`0$V*7#R4-fcUUTh+r_AxM4;B000nlQchF<|NsC0|NsC0|NsC0|NsBZA+nSJ00F;A zL_t(oh3%C|mV+=5Lqj>ZEbf2cxCYNaUT4!AvFBO&Jny0h>?OzWcP7*=vYf zLiJ1L+;?(&3A(Z~xnrl4sAi{5Dany5Kgh4B=P}SsgDwEsA4&igz;S?iaVuN2`da{i z6_7O$e4qy~5r6pT0w5oDfDt^2ZE&0rByS6#Mh7T?VI1243qk#105tUk4`gR>?=JzY z!9rl2mJC2gs1eLxZX4phKqVZN;7imZ=%5Br01{6bbWzQyTg(6r5DI`NKu!b?Vk22g zIKTrG0Oj;ZGXMf;Ya4k6kUly2C*Q{0F4aZA(FH@yV}IBr+Fum*3P>k@BeZ4`A$0&K zAV05f@_TLpfW3$V7(Ji_xB*y%I?5e*ZXo_}4bTV!Af5o+e-7yH(A;4FsQ(rK2Otdq zKar*ervUBXegULg!2Ccd0H{6U(BPm=KYVQtd5K_vejU326F^^iSo{+pEdXLAxZ)XL z4sZ*=>@XhzvAl}yFS6%wYk(mF4A6STc>Zm8^ytw)=>v-8FGjH3dRhPg002ovPDHLk FV1fYY_h0}3 diff --git a/graphics/pokemon/mabosstiff/front.png b/graphics/pokemon/mabosstiff/front.png index cf91e34c2957c292aedfc9db4bf931cfd8af7933..fd5184debe198a8ad90df14f74ab70f299259b5c 100644 GIT binary patch delta 844 zcmV-S1GD_H2jd2iB!4PUOjJdh)Tcf^HMzODfq8-1+1U{h5hEiS2nYxxBO_o>MuBl? z__9VuJ~fGGBhj+~uK)l54s=pZQ~&?}|NsC0|NsC0|NsAJ!ZSqx00P=cL_t(oh3%Em zcHJit-H`+s+tkfzAGd0gCbj1xjRfAdzxa#)HGiD@Ex>_;A6 z)6kgKaUm}BPk`pF<&Nv!u01 zU}L{3+@%vk%6|!8w3mY|9!`2j*r#lW6xIn4Q49mn(c(6fWlDX4_^4siXiE0kyt$H;(iwv4}d63=iLbaxE+%S z^)8EhOaj~soV#L(4S4H7WEPQ2(Pq&Hbk%Vt(`PQ{xPKB@tbqZXQq%!vPQbty`V1gl zNXR)R5F*lf;R66Alek7Vz#;`K{z@<~6`{Zo0CLe3J_hVj<`#sgGrX(uNZ}K}#=NI! zbDs(jG5Kue6MAq5+*9Bf`@TtOx)IA~=6nZS38;M9c1dCo7W#s$PK=l=+=-&X;lMnM zsIAt@Cx88Wf4yFOMq~-@4nSRx+HL^I-xok5j6G2E6Ck}`Z%%gr9fX>=&VYkp7VuSX z0Or~c2HevDv;d@|l?Pxr01E^_y*Ud2Hd45jFpZG-2|^n%UI6sT5Kn-41goSYp{=PW zz{U;WJ0V>Y$TpNVwhEa6Bmnk;-mR1N#?#=yPJe2{M`)8 z14ZCzVSRZ9h#?h&O(RR>qz(&_wB65u*^uT6^RSJL@TkA@wh749n)vhJ-^u^t`}hY^ W2`|s%ztx!l0000FeoTMKsaDfK!A8? z`0$V*7#R4-fcUUTh+r_8;AcPp000nlQchF<|NsC0|NsC0|NsC0|NsBZA+nSJ00SXO zL_t(oh3%E?cB~)_MMWebHf`VkZJQ6k;5bt|>;AmyOk0(+Ie!TOm*s!_%Sfxm+wzpR zEtgW#TMUzLiqQDGkF+(tn<(jzHYR=c_!DByr2+DmkGPKzKz`KcT<#(Skkor}|6sAM zUW|K$w5>(*SXGT!Jp>|*TQ16$9RN^c0Hk|}locSou&ySgeW&V1R(J7|AzdW(lG(Bp zQoC975`@jgZ-1SUyl%B(>BR>l?AQ~rOv;m;qV}PFC_swlgaQ%ZjAD@brd|+0v%s!l2f*Ws$+NyELRnx2=-v@A zj|!Xs9_Jj|hLT3G;SBn@(EkRII?m%Q$9N&mjDNv2k|3H0bSBUQ5NB>e2;_1Btl`}Y zC&D-uJ3zLaFxU>P7O==UvK)k<>8D!1)E;Dzqlcwj0T4sc;o&KR>NllJ7kmP6Lamqj zy{qaAzycw^ikEuR;4^@{VTJ)XmEbV&5>T1006R>Q7Xae%2&b+mcZR6h1H=Fv^B+&H0Gd1jO!H6!z|fQJ-FgWCX_Y!>O6}d(M`_DfYb`kI3E`sF zr*YU0XMA{I<*R+MpEn#DKx*}10NZAmyXCRi3rsmpCFG#5&k2{I?_dGcz6K+qyMP6w yF-xd_Zvq|@YTtMCa?}sNd-`S6`fdH)_!R+~aZNdg7lI7{00004Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<00ALML_t(YiS3lZj>9krL<2@!DM;}Df4hUzDgm=Ot#T?-n>6!+jn$cL z`__M#qknF78iQ{TH|RXZUxIH5OE740sea7A-cZ-iDj;Y|ImD@p$mzaq!vzdg4h6bl&Yi_P8N+RhR}F>UeXe1 zegHP-44_Ogr<*ze{1T~0rN=4ZgHy!G)()|*sDIn+-RTnB@K{RmZF!49g!a+rpJ!Vt zo}o>Bb)oL{Z#_~^+P~K?_V0*f|BlG^w`QPh|0Y1P{nr3V_HP2D*nbTW*ndCmA5{Vb zd))Wa{%e3#`>z3#?B55-)&9N)NU?tx5Xt_l{$@V*Zvy0`{Bn7yegXI)7q)2Wwk7}o O00{s|MNUMnLSTZ&t#p|H delta 421 zcmV;W0b2g12EGH3BYyxeP)t-sVw{6}dwadTwEzGAdz?y~%}TU`TJFV*#jGjz_9@k3 zL6m#V#iY&llqq6jT0ucU^LsW*0000GbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0003k zNklP-3e5MIw68m zu<0V*`>Tsh>BpAX1EVYmu1GaoYyjJ6G*L3hfHiwsJdjF@8)x7RNpmVc8E{Y^gf-p~1vuCDbK#6BPL zKK0CO P00000NkvXXu0mjf31`o} diff --git a/graphics/pokemon/mabosstiff/normal.pal b/graphics/pokemon/mabosstiff/normal.pal index 5c433266d..141b07dea 100644 --- a/graphics/pokemon/mabosstiff/normal.pal +++ b/graphics/pokemon/mabosstiff/normal.pal @@ -1,19 +1,17 @@ JASC-PAL 0100 -16 -152 208 160 -96 88 96 -48 48 56 -168 168 168 -200 200 200 -120 128 136 +14 +154 212 167 +62 62 53 +185 185 185 +129 121 129 +217 217 217 +17 17 17 +35 35 26 8 8 8 -48 40 40 -64 64 56 -96 80 64 -128 120 104 -248 240 144 -32 24 24 -248 200 128 -248 176 72 -136 96 48 +35 35 35 +96 79 70 +129 113 104 +248 178 70 +70 62 53 +137 104 35 diff --git a/graphics/pokemon/mabosstiff/shiny.pal b/graphics/pokemon/mabosstiff/shiny.pal index a3f922e95..35e7107fb 100644 --- a/graphics/pokemon/mabosstiff/shiny.pal +++ b/graphics/pokemon/mabosstiff/shiny.pal @@ -1,19 +1,17 @@ JASC-PAL 0100 -16 -152 208 160 -96 88 96 -48 48 56 -168 168 168 -200 200 200 -120 128 136 +14 +154 212 167 +62 62 53 +185 185 185 +129 121 129 +217 217 217 +17 17 17 +35 35 26 8 8 8 -40 40 48 -64 64 56 -104 96 112 -160 144 168 -248 240 144 -32 24 24 -248 200 128 -248 176 72 -136 96 48 +35 35 35 +82 77 115 +127 113 149 +248 178 70 +49 45 70 +137 104 35 diff --git a/graphics/pokemon/maschiff/icon.png b/graphics/pokemon/maschiff/icon.png index f5127dcc42b0a3c74d8bfa263ad0cf5fd706af62..cb2308d15b365f73b4f6f1ec6952033e9c743cbc 100644 GIT binary patch delta 710 zcmV;%0y+Kn0^J3WBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<007uYL_t(YiS3lV4#O}AghOM)P>Fm0w=MW59l%M|p-Y48iQ{a`x^LU= z`p*Jz-hZ#PoGDO>E3oo`wX2GVE_^WhrYJR0fVI#2W{w8|ssa(_CeRvPKxBhvp-mL~ z&q8FP-j{d_kP^|pleT+sqENN|gKSzkv4CIQJiLYMh|S*x^x5^NAUizx+;!KF>LY;Q z3=j^G#)mBaZ-5vdviMJc3_is8Pk?kjB=MgBX+L~O<39j0`4AI00HV%^JpK(J+W4@D szX8P7GX4V~nfdV!-&cIN`me9*1*F^!7txwz8UO$Q07*qoM6N<$f_mmuQ~&?~ delta 349 zcmV-j0iyoh1@{7wBYyxeP)t-sVw{6>b924Dz5oCJL28s@l%%A^|L${~)nY-tq+0go zDfafP)zxbDlqq6jT0ucU0xrFh0000GbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0002y zNkl2z0N{rNk>M(i-O>On0FvCc5Eu0pmk6@Ep*a#6<2_`G#8YTX@SbK_^!k{9 ztpsPxDpWvb3_Aew$2H=%OqO{RlJDa>@`L*R2(( zrda?E?#B9ty;i*j?8H0b;^O`5BkEW4VGj)QVgG9l@*!X5LknQJo#(@CInD=O<%72H v%m<9}VT}jY6zcO~jR%dwaNDmJ-x&}OB`q4eh3jxX00000NkvXXu0mjfr>3&J diff --git a/graphics/pokemon/maushold/four/icon.png b/graphics/pokemon/maushold/four/icon.png index 97c2d708268e363ee99f827f9e611e2b93330ccc..fc6684d61ba910ef8f3618782db98730797e4fe3 100644 GIT binary patch delta 773 zcmV+g1N!{+0-OerBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP%?7bG^O2|NsAcoJyR{N|g3W?sJ^>l=i)(TK48C_V%pR)oSKSDPm$; zK|w)jIel9I009?CL_t(YiS1NL62mYEi}4-)|Jwp~%;qGWPJ1h-Iw%sMmX70JUo0ZJ z?*qUcLVx-Laly0z1ie!QX}=+o^t*y80HuesKM=;m0BLc712`sv27MxgtuMKSm;|ce zj!o=U_tFr@mnbfzZjsCn$fro_>w#>Vln2H}!OX|MlZ~KS1_K%ZC{d zdqB>IV1Egaln=rF)6p&;g8j|WmJh-H&e1)v8DcrQdA6r~@b+H-pAX*tq^9=yQ0-sy zA?&l{L$!a(hiw0n583{kd`R}s`LMYbF&{4LlYDpqCovY?W)-pW00000NkvXXu0mjf D4HR;d delta 347 zcmV-h0i^z%2K54vBYyxeP)t-sVw{76gLA#Tz5oCJy`(|*_9@k3LH3j>i+lfKO3m(b zod2|>q{aVgtej$ET0ucUS*eg@0000GbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0002w zNkll2 z383s{0GaMu-AkE>U~|?>{qwGuy;AiqLLytQbQYWndXbET!dR0FCnp8~m+V~Jm!=-! z&V3m8(>RU_&cG$1lMcYH4=(+uG0j~m0g=@|2PNX<7XRZZI603e(!$^JfMQBl$!(}Q_)r9N`E)(cpe86}z?PF4T_002ovPDHLkV1n3UsgM8w diff --git a/graphics/pokemon/maushold/icon.png b/graphics/pokemon/maushold/icon.png index 728aca58a1c573be2e9de5008b075d5209caa0d9..48cb9d2c2615608797b45e1923c407aec3258571 100644 GIT binary patch delta 788 zcmV+v1MB>#1D^(v7=H)@0000?P=%ZT00D$)LqkwWLqi}?a&Km7Y-IodD3N`UJxIeq z9K~N#r6Ls(i-nNgNw7S4z7YA z_yOYN=%nZ(CH^ldw21NGxF7HCJ?`ECLZiY|vugrSHOolFV}D{cw<-o+5yTJzh+sfs zrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf*>74h8L#!kz#OK8023?T& zk?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLjvch?bvs$UK);;+PgL!Qw z&2^fih+_!}B!3}7Mh#_DU?EDYMv93P?Z-U)BaS~wE}2|qFmf!Q3Kf#$2mgcL-I|4| zNjE7N1G-;q`y&Dbc7bNyw!e>UyLkfmpMfi_?XNa~*-z5zZ7qBR^lt+f*KJMS11@)f z;U`@(BuDbo6bc34{fxdT2Mpc*_YUWBQVq#iBK|yIbeOmwk0UAj}K~zYI?Uca|!!QU#8*+#L|JwmcgOkv9r)h_x zY0`v+JAbI(alG}@5|R5p5#1@Q-xL>6dvx&CXmw(7b4nZ^A~Oc zx5Jf+ErV2Kz0+>lr?mg4v&c8HpUs|+b+FsH#ea6RHdy?6E>2wforsdN;{_jH!MFao zz6VII3_f%~NV_e299ruYXyf)7*tA<@ByDgKdY;6vRJv+x1qKLp4J zjDG_N@?nj?17zXDw9gKZ;KLSwiETL_lK875@F9)=%!e%gz=x|B=;_VM>H|%B6yLvi SYz;F20000OV1ZP1_ zK>z@;j|==^1poj5Fi=cXMPi(TgM)Luy}kec|GlI^_Vy{&Vt+yQlqrjQ|6)qb?sJ^~ zw4|iP|7xt9Vq#iBK|xumkYoS=00Cl4M??UK1szBL007KML_t(|oZXU53c^4Pg?oe0 z3n+~H4)*OQ_rFGS0E^jAOzGI*tXv49+2!MrpT`@9uN7Gb6zi)1$eo}#uu$o|m=QQY z%79`%Bs7^auz#$_Is-GNZ0mEK%Z*LJQyZiuZ!K__29mepbNR9Zx&f%D!pnXkRdM+S zQX5*OcymW?YgO|koZ~c7BxIfA9shT(XOrU{HM25~r^A<;lGqgis6bXfHmvk_J8S9H z)t{+<%E!>>gZg|>pO4|~d<59?!B+%m`6yw@hx73O;}eX)-}!>TDF6Tf07*qoM6N<$ Eg7TBFUjP6A diff --git a/graphics/pokemon/meowscarada/icon.png b/graphics/pokemon/meowscarada/icon.png index 5b798214530a332cf703fbff0535506995807017..2a6d199d2260656434a8d5a2c6f73e86fa3b8769 100644 GIT binary patch delta 718 zcmV;<0x|vW1D^(vBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWr8c9S!R7i>Kl+BKVFbsr|)=7{O&Ak8Hb{qev^8^OiC6Hm(^TdFqoEm0A0~A_$>04UP522JQopBa^cMJbwTXbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs00049Nklu$p!426RVB9bki_kY{@ILks((`=LaW71F(wfNu*m~UBrGH_=vH;Ov}iWwE) zmiq04hgGeesgzpcCPJbM@m1#iLk{A@w zw@aXs1mW(Pnp<3;lPp$q?}in)WU)oW+SiqDw`-PY44|wb9#!RLb zh981>vV6U$+FBbGEPt!e#%JrydQ!xkd6=VNFbcMr=*J^8t^!^R?$h}QE`sv<^0@s* z;5%@0{qjrq?eWit4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWrZAnByR7i>KRLgF}AP@`lI1nWK|9@K#WH%e2*;cAlRVs&8i;c&_5O3R;7vACi zh5-RZz}0_FbQDk|)mjm-kAjdQs40;_5t;A}IU~iYloDH1IPpTQmC4lgvy}Px6Bmh6 zVR9}(gH=^?PR-=xk?mDcM^2i`qDUiTI+cGU3;p9Bk|P}2`p%;=J&21pir|R={0J)tWV)_Z-9$Xg&uL3d9Y8Q>ujCrORjw0hu*|sic4L zmKq@rC;m;Mi-9%?gg)<>Miva_I>|WJZ#fMp84?H zxW4@%AEtyD^I=MeDIa=5Y{!>ymk-eRcyIE7jQf0OpZ{$>^rw244~?|Q2N?-NKFC7i gk`Dvn7xUo*0K_3=_v#BI00000Nks-uM6N<$f>)F+|ZIWPj?~+@WI{8c>F- zSt$^6-#A>N4r~3IO=ZwQ><~nop{KP`7AZJueIlEkVb#!FBDQnqcsL)+H9$6lNF0z^ zv*>F?(^W%fKs2Fujm%f?(4RWsQ2-~7R{#f4DyRv#jP-57mK?~=63qSNk~Y1=1DLi$3&;;u&EKI^DS$GVLU4B0A7OMNeM_g?QS%oEhQkAj3e# zi;u5*M0n<2aZvGJ_4*2;`!+uH_#J_EUq$K(v+`;p%$6TLVRpOuBFx2~v5t{2t*FUh zAgkedmk{X)mv^qw#yK(>VG0J0}c z=ddSCU&BopzX&t5*%77!0y97=VJ?7BT>t|7Yk+(Kp3@$c=7wJV00000NkvXXu0mjf DW=h+> diff --git a/graphics/pokemon/munkidori/icon.png b/graphics/pokemon/munkidori/icon.png index 20144ff87e17dcc113c7870875f48eaa65be61da..338d84d3ef09a615a33734975b7f645f0e2dc3c8 100644 GIT binary patch delta 414 zcmV;P0b%~p0>uT8BYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o IAwQ9P)e}>|ApigX delta 40 jcmX@gdXZ^@^5o5owvqxRL4Lvi(ZE^7O;aYnWxN3Z&z2eD diff --git a/graphics/pokemon/nacli/icon.png b/graphics/pokemon/nacli/icon.png index ed0895c1d8fee8296e36779170af3d75f9d9d227..86522af3a1966a2e559bcdd0f87674d15050dcad 100644 GIT binary patch delta 414 zcmV;P0b%~d0=Wf{BYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o IAwQ9P$?Sl?{Qv*} delta 40 jcmdnVdX#B`^5o5owvqxRL4Lvi(ZE^7O;aYnWjq4_%i4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPfpNkl?BYYjoPrEFyej%rBrwipX z%H2wpiJS>{rNk04I}tgpl}Y3ThyJMRlRj z1J1lv*I0l6iqT^PxByJkAm)kn04=O;0!)9wGL?pK4#&9V7hFKV&Fq9{6jBKUTbeB5 zjyT9WIsgHr0eEr}0iKbJ7p(*PF_Mpfnr*nLw3i+aA%8uWh}iK-eE*%-5XU)vRTl>gBmX61j;ABOVZ`onX}{{s{m WI~YAMi7m$f0000>aYQib2m@nr=-9C z@B8H?Y*0CSEBdt;I+d+Mju&2!7YU8NduBr;$Lm(pgG?f#cWPZ%)N5M#y)0v# z^VYHb>dXZ)3Z)yu&M?efyL3)fZv^ADHKt2iJL;`^Pfe4%;@rTdcr37#@n-skB}X^{ z8kU{+e`TnrZT;-&J5GUDt>W`-o~OUkEiLUaVp?dtYvD%ur!N%eXgH<)_jlRdv2T^? zg@yklrXT3c`FitC?Eh`=YJTX*zY_mh(DT!P^~CI&3qs$1USLj|&Y$iu<;3zme=2_- d{`i4`W1bM#3I2UoeSkh?@O1TaS?83{1OV`?kT?JU diff --git a/graphics/pokemon/nymble/icon.png b/graphics/pokemon/nymble/icon.png index 791bd0a427f4ea1bcdd7aa5d47c1e76aeb6139a7..74c4c79b5225233635684a0b5c00c699d15130d0 100644 GIT binary patch delta 617 zcmV-v0+#)>0=xx~BYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPe&NkljH z!dxa0>8k`_ln#J~&qN(C^D%;|68VG1fJ*d0LyJ5}J%TGV3->dk^tqh_Cllfn{0@0n zj8-f7mW zCqT#twd4Q@6J`A`fRGPm{W~89Kvexd`LNOr?th~fi`@y3GyYyR00000NkvXXu0mjf Dt}z=h delta 224 zcmdnPx`kc7#4fFIEHw1zMXQA@2~-fvv!8+jvN2~ zZ*L9>zRtSsbXoV+;6F(LT9vn_{ZshV{r;SPzz@e6TV0q8g0r1xG|Y0!YT`(3ViY}C zaA)5T1@dcEB SWjG6TFN3G6pUXO@geCx*?Q91C diff --git a/graphics/pokemon/ogerpon/cornerstone/icon.png b/graphics/pokemon/ogerpon/cornerstone/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7a8323c815423fec77c57e2371331ddc86ad1a69 GIT binary patch literal 816 zcmV-01JC@4P)4Tx04R}tkv&MmKpe$iQ>7vm5sQd8WN4i%h>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La) z#baVNw<-o+5yTJzh+sfsrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf* z>74h8L#!kz#OK8023?T&k?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLj zvch?bvs$UK);;+PgL!Qw&2^fih+_!}Bq2gZ4P{hdAxf)8iis5M$2|Najz38*nOtQs zax9<<6_Voz|AXJ%nuV!JHz^ncx?gPjBLW0=fo9#dzmILZc>?&Kfh(=;uQq_$Ptxmc zEqny@Zvz+CZB5<-E_Z<8CtWfmNAlAY3I*W(jJ_!c4Bi60Yi@6?eVjf38R}~J1~@nb z#)_1^?(y!P&ffk#)9UXBcinQSAQf(M0000mP)t-sVw{76gLA#Tz5oCJy`(|*_9@k3 zLH3j>i+lfKO3m(bod2|>q{aVgtej$ET0ucUS*eg@0003iNkl9)3@gw| zeE{eG|Mnc%v=S2be5Z@nY9cN%3HEXP&JYO`JtM982uVmn6m|fJB))umG07HLbr6TL77Wbdo|Z0f=EiK)q8rl_fE#{X8=7P;nK0ewGtNn?jNm zks6oFb@A^FLshuIJ-B!^)LO9u#sQ$E^m}_0QT}M96^wpn+btO<9Gy@=h8c-KUQOsv z&UtCp(cAs%C6@e~>lg`wTSWkeDz?!R5z>vaV*_5v9YRyPEk3CK_!@Da#tcJuc-X@R zu(Jo*+JmZpXAeXDJA2619$fW5?ZH$3WDlPDXM1qe|HU4#+QX{;hdp@epY6d>zp;l^ u{gXYo>VMipto|{QSp9k-Vt4q<{_q3!Oc;(Yv~Pm|00004Tx04R}tkv&MmKpe$iQ>7vm5sQd8WN4i%h>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La) z#baVNw<-o+5yTJzh+sfsrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf* z>74h8L#!kz#OK8023?T&k?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLj zvch?bvs$UK);;+PgL!Qw&2^fih+_!}Bq2gZ4P{hdAxf)8iis5M$2|Najz38*nOtQs zax9<<6_Voz|AXJ%nuV!JHz^ncx?gPjBLW0=fo9#dzmILZc>?&Kfh(=;uQq_$Ptxmc zEqny@Zvz+CZB5<-E_Z<8CtWfmNAlAY3I*W(jJ_!c4Bi60Yi@6?eVjf38R}~J1~@nb z#)_1^?(y!P&ffk#)9UXBcinQSAQf(M0000mP)t-sVw{76gLA#Tz5oCJy`(|*_9@k3 zLH3j>i+lfKO3m(bod2|>q{aVgtej$ET0ucUS*eg@0003rNkltwsye4s|2XI(xe8m;S&Q@tG%cUQs`ZS9 z(EK=bEmAD!Nq~&NqTjGA4RL@GHn%90-ns{rNTrlkLZ6}TlWvRi2{jN`` zI$NFHN>y%=cOV>xE*r8lMvQOGn;73J12E6%H~JIMJoA;>0_c^zBTTvraZ>-|e%P5` zoa12+7w&M{!`K~u!5*dud)W0)d+2)N73{%vzxhY72jBhq$sQ!wgYW*@{J|c4_xJW7 zPxjDtKcYSKyB+KyZnn3F%kDqyVW`*c#+^OBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWrElET{R7i>KluL4iFbqWfk%d>%{coF=$pnKX&nkzWeX-;J8J9 ziU-&Ib36p@zv3Zq{}m6u`=@yD-9N>H>;5?&T=&oMuyOwx53&0#AL4ZQ&-w5LhiDhH T)6kiZ00000NkvXXu0mjftQuq} delta 282 zcmdnQ_J(PK^5o5oHuVewB|(0{|Ixr%#Z6Nf7#MDQx;Tb-biSQ(Fz<*0kITl5frk?R z{I9=l*mY&9cbWFruvC?z1N|Qv1lRuccfI4k{^2&|L+)Dy_{#4yCHEX)%GmI7QiHR= zhSMt@I2*WB6pP?^g-6F_4QRJPi04Tx04R}tkv&MmKpe$iQ>7vm5sQd8WN4i%h>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La) z#baVNw<-o+5yTJzh+sfsrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf* z>74h8L#!kz#OK8023?T&k?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLj zvch?bvs$UK);;+PgL!Qw&2^fih+_!}Bq2gZ4P{hdAxf)8iis5M$2|Najz38*nOtQs zax9<<6_Voz|AXJ%nuV!JHz^ncx?gPjBLW0=fo9#dzmILZc>?&Kfh(=;uQq_$Ptxmc zEqny@Zvz+CZB5<-E_Z<8CtWfmNAlAY3I*W(jJ_!c4Bi60Yi@6?eVjf38R}~J1~@nb z#)_1^?(y!P&ffk#)9UXBcinQSAQf(M0000mP)t-sVw{76gLA#Tz5oCJy`(|*_9@k3 zLH3j>i+lfKO3m(bod2|>q{aVgtej$ET0ucUS*eg@0003iNkl55z~K0ky^f{S>FLm$>O5B58*)T3+Dp7Q9GjExef55{_A7?U^=vTSf|4` z*HbO{w^Li?r-t1{^PKk4~za^&W8tCz#7w|%7GaG0000MR^7Q literal 0 HcmV?d00001 diff --git a/graphics/pokemon/ogerpon/wellspring/shiny.pal b/graphics/pokemon/ogerpon/wellspring/shiny.pal new file mode 100644 index 000000000..bca722c95 --- /dev/null +++ b/graphics/pokemon/ogerpon/wellspring/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 209 161 +42 44 41 +21 158 7 +74 76 73 +0 0 0 +61 113 53 +11 64 121 +15 90 170 +0 126 229 +53 134 168 +71 85 100 +55 189 227 +212 230 247 +124 162 56 +169 122 74 +152 155 171 diff --git a/graphics/pokemon/oinkologne/female/icon.png b/graphics/pokemon/oinkologne/female/icon.png index 0acd6e27117292f13a87c31a11ebedc57988e08d..c1b272c73e7336c317b3ebdfae665f17677bc175 100644 GIT binary patch delta 807 zcmV+?1K9l11HA^2BYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<00B5jL_t(YiS3lZj>8}fL}RVPN+5au|8Hw!NDLvV_E7DmKBN(z48hHt zZTr?|3xCgDAU!IOWGT=G+l{15xHKVLssu^4gb0_L`0+ez<-X2PIth6h=`MJ$G@&c_#)kg z|0N#|x=;MaeAqhO5&tFK5r10Ied0emG`c(f*L-MnNBkFfBRBk)`OxP<5BYH5f13|m l!yx}QAKWFq$%hZ%{{oa`7zOtGkA?sM002ovPDHLkV1n`rfnopv delta 441 zcmV;q0Y?742GRqNBYyxeP)t-sVw{6>b924Dz5oCJdz?y~%}SK^O73%<_LTO$q+0go zDfafP)zxa|N-1JuT0ucUX*qpc0000GbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0003& zNklSW*3-9#$h5)|? zQ0nUt698OT6ahK`5HWOZ0W`HCL=;E>Fp2a>KAAwj4J9BE%of0u3SI&70J5mo;%9iS z0jMY(kCXI9UP#edhzF)ziASLYfB?_)c>=p+8zBHQpL}XQSb#$h^tGvo-Z<;)eG_1U ze~$}cvAN%OZhvm*4d5$)2*64#1JVlaO=F{1fORNrByiDXtMwk5f&ZIy8&Fton|ban zMh~!=;m*-7Ucwf*4gHyGV+QkGF z5*9Ug&vN1b000+sMObuGZ)S9NVRB^vM@&RePDdbiWpW@hE;Mn4q~QPn00?w&PDe*f zL^A*Y002sWDIWj;00d`2O+f$vv5yPo_n42E~|289O=(?>XV2LlhL?D7bK2NRa|4FXeG*3z&X%QGB2R+zxH+KfE^ z$&##Hucsi&`0UD;`c6*u6pB|p`(F9;>EpAn@|7Uo&+hwJ5hEf6O!q1z_UJ<4SOahRa zAz{`SN zoP@l70^k|otfeq$*U_yWfV?Nki>PRvvX(Pf8pgOb|VA?)Q5&>*<<& zZqipkl@QA_Ub7O+d#)%1UjK&x(#@rPqZtBrH>)NW=bJt>CC{N0S3>Iles!O+@g_3n zqLR?m==<6oe*iS?2O{z@ACM45^8tRi#rH0|q|kgoc0*eG9R<_cG&Ka$u-qfc`9O;q z!C-ri#^>6en*i9wl+FigX9Nk~-ZRbytoc9$03ikdvhS1ems@tZJ;!|T@*)J_%?Q{F zk?pw#WCE~8W(1ZoYr`TpE$E&6TcEX1)M}x;zJ5-d?(KNJUgXXgyW{0@Ip~&AXdl^i zi$M#gZqG|*1k%l(H?+KPE1^~qTh9opcE>Ge1e5xKCNqMuqA~Z3V6-35AiNlt&Im#P z2+?{*5CWKUMi2&=Yeq2o6;Rc}s!01n(q=P)F%MY9NqPa_k{i&-jG($JMt~_Zg2@|` qsWXBqfTlBoTKAW>=FM}UmHq|d*b#j{Q_@!e00004Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWr5J^NqR7i>Kl))0hAP_^lc!2Sc{Quv&+XV^~@ZyXf#Di1w3K2+-<3GMJNbXgL zED=&n7Xkfo)B!nlCz!cL*9k-_p#a)RD4_#vF{E@642WtW02P9yco7WhQ5Zr%wkqQq z4Kbs}zV2J@ujlt?fGy*H!N@o} zG$Y(Ur@9>>-QDJ1u-V`_u)S3O@jK&_@xSYR{3m*o?(@zK`VfEpp@%&FeSwf&Kb#(e z<;FO*3$*=U@%Mfx@wWo$`r(P(4>kTkZ!>y7lytxChZ}Iv`vI#0@yu0yQXu&>w*4qz qM!X-e>W314F8ZNZ+4sX2;{O7I{uAy}O%9v@0000gx~_ z09;rU0XhK?F?4MKG_@f_6i5ItiS$Q4nLxh{B_I*Z7QmDWUIFp|vVW-7;%9iS0jMY( zkCXI9UP#edhzF)ziASLYfB?_)c>=p+8zBHQpL}XQSb#$h^tGvo-Z<;)eG_1Ue~$}c zvAN%OZf@ue;46R#z)CCw(hBZPW20Aqbtr5kaM5L}^&Xmm|C@9hP*`r8dG0Mn53rfx z&e1Pk!WOs<{h4cH26gk6xYN92%}$%r&RkU3D71m`XW6`A5aXr9EUSAI%=+|RgeU{( z{xBOvyzcOaWDu_OPxl87gU|~(5dQGU2Eo}t+#e=`h{@0XVDvEGJ?qxqA9}U! e{lTIC=?_0?wITNyS89*|00004Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o JAwIEtKLLxEzkUD! delta 42 lcmZ3-wu^a!^5o5oHc|`%B|(0{|Ixr%#Z6N-zh!h}1OVmA89)F4 diff --git a/graphics/pokemon/orthworm/icon.png b/graphics/pokemon/orthworm/icon.png index 9cb39cc79bc51fa8d9a9c5d72867daa0fe12160e..5c4dd54525bfa9eebb4ab09eba366245c921ca46 100644 GIT binary patch delta 806 zcmV+>1KIq`1H1;1BYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<00B2iL_t(YiOrPZio-AnfJZ74Owsp$+f&n&LDa%=$0qyd7vpUFUa!9k z(J0eIgnv0BNQg#ojA-5p=&zkUBCP%-q@MwBqb9sZ zL9hbh6;~6QXKpS2pL%*gcHRjK)+pvJHfaP(2?0cej_KzZ05JMl02Uq7D<&|C7TELY z4Mu2_a}43@5(Xk5BNU~5V5>b924Dz5oCJdz?y~%}POPlVw9xSVnJeJT0ucUp~@Ek0000GbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0003x zNklvIv_V7lNq)H8F^(Rj2JQM zF@YacJr)r%ArMrbXG*j|FsPUL4EH8@C`&@yxSuVE`N7#fvC05cdw(`_;2MB-0JsQ| zJ-2lH<`%_To z80Os{8^h!<5HrlnABS?oX!s)pLJZTwA727_8s;GoVk?+;fy{=v3uI}SPk}JQ+yuhE ck#7m)1Lm$I57Oqyp#T5?07*qoM6N<$g6Xo@y#N3J diff --git a/graphics/pokemon/overqwil/icon.png b/graphics/pokemon/overqwil/icon.png index 661013b728d9ab42d54b49a2d24d5517a53ece66..9af70e8057eb577fd83cab90e486ff026925f8e0 100644 GIT binary patch delta 391 zcmV;20eJp`1keMJ7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&^R0ZvIoK~zYI-IPm? z#2^d>gJxr71#t@iD}V_?P{nr*CZGVy zUrPNs%nT#IwS1Ncs2AgZk%`b$(@uadgo&z*K=SQ!%PCXGR#~aC&QdRomUJKfoPa;YZrzop-&fv8S`ty;K?wx*-wUP l%x?^HJGi@H9)MQ_@&T;9ARKQgb%_7~002ovPDHLkV1hGHtoQ%` delta 442 zcmV;r0Y(1M1A+vQ7zqRe0001qplF?uERvY{7)#p$TK zx{*TYsRKgx&yKF+C&cds%i!BQ2%z)=;NP(Kg9BgMZ{hx{>;tkvyAxOBfDW!l6Uu+J zfvvH7AU{ee*X= ziee++8oY$+bPSL%)vrdhdGLnOSB{8u4wd0kNGwm!?{$Xyv+f^DPiOt1Q7PJ%<1ubg zS!A_RDcOUn8~@F1JDMLBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWrOG!jQR7i>Cl!1zbFbqVC0cj-7{QuwHv}$j+Hp;>s99&mnF)wi%(@E)r1v~-L ziGc0I3pxc*Yzn}vpcW4bFwZq-1v~(}#&dS}=_?>L#=BT?n-C~c^VLMmBElMBMP~q% z#kn-A<_Q3p)!iY%786 zTEz|o^{pF!tU)E*$pBatam4vI4{`32T_7O~+reh5UK_;#H=-3N^}}BPHpfL9;69r< zKEqN=_$BJd(#gYT zb1=VGne6uzjtKl$y-X!Ze8(z%udAax7<6%ryr?jyl%Nx-V`YGg_n4q39l`IZo`*4&3cgidAvGY6Zm6bpsAq5YXq##H{HUP|#kI zP0Tz}$P+SBEk^pVZ+}sF9;K?sgkI?Nl~ld{QN+ICwQtT5D2@@PB5=yqaXqQmk5)O7 z+wAP0a-E&6ypJy*n*I;?z|7BlxTj^q2h8Cg@4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPfJNkl=2kU(?H6_Nnd%DW7}T|@|zn{1bt&*f9%B;Npc z?tGT-`k`3w{ZIj&AF3_%ey9shKNO1U{c!#L2S21hdd5WX><8#*iA^AfAKWlZX#$Dt pKYt<06v(NED{#EgzPX=r!~?D05VZ{~_Im&T002ovPDHLkV1n5AFjN2l delta 318 zcmaFFI+1yT^5o5ow)FxfL4Lvi(ZE^7O;Z>c7#TcW978-h-%j!7JFLLNs=P;W;^XrF zx5bz}4Q7PgHR-@259u~Kl<*703QBDEW<2B0GGnLugkR5BF*|HI zZ|L4!&CtPmfz6E}hfByb`;x!=P0<;w0>W=)>l2xU0+sX*v0brE;tx2{a8LD}b&?kI z3uAF7rwiR?4sX}Hq>7*PPyNlx@!VSHZB7V-^vT8>@eX_E{xkjL*_N-vS;@qZE}*vh zf7O8^u1fH&b JF6*2UngEk7iBJFl diff --git a/graphics/pokemon/pawmi/icon.png b/graphics/pokemon/pawmi/icon.png index a7fc302fe0fbc61b56258905d3a9c71b4312ac6a..bcef3f24b0839df955bcf720b597c83b319232cc 100644 GIT binary patch delta 705 zcmV;y0zUoO0@wwRBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<007fTL_t(YiS3lj3Ij0+MFVwoA>;l3zpdsmP|!?w?P7$i?!m+er?sd4 zuYjAJ*?)-*BERQ!~K-!6-uWljS3fSkj*aMc-J6sit#|6(Mrf-BO{n z%Uikar=I$(?+sH6WEiFv$S_PPkY$)#fz*Du1UgdsVF{%0!xG5G4^tqOAC^EWKU@N- n{Sd7;ei#DT`C+c;7k+pHaVrlP(kl!d00000NkvXXu0mjfdGtwU delta 319 zcmcb?dXs5_ay^4VfKP~P(wyev;^Mt~_x}I?-!W@S(v&4jj{bjFJm+eXK6*o-*%AN3ZaSZY3d^_bJUyA{U z%j`*NGF+ek*Y9?Iy>8>y*M+`eNnZ|V^VHw)@$$c;*U-HuN_|5@Vw!GxO^I59>si4W zNHvh zxt-mDA=cx+UjFf`dn+ILKQf$9+Y>L%QN|qk^YCqleLt85F8uxTkoEl*G0{I>Rda#9 OV(@hJb6Mw<&;$Ug*qUPi diff --git a/graphics/pokemon/pawmo/icon.png b/graphics/pokemon/pawmo/icon.png index 41cc6b4f9abbdca14ecfb185d9a9f09330ef0299..ef69e9e30181e2468bc3ca1f982b20271f31e31c 100644 GIT binary patch delta 721 zcmV;?0xtcK1Ly^iBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<0084jL_t(YiS3lZ4umiWL`_6E5NH1XZJrU^kan5iKi8kR-Gd5siARyqlz-TH>AKS~RLYX^|8 zO3;0coGl%(5e_G8+o}trxVz{k0npC?6%zf}BZl;3j(8Vn6?+;)P5`B!Zh&S10wEg# z_x!4P4BsZnfyucfE1aU9dg{Jnice-LrZUJ-OiE>tshH9rLoqiDk_&?90;&8k1ajer zE|AI(Lm(G^cnhTR!-qg}KTLt-zyB0S>4z?m|MbHPhgT72=9F&I00000NkvXXu0mjf DFcD1b delta 374 zcmV-+0g3+T1&{-fBYyxeP)t-sVw{6>b924Dz5oCJL28s@l%%A^|L${~)nY-tq+0go zDfafP)zxbDlqq6jT0ucU0xrFh0000GbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs00030 zNklpi2w@XADB9Dq(A}TR@4LfUrUw`9P=q z1~nxJ==KX=CkUzpb)#^Yq9y=iDM5fvXpB;J)D`@!Ed(RtzS}Vbzz+ghB#y4k#j zG^bsL4KvL^Vs9D&?_U9bSBX1d0Vv2Qasql@544<(G9n&k{VNR%=5)m#-RtRxf9MB| z`MDqLoV^~Rey9a9yngro`=E~3ANc7C_`7%)NLUZ{6W!Ir*$>Nl82cgg2kg6g0Z`!{ U*ZfyEqyPW_07*qoM6N<$g7SQ@CIA2c diff --git a/graphics/pokemon/pawmot/icon.png b/graphics/pokemon/pawmot/icon.png index cc9d2e942a37291a30424943988160ebd3706c2d..90b36e7378f61bf09a25c3a4e15a38ded5f54741 100644 GIT binary patch delta 752 zcmV4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<009C?L_t(YiS3lZ4ue1lL`_6E5Sjn~+XC9g26lUEVpC%DFi)0cmsysd z3w+XfPJe&{0EQHHC%__DS_rnAxg0uoi$P3W&n$ZbAms>_9`FQmq=;|3MEuJ`J%Hoy zf$l}Daz@_?@1v@$*tP^}DBK9{zF8~m`^k&Clm{QSA zEm{?wicD4jRWk?jaiC@(MXb+3sTDmh3Lha&g=x<^67UKKz%z@DZ(Z(oa1TsoZ~<8hu8QI i{b4!Be?H*fAO8pab924Dz5oCJL28s@l%%A^|L${~)nY-tq+0go zDfafP)zxbDlqq6jT0ucU0xrFh0000GbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0003u zNkl0#w$@oDt#W94sijR0^M5VoC(LpD;xXG_Ko_xm z*$rdTLsKzl0OEQVHCB=MNg+&BSyNNhUI`BzasVEpcdj8=Q*{~Z`Dcv_L_1d?$`m=% z@ED*_(-|VLT0{VpVq&OMo+KGHf=x)^gW@QUfq}zZbz+Q>GeKD}5zEwxKquBQ48$a5 zmVosfg-^=67=QVcX|d%z^A6V=0A>aWe5w1RwRghk3cRNfY4ZvANXY69uAj$Rbi8({ znJfYV@lD3pK11Mn+u{@ixNx`I_xI=DA6A(^?ho{xKkzeuxQns;0S)YtKimSFKcLll z`2#YL+?kg@00Y_9-y2r+E6{*}G~;Ct0aOpOefjYX8z=yc`1A*#dUd!JBOiv{W9J^a Z!zUz5BojY@=a2vZ002ovPDHLkV1f>T&ME)^ diff --git a/graphics/pokemon/pecharunt/back.png b/graphics/pokemon/pecharunt/back.png new file mode 100644 index 0000000000000000000000000000000000000000..2948387f014b0d1d76142234d797315864c85714 GIT binary patch literal 588 zcmV-S0<-;zP)aZ`|lg+_}B=pc=|NsBJy}f}NWt1|SNFf#Y0000G zbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0005INklbU+_`h-&X)$S@)52H_@V$~OqUGbA-G}?{$B)QAo{C- zlLRO)YM`2rD`x_;d)4 z9X#{cM~3@{6*UgWs}nm|`!3-4ppXG%W!kcK(bDL4VR z+4-HYpS-AmCXnZ$KS18l3e191p$X!+{oUaBcY?8iH>B{&P!5v``UHFPbAeI7zX;6m zR)8osr!4_^;u)qbm;}tef(qCx%D1Nifu9IC6*KTDBB1vL^syvhuP_M+rUGf=`Rd=Q aJDMMrk|#Ltv?G)N0000e&3G1H=d5kxfcRd2D|12+#mxY+(H$Mo2mD5W0%!%bibv$q})# z;D84LZI<&>Jmlb06D`tOGEn`DhVU|}gE{U2b!w{Cav4AXZty4)&OVLM0USS2lQjY- zka2X`hcI?}B~bnIlZ}A65;_+n;8_4PF7A4@8bVG}PuKxEy~m$tdj~!RBnCaJDJ5+o z%;^GPJKrTh;j$#lKHcv|m^%PZR0RnCkGxDoet_Qr>M&zVTVG&upJxF04&jGvu2(`;%14pR<#IxQnZAU;ZBGWSIpreQ$ zCT22jdsVMX)mMPDX_ih7RDwbhr3J$hj5K`arwy5B-f@ zG7jEqn2By)2n5KYaw$Q#lKPAoM=s-Sjrt8h!q)7D$lJ%l2aBF^-%b8$9OF3ZI??21 z*LzXMQH($rC_nPx#Fi=cXMPi(TgM)Luy}kec|GlI^_Vy{&VnOzlDT{mmVoJ^KbDaOQq@>0FYOI`M zVp>5#L0PGgWB>pGlu1NER7i={l*^KZFbG6ds;Goi!TsqD-gy$@!i|9}kC?Et(N*7_Rt2ZcEk=K*xy85#qZ=M5TDWm$? zwaf20)s-#hY>27u62(NKLAsV^C-4crbRtG9h@Sa_tO9bD2!JqOCPIeD0rR3#OWc4G zihwwx0#R(e0^)lhW}hP?Rskya5E#=~un4=yIRIeo0Q4#fXtczm_$Ijl5ymcRLGjV!Z literal 0 HcmV?d00001 diff --git a/graphics/pokemon/pecharunt/normal.pal b/graphics/pokemon/pecharunt/normal.pal new file mode 100644 index 000000000..ae673bc0b --- /dev/null +++ b/graphics/pokemon/pecharunt/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +8 8 8 +68 68 77 +80 11 62 +186 33 155 +36 36 42 +255 39 255 +35 20 68 +92 52 154 +220 147 205 +55 30 102 +139 93 215 +255 255 255 +189 189 189 +129 26 101 +148 50 154 diff --git a/graphics/pokemon/pecharunt/shiny.pal b/graphics/pokemon/pecharunt/shiny.pal new file mode 100644 index 000000000..da27c6845 --- /dev/null +++ b/graphics/pokemon/pecharunt/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +8 8 8 +68 68 77 +80 11 62 +186 33 155 +36 36 42 +255 39 255 +144 80 30 +234 176 47 +220 147 205 +193 133 36 +244 208 96 +255 255 255 +189 189 189 +129 26 101 +148 50 154 diff --git a/graphics/pokemon/pikachu/partner/icon.png b/graphics/pokemon/pikachu/partner/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..891f0d1b3e870760b696c9a5b4cb5ba286147e4d GIT binary patch literal 388 zcmV-~0ek+5P)Px#Fi=cXMPi(TdwYAmy|n-T|8sNAq^$O|gIeyzi^Z%d_Vy|EVp5cQ&Bdh6y(yex zVp>5#LFq)aUjP6B0!c(cR7i>Kl-&x$FbIVUfkboRdH=Van*M873WLFzklmcKQ%&nP zO+Qz_jV=!iSr~{givUw}fGS)T5hjWb2x%~whaL55?Qk}i(rCv<7kSdw34VYe* zCnO_SxV5K0NE1d2y=$M_jl?0$P@`Uo9Z(xFQqMY2?C3wm#|V1wuv1Kzkf3^Ly|?C$ zF~&Kdd6|KuelS#j9p?dOhwAPx#Fi=cXMPi(TdwYAmy|n-T|8sNAq^$O|gIeyzi^Z%d_Vy|EVp5cQ&Bdh6y(yex zVp>5#LFq)aUjP6B1xZ9fR7i>Kl+6yqAPj>iAwl2}zyI4VNq?ZlT`${ZYNYmJV*+iy z*X!>JxY2btaBDZ9R^osN*5yzk8IX*SRaInjA9nC%mabZv0aC3@ud#mCYgE3}lgl2G zuNrVYZ99-7c(}J`FVKXgh1UFvKqF)`^tj8XzE{IQ zQ$CFR;CvViLijN91AP2DKR6#cKluFb{J;%AE*j|k0H6NOkC=Y4!_E((d>Hr<5tI*` lA>)P*Y4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAsT;__Db$^oc5IVy`)<9<|+2}tku5#L1{UCTL1t74M{{nR7i>KRLc&- zAPj4OoF>Kp|F?6X+8|J>U3QojRP_*(7qO4yZwmvk_otk82w2Y9t`SJdcrIh`esa5v z0r3pXA!`6c#N7B_BA_D5Pc{I$bM`N0K2XiA20Qz}1Ml0)9(bKy5>O(5{!%Ky z{8&rT1>gv@n7Lp4s{q)euYox@rUppt0;9iG$r9K?@>xTRPQ60Tx9|W(X8@zrw?M04 z5u)x(+ZZIihfm=z= zydWS0w<^1XK8)O|><;=ca*Nl4K16P@q){JcY6N{)P^Z_2HK5anHMe?wxUiQ#{F*%h XZr~6_^Yvpb00000NkvXXu0mjf6{T59 delta 294 zcmbQlc7PeA^rnL1BkLGW6TDRS!@lkn$)>qvNMiL%ZDl>(dd%wO&urxpaFa1HqjJvt} lZ~v43_FwwK%0KV_e_)d47pQG;%<2O9*3;F`Wt~$(695@nkfZ4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWrUP(kjR7i>Kl+BKVFbsqdNQo`^=l$Py?LeD^4DDqvE3GT_zzh>(!?$gJt=zxJ zDwhQsLl$vPOZiZtqVyu=)gMr$NBb;*0GSB$%%Jmj43JKkCx8rufdJ`*0RXui7hw=U zCc=>L9Uu!~R)E|IlYP#R8VJ+2eg8a1!Zd)ux(IUu1nDorJOboJm|q6S4@OcR?E_-x QqW}N^07*qoM6N<$f-mr4X8-^I delta 437 zcmV;m0ZRVk28INXBa^cMJbwTXbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0004XNklwli)@U_qT0NXu8 zp0;6I&2n9425j55uH35YQ5uhKj1T`iYd0+WVX+??_oCXepi-}pC*p;=!rG_x)#M=uGw`sPLbgq!9ISyl4J*gu3~{Z& z=b;5M!{ln6Z{6SDhxI4;kpB%ImM1>U44n_WJHNvRJn#XIDuSx00000NkvXXu0mjfy1LxB diff --git a/graphics/pokemon/quaxly/icon.png b/graphics/pokemon/quaxly/icon.png index 40369574459388698d7a5cde8b2898ece6fffc7d..6df869ecdc4dd3966bbd47fbd0fed790f3748354 100644 GIT binary patch delta 702 zcmV;v0zv(#0@VeOBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<007WQL_t(YiS3j@3dJA{L?uzM5GMD(?Vl=kWz4eh>1=0A6JuW~pI(p; z9qevYkAEW5o{@dPbS1WdQ9#wut#7~LvwCNO+66FdV*uE8;h0?lf_)Qmu{xlt!4!JY zyHr%7i$Ik-5c;*X29cnHQJ_^Ed|Kmt+=4qNkTFHHQNK&LM00W-T!P{7B!KsOXm0O2(Q1kQlq|9=JqH}wD_+{OY# kG{ysn&|iQE{MP{S1EWw7TRe!76aWAK07*qoM6N<$f(;8m;{X5v delta 270 zcmcc0x`Jtfay^4VfKP~P(wye%>gv6FxBUPAzqt79k~QD9G)KKV+I@75=C^N}-;#o+ zRG&S%blL3aC#UG;qV6I|8%oua1s)V%lLnes|>6aRw88x4}) zf7mE==jenFN=`2=S2D7F?Ai0)@?q+YS3C=p@1A)gn-nGZY1+(-ulzYI9Ib`8|C;hJ zz9_%K@vgz`x#Vx%*Y$zz|BS!>dT2eT?Pt*8g3b)-G*OS;Pro`f{$V&3!IR+Yn!^fo PBZDWqtDnm{r-UW|Q9Osm diff --git a/graphics/pokemon/quaxwell/icon.png b/graphics/pokemon/quaxwell/icon.png index 3806542c09007ede0a33c3bd0ff15fb3edc81142..73a2d4ace7b3be8f0c1fccb9c7302e6c488cfa2d 100644 GIT binary patch delta 660 zcmV;F0&D$_1Lp;hBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPfONkl}Z7qy|Lp{y9tF%%4Y@;t6mAD4+4t0^y2q(HaOsL|DUb-8B{=ifC+g3L2^i2+lR( zV-O>NdtD>^LBNV_h8-oyx&{+4Ghha0Lvvx7hFHC)$DAX#%*aze zXnrL(fEZN5Wt*zzfY$vxC!#0=P53S|X!Nt#*x%l3e*rmO1*9Q9t`E8X7y6LvzxAP8 u|E&-G`k(sHt^d}C_DekUp}WYp>cb6nniS`D@#ri70000NA{R^m|j0khG+QK_g60 ziFKOL8O!UZ7zM3cvqTsc+_+;|)D+&#|CIGW{p(vT#%6mWnC`C51-3_*CTI8F z@>>0V$-R_Y2bZ6ZdCOZU)3ZP5f8CEw@_(ZL9(exw4g1;WZ`*_GgghATOrFZ^a(FM( zi=%EIzB#{8G?3qao8RVzqD#ga{j1-aWkOy){B}4{;NqS2B1hPFb924D zz5oCJdz?y~%}SK^O73%<_LTO$q+0goDfafP)zxa|N-1JuT0ucUX*qpc0002qNklig6%h~|fT|7z z3&Q?)fbrVu2naHeDLAP1EI@WOa0OcP2&A6fi43kl^SDTO9K8gSr)>hIc`BE{vFs2c zoY#_N+xWFM362!jF*0fqJ0Or!#9J7&8DhD@_`W+F5K?!SYFI&S?;h3~o+Go=RpWSP zm|XQX?(_KgLQ16b$~^iT-I@P=mNz#$o%VP4PtF_dZ|=vOdbPi~KL9@Vr~4Os&i0Rh j!T$5UANyaJzqS7h^+gp`bU()!00000NkvXXu0mjfk4Bx5 delta 350 zcmV-k0ipij0__5j7=Hu<0001qplF={001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@ z_LM1$d;ele&F*uY|Foo}#s6xooMK{HK|w)TsgPs<000SaNLh0L01FcU01FcV0GgZ_ z0002vNkl%52z6m7ji5`A2r1;z zij@IjDT9AmzaRO8_=|9ElypJ>VwZAI{uL}kDG2KY!#W7oIBcCTdn(_8(OTB%aNh(E z?`9NI&#?<2DMVSM{HjS(OER{!vPIGgFKLFes!vBVn#xtz`vGTpaBFQv&6-mQRGWr* zmn(XoGH>&y;8%FTtL!=0&Tr-9G*H4+@b~G&Uk8k77?vI1{e^>xG(;TwBm^9K9j_K} wAc`Iy2miJ7XtMBu1AYYuEG9TCi=V^c30mNdYKz6@AOHXW07*qoM6N<$g0&Er)c^nh diff --git a/graphics/pokemon/rabsca/icon.png b/graphics/pokemon/rabsca/icon.png index 57c93e30a398cc2c27183f94842c7169ae160b7c..83e9bcbeb734e7ec92e700049261f30647d5a976 100644 GIT binary patch delta 767 zcmV4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWrOG!jQR7i>Kl;MiRFbIT;LNM8&@Bg+pW4o|-G5u9I4o*ra@v9nB=Qtj#AWi5jis(HM z1%}Tg*`ds}Sg>Pc;MKy(~gheG+gjuUl1IM7z3bL8O1WHWhUu%UvM8j|e_Y z@{`B_-N(=Yf0!3QM3$#GE&3rV!EI3aGUpQFh_jcR4*;mMI_Z0l=*7!C^L=ugf`K%&Zg(G6O)A@Mk;3thLrg8eoR7cAjTz*d`%dN`ImMWDxF?0i%VV zKoQ%s1Tc+&EdZ0e07RmH1MCWs`+1VWENJL=|CL3YioBh_ck+sy;x}TCo~H_0_K;Ahc_>(fe|#!jCeCcEP9JXH0+iQRYyIuMbY$1b=bp zLt4RE0%X8z_6C@HQGW$9FZP3wsLim4fIu032M!>fi~+<&(13jdFzdpH1;YE><5h;w zejYFmyvN9Oy;OYy9sU&fjnrTDzj?>+-}j&GUqFt30l9&X0y2sB0umSLgMfq@tOBz7 z0Xzj{SC~yeR)wK}@WPZ3kVIjST02$C83M8^3|F)Ge=gwNmb_VyKHLswV#>dACedx~4)^=!UA;#lz0000G zbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0008FNkl?8 z7+-R1)0sM*W}jCpfs?;KdpURUhAVw2uLv%LlHmmaLI`gF4jqK@0s!SLAiOC78%O{Q z5pE$oF4p6%od9k%!pC`@2?1DqE~t06V(_ypPxc|_k~7uuBY@nq10o0@XKv*$0Mv@I zArt_=b+X@?7rurLD8EdzkE0$55Kt&3a1MVLt%RH|0&D-#emfM%X!%-4W*h!Ownat0Iz7&&$etdGDJ3NGyf z0&r8E$4CG|MEYrfB1>F2A#@WvkPw<4EASm4CJGfn9C`aeH57v`qICkz5dtVfm*E_M z<&Ao}&>V@LhY<^KZKmDv?gDnPfbbD^`+E74g1Q)(1-2lIqOBTF} zgDMm4P7P?1G>;_pf)fJ9iS{BAzV3TwfVZ`dly4*12;31zlkoi-08j_B??XKj$cClw z6RFz@IUGdJok4_)O)(OZQcih zX3Yc)o5I851__=ARi9iof;O}tcE!*azVevah|R885p>iH1RN38&mJb(`k{mvcWN^U zI3(;D@r(e6gaa4XfK?9LNANXZS`+*(&2zxS`m{Eo=hZBEL@R?dDWDFF#Z7wz84gIB z1kh^oI|A;N^9)ctEr1@(`p~uJ0M!%KF;&?7X8;&S+e8Ecq`Lixwz#lPwgghagn;c= zmR5-Qv8#1~qNsKM7~wb!ITILxmsG=(Z%rTxV2)(r0ik7xF{G!2B#UDx4+v~Q03VFu z2|)nViBEk(Xrn;CKOZdO8KG?|B!v3}Jq{>Fws8Afv1TXuEP)dCSKt7Mv=5}ak9(R4J0000G zbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs000C(NklS~dkSC05AL*@+- zO`?#eC24@#2N78$enY5i^StfmVi6J+#KGxJZ&vW{3jlHi!3P+!1lj;XF>#C*1Wc@7 zJSgYqgAApfkd(CeASH`@A_UQW$JC4if0~j-K^ypj0}L}UCWJ*c-SM0WfN=uM1yiwi z#K$xcupy7|F^iH_3F&RY5aTphYF`U=mfp%(;~t;A_mhJb$u^oqNG`nDOFXT%W8B02^WAmfEEmpmKkd3b?L+Pldc5JSAfl9Pd%&-IF%unE=P}5{S+G@ z-vG5xhY&F9S#EXc05QOP1EdPT%xq>oxwk&x$uxZiOxE+2fHLZP`qVCt-GGOH7%pYh z-~>DEcplfeLuf~P3OeB0h}r?Bd^@_7;0(B*3r+~jaHO7rwWi<+m^_Gdo!0|-FDOy+ zM}Q|XoaHvq(fzm3uO9)H$Xc_m=LP+kj&5M>DHs5N;AOOCGnsW91OS9+qw7ZoS|A}c z?;>{OnCg;ZufGA{!UjEHa(|~)c^rLo+~2^v@);)HhDJtkSesoZN-}1!gHG> zo-@Y4?Tyz?#Pe5_Vm=7ix!XDeM5=)X*pa5(HbW>JRv4#2pQA5pX8^8$(7&b*fXC>C zk0zh_+3L79{dHBd{Ao|bJUalLpDDMliI&7Q>(hWujHzEQzT*piQh&cjZyExGeKa&s z2`ve5Av-TT*#Ncbs0sU!TexyJ;63WcaQ0nqxtyz@%=KLNamwi+=8-t+tg!0V9%ifsGV z_cnh8c-uv8i@D$4dlfPXf2ac@DE>=dB^v-oxeNc3e#6YSZCqhK#;f8TfQevy+x2mj uw}Ycq=}tH~KOe=3X?K&q2k{H|O#T4{bV5MREx82%0000Px#Fi=cXMPi(TdwYAmy|n-T|8sNAq^$O|gIeyzi^Z%d_Vy|EVp5cQ&Bdh6y(yex zVp>5#LFq)aUjP6Bf=NU{R7i>Kl-rKOAPhtU0jXT%`TxJ&F|=9k(!T9OQ5r?{Fg6#T z>-rtQbsV_mEWvH>lK_?id+>m@_T&L0qLPgQfH4AAxf6&HqYo1;6`WrNtCj>WVj)|J_;GHsC%|qle)2#lt_xLoN4! zhxfhT;em^LI%mcMO4zl3C>|OvumVKKhb15yKI{SUwC5HBi@*=!jwD;uUSI0~00004Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<009F@L_t(YiS3lp4#OY_MTZi7Ac6n?+kw^&9P8eeEGbFT#(S%XavqO6 z{xL-3Qhz25XW85;*Gkm;8kbTe=vZwAbIi2_qTUgaW(WWjk@C^NLb@kr8TmJw5Up>cb&RMT5%~9`;b{}1%`R$wL)g;F$ z)n|_`Is0vjW>Qj=qod>JYBMhe1_ptWAirRs78Gz+anlr_+%ZoV#}JRsw;|Dd%?3Qm zy;Jfsj(p$$Rwyp|Qr}-bUS)@b#}n*q>Urw99?Wjo=iyMIapR}IorZ-T>n+xuB57yh z7aeBadM$HRz=q-zHL(@DHFhg;KDffRceBvcumiInghgC@DBgJYjFS0>yaPF6Hy5(K zSe)^veR@KkOQ`2!hm?nZL;|e76aZPL4x8{;gbr}F=;=@7G&zZ6jRNip|p@bkmM86l!F;=-CYfPP}| MboFyt=akR{0BSdzcmMzZ diff --git a/graphics/pokemon/revavroom/icon.png b/graphics/pokemon/revavroom/icon.png index 8d3a2ee0cc9f1eceac4cf1aa8b09c0ee34d29450..ba85a6e3ef060c8aa51d46f59d9f6c9be136b76a 100644 GIT binary patch delta 778 zcmV+l1NHpe1E24Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<00A3GL_t(YiS1Ouu7fZPYuq7qm-zqxc1d6&l(3zi-lQ!^9I)%ODRyh$ zS$v1H2KE^>#?MJf^3DKad#aG-v+{ zKvUp)TPH$`j*M%j6c^R@j>f6*n*6K3txwAbAQR5{fTKc{4_V@$@?j@j;lln~KD@C%KhgdV(F_;^zh>Js00000NkvXX It^-0~f_@}$-v9sr delta 451 zcmV;!0X+Vo2HXRXBYyxeP)t-sVw{6}dwadTwEzGAdz?y~%}TU`TJFV*#jGjz_9@k3 zL6m#V#iY&llqq6jT0ucU^LsW*0000GbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0003? zNkl9~2y4hwr3nB3-<~maO-{@9vX?szt!r01Kz~f;wrMLu0`7Pu++ z65fz+{AQr{%+QT^5V#K4%71A%E=52<3Go;AFc0K}$oU&pmh zZV~o@H~29p|Hkk56aLWRz<>SWsXt)r5ACf#L=NBjLp=Ehw*KIkKR7o2@aUlYp{@R) t`l~-+^@p77Yk%;U|L4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<00E;(L_t(YiRF~da>F1Dgl&U4F#37_x9v*84j7V7552T_;$+xG2%&u2 z_B%uM8-JY$miI2zN4)J+ za-@6^F+5^{hb@p<%6gt6CQG(;wTl3qsX%3-$bUg|Z3c-$Glu8Ku!-h;R`KQB%ByBE zP4K1pJhS*}eqEAUF--PK=)UjxOqU2pro9I`iA0`uzm_g{yFf35r2LW^KJ(!M2r2>ViVv)Pv4anGOE({SfHXeP$cN#MSA5Xn@4Mi`2#}r+ p!tGFZS3US3!G~AZ{d+!q0b?LB7B`8-ISc>*002ovPDHLkV1j+zvMK-o delta 547 zcmV+;0^I$m2fGB2BYyxeP)t-sVw{6>b924Dz5oCJL28s@l%%A^|L${~)nY-tq+0go zDfafP)zxbDlqq6jT0ucU0xrFh0000GbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs00051 zNklv-5XjL&6YyjMW~o6=rP=adK{Vk{Q;GCGn6+3S>z|>Qd%XwRjp_YT^!n zFK1#4Q7k1MAj~3!4Rk6JY8qvnS%i&x*cejPN;=I@HazvgyWy8Qt8+YmKI{_P*Z{ zdZ*C$GpH@@Tg<4AZF1P*ky4w7j(K)!=TiNFp?CEoW7GaY^t|8rZM+8ZCk6T~7QaXX?KsOMZhl)H?w+@wf1`8={#KBVV z5aoJyTnKwBwH_S%*MH~V&d1na8Ql2UT!qT7`TQdBGR$j|q5uZTw#23X`ifQvh6R7D zbSbz&!;nMCr>}aLfp7@aiEB8&jFzwhxFnkn`*bk5OSPmv)sz+h+PmXn-68Bcpy_373=3*CK9Er<9#@u zkoE}{>rSXQNke;?9^wVve)74q65W5c2sKqh^t`0${3(D&hHNaV@3CDA#pA3sh zx<=bW?_Is6p3T{<()a(5@x#Cbp$|+T=mwZTP!E_$&=r_S5DUNn=x>7115*(}E)paO z7)5X#v5f=~FgTV-NQC%SdSIj=XU7NqAUxSb+KIdHp%b!?<&}^9q@kwR+!dH?#l%002ovPDHLkV1h_p!kqvB diff --git a/graphics/pokemon/sandy_shocks/back.png b/graphics/pokemon/sandy_shocks/back.png index 2ee0ab030cfab1ce3e5272394ceb0c0f6ebd8bef..72d7efb68fccc684ae35b48c7c499fcbce75eb4d 100644 GIT binary patch delta 888 zcmV-;1Bd*t1+E8>DKwhYr#3Au2nYyNO-xQkMP^-G=-;nwV`5`lJIB6`OGHD5d{9wJ zNoinT`rt~)wM}==nqrY%9)ANJNkluetZ68{@<`q?%B;QDm0SYh(XHh@?yTmo|-G^T6= zn1HV@C-4u*?4Q*0bONyJd3vc%9{|Am-(O7Va;%<}$oRRQ72|!LXMdUjfQZ@H3AK=@ z6XZP;xSD^%&N6t)i&YE~geYF_xgghFL4p{-OOyW_{UB={C7ecJ#-0bZbE4Y`$qArM z5A@iYkG_Va+I1OQ^>X?QKv{?EAbzY?d)y*1o!5}_AtRkBZA>m_zqPyy*78z$05$(G zIlZjsQa`_>vsWACIDh_1uvXEQ=>St-Hwn7KG;Xuim)gg1{M7_^t%nX|&as{elZ194 z=^mCl{AvPfDN{WY2MIkgRl5zC6X(er1}~l%17L_u&`2O{0Y;ema=R$+a_*OE#5n=F z_>}Cd6B(ke3iz5+hs33nG#@Y;p|8?LH4d*OFUz zfG0rG@7{0g&AyYCxXBWO``^So)T56f8K`YP=^mcy=L#SdfV)*j2VjXuzKKuumCS>_ z;Zt`v6Q}Knn?T*g>soKro>)UYas-egv_6KTLWmI&P$x?IXp2$`j}NSf!clLmw$i$U*iw0zBEUl?>F86 O0000OLz)oig zw6ACYJSc=cPSyQz2f(}yS}dobkH_mp(;Gn3a{T~6mcS1H&tnMCK7YPC;Q$!*(+C-~ zEK3InFgL)sA95n+N*e*5RECoW09e!&RCfSTD%0mQCkr>#L`tP#8y{Q&?j{m*D!uiF&_XiTEhb&g8-N*T2)7`r#X@f@ zs`+l91ORLmGzXz>0J<|EfX%*_VW(e0KLGR|#HRr&waAYER(}J}0;=Dw!vHY#V{QV4 z%s_NLdV3}0*tT5*?fHeg2Ca#9Ii1zM|A!ICzE9MvC^zO>FH-RJ_o*%1b3n{8Q6N;m zUKDXJ*8tmpaUYWmM}!{7R}5pG%Ud|XDd9=`X8`2WJBkl--JM3@UHd5XbiCX6s4qzl zu*sQ|6_@p;@;Ji~ob|T8dfL>vo?~7}Q>C@j_-}uJAi9f`UHj=jI Rn=SwV002ovPDHLkV1m92CN}^8 diff --git a/graphics/pokemon/sandy_shocks/front.png b/graphics/pokemon/sandy_shocks/front.png index 95b0124a6c20c777f4df6dd066b0cbdecb266071..8709f38654bdd858ed241e5f9ab8f1da8486ee2f 100644 GIT binary patch delta 1081 zcmV-91jhT#2k!`wDKwhYr#3Au2nYyNO-zj_BJN>U>-ztRjg3KPalhE+aZs9grM4k) znqs`y`rt~%$9Hl~HCT~dAAjCSL_t(og`HQ6mZLBT6{rTAvHkzQU0!)=ThC^8y3@$L zxe!8dS?&zLTV@}?@{jQUIRFF?s2n}#7i$n9?>otMGd@UNJ8r**o9Y(GO z220dMKz{)rJpnqD{E-vPlH4%n#d;l_K$+P#taz~u(#9l#PP>9WkAhE)LIgmflw1N~TG#afO-~;!^HY{d&JYHygOcgfM}jx969rZ`gTnr1 z-gO8Cf=|-}EebRRG1U4_Aq4|JGw0{?xn~YqvOvH^5RDc74z!GL0)F!A_2Q>!$V3f( z92YV04L^=U0u~B*SAYELot3~i4W7j453hCsl^~TtLh!P|l|W)CAA_Vo>K z3<8JG#b6u+8FtQjS3ORk18zxB{I&t@AU|nK8@K{X*NYsyB!8eyG|*021F8h9IAge1 z9pw{!tHs#ko#9s)&`jU#DTu{+FAln?x{=?!5CZhIGzBq7FrqlP z0-#R}M4{jnd943gFw`$J7nUV1_={-LCifV>-G#yc7K}p6ixFtgauH3bS~ATYUL{yC zxOf154dZ;l7X^^eH@p$}c@$w9S>4&!{oLOjJ9 z04w!PPsKa>6JE7(ZYdLmK@O%^KrC;y>4cAN3TF4LAmb7O-wSW8Ow`%b~uU;j9F^vWfW*;=cQWJm|VV*pge5f2U>6hyj!8mhjhA9Z}LSaly z1dqqOL}xP-K$;2gaVGe@&zA)7m0%tD;h25W>-;MLOa#Z&y!{~1>!Ckw2TTNZB!^Vd z4!7ADe|xBWJwbHj!;y!hsWf^jy@EGi(Dkq7^?F77iQ)%ZlkEi2@YfdveHRhF)hwlH?^`ub=lrLp!~%Fz?U zFffd~-p=oPWy50IK6LUYpQh(nK0l4gr#AipLKZ3iQTqX100000NkvXXu0mjf;wAY5 delta 918 zcmV;H18My42+aqODKwnYr0y61)v7tw_TIGCy|lKpb7g}mBp{2nq*`5Ci;0UVfvh<& zG5_9L00015fnw0HlYEg~AAdYaL_t(oh1Hkqwxb{ng>BUWnuhm(+sWPu$IdD0vi&o| zxhz*8AGr~982<60U+O3MoS>?vFG>CJy1t~O1gL&y2b7c8fBDc46``_W%#?I_e>2^* zVS_yyiJ`c*KXp0W3ccouCMwZE`*thEW(9!ye1EC|Y5*7+^|FxP_G=(iZiE}5PSq{g0N6G1`CbQ6Z(*7y1LQmO z@0n>Zz@k2d@_w&_R`0_Gm@0x;L%)_~L9t+yPJe2aIYE-8q9#w{m?n!0vj7ALo2hRu z7(kfHG?zSaGd<#vn-a0{j%5s!8c;O$e{N4x-7K%6lHOavLs(qzf|DmodKjQ+d0m!0GEMj zg>nGUnrpZ)ZGhZd$UGX$feE%a&N1}^PziNeIlCe&N-)%0zy+d^S!XF{fNc;^%<5O! z$t_=EFpCjseMTx9;^zznqBqvb>(mK zVBH}A2UmC1{u_V;cIJHW_HSPZJ@eLG>)I0kMp9m?z1da!>}`em8*6vk8&lfJ5j`0E sg5A-Muc*%5{1;_MUnR6Je*m71KT_63E*_MH&Hw-a07*qoM6N<$f`Wax2mk;8 diff --git a/graphics/pokemon/sandy_shocks/icon.png b/graphics/pokemon/sandy_shocks/icon.png index 99d693a1ac353250a98e880afda299870c34843c..956607df1626cdc96ac61e5386070059e7dc1557 100644 GIT binary patch delta 742 zcmV4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWrGD$>1R7i>KRLgP$AqUHHUM5>i*L!kZT^+-66Jsvd|41LUQxM6G$$5?$h{2u zlCM=~*$A`TkpPUwi36dw1Tl5iklU_Qu*v#zB+zX3t;IVi+~KkdW{a2em(RQZ7k^3$ zALG5{xk~WA3u3%KUl1If;$xoX>exPt5B5V}AfNs4s{PQX?eTsnf7lPx_%Hk6GyYfS Y2Z|gXRVepRe*gdg07*qoM6N<$f~GTGfB*mh delta 465 zcmV;?0WSWx2BHLzBa^cMJbwTXbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0004zNklDyBg7o%7K8h2@ShZb32@Ya!Cro* zS!MSIycpYJt0j*b$1HwkAZaGd3A|4l2=$6TwN$OPJS9;eG7}*rzJD&BQb+>XNC8o; zAmF+Ho=dQ7`M@zk1r&nSTVEms;;acu!RtvtJIuLoDa`zopv1@&xJaU+wiR*KAX6#g zw>nbDuLA8)lXJW~VNpy+q1#!usYF=nVmw1X0X zjo8R=N3;+NUPeqJc!cPg!%gm5&X03i=C9t4Il}E%7I>Mc)xNvqKe9gq$hklR$U9*= zKu&~d0C8u+7(mLAFdZN#!Zd&!2!jTY17Q|`yfEesAgkaBkVdV@6Cl%2Djzn0SWh1S za`R#M<+jfNX?z#}vG<+4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?iHTS-u^w)>hA}4-EyfQ6>f3> u001zNe>4thIel9I00AONL_t(YiLzNd`E_n!4!ckJ-=MI!H2C^Bv8Z_mB6id3J zuOkD)#(wTUiL49^%nSiOA+AYtnv08z_wL>M|NsB$IbL(ldQJJ}^{#l%w<+KDE{Xc~ zO!M2fHCL}@J@e8`N{VuH1nM6JqaiSSLSVD@#Qi|uFeZ7syZm3u{^=-)QxfDC%;50s zMjDW<cI{&79O zcVx8X#*&j+r!1F7Z9OfNyhriYmy6DeQ<#KGvnFI&rFR-WcXM&p$Xdl^!VuCX=jz+6 z_H}kqmtk|}LD%G-^#Ln73QXR}v`-5N&{j}6C?;e0QnYpbjZhl~Pq`>nZY(MPXU^{jfyrxB7Sv>z&_kzW)C!?q^`(-qN@EOh>lv=M=d9&&(m_w?E^fTlZNy zvg@T4*8R(LRc oRbo`w$OjBMzSIcMG+$o^Eg+i%h(X{|@MI9>>FVdQ&MBb@00(v4B>(^b diff --git a/graphics/pokemon/scream_tail/back.png b/graphics/pokemon/scream_tail/back.png index a0607a0e15465719dcf6de5c286e42722676f8b1..44d606d13a6b32d3e68ef1ce55fb9b1fb37e951b 100644 GIT binary patch delta 569 zcmV-90>=H`1mXmcBswinOjJdh)TfAXoAlxPx}V8qHi7!6xZ`=|2nYzNT)%2jV*UO7 z@N!+tLO1WxV$aFr^9-yL0000Fkzo^m`QCRd0005iNkllr2!%yVeE%oj zf>fUPwQlxJTr^YT`dWafb6N46#N`76$f=)cA)%II8=!j77Xs0u-Pu8ZF90~- zh$M&KfTK0QnO^`Pbx>+C2gE`+iUHytTy{zh47CAAjIunIU&5sq0B|3Gld&_1V&TZo zJNr|QrK0wBfP(@2bADp# z0p*D)(Woy7^usy9pF*s|1n6vkbRPI)3rHrwm)f)dUb_t_6XMo@U;u>B_o64Hw6M^( z;Q>Gh!)D;Ml(qqr-AD~U^hOc#JkNG>YoP!v3u6L&Ylwx^==TA{8!Mk!AqgTq2k^uJ z5v4YQQH5Cv<>2tS6sxpH0D}Z^dyAXJwYyEU1k$JFF*~YXoVCNvSKvfPCK;G~_ zsz5Rhp#wm#|4~M#9@-K>tzQ7B9?3HUf?F=%Z2cEs{8Rh^nAIF}?^1H100000NkvXX Hu0mjf+E@aH delta 581 zcmV-L0=oU;1l|OYB!4haOjJdg)1_%GYybcN<&@y|%l5ESnTSAy(@MRbPMRXpH zaRj&%q!kcb(0Eh8bYbGL0?LGdwa9GX8XK5fNspyB9{?U>1iX1^{2)Mr!YB5A(HLME z1PU*W?*a@ELVtcR4K3-_1Su3Y9y?Dd02S#XV8QlSnFM)!V${46fJmDFWt^bKN4$(*oxAT|1^xc`5a2nYzhR%>ceV*UO7 zzlRaeGi{rE>bM3|m;1b#y3 z=rxH?0Y4{@ie1k;(oYF1z#olZeF%4I(hAtm)(0`dO%VYINp4QZIaC3o157P{w0+3Mk6b3LUAf$5w0P`=LS^$8p0GGqb=A_U!wD3DaR3!5P z+S~wx6U<5hj_eVziSL~21){7uzss#s0cORZrtT2Ln$_Hs5pS+e8fprEg91{w6@ois zTyHY#e9`X#7&VcRnC-|1&fI3z@$ h0PctWjc@!j@f%UI6q9$h1||Ri002ovPDHLkV1kSlDRBS* delta 892 zcmV-?1B3jp1(OGmB!4haOjJdg)1_=JEdT%j_K>9eyveOxY=}TW?q7VmQD!hABL8`# z|NsBUxcH29A@UPD zZeKAVeijqr5A`Q`Vtl55w)O$S^)2Hz;f>zx9)Vn|J-|IefcI_yH&-Eg4nRI6gbLu= zP!onB6B<$ov21IAe|kMO02(f}72Knh?G+%Tq7+REfrcv}*N%{Ype2AntT_M%fFDez z9~%HMGlB>wfPXz6IfxD*mnD--Z!#XK3jo1ZAUe}oZLQ&Y-xEYhNJIyKUJ}-2UFjs>wrvjS37uv;`v!n+ zW?i>=p+jzu^O6Y~3xmdH2TCEBVB6=FD9Y#6p5}Rv1oQ9Tj$@~WGGN*EZCg{w!SwrX z`Za|h7=Jii04>A;`@Wq3I{;}wx-0|OK5XZ>0c=}(T`hso7l2d%w!g6>j+Wv;x>^>N z445~!bzagw(g6tg@O);1wPDa;Nne7GCd*g=VKu!Tbx;$0t|WqYk=XE5g&tP}Mhvj* z-{w>e2%PKM1BJt_V(x^`W%YVWnM-cbKGgn3i~cYnW#!9 zK>UwORbUv#Nru!;<{JQbI1b7V;Q#;;GGI~@D(b=Y<#epF=!V0P;J8l#JoQkn+480@EqE6dS=h@zdLSA^4d@621l4+*H)y*ZN=kf9wz3%p4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPflNkl_Vl zi=vFL#YpTbu`noFT-Q7ak*3nHt0$F&d$xLS;ywSUY9FMXR2r|mDYpAY}m{x2X@9lj8? SHLWNB0000c7`Z%M978-h--b8}wJ7j7w-;$7|NehJ zkLlH-u=UjiuUi!rb2ZhLes5Kl3v|5`6tg!hcZzjmRJogqb5r9%E1Q6W^GchXPIw<+ zSUAh9f-C63f?)X{CjO41dOHsb%vgR%hP_X}K9XaWqM(t0ymXoI$s?N+PWo|I-}Eju z&HiLL@nD!YY2wJ`bAhAH?sMI&o3{O_svxXZ+on z!3u>26V}_>SL}YjxpBwC?0*K|o70&WdU$?ezb?&en7iuyzXf+6GSz%#Klf4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPegNklnNU01~L=#24hQb4D%uZ`3{~J_wSrZVZ z6#*7u#~gu+_@z1{K;4~)W(2%<8kqs3XhwA91n%?gaT9ta1m62?9Ff+e0XLXw{slyb z?iwNISqm|vXd{;V63-YR0M7Tf&qFRIeR4JOZBYDA5UKR%ZT+Rv-?#OrZT+p%AC>-E f>F<^P_(lC+FKY^sSN;dD00000NkvXXu0mjf40#cj delta 241 zcmZ3&dX#B`^5o5ow)FxfL4Lvi(ZE^7O;Z>c7`Ax2IEHw1z74s^bwq(@^6VzQ+<*V` z^;dt+TzlxCMPGEBh*0qAC5kpbgc?}qKVw=lRpD5Rr>I9yVAfZa6Ok=8iCQPLUn%a= zVi4T4_Nmk2)eimKKex?nO1!^7Y~BJ6*-3h7ooR=>mz3nJ(W`KOX}4iM*KO{cqXzO# zvU{W3)t?&i|C14Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPe{NklxfU=1g0L?BKb~8)>oFAO|BblE|56Wf(i58{ Shs^H)0000c7!G;5IEHw1zMZ^L=&%8YGc%vgozDON zZ=dqJbx`%*t}kn1roD(XJ1BGfzozkZJEdtZY#UUJl0+wJN-gYnaB_B)Yvj?}zR^9> z>-$+YfeTEY(_Y+DUL$bP0l+XkKh<@kRjd@Voed0Jybu@8AIMs{jZH2(J-vXd@ci9gd*cSP$nmdS5r5E@g`AWq-MBtfb zL6AHoJQh&D)Sd~M2Y&#zkSp4UU|EQV#3$>t_9{Rx^aLXSt=s=S&1l z1nk`fzz9Iehq5e`Gk*`k!n5h{F=J%*$sFc&s7J!CGm|9XBMeYareD;+0iEKBu7FGJntOIuoM9Rgku&c#id>KJjZrz`B<4G;URI5;{{iK#&L$L>vl} z#~_?r*YjF3fFsHsAagp}njV92>omlmDS!a>T{VKd-HtY9a-0as>V-SdB{Uj%BgA;v z%A9N)bQiubfPbdEB8~xM>x9yd+jsy$DRNW9A%J~F4itj-VEVANgZyqP${1(j-uI=F z2Rj6zk3*N2Qa*+npHU<53{;oFs!x^m?$Ua_03hywNLSP~K@VTq$M6nfL%=10ZwCn7 zrC@sNpWlYSlL-NSGtfZp0hCg#Rk&UD&LP4LfGeF`7(I>db^%=fBv3#c0o0d`Z}&R@ uKaF~?y^V|;0R2@n4FMSAP743+pR-?7w;|M#uRr(z0000x-4qJaeQH~*Aq`X@x&8P{J$W&3y3!f6z>s4e;;s*pny9B5`w=1`0f@-r~x0YSdebf z#|Eqyz!eLh)h@Y5{RmeqAXOjd1jq<~=73~{Am`@oP+Wjq09uyy?SJ$QAn5SZ`e|VoqGCZ609N@064H8RPvcD*wzA|qt^0`RP=SXPJ)$mQ3EP&sa`4i-a;G5 z3X)UHEoVAKk8JJleb6hz)Fr@R(sAtX0Vv1; zc;^|AN3|hx27eWc_mA|u&z4Ir#v z)H*6kV4G2Shc;2=a98!Zn#G(C z$u%`KPft%88X5r?h4qnLAAcT6L_t(oh3%Ewmf|`LM6n&kwv3bi|Jzd~#c`maS##!b zP_v*zQahzf#O?NtZ+zn)j}U%28DspYPw5vzT%vP+)6086Tnunv{@j4+k;S?`0cK_& z6NrHP)X#4|0rI+Lyv0iu%+Z-sN$&_yMBE#(AZ8WfV#l`&AiZoPB!7z=SRN#C9?(@0 z5~S+0oPeRFVrDQ7kO@Hr2x;w!K*uq!r-OJsbLiJm2_PDx`~XlNj(Dm7n}be_Z;R^Y78G*oAP{eBaMJT$X3S?M0kVX@>Q^HHMhGVgN?rh@@5DIpid(sBxeJ5KD_}`fo1p`s2S6`?RknJH+o2Y2F5FjR ztgyqnT>xhrZ(B;#ySPHE#l(J3>v5wD;b5 zCEZ>CvXz1na@9~f0WETZ&v3z&*hM~wqYWGMa>o!JYJaSX&gb3+l5bA%=DVg?HO43z zlLX3bSJlvMEko@Xgvxb~BaKTD_{Ane&RrFx5498E+{u=53ZRYmeMz<-)KNFI6R#f^?K@nCmwMadv^H~oq2Kzx zzs~I8r#b9xltRQC{kGTr6TqCkIkD~d(~p4n)*~AKEF%B_ z0J|E^8X6i;PfslkLIsgsAAc-KL_t(oh3!>YlIu7Ovo>onBi{eE15lFVbex%URA-#Nx?3~=DBfz73m>K(zv$DO}3n}3*B*;>x|?4^eG zMu4Pf7SOdl4z?-FH1XonQjg+K3L4R&X#dJf%Jy1YGQ5|sPI7o2w0dy>XX<>+i(nbQ_fWxpMspdEd zY$-fcaY#&J2iAh!@+!McIoQUJb}M zvId+2P5m+Uz=u8T(<7lcr0A}wAAm0$fbAdf=x(A}rnNR5Ab$Z(zy^gdcE~0H{l}3h z5FD_=A1g*11HUl?_r2Ag__i_|1?+Q)&Wmjjq_N1jMGsu#>NI0MGplWoQTS*5maIfe zvR1-pKUS|ji&s8tVh)T4lb+4lr(h{=5x4~W;+P@wz>HFYKKRH7sZn{d+0QDc02erk zOL5kIpv8nJ1%KoQZ_~Nf-0E-# zvfu;H*(XPaI;=PeG$!J~I~rG%4%kV4*|}1BCqd$TK-PPG>0l#3xt47-4v^~XA=%+( zVR+~+MeIpF&og6aBAUc%1Fa|8;j>QyXUe6Eoh56N2Y-P|L27UY$8A0ohIWIg_g>il zX4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWrgGod|R7i>Kl*w|$APhuZ2oNXf|NnNn882eV9Foc<6`gEamKuTIas1_Q_s_b> z#{`$O>anJ$wSudMB$rwT7w)R&J?UJqij?rVm8@oVRl$Od30jI-YmKFx@2qfVxS3`X zX(ED0rEZ}I--}gYRIR3H_fB~#l+1(#@1lPwkqh(`X5qy!yTrD&H=*7wUqKzS$zI?G zJ&M|}Pp1xx)ZsBRVcdl%EWFF3KW9>rarWTnO1THhb0iqFT_#*ge#_P{Fpi8z<+n+f zuA^v^1n+9nyFZ78qodkj)3JL?J{(kc0Xa3^68D4wr8-{+EXz4Lr@iGuVfDFX?!$i& zpPc>kfBZ0h1rS5R1`u7OG=?6jOdZ%X0hr3YW${C>WDnEDbX5AqJ;5Y+Hy|J}~%j0Ho8!IPqbtyz(JWW#>a&!J;QVAPPP6p&b3jhxUK@@C76F8d`hX Ro}~Z)002ovPDHLkV1lZC)hPe~ diff --git a/graphics/pokemon/skeledirge/normal.pal b/graphics/pokemon/skeledirge/normal.pal index fbb60828f..c00aa1e7c 100644 --- a/graphics/pokemon/skeledirge/normal.pal +++ b/graphics/pokemon/skeledirge/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -153 210 164 -132 121 129 -255 70 0 +154 212 167 +129 121 129 +241 70 0 248 248 240 -255 177 0 -215 193 202 -254 233 0 -255 129 0 +248 129 0 +209 193 201 +239 224 0 +239 171 0 +8 8 8 +186 35 26 +104 35 26 +248 44 35 +162 26 201 53 53 53 -122 7 63 -214 35 26 -255 44 35 -0 0 0 -187 26 205 -26 26 26 79 79 79 +26 26 26 diff --git a/graphics/pokemon/skeledirge/shiny.pal b/graphics/pokemon/skeledirge/shiny.pal index 4354f676d..26f0abf2e 100644 --- a/graphics/pokemon/skeledirge/shiny.pal +++ b/graphics/pokemon/skeledirge/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -153 210 164 -132 121 129 -255 70 0 -248 248 240 -255 177 0 -215 193 202 -254 233 0 -255 129 0 +154 212 167 +132 118 83 +241 70 0 +238 240 187 +248 129 0 +184 181 116 +239 224 0 +239 171 0 +8 8 8 +175 17 112 +104 35 26 +219 29 142 +162 26 201 53 53 53 -122 7 63 -186 44 106 -247 87 139 -0 0 0 -187 26 205 -26 26 26 79 79 79 +26 26 26 diff --git a/graphics/pokemon/sliggoo/hisuian/icon.png b/graphics/pokemon/sliggoo/hisuian/icon.png index c66baae5a9026bec9673ea2af98a23266459d31e..c2cdfc0bcad7afb9ab56bf435798c6959ae13f61 100644 GIT binary patch delta 277 zcmV+w0qXvU1KKR522R zFbpF$6E)WVe_JJ_T^gCCOYdqp7RibYNZac+G%!LLq~JYZ=7ocSS(XektGq zipUAz=IN<%bC&5nu@mkjJ%Rh~Q4olE#9o{c=SdM1YaB-(A)BB8*#*)vZAt048wtjH zK|nrunKcUV`N=?Z4o0(4D*~lQ^S~E`4YRq!%P+z$+N{)zR`5kZ@h1N@>pSMJ{@LN$ zTk~scP4nv`rumBrf5`j_f1AI2)fAvBbUaWXTM-YB2oKZo(7hj*fQSd;uXI?)1Jj}X bXgoXt^j#0inh)tG00000NkvXXu0mjfz}a7bBm000XU000XU0RWnu7ytkO{z*hZ zR5*>zk~?n0Fbsx$1421~1M>h5T4prh!E1ruGi%qPK zg&RLeKlS*s?7oVV9@;4ZG=V};XKO9NI>90VjA4P?0uTJ9B9^urRb)d|t--OWR0Mw= zA4!3huu-AwH$AD_z=>)r33rt*ogn^&Ji0^N(f8f^fW?*z!`tT$B`||UL=z{^#_Z6D z>##M(DxMW_#Ym{HF4x(|dodH1b;0C25_V!KdU Q*#H0l07*qoM6N<$f&uW6VE_OC diff --git a/graphics/pokemon/slither_wing/back.png b/graphics/pokemon/slither_wing/back.png index cfa4c99d751a3d8b285193e7b9a6fa12e00a7399..5d829a2a46dacd0174de0b2cfc720e84f562e31d 100644 GIT binary patch delta 696 zcmV;p0!RJs2Jr=uDKwhYr-@%7(zto~>zVLxOb7@F&YU9u&Qgtqh4}OH%DcNXG-yUn zwEtOQ!F9}oLYhP$5^a%PAAev;L_t(oh3%GGuj3#Lglj27DCGbD-t~o>X-`6Oq}`YG zL)EI8kMS62U$4JV^jm%S#{dfV0j_C00AM5_?6*_ID4_>{Q3LsKy9o+Z3E;O6dZ4{V z#~JSXe%AsAS65{~|8N5k>Z%5~YXN;#0X(q4+plI%k1U9)38D+*qJWPc;*7zA)hkh3u84^2{o)p%9_vYG?bE~pKd&M2~-vj+^*ls0%q zIPYOHAXPWD>=4=5r+_*^U*^ItsWUwj1dzX!hN+lKzz+pG6Bl|W=)8+JK!*aOV3r($rlm^7gk4+lo3P`aN^rAmKlwMv43Ecvn|9|g@?^*8&=ojXiekNQ1 ze%4n4Xa;~s*7BSCZyEF?1>iOk_?c)`4aE26fK1rAcPdl6NO-JFzd|%k6}8DNOQqhsNO~ZULO|t z{C@#30Z{|;1bOHW@VtLSL8V$pHjXaN;fMg>XO3Bj{`7iypIejCvK)nm6S9#NKTgid^nxhAN%By~>dS_vh ey8!;zuj>yAYBcQ~wek%B0000414!#T!Lb?JVA@H9Ph>5}J5+Na7AxH|$7YVB10zo8L4(ZpD&>SeG z3j|gPR|tHSpa4(eHv+qabrk~r3b;bB_-cR)gj%Ud$oYH1kRT(kKYtJmkPMLX>V)_O zpv?^pSAY@X@&y4|=Vs*G2;T#IA+rS1Z4hzFaS(D2_fD@S&AOZ`ehee zEh-_%2bP5c_!vIc&x{h^20%Pm+9=VM!bIq+z&tlP0)736xA{w$0J-@| zgl)q{P*av=&VhG(VPu@E?*OFUPy3oO+(HNJ3klRM7`t#w!G>GV8Am`z@JyI*j07AJ zPbwKxygA{3mc`Bj0hE(626#6xB&Y{vvOoY!IYm4Yd_QrS^mixE2y{ZAV)>Tt3YyA-Ud3P$`?NMVWA8Xn^Ht<1Y&`zpZ- zLYflh?HHs%tIFH1rP#D7dAxNrc~Yy|+TsBq-4T81ws0e)t$u?8lEsIy2*5 z$0sU!v`GeSF~4@3`FasPMxIC|Nq-NV zZX_sz&WRu6lxh0+l4%MrejctM?e%Mb5T(EU5+KB{0bYanG2vSPlwSj6`agir2t9+} z1cVdt5h2Wb6XHi+3MU}UpA6LZfEX@-sBZ&OJZy>3{7IWJyZ{wDm3k zx|FVfcL}o02Vi~|Ab$epzX0Q&iW~qt0XyM_EgOI}u&jFua|3Wf#wj33NdQ=OfUkL0 zkfo342oQt-=yTDwJzmaAA&jdjAtk~71%TWDBq(CSy5mVR2jm0bA>gaIw`K^)AZYFY zYYYIWzXgESI-sx)L3ovti(!G>$XEV|bJw`DJBn1<-0}daI0cbJC&VTEOtM>hM*N?|hIW+*} zEId<+=w*8XMhReQG4^afGFWg3xG$VAyB9_U=%*Q0KMH-O3X4c5-WW#KUhBH9PDp*M zJ&ZeYwm?_v*VT)VFH5IdhjJvnc0gqj$|2`q%|iemiCzDwOd+Lf2$kzKV9|#I9uEQ% zEs@DgeUR2RwZjL7|m;ZOY)pc#t#-qQ#&{uxUeu5ET-xJ>Uyb!sU6q7MwLKTw`A^R5nblZN6RW364wFXkwZa4w z$Lq#ZX+1UqfjKLg9=zU~MLiSMUi8YS#>!oFxm9=OjnH31zXpu-Kj^t5bycAL6#xJL M07*qoM6N<$f+~z=H2?qr delta 1011 zcmVB%C(N8(4%p6V0*e?2Wsf7d7Cg_l19C?(aW<&Pn#KJl`E@EZs5pkIEa z&vPMgO0PuA@{G{atN>=$zg)jA-;=-_SN%NO7X`Tg^%kA?TGr55TrH#BDp-p+QCp z&UMX8t*H+MKqMjtSR3Ll20V$lIbtb5lb|kCziwrHu>c9gSTV9YH~j$E zzQnMZ+zW7Jty^~ht3JeS)L#SG1E~5vW9kUE$vmG7ID4Eb^x#~SC3Otw)Efb`Xwa= zpb$gu5qJtpfh4pkeRh|yxP?8b0nK3u1<=o+SCn=ajg>8%EPo2v<6`^c6jhHqBY-;K zFyujq7J+yIWS&FDXv(9WXf1VhYzyQ|344rHKL`A28mkQ<42V)!CtV>(oA#p364mPp zlGTR!VAa2B3~~gJ0T2MWTn(7oeW(FlS2dkyBVY^-`tmXA3*cZtcM_UqW~%n<3YLSa zr*pjlW;VO?$$wH~mI4FFg}!-im!X94q35H#1M!Ap5R?%rI%GucGknlp~fJCerTgIPw*;4 z0pTfJc-_Lc-a$W#hcMU4vQls4M#38m6^s>12)eV~0)N1dp*jFz_4lj|l-AJJL{UNs z0h6fSkslGP_Mgh(ZEsDadc4{+XBv|MYFB1+-)E6qm_~q1qC$jk8yleabcw$M=*MAd zd07r1520FUT@ge+PvNu{LR&Zi9D|HqH6X6u@e0Tl&^Ip=LGQLgx~^tL7xc(@d{6+~SK>lJSSIP~BNvyv*U5t@Pb`&Mrrv~a8eCr3!IGx1+}=PwAc z0bqSlJ(b?b3Y84P`CcqXP~P64Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAryamoJyR{N|g3W?sJ^>l=i)(TK48C_V%pR)oSKSDPm$;K|w)jIel9I00B}-L_t(Y ziS3lzZo@DPLu2{L0WALi->ofJn02n1VzssVERXZ z>(4;BB~To=CmK*s4PqG>r4pz-aCvcqTD5-~agxA=T~H@sB^3Oy=&D(Xs3Gt&qb`~W z5b_e?r1uFC0`{(6$3_`_f+AlzI??Sk2Q6kh-pRV0(;Nia@7c(PS@aqXH4Bf`;1lgk zvOr4KTg4A)O(OW#`7IG?1igq#LT`Y&&#$hV6PX$$`ZB<$B{V!G1I)R`uymSbnvs7* zE8veDtT+;gApl95{Tjy0;y)k(enI0;2PSTBzgvId{O7}x4;Mh64_82+5661#&^{m5 zgyH)4`LHHTtp8U&M8XVR@Q@E^8}oKP*o+VPplO#6vHth@(AIyO4<>(>54z2VSpO~` v=6Hzp_k5r=j<>{vGoBCk@es_f#KRQ}_3Rmq{aX4bDY&;LA|6}_U0+}_N>*_YW9>VVq#iB zK|um8y^;U`01$LiPE-H?|NsC0|NsC0|NsC0|NqS)vXlS-0X0cPK~zYI-IRf9!!Qg) zD|r;zAl?7}?M_Ldwc;iW2BULBDCqfga`4@5zqx>mdXIC2z&HcYFMoj;hsavYiYr+ zAbCc{UMZl_P!vQ)r+ zrf^3xxxE3LxDwc&{7K9I?{5g|-UDz^|MT?^0s{5~mI3k1hj#(-k`L>EnDSu(%=xeg zh&dnX#5EskKpgX-+C1iim)rZH`A~2FkMm&$7Wq&E=Hb0*nQaBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPeINklKP?Y&~ZHaQ%PF;XXc7f zlJtbc?CePsBcR;O4!{#&1L;D<0??ZG+ZbO1jIaqBUQC%Y##;_JZvf1IqRbkKxNrsC zn#L^#QQPv5QPV4b{sx&7en2<=qm8sdf9xGnAm8=FFY4h1w5to`p8IVa00000NkvXX Hu0mjf7BvV` delta 223 zcmeBS-OMyWdGcmP+j@bLAiv=MXyB~krYQ^z42wKn978-h-%dHm*QUVJ?3uEFGxPrc z+|=JY%bxk$NLF2NK5fRbKWLkswvp*c!x#C222A3a%b2DT&ND{c46buCTyE z(-&`byV}J2?tIIqn{`6F75Hbb_MO(jRTdDY5pwaM{Dj6jHRU5B>DOmROuVDd|9tP( zuj}RXLKs~B-S!h>?|9PwSdn4TPs5XqJ@VWNljP-@Jp9{w^5_22{%oa?_i71u%yB_= RA)s>^JYD@<);T3K0RVTpX8QmD diff --git a/graphics/pokemon/sneasel/hisuian/icon.png b/graphics/pokemon/sneasel/hisuian/icon.png index bd9cae88b9bfbec648d238e0a8a067ee49c85e6e..f2646a7ad009818560233a685e11815bd744426e 100644 GIT binary patch delta 316 zcmV-C0mJ^x0?PuB7=H)@0000?P=%ZT0004VQb$4nuFf3k0000mP)t-sVw{76gLA#T zz5oCJy`(|*_9@k3LH3j>i+lfKO3m(bod2|>q{aVgtej$ET0ucUS*eg@0002VNklLcim>M2VMBoU;iTunya0}-8 zP<)Ey)nx|IJz0){g)^{E)R>&|(HsUE7E!o342=IIDuAydc^;zSwTN_lHhb4U)Gd&i z__aX7dV!QbmNh`Oy9|Fs>H`_1rnLNk4Kn<|jX|a#T7wKf^al8V-|GcGFb-2y&$`V3 O0000PDfVJglzYv^q|Lo4oMK{HK|w+3M6_Q3000SaNLh0L01m_e01m_fl`9S# z0002ONklfoAN`gJ$dvnx#SDTz{a@J0zpQG4U9P>Q0dY zJwPMypvTwuA3ngJO)5{)zGGeXmj+Rg-|AxNE^9R?u(l1czUW(`88qNL)*5hkCk7Kl||k4IPLj%p6I& P00000NkvXXu0mjfK^l)K diff --git a/graphics/pokemon/sneasler/icon.png b/graphics/pokemon/sneasler/icon.png index 4238b0e6a34a0af05eac7fcbae351d395c2ddaca..d3612a640cb8f0f4fa2624c9ef24f58ec2c431ac 100644 GIT binary patch delta 347 zcmV-h0i^!k1Ed3x7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&^R0U}96K~zYI?Ud1O zhA;?5#X>UM3h)26gH~O)eC%cy`?HKIBPW!ioNfDKVfH*ckDmdW@2%E)BEpE&k&!!1G5}7112%YJP}Uuu~DxTd8FqK!vwx5yEi-1U8e#9Qmw* zL|g=(1GBJdQo>AsS&q2oocCA2$ZOl1Pr(UPo+{bwLd6&iA@VmM5E!koPJ#e20pkD& z00Yuy@v&$$1oHbn04EY4enlU5mY+~*E&FG$D&?E($94YWNAYq3f$P5r1TE((5WJj= zK(GK7f#5S1fh1=v0>Qu{kPR8)5lFI_bPELOVHjiz1nc2CGRQ3uw3?&oA&}4mBrMu= tfuwqP{GfzIeET8IPiXid&;O1e-T|FW6`#QYA*=uZ002ovPDHLkV1nhll(_%^ delta 406 zcmV;H0crlE1KtCW7zqRe0001qplF?uE0)`ji z9x&ecq}*M)o_gIiq224PJ2qcZTXA-EtdH#~vV}zzDIP5k;9w#Za9}a~Qf9`dT1-iq zfp}uYGu~{6T!ZH$C{hssSxmMIQR06#O-BU1MHc?Yss+j68bM;bMvyR83(_$^VMv&+USP8;dP_G0L-#QKhC&=>Wft4V4AAVe1R)S_? zSaO0SDYqw~XdpR!tZdQqfrLFkRW$tx4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWr0ZBwbR7i>KR6z>EFbpe+b1)d||G%B=b+BY^b}pNth1RMhJ4MHFuR_$WFN1Xr z!FZNjAmAs!tVF;Gh|4wrXR&WyA<$2NyOx0P;JqiHb_o%27gZ9JqhipZh|-H%NrD{1 zWk~H4A#bLnaVva6jqY-j;YC*wSoG7W3~ztrm=VDr{am-V=BoSwKJE0)(`p`?l zOUxed%k>Y4V;c}XuP*`7_xaHG`4AGf$cNOw&W8k?pOpC!tA*h0;UgfTF?lKiVlo+h bvw(O2(}fz7?51h~00000NkvXXu0mjfpdLgP delta 406 zcmV;H0crk*2Im8iBa^cMJbwTXbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs00042NklR8vfi4(%Q0JR* zL>^--=Ys?gzhjso12D$jCsCw;X#lPD9*|dns>c2zLqLY2DtHjg4}Tx=0BqZ)LnZ-k z2gXG=Ac|zQA~wQ%oJ$OZQTNm+Zc;kqQISGz%K%}WBHV?rAR?)e5=l75WZ0Sb1Q_Gw zaU8ldVonMa&%hZ_k`fT$m>wL{&4=q}r7L~@2k6D)e-sT0Cx zu!li(NV=k!wZ03Gf`5>CFZophr>o2qx32*5@Jb%v*`FQX6bLT4A&4(OTnOaG591_H zez*|GogaokPJXBbvie~o;;Nnez2j>D^)RLoJZS z4_P3q9}0o|)DIch{jfJX`JoWV>W9?J|Llhkv6CSEf}Dzx01E&B07*qoM6N<$g4x`` AGXMYp diff --git a/graphics/pokemon/sprigatito/icon.png b/graphics/pokemon/sprigatito/icon.png index 114fcff288cf8ed8361b342f30d2e87ca678328a..22fc9125d88bc226cac247db995828d4ff101abe 100644 GIT binary patch delta 647 zcmV;20(kws0<{H@BYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAsT;__Db$^oc5IVy`)<9<|+2}tku5#L1{UCTL1t6ut`KgR7i>Kl(7=S zFbG3)XDcoThyMR>3(a+LLNd04HF(jpur;u4OaCZ7`8^4;;@G8!3)Fy#p!W(OO+!`z zR3d!rA{8*OD-e_)Z=HM_4cOyQQRY0Gi4kk>M;lGkm$PryFu+&Kgz)_YF#muEPp002ovPDHLkV1hmwEBpWe delta 271 zcmdnWx|eB!^5o5o67`N*Q{ENN`8MU--X&4rzI87-`afyPlB-FMNl8(Tj*bgYi8BC! zKuM5a@P9OLR&mo5pxhcy7sn8f&bL#n`3@WKI5Xd9(dK>hH$VEMXWOx`%L|>kXEcl3 zy*})Cd)t@VkLT7qPLMpVbv0IjJ%nXz8pF!^SV;%fJ8UjS3mD&7r~Y2k9DnDlyX(#0 zv7OI8FWw@=m-;1?Tk3~KpktridgEhUADFV1?LFUW@l7PKo9(hqaVazV?M)1>+d4ZSPw}s&vNkgo}U>z4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<007EKL_t(YiS3l#3d1l6g&U0^MfCmOcA9n@o2FNTwa`QE&WArqILmVD z*D}|kt$(fQ95HvtnGp_bngY7}Iw7J$G*BHxp2aKZkVp_F39(@Vi-;}8qLK(l0D^G9 z{R|NGXAk9~03i_?dJDIexhUX52%j19w$_PMJD{*IKye#BWbX|z_K^Bfd<{g{fHcAY z8iaJ_?*wzP!fVjj!0q|3aM4OfA8SB|{;f0UaxwXk1L7+mih%gYhcY0pk`L?p&WGx* eP7@FR$cG1^HWOEVVV;@*0000 delta 358 zcmX@l+Q2+Pxt_rwz$e5tX-;!>b@kr8TmJw5UtD~4$(nClnxozw?LN9j^V>JgZ%IK@ zs?Q!>a(1ugoTQ{EM@Pq(E?eRm7#IXfg8YJkT2R1Q#Z6Oya_>D|978-h-%h#6b=ZKz z^>)jJl&0_h|CeP&nawb-mKIUFd)an{XZ`ifx!bi4%y-?VUGkh|gS#Qqs#iOM4sbr@ zP2*O6F>7=4+MlUz4yPp>J~UTMz0|^VT;jqlDaHZ`g8*&zV;qOXJsUf$w`{HHV%!iD zqQUq&_7+n{)EbqvEh+rWS!ajm diff --git a/graphics/pokemon/squawkabilly/green_plumage/icon.png b/graphics/pokemon/squawkabilly/green_plumage/icon.png deleted file mode 100644 index 540b7521a82fb4bde213899b00a6a6d573b7f680..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3-pQ0$S$)DT4r?5Z9zR&BevVd-v}B|NnpW z9IrWNy{3HgdRIK>+mvs6mqdMgrupsLnyXi{o_T2|B}F+pI%ZndMg#Q7=4+MlUz4yPp>J~UTMz0|_gZ@6HqDbs_* z0}g9tB$PSgRalkYUAXp1lkGrJ;6j!)<(b?IGB-||adDC@&x)Jli#x2KNFf!m%z01&jx`LFWI#wnA>Yy60eW9w_$wu XRdhz|7yVU0uQPbM`njxgN@xNAv>vjQ diff --git a/graphics/pokemon/squawkabilly/icon.png b/graphics/pokemon/squawkabilly/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2abbffb286360c3ddd0740367789d803ec2dc9c9 GIT binary patch literal 764 zcmV4Tx04R}tkv&MmKpe$iQ>7vm5sQd8WN4i%h>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La) z#baVNw<-o+5yTJzh+sfsrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf* z>74h8L#!kz#OK8023?T&k?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLj zvch?bvs$UK);;+PgL!Qw&2^fih+_!}Bq2gZ4P{hdAxf)8iis5M$2|Najz38*nOtQs zax9<<6_Voz|AXJ%nuV!JHz^ncx?gPjBLW0=fo9#dzmILZc>?&Kfh(=;uQq_$Ptxmc zEqny@Zvz+CZB5<-E_Z<8CtWfmNAlAY3I*W(jJ_!c4Bi60Yi@6?eVjf38R}~J1~@nb z#)_1^?(y!P&ffk#)9UXBcinQSAQf(M0000mP)t-sVw{6>b924Dz5oCJdz?y~%}SK^ zO73%<_LTO$q+0goDfafP)zxa|N-1JuT0ucUX*qpc0002@Nkl0(wmgTFbt6JU0x~`fd)zbE4gaLb{fF8Lfgm>@*R2wnR zVjZ*UDvLM>8I>120uh?u6~&Pan(cUk3kQSKdyQR{W0hv^v9@&$R9rBwjFv1{c+Vp u{67DF$OO^-kP77VLne^!hg$(W?}r~JP7%t7S;;d100004Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?th-n-u^w)>hA}4-EyfQ6>f3> z001yhOjJc;oP&ddbG^O2|NsBJq(S!fDb->@_LM1$d;ele&F*uY|Foo}#s6xooMK{H zK|w)TsgPs<0072GL_t(YiS3lZ4#O}ALmLQ}O2GgB?VO~Wwn1{5v{tIsn_r1(BX8TS zU(2DTZGWZM9C5h)nGpbnrhpy3O^7z39bndpm<1E8i>MJ!0r6og5&7myMuG75dLsb9 zkAO&ho?)5{5Efx)41sN`$pC2hsvNiVDq>cNkwTf1uYr)Y7Us4G@^+Qq+AN`OP#Ct!Sx*+!bA_eh> aes}=0su8qB^6~co0000b924Dz5oCJL28s@l%%A^|L${~)nY-tq+0go zDfafP)zxbDlqq6jT0ucU0xrFh0000GbW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs0002% zNklPlnbPU5!7ZXn9YY70WD|vGF-!|wZ?&CPH1n905}Yo=$!*|2H{3ZAld_J zHcAl#V0}@c1k|@!04>zdcj3c;ZabV3)w$aIBn(k4K3Gb0pW^MpMo72`R2E{>;fFfx z@2%RgX;P&9MO*!g*PG&jU90o*^L)7Dff9P<1K0RzKGZ<8XXFD55MUod1H?bYKCsS* z#{luWEi^!`d{_iX=7VH_RA+zXgLs^kGhUky9}C75F9%Q6S^xk507*qoM6N<$f}xtM A`2YX_ diff --git a/graphics/pokemon/squawkabilly/yellow_plumage/icon.png b/graphics/pokemon/squawkabilly/yellow_plumage/icon.png index a042d981d06d1fdeaadf88731c7d7b68269f137f..085b3e0e2b40422ee2f70be8cb49100a7ae6afb8 100644 GIT binary patch delta 688 zcmV;h0#E(_0@nqQBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAryamoJyR{N|g3W?sJ^>l=i)(TK48C_V%pR)oSKSDPm$;K|w)jIel9I007cSL_t(Y ziS3kK3xhBWMKyVlB#`|7f4iINhFeo%>;pEu_;!zNqvcG~nRh3U!`kQB$4H=U&xio9 zW(fG!`+&$5as&59^k=~e-eQ(SScgQbNz8vNrVw-M2p~jB06^aZs&d`KrC2~&m4mSb zY8NRMK$x-@p?=yBRlG=SVnS4W4IENrX3jaR{wWxPnO2}XLIY;X_^96qkz$0~L30As z<6D8~qDL32L5KaBU&zP(@uVJlKRoE6@WY)RNxegofun7Ma$l-qbzdqX2FJnQ} z_b`r-CCg=1Zf2(4mJ4mL@2&}dagH;gKZzxz{%Y~k2H{iEXT;ntn5MHwe?HyQFwL0Z zA^S(IR1Vf9(yU2 z)`mSle%|NrhilBLUp_Iv{}^ol#NmkTp93sRGQKMu{%G~JZI%Bs!#m+uBj=M(hn*Cb m%dc?As|#47|8Hkq1>=Nz3D$Cv&HI3UXYh3Ob6Mw<&;$VA)uj#q diff --git a/graphics/pokemon/tadbulb/icon.png b/graphics/pokemon/tadbulb/icon.png index 0341a387fb8ebfa28ae9d6544a2cff6fb2a6325e..d0de9612ea40c26c1ed156ab7300088b4e278b79 100644 GIT binary patch delta 623 zcmV-#0+9Xj0{jG!7=H)@0000?P=%ZT00D$)LqkwWLqi}?a&Km7Y-IodD3N`UJxIeq z9K~N#r6Ls(i-nNgNw7S4z7YA z_yOYN=%nZ(CH^ldw21NGxF7HCJ?`ECLZiY|vugrSHOolFV}D{cw<-o+5yTJzh+sfs zrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf*>74h8L#!kz#OK8023?T& zk?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLjvch?bvs$UK);;+PgL!Qw z&2^fih+_!}B!3}7Mh#_DU?EDYMv93P?Z-U)BaS~wE}2|qFmf!Q3Kf#$2mgcL-I|4| zNjE7N1G-;q`y&Dbc7bNyw!e>UyLkfmpMfi_?XNa~*-z5zZ7qBR^lt+f*KJMS11@)f z;U`@(BuDbo6bc34{fxdT2Mpc*4}zCYrvL zR~jI>)@U|=#U@$3i%5?Rqt}IujP-sBM_`x$J!@eg99J@d(+I!NTL|Z{p{jyx&ap^V zWu|&&t90ee8Y}}SS^!!Zh0xN2Z#EBhJ}hI9MLv)( delta 354 zcmV-o0iFK*1n~lp7=Hu<0001qplF={000McNliru=K~!RAvBQOV1ZP1_ zK>z@;j|==^1poj5Fi=cXMPi(TdwYAmy|n-T|9hNDoXtwKgMV7?#f!zPDfad$)nY-E zd(Fk9&GwWjVq#iBK|%9-Hc9{h00Cl4M@0Xn2lB-L005OqL_t(|oMT`Z+<^Z-8vpZ5 zRFTg!XIg$hR$w`Erty4aff=1MjqQ;Hem)fJn2fCFhp?dF%b7?5|6~OX<&XvVCkkE^ z>_irLAt))>k6Y}He;ti-$nId^fAnNgNw7S4z7YA z_yOYN=%nZ(CH^ldw21NGxF7HCJ?`ECLZiY|vugrSHOolFV}D{cw<-o+5yTJzh+sfs zrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf*>74h8L#!kz#OK8023?T& zk?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLjvch?bvs$UK);;+PgL!Qw z&2^fih+_!}B!3}7Mh#_DU?EDYMv93P?Z-U)BaS~wE}2|qFmf!Q3Kf#$2mgcL-I|4| zNjE7N1G-;q`y&Dbc7bNyw!e>UyLkfmpMfi_?XNa~*-z5zZ7qBR^lt+f*KJMS11@)f z;U`@(BuDbo6bc34{fxdT2Mpc*_YUWBQVq#iBK|yIbeOmwk0QE^kK~zYI?NreY#2^Tp@DBg~w+HH^D(-2y+{2M& z$wJo>w12&>e|@!7^|?<(PYCZf#DQr5l$dn~)qW9C@3S~)2T1MpenSM40lZ~J0MKAk zD#RTj#>PW#AUZ)+0J#`uAc~;eN?|WTIRp^fBmNC?4hjvbBRXKn;X;%}q)C7ru2i*H z)kTNgvQOJr{UzkKGt))xbOW5r<>Y)ve4^yo6KA=9{b0SD4+-0x54rszA5!}#`7qgk z%7@+lYd-AupY!2t|CSHA{UIMx`%n3h+duN*WdF#A)c(pNACL_ZkPnbH%bDCG-}XP> gfNuX||9aQ{ALsWH_(n)(qW}N^07*qoM6N<$f{bou6aWAK delta 419 zcmV;U0bKt21+fE=7=Hu<0001qplF={000McNliru=K~%ID+kv$h@$`i02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1poj5Fi=cXMPi(TgM)Luy}kec|GlI^_Vy{&Vt+yQlqrjQ|6)qb?sJ^~ zw4|iP|7xt9Vq#iBK|xumkYoS=00Cl4M@0Xn2lB-L007lVL_t(|oZXVKjsqbKMEL`Y zAJ~&f4+_)6|9?hszigHsA5u19AziB6(J>m?BtnQ? zFb*j2FALd%2!EvQwNBP1SSQA%n1K9Zx;4h&v5HInW1g>)6m>vl! zwtsP!qj?N1NoosX;EuH=8N&fR8r^T2x%hq#iC)5wa6d4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPfDNklSbQ1P@7qnx8?=h=$a)# zJ>{AJvH}263Dvj&ph`d^bPiCbyw{AtAzl$U$ua?2e?O1t2jO^fK0>-dAdl&s>*(Xn?4N8RHob5j#cPvkW`1K!7?xT0YbP!uiVp*-W|s j8Hq>aLm3cwbU=In-HZ|FPw`L{00000NkvXXu0mjfMDZvS delta 329 zcmcb^I){0J^5o5ow)FxfL4Lvi(ZE^7O;Z>c7`Z)N978-h?@l?(cgTRJIgq(sE$Gj` z{O-$s%u_CS7Ccz)^Elyr-tMo~bL|Wol$+PcIz&q;c*_>Vzj*Mtm-D<%aNp{(1)Qe$ zmRxTe(cuypII6-798GX{B+W_gj;JbUyRkP z7QDFo(1MZxKgNd-oc|QoJ=aROFY)i;reANit=anU#gjk(E2QOY|XPL#JS#@l^KiPTKCP3 zXFU+iJK-7!u3Nbr8ZDH=R;t)Q`aFsDb`1C8kFA5VrDe{45w?eWtKLloftMDmSsggu^DI9qRG0p9jicw|N{ z`dR&E-H#LeEIa=m__yaJyViuK><^hD>k^n|)=5-(uo`Xf<_}Tu=06|Ly0%tbf3JqX V#7`3rYXUvO;OXk;vd$@?2>{R4k;(u7 diff --git a/graphics/pokemon/tatsugiri/droopy/icon.png b/graphics/pokemon/tatsugiri/droopy/icon.png index 48e8c01fd03025e0927d394b8924f1f3b7f4db40..041a9a44695071b3959ab50b5221a8d3341aea9f 100644 GIT binary patch delta 584 zcmV-O0=NCW0-FVpBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPeXNklc7}j{YIEHw1zMW#ocSM1QMbSe~W6%Hp zxf>okYwpp=eAjh2_R++TN`_0{{0e1^_{#8du7Jb#AjJb$&6L>F=Jysb^a_92C#YSH~ z%;>S`x_9L5irD&~+x+YQI81oS{_WEt{tyLudk*mvXZcq;9O7Ts9-@$HSEo1OlY>J1 b^~0PW9Rz(}dI=-~9nRqC>gTe~DWM4ftGR2y diff --git a/graphics/pokemon/tatsugiri/curly/front.png b/graphics/pokemon/tatsugiri/front.png similarity index 100% rename from graphics/pokemon/tatsugiri/curly/front.png rename to graphics/pokemon/tatsugiri/front.png diff --git a/graphics/pokemon/tatsugiri/icon.png b/graphics/pokemon/tatsugiri/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0db952cbd8cfce18715bb2dcfa6e2868e1130e47 GIT binary patch literal 669 zcmV;O0%HA%P)4Tx04R}tkv&MmKpe$iQ>7vm5sQd8WN4i%h>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La) z#baVNw<-o+5yTJzh+sfsrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf* z>74h8L#!kz#OK8023?T&k?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLj zvch?bvs$UK);;+PgL!Qw&2^fih+_!}Bq2gZ4P{hdAxf)8iis5M$2|Najz38*nOtQs zax9<<6_Voz|AXJ%nuV!JHz^ncx?gPjBLW0=fo9#dzmILZc>?&Kfh(=;uQq_$Ptxmc zEqny@Zvz+CZB5<-E_Z<8CtWfmNAlAY3I*W(jJ_!c4Bi60Yi@6?eVjf38R}~J1~@nb z#)_1^?(y!P&ffk#)9UXBcinQSAQf(M0000mP)t-sVw{76gLA#Tz5oCJy`(|*_9@k3 zLH3j>i+lfKO3m(bod2|>q{aVgtej$ET0ucUS*eg@0001(NklBYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwPevNklmVN)X4PY*l;+EVssoWWD*pVOg8)IvW2taN;Y-YI; z2W*DH)QJI8tfYGFfW+aFhqzuFW@Z;|7*(QV3f2a+QqXwz>F(7fn*~G;HwRc1>PL)$ zR~hBSaz4s+6X1?-GaGM_#4c7*>0_IEHw1zMZn0@2~-fYcA{hJOBUR zW>^-+w(hFl+knlgG9M?^L|K1a&9LD#qY;~8!^4G64KvFYv4zc>%E2J6F7Q(!B!#;p ztWr5;+l{rFmTG?%yM%0IXDI8g`>N3xc#gA^DR!URR*paGZz!q<2%60l{U{W+=ALQ! z!t507s!sRS!u3MO`Q?8$DxBtj^K_~F3WvBl0lf+B@?MQg diff --git a/graphics/pokemon/tauros/paldean_aqua_breed/icon.png b/graphics/pokemon/tauros/paldean_aqua_breed/icon.png index a0421d7dd006d24f7a688d3b92f700951d069d6b..d1669390e153c4e7b670a2c881cac870aa71d2ca 100644 GIT binary patch delta 741 zcmV4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWrF-b&0R7i>KRM8FsF$g>6tD*n@w*q5xFsAWM6L~me+Cj%%dtE-awRI@(rY*?NF+pxm=4cL-66Ue_1zg>QneJemAe~K8RYCJT0 z$#{eR>$5rsh`+K^fDHGa0%W@X5Fp9@tC-FGNC8r~KLkkOen+tkPwwX!AiMi11V~BY z{uCgk`{N=D_s0PF)cu>o3il`bBfEcVp#v88=X|(^?s;&_2jAT}9{N^Z;-)DK3=Cg9T^vI^I^Twz<~yvwqy1*n;gtXX z@9XhjbDUIoSIu-)NXTtZkAuexkJ_EEb-BXAm33pzgS~1OEh09rvUW}6WS;)#&8MlW z77Mx*6s)~CYe|@`=r)yXX)V*z;2WP>dr$1jWUg<%dccB9pa0vvoSE$h`r7!I?q#Yu z{My6mv$om9eSJdF!bJ)PQn)U~t!#6y*kNH@;&epzSB+A_6o)@EpRcId+`2+pG4>?)ai{JLv-JcB%0R~T3KbLh*2~7ao CMwiC` diff --git a/graphics/pokemon/tauros/paldean_blaze_breed/icon.png b/graphics/pokemon/tauros/paldean_blaze_breed/icon.png index 25ec7e046389b926f093a533a4343be654b14375..559c3e4acee0b50a19ce3cde8ffaeb26c1a3aa98 100644 GIT binary patch delta 756 zcmV4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWrKuJVFR7i>4RN0EdKn#mr$fNcDe_J0(Gd|itp|I@0?n9-K9ebp0``rQV2z0{$ z$tMON)FhUwAd)WNRdH~YAjpln=&LnlP$^;rx+*KT;0o?WLBJ@JfP%Xd$gn;HCs6!h z!YPj7RA+?vM0i^;QmM{{**EBiGh^S20*HTERXG|YhEAw3R3kd@*%+(tK`TGlaIqc) z)HbQgiatbqNzk*BiKUs5D0tTTF{AS!cri@0Qz|VEpH|>&;_6F7_ z?BDjDuqu6K-1+Ihoi75UTL_@Km1z&0000;-)DK3=H2qT^vI^I^Rw?E7WAb(=yxYaO2^3 zzxV6@Y;4@Nu?Z$-Yt_w4cs&^tsL)GjB#mFe~rFyXqNn+rYm%rrSn(q z;m3y$WXvnIpFXil-R*LVIsaSxeG>8?AI9DPS>QZDTi&Q?ON|G|rH_dU9_QQp6g1`a zjGxq4=zf{6^;f{|$EviN4WZ|MCd{7udEt+{KYi_T%AZM=J$U>t5f}yxp00i_>zopr E0Po4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWr2T4RhR7i>KR6!2IAPgh)9{>Nhivt~lBt37^s8p%769-zmwg0LXuhHh zW^vj8P#Nu81&iop#IdY9Nbnx;$Aw!R&_#@4EMQcuG1;5d4tGqM&pC}Oow)W+YTTmB z+k3|;6t{47(M#E?Xwhx_OK&_7h5~Whk7|EHP%kr#GazN~B1ilPP6Eq_bAo~(F0GK_ zXJCzvO@t$u3~-JIf|C;Qq|tx<#=`Try4_zS%yNHBnA81d!kq3833IsL>ks+e{W|hx z6Up4akGZ=)x@UKPG{^4#Bp){SYn~6w{Z33$?Ct*4{tdVL$LGpIYATfZz;i^a?av>k hXb*(@FZs%RcmY#P7X#_I60HCL002ovPDHLkV1ig^Oeg>V delta 287 zcmeBS`^YpwdGcmPn|cO;k|4j}|7hT>;-)DK3=9uET^vI^I^Twz<~yvw!(7$>|9}2; zajC`w%jR0Gv<%2Cdt;Itdn))g)4g;*g&z}556=!}Y*=+t+{dAP=Nv)KUd=Up2c>E5F668Drjy7wvpRi2&M|4v&Pt^(SLVKY z%)D{?s|o!7ic&T_cmA`j{!Dx4hG)(uo}U$2JZAAbKH6QgPx#Fi=cXMPi(TgM)Luy}kec|GlI^_Vy{&VnOzlDT{mmVoJ^KbDaOQq@>0FYOI`M zVp>5#L0PGgWB>pGB}qgKl+ljFAP7a9*iIk;?*ISoV69fv&OYz%@K`Qzi{WhB z-wWV}yx0c?0OKw{Ng;hbAW`AvqUhC%kX9n=Ekdv@ts-}%-~c%< z>BYdVJ{(MgL(eA{2=*f-(eS&cfKLIl$$lIvGVg#n=UH9hGm?%9pL&Lh$&pCeFg{Cm zk8Ch`o_ywNj_;CZL^e8A~VR<_KV(XvM;SF-h7Zi!W Rn)d(z002ovPDHLkV1h=5z%l>; literal 0 HcmV?d00001 diff --git a/graphics/pokemon/terapagos/stellar/icon.png b/graphics/pokemon/terapagos/stellar/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f11525da0d62309846160e34757cbb49ce59f1b6 GIT binary patch literal 582 zcmV-M0=fN(P)Px#Fi=cXMPi(TgM)Luy}kec|GlI^_Vy{&VnOzlDT{mmVoJ^KbDaOQq@>0FYOI`M zVp>5#L0PGgWB>pG#7RU!R7i>KRPAzuFbrdt5Ms`@-v4bUJJ174+wJde=?4cAitX5% zrqjaoVZA2+5dPi}B-T3-$n+NfNcgZthA3N@H=)A#vWZ$!RG%nNQK%Uirm>y~A_;|p zsr$_y6djdvP2#m?SUq&moAj~Cd6(EClEfm?lVNAPYZqxU6V^dEtg1mY>dPi^SWoj@U0V1BnZTX3ac*|`0DU(y_Yt!vp6*}d?^?L6eO&r zN#dap3Hy+MHxi^bEyShsNQf(s9o08NgCnJ(QQ*v09CaSKqIu;lC8;|=UR>4Zkp>Af zx#m*&Tx8{Wz)*_UJx@Y#mV$V5>HH!U9;G4!(J92276+>RG9lOqI1uXbFrrb2D-$B2 zJ8`+TOXScgfxKMdO-1%RUkoT7>lPlI*U(Q0|Nb!jS${Y*?Y%$L`tXPO)*m>TZH(qz z@BN{2jB>i`Ykz2C{FfVlu<(a<^M|tB`2*6MGKj_7vp;YHY)(i*a5b&L6ORf0`q~LG z{WKvBhSMaLxJ`wVKWJg>el&rLKP2Jc5_;<1XcXcssYR8%z4iyPx#Fi=cXMPi(TgM)Luy}kec|GlI^_Vy{&VnOzlDT{mmVoJ^KbDaOQq@>0FYOI`M zVp>5#L0PGgWB>pGV@X6oR7i>KRPBy~Fbrd=G8&fD@Bg;vl#doDe@}PP0%d46NlA>S z=^q9FUh2&lcQL>*!ED3`+(k$-A2Co$skrkfHyn_Zgq#&GW!udGd#a(zG*O5((8}QT zGD*VI)Rl$Ia^^zARb8AXaV9Y#+~HX@Gu$=Lyt7=KmmU{UH6HV0n&xGkcw7BY+l)cX4B+?poynxB^s$w&U0KuNL`U?k#Cyie;P zDo)xva+!(53!i$7^||ym&OpfU%b*ao6A8NE94M{?KAmC@3^M#OY6Kxg0gs8uU2YVZ zIZ&u13T3FZRjgP=`;Fg;z1L4Yrvso4W#|uwgUEw{GzXzN2Lx1e*c{}pi^D)F?&O|@ z*&9eW4E5U+E(TKdZ=Jku1|qA)9AEg|K*Tx+8X8D*m?s0-zwk!`X%6#XAUpmwkdqqz bvVr^niV-CC%Xm2I00000NkvXXu0mjfRh`#w literal 0 HcmV?d00001 diff --git a/graphics/pokemon/ting_lu/icon.png b/graphics/pokemon/ting_lu/icon.png index 0b1f975f9e1fd19da2897a9ca67f9664b61094ab..a4cbc121a249f0a6873e2d80127e7d3ad45b0869 100644 GIT binary patch delta 809 zcmV+^1J?Zb1NjD!BYy#eX+uL$Nkc;*P;zf(X>4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWrbV)=(R7i={l+lvIAP7Z6b@f4k|Nq-XQ5zx2zID1z+o`>`Kv2$cd}y)V^S)u^ z%{TXJ*Is=3eK*J!5l}pY)MFcc7>KYhi8TVAt7s9#Lh1s*dXc1gx~Y9}29?DCy&g0v zD$EL~>(y3S2}u)x>h3Y>Fh~lh6}ZMp}QS zJAI_({DL8BY$XdebW6fW}r7B!7lJQCmz7<#p-L+X2}kdT>xfs5(dOQVB@el zskD3-`L)Hf1lI577+Ytl=k*B~y`F%3`(IvvS0Jk&ZUR~Tuo1}Yhe;qiKTHDI`C%5w z#t)M~c7C`DByIdK3uNbqNgxk?7y^k~KU@Uz;D=KnZ~R~{@*Lj}550b{z5!SzDM1WH R4>AA%002ovPDHLkV1hLv#MA%) diff --git a/graphics/pokemon/tinkatink/back.png b/graphics/pokemon/tinkatink/back.png index 63fced4482750d73dedec5e965a81b1742afbcf1..acdc03246fdbf9c518be7737cd55f9e76e080e5b 100644 GIT binary patch delta 477 zcmV<30V4j01eXMmDKwhYr*=b2(w?6G=Hdtl2;X3qTq-Q3K6#~JQQw$+I1(9V8dUt3 z!h=Ra{QUfPe#PByANi48AAg2PL_t(oh3%E?u7WTOh7r3ByTkq8?r96deUy&jFB9KH z6B3_iZE4&z{qhZYJRYC%&*$?K1@o-LeDdO?h9tl-4b9|U)wqZIpx>a|jFwy)cW!t)ac4q;N?#lzedZ;_jSj zPlG5@GcGIt|NqX*!5fiXAAem*L_t(oh3(bRl7k=&1yI3cWLV?>f9@uLuB;F!Jl5Ok zOdooW(Nb8JH{TQh=Kv<^_D3=*fDL`eLyY%b$PmDNOKu#H{sqwIeUiR)vw(Fp*Qc1z z`w19nreI9ZSG`Xkj^j8lPY5QYV|u^u-XD^ET?28oy9n;btRefc(0{$&CVbXs;L#VN z4Xh_n>Z?KyRQj5b1GT;)_^tsI0P_Ln0A&DEU6Xe}8K6GGG!XtZQxkYjGR6VFZQkz! z)P)ux#3Zn72z3E!zvCSUBb15y<`#h@MBqsPbpi;tTy2iE_1&>>507a54A?3FX@Cfb zBJdl_0_od3Vj2N?gMTjy&Eo+B5Fa!S^hJ>SFAI(N6ToK?nNy&wPJr#>Nwy*&S?_!l z^UN0^tbrzRZe_r2^ZyB$@Y0Vb%+~EQ5m!ebtseyk5B|W$1H@p1j-g*wi2js zhBt4%HNP^T8Fq!dGwuKY01jnXNoGw=04e|g00;m80000001whrlK=n!07*qoM6N<$ Ef}IY`$^ZZW diff --git a/graphics/pokemon/tinkatink/front.png b/graphics/pokemon/tinkatink/front.png index f263a31f20d993238f641f34edf036559a8a763d..2be3c6d2935c25cac9569ba835be6c3651bcb0a3 100644 GIT binary patch delta 486 zcmVc2&B>UT5zKLR*6&;AMsqD}%JUI8I4%RASM7_0mf+hpU*T#0p&(g_ICjG3@D`R zppa&00`?seU_S$hT7Lb99>8mrE2$g`=>dp7`mIK?HW?mSNfp3Mt^Fl|{CjiCVbV4f zzYMbV_>GWv57s92>wiEV!sU4WL3q{3s%&n-ZS3FNQEv&1Rcy}!kPUPJIH|bPgNBhG z$lUZ>SUf9@LmdI~L6lD;208(J8^HNh^UK9&Q@jAp4sqGN6hN-7Xau(V-R!OT1%Sox z<j*W-J-}3!*1x@> cp`n}l0eBx4^1hc65dZ)H07*qoM6N<$g2u++$^ZZW delta 477 zcmV<30V4jO1eXMmDKwnYr1oX3_Kn58&gQ*Ha|jFwy)cVvU8KFCq;rj|N;r%5;_jrj z&4VaXIZ%85|NrUDm>rQ_AAf8~L_t(oh3%Eia)lraMkNpwHTeE-+k64r?i$L>U6C2D zZq6~}$GdGSR;*aD;_t|Lj%UhK3eJ>?CJamvOc>aB;)xWPCJiXVoFJ=Vg3p<*BWIES z@m_h3}8 zq4PFKY>&gdDR6OnocVKGvEpO#1?cn)LGl0=v;Y7A4rN$LW*$vV04e|g00;m800000 T0Mb*F00000NkvXXu0mjf9K7D+ diff --git a/graphics/pokemon/tinkatink/icon.png b/graphics/pokemon/tinkatink/icon.png index fc7300cb0aaea746cf00035c9b51527d9a0596d8..0eaec6b14038f5f13cb2bdbb6ab911c83b0e1ee9 100644 GIT binary patch delta 414 zcmV;P0b%~W04Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o IAwQ9P!qwxy=l}o! delta 40 kcmdnQx{qms^5o5owvqxRL4Lsu|53q#fNtl>ZyApQ0I)L{Q~&?~ diff --git a/graphics/pokemon/tinkatink/normal.pal b/graphics/pokemon/tinkatink/normal.pal index fb5977571..6256a0042 100644 --- a/graphics/pokemon/tinkatink/normal.pal +++ b/graphics/pokemon/tinkatink/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -246 101 172 -246 141 197 -189 206 230 -189 72 115 -8 12 8 -189 48 139 -106 93 164 -189 161 164 -115 141 172 -74 56 139 -246 226 238 -164 182 205 -131 40 82 -57 80 123 -255 255 255 +154 212 167 +118 67 75 +210 158 158 +255 230 226 +8 8 8 +223 96 150 +70 50 134 +165 62 121 +120 107 163 +186 169 223 +37 32 81 +102 26 84 +252 151 194 +122 84 182 +252 252 252 +119 126 197 diff --git a/graphics/pokemon/tinkatink/shiny.pal b/graphics/pokemon/tinkatink/shiny.pal index aa21dca4e..5b879230c 100644 --- a/graphics/pokemon/tinkatink/shiny.pal +++ b/graphics/pokemon/tinkatink/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -246 101 172 -246 141 197 -203 131 108 -189 72 115 -8 12 8 -189 48 139 -196 173 161 -189 161 164 -112 73 54 -148 124 112 -246 226 238 -156 105 79 -131 40 82 -51 46 43 -255 255 255 +154 212 167 +118 67 75 +210 158 158 +255 230 226 +8 8 8 +223 96 150 +92 42 44 +165 62 121 +165 96 81 +223 152 124 +56 18 25 +102 26 84 +252 151 194 +131 70 66 +252 252 252 +119 126 197 diff --git a/graphics/pokemon/tinkaton/back.png b/graphics/pokemon/tinkaton/back.png index d876ebc79ab9527f5f8a6f258ccee291335859b3..1a08f502f0376d7d33d4752e76fb90fc7eb919ab 100644 GIT binary patch delta 782 zcmV+p1M&Qc2F3=EDKwhYr*=b2|K{S-o}LH@2><{8Tq-PsMnX6e8Q++ErC?E|K6(6? z!e$y&-(Z$^e#N5g|89|8AAhw;L_t(oh3%K&j^i*0gzIFK5bM(Sf7~+$W3ZE6qrE>T z9nx;QZRYbBFv-4N|Ko25(oX@)4+&WRNT3p*0EJNEgZ?OSk0^kYmgUL@N#vu(Ops+! zMKFyV>2e(L$n~> zpW`l6?g{1MRP!GQY=1#BMx9`4cPO=hNlKYo2V$jzTJ04WMcls5e-#BWj=^?;I_tuI%0ie@q0H}VmF?mHO^@B{u5v_ot?{ilP zaf(2Sakm5LqI7A2^HIvPqZ#l3h`yb5nl03H5)TDjH8Pw5pKrZXN14nNVF-IbstCl4WRZUdq*=sgC2N&1oXzJ2GBM%EH9_X5wwN~_jS#{)$$WS zeuDyl;;2E8Ujc%i!jPHN17QU4*|tWjk0F!#0?_p35RjR;(T)TGSU5;YURgC=n z{8(P2r$J|~S$%qI0jH5&AAep+L_t(oh3%H`Z7 zR;n&N2QMLTyZz!H3TpAU?AGFI$;3{Qk8!3lgWSJ;%9nDua`@7~z`KK)V(10&hkPm4 ze4#^#VF(J}-nByV2VFc=FuEY8^5eBZ1nxirk^%U_8$VmoUP?l!!N-*=J`I`XAs6oEw#VBg6E|_?0Ar%wgA0#KGFAM&DznfwR zoR8cEYS1iJJQP;K;CljvhT%hjO)`ck0&iXyTuX2P3_SQvmq0-g!+;@ zfbQkR3a|vOyGeCi1$Yv)MoJrvFLMG1s5C?3iC=8UGe0sw z71Vi%h=8Q2cwzkHnQPP}{Y;N4)WGU?043jf6~ ze(|5gA17EO>*nv%1ONa44rN$LW=%~1DgXcg2mk;801^NI0Mb*F00000NkvXXu0mjf DgE2#4 diff --git a/graphics/pokemon/tinkaton/front.png b/graphics/pokemon/tinkaton/front.png index eb5ce6e8a65627f7d76b49e8fcbb428d907e0a1c..f197ddc3421e4087343242fbdfb5aba7e2045c6d 100644 GIT binary patch delta 1007 zcmV<{8MlyzaRJJ7`QM#$$cx$7jK6(6? z!e$y&-(Z$^e#Krmw|J3VAAgidL_t(og`Jm;f~zVFghf&sLAdY#wl|Xi;_tD`ZnZ7U z=MZ9~)AX{rw*&9=GYIZa7^s~0-Z`Z>`oqPYpXd4WnL(L<2YAS#NAvy<4pfL4X!|t| zA|p3{aNUad(SjqI+(!Xs=7l~;+e1Dod#MlMD~)*s%-w*#;a%@h|9`D*7~{GD!UcF) zmRkaUzat^W*Z`)7KaLNC29PkY$T5<+0jPGfaQP6YO^<7YfFZD|5dlo~6YFOtB7A)b z2oOPS`aYkaaUh1ZSbd%e(hbw1$Nw@CzT$!i;PtKqnayf^D#@EWYXp`FH_{ z-2f(mv7254x*;%^6MunmQ8N%3<3slwsyp)`9q7CQ;PPyG8*YfIuTz8xqnzhZ0b4Z9 z#-Ohrm2eBtTv%`pOORC`^s&Y05@0Ju7CQ`)UV z#;O6{0nC0)lScp$mh#AlT?8HhDRn?k!f;`ruHy-i)-_uoLVsu28pgc=Tdhlg5pvEA z(ezuA-UFZqAZMI=%2)eu0jtX8getJhLXHCf`csJpU|yZ-OGfy1Sv&$Xh6eziUILJ3 zVKoo}f_VwBRonxl>gi)x&VmsG0Rx8nfRBrKG+<(V>2{zFu-di*uolKs2vmuGY$vwo zu+_F@TmucwIe&zc&Y-up6EM|24KD$015oALUS^E^lU`ysYy4(==bifnps`RUy>%)wle=nIay19pUtIHaJ%nu)%A67+IR z=}2e@&A?L%OAZs|LJdHpg%*d#p!4)4e;h?|@Sg&3Jbwd>K}UJJ1t`Rva%nB)^@?!S za1YA$v8l)@m7H<;lxh&_>xtkrYoRBxknJVS=3rU%xH)9mOp88e@?MqJDA&By1oQV6 z7*7w;i*JxBLTI_P#FoEuZ-Kv7I&(%1sRV}~7$8)HFZTq-b3-!AYcm5*>k*bjCs3s0 z0icDu>3^|+3eY>TKv#)88T4AzpYkMFt+fORj@+kGvh8Q7RJGob4{Da`!L^YC+H}PykNagRc6JxiJ07YjPBd0Z<83BVfS&1X`78Z+3Nu d=(-HG_CF*ZLw@Dm<*Wbz002ovPDHLkV1j6(*<%0z delta 993 zcmV<710MXP2$u+uDKweVq%kWq?9kAvgpUso4`ff9iE)&zp~Xrza8fQs>5;YURgC=n z{8(P2r$J|~S$&ej67G>*AAf8~L_t(oh1HkqlA|CHg>7gNbk@B8+wM8tc*#h_O6{K| zab!}SkG|0)!|?wMsn^%~Aa)HR-(W;y#1(=_2wwmwtphXt!U9zZxX6i7hlgIgd8=HQ z99W=_j1U>e@jz&GUCoUL0LnRZ)5pr94Y3cXdJ%P3cB>^k1<(aa34alrrb)DFY<+p4 zpCE%A7MOml0Tr(PD1sAZi54Wl+#SU(=LQ&LY)|S_`UEhoDAKi=?RLyjdZXqdHQT!1#@7ejpWE{lG*t+oS{FLV1*| zMxZs>RY(h`lC+yn2Y(<0v;n1*&G8AJz#N#jmw6X}*iA{Q-c87Q-Y6ddkZQuS%!TNb zro)7s`+&iG#UFjsli-N~ti-~kEq2FRZPoVNgBp7G|*0NjUL5li|7XmqDiLYVFRBFCyly?rzckVXVT+zvos z01(@9nyv;Q1WiCV9ivB#^^!yW)2c(5V8aj5vVDw#xYR%sP#6P_QlO9VOgI6Mm!^JG zI|BM&fJ2`@1%F_+_klPA&U*Ig3!tVRBUlp6k>QOXyB^uS>VwtaLIP&hiZj4>VtaYl zQ@ku*%ArZv7?2*XKhgjU)*q~uU9HD+$oo?MH~_cZ zhZDgVzkPQ=EFkE*$VvcjhY4?l=71Pa1yuf8)}>y$0e|K$faMQ4JM0RjzgDFQwIVu% z!lL(c!U%Su2(7UYFn0lCJ!kM$j(Q@v54fcXJHMmJxr`ptk6 zU$5$f6?R8Y0KQ0?-AE!mDCHn@062PhaIg)bo~;brmlwwD`?3RIq8F(0&}fB*mh4kBe(NoGw=04e|g00;m8000000Mb*F P00000NkvXXu0mjfW){m! diff --git a/graphics/pokemon/tinkaton/icon.png b/graphics/pokemon/tinkaton/icon.png index 72ab26b86b50d7f59d16c22578339518566f2ac9..8cd40c4d5672543e5c8924c13c3b2c8de455f032 100644 GIT binary patch delta 898 zcmV-|1AY9d1)~R$7=H)@0000?P=%ZT00D$)LqkwWLqi}?a&Km7Y-IodD3N`UJxIeq z9K~N#r6Ls(i-nNgNw7S4z7YA z_yOYN=%nZ(CH^ldw21NGxF7HCJ?`ECLZiY|vugrSHOolFV}D{cw<-o+5yTJzh+sfs zrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf*>74h8L#!kz#OK8023?T& zk?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLjvch?bvs$UK);;+PgL!Qw z&2^fih+_!}B!3}7Mh#_DU?EDYMv93P?Z-U)BaS~wE}2|qFmf!Q3Kf#$2mgcL-I|4| zNjE7N1G-;q`y&Dbc7bNyw!e>UyLkfmpMfi_?XNa~*-z5zZ7qBR^lt+f*KJMS11@)f z;U`@(BuDbo6bc34{fxdT2MpcQrf9h+4=ikuV1>%zN@x>F}V5` zv5y(HZ=1;ePBY?fw!uHQEpb@!Xg62{CAvr{#X!k+JPcOif`8xMC)j5efH3W>Cgtuh zoQ8PPKRZm-9RRxSs(+mup`k$I*^AL^v)(}6bHMtHnj#F^8d{@^x?r?24Cbmkcy+@V z4KBlwl|eKN$7z62=0hjL)q_uxiz2|;~ucChUM*C#m3b>)v zS_QSuj;ljxOn*_S9>HNCR`y&?PC`NT7i)MQYTR4rEL-%2&_P*sS>_lTi=ffqMb>@5 z3NBT&J`P>Cl8;E)LyZVeTK1!{;aZJ`STnyDhsE2c!_&Q`kEg1S?fbd?!|Oi-1m6J? z$A9qQGe9~YQh-c+NC9%=LjsToAD#eN`LF^c=feb$2U{QR09p9(0LYUM2|yA)%m5jD z=y=Eh5_~xDU>QIDz^G6wQal_0u{t82cwobW4>=x=A5uL0 Y0A+tE4R66VI{*Lx07*qoM6N<$g8o;Z@&Et; delta 647 zcmV;20(kwS2dM>+7-Iwj0001qplF={000McNliru=K~%SAPvQ)p3ndQ02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(UG>8h=4*lVw9xSVnJeJT0ucUp~@Ek00001 zVoOIv|D^}=#Q*>S%}GQ-RCt`d(mhMVKp4RBeuI36n>s}>P(`7Bn=FMoI9$nK2L}&_ zW)5OImOeteIT)xPMM%K36)vR(^D^}DxR<1@2u|Mk=Xs8%_kU|Nem%H83gzr*AXy!Z zAWUy(bwSH}eNLhiQ>^j!EPUzm*p%(XZ7Y0k5al7K~Gq#hp`Be2-h+c0MPTDh}inl9S0tu!wLCV ztM3pewFrqwDt~VP@I+Z}NW|q8#fYAXG_y9gD>sVwn>$Lyh=nLOp0e}1n@j}r?R?Q> zS0eOHfEi=W%p03f!f3Eq_#PeWopSP-4;WGpQnfMX_xU}J5`d)~`RasyO8dbOAQ;Ku zhG~z{V##4CgXQ8dXRH{)WT{|2U8fw@Ba5RCF6 zz+6^fq>ma*<-e8jSXV8jSLh?1Rahtex!n;HmJD z)IJ0l;bY)Y^PiURD17XwH{AmxeN5Hc3NUZV$0RUdqz}HD>fp|$j}-*kn7fufiXhOJ hqVl1C<`~bH{s!XHhcvD8ifsS@002ovPDHLkV1ja0DOmsj diff --git a/graphics/pokemon/tinkaton/normal.pal b/graphics/pokemon/tinkaton/normal.pal index 1c44fa8dc..d6d3151c4 100644 --- a/graphics/pokemon/tinkaton/normal.pal +++ b/graphics/pokemon/tinkaton/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -153 210 164 -49 43 51 -236 208 208 -170 132 143 -15 15 15 -100 79 155 -137 113 148 -173 161 197 -74 54 112 -82 46 69 -233 145 181 -236 85 140 -252 252 252 -88 94 163 -167 65 103 -174 89 125 +154 212 167 +118 67 75 +255 230 226 +210 158 158 +8 8 8 +255 255 255 +70 50 134 +122 84 182 +37 32 81 +186 169 223 +120 107 163 +165 62 121 +252 151 194 +102 26 84 +223 96 150 +119 126 197 diff --git a/graphics/pokemon/tinkaton/shiny.pal b/graphics/pokemon/tinkaton/shiny.pal index dd18420c0..a1c1fab15 100644 --- a/graphics/pokemon/tinkaton/shiny.pal +++ b/graphics/pokemon/tinkaton/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -153 210 164 -63 35 25 -236 208 208 -170 132 143 -15 15 15 -106 52 67 -139 87 69 -203 131 108 -83 40 53 -82 46 69 -233 145 181 -236 85 140 -252 252 252 -88 94 163 -167 65 103 -174 89 125 +154 212 167 +118 67 75 +255 230 226 +210 158 158 +8 8 8 +255 255 255 +92 42 44 +131 70 66 +56 18 25 +223 152 124 +165 96 81 +165 62 121 +252 151 194 +102 26 84 +223 96 150 +119 126 197 diff --git a/graphics/pokemon/tinkatuff/back.png b/graphics/pokemon/tinkatuff/back.png index 5a5cdac31b14c387001927c37bb1586a43aef104..cc789e6c417b488062a628fe6a0ab90fea78f270 100644 GIT binary patch delta 457 zcmV;)0XF`%1%d>SDKwhYr*=b2|K{S-o}LH@2sjcMTq-Qzn0%#RQT&&}W*SuAV3vbM zLj3&vcYejCK6zQfE9)AIGNkl*^a{?31&Q zfMP~lAwEBcLOJ9$0C8DUKquf&m3czJ0sZsjztu^ofVePs8%-4$u_<;(w}R-gnW-TcIWp>EGyAZCJn&n5FT+*mMye=7T{+pG>c2`NsP) z?>egEYk5ax8=%(XHt#nvRQa2fk^`~a{(OL>Jg@6K=R&;!=@dzMT`qr3f#x0rz+c?P z-D^4%%^may8U4knfyKOU0WoAxCjZu3EAFeorsSfJ3D zc$iQym^fHy7#Q@#@cfZo9)AKPNkl)xn(@ z2X-lY8`6;ac>LlQi!d=hr#A`vk%MSUudO)l;&!vOffToROVJp%8%YSyhV*_niNx1& z%P`=x;v2#Hh6(?@fDP8ZZpk?o?;YkoUVDiAx27hW1=Q`f|DghdloWP7{fhgRN=QF?$&&)RlUWa_|D_#rK%;?A;7X=rwZZuuM=ksZ>dz_*e z@NAe0!2FX|6LMY(DBiPRXfOnwCkrA4k9Z-LjQc1E-8eH4o_~JW_;o}7-QxgH5#2eBB8;!+*se X;R7&Kzi5;900000NkvXXu0mjflKv$( diff --git a/graphics/pokemon/tinkatuff/front.png b/graphics/pokemon/tinkatuff/front.png index 8b75e709bb9ec188f763f2170f0884770fe78440..54459b2c1951ca63be0ec9835b4360582a7bb3cd 100644 GIT binary patch delta 716 zcmV;-0yF)J1%n2VDKwhYr*=b2|K{S-o}LH@2qhpzK zW*%nL<=#DnfVbPXzV)p^-Mv1?C$A3`_qpKH{E4CR(?s(phI{1)0%raTf&HB?hM=`9 z%MXU!e_zK*;II`8;f3bt|8x-?bT))*kb;*Lw1N&F2oC;eK{4>M1b>d1j*&<|IvW~( zLJ#I%5Mwlh{sVsFcoMWc4B)8f-6PnU;3b$rX?P4j30i(d1CYVG zh!91Pi|dPCux5TW!%(2}P+m0=Ot5BN%&;|WtOlQ^@KWHM3Pe=3uG@AN=;C)9h*&Zl zhPxsHgYu6DX$%z{`+sNx4q@NN5kRiCfX934m!8upzC zE#P`67H$PF08S}M4&XcjXm}lB!iB>9p=^qh3X(`lNRmW(5r5=2gC549qf8uz0ypFq zKty=6izppj;9FNKo^OQGJuD+7W(|Xe5Co)nZ|KiLRiGT#;F1t&vk#-~U!G+@-gL&r z8elZr&{Lo^8x#YJxfP%_ftwk z+D;s@Lr`E5KQ=%A7&igXxSKuSyO-?P{PJVo#k2onlk5sCV3>JO#7sB=Rx4!ki>kpJMDUqj(s14`<0000FeorsSfHq& zz=&{=U`UuqFmRhN0k)A{9)AJ(Nklu!V~5QTSOM3#!a|J!zM2qr5cQ^5D&X0np^W?|&tLqu(_F43_a*0JzDlvijl&D$Ni9rb!99YJWEnsUdy{0BoGp zZzS@2(kOsjY@B4}H`!Y?25`Z4m(|bnjOHKfBu2|3K%|$s0tQb4!kY=?e?xF?p1lD^ zPtpkhia(M50Q|5q1YSdM3?S|9Wm$4R7=#!^vQ9q2zB9YYpEC9k7(#?%rz%GIv3kwl z2M|FnAP@lc;OG}X&VQ-LKr#~`vSv$Qw`T>AdIUsqM}S(r;$wh({?QBy1NQ2_s+&Pc zQ#p5Q0Yn9XCZ%XLXE}&F+8-fm3`v!-3t+oOVCMl#1=6~0DO2oSfcPzbDgs1IX7i_(0P78KHF%MUeR4^Lv$If!(ixtrVw%!g?_?*e&r5`@8Rj55#1SwI=9 z&u5v=uI_J7n}_B;kQ}(8AN>}^4v6JK%1fI=&t3osjbBFLKZ77xPZJCx8efMcDF6Tf07*qoM6N<$fnNgNw7S4z7YA z_yOYN=%nZ(CH^ldw21NGxF7HCJ?`ECLZiY|vugrSHOolFV}D{cw<-o+5yTJzh+sfs zrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf*>74h8L#!kz#OK8023?T& zk?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLjvch?bvs$UK);;+PgL!Qw z&2^fih+_!}B!3}7Mh#_DU?EDYMv93P?Z-U)BaS~wE}2|qFmf!Q3Kf#$2mgcL-I|4| zNjE7N1G-;q`y&Dbc7bNyw!e>UyLkfmpMfi_?XNa~*-z5zZ7qBR^lt+f*KJMS11@)f z;U`@(BuDbo6bc34{fxdT2MpcAO&5Si6g9K6~u*Ps^hXy#AJ+P*2hWvKf)?YnF zZ$A7lAJ|^@l@Hx!X>red=+<8Wa^*v}{&D5QX1j0Z!voj<15UdU%2-qK`Tzg`07*qo IM6N<$f{H>m9smFU delta 455 zcmV;&0XY7}1?vNl7-Iwj0001qplF={000McNliru=K~%S88;0s%Gdw^02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(UG>8h=4*lVw9xSVnJeJT0ucUp~@Ek00001 zVoOIv|D^}=#Q*>S4@pEpRCt`#(y?m8Fc1b{zrnqOvd0kZd8rPkr8cC4Zi*kKLkC0q z7@gWcGQ?1-En}sG_Y8v1%JfHqypyn5eHzgFsEb# z7V(l{10J!2>5x@p(DKx=q!pU>eHVgWYtp*?G#qw3DNXdf7s4m7p$Do!2($Nld)iP5 zi}h0GzS18ey^*;rYK@I2r#01j6l=Iqq(1tsNj9fV4RQL)bT!MFy2Q5#`&1Rcpnj% xUmppW!AA diff --git a/graphics/pokemon/tinkatuff/normal.pal b/graphics/pokemon/tinkatuff/normal.pal index 0f90f999f..324d6798e 100644 --- a/graphics/pokemon/tinkatuff/normal.pal +++ b/graphics/pokemon/tinkatuff/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -32 208 160 -80 40 64 -232 208 208 -168 128 136 +154 212 167 +118 67 75 +255 230 226 +210 158 158 8 8 8 -232 144 176 -232 80 136 -168 88 120 -160 64 96 -248 248 248 -48 40 48 -88 88 160 -168 160 192 -136 112 144 -96 72 152 -72 48 112 +37 32 81 +70 50 134 +186 169 223 +120 107 163 +252 151 194 +102 26 84 +223 96 150 +122 84 182 +252 252 252 +119 126 197 +165 62 121 diff --git a/graphics/pokemon/tinkatuff/shiny.pal b/graphics/pokemon/tinkatuff/shiny.pal index edea9dd34..639de886c 100644 --- a/graphics/pokemon/tinkatuff/shiny.pal +++ b/graphics/pokemon/tinkatuff/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -32 208 160 -80 40 64 -232 208 208 -168 128 136 +154 212 167 +118 67 75 +255 230 226 +210 158 158 8 8 8 -232 144 176 -232 80 136 -168 88 120 -160 64 96 -248 248 248 -48 40 48 -88 88 160 -208 152 120 -152 80 48 -152 56 88 -104 24 24 +56 18 25 +92 42 44 +223 152 124 +165 96 81 +252 151 194 +102 26 84 +223 96 150 +131 70 66 +252 252 252 +119 126 197 +165 62 121 diff --git a/graphics/pokemon/toedscool/icon.png b/graphics/pokemon/toedscool/icon.png index 91edeb2472bfda59a8f94a377ae3029afa546662..6021e614dfae8d476ec69180a4707c04ebc6cd6b 100644 GIT binary patch delta 615 zcmV-t0+{`k1Fr>;7=H)@0000?P=%ZT00D$)LqkwWLqi}?a&Km7Y-IodD3N`UJxIeq z9K~N#r6Ls(i-nNgNw7S4z7YA z_yOYN=%nZ(CH^ldw21NGxF7HCJ?`ECLZiY|vugrSHOolFV}D{cw<-o+5yTJzh+sfs zrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf*>74h8L#!kz#OK8023?T& zk?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLjvch?bvs$UK);;+PgL!Qw z&2^fih+_!}B!3}7Mh#_DU?EDYMv93P?Z-U)BaS~wE}2|qFmf!Q3Kf#$2mgcL-I|4| zNjE7N1G-;q`y&Dbc7bNyw!e>UyLkfmpMfi_?XNa~*-z5zZ7qBR^lt+f*KJMS11@)f z;U`@(BuDbo6bc34{fxdT2Mpc|C)YmfF7oQnftNo1Y8 zk9@h7=H)@0000?P=%ZT00D$)LqkwWLqi}?a&Km7Y-IodD3N`UJxIeq z9K~N#r6Ls(i-nNgNw7S4z7YA z_yOYN=%nZ(CH^ldw21NGxF7HCJ?`ECLZiY|vugrSHOolFV}D{cw<-o+5yTJzh+sfs zrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf*>74h8L#!kz#OK8023?T& zk?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLjvch?bvs$UK);;+PgL!Qw z&2^fih+_!}B!3}7Mh#_DU?EDYMv93P?Z-U)BaS~wE}2|qFmf!Q3Kf#$2mgcL-I|4| zNjE7N1G-;q`y&Dbc7bNyw!e>UyLkfmpMfi_?XNa~*-z5zZ7qBR^lt+f*KJMS11@)f z;U`@(BuDbo6bc34{fxdT2MpcIjGcj4_D=AZBd#Jsl6&GM;!L_xd)_Tr{uy+DyK53;`A&zGd60Id8 zXTT!8v${DU>{bCFcio>4J^Y&L^b(-2fS$t-t5-xAuu)D%Q^=dD|NO$dby|18TqR)6 z2S`TD04du4=X~(?#iITBHN@@joxcS{RtT9`rT+)S6C!mJuZc0fF8}}l07*qoM6N<$ Ef=jb8d;kCd delta 440 zcmV;p0Z0Dk1%U*R7-Iwj0001qplF={000McNliru=K~%J3o!Uew^slF02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(UG>KYsyYOGiZir3doG0003cNkl)#)^m;kh}eq&d@W;+qC9V_ z!@S+8>|SpKl)(-H zAq+$z9$G@}{QuwD!fM<&yBti6G4?u-X(?e!`NC3tlh9K@il|C3Tt=2iFcbi4)6-8oPe20u}&2wCcj02#lAGmiifiaZ5~z8@egrFH=# z>i}UR>;mM~;U6H+7K;G6=fh!u?DByH$UYxVzVD~=;RZ1iB^h=E#-2 delta 364 zcmV-y0h9jz0=5H?7zqRe0001qplF?uEa7bBm000ie000ie0hKEb8vprlCf&TFc3if2jZp_0?FKO=vQTurh1e%|3UsCTj7j78;kZEI;Bt=+f!O{p- zff|s?&`1PqU<)g0v;zRIu<|t;*tUoDjf%NOv*~W}Ade>p;O!0{be4HwA7Acwh!q3- z)b4ld5_A3s)uIE;5&2CYpNL4g2O{l3+EpId5=+cZ{>q2#QCc}53bGb$Fhq)|wMEcn zxYh2bAQCtOi&b4GE)k}loS&5r!5~4Tx04R}tkv&MmKpe$iQ>7vm5sQd8WN4i%h>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La) z#baVNw<-o+5yTJzh+sfsrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf* z>74h8L#!kz#OK8023?T&k?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLj zvch?bvs$UK);;+PgL!Qw&2^fih+_!}Bq2gZ4P{hdAxf)8iis5M$2|Najz38*nOtQs zax9<<6_Voz|AXJ%nuV!JHz^ncx?gPjBLW0=fo9#dzmILZc>?&Kfh(=;uQq_$Ptxmc zEqny@Zvz+CZB5<-E_Z<8CtWfmNAlAY3I*W(jJ_!c4Bi60Yi@6?eVjf38R}~J1~@nb z#)_1^?(y!P&ffk#)9UXBcinQSAQf(M0000mP)t-sVw{6}dwadTwEzGAb92q4toF2n zTJFV*#jGjz_9^yaQj~km#iY%>DV$iKD5{4-!icH`TGWh}Cx?QuKk5S7 zi-9`A~L%c<6Z zqM1-cD-<_vxX$xT2MwY0YdSL273m|rvQr$zcNdh3{m#eI`v%Aj};= z;kDUAnkV}4K rI};%9_|f^0>w+JZ510J-RzCaylD{9QaPp&200000NkvXXu0mjf5e%c$ literal 0 HcmV?d00001 diff --git a/graphics/pokemon/ursaluna/icon.png b/graphics/pokemon/ursaluna/icon.png index 8a847040723b11ea206516b982e2e7dd9791c42f..d56041d555a2fb0203f0b7b2b4e14cf65abedef8 100644 GIT binary patch delta 315 zcmV-B0mS~K1B3&R7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&^R0Rl-xK~zYI?Ucce z!ypVqW034{8UO#^?hKTaHrc(cRJFB)A~Mfo>_lwaM@HsYzlj-O2AN1SrM@h|bcK;Gp7sV{edT;C5GgL<|5;Rn}79WaezCLaI* N002ovPDHLkV1h#Sk(U4f delta 347 zcmV-h0i^zf1Ed3x7zqRe0001qplF?uEO>acO6e z7|7;NzvIOEvh4Q`y>Du4S44SiLP{nEKBR#_jmJx53O!Jhf*t?{=~;#;;u;)B6gYnY zVWfcGncH`s)K>b|4f)xnNgNw7S4z7YA z_yOYN=%nZ(CH^ldw21NGxF7HCJ?`ECLZiY|vugrSHOolFV}D{cw<-o+5yTJzh+sfs zrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf*>74h8L#!kz#OK8023?T& zk?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLjvch?bvs$UK);;+PgL!Qw z&2^fih+_!}B!3}7Mh#_DU?EDYMv93P?Z-U)BaS~wE}2|qFmf!Q3Kf#$2mgcL-I|4| zNjE7N1G-;q`y&Dbc7bNyw!e>UyLkfmpMfi_?XNa~*-z5zZ7qBR^lt+f*KJMS11@)f z;U`@(BuDbo6bc34{fxdT2Mpcy}h*m|NnDy&7`dMw1Zmi#f!zPDfad$_F__$ zd(Fk9&Alm{Vq#iBK|$$6v|j)K0Ln>3K~zYI?NrMS!ypW+!wCr`|NpmhN)LmiFlmQr zQiFP_jep5Q@o_xy$6;n0g6fiDA_847D1d^5a6R1xBoZ93E>KE>lfXk6-Um_wJT*sA z^AxEq9;l_}HC*YTS}x%VipCOV1ZP1_ zK>z@;j|==^1(UG>6n}f1N}SC~w1Zmi#f!zPDfad$)nY-Ed(Fk9&GwWjVq#iBK|%9- zHc9{h00Cl4M@0Xn2lB-L006{EL_t(|oZXT=3c^4Th4%)_;sJt56$lAtDnW9`+)MBb z+4M6pRyOmDVtzJQDvDEnyczZ_pE18a7F`IGB?K4ZAYz%SAb(SLz#Is+T$5pQdc88i+nNgNw7S4z7YA z_yOYN=%nZ(CH^ldw21NGxF7HCJ?`ECLZiY|vugrSHOolFV}D{cw<-o+5yTJzh+sfs zrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf*>74h8L#!kz#OK8023?T& zk?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLjvch?bvs$UK);;+PgL!Qw z&2^fih+_!}B!3}7Mh#_DU?EDYMv93P?Z-U)BaS~wE}2|qFmf!Q3Kf#$2mgcL-I|4| zNjE7N1G-;q`y&Dbc7bNyw!e>UyLkfmpMfi_?XNa~*-z5zZ7qBR^lt+f*KJMS11@)f z;U`@(BuDbo6bc34{fxdT2MpcpC;cBpCx1Zhtlr6kt70m><2+g^Mo1 zfwqC!zE&lEB?zlU-1!vG2_X>USnES*1W`Qude$+W>LH*nT3rk+Occ#j`fe9h^JOQ{|t`sM%~>X)&;FU>YGM Z{|mvX6+NIQgAV`z002ovPDHLkV1m_?U_Jl< delta 514 zcmV+d0{#7o2Bid$7-Iwj0001qplF={000McNliru=L7*08VbZQPSXGY02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(UG>8h=4*lVw9xSVnJeJT0ucUp~@Ek00001 zVoOIv|D^}=#Q*>SNl8RORCt`VlCe_5FbqKR2l@vwa9PY<8Gxl9MTao814BKLJD9TM zJQ=$Rj}kIj&VUS# zy}S@-0Z51s{C}1PQGlGu!hRkq6G^etIi+yEAJ@+*;X`g;&owsC)na&czDeBBk4%#v z=Xv|lkK+OeO1@-263BieU$P%DWA-DKT=>CZ-Isp&!TpyXcPl@(-Rr`SZM73WKJsX& z+Tp?vw?SU`@vTOW=M)I-K-H%d2$w^}%jLnOV diff --git a/graphics/pokemon/voltorb/hisuian/icon.png b/graphics/pokemon/voltorb/hisuian/icon.png index 2a35e4ec33ef6eb794f309aef50d96ba621788b0..c3381d7fdec3f5e0a9c40d82b4d93127c354621f 100644 GIT binary patch delta 171 zcmV;c0960}0rmlq7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SbV)=(R7i>KlR*x^ zAP594Al`QW|J$OsCStE`!dz!Wqp`K(uP`|35#$M%bstGVpX+_HFNi1rWC6wDhzVIi z<-nSNGzdqL@Yn`Whfp=Pvi%`qx~RJ*zOfq?R}w_g`(>8;dDSq(%WE8UQ9P;NUBCPL Z+&N+kLu5Fh)Bpeq002ovPDHLkV1hsLNWuUB delta 179 zcmV;k08Ib(0saAy7zqRe0001qplF?uEa7bBm000ie000ie0hKEb8vpE`5|9>=oc{z#*e|i14^bbe^-^$C=((;i6{-xKwLl)pyd-go-SsFqQzkOZZ zyF3(uXYZAs4Tx04R}tkv&MmKpe$iQ>7vm5sQd8 zWN4i%h>AE$6^me@v=v%)FuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~RI_UWP&La)#baVNw<-o+5yTJzh<{)}Vy2!*FJ|C5zV6}U z>s^#*d7t}p^eK6h0X~st?f%Ws^E4huXp zWMoqF#35p_*uioKvy!0_PZNg~Rik_%>$1Xmi?dp(vDQ8L3xj!WCCzo3qljY(2_zvx zMh#_DU?EDYMt_Ql6z#`6{3DJ(NiLaOWiWCqpb8a|;|KqP-`$#psYy2}7z4UrZ2Kbu z1a^UD-L}7vZM%5__@99*t?jQifZ0#d>uoK31oUqM7uRh~-UBXofZ-=yG9*Xx(-aB? z;QfrgDF+PR0=;W)Z>@ctJ^&f&YWW5@I0VLul)dip?h&5O-u^w)>hA}4-EyfQ6>f5o zAwGWrkx4{BR7i>4l);X}APhtkgAWB{|Nr0a7()Un094u=&iAlB7ilo|VN7CHX>=E~3$NmQn-{O}}zrkf;^_nIm%4Q}gXW zK#Wy4gXySNF2kV+fWhYD%gc}~LqZLZXeocWU|@Eh0@y_JKr{)TK{p4+2kCWsvFUJ+ zy<(B{iOjY@&ZVwKq*tpNFk;<@Y$4F88kCyh40N8R`x14!l62i1MA(K>e1#TI(hb;$ z(5J%^qn{1B0|L7;Ljpc|dRI@!NrlM6Z97 zyE5ol(kfy~JL%>8d)%A+^W(LBeWion|2-X?ADs@%@Xn8t^s5xRnT;QghbJE@9x6Wu zJWPB59-JRH9v*zq&W{ZqE`IFrfHkyUhbF1r2grjD!~1Fg+4Cx)0pyhr4v0M;8X%kx%ga9i;@|P`2aJIu?eFuR Q%>V!Z07*qoM6N<$f-9hhK>z>% delta 345 zcmV-f0jB)_)g41GBCRkj`%7 z02a`Ifbw}8ZA6WeLpKPMOKl8h*NcHm6hl!Guaho<@t}K8Z%QY9o|Q$)!`xM%*4C?~ z4aca+4D0JqWkNk!O6)Z~fi-XIDt(kNsYtQwB2wZqv^FaAY^KK!a2@iVPQ+~NjqPQS z_(@X#7cKnP&lrzTi%xy9!hO0WIC*3@I47C_S}b;+IU8sEOMqkG*ts(R=ayy`7q>Ni r*#E=sllaGwwVcs~395HTcmifVSh00000NkvXXu0mjfAd#iX diff --git a/graphics/pokemon/wattrel/icon.png b/graphics/pokemon/wattrel/icon.png index a0a8bc9d49965be4805f0c4ea133f728995c6e06..33bf137c90368fd0f1e158cc1d4c856236b24c68 100644 GIT binary patch delta 659 zcmV;E0&M;I0-ptt7=H)@0000?P=%ZT00D$)LqkwWLqi}?a&Km7Y-IodD3N`UJxIeq z9K~N#r6Ls(i-nNgNw7S4z7YA z_yOYN=%nZ(CH^ldw21NGxF7HCJ?`ECLZiY|vugrSHOolFV}D{cw<-o+5yTJzh+sfs zrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf*>74h8L#!kz#OK8023?T& zk?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLjvch?bvs$UK);;+PgL!Qw z&2^fih+_!}B!3}7Mh#_DU?EDYMv93P?Z-U)BaS~wE}2|qFmf!Q3Kf#$2mgcL-I|4| zNjE7N1G-;q`y&Dbc7bNyw!e>UyLkfmpMfi_?XNa~*-z5zZ7qBR^lt+f*KJMS11@)f z;U`@(BuDbo6bc34{fxdT2Mpcl+u`5wVF9}ZvPkM@DPeZX!X t%ZHFSN+3%c-DX2?;q6v0hH4TC>*6-DGUGr002ovPDHLkV1mM>HX{H4 delta 363 zcmV-x0hIoq1^NPz7=Hu<0001qplF={000McNliru=K~)S3jqTjBESFu02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1poj5Fi=cXMPi(Tb8~aOy}kec|3PY$Vw9w$#ee_qbDY&;LA|6}_U0+} z_N>*_YW9>VVq#iBK|um8y^;U`00Cl4M@0Xn2lB-L005pzL_t(|oMT`Z{^0-r4=8+o zLBaPZ0v`nhycc--}mkvs`vi??Pov*{2v%b z0Uj_g>Ek(i`sl-+J`l!2)5m+X^nsdSfawD{!GO~TivOsaJ^*!aY+6vzEQA06002ov JPDHLkV1hVxmz4kj diff --git a/graphics/pokemon/wiglett/icon.png b/graphics/pokemon/wiglett/icon.png index 668309c68ea4eec620eaea7d73f6add4646faa29..4c8e951fd8d704747605d8cf9f1ac4ef6b4fc779 100644 GIT binary patch delta 575 zcmV-F0>J%`1BV5W7=H)@0000?P=%ZT00D$)LqkwWLqi}?a&Km7Y-IodD3N`UJxIeq z9K~N#r6Ls(i-nNgNw7S4z7YA z_yOYN=%nZ(CH^ldw21NGxF7HCJ?`ECLZiY|vugrSHOolFV}D{cw<-o+5yTJzh+sfs zrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf*>74h8L#!kz#OK8023?T& zk?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLjvch?bvs$UK);;+PgL!Qw z&2^fih+_!}B!3}7Mh#_DU?EDYMv93P?Z-U)BaS~wE}2|qFmf!Q3Kf#$2mgcL-I|4| zNjE7N1G-;q`y&Dbc7bNyw!e>UyLkfmpMfi_?XNa~*-z5zZ7qBR^lt+f*KJMS11@)f z;U`@(BuDbo6bc34{fxdT2MpcqOV9$8N@C0 zqS1&*1L!@z8jP#}kw+EL2P3C^#85&`#cF0Yn}>hdFz*-0-WU%r_yB4w3ru7slSTjl N002ovPDHLkV1nXa{dWKW delta 325 zcmZo??Ps1Kk<7x(z`)SCAY(3&VlVOZb!C6fEGx{X`f}lf7eFEL64!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{mX zMn?O3#w2fdm;X!IKOF^1Z}xO?45^s&cG5;(CPNP_PHk5|60vS<}Xh+R?M;TX|jC7 z`@hxoS=>5RmDwpLBhu}5d$U=UoIJ2VPf|nNgNw7S4z7YA z_yOYN=%nZ(CH^ldw21NGxF7HCJ?`ECLZiY|vugrSHOolFV}D{cw<-o+5yTJzh+sfs zrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf*>74h8L#!kz#OK8023?T& zk?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLjvch?bvs$UK);;+PgL!Qw z&2^fih+_!}B!3}7Mh#_DU?EDYMv93P?Z-U)BaS~wE}2|qFmf!Q3Kf#$2mgcL-I|4| zNjE7N1G-;q`y&Dbc7bNyw!e>UyLkfmpMfi_?XNa~*-z5zZ7qBR^lt+f*KJMS11@)f z;U`@(BuDbo6bc34{fxdT2Mpc*_YUWBQVq#iBK|yIbeOmwk0pUqRK~zYIwUoh*gD?z4i9`-=BG3Q-?T#JVdO}y- z%Nik}czl)>fm0Ek zu4+Bn%xb(nLNE-ixg&OCy1k8ecJAk}lLa2jCEFGOH=I2J!!ti^PMEl0*854pGw+%o z-hI%jpUC=vnOB!%_~6Y(@zx?xTc8`$HjH(^?tkDcG*bj871oVDI4T{`(&^HoN0xb3 zLQD`t!D|ot>sf$`IW691ErGO{dE=y(5)rISSRH0j!>1PonB--i!?MIQ3MR_O@O8OI zC9`->CKl+Lw{w15f%NeHjXVc$?NabVc*gY?MS>;b4SS};AaA_#9$WJhaQ!Op#UmHm zD}RvHar?8qtrkr;AEgRb7W?KZYTr)jw?q7Yp~vupkBWp3co2Skz{8CnH#}VY*zllD zNQWH{s#yG}c-TiHKZFm55+(qmd|=ECAj*e4Hx&>&A9%EO!YCiK!;wcz`OtR4oXUsh zN|Cggt3heH^Ow~Ljt5K;K~PX7sBvAP(EbT z4mUn1VXzK$;e$g6b36h5;=@9OP#_rc1jL8*v&;(+zd+)D0PzFUC@+}eNurhj0000< KMNUMnLSTYqYtPsK delta 580 zcmV-K0=xa@2hjwO7=Hu<0001qplF={000McNliru=K~%SE-(X4|4#q_02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1poj5Fi=cXMPi(TdwYAmy|n-T|9hNDoXtwKgMV7?#f!zPDfad$)nY-E zd(Fk9&GwWjVq#iBK|%9-Hc9{h00Cl4M@0Xn2lB-L00DJLL_t(|oYj&$j)O1|hJAyP zFW_7zv~dG9%?i5EC0)4BN)h*ogisnv8zdVfBs@#-m?+sQ+pQZj|2#c>i~+LO1Lw|v zY>u(?j*@JIVt>7d3q_7jFJi}BO9JEto97PB1(4!egoeSf8w(0Ko}7jeOGScdbrKIH zd_~#|_F$7#s==wu7eQ%kD)R!71lFOQ5Xbzq%{n!;N%K4l5pccLRg6nY=!MApuvihqPX8Z+OCzBWFaVd=V5jHvQ~W5P&bQ5Y#|04DJ96}7K? zY{2|WK0SO5I6V3AZB{eCLCG#>Wo{7?f;m SB%yr(0000Px#Fi=cXMPi(TdwYAmy|n-T|8sNAq^$O|gIeyzi^Z%d_Vy|EVp5cQ&Bdh6y(yex zVp>5#LFq)aUjP6Ar%6OXR7i>Kl)VbXFbsoZ3eJ#Vz5m;u-1L6nY~ON2hX~q5AGWK4 zTHCstfM39bQ?3LU256@=K}huDI0=ae_pyMGpl|&t75iG_$BCQZBQ|ER1-gcajv4t* z5HaCezc_C&-v@0mYD;zMr0!??2;G)cD04An!lxu=`M%AA!=D(5J-`aBR0{I~R vRv<_V1ZRPi{h%f&`+-*?%ldWa{rcenIRFk=B-1~C00000NkvXXu0mjf_fmn1 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/wugtrio/icon.png b/graphics/pokemon/wugtrio/icon.png index 1b6704478727f9da5bf14faaae99d5022f9e1178..f35b1d0456cda64f87eb40575581ca8acbe24928 100644 GIT binary patch delta 740 zcmVnNgNw7S4z7YA z_yOYN=%nZ(CH^ldw21NGxF7HCJ?`ECLZiY|vugrSHOolFV}D{cw<-o+5yTJzh+sfs zrk+SIX5cx#?&0I>U6f~epZjz4DS49tK9P8i>4rtTK|Hf*>74h8L#!kz#OK8023?T& zk?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLjvch?bvs$UK);;+PgL!Qw z&2^fih+_!}B!3}7Mh#_DU?EDYMv93P?Z-U)BaS~wE}2|qFmf!Q3Kf#$2mgcL-I|4| zNjE7N1G-;q`y&Dbc7bNyw!e>UyLkfmpMfi_?XNa~*-z5zZ7qBR^lt+f*KJMS11@)f z;U`@(BuDbo6bc34{fxdT2MpcLcR&Dp#xH_7 z1kXlmZ~n*t#^rGotv6#O$O_-UZe_IIV2YeceE4T?P=#jAsDJzoD6PRa@IPcatJ0hB z{X$^AFXKxDawQNPl@lIU2PFC=NYo6uY$lk1(gFc(*`n)GrXaw*$VM0Lh^o~U#E2IK1Kf+c=CCOvP;&13}nr7$ZU0HH`E_D2P^<`ymv>r?BFO zSP-7H`XLrXIX$WBhovB-`C%o9?uS?qgC7=x=zdrTqWfVbh|3QfK~z6%1+h`bkJlR# Wp&at$46*$H0000OV1ZP1_ zK>z@;j|==^1(UG>K7RlKVoOIv|D^}=#Q*>SGf6~2RCt`tk}+}}5O+)M?grP&#p;-_gj;|#Z;YyQc55TPfT=VP+NS;ji zUT^E%yoKMTW$rBu764k04Psk1<|4qdWN>4+(jQg|{^Czsy!g$5^EG=?nSA8JLc=QPN)|UGN|sY4j-xw{#gMJA;Pi^uWn8u*=0zWTM$mtCj?lUfZiiF6@(HZ zT|mena4S*CIALF+9q^T@aSVNeILn&r%KNn1Nd(=4n8PwF}2d z`Ruav@PJJaRz_Rsx{l+Z)b{a{MXV)r6|x2ohOtA<08fR!A*icy%aMC_ttXYMz-j7_ z#NR;%<;@O~$JjfFFo>OlNQ2lMgmPC7LJ>pyz&8i!29akkc{s?0K@9vQgHYRgHVEkt idxJQ;2l{;9<_~vP;27WK2})c50000~^oTNVls_vU<^IvWLQAP4DTl*x-k$cxp%s)E826QD~`bm|{8 z5d7q${Q-VQsO_nyQ1p1dRLe{2ntB0eoB_7kIySvI`jqW;(dNMC!-Q{(mKjSoVVQr@ z@?Pe#26I^A*aDCvohGvda$pXY6ax#9;y|MiD8YK}7D_%TiX1KLr5Rwq_QJ=7_*{v7 zM~xIEP#be-jUvJOfwqb~k*86}B1}w!4TTyklOf~4H9K>SYnW(;>)W(BkX!1xdctni&a0l2W+ Uj?CJa)c^nh07*qoM6N<$g7wLY3;+NC diff --git a/graphics/pokemon/zoroark/hisuian/icon.png b/graphics/pokemon/zoroark/hisuian/icon.png index 6c4f6faf1bf60434b0a0a2a5eedceab423c361f7..a9610d1fdbe9dc4e3fa15140dd762196bd14fb5f 100644 GIT binary patch delta 440 zcmV;p0Z0D&1b_sP7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&^R0e(qDK~zYI)s)L_ zLm>=AFGgX3CC~r=ZO1%XF!yFtwQ5loN#@`On7OW>Sa>6WBI+Z7oHLn60xoCOd);@= z2p14FCa&r$XWvrbrc{S zkVw?AQ+gdDp-;1anIfB*NCdob6>V(@6WS4>>8h>}$S1&K^g1b59>SqJP+6zQD-&=K z@iqwf-!JyZ+hi3Q+o)Dr@jO++vg>Fk(eAr&A$G}4g}oIkDJ395s$q=ZBnr&8`V!Oz z?AM6~`8PrG40Ria&oCqtiIzoDoJS?9_9~!3+oadZ=YHn8iV6C71@|_P~o94iYS;jZL?Q_F<@C iG1!dFt?1Vm4B`WO>LRxpY0(q_0000f?_XX4?f9E~b$FX#!KIu>WB5Es?=R24vY` zRcOI?l~_)^>9$y5gLQQ7L+2hR$v-XlYljKq;tb&{mUiCR#H#^6ZUkpR?YX@NfCPV` zIlC}zWQ@(O$*iyO3V^^p=NV_UpVC5kG7aZx&LF12R#P50!(7%^A}}~VM*vi-Lr&zO z&;-i2$lf?KSOEJpmw8RhqIGG9CLw)gpN<{O;%6xbMjGul!AS zF(NgXP(7Y{iqGkKG8%wB=}DE+|WZB0r2XicEp@_Bvw7CRq$gGR7i>KRM83p zAq+cOaL_{Y|9`va9Nf+7F$NoB^Fa<0+cbLFw%=R;)^J(lWsPsJHGayVK=&Dg;vuRk zQ-VP|-Xt#~Zx!4}KR6?g6B4Q8 zCU)RLf?l+BQOz`eQbENdN+f{ delta 357 zcmV-r0h<2p0a7bBm000XU000XU0RWnu7ytkPB}qg< zR5*>@lD|&FFc8M`2B)MOOT|Snw34ml#L|U#pick;BYCF`3>}i44m=A%>X0FSjOgIO zN06vvo3RVxHh=o=^WEteMSrY#2;Psr0MG0jpbjH+5D_WQ!V!~n12j`Uz$Dwml4yUa zYbZ_@lM*HSfvo^n)tzW+>`zcYgphUE6X905`V= GEN_5) ? 142 : 141, .evYield_SpAttack = 1, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Ivysaur"), @@ -87,51 +92,55 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ivysaur, 56, 48), + .frontPic = gMonFrontPic_Ivysaur, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Ivysaur, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Ivysaur, 64, 56), + .backPic = gMonBackPic_Ivysaur, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Ivysaur), - ICON(Ivysaur, 4), - .footprint = gMonFootprint_Ivysaur, - LEARNSETS(Ivysaur), + .palette = gMonPalette_Ivysaur, + .shinyPalette = gMonShinyPalette_Ivysaur, + .iconSprite = gMonIcon_Ivysaur, + .iconPalIndex = 4, + FOOTPRINT(Ivysaur) + .levelUpLearnset = sIvysaurLevelUpLearnset, + .teachableLearnset = sIvysaurTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_VENUSAUR}), }, -#define VENUSAUR_MISC_INFO \ - .types = { TYPE_GRASS, TYPE_POISON }, \ - .catchRate = 45, \ - .evYield_SpAttack = 2, \ - .evYield_SpDefense = 1, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Venusaur"), \ - .natDexNum = NATIONAL_DEX_VENUSAUR, \ - .categoryName = _("Seed"), \ - .footprint = gMonFootprint_Venusaur, \ - LEARNSETS(Venusaur), \ - .formSpeciesIdTable = sVenusaurFormSpeciesIdTable, \ - .formChangeTable = sVenusaurFormChangeTable - [SPECIES_VENUSAUR] = { - VENUSAUR_MISC_INFO, .baseHP = 80, .baseAttack = 82, .baseDefense = 83, .baseSpeed = 80, .baseSpAttack = 100, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 263, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 236, + #else + .expYield = 208, + #endif + .evYield_SpAttack = 2, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Venusaur"), .cryId = CRY_VENUSAUR, + .natDexNum = NATIONAL_DEX_VENUSAUR, + .categoryName = _("Seed"), .height = 20, .weight = 1000, .description = COMPOUND_STRING( @@ -143,32 +152,55 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 388, .trainerOffset = 6, - FRONT_PIC(Venusaur, 64, 64), - FRONT_PIC_FEMALE(Venusaur, 64, 64), + .frontPic = gMonFrontPic_Venusaur, + .frontPicFemale = gMonFrontPic_VenusaurF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Venusaur, .frontAnimId = ANIM_ROTATE_UP_SLAM_DOWN, - BACK_PIC(Venusaur, 64, 48), - BACK_PIC_FEMALE(Venusaur, 64, 48), + .backPic = gMonBackPic_Venusaur, + .backPicFemale = gMonBackPic_VenusaurF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Venusaur), - ICON(Venusaur, 4), + .palette = gMonPalette_Venusaur, + .shinyPalette = gMonShinyPalette_Venusaur, + .iconSprite = gMonIcon_Venusaur, + .iconPalIndex = 4, + FOOTPRINT(Venusaur) + .levelUpLearnset = sVenusaurLevelUpLearnset, + .teachableLearnset = sVenusaurTeachableLearnset, + .formSpeciesIdTable = sVenusaurFormSpeciesIdTable, + .formChangeTable = sVenusaurFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_VENUSAUR_MEGA] = { - VENUSAUR_MISC_INFO, .baseHP = 80, .baseAttack = 100, .baseDefense = 123, .baseSpeed = 80, .baseSpAttack = 122, .baseSpDefense = 120, - .expYield = 281, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 313 : 281, + .evYield_SpAttack = 2, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_THICK_FAT, ABILITY_THICK_FAT, ABILITY_THICK_FAT }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Venusaur"), .cryId = CRY_VENUSAUR_MEGA, + .natDexNum = NATIONAL_DEX_VENUSAUR, + .categoryName = _("Seed"), .height = 24, .weight = 1555, .description = COMPOUND_STRING( @@ -179,32 +211,53 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 388, .trainerOffset = 6, - FRONT_PIC(VenusaurMega, 64, 64), + .frontPic = gMonFrontPic_VenusaurMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_VenusaurMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(VenusaurMega, 64, 64), + .backPic = gMonBackPic_VenusaurMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, - PALETTES(VenusaurMega), - ICON(VenusaurMega, 4), + .palette = gMonPalette_VenusaurMega, + .shinyPalette = gMonShinyPalette_VenusaurMega, + .iconSprite = gMonIcon_VenusaurMega, + .iconPalIndex = 4, + FOOTPRINT(Venusaur) .isMegaEvolution = TRUE, + .levelUpLearnset = sVenusaurLevelUpLearnset, + .teachableLearnset = sVenusaurTeachableLearnset, + .formSpeciesIdTable = sVenusaurFormSpeciesIdTable, + .formChangeTable = sVenusaurFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS [SPECIES_VENUSAUR_GIGANTAMAX] = { - VENUSAUR_MISC_INFO, .baseHP = 80, .baseAttack = 82, .baseDefense = 83, .baseSpeed = 80, .baseSpAttack = 100, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), + .catchRate = 45, .expYield = 236, + .evYield_SpAttack = 2, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Venusaur"), .cryId = CRY_VENUSAUR, + .natDexNum = NATIONAL_DEX_VENUSAUR, + .categoryName = _("Seed"), .height = 240, .weight = 0, .description = COMPOUND_STRING( @@ -216,16 +269,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 388, .trainerOffset = 6, - FRONT_PIC(VenusaurGigantamax, 64, 64), + .frontPic = gMonFrontPic_VenusaurGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_VenusaurGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(VenusaurGigantamax, 64, 64), + .backPic = gMonBackPic_VenusaurGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(VenusaurGigantamax), - ICON(VenusaurGigantamax, 0), + .palette = gMonPalette_VenusaurGigantamax, + .shinyPalette = gMonShinyPalette_VenusaurGigantamax, + .iconSprite = gMonIcon_VenusaurGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Venusaur) .isGigantamax = TRUE, + .levelUpLearnset = sVenusaurLevelUpLearnset, + .teachableLearnset = sVenusaurTeachableLearnset, + .formSpeciesIdTable = sVenusaurFormSpeciesIdTable, + .formChangeTable = sVenusaurFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_BULBASAUR @@ -239,15 +301,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 65, .baseSpAttack = 60, .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 65, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Charmander"), @@ -265,17 +327,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Charmander, 48, 48), + .frontPic = gMonFrontPic_Charmander, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Charmander, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Charmander, 48, 48), + .backPic = gMonBackPic_Charmander, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Charmander), - ICON(Charmander, 0), - .footprint = gMonFootprint_Charmander, - LEARNSETS(Charmander), + .palette = gMonPalette_Charmander, + .shinyPalette = gMonShinyPalette_Charmander, + .iconSprite = gMonIcon_Charmander, + .iconPalIndex = 0, + FOOTPRINT(Charmander) + .levelUpLearnset = sCharmanderLevelUpLearnset, + .teachableLearnset = sCharmanderTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_CHARMELEON}), }, @@ -287,7 +354,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 80, .baseSpAttack = 80, .baseSpDefense = 65, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 142, .evYield_Speed = 1, @@ -296,7 +363,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Charmeleon"), @@ -314,50 +381,54 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Charmeleon, 56, 56), + .frontPic = gMonFrontPic_Charmeleon, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Charmeleon, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Charmeleon, 56, 48), + .backPic = gMonBackPic_Charmeleon, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Charmeleon), - ICON(Charmeleon, 0), - .footprint = gMonFootprint_Charmeleon, - LEARNSETS(Charmeleon), + .palette = gMonPalette_Charmeleon, + .shinyPalette = gMonShinyPalette_Charmeleon, + .iconSprite = gMonIcon_Charmeleon, + .iconPalIndex = 0, + FOOTPRINT(Charmeleon) + .levelUpLearnset = sCharmeleonLevelUpLearnset, + .teachableLearnset = sCharmeleonTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_CHARIZARD}), }, -#define CHARIZARD_MISC_INFO \ - .catchRate = 45, \ - .evYield_SpAttack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, \ - .speciesName = _("Charizard"), \ - .natDexNum = NATIONAL_DEX_CHARIZARD, \ - .categoryName = _("Flame"), \ - .footprint = gMonFootprint_Charizard, \ - LEARNSETS(Charizard), \ - .formSpeciesIdTable = sCharizardFormSpeciesIdTable, \ - .formChangeTable = sCharizardFormChangeTable - [SPECIES_CHARIZARD] = { - CHARIZARD_MISC_INFO, .baseHP = 78, .baseAttack = 84, .baseDefense = 78, .baseSpeed = 100, .baseSpAttack = 109, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FLYING), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 267, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 240, + #else + .expYield = 209, + #endif + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Charizard"), .cryId = CRY_CHARIZARD, + .natDexNum = NATIONAL_DEX_CHARIZARD, + .categoryName = _("Flame"), .height = 17, .weight = 905, .description = COMPOUND_STRING( @@ -369,32 +440,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 302, .trainerOffset = 3, - FRONT_PIC(Charizard, 64, 64), + .frontPic = gMonFrontPic_Charizard, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Charizard, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Charizard, 64, 64), + .backPic = gMonBackPic_Charizard, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Charizard), - ICON(Charizard, 0), + .palette = gMonPalette_Charizard, + .shinyPalette = gMonShinyPalette_Charizard, + .iconSprite = gMonIcon_Charizard, + .iconPalIndex = 0, + FOOTPRINT(Charizard) + .levelUpLearnset = sCharizardLevelUpLearnset, + .teachableLearnset = sCharizardTeachableLearnset, + .formSpeciesIdTable = sCharizardFormSpeciesIdTable, + .formChangeTable = sCharizardFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_CHARIZARD_MEGA_X] = { - CHARIZARD_MISC_INFO, .baseHP = 78, .baseAttack = 130, .baseDefense = 111, .baseSpeed = 100, .baseSpAttack = 130, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_DRAGON }, - .expYield = 285, + .types = MON_TYPES(TYPE_FIRE, TYPE_DRAGON), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 317 : 285, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS }, .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Charizard"), .cryId = CRY_CHARIZARD_MEGA_X, + .natDexNum = NATIONAL_DEX_CHARIZARD, + .categoryName = _("Flame"), .height = 17, .weight = 1105, .description = COMPOUND_STRING( @@ -405,32 +494,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 302, .trainerOffset = 3, - FRONT_PIC(CharizardMegaX, 64, 64), + .frontPic = gMonFrontPic_CharizardMegaX, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_CharizardMegaX, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CharizardMegaX, 64, 64), + .backPic = gMonBackPic_CharizardMegaX, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(CharizardMegaX), - ICON(CharizardMegaX, 0), + .palette = gMonPalette_CharizardMegaX, + .shinyPalette = gMonShinyPalette_CharizardMegaX, + .iconSprite = gMonIcon_CharizardMegaX, + .iconPalIndex = 0, + FOOTPRINT(Charizard) .isMegaEvolution = TRUE, + .levelUpLearnset = sCharizardLevelUpLearnset, + .teachableLearnset = sCharizardTeachableLearnset, + .formSpeciesIdTable = sCharizardFormSpeciesIdTable, + .formChangeTable = sCharizardFormChangeTable, }, [SPECIES_CHARIZARD_MEGA_Y] = { - CHARIZARD_MISC_INFO, .baseHP = 78, .baseAttack = 104, .baseDefense = 78, .baseSpeed = 100, .baseSpAttack = 159, .baseSpDefense = 115, - .types = { TYPE_FIRE, TYPE_FLYING }, - .expYield = 285, + .types = MON_TYPES(TYPE_FIRE, TYPE_FLYING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 317 : 285, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_DROUGHT, ABILITY_DROUGHT, ABILITY_DROUGHT }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Charizard"), .cryId = CRY_CHARIZARD_MEGA_Y, + .natDexNum = NATIONAL_DEX_CHARIZARD, + .categoryName = _("Flame"), .height = 17, .weight = 1005, .description = COMPOUND_STRING( @@ -442,34 +549,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 302, .trainerOffset = 3, - FRONT_PIC(CharizardMegaY, 64, 64), + .frontPic = gMonFrontPic_CharizardMegaY, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_CharizardMegaY, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CharizardMegaY, 64, 64), + .backPic = gMonBackPic_CharizardMegaY, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(CharizardMegaY), - ICON(CharizardMegaY, 0), + .palette = gMonPalette_CharizardMegaY, + .shinyPalette = gMonShinyPalette_CharizardMegaY, + .iconSprite = gMonIcon_CharizardMegaY, + .iconPalIndex = 0, + FOOTPRINT(Charizard) .isMegaEvolution = TRUE, + .levelUpLearnset = sCharizardLevelUpLearnset, + .teachableLearnset = sCharizardTeachableLearnset, + .formSpeciesIdTable = sCharizardFormSpeciesIdTable, + .formChangeTable = sCharizardFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS [SPECIES_CHARIZARD_GIGANTAMAX] = { - CHARIZARD_MISC_INFO, .baseHP = 78, .baseAttack = 84, .baseDefense = 78, .baseSpeed = 100, .baseSpAttack = 109, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FLYING), + .catchRate = 45, .expYield = 240, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Charizard"), .cryId = CRY_CHARIZARD, + .natDexNum = NATIONAL_DEX_CHARIZARD, + .categoryName = _("Flame"), .height = 280, .weight = 0, .description = COMPOUND_STRING( @@ -481,16 +606,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 302, .trainerOffset = 3, - FRONT_PIC(CharizardGigantamax, 64, 64), + .frontPic = gMonFrontPic_CharizardGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_CharizardGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CharizardGigantamax, 64, 64), + .backPic = gMonBackPic_CharizardGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CharizardGigantamax), - ICON(CharizardGigantamax, 0), + .palette = gMonPalette_CharizardGigantamax, + .shinyPalette = gMonShinyPalette_CharizardGigantamax, + .iconSprite = gMonIcon_CharizardGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Charizard) .isGigantamax = TRUE, + .levelUpLearnset = sCharizardLevelUpLearnset, + .teachableLearnset = sCharizardTeachableLearnset, + .formSpeciesIdTable = sCharizardFormSpeciesIdTable, + .formChangeTable = sCharizardFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CHARMANDER @@ -504,15 +638,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 43, .baseSpAttack = 50, .baseSpDefense = 64, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, - .expYield = 63, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 63 : 66, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Squirtle"), @@ -530,17 +664,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Squirtle, 40, 48), + .frontPic = gMonFrontPic_Squirtle, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Squirtle, .frontAnimId = ANIM_V_JUMPS_BIG, - BACK_PIC(Squirtle, 48, 48), + .backPic = gMonBackPic_Squirtle, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Squirtle), - ICON(Squirtle, 0), - .footprint = gMonFootprint_Squirtle, - LEARNSETS(Squirtle), + .palette = gMonPalette_Squirtle, + .shinyPalette = gMonShinyPalette_Squirtle, + .iconSprite = gMonIcon_Squirtle, + .iconPalIndex = 0, + FOOTPRINT(Squirtle) + .levelUpLearnset = sSquirtleLevelUpLearnset, + .teachableLearnset = sSquirtleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_WARTORTLE}), }, @@ -552,16 +691,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 58, .baseSpAttack = 65, .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 143, .evYield_Defense = 1, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Wartortle"), @@ -579,50 +718,54 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wartortle, 56, 56), + .frontPic = gMonFrontPic_Wartortle, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Wartortle, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Wartortle, 64, 56), + .backPic = gMonBackPic_Wartortle, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Wartortle), - ICON(Wartortle, 2), - .footprint = gMonFootprint_Wartortle, - LEARNSETS(Wartortle), + .palette = gMonPalette_Wartortle, + .shinyPalette = gMonShinyPalette_Wartortle, + .iconSprite = gMonIcon_Wartortle, + .iconPalIndex = 2, + FOOTPRINT(Wartortle) + .levelUpLearnset = sWartortleLevelUpLearnset, + .teachableLearnset = sWartortleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_BLASTOISE}), }, -#define BLASTOISE_MISC_INFO \ - .types = { TYPE_WATER, TYPE_WATER }, \ - .catchRate = 45, \ - .evYield_SpDefense = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Blastoise"), \ - .natDexNum = NATIONAL_DEX_BLASTOISE, \ - .categoryName = _("Shellfish"), \ - .footprint = gMonFootprint_Blastoise, \ - LEARNSETS(Blastoise), \ - .formSpeciesIdTable = sBlastoiseFormSpeciesIdTable, \ - .formChangeTable = sBlastoiseFormChangeTable - [SPECIES_BLASTOISE] = { - BLASTOISE_MISC_INFO, .baseHP = 79, .baseAttack = 83, .baseDefense = 100, .baseSpeed = 78, .baseSpAttack = 85, .baseSpDefense = 105, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 265, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 239, + #else + .expYield = 210, + #endif + .evYield_SpDefense = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_RAIN_DISH }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Blastoise"), .cryId = CRY_BLASTOISE, + .natDexNum = NATIONAL_DEX_BLASTOISE, + .categoryName = _("Shellfish"), .height = 16, .weight = 855, .description = COMPOUND_STRING( @@ -634,31 +777,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -1, .trainerScale = 293, .trainerOffset = 2, - FRONT_PIC(Blastoise, 64, 64), + .frontPic = gMonFrontPic_Blastoise, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Blastoise, .frontAnimId = ANIM_V_SHAKE_TWICE, .frontAnimDelay = 20, - BACK_PIC(Blastoise, 64, 56), + .backPic = gMonBackPic_Blastoise, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Blastoise), - ICON(Blastoise, 2), + .palette = gMonPalette_Blastoise, + .shinyPalette = gMonShinyPalette_Blastoise, + .iconSprite = gMonIcon_Blastoise, + .iconPalIndex = 2, + FOOTPRINT(Blastoise) + .levelUpLearnset = sBlastoiseLevelUpLearnset, + .teachableLearnset = sBlastoiseTeachableLearnset, + .formSpeciesIdTable = sBlastoiseFormSpeciesIdTable, + .formChangeTable = sBlastoiseFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_BLASTOISE_MEGA] = { - BLASTOISE_MISC_INFO, .baseHP = 79, .baseAttack = 103, .baseDefense = 120, .baseSpeed = 78, .baseSpAttack = 135, .baseSpDefense = 115, - .expYield = 284, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 315 : 284, + .evYield_SpDefense = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_MEGA_LAUNCHER, ABILITY_MEGA_LAUNCHER, ABILITY_MEGA_LAUNCHER }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Blastoise"), .cryId = CRY_BLASTOISE_MEGA, + .natDexNum = NATIONAL_DEX_BLASTOISE, + .categoryName = _("Shellfish"), .height = 16, .weight = 1011, .description = COMPOUND_STRING( @@ -670,32 +833,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -1, .trainerScale = 293, .trainerOffset = 2, - FRONT_PIC(BlastoiseMega, 64, 64), + .frontPic = gMonFrontPic_BlastoiseMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_BlastoiseMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(BlastoiseMega, 64, 64), + .backPic = gMonBackPic_BlastoiseMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(BlastoiseMega), - ICON(BlastoiseMega, 2), + .palette = gMonPalette_BlastoiseMega, + .shinyPalette = gMonShinyPalette_BlastoiseMega, + .iconSprite = gMonIcon_BlastoiseMega, + .iconPalIndex = 2, + FOOTPRINT(Blastoise) .isMegaEvolution = TRUE, + .levelUpLearnset = sBlastoiseLevelUpLearnset, + .teachableLearnset = sBlastoiseTeachableLearnset, + .formSpeciesIdTable = sBlastoiseFormSpeciesIdTable, + .formChangeTable = sBlastoiseFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS [SPECIES_BLASTOISE_GIGANTAMAX] = { - BLASTOISE_MISC_INFO, .baseHP = 79, .baseAttack = 83, .baseDefense = 100, .baseSpeed = 78, .baseSpAttack = 85, .baseSpDefense = 105, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, .expYield = 239, + .evYield_SpDefense = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_RAIN_DISH }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Blastoise"), .cryId = CRY_BLASTOISE, + .natDexNum = NATIONAL_DEX_BLASTOISE, + .categoryName = _("Shellfish"), .height = 250, .weight = 0, .description = COMPOUND_STRING( @@ -707,16 +890,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -1, .trainerScale = 293, .trainerOffset = 2, - FRONT_PIC(BlastoiseGigantamax, 64, 64), + .frontPic = gMonFrontPic_BlastoiseGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_BlastoiseGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(BlastoiseGigantamax, 64, 64), + .backPic = gMonBackPic_BlastoiseGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(BlastoiseGigantamax), - ICON(BlastoiseGigantamax, 0), + .palette = gMonPalette_BlastoiseGigantamax, + .shinyPalette = gMonShinyPalette_BlastoiseGigantamax, + .iconSprite = gMonIcon_BlastoiseGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Blastoise) .isGigantamax = TRUE, + .levelUpLearnset = sBlastoiseLevelUpLearnset, + .teachableLearnset = sBlastoiseTeachableLearnset, + .formSpeciesIdTable = sBlastoiseFormSpeciesIdTable, + .formChangeTable = sBlastoiseFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SQUIRTLE @@ -730,15 +922,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 45, .baseSpAttack = 20, .baseSpDefense = 20, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 255, - .expYield = 39, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 39 : 53, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_RUN_AWAY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Caterpie"), @@ -756,17 +948,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 22, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Caterpie, 40, 40), + .frontPic = gMonFrontPic_Caterpie, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Caterpie, .frontAnimId = ANIM_SWING_CONCAVE, - BACK_PIC(Caterpie, 48, 40), + .backPic = gMonBackPic_Caterpie, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Caterpie), - ICON(Caterpie, 1), - .footprint = gMonFootprint_Caterpie, - LEARNSETS(Caterpie), + .palette = gMonPalette_Caterpie, + .shinyPalette = gMonShinyPalette_Caterpie, + .iconSprite = gMonIcon_Caterpie, + .iconPalIndex = 1, + FOOTPRINT(Caterpie) + .tmIlliterate = TRUE, + .levelUpLearnset = sCaterpieLevelUpLearnset, + .teachableLearnset = sCaterpieTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 7, SPECIES_METAPOD}), }, @@ -778,7 +976,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 30, .baseSpAttack = 25, .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 120, .expYield = 72, .evYield_Defense = 2, @@ -786,8 +984,8 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Metapod"), .cryId = CRY_METAPOD, @@ -804,52 +1002,61 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Metapod, 40, 40), + .frontPic = gMonFrontPic_Metapod, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Metapod, .frontAnimId = ANIM_SWING_CONCAVE, - BACK_PIC(Metapod, 40, 48), + .backPic = gMonBackPic_Metapod, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Metapod), - ICON(Metapod, 1), - .footprint = gMonFootprint_Metapod, - LEARNSETS(Metapod), + .palette = gMonPalette_Metapod, + .shinyPalette = gMonShinyPalette_Metapod, + .iconSprite = gMonIcon_Metapod, + .iconPalIndex = 1, + FOOTPRINT(Metapod) + .tmIlliterate = TRUE, + .levelUpLearnset = sMetapodLevelUpLearnset, + .teachableLearnset = sMetapodTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_BUTTERFREE}), }, -#define BUTTERFREE_MISC_INFO \ - .baseHP = 60, \ - .baseAttack = 45, \ - .baseDefense = 50, \ - .baseSpeed = 70, \ - .baseSpDefense = 80, \ - .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 90 : 80, \ - .types = { TYPE_BUG, TYPE_FLYING }, \ - .catchRate = 45, \ - .expYield = 178, \ - .evYield_SpAttack = 2, \ - .evYield_SpDefense = 1, \ - .itemRare = ITEM_SILVER_POWDER, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .abilities = { ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_TINTED_LENS }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Butterfree"), \ - .cryId = CRY_BUTTERFREE, \ - .natDexNum = NATIONAL_DEX_BUTTERFREE, \ - .categoryName = _("Butterfly"), \ - .footprint = gMonFootprint_Butterfree, \ - LEARNSETS(Butterfree), \ - .formSpeciesIdTable = sButterfreeFormSpeciesIdTable, \ - .formChangeTable = sButterfreeFormChangeTable +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define BUTTERFREE_EXP_YIELD 198 +#elif P_UPDATED_EXP_YIELDS >= GEN_7 + #define BUTTERFREE_EXP_YIELD 178 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define BUTTERFREE_EXP_YIELD 173 +#else + #define BUTTERFREE_EXP_YIELD 160 +#endif [SPECIES_BUTTERFREE] = { - BUTTERFREE_MISC_INFO, + .baseHP = 60, + .baseAttack = 45, + .baseDefense = 50, + .baseSpeed = 70, + .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 90 : 80, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), + .catchRate = 45, + .expYield = BUTTERFREE_EXP_YIELD, + .evYield_SpAttack = 2, + .evYield_SpDefense = 1, + .itemRare = ITEM_SILVER_POWDER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_TINTED_LENS }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Butterfree"), + .cryId = CRY_BUTTERFREE, + .natDexNum = NATIONAL_DEX_BUTTERFREE, + .categoryName = _("Butterfly"), .height = 11, .weight = 320, .description = COMPOUND_STRING( @@ -861,24 +1068,57 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Butterfree, 64, 56), - FRONT_PIC_FEMALE(Butterfree, 64, 56), + .frontPic = gMonFrontPic_Butterfree, + .frontPicFemale = gMonFrontPic_ButterfreeF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Butterfree, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 12, - BACK_PIC(Butterfree, 64, 56), - BACK_PIC_FEMALE(Butterfree, 64, 56), + .backPic = gMonBackPic_Butterfree, + .backPicFemale = gMonBackPic_ButterfreeF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Butterfree), - ICON(Butterfree, 0), + .palette = gMonPalette_Butterfree, + .shinyPalette = gMonShinyPalette_Butterfree, + .iconSprite = gMonIcon_Butterfree, + .iconPalIndex = 0, + FOOTPRINT(Butterfree) + .levelUpLearnset = sButterfreeLevelUpLearnset, + .teachableLearnset = sButterfreeTeachableLearnset, + .formSpeciesIdTable = sButterfreeFormSpeciesIdTable, + .formChangeTable = sButterfreeFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_BUTTERFREE_GIGANTAMAX] = { - BUTTERFREE_MISC_INFO, + .baseHP = 60, + .baseAttack = 45, + .baseDefense = 50, + .baseSpeed = 70, + .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 90 : 80, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), + .catchRate = 45, + .expYield = BUTTERFREE_EXP_YIELD, + .evYield_SpAttack = 2, + .evYield_SpDefense = 1, + .itemRare = ITEM_SILVER_POWDER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_TINTED_LENS }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Butterfree"), + .cryId = CRY_BUTTERFREE, + .natDexNum = NATIONAL_DEX_BUTTERFREE, + .categoryName = _("Butterfly"), .height = 170, .weight = 0, .description = COMPOUND_STRING( @@ -890,17 +1130,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(ButterfreeGigantamax, 64, 64), + .frontPic = gMonFrontPic_ButterfreeGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_ButterfreeGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 7, - BACK_PIC(ButterfreeGigantamax, 64, 64), + .backPic = gMonBackPic_ButterfreeGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ButterfreeGigantamax), - ICON(ButterfreeGigantamax, 0), + .palette = gMonPalette_ButterfreeGigantamax, + .shinyPalette = gMonShinyPalette_ButterfreeGigantamax, + .iconSprite = gMonIcon_ButterfreeGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Butterfree) .isGigantamax = TRUE, + .levelUpLearnset = sButterfreeLevelUpLearnset, + .teachableLearnset = sButterfreeTeachableLearnset, + .formSpeciesIdTable = sButterfreeFormSpeciesIdTable, + .formChangeTable = sButterfreeFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CATERPIE @@ -914,15 +1163,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 20, .baseSpDefense = 20, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 255, - .expYield = 39, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 39 : 52, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_RUN_AWAY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Weedle"), @@ -940,18 +1189,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 22, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Weedle, 40, 40), + .frontPic = gMonFrontPic_Weedle, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Weedle, .frontAnimId = ANIM_H_SLIDE_SLOW, .frontAnimDelay = 10, - BACK_PIC(Weedle, 56, 56), + .backPic = gMonBackPic_Weedle, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Weedle), - ICON(Weedle, 2), - .footprint = gMonFootprint_Weedle, - LEARNSETS(Weedle), + .palette = gMonPalette_Weedle, + .shinyPalette = gMonShinyPalette_Weedle, + .iconSprite = gMonIcon_Weedle, + .iconPalIndex = 2, + FOOTPRINT(Weedle) + .tmIlliterate = TRUE, + .levelUpLearnset = sWeedleLevelUpLearnset, + .teachableLearnset = sWeedleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 7, SPECIES_KAKUNA}), }, @@ -963,16 +1218,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 35, .baseSpAttack = 25, .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 120, - .expYield = 72, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 72 : 71, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Kakuna"), .cryId = CRY_KAKUNA, @@ -989,55 +1244,62 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kakuna, 24, 48), + .frontPic = gMonFrontPic_Kakuna, + .frontPicSize = MON_COORDS_SIZE(24, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Kakuna, .frontAnimId = ANIM_GLOW_ORANGE, .frontAnimDelay = 20, - BACK_PIC(Kakuna, 32, 40), + .backPic = gMonBackPic_Kakuna, + .backPicSize = MON_COORDS_SIZE(32, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Kakuna), - ICON(Kakuna, 2), - .footprint = gMonFootprint_Kakuna, - LEARNSETS(Kakuna), + .palette = gMonPalette_Kakuna, + .shinyPalette = gMonShinyPalette_Kakuna, + .iconSprite = gMonIcon_Kakuna, + .iconPalIndex = 2, + FOOTPRINT(Kakuna) + .tmIlliterate = TRUE, + .levelUpLearnset = sKakunaLevelUpLearnset, + .teachableLearnset = sKakunaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_BEEDRILL}), }, #define BEEDRILL_ATTACK (P_UPDATED_STATS >= GEN_6 ? 90 : 80) -#define BEEDRILL_MISC_INFO \ - .types = { TYPE_BUG, TYPE_POISON }, \ - .catchRate = 45, \ - .evYield_Attack = 2, \ - .evYield_SpDefense = 1, \ - .itemRare = ITEM_POISON_BARB, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Beedrill"), \ - .natDexNum = NATIONAL_DEX_BEEDRILL, \ - .categoryName = _("Poison Bee"), \ - .footprint = gMonFootprint_Beedrill, \ - LEARNSETS(Beedrill), \ - .formSpeciesIdTable = sBeedrillFormSpeciesIdTable, \ - .formChangeTable = sBeedrillFormChangeTable - [SPECIES_BEEDRILL] = { - BEEDRILL_MISC_INFO, .baseHP = 65, + .baseAttack = BEEDRILL_ATTACK, .baseDefense = 40, .baseSpeed = 75, .baseSpAttack = 45, .baseSpDefense = 80, - .baseAttack = BEEDRILL_ATTACK, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 198, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 178, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 173, + #else + .expYield = 159, + #endif + .evYield_Attack = 2, + .evYield_SpDefense = 1, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_SNIPER }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Beedrill"), .cryId = CRY_BEEDRILL, + .natDexNum = NATIONAL_DEX_BEEDRILL, + .categoryName = _("Poison Bee"), .height = 10, .weight = 295, .description = COMPOUND_STRING( @@ -1049,31 +1311,53 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Beedrill, 64, 56), + .frontPic = gMonFrontPic_Beedrill, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Beedrill, .frontAnimId = ANIM_ZIGZAG_SLOW, .enemyMonElevation = 9, - BACK_PIC(Beedrill, 64, 56), + .backPic = gMonBackPic_Beedrill, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Beedrill), - ICON(Beedrill, 2), + .palette = gMonPalette_Beedrill, + .shinyPalette = gMonShinyPalette_Beedrill, + .iconSprite = gMonIcon_Beedrill, + .iconPalIndex = 2, + FOOTPRINT(Beedrill) + .levelUpLearnset = sBeedrillLevelUpLearnset, + .teachableLearnset = sBeedrillTeachableLearnset, + .formSpeciesIdTable = sBeedrillFormSpeciesIdTable, + .formChangeTable = sBeedrillFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_BEEDRILL_MEGA] = { - BEEDRILL_MISC_INFO, .baseHP = 65, .baseAttack = BEEDRILL_ATTACK + 60, .baseDefense = 40, .baseSpeed = 145, .baseSpAttack = 15, .baseSpDefense = 80, - .expYield = 223, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 248 : 223, + .evYield_Attack = 2, + .evYield_SpDefense = 1, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_ADAPTABILITY, ABILITY_ADAPTABILITY, ABILITY_ADAPTABILITY }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Beedrill"), .cryId = CRY_BEEDRILL_MEGA, + .natDexNum = NATIONAL_DEX_BEEDRILL, + .categoryName = _("Poison Bee"), .height = 14, .weight = 405, .description = COMPOUND_STRING( @@ -1085,17 +1369,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(BeedrillMega, 64, 64), + .frontPic = gMonFrontPic_BeedrillMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_BeedrillMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(BeedrillMega, 64, 64), + .backPic = gMonBackPic_BeedrillMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(BeedrillMega), - ICON(BeedrillMega, 2), + .palette = gMonPalette_BeedrillMega, + .shinyPalette = gMonShinyPalette_BeedrillMega, + .iconSprite = gMonIcon_BeedrillMega, + .iconPalIndex = 2, + FOOTPRINT(Beedrill) .isMegaEvolution = TRUE, + .levelUpLearnset = sBeedrillLevelUpLearnset, + .teachableLearnset = sBeedrillTeachableLearnset, + .formSpeciesIdTable = sBeedrillFormSpeciesIdTable, + .formChangeTable = sBeedrillFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_WEEDLE @@ -1109,15 +1402,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 56, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 255, - .expYield = 50, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 50 : 55, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Pidgey"), @@ -1135,17 +1428,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pidgey, 40, 40), + .frontPic = gMonFrontPic_Pidgey, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Pidgey, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Pidgey, 56, 48), + .backPic = gMonBackPic_Pidgey, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Pidgey), - ICON(Pidgey, 0), - .footprint = gMonFootprint_Pidgey, - LEARNSETS(Pidgey), + .palette = gMonPalette_Pidgey, + .shinyPalette = gMonShinyPalette_Pidgey, + .iconSprite = gMonIcon_Pidgey, + .iconPalIndex = 0, + FOOTPRINT(Pidgey) + .levelUpLearnset = sPidgeyLevelUpLearnset, + .teachableLearnset = sPidgeyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_PIDGEOTTO}), }, @@ -1157,15 +1455,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 71, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 120, - .expYield = 122, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 122 : 113, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Pidgeotto"), @@ -1183,53 +1481,59 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pidgeotto, 56, 56), + .frontPic = gMonFrontPic_Pidgeotto, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Pidgeotto, .frontAnimId = ANIM_V_STRETCH, .frontAnimDelay = 25, - BACK_PIC(Pidgeotto, 64, 56), + .backPic = gMonBackPic_Pidgeotto, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Pidgeotto), - ICON(Pidgeotto, 0), - .footprint = gMonFootprint_Pidgeotto, - LEARNSETS(Pidgeotto), + .palette = gMonPalette_Pidgeotto, + .shinyPalette = gMonShinyPalette_Pidgeotto, + .iconSprite = gMonIcon_Pidgeotto, + .iconPalIndex = 0, + FOOTPRINT(Pidgeotto) + .levelUpLearnset = sPidgeottoLevelUpLearnset, + .teachableLearnset = sPidgeottoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_PIDGEOT}), }, #define PIDGEOT_SPEED (P_UPDATED_STATS >= GEN_6 ? 101 : 91) -#define PIDGEOT_MISC_INFO \ - .types = { TYPE_NORMAL, TYPE_FLYING }, \ - .catchRate = 45, \ - .evYield_Speed = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING },\ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Pidgeot"), \ - .natDexNum = NATIONAL_DEX_PIDGEOT, \ - .categoryName = _("Bird"), \ - .footprint = gMonFootprint_Pidgeot, \ - LEARNSETS(Pidgeot), \ - .formSpeciesIdTable = sPidgeotFormSpeciesIdTable, \ - .formChangeTable = sPidgeotFormChangeTable - [SPECIES_PIDGEOT] = { - PIDGEOT_MISC_INFO, .baseHP = 83, .baseAttack = 80, .baseDefense = 75, + .baseSpeed = PIDGEOT_SPEED, .baseSpAttack = 70, .baseSpDefense = 70, - .baseSpeed = PIDGEOT_SPEED, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 240, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 216, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 211, + #else + .expYield = 172, + #endif + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Pidgeot"), .cryId = CRY_PIDGEOT, + .natDexNum = NATIONAL_DEX_PIDGEOT, + .categoryName = _("Bird"), .height = 15, .weight = 395, .description = COMPOUND_STRING( @@ -1241,31 +1545,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pidgeot, 64, 64), + .frontPic = gMonFrontPic_Pidgeot, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Pidgeot, .frontAnimId = ANIM_GROW_VIBRATE, .enemyMonElevation = 5, - BACK_PIC(Pidgeot, 64, 56), + .backPic = gMonBackPic_Pidgeot, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Pidgeot), - ICON(Pidgeot, 0), + .palette = gMonPalette_Pidgeot, + .shinyPalette = gMonShinyPalette_Pidgeot, + .iconSprite = gMonIcon_Pidgeot, + .iconPalIndex = 0, + FOOTPRINT(Pidgeot) + .levelUpLearnset = sPidgeotLevelUpLearnset, + .teachableLearnset = sPidgeotTeachableLearnset, + .formSpeciesIdTable = sPidgeotFormSpeciesIdTable, + .formChangeTable = sPidgeotFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_PIDGEOT_MEGA] = { - PIDGEOT_MISC_INFO, .baseHP = 83, .baseAttack = 80, .baseDefense = 80, .baseSpeed = PIDGEOT_SPEED + 20, .baseSpAttack = 135, .baseSpDefense = 80, - .expYield = 261, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_NO_GUARD, ABILITY_NO_GUARD, ABILITY_NO_GUARD }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Pidgeot"), .cryId = CRY_PIDGEOT_MEGA, + .natDexNum = NATIONAL_DEX_PIDGEOT, + .categoryName = _("Bird"), .height = 22, .weight = 505, .description = COMPOUND_STRING( @@ -1276,65 +1600,54 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(PidgeotMega, 64, 64), + .frontPic = gMonFrontPic_PidgeotMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_PidgeotMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(PidgeotMega, 64, 64), + .backPic = gMonBackPic_PidgeotMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(PidgeotMega), - ICON(PidgeotMega, 0), + .palette = gMonPalette_PidgeotMega, + .shinyPalette = gMonShinyPalette_PidgeotMega, + .iconSprite = gMonIcon_PidgeotMega, + .iconPalIndex = 0, + FOOTPRINT(Pidgeot) .isMegaEvolution = TRUE, + .levelUpLearnset = sPidgeotLevelUpLearnset, + .teachableLearnset = sPidgeotTeachableLearnset, + .formSpeciesIdTable = sPidgeotFormSpeciesIdTable, + .formChangeTable = sPidgeotFormChangeTable, }, #endif #endif //P_FAMILY_PIDGEY #if P_FAMILY_RATTATA -#define RATTATA_FAMILY_MISC_INFO \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD } - -#define RATTATA_MISC_INFO \ - .baseHP = 30, \ - .baseAttack = 56, \ - .baseDefense = 35, \ - .baseSpeed = 72, \ - .baseSpAttack = 25, \ - .baseSpDefense = 35, \ - .catchRate = 255, \ - .expYield = 51, \ - .evYield_Speed = 1, \ - .speciesName = _("Rattata"), \ - .cryId = CRY_RATTATA, \ - .natDexNum = NATIONAL_DEX_RATTATA, \ - .categoryName = _("Mouse"), \ - .footprint = gMonFootprint_Rattata, \ - .formSpeciesIdTable = sRattataFormSpeciesIdTable - -#define RATICATE_MISC_INFO \ - .catchRate = 127, \ - .expYield = 145, \ - .evYield_Speed = 2, \ - .speciesName = _("Raticate"), \ - .cryId = CRY_RATICATE, \ - .natDexNum = NATIONAL_DEX_RATICATE, \ - .categoryName = _("Mouse"), \ - .height = 7, \ - .footprint = gMonFootprint_Raticate,\ - .formSpeciesIdTable = sRaticateFormSpeciesIdTable - [SPECIES_RATTATA] = { - RATTATA_FAMILY_MISC_INFO, - RATTATA_MISC_INFO, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .baseHP = 30, + .baseAttack = 56, + .baseDefense = 35, + .baseSpeed = 72, + .baseSpAttack = 25, + .baseSpDefense = 35, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 51 : 57, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_GUTS, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Rattata"), + .cryId = CRY_RATTATA, + .natDexNum = NATIONAL_DEX_RATTATA, + .categoryName = _("Mouse"), .height = 3, .weight = 35, .description = COMPOUND_STRING( @@ -1346,34 +1659,54 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Rattata, 40, 40), - FRONT_PIC_FEMALE(Rattata, 40, 40), + .frontPic = gMonFrontPic_Rattata, + .frontPicFemale = gMonFrontPic_RattataF, + .frontPicSize = MON_COORDS_SIZE(40, 40), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Rattata, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Rattata, 64, 56), - BACK_PIC_FEMALE(Rattata, 64, 56), + .backPic = gMonBackPic_Rattata, + .backPicFemale = gMonBackPic_RattataF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Rattata), - ICON(Rattata, 2), - LEARNSETS(Rattata), + .palette = gMonPalette_Rattata, + .shinyPalette = gMonShinyPalette_Rattata, + .iconSprite = gMonIcon_Rattata, + .iconPalIndex = 2, + FOOTPRINT(Rattata) + .levelUpLearnset = sRattataLevelUpLearnset, + .teachableLearnset = sRattataTeachableLearnset, + .formSpeciesIdTable = sRattataFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_RATICATE}), }, [SPECIES_RATICATE] = { - RATTATA_FAMILY_MISC_INFO, - RATICATE_MISC_INFO, .baseHP = 55, .baseAttack = 81, .baseDefense = 60, .baseSpeed = 97, .baseSpAttack = 50, .baseSpDefense = 70, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 127, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 145 : 116, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_GUTS, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Raticate"), + .cryId = CRY_RATICATE, + .natDexNum = NATIONAL_DEX_RATICATE, + .categoryName = _("Mouse"), + .height = 7, .weight = 185, .description = COMPOUND_STRING( "A Raticate's sturdy fangs grow steadily.\n" @@ -1384,29 +1717,54 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Raticate, 64, 56), - FRONT_PIC_FEMALE(Raticate, 64, 56), + .frontPic = gMonFrontPic_Raticate, + .frontPicFemale = gMonFrontPic_RaticateF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Raticate, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, - BACK_PIC(Raticate, 64, 48), - BACK_PIC_FEMALE(Raticate, 64, 48), + .backPic = gMonBackPic_Raticate, + .backPicFemale = gMonBackPic_RaticateF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Raticate), - ICON(Raticate, 2), - LEARNSETS(Raticate), + .palette = gMonPalette_Raticate, + .shinyPalette = gMonShinyPalette_Raticate, + .iconSprite = gMonIcon_Raticate, + .iconPalIndex = 2, + FOOTPRINT(Raticate) + .levelUpLearnset = sRaticateLevelUpLearnset, + .teachableLearnset = sRaticateTeachableLearnset, + .formSpeciesIdTable = sRaticateFormSpeciesIdTable, }, #if P_ALOLAN_FORMS [SPECIES_RATTATA_ALOLAN] = { - RATTATA_FAMILY_MISC_INFO, - RATTATA_MISC_INFO, - .types = { TYPE_DARK, TYPE_NORMAL }, + .baseHP = 30, + .baseAttack = 56, + .baseDefense = 35, + .baseSpeed = 72, + .baseSpAttack = 25, + .baseSpDefense = 35, + .types = MON_TYPES(TYPE_DARK, TYPE_NORMAL), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 51 : 57, + .evYield_Speed = 1, .itemRare = ITEM_PECHA_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_HUSTLE, ABILITY_THICK_FAT }, .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Rattata"), + .cryId = CRY_RATTATA, + .natDexNum = NATIONAL_DEX_RATTATA, + .categoryName = _("Mouse"), .height = 3, .weight = 38, .description = COMPOUND_STRING( @@ -1418,55 +1776,129 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(RattataAlolan, 40, 48), + .frontPic = gMonFrontPic_RattataAlolan, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_RattataAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(RattataAlolan, 64, 56), + .backPic = gMonBackPic_RattataAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(RattataAlolan), - ICON(RattataAlolan, 2), - LEARNSETS(RattataAlolan), + .palette = gMonPalette_RattataAlolan, + .shinyPalette = gMonShinyPalette_RattataAlolan, + .iconSprite = gMonIcon_RattataAlolan, + .iconPalIndex = 2, + FOOTPRINT(Rattata) .isAlolanForm = TRUE, - .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 20, SPECIES_RATICATE_ALOLAN}), + .levelUpLearnset = sRattataAlolanLevelUpLearnset, + .teachableLearnset = sRattataAlolanTeachableLearnset, + .formSpeciesIdTable = sRattataFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 20, SPECIES_RATICATE_ALOLAN}, + {EVO_NONE, 0, SPECIES_RATICATE_ALOLAN_TOTEM}), }, [SPECIES_RATICATE_ALOLAN] = { - RATTATA_FAMILY_MISC_INFO, - RATICATE_MISC_INFO, .baseHP = 75, .baseAttack = 71, .baseDefense = 70, .baseSpeed = 77, .baseSpAttack = 40, .baseSpDefense = 80, - .types = { TYPE_DARK, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_DARK, TYPE_NORMAL), + .catchRate = 127, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 145 : 116, + .evYield_Speed = 2, .itemRare = ITEM_PECHA_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_HUSTLE, ABILITY_THICK_FAT }, .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Raticate"), + .cryId = CRY_RATICATE, + .natDexNum = NATIONAL_DEX_RATICATE, + .categoryName = _("Mouse"), + .height = 7, .weight = 255, - .description = COMPOUND_STRING( - "It forms a group of Rattata, which it \n" - "assumes command of. Each group\n" - "has its own territory, and disputes\n" - "over food happen often."), + .description = gRaticateAlolanPokedexText, .pokemonScale = 459, .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(RaticateAlolan, 56, 48), + .frontPic = gMonFrontPic_RaticateAlolan, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_RaticateAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(RaticateAlolan, 64, 48), + .backPic = gMonBackPic_RaticateAlolan, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(RaticateAlolan), - ICON(RaticateAlolan, 2), - LEARNSETS(RaticateAlolan), + .palette = gMonPalette_RaticateAlolan, + .shinyPalette = gMonShinyPalette_RaticateAlolan, + .iconSprite = gMonIcon_RaticateAlolan, + .iconPalIndex = 2, + FOOTPRINT(Raticate) .isAlolanForm = TRUE, + .levelUpLearnset = sRaticateAlolanLevelUpLearnset, + .teachableLearnset = sRaticateAlolanTeachableLearnset, + .formSpeciesIdTable = sRaticateFormSpeciesIdTable, + }, + + [SPECIES_RATICATE_ALOLAN_TOTEM] = + { + .baseHP = 75, + .baseAttack = 71, + .baseDefense = 70, + .baseSpeed = 77, + .baseSpAttack = 40, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_DARK, TYPE_NORMAL), + .catchRate = 127, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 145 : 116, + .evYield_Speed = 2, + .itemRare = ITEM_PECHA_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_THICK_FAT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Raticate"), + .cryId = CRY_RATICATE, + .natDexNum = NATIONAL_DEX_RATICATE, + .categoryName = _("Mouse"), + .height = 14, + .weight = 1050, + .description = gRaticateAlolanPokedexText, + .pokemonScale = 459, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_RaticateAlolan, + .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_RaticateAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_RaticateAlolan, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_RaticateAlolan, + .shinyPalette = gMonShinyPalette_RaticateAlolan, + .iconSprite = gMonIcon_RaticateAlolan, + .iconPalIndex = 2, + FOOTPRINT(Raticate) + .isTotem = TRUE, + .isAlolanForm = TRUE, + .levelUpLearnset = sRaticateAlolanLevelUpLearnset, + .teachableLearnset = sRaticateAlolanTeachableLearnset, + .formSpeciesIdTable = sRaticateFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_RATTATA @@ -1480,16 +1912,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 31, .baseSpDefense = 31, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 255, - .expYield = 52, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 52 : 58, .evYield_Speed = 1, .itemRare = ITEM_SHARP_BEAK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_SNIPER }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Spearow"), @@ -1507,17 +1939,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 22, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Spearow, 40, 40), + .frontPic = gMonFrontPic_Spearow, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Spearow, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Spearow, 56, 56), + .backPic = gMonBackPic_Spearow, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Spearow), - ICON(Spearow, 0), - .footprint = gMonFootprint_Spearow, - LEARNSETS(Spearow), + .palette = gMonPalette_Spearow, + .shinyPalette = gMonShinyPalette_Spearow, + .iconSprite = gMonIcon_Spearow, + .iconPalIndex = 0, + FOOTPRINT(Spearow) + .levelUpLearnset = sSpearowLevelUpLearnset, + .teachableLearnset = sSpearowTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_FEAROW}), }, @@ -1529,16 +1966,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 100, .baseSpAttack = 61, .baseSpDefense = 61, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 90, - .expYield = 155, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 155 : 162, .evYield_Speed = 2, .itemRare = ITEM_SHARP_BEAK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_SNIPER }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Fearow"), @@ -1556,19 +1993,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Fearow, 64, 64), + .frontPic = gMonFrontPic_Fearow, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Fearow, .frontAnimId = ANIM_FIGURE_8, .frontAnimDelay = 2, .enemyMonElevation = 6, - BACK_PIC(Fearow, 64, 56), + .backPic = gMonBackPic_Fearow, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Fearow), - ICON(Fearow, 0), - .footprint = gMonFootprint_Fearow, - LEARNSETS(Fearow), + .palette = gMonPalette_Fearow, + .shinyPalette = gMonShinyPalette_Fearow, + .iconSprite = gMonIcon_Fearow, + .iconPalIndex = 0, + FOOTPRINT(Fearow) + .levelUpLearnset = sFearowLevelUpLearnset, + .teachableLearnset = sFearowTeachableLearnset, }, #endif //P_FAMILY_SPEAROW @@ -1581,15 +2023,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 55, .baseSpAttack = 40, .baseSpDefense = 54, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 255, - .expYield = 58, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 62, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_DRAGON), .abilities = { ABILITY_INTIMIDATE, ABILITY_SHED_SKIN, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Ekans"), @@ -1607,18 +2049,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ekans, 48, 48), + .frontPic = gMonFrontPic_Ekans, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Ekans, .frontAnimId = ANIM_V_STRETCH, .frontAnimDelay = 30, - BACK_PIC(Ekans, 56, 48), + .backPic = gMonBackPic_Ekans, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Ekans), - ICON(Ekans, 2), - .footprint = gMonFootprint_Ekans, - LEARNSETS(Ekans), + .palette = gMonPalette_Ekans, + .shinyPalette = gMonShinyPalette_Ekans, + .iconSprite = gMonIcon_Ekans, + .iconPalIndex = 2, + FOOTPRINT(Ekans) + .levelUpLearnset = sEkansLevelUpLearnset, + .teachableLearnset = sEkansTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_ARBOK}), }, @@ -1630,15 +2077,21 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 80, .baseSpAttack = 65, .baseSpDefense = 79, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 90, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 157, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 153, + #else + .expYield = 147, + #endif .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_DRAGON), .abilities = { ABILITY_INTIMIDATE, ABILITY_SHED_SKIN, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Arbok"), @@ -1656,402 +2109,937 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 296, .trainerOffset = 2, - FRONT_PIC(Arbok, 64, 64), + .frontPic = gMonFrontPic_Arbok, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Arbok, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Arbok, 64, 64), + .backPic = gMonBackPic_Arbok, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Arbok), - ICON(Arbok, 2), - .footprint = gMonFootprint_Arbok, - LEARNSETS(Arbok), + .palette = gMonPalette_Arbok, + .shinyPalette = gMonShinyPalette_Arbok, + .iconSprite = gMonIcon_Arbok, + .iconPalIndex = 2, + FOOTPRINT(Arbok) + .levelUpLearnset = sArbokLevelUpLearnset, + .teachableLearnset = sArbokTeachableLearnset, }, #endif //P_FAMILY_EKANS #if P_FAMILY_PIKACHU #if P_GEN_2_CROSS_EVOS -#define PICHU_MISC_INFO \ - .baseHP = 20, \ - .baseAttack = 40, \ - .baseDefense = 15, \ - .baseSpeed = 60, \ - .baseSpAttack = 35, \ - .baseSpDefense = 35, \ - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, \ - .catchRate = 190, \ - .expYield = 41, \ - .evYield_Speed = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 10, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Pichu"), \ - .cryId = CRY_PICHU, \ - .natDexNum = NATIONAL_DEX_PICHU, \ - .categoryName = _("Tiny Mouse"), \ - .height = 3, \ - .weight = 20, \ - .description = gPichuPokedexText, \ - .pokemonScale = 508, \ - .pokemonOffset = 20, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Pichu, \ - LEARNSETS(Pichu), \ - .formSpeciesIdTable = sPichuFormSpeciesIdTable [SPECIES_PICHU] = { - PICHU_MISC_INFO, - FRONT_PIC(Pichu, 32, 40), + .baseHP = 20, + .baseAttack = 40, + .baseDefense = 15, + .baseSpeed = 60, + .baseSpAttack = 35, + .baseSpDefense = 35, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 41 : 42, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pichu"), + .cryId = CRY_PICHU, + .natDexNum = NATIONAL_DEX_PICHU, + .categoryName = _("Tiny Mouse"), + .height = 3, + .weight = 20, + .description = gPichuPokedexText, + .pokemonScale = 508, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Pichu, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Pichu, .frontAnimId = ANIM_V_JUMPS_BIG, - BACK_PIC(Pichu, 48, 56), + .backPic = gMonBackPic_Pichu, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Pichu), - ICON(Pichu, 1), + .palette = gMonPalette_Pichu, + .shinyPalette = gMonShinyPalette_Pichu, + .iconSprite = gMonIcon_Pichu, + .iconPalIndex = 1, + FOOTPRINT(Pichu) + .levelUpLearnset = sPichuLevelUpLearnset, + .teachableLearnset = sPichuTeachableLearnset, + .formSpeciesIdTable = sPichuFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_PIKACHU}), }, [SPECIES_PICHU_SPIKY_EARED] = { - PICHU_MISC_INFO, + .baseHP = 20, + .baseAttack = 40, + .baseDefense = 15, + .baseSpeed = 60, + .baseSpAttack = 35, + .baseSpDefense = 35, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 41 : 42, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, - FRONT_PIC(PichuSpikyEared, 32, 40), + .speciesName = _("Pichu"), + .cryId = CRY_PICHU, + .natDexNum = NATIONAL_DEX_PICHU, + .categoryName = _("Tiny Mouse"), + .height = 3, + .weight = 20, + .description = gPichuPokedexText, + .pokemonScale = 508, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PichuSpikyEared, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_PichuSpikyEared, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PichuSpikyEared, 48, 56), + .backPic = gMonBackPic_PichuSpikyEared, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PichuSpikyEared), - ICON(PichuSpikyEared, 1), + .palette = gMonPalette_PichuSpikyEared, + .shinyPalette = gMonShinyPalette_PichuSpikyEared, + .iconSprite = gMonIcon_PichuSpikyEared, + .iconPalIndex = 1, + FOOTPRINT(Pichu) + .levelUpLearnset = sPichuLevelUpLearnset, + .teachableLearnset = sPichuTeachableLearnset, + .formSpeciesIdTable = sPichuFormSpeciesIdTable, }, #endif //P_GEN_2_CROSS_EVOS -#define PIKACHU_MISC_INFO \ - .baseHP = 35, \ - .baseAttack = 55, \ - .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, \ - .baseSpeed = 90, \ - .baseSpAttack = 50, \ - .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, \ - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, \ - .catchRate = 190, \ - .expYield = 112, \ - .evYield_Speed = 2, \ - .itemRare = ITEM_LIGHT_BALL, \ - .eggCycles = 10, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Pikachu"), \ - .cryId = CRY_PIKACHU, \ - .natDexNum = NATIONAL_DEX_PIKACHU, \ - .categoryName = _("Mouse"), \ - .footprint = gMonFootprint_Pikachu, \ - LEARNSETS(Pikachu), \ - .formSpeciesIdTable = sPikachuFormSpeciesIdTable - -#define PIKACHU_REGULAR_SIZE_INFO \ - .height = 4, \ - .weight = 60, \ - .pokemonScale = 479, \ - .pokemonOffset = 19, \ - .trainerScale = 256, \ - .trainerOffset = 0 +#if P_UPDATED_EXP_YIELDS >= GEN_6 + #define PIKACHU_EXP_YIELD 112 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define PIKACHU_EXP_YIELD 105 +#else + #define PIKACHU_EXP_YIELD 82 +#endif [SPECIES_PIKACHU] = { - PIKACHU_MISC_INFO, - PIKACHU_REGULAR_SIZE_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, .genderRatio = PERCENT_FEMALE(50), - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = gPikachuPokedexText, - FRONT_PIC(Pikachu, 48, 48), - FRONT_PIC_FEMALE(Pikachu, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Pikachu, + .frontPicFemale = gMonFrontPic_PikachuF, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Pikachu, .frontAnimId = ANIM_FLASH_YELLOW, .frontAnimDelay = 25, - BACK_PIC(Pikachu, 64, 56), - BACK_PIC_FEMALE(Pikachu, 64, 56), + .backPic = gMonBackPic_Pikachu, + .backPicFemale = gMonBackPic_PikachuF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Pikachu), - ICON(Pikachu, 2), + .palette = gMonPalette_Pikachu, + .shinyPalette = gMonShinyPalette_Pikachu, + .iconSprite = gMonIcon_Pikachu, + .iconPalIndex = 2, #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE - ICON_FEMALE(Pikachu, 2), + .iconSpriteFemale = gMonIcon_PikachuF, + .iconPalIndexFemale = 2, #endif + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, .formChangeTable = sPikachuFormChangeTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_RAICHU}, {EVO_NONE, 0, SPECIES_RAICHU_ALOLAN}), }, #if P_COSPLAY_PIKACHU_FORMS -#define PIKACHU_COSPLAY_MISC_INFO \ - PIKACHU_MISC_INFO, \ - PIKACHU_REGULAR_SIZE_INFO, \ - .genderRatio = MON_FEMALE, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .description = gPikachuPokedexText - [SPECIES_PIKACHU_COSPLAY] = { - PIKACHU_COSPLAY_MISC_INFO, - FRONT_PIC(PikachuCosplay, 48, 48), + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_FEMALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, + .description = gPikachuPokedexText, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuCosplay, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuCosplay, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuCosplay, 64, 56), + .backPic = gMonBackPic_PikachuCosplay, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuCosplay), - ICON(PikachuCosplay, 2), + .palette = gMonPalette_PikachuCosplay, + .shinyPalette = gMonShinyPalette_PikachuCosplay, + .iconSprite = gMonIcon_PikachuCosplay, + .iconPalIndex = 2, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_ROCK_STAR] = { - PIKACHU_COSPLAY_MISC_INFO, - FRONT_PIC(PikachuRockStar, 48, 48), + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_FEMALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, + .description = gPikachuPokedexText, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuRockStar, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuRockStar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuRockStar, 64, 56), + .backPic = gMonBackPic_PikachuRockStar, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuRockStar), - ICON(PikachuRockStar, 1), + .palette = gMonPalette_PikachuRockStar, + .shinyPalette = gMonShinyPalette_PikachuRockStar, + .iconSprite = gMonIcon_PikachuRockStar, + .iconPalIndex = 1, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_BELLE] = { - PIKACHU_COSPLAY_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_FEMALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, - FRONT_PIC(PikachuBelle, 48, 48), + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, + .description = gPikachuPokedexText, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuBelle, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuBelle, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuBelle, 64, 56), + .backPic = gMonBackPic_PikachuBelle, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuBelle), - ICON(PikachuBelle, 0), + .palette = gMonPalette_PikachuBelle, + .shinyPalette = gMonShinyPalette_PikachuBelle, + .iconSprite = gMonIcon_PikachuBelle, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_POP_STAR] = { - PIKACHU_COSPLAY_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_FEMALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, - FRONT_PIC(PikachuPopStar, 48, 48), + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, + .description = gPikachuPokedexText, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuPopStar, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuPopStar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuPopStar, 64, 56), + .backPic = gMonBackPic_PikachuPopStar, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuPopStar), - ICON(PikachuPopStar, 0), + .palette = gMonPalette_PikachuPopStar, + .shinyPalette = gMonShinyPalette_PikachuPopStar, + .iconSprite = gMonIcon_PikachuPopStar, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_PH_D] = { - PIKACHU_COSPLAY_MISC_INFO, - FRONT_PIC(PikachuPhD, 48, 48), + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_FEMALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, + .description = gPikachuPokedexText, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuPhD, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuPhD, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuPhD, 64, 56), + .backPic = gMonBackPic_PikachuPhD, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuPhD), - ICON(PikachuPhD, 1), + .palette = gMonPalette_PikachuPhD, + .shinyPalette = gMonShinyPalette_PikachuPhD, + .iconSprite = gMonIcon_PikachuPhD, + .iconPalIndex = 1, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_LIBRE] = { - PIKACHU_COSPLAY_MISC_INFO, - FRONT_PIC(PikachuLibre, 48, 48), + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_FEMALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, + .description = gPikachuPokedexText, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuLibre, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuLibre, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuLibre, 64, 56), + .backPic = gMonBackPic_PikachuLibre, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuLibre), - ICON(PikachuLibre, 0), + .palette = gMonPalette_PikachuLibre, + .shinyPalette = gMonShinyPalette_PikachuLibre, + .iconSprite = gMonIcon_PikachuLibre, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, #endif //P_COSPLAY_PIKACHU_FORMS #if P_CAP_PIKACHU_FORMS - -#define PIKACHU_CAP_MISC_INFO \ - PIKACHU_MISC_INFO, \ - PIKACHU_REGULAR_SIZE_INFO, \ - .genderRatio = MON_MALE, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED } - [SPECIES_PIKACHU_ORIGINAL_CAP] = { - PIKACHU_CAP_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_MALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = COMPOUND_STRING( "This Pikachu wears its partner's cap, which\n" "is proof of the strong bond Pikachu and\n" "its partner formed during adventures\n" "across many different regions."), - FRONT_PIC(PikachuOriginalCap, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuOriginalCap, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuOriginalCap, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuOriginalCap, 64, 56), + .backPic = gMonBackPic_PikachuOriginalCap, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuOriginalCap), - ICON(PikachuOriginalCap, 0), + .palette = gMonPalette_PikachuOriginalCap, + .shinyPalette = gMonShinyPalette_PikachuOriginalCap, + .iconSprite = gMonIcon_PikachuOriginalCap, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_HOENN_CAP] = { - PIKACHU_CAP_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_MALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = COMPOUND_STRING( "This Pikachu wears its partner's cap, which\n" "is proof of the strong bond Pikachu and\n" "its partner formed during adventures\n" "across the Hoenn region together."), - FRONT_PIC(PikachuHoennCap, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuHoennCap, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuHoennCap, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuHoennCap, 64, 56), + .backPic = gMonBackPic_PikachuHoennCap, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuHoennCap), - ICON(PikachuHoennCap, 0), + .palette = gMonPalette_PikachuHoennCap, + .shinyPalette = gMonShinyPalette_PikachuHoennCap, + .iconSprite = gMonIcon_PikachuHoennCap, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_SINNOH_CAP] = { - PIKACHU_CAP_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_MALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = COMPOUND_STRING( "This Pikachu wears its partner's cap, which\n" "is proof of the strong bond Pikachu and\n" "its partner formed during adventures\n" "across the Sinnoh region together."), - FRONT_PIC(PikachuSinnohCap, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuSinnohCap, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuSinnohCap, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuSinnohCap, 64, 56), + .backPic = gMonBackPic_PikachuSinnohCap, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuSinnohCap), - ICON(PikachuSinnohCap, 0), + .palette = gMonPalette_PikachuSinnohCap, + .shinyPalette = gMonShinyPalette_PikachuSinnohCap, + .iconSprite = gMonIcon_PikachuSinnohCap, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_UNOVA_CAP] = { - PIKACHU_CAP_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_MALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = COMPOUND_STRING( "This Pikachu wears its partner's cap, which\n" "is proof of the strong bond Pikachu and\n" "its partner formed during adventures\n" "across the Unova region together."), - FRONT_PIC(PikachuUnovaCap, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuUnovaCap, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuUnovaCap, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuUnovaCap, 64, 56), + .backPic = gMonBackPic_PikachuUnovaCap, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuUnovaCap), - ICON(PikachuUnovaCap, 0), + .palette = gMonPalette_PikachuUnovaCap, + .shinyPalette = gMonShinyPalette_PikachuUnovaCap, + .iconSprite = gMonIcon_PikachuUnovaCap, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_KALOS_CAP] = { - PIKACHU_CAP_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_MALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = COMPOUND_STRING( "This Pikachu wears its partner's cap, which\n" "is proof of the strong bond Pikachu and\n" "its partner formed during adventures\n" "across the Kalos region together."), - FRONT_PIC(PikachuKalosCap, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuKalosCap, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuKalosCap, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuKalosCap, 64, 56), + .backPic = gMonBackPic_PikachuKalosCap, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuKalosCap), - ICON(PikachuKalosCap, 0), + .palette = gMonPalette_PikachuKalosCap, + .shinyPalette = gMonShinyPalette_PikachuKalosCap, + .iconSprite = gMonIcon_PikachuKalosCap, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_ALOLA_CAP] = { - PIKACHU_CAP_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_MALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = COMPOUND_STRING( "This Pikachu wears its partner's cap, which\n" "is proof of the strong bond Pikachu and\n" "its partner formed during adventures\n" "across the Alola region together."), - FRONT_PIC(PikachuAlolaCap, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuAlolaCap, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuAlolaCap, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuAlolaCap, 64, 56), + .backPic = gMonBackPic_PikachuAlolaCap, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuAlolaCap), - ICON(PikachuAlolaCap, 0), + .palette = gMonPalette_PikachuAlolaCap, + .shinyPalette = gMonShinyPalette_PikachuAlolaCap, + .iconSprite = gMonIcon_PikachuAlolaCap, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_PARTNER_CAP] = { - PIKACHU_CAP_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_MALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = COMPOUND_STRING( "This Pikachu wears its partner's cap, which\n" "is proof of the strong bond Pikachu and\n" "its partner formed as the two overcame\n" "many hardships together."), - FRONT_PIC(PikachuPartnerCap, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuPartnerCap, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuPartnerCap, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuPartnerCap, 64, 56), + .backPic = gMonBackPic_PikachuPartnerCap, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuPartnerCap), - ICON(PikachuPartnerCap, 0), + .palette = gMonPalette_PikachuPartnerCap, + .shinyPalette = gMonShinyPalette_PikachuPartnerCap, + .iconSprite = gMonIcon_PikachuPartnerCap, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, [SPECIES_PIKACHU_WORLD_CAP] = { - PIKACHU_CAP_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = MON_MALE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, .description = COMPOUND_STRING( "This Pikachu wears its partner's cap, which\n" "is proof of the strong bond Pikachu and\n" "its partner formed during adventures\n" "across the world together."), - FRONT_PIC(PikachuWorldCap, 48, 48), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuWorldCap, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_PikachuWorldCap, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuWorldCap, 64, 56), + .backPic = gMonBackPic_PikachuWorldCap, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuWorldCap), - ICON(PikachuWorldCap, 0), + .palette = gMonPalette_PikachuWorldCap, + .shinyPalette = gMonShinyPalette_PikachuWorldCap, + .iconSprite = gMonIcon_PikachuWorldCap, + .iconPalIndex = 0, + FOOTPRINT(Pikachu) + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, #endif //P_CAP_PIKACHU_FORMS @@ -2059,64 +3047,157 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = #if P_GIGANTAMAX_FORMS [SPECIES_PIKACHU_GIGANTAMAX] = { - PIKACHU_MISC_INFO, + .baseHP = 35, + .baseAttack = 55, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, .genderRatio = PERCENT_FEMALE(50), - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), .height = 210, .weight = 0, - .pokemonScale = 479, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, .description = COMPOUND_STRING( "When it smashes its opponents with\n" "its bolt-shaped tail, it delivers a\n" "surge of electricity equivalent to a\n" "lightning strike."), - FRONT_PIC(PikachuGigantamax, 64, 64), + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PikachuGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_PikachuGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PikachuGigantamax, 64, 64), + .backPic = gMonBackPic_PikachuGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PikachuGigantamax), - ICON(PikachuGigantamax, 2), - .formChangeTable = sPikachuFormChangeTable, + .palette = gMonPalette_PikachuGigantamax, + .shinyPalette = gMonShinyPalette_PikachuGigantamax, + .iconSprite = gMonIcon_PikachuGigantamax, + .iconPalIndex = 2, + FOOTPRINT(Pikachu) .isGigantamax = TRUE, + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, + .formChangeTable = sPikachuFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS + [SPECIES_PIKACHU_PARTNER] = + { + .baseHP = 45, + .baseAttack = 80, + .baseDefense = 50, + .baseSpeed = 120, + .baseSpAttack = 75, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = PIKACHU_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_LIGHT_BALL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Pikachu"), + .cryId = CRY_PIKACHU, + .natDexNum = NATIONAL_DEX_PIKACHU, + .categoryName = _("Mouse"), + .height = 4, + .weight = 60, + .description = gPikachuPokedexText, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Pikachu, + .frontPicFemale = gMonFrontPic_PikachuF, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Pikachu, + .frontAnimId = ANIM_FLASH_YELLOW, + .frontAnimDelay = 25, + .backPic = gMonBackPic_Pikachu, + .backPicFemale = gMonBackPic_PikachuF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + .palette = gMonPalette_Pikachu, + .shinyPalette = gMonShinyPalette_Pikachu, + .iconSprite = gMonIcon_PikachuPartner, + .iconPalIndex = 2, + #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE + .iconSpriteFemale = gMonIcon_PikachuPartnerF, + .iconPalIndexFemale = 2, + #endif + FOOTPRINT(Pikachu) + .cannotBeTraded = TRUE, + .allPerfectIVs = TRUE, + .levelUpLearnset = sPikachuLevelUpLearnset, + .teachableLearnset = sPikachuTeachableLearnset, + .formSpeciesIdTable = sPikachuFormSpeciesIdTable, + }, + #define RAICHU_SPEED (P_UPDATED_STATS >= GEN_6 ? 110 : 100) -#define RAICHU_MISC_INFO \ - .catchRate = 75, \ - .expYield = 218, \ - .evYield_Speed = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 10, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, \ - .speciesName = _("Raichu"), \ - .cryId = CRY_RAICHU, \ - .natDexNum = NATIONAL_DEX_RAICHU, \ - .categoryName = _("Mouse"), \ - .footprint = gMonFootprint_Raichu, \ - .formSpeciesIdTable = sRaichuFormSpeciesIdTable +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define RAICHU_EXP_YIELD 243 +#elif P_UPDATED_EXP_YIELDS >= GEN_7 + #define RAICHU_EXP_YIELD 218 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define RAICHU_EXP_YIELD 214 +#else + #define RAICHU_EXP_YIELD 122 +#endif [SPECIES_RAICHU] = { - RAICHU_MISC_INFO, .baseHP = 60, .baseAttack = 90, .baseDefense = 55, .baseSpeed = RAICHU_SPEED, .baseSpAttack = 90, .baseSpDefense = 80, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 75, + .expYield = RAICHU_EXP_YIELD, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Raichu"), + .cryId = CRY_RAICHU, + .natDexNum = NATIONAL_DEX_RAICHU, + .categoryName = _("Mouse"), .height = 8, .weight = 300, .description = COMPOUND_STRING( @@ -2128,33 +3209,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Raichu, 64, 64), - FRONT_PIC_FEMALE(Raichu, 64, 64), + .frontPic = gMonFrontPic_Raichu, + .frontPicFemale = gMonFrontPic_RaichuF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Raichu, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Raichu, 64, 56), + .backPic = gMonBackPic_Raichu, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Raichu), - ICON(Raichu, 0), - LEARNSETS(Raichu), + .palette = gMonPalette_Raichu, + .shinyPalette = gMonShinyPalette_Raichu, + .iconSprite = gMonIcon_Raichu, + .iconPalIndex = 0, + FOOTPRINT(Raichu) + .levelUpLearnset = sRaichuLevelUpLearnset, + .teachableLearnset = sRaichuTeachableLearnset, + .formSpeciesIdTable = sRaichuFormSpeciesIdTable, }, #if P_ALOLAN_FORMS [SPECIES_RAICHU_ALOLAN] = { - RAICHU_MISC_INFO, .baseHP = 60, .baseAttack = 85, .baseDefense = 50, .baseSpeed = RAICHU_SPEED, .baseSpAttack = 95, .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_PSYCHIC }, - .abilities = { ABILITY_SURGE_SURFER, ABILITY_NONE }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_PSYCHIC), + .catchRate = 75, + .expYield = RAICHU_EXP_YIELD, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), + .abilities = { ABILITY_SURGE_SURFER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, - .isAlolanForm = TRUE, + .speciesName = _("Raichu"), + .cryId = CRY_RAICHU, + .natDexNum = NATIONAL_DEX_RAICHU, + .categoryName = _("Mouse"), .height = 7, .weight = 210, .description = COMPOUND_STRING( @@ -2166,65 +3265,54 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(RaichuAlolan, 64, 64), + .frontPic = gMonFrontPic_RaichuAlolan, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_RaichuAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 4, - BACK_PIC(RaichuAlolan, 56, 56), + .backPic = gMonBackPic_RaichuAlolan, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(RaichuAlolan), - ICON(RaichuAlolan, 2), - LEARNSETS(RaichuAlolan), + .palette = gMonPalette_RaichuAlolan, + .shinyPalette = gMonShinyPalette_RaichuAlolan, + .iconSprite = gMonIcon_RaichuAlolan, + .iconPalIndex = 2, + FOOTPRINT(Raichu) + .isAlolanForm = TRUE, + .levelUpLearnset = sRaichuAlolanLevelUpLearnset, + .teachableLearnset = sRaichuAlolanTeachableLearnset, + .formSpeciesIdTable = sRaichuFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_PIKACHU #if P_FAMILY_SANDSHREW -#define SANDSHREW_FAMILY_MISC_INFO \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD } - -#define SANDSHREW_MISC_INFO \ - .catchRate = 255, \ - .expYield = 60, \ - .evYield_Defense = 1, \ - .speciesName = _("Sandshrew"), \ - .cryId = CRY_SANDSHREW, \ - .natDexNum = NATIONAL_DEX_SANDSHREW, \ - .categoryName = _("Mouse"), \ - .footprint = gMonFootprint_Sandshrew, \ - .formSpeciesIdTable = sSandshrewFormSpeciesIdTable, \ - SANDSHREW_FAMILY_MISC_INFO - -#define SANDSLASH_MISC_INFO \ - .catchRate = 90, \ - .expYield = 158, \ - .evYield_Defense = 2, \ - .speciesName = _("Sandslash"), \ - .cryId = CRY_SANDSLASH, \ - .natDexNum = NATIONAL_DEX_SANDSLASH, \ - .categoryName = _("Mouse"), \ - .footprint = gMonFootprint_Sandslash, \ - .formSpeciesIdTable = sSandslashFormSpeciesIdTable, \ - SANDSHREW_FAMILY_MISC_INFO - [SPECIES_SANDSHREW] = { - SANDSHREW_MISC_INFO, .baseHP = 50, .baseAttack = 75, .baseDefense = 85, .baseSpeed = 40, .baseSpAttack = 20, .baseSpDefense = 30, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 93, + .evYield_Defense = 1, + .itemRare = ITEM_GRIP_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_SAND_RUSH }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Sandshrew"), + .cryId = CRY_SANDSHREW, + .natDexNum = NATIONAL_DEX_SANDSHREW, + .categoryName = _("Mouse"), .height = 6, .weight = 120, .description = COMPOUND_STRING( @@ -2236,31 +3324,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sandshrew, 48, 48), + .frontPic = gMonFrontPic_Sandshrew, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Sandshrew, .frontAnimId = ANIM_SWING_CONCAVE_FAST_SHORT, - BACK_PIC(Sandshrew, 48, 40), + .backPic = gMonBackPic_Sandshrew, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Sandshrew), - ICON(Sandshrew, 2), - LEARNSETS(Sandshrew), + .palette = gMonPalette_Sandshrew, + .shinyPalette = gMonShinyPalette_Sandshrew, + .iconSprite = gMonIcon_Sandshrew, + .iconPalIndex = 2, + FOOTPRINT(Sandshrew) + .levelUpLearnset = sSandshrewLevelUpLearnset, + .teachableLearnset = sSandshrewTeachableLearnset, + .formSpeciesIdTable = sSandshrewFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_SANDSLASH}), }, [SPECIES_SANDSLASH] = { - SANDSLASH_MISC_INFO, .baseHP = 75, .baseAttack = 100, .baseDefense = 110, .baseSpeed = 65, .baseSpAttack = 45, .baseSpDefense = 55, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), + .catchRate = 90, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 163, + .evYield_Defense = 2, + .itemRare = ITEM_GRIP_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_SAND_RUSH }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Sandslash"), + .cryId = CRY_SANDSLASH, + .natDexNum = NATIONAL_DEX_SANDSLASH, + .categoryName = _("Mouse"), .height = 10, .weight = 295, .description = COMPOUND_STRING( @@ -2272,31 +3379,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sandslash, 64, 56), + .frontPic = gMonFrontPic_Sandslash, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Sandslash, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Sandslash, 64, 48), + .backPic = gMonBackPic_Sandslash, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Sandslash), - ICON(Sandslash, 2), - LEARNSETS(Sandslash), + .palette = gMonPalette_Sandslash, + .shinyPalette = gMonShinyPalette_Sandslash, + .iconSprite = gMonIcon_Sandslash, + .iconPalIndex = 2, + FOOTPRINT(Sandslash) + .levelUpLearnset = sSandslashLevelUpLearnset, + .teachableLearnset = sSandslashTeachableLearnset, + .formSpeciesIdTable = sSandslashFormSpeciesIdTable, }, #if P_ALOLAN_FORMS [SPECIES_SANDSHREW_ALOLAN] = { - SANDSHREW_MISC_INFO, .baseHP = 50, .baseAttack = 75, .baseDefense = 90, .baseSpeed = 40, .baseSpAttack = 10, .baseSpDefense = 35, - .types = { TYPE_ICE, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ICE, TYPE_STEEL), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 93, + .evYield_Defense = 1, + .itemRare = ITEM_GRIP_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SLUSH_RUSH }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Sandshrew"), + .cryId = CRY_SANDSHREW, + .natDexNum = NATIONAL_DEX_SANDSHREW, + .categoryName = _("Mouse"), .height = 7, .weight = 400, .description = COMPOUND_STRING( @@ -2308,32 +3434,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(SandshrewAlolan, 40, 40), + .frontPic = gMonFrontPic_SandshrewAlolan, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_SandshrewAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SandshrewAlolan, 56, 40), + .backPic = gMonBackPic_SandshrewAlolan, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SandshrewAlolan), - ICON(SandshrewAlolan, 0), - LEARNSETS(SandshrewAlolan), + .palette = gMonPalette_SandshrewAlolan, + .shinyPalette = gMonShinyPalette_SandshrewAlolan, + .iconSprite = gMonIcon_SandshrewAlolan, + .iconPalIndex = 0, + FOOTPRINT(Sandshrew) .isAlolanForm = TRUE, + .levelUpLearnset = sSandshrewAlolanLevelUpLearnset, + .teachableLearnset = sSandshrewAlolanTeachableLearnset, + .formSpeciesIdTable = sSandshrewFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_SANDSLASH_ALOLAN}), }, [SPECIES_SANDSLASH_ALOLAN] = { - SANDSLASH_MISC_INFO, .baseHP = 75, .baseAttack = 100, .baseDefense = 120, .baseSpeed = 65, .baseSpAttack = 25, .baseSpDefense = 65, - .types = { TYPE_ICE, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ICE, TYPE_STEEL), + .catchRate = 90, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 163, + .evYield_Defense = 2, + .itemRare = ITEM_GRIP_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SLUSH_RUSH }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Sandslash"), + .cryId = CRY_SANDSLASH, + .natDexNum = NATIONAL_DEX_SANDSLASH, + .categoryName = _("Mouse"), .height = 12, .weight = 550, .description = COMPOUND_STRING( @@ -2345,17 +3490,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(SandslashAlolan, 64, 64), + .frontPic = gMonFrontPic_SandslashAlolan, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_SandslashAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SandslashAlolan, 64, 56), + .backPic = gMonBackPic_SandslashAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SandslashAlolan), - ICON(SandslashAlolan, 0), - LEARNSETS(SandslashAlolan), + .palette = gMonPalette_SandslashAlolan, + .shinyPalette = gMonShinyPalette_SandslashAlolan, + .iconSprite = gMonIcon_SandslashAlolan, + .iconPalIndex = 0, + FOOTPRINT(Sandslash) .isAlolanForm = TRUE, + .levelUpLearnset = sSandslashAlolanLevelUpLearnset, + .teachableLearnset = sSandslashAlolanTeachableLearnset, + .formSpeciesIdTable = sSandslashFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_SANDSHREW @@ -2369,15 +3521,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 41, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 235, - .expYield = 55, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 55 : 59, .evYield_HP = 1, .genderRatio = MON_FEMALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Nidoran♀"), @@ -2395,18 +3547,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(NidoranF, 40, 40), + .frontPic = gMonFrontPic_NidoranF, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_NidoranF, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .frontAnimDelay = 28, - BACK_PIC(NidoranF, 48, 40), + .backPic = gMonBackPic_NidoranF, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(NidoranF), - ICON(NidoranF, 0), - .footprint = gMonFootprint_NidoranF, - LEARNSETS(NidoranF), + .palette = gMonPalette_NidoranF, + .shinyPalette = gMonShinyPalette_NidoranF, + .iconSprite = gMonIcon_NidoranF, + .iconPalIndex = 0, + FOOTPRINT(NidoranF) + .levelUpLearnset = sNidoranFLevelUpLearnset, + .teachableLearnset = sNidoranFTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_NIDORINA}), }, @@ -2418,15 +3575,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 56, .baseSpAttack = 55, .baseSpDefense = 55, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 120, - .expYield = 128, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 128 : 117, .evYield_HP = 2, .genderRatio = MON_FEMALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Nidorina"), @@ -2444,17 +3601,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nidorina, 48, 48), + .frontPic = gMonFrontPic_Nidorina, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Nidorina, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Nidorina, 56, 56), + .backPic = gMonBackPic_Nidorina, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Nidorina), - ICON(Nidorina, 0), - .footprint = gMonFootprint_Nidorina, - LEARNSETS(Nidorina), + .palette = gMonPalette_Nidorina, + .shinyPalette = gMonShinyPalette_Nidorina, + .iconSprite = gMonIcon_Nidorina, + .iconPalIndex = 0, + FOOTPRINT(Nidorina) + .levelUpLearnset = sNidorinaLevelUpLearnset, + .teachableLearnset = sNidorinaTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOQUEEN}), }, @@ -2466,15 +3628,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 76, .baseSpAttack = 75, .baseSpDefense = 85, - .types = { TYPE_POISON, TYPE_GROUND }, + .types = MON_TYPES(TYPE_POISON, TYPE_GROUND), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 253, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 227, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 223, + #else + .expYield = 194, + #endif .evYield_HP = 3, .genderRatio = MON_FEMALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Nidoqueen"), @@ -2492,17 +3662,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nidoqueen, 64, 64), + .frontPic = gMonFrontPic_Nidoqueen, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Nidoqueen, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Nidoqueen, 64, 56), + .backPic = gMonBackPic_Nidoqueen, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Nidoqueen), - ICON(Nidoqueen, 2), - .footprint = gMonFootprint_Nidoqueen, - LEARNSETS(Nidoqueen), + .palette = gMonPalette_Nidoqueen, + .shinyPalette = gMonShinyPalette_Nidoqueen, + .iconSprite = gMonIcon_Nidoqueen, + .iconPalIndex = 2, + FOOTPRINT(Nidoqueen) + .levelUpLearnset = sNidoqueenLevelUpLearnset, + .teachableLearnset = sNidoqueenTeachableLearnset, }, [SPECIES_NIDORAN_M] = @@ -2513,15 +3688,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 235, - .expYield = 55, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 55 : 60, .evYield_Attack = 1, .genderRatio = MON_MALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Nidoran♂"), @@ -2539,17 +3714,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(NidoranM, 40, 40), + .frontPic = gMonFrontPic_NidoranM, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_NidoranM, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(NidoranM, 48, 48), + .backPic = gMonBackPic_NidoranM, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(NidoranM), - ICON(NidoranM, 2), - .footprint = gMonFootprint_NidoranM, - LEARNSETS(NidoranM), + .palette = gMonPalette_NidoranM, + .shinyPalette = gMonShinyPalette_NidoranM, + .iconSprite = gMonIcon_NidoranM, + .iconPalIndex = 2, + FOOTPRINT(NidoranM) + .levelUpLearnset = sNidoranMLevelUpLearnset, + .teachableLearnset = sNidoranMTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_NIDORINO}), }, @@ -2561,15 +3741,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 65, .baseSpAttack = 55, .baseSpDefense = 55, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 120, - .expYield = 128, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 128 : 118, .evYield_Attack = 2, .genderRatio = MON_MALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Nidorino"), @@ -2587,17 +3767,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nidorino, 56, 48), + .frontPic = gMonFrontPic_Nidorino, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Nidorino, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Nidorino, 64, 56), + .backPic = gMonBackPic_Nidorino, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Nidorino), - ICON(Nidorino, 2), - .footprint = gMonFootprint_Nidorino, - LEARNSETS(Nidorino), + .palette = gMonPalette_Nidorino, + .shinyPalette = gMonShinyPalette_Nidorino, + .iconSprite = gMonIcon_Nidorino, + .iconPalIndex = 2, + FOOTPRINT(Nidorino) + .levelUpLearnset = sNidorinoLevelUpLearnset, + .teachableLearnset = sNidorinoTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOKING}), }, @@ -2609,15 +3794,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 85, .baseSpAttack = 85, .baseSpDefense = 75, - .types = { TYPE_POISON, TYPE_GROUND }, + .types = MON_TYPES(TYPE_POISON, TYPE_GROUND), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 253, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 227, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 223, + #else + .expYield = 195, + #endif .evYield_Attack = 3, .genderRatio = MON_MALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Nidoking"), @@ -2635,18 +3828,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nidoking, 64, 64), + .frontPic = gMonFrontPic_Nidoking, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Nidoking, .frontAnimId = ANIM_H_SHAKE, .frontAnimDelay = 25, - BACK_PIC(Nidoking, 64, 64), + .backPic = gMonBackPic_Nidoking, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Nidoking), - ICON(Nidoking, 2), - .footprint = gMonFootprint_Nidoking, - LEARNSETS(Nidoking), + .palette = gMonPalette_Nidoking, + .shinyPalette = gMonShinyPalette_Nidoking, + .iconSprite = gMonIcon_Nidoking, + .iconPalIndex = 2, + FOOTPRINT(Nidoking) + .levelUpLearnset = sNidokingLevelUpLearnset, + .teachableLearnset = sNidokingTeachableLearnset, }, #endif //P_FAMILY_NIDORAN @@ -2668,14 +3866,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpDefense = 55, .types = CLEFAIRY_FAMILY_TYPES, .catchRate = 150, - .expYield = 44, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 44 : 37, .evYield_SpDefense = 1, .itemRare = ITEM_MOON_STONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_CUTE_CHARM, ABILITY_MAGIC_GUARD, ABILITY_FRIEND_GUARD }, .bodyColor = BODY_COLOR_PINK, .noFlip = TRUE, @@ -2694,17 +3892,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 23, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cleffa, 32, 32), + .frontPic = gMonFrontPic_Cleffa, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 18, .frontAnimFrames = sAnims_Cleffa, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Cleffa, 48, 40), + .backPic = gMonBackPic_Cleffa, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Cleffa), - ICON(Cleffa, 0), - .footprint = gMonFootprint_Cleffa, - LEARNSETS(Cleffa), + .palette = gMonPalette_Cleffa, + .shinyPalette = gMonShinyPalette_Cleffa, + .iconSprite = gMonIcon_Cleffa, + .iconPalIndex = 0, + FOOTPRINT(Cleffa) + .levelUpLearnset = sCleffaLevelUpLearnset, + .teachableLearnset = sCleffaTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_CLEFAIRY}), }, #endif //P_GEN_2_CROSS_EVOS @@ -2719,14 +3922,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpDefense = 65, .types = CLEFAIRY_FAMILY_TYPES, .catchRate = 150, - .expYield = 113, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 113 : 68, .evYield_HP = 2, .itemRare = ITEM_MOON_STONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_CUTE_CHARM, ABILITY_MAGIC_GUARD, ABILITY_FRIEND_GUARD }, .bodyColor = BODY_COLOR_PINK, .noFlip = TRUE, @@ -2745,17 +3948,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Clefairy, 40, 40), + .frontPic = gMonFrontPic_Clefairy, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Clefairy, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Clefairy, 56, 40), + .backPic = gMonBackPic_Clefairy, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Clefairy), - ICON(Clefairy, 0), - .footprint = gMonFootprint_Clefairy, - LEARNSETS(Clefairy), + .palette = gMonPalette_Clefairy, + .shinyPalette = gMonShinyPalette_Clefairy, + .iconSprite = gMonIcon_Clefairy, + .iconPalIndex = 0, + FOOTPRINT(Clefairy) + .levelUpLearnset = sClefairyLevelUpLearnset, + .teachableLearnset = sClefairyTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_CLEFABLE}), }, @@ -2769,14 +3977,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpDefense = 90, .types = CLEFAIRY_FAMILY_TYPES, .catchRate = 25, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 242, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 217, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 213, + #else + .expYield = 129, + #endif .evYield_HP = 3, .itemRare = ITEM_MOON_STONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_CUTE_CHARM, ABILITY_MAGIC_GUARD, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_PINK, .noFlip = TRUE, @@ -2795,180 +4011,247 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Clefable, 56, 56), + .frontPic = gMonFrontPic_Clefable, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Clefable, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Clefable, 64, 48), + .backPic = gMonBackPic_Clefable, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Clefable), - ICON(Clefable, 0), - .footprint = gMonFootprint_Clefable, - LEARNSETS(Clefable), + .palette = gMonPalette_Clefable, + .shinyPalette = gMonShinyPalette_Clefable, + .iconSprite = gMonIcon_Clefable, + .iconPalIndex = 0, + FOOTPRINT(Clefable) + .levelUpLearnset = sClefableLevelUpLearnset, + .teachableLearnset = sClefableTeachableLearnset, }, #endif //P_FAMILY_CLEFAIRY #if P_FAMILY_VULPIX -#define VULPIX_FAMILY_MISC_INFO \ - .genderRatio = PERCENT_FEMALE(75), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD } - -#define VULPIX_MISC_INFO \ - .baseHP = 38, \ - .baseAttack = 41, \ - .baseDefense = 40, \ - .baseSpeed = 65, \ - .baseSpAttack = 50, \ - .baseSpDefense = 65, \ - .catchRate = 190, \ - .expYield = 60, \ - .evYield_Speed = 1, \ - .speciesName = _("Vulpix"), \ - .cryId = CRY_VULPIX, \ - .natDexNum = NATIONAL_DEX_VULPIX, \ - .categoryName = _("Fox"), \ - .height = 6, \ - .weight = 99, \ - .pokemonScale = 542, \ - .pokemonOffset = 19, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Vulpix, \ - .formSpeciesIdTable = sVulpixFormSpeciesIdTable,\ - VULPIX_FAMILY_MISC_INFO - -#define NINETALES_MISC_INFO \ - .catchRate = 75, \ - .expYield = 177, \ - .evYield_Speed = 1, \ - .evYield_SpDefense = 1, \ - .speciesName = _("Ninetales"), \ - .cryId = CRY_NINETALES, \ - .natDexNum = NATIONAL_DEX_NINETALES, \ - .categoryName = _("Fox"), \ - .height = 11, \ - .weight = 199, \ - .pokemonScale = 339, \ - .pokemonOffset = 10, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Ninetales, \ - .formSpeciesIdTable = sNinetalesFormSpeciesIdTable, \ - VULPIX_FAMILY_MISC_INFO - [SPECIES_VULPIX] = { - VULPIX_MISC_INFO, - .types = { TYPE_FIRE, TYPE_FIRE }, + .baseHP = 38, + .baseAttack = 41, + .baseDefense = 40, + .baseSpeed = 65, + .baseSpAttack = 50, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 63, + .evYield_Speed = 1, .itemRare = ITEM_CHARCOAL, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_DROUGHT }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Vulpix"), + .cryId = CRY_VULPIX, + .natDexNum = NATIONAL_DEX_VULPIX, + .categoryName = _("Fox"), + .height = 6, + .weight = 99, .description = COMPOUND_STRING( "It can freely control fire, making fiery\n" "orbs fly like will-o'-the-wisps. Just\n" "before evolution, its six tails grow hot \n" "as if on fire."), - FRONT_PIC(Vulpix, 56, 48), + .pokemonScale = 542, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Vulpix, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Vulpix, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Vulpix, 64, 48), + .backPic = gMonBackPic_Vulpix, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Vulpix), - ICON(Vulpix, 5), - LEARNSETS(Vulpix), + .palette = gMonPalette_Vulpix, + .shinyPalette = gMonShinyPalette_Vulpix, + .iconSprite = gMonIcon_Vulpix, + .iconPalIndex = 5, + FOOTPRINT(Vulpix) + .levelUpLearnset = sVulpixLevelUpLearnset, + .teachableLearnset = sVulpixTeachableLearnset, + .formSpeciesIdTable = sVulpixFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_NINETALES}), }, [SPECIES_NINETALES] = { - NINETALES_MISC_INFO, .baseHP = 73, .baseAttack = 76, .baseDefense = 75, .baseSpeed = 100, .baseSpAttack = 81, .baseSpDefense = 100, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 177 : 178, + .evYield_Speed = 1, + .evYield_SpDefense = 1, .itemRare = ITEM_CHARCOAL, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_DROUGHT }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Ninetales"), + .cryId = CRY_NINETALES, + .natDexNum = NATIONAL_DEX_NINETALES, + .categoryName = _("Fox"), + .height = 11, + .weight = 199, .description = COMPOUND_STRING( "It has long been said that each of the\n" "nine tails embody an enchanted power.\n" "A long-lived Ninetales will have fur that\n" "shines like gold."), - FRONT_PIC(Ninetales, 64, 64), + .pokemonScale = 339, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Ninetales, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Ninetales, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Ninetales, 64, 56), + .backPic = gMonBackPic_Ninetales, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Ninetales), - ICON(Ninetales, 3), - LEARNSETS(Ninetales), + .palette = gMonPalette_Ninetales, + .shinyPalette = gMonShinyPalette_Ninetales, + .iconSprite = gMonIcon_Ninetales, + .iconPalIndex = 3, + FOOTPRINT(Ninetales) + .levelUpLearnset = sNinetalesLevelUpLearnset, + .teachableLearnset = sNinetalesTeachableLearnset, + .formSpeciesIdTable = sNinetalesFormSpeciesIdTable, }, #if P_ALOLAN_FORMS [SPECIES_VULPIX_ALOLAN] = { - VULPIX_MISC_INFO, - .types = { TYPE_ICE, TYPE_ICE }, + .baseHP = 38, + .baseAttack = 41, + .baseDefense = 40, + .baseSpeed = 65, + .baseSpAttack = 50, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 63, + .evYield_Speed = 1, + .itemRare = ITEM_SNOWBALL, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SNOW_WARNING }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Vulpix"), + .cryId = CRY_VULPIX, + .natDexNum = NATIONAL_DEX_VULPIX, + .categoryName = _("Fox"), + .height = 6, + .weight = 99, .description = COMPOUND_STRING( "They live together in a skulk, helping\n" "one another. In hot weather, this Pokémon\n" "makes ice shards with its six tails and\n" "sprays them around to cool itself off."), - FRONT_PIC(VulpixAlolan, 48, 48), + .pokemonScale = 542, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_VulpixAlolan, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_VulpixAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(VulpixAlolan, 64, 56), + .backPic = gMonBackPic_VulpixAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(VulpixAlolan), - ICON(VulpixAlolan, 2), - LEARNSETS(VulpixAlolan), - .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_NINETALES_ALOLAN}), + .palette = gMonPalette_VulpixAlolan, + .shinyPalette = gMonShinyPalette_VulpixAlolan, + .iconSprite = gMonIcon_VulpixAlolan, + .iconPalIndex = 2, + FOOTPRINT(Vulpix) .isAlolanForm = TRUE, + .levelUpLearnset = sVulpixAlolanLevelUpLearnset, + .teachableLearnset = sVulpixAlolanTeachableLearnset, + .formSpeciesIdTable = sVulpixFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_NINETALES_ALOLAN}), }, [SPECIES_NINETALES_ALOLAN] = { - NINETALES_MISC_INFO, .baseHP = 73, .baseAttack = 67, .baseDefense = 75, .baseSpeed = 109, .baseSpAttack = 81, .baseSpDefense = 100, - .types = { TYPE_ICE, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_ICE, TYPE_FAIRY), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 177 : 178, + .evYield_Speed = 1, + .evYield_SpDefense = 1, + .itemRare = ITEM_SNOWBALL, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SNOW_WARNING }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Ninetales"), + .cryId = CRY_NINETALES, + .natDexNum = NATIONAL_DEX_NINETALES, + .categoryName = _("Fox"), + .height = 11, + .weight = 199, .description = COMPOUND_STRING( "While it will guide travelers who get lost\n" "on a snowy mountain down to the\n" "mountain's base, it won't forgive anyone\n" "who harms nature."), - FRONT_PIC(NinetalesAlolan, 64, 64), + .pokemonScale = 339, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_NinetalesAlolan, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_NinetalesAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(NinetalesAlolan, 64, 56), + .backPic = gMonBackPic_NinetalesAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(NinetalesAlolan), - ICON(NinetalesAlolan, 2), - LEARNSETS(NinetalesAlolan), + .palette = gMonPalette_NinetalesAlolan, + .shinyPalette = gMonShinyPalette_NinetalesAlolan, + .iconSprite = gMonIcon_NinetalesAlolan, + .iconPalIndex = 2, + FOOTPRINT(Ninetales) .isAlolanForm = TRUE, + .levelUpLearnset = sNinetalesAlolanLevelUpLearnset, + .teachableLearnset = sNinetalesAlolanTeachableLearnset, + .formSpeciesIdTable = sNinetalesFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_VULPIX @@ -2991,13 +4274,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpDefense = 20, .types = JIGGLYPUFF_FAMILY_TYPES, .catchRate = 170, - .expYield = 42, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 42 : 39, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRIEND_GUARD }, .bodyColor = BODY_COLOR_PINK, .noFlip = TRUE, @@ -3016,17 +4299,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Igglybuff, 32, 32), + .frontPic = gMonFrontPic_Igglybuff, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Igglybuff, .frontAnimId = ANIM_SWING_CONCAVE_FAST, - BACK_PIC(Igglybuff, 40, 40), + .backPic = gMonBackPic_Igglybuff, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Igglybuff), - ICON(Igglybuff, 1), - .footprint = gMonFootprint_Igglybuff, - LEARNSETS(Igglybuff), + .palette = gMonPalette_Igglybuff, + .shinyPalette = gMonShinyPalette_Igglybuff, + .iconSprite = gMonIcon_Igglybuff, + .iconPalIndex = 1, + FOOTPRINT(Igglybuff) + .levelUpLearnset = sIgglybuffLevelUpLearnset, + .teachableLearnset = sIgglybuffTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_JIGGLYPUFF}), }, #endif //P_GEN_2_CROSS_EVOS @@ -3041,14 +4329,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpDefense = 25, .types = JIGGLYPUFF_FAMILY_TYPES, .catchRate = 170, - .expYield = 95, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 95 : 76, .evYield_HP = 2, .itemRare = ITEM_MOON_STONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRIEND_GUARD }, .bodyColor = BODY_COLOR_PINK, .noFlip = TRUE, @@ -3067,17 +4355,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Jigglypuff, 40, 40), + .frontPic = gMonFrontPic_Jigglypuff, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Jigglypuff, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, - BACK_PIC(Jigglypuff, 56, 48), + .backPic = gMonBackPic_Jigglypuff, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Jigglypuff), - ICON(Jigglypuff, 0), - .footprint = gMonFootprint_Jigglypuff, - LEARNSETS(Jigglypuff), + .palette = gMonPalette_Jigglypuff, + .shinyPalette = gMonShinyPalette_Jigglypuff, + .iconSprite = gMonIcon_Jigglypuff, + .iconPalIndex = 0, + FOOTPRINT(Jigglypuff) + .levelUpLearnset = sJigglypuffLevelUpLearnset, + .teachableLearnset = sJigglypuffTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_WIGGLYTUFF}), }, @@ -3091,14 +4384,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpDefense = 50, .types = JIGGLYPUFF_FAMILY_TYPES, .catchRate = 50, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 218, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 196, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 191, + #else + .expYield = 109, + #endif .evYield_HP = 3, .itemRare = ITEM_MOON_STONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRISK }, .bodyColor = BODY_COLOR_PINK, .noFlip = TRUE, @@ -3117,17 +4418,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wigglytuff, 48, 64), + .frontPic = gMonFrontPic_Wigglytuff, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Wigglytuff, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Wigglytuff, 56, 64), + .backPic = gMonBackPic_Wigglytuff, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_GROW, - PALETTES(Wigglytuff), - ICON(Wigglytuff, 0), - .footprint = gMonFootprint_Wigglytuff, - LEARNSETS(Wigglytuff), + .palette = gMonPalette_Wigglytuff, + .shinyPalette = gMonShinyPalette_Wigglytuff, + .iconSprite = gMonIcon_Wigglytuff, + .iconPalIndex = 0, + FOOTPRINT(Wigglytuff) + .levelUpLearnset = sWigglytuffLevelUpLearnset, + .teachableLearnset = sWigglytuffTeachableLearnset, }, #endif //P_FAMILY_JIGGLYPUFF @@ -3140,15 +4446,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 55, .baseSpAttack = 30, .baseSpDefense = 40, - .types = { TYPE_POISON, TYPE_FLYING }, + .types = MON_TYPES(TYPE_POISON, TYPE_FLYING), .catchRate = 255, - .expYield = 49, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 49 : 54, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Zubat"), @@ -3166,20 +4472,27 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Zubat, 56, 48), - FRONT_PIC_FEMALE(Zubat, 56, 48), + .frontPic = gMonFrontPic_Zubat, + .frontPicFemale = gMonFrontPic_ZubatF, + .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Zubat, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 16, - BACK_PIC(Zubat, 56, 56), - BACK_PIC_FEMALE(Zubat, 56, 56), + .backPic = gMonBackPic_Zubat, + .backPicFemale = gMonBackPic_ZubatF, + .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Zubat), - ICON(Zubat, 2), - .footprint = gMonFootprint_Zubat, - LEARNSETS(Zubat), + .palette = gMonPalette_Zubat, + .shinyPalette = gMonShinyPalette_Zubat, + .iconSprite = gMonIcon_Zubat, + .iconPalIndex = 2, + FOOTPRINT(Zubat) + .levelUpLearnset = sZubatLevelUpLearnset, + .teachableLearnset = sZubatTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_GOLBAT}), }, @@ -3191,15 +4504,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 90, .baseSpAttack = 65, .baseSpDefense = 75, - .types = { TYPE_POISON, TYPE_FLYING }, + .types = MON_TYPES(TYPE_POISON, TYPE_FLYING), .catchRate = 90, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 171, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Golbat"), @@ -3217,20 +4530,27 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Golbat, 64, 56), - FRONT_PIC_FEMALE(Golbat, 64, 56), + .frontPic = gMonFrontPic_Golbat, + .frontPicFemale = gMonFrontPic_GolbatF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Golbat, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 10, - BACK_PIC(Golbat, 56, 40), - BACK_PIC_FEMALE(Golbat, 56, 40), + .backPic = gMonBackPic_Golbat, + .backPicFemale = gMonBackPic_GolbatF, + .backPicSize = MON_COORDS_SIZE(56, 40), + .backPicSizeFemale = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Golbat), - ICON(Golbat, 2), - .footprint = gMonFootprint_Golbat, - LEARNSETS(Golbat), + .palette = gMonPalette_Golbat, + .shinyPalette = gMonShinyPalette_Golbat, + .iconSprite = gMonIcon_Golbat, + .iconPalIndex = 2, + FOOTPRINT(Golbat) + .levelUpLearnset = sGolbatLevelUpLearnset, + .teachableLearnset = sGolbatTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_CROBAT}), }, @@ -3243,15 +4563,21 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 130, .baseSpAttack = 70, .baseSpDefense = 80, - .types = { TYPE_POISON, TYPE_FLYING }, + .types = MON_TYPES(TYPE_POISON, TYPE_FLYING), .catchRate = 90, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 268, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 241, + #else + .expYield = 204, + #endif .evYield_Speed = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Crobat"), @@ -3269,18 +4595,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 281, .trainerOffset = 1, - FRONT_PIC(Crobat, 64, 56), + .frontPic = gMonFrontPic_Crobat, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Crobat, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 9, - BACK_PIC(Crobat, 64, 64), + .backPic = gMonBackPic_Crobat, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Crobat), - ICON(Crobat, 2), - .footprint = gMonFootprint_Crobat, - LEARNSETS(Crobat), + .palette = gMonPalette_Crobat, + .shinyPalette = gMonShinyPalette_Crobat, + .iconSprite = gMonIcon_Crobat, + .iconPalIndex = 2, + FOOTPRINT(Crobat) + .levelUpLearnset = sCrobatLevelUpLearnset, + .teachableLearnset = sCrobatTeachableLearnset, }, #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_ZUBAT @@ -3294,15 +4625,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 30, .baseSpAttack = 75, .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 255, - .expYield = 64, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 64 : 78, .evYield_SpAttack = 1, + .itemRare = ITEM_ABSORB_BULB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_RUN_AWAY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Oddish"), @@ -3320,17 +4652,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Oddish, 40, 40), + .frontPic = gMonFrontPic_Oddish, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Oddish, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, - BACK_PIC(Oddish, 48, 48), + .backPic = gMonBackPic_Oddish, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Oddish), - ICON(Oddish, 4), - .footprint = gMonFootprint_Oddish, - LEARNSETS(Oddish), + .palette = gMonPalette_Oddish, + .shinyPalette = gMonShinyPalette_Oddish, + .iconSprite = gMonIcon_Oddish, + .iconPalIndex = 4, + FOOTPRINT(Oddish) + .levelUpLearnset = sOddishLevelUpLearnset, + .teachableLearnset = sOddishTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 21, SPECIES_GLOOM}), }, @@ -3342,15 +4679,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 40, .baseSpAttack = 85, .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 120, - .expYield = 138, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 138 : 132, .evYield_SpAttack = 2, + .itemRare = ITEM_ABSORB_BULB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_STENCH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Gloom"), @@ -3368,19 +4706,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gloom, 56, 48), - FRONT_PIC_FEMALE(Gloom, 56, 48), + .frontPic = gMonFrontPic_Gloom, + .frontPicFemale = gMonFrontPic_GloomF, + .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Gloom, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Gloom, 64, 48), - BACK_PIC_FEMALE(Gloom, 64, 48), + .backPic = gMonBackPic_Gloom, + .backPicFemale = gMonBackPic_GloomF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Gloom), - ICON(Gloom, 0), - .footprint = gMonFootprint_Gloom, - LEARNSETS(Gloom), + .palette = gMonPalette_Gloom, + .shinyPalette = gMonShinyPalette_Gloom, + .iconSprite = gMonIcon_Gloom, + .iconPalIndex = 0, + FOOTPRINT(Gloom) + .levelUpLearnset = sGloomLevelUpLearnset, + .teachableLearnset = sGloomTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VILEPLUME}, {EVO_ITEM, ITEM_SUN_STONE, SPECIES_BELLOSSOM}), }, @@ -3393,15 +4738,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 110 : 100, .baseSpDefense = 90, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 245, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 221, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 216, + #else + .expYield = 184, + #endif .evYield_SpAttack = 3, + .itemRare = ITEM_ABSORB_BULB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_EFFECT_SPORE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Vileplume"), @@ -3419,19 +4773,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vileplume, 56, 56), - FRONT_PIC_FEMALE(Vileplume, 56, 56), + .frontPic = gMonFrontPic_Vileplume, + .frontPicFemale = gMonFrontPic_VileplumeF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Vileplume, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Vileplume, 64, 56), - BACK_PIC_FEMALE(Vileplume, 64, 56), + .backPic = gMonBackPic_Vileplume, + .backPicFemale = gMonBackPic_VileplumeF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Vileplume), - ICON(Vileplume, 0), - .footprint = gMonFootprint_Vileplume, - LEARNSETS(Vileplume), + .palette = gMonPalette_Vileplume, + .shinyPalette = gMonShinyPalette_Vileplume, + .iconSprite = gMonIcon_Vileplume, + .iconPalIndex = 0, + FOOTPRINT(Vileplume) + .levelUpLearnset = sVileplumeLevelUpLearnset, + .teachableLearnset = sVileplumeTeachableLearnset, }, #if P_GEN_2_CROSS_EVOS @@ -3443,15 +4804,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 90, .baseSpDefense = 100, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 245, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 221, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 216, + #else + .expYield = 184, + #endif .evYield_SpDefense = 3, + .itemRare = ITEM_ABSORB_BULB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HEALER }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Bellossom"), @@ -3469,17 +4839,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bellossom, 32, 40), + .frontPic = gMonFrontPic_Bellossom, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Bellossom, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Bellossom, 48, 48), + .backPic = gMonBackPic_Bellossom, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Bellossom), - ICON(Bellossom, 1), - .footprint = gMonFootprint_Bellossom, - LEARNSETS(Bellossom), + .palette = gMonPalette_Bellossom, + .shinyPalette = gMonShinyPalette_Bellossom, + .iconSprite = gMonIcon_Bellossom, + .iconPalIndex = 1, + FOOTPRINT(Bellossom) + .levelUpLearnset = sBellossomLevelUpLearnset, + .teachableLearnset = sBellossomTeachableLearnset, }, #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_ODDISH @@ -3493,9 +4868,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 25, .baseSpAttack = 45, .baseSpDefense = 55, - .types = { TYPE_BUG, TYPE_GRASS }, + .types = MON_TYPES(TYPE_BUG, TYPE_GRASS), .catchRate = 190, - .expYield = 57, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 57 : 70, .evYield_Attack = 1, .itemCommon = ITEM_TINY_MUSHROOM, .itemRare = ITEM_BIG_MUSHROOM, @@ -3503,7 +4878,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_GRASS), .abilities = { ABILITY_EFFECT_SPORE, ABILITY_DRY_SKIN, ABILITY_DAMP }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Paras"), @@ -3521,18 +4896,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 22, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Paras, 48, 40), + .frontPic = gMonFrontPic_Paras, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Paras, .frontAnimId = ANIM_H_SLIDE_SLOW, .frontAnimDelay = 10, - BACK_PIC(Paras, 64, 32), + .backPic = gMonBackPic_Paras, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 18, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Paras), - ICON(Paras, 0), - .footprint = gMonFootprint_Paras, - LEARNSETS(Paras), + .palette = gMonPalette_Paras, + .shinyPalette = gMonShinyPalette_Paras, + .iconSprite = gMonIcon_Paras, + .iconPalIndex = 0, + FOOTPRINT(Paras) + .levelUpLearnset = sParasLevelUpLearnset, + .teachableLearnset = sParasTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_PARASECT}), }, @@ -3544,9 +4924,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 30, .baseSpAttack = 60, .baseSpDefense = 80, - .types = { TYPE_BUG, TYPE_GRASS }, + .types = MON_TYPES(TYPE_BUG, TYPE_GRASS), .catchRate = 75, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 128, .evYield_Attack = 2, .evYield_Defense = 1, .itemCommon = ITEM_TINY_MUSHROOM, @@ -3555,7 +4935,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_GRASS), .abilities = { ABILITY_EFFECT_SPORE, ABILITY_DRY_SKIN, ABILITY_DAMP }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Parasect"), @@ -3573,18 +4953,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Parasect, 56, 56), + .frontPic = gMonFrontPic_Parasect, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Parasect, .frontAnimId = ANIM_H_SHAKE, .frontAnimDelay = 45, - BACK_PIC(Parasect, 64, 40), + .backPic = gMonBackPic_Parasect, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Parasect), - ICON(Parasect, 0), - .footprint = gMonFootprint_Parasect, - LEARNSETS(Parasect), + .palette = gMonPalette_Parasect, + .shinyPalette = gMonShinyPalette_Parasect, + .iconSprite = gMonIcon_Parasect, + .iconPalIndex = 0, + FOOTPRINT(Parasect) + .levelUpLearnset = sParasectLevelUpLearnset, + .teachableLearnset = sParasectTeachableLearnset, }, #endif //P_FAMILY_PARAS @@ -3597,15 +4982,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 45, .baseSpAttack = 40, .baseSpDefense = 55, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 190, - .expYield = 61, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 61 : 75, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_COMPOUND_EYES, ABILITY_TINTED_LENS, ABILITY_RUN_AWAY }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Venonat"), @@ -3623,18 +5008,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = -1, - FRONT_PIC(Venonat, 40, 56), + .frontPic = gMonFrontPic_Venonat, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Venonat, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, .frontAnimDelay = 20, - BACK_PIC(Venonat, 64, 56), + .backPic = gMonBackPic_Venonat, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Venonat), - ICON(Venonat, 2), - .footprint = gMonFootprint_Venonat, - LEARNSETS(Venonat), + .palette = gMonPalette_Venonat, + .shinyPalette = gMonShinyPalette_Venonat, + .iconSprite = gMonIcon_Venonat, + .iconPalIndex = 2, + FOOTPRINT(Venonat) + .levelUpLearnset = sVenonatLevelUpLearnset, + .teachableLearnset = sVenonatTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_VENOMOTH}), }, @@ -3646,16 +5036,17 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 90, .baseSpAttack = 90, .baseSpDefense = 75, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 75, - .expYield = 158, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 138, .evYield_Speed = 1, .evYield_SpAttack = 1, + .itemRare = ITEM_SHED_SHELL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SHIELD_DUST, ABILITY_TINTED_LENS, ABILITY_WONDER_SKIN }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Venomoth"), @@ -3673,240 +5064,289 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 1, - FRONT_PIC(Venomoth, 64, 48), + .frontPic = gMonFrontPic_Venomoth, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Venomoth, .frontAnimId = ANIM_ZIGZAG_SLOW, .enemyMonElevation = 16, - BACK_PIC(Venomoth, 64, 56), + .backPic = gMonBackPic_Venomoth, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Venomoth), - ICON(Venomoth, 2), - .footprint = gMonFootprint_Venomoth, - LEARNSETS(Venomoth), + .palette = gMonPalette_Venomoth, + .shinyPalette = gMonShinyPalette_Venomoth, + .iconSprite = gMonIcon_Venomoth, + .iconPalIndex = 2, + FOOTPRINT(Venomoth) + .levelUpLearnset = sVenomothLevelUpLearnset, + .teachableLearnset = sVenomothTeachableLearnset, }, #endif //P_FAMILY_VENONAT #if P_FAMILY_DIGLETT -#define DIGLETT_FAMILY_MISC_INFO \ - .itemRare = ITEM_SOFT_SAND, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_BROWN -#define DIGLETT_MISC_INFO \ - .catchRate = 255, \ - .expYield = 53, \ - .evYield_Speed = 1, \ - .speciesName = _("Diglett"), \ - .cryId = CRY_DIGLETT, \ - .natDexNum = NATIONAL_DEX_DIGLETT, \ - .categoryName = _("Mole"), \ - .height = 2, \ - .pokemonScale = 833, \ - .pokemonOffset = 25, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Diglett, \ - .formSpeciesIdTable = sDiglettFormSpeciesIdTable, \ - DIGLETT_FAMILY_MISC_INFO - -#define DUGTRIO_MISC_INFO \ - .catchRate = 50, \ - .expYield = 149, \ - .evYield_Speed = 2, \ - .speciesName = _("Dugtrio"), \ - .cryId = CRY_DUGTRIO, \ - .natDexNum = NATIONAL_DEX_DUGTRIO, \ - .categoryName = _("Mole"), \ - .height = 7, \ - .pokemonScale = 406, \ - .pokemonOffset = 18, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Dugtrio, \ - .formSpeciesIdTable = sDugtrioFormSpeciesIdTable, \ - DIGLETT_FAMILY_MISC_INFO +#if P_UPDATED_EXP_YIELDS >= GEN_7 + #define DUGTRIO_EXP_YIELD 149 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define DUGTRIO_EXP_YIELD 142 +#else + #define DUGTRIO_EXP_YIELD 153 +#endif #define DUGTRIO_ATTACK (P_UPDATED_STATS >= GEN_7 ? 100 : 80) [SPECIES_DIGLETT] = { - DIGLETT_MISC_INFO, .baseHP = 10, .baseAttack = 55, .baseDefense = 25, .baseSpeed = 95, .baseSpAttack = 35, .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 53 : 81, + .evYield_Speed = 1, + .itemRare = ITEM_SOFT_SAND, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_VEIL, ABILITY_ARENA_TRAP, ABILITY_SAND_FORCE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Diglett"), + .cryId = CRY_DIGLETT, + .natDexNum = NATIONAL_DEX_DIGLETT, + .categoryName = _("Mole"), + .height = 2, .weight = 8, .description = COMPOUND_STRING( "Diglett are raised in most farms.\n" "The reason is simple--wherever they\n" "burrow, the soil is left perfectly tilled\n" "for growing delicious crops."), - FRONT_PIC(Diglett, 32, 32), + .pokemonScale = 833, + .pokemonOffset = 25, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Diglett, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Diglett, .frontAnimId = ANIM_V_SHAKE, .frontAnimDelay = 25, - BACK_PIC(Diglett, 40, 40), + .backPic = gMonBackPic_Diglett, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Diglett), - ICON(Diglett, 2), - LEARNSETS(Diglett), + .palette = gMonPalette_Diglett, + .shinyPalette = gMonShinyPalette_Diglett, + .iconSprite = gMonIcon_Diglett, + .iconPalIndex = 2, + FOOTPRINT(Diglett) + .levelUpLearnset = sDiglettLevelUpLearnset, + .teachableLearnset = sDiglettTeachableLearnset, + .formSpeciesIdTable = sDiglettFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_DUGTRIO}), }, [SPECIES_DUGTRIO] = { - DUGTRIO_MISC_INFO, .baseHP = 35, .baseAttack = DUGTRIO_ATTACK, .baseDefense = 50, .baseSpeed = 120, .baseSpAttack = 50, .baseSpDefense = 70, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), + .catchRate = 50, + .expYield = DUGTRIO_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_SOFT_SAND, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_VEIL, ABILITY_ARENA_TRAP, ABILITY_SAND_FORCE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Dugtrio"), + .cryId = CRY_DUGTRIO, + .natDexNum = NATIONAL_DEX_DUGTRIO, + .categoryName = _("Mole"), + .height = 7, .weight = 333, .description = COMPOUND_STRING( "Because the triplets originally split from\n" "one body, they think exactly alike.\n" "They work cooperatively to burrow\n" "endlessly through the ground."), - FRONT_PIC(Dugtrio, 48, 48), + .pokemonScale = 406, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Dugtrio, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Dugtrio, .frontAnimId = ANIM_H_SHAKE_SLOW, .frontAnimDelay = 35, - BACK_PIC(Dugtrio, 48, 32), + .backPic = gMonBackPic_Dugtrio, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 17, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Dugtrio), - ICON(Dugtrio, 2), - LEARNSETS(Dugtrio), + .palette = gMonPalette_Dugtrio, + .shinyPalette = gMonShinyPalette_Dugtrio, + .iconSprite = gMonIcon_Dugtrio, + .iconPalIndex = 2, + FOOTPRINT(Dugtrio) + .levelUpLearnset = sDugtrioLevelUpLearnset, + .teachableLearnset = sDugtrioTeachableLearnset, + .formSpeciesIdTable = sDugtrioFormSpeciesIdTable, }, #if P_ALOLAN_FORMS [SPECIES_DIGLETT_ALOLAN] = { - DIGLETT_MISC_INFO, .baseHP = 10, .baseAttack = 55, .baseDefense = 30, .baseSpeed = 90, .baseSpAttack = 35, .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_STEEL }, + .types = MON_TYPES(TYPE_GROUND, TYPE_STEEL), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 53 : 81, + .evYield_Speed = 1, + .itemRare = ITEM_SOFT_SAND, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_VEIL, ABILITY_TANGLING_HAIR, ABILITY_SAND_FORCE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Diglett"), + .cryId = CRY_DIGLETT, + .natDexNum = NATIONAL_DEX_DIGLETT, + .categoryName = _("Mole"), + .height = 2, .weight = 10, .description = COMPOUND_STRING( "The metal-rich geology of its habitat\n" "caused it to develop steel whiskers on its\n" "head that change shape depending on its\n" "mood and when communicating with others."), - FRONT_PIC(DiglettAlolan, 32, 40), + .pokemonScale = 833, + .pokemonOffset = 25, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_DiglettAlolan, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 19, .frontAnimFrames = sAnims_DiglettAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DiglettAlolan, 40, 48), + .backPic = gMonBackPic_DiglettAlolan, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DiglettAlolan), - ICON(DiglettAlolan, 2), - LEARNSETS(DiglettAlolan), + .palette = gMonPalette_DiglettAlolan, + .shinyPalette = gMonShinyPalette_DiglettAlolan, + .iconSprite = gMonIcon_DiglettAlolan, + .iconPalIndex = 2, + FOOTPRINT(Diglett) .isAlolanForm = TRUE, + .levelUpLearnset = sDiglettAlolanLevelUpLearnset, + .teachableLearnset = sDiglettAlolanTeachableLearnset, + .formSpeciesIdTable = sDiglettFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_DUGTRIO_ALOLAN}), }, [SPECIES_DUGTRIO_ALOLAN] = { - DUGTRIO_MISC_INFO, .baseHP = 35, .baseAttack = DUGTRIO_ATTACK, .baseDefense = 60, .baseSpeed = 110, .baseSpAttack = 50, .baseSpDefense = 70, - .types = { TYPE_GROUND, TYPE_STEEL }, + .types = MON_TYPES(TYPE_GROUND, TYPE_STEEL), + .catchRate = 50, + .expYield = DUGTRIO_EXP_YIELD, + .evYield_Speed = 2, + .itemRare = ITEM_SOFT_SAND, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_VEIL, ABILITY_TANGLING_HAIR, ABILITY_SAND_FORCE }, + .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, + .speciesName = _("Dugtrio"), + .cryId = CRY_DUGTRIO, + .natDexNum = NATIONAL_DEX_DUGTRIO, + .categoryName = _("Mole"), + .height = 7, .weight = 666, .description = COMPOUND_STRING( "Their beautiful, metallic whiskers create\n" "a sort of protective helmet on\n" "heir heads, and they also function\n" "as highly precise sensors."), - FRONT_PIC(DugtrioAlolan, 48, 48), + .pokemonScale = 406, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_DugtrioAlolan, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_DugtrioAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DugtrioAlolan, 64, 32), + .backPic = gMonBackPic_DugtrioAlolan, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 17, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DugtrioAlolan), - ICON(DugtrioAlolan, 2), - LEARNSETS(DugtrioAlolan), + .palette = gMonPalette_DugtrioAlolan, + .shinyPalette = gMonShinyPalette_DugtrioAlolan, + .iconSprite = gMonIcon_DugtrioAlolan, + .iconPalIndex = 2, + FOOTPRINT(Dugtrio) .isAlolanForm = TRUE, + .levelUpLearnset = sDugtrioAlolanLevelUpLearnset, + .teachableLearnset = sDugtrioAlolanTeachableLearnset, + .formSpeciesIdTable = sDugtrioFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_DIGLETT #if P_FAMILY_MEOWTH -#define MEOWTH_MISC_INFO \ - .catchRate = 255, \ - .expYield = 58, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .speciesName = _("Meowth"), \ - .cryId = CRY_MEOWTH, \ - .natDexNum = NATIONAL_DEX_MEOWTH, \ - .categoryName = _("Scratch Cat"), \ - .footprint = gMonFootprint_Meowth, \ - .formSpeciesIdTable = sMeowthFormSpeciesIdTable - -#define PERSIAN_MISC_INFO \ - .catchRate = 90, \ - .expYield = 154, \ - .evYield_Speed = 2, \ - .itemRare = ITEM_QUICK_CLAW, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .speciesName = _("Persian"), \ - .cryId = CRY_PERSIAN, \ - .natDexNum = NATIONAL_DEX_PERSIAN, \ - .categoryName = _("Classy Cat"), \ - .footprint = gMonFootprint_Persian, \ - .formSpeciesIdTable = sPersianFormSpeciesIdTable - [SPECIES_MEOWTH] = { - MEOWTH_MISC_INFO, .baseHP = 40, .baseAttack = 45, .baseDefense = 35, .baseSpeed = 90, .baseSpAttack = 40, .baseSpDefense = 40, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 69, .evYield_Speed = 1, - .types = { TYPE_NORMAL, TYPE_NORMAL }, .itemRare = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_TECHNICIAN, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Meowth"), + .cryId = CRY_MEOWTH, + .natDexNum = NATIONAL_DEX_MEOWTH, + .categoryName = _("Scratch Cat"), .height = 4, .weight = 42, .description = COMPOUND_STRING( @@ -3918,33 +5358,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Meowth, 48, 48), + .frontPic = gMonFrontPic_Meowth, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Meowth, .frontAnimId = ANIM_V_JUMPS_SMALL, .frontAnimDelay = 40, - BACK_PIC(Meowth, 56, 56), + .backPic = gMonBackPic_Meowth, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Meowth), - ICON(Meowth, 1), - LEARNSETS(Meowth), + .palette = gMonPalette_Meowth, + .shinyPalette = gMonShinyPalette_Meowth, + .iconSprite = gMonIcon_Meowth, + .iconPalIndex = 1, + FOOTPRINT(Meowth) + .levelUpLearnset = sMeowthLevelUpLearnset, + .teachableLearnset = sMeowthTeachableLearnset, + .formSpeciesIdTable = sMeowthFormSpeciesIdTable, .formChangeTable = sMeowthFormChangeTable, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_PERSIAN}), }, [SPECIES_PERSIAN] = { - PERSIAN_MISC_INFO, .baseHP = 65, .baseAttack = 70, .baseDefense = 60, .baseSpeed = 115, .baseSpAttack = 65, .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 90, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 154 : 148, + .evYield_Speed = 2, + .itemRare = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_LIMBER, ABILITY_TECHNICIAN, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Persian"), + .cryId = CRY_PERSIAN, + .natDexNum = NATIONAL_DEX_PERSIAN, + .categoryName = _("Classy Cat"), .height = 10, .weight = 320, .description = COMPOUND_STRING( @@ -3956,34 +5415,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Persian, 64, 56), + .frontPic = gMonFrontPic_Persian, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Persian, .frontAnimId = ANIM_V_STRETCH, .frontAnimDelay = 20, - BACK_PIC(Persian, 64, 56), + .backPic = gMonBackPic_Persian, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Persian), - ICON(Persian, 1), - LEARNSETS(Persian), + .palette = gMonPalette_Persian, + .shinyPalette = gMonShinyPalette_Persian, + .iconSprite = gMonIcon_Persian, + .iconPalIndex = 1, + FOOTPRINT(Persian) + .levelUpLearnset = sPersianLevelUpLearnset, + .teachableLearnset = sPersianTeachableLearnset, + .formSpeciesIdTable = sPersianFormSpeciesIdTable, }, #if P_ALOLAN_FORMS [SPECIES_MEOWTH_ALOLAN] = { - MEOWTH_MISC_INFO, .baseHP = 40, .baseAttack = 35, .baseDefense = 35, .baseSpeed = 90, .baseSpAttack = 50, .baseSpDefense = 40, + .types = MON_TYPES(TYPE_DARK), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 69, .evYield_Speed = 1, - .types = { TYPE_DARK, TYPE_DARK }, .itemRare = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_TECHNICIAN, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Meowth"), + .cryId = CRY_MEOWTH, + .natDexNum = NATIONAL_DEX_MEOWTH, + .categoryName = _("Scratch Cat"), .height = 4, .weight = 42, .description = COMPOUND_STRING( @@ -3995,32 +5471,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(MeowthAlolan, 48, 48), + .frontPic = gMonFrontPic_MeowthAlolan, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_MeowthAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MeowthAlolan, 64, 56), + .backPic = gMonBackPic_MeowthAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MeowthAlolan), - ICON(MeowthAlolan, 2), - LEARNSETS(MeowthAlolan), + .palette = gMonPalette_MeowthAlolan, + .shinyPalette = gMonShinyPalette_MeowthAlolan, + .iconSprite = gMonIcon_MeowthAlolan, + .iconPalIndex = 2, + FOOTPRINT(Meowth) .isAlolanForm = TRUE, + .levelUpLearnset = sMeowthAlolanLevelUpLearnset, + .teachableLearnset = sMeowthAlolanTeachableLearnset, + .formSpeciesIdTable = sMeowthFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_PERSIAN_ALOLAN}), }, [SPECIES_PERSIAN_ALOLAN] = { - PERSIAN_MISC_INFO, .baseHP = 65, .baseAttack = 60, .baseDefense = 60, .baseSpeed = 115, .baseSpAttack = 75, .baseSpDefense = 65, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), + .catchRate = 90, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 154 : 148, + .evYield_Speed = 2, + .itemRare = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FUR_COAT, ABILITY_TECHNICIAN, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Persian"), + .cryId = CRY_PERSIAN, + .natDexNum = NATIONAL_DEX_PERSIAN, + .categoryName = _("Classy Cat"), .height = 11, .weight = 330, .description = COMPOUND_STRING( @@ -4032,34 +5527,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(PersianAlolan, 56, 56), + .frontPic = gMonFrontPic_PersianAlolan, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_PersianAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PersianAlolan, 64, 56), + .backPic = gMonBackPic_PersianAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PersianAlolan), - ICON(PersianAlolan, 2), - LEARNSETS(PersianAlolan), + .palette = gMonPalette_PersianAlolan, + .shinyPalette = gMonShinyPalette_PersianAlolan, + .iconSprite = gMonIcon_PersianAlolan, + .iconPalIndex = 2, + FOOTPRINT(Persian) .isAlolanForm = TRUE, + .levelUpLearnset = sPersianAlolanLevelUpLearnset, + .teachableLearnset = sPersianAlolanTeachableLearnset, + .formSpeciesIdTable = sPersianFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS [SPECIES_MEOWTH_GALARIAN] = { - MEOWTH_MISC_INFO, .baseHP = 50, .baseAttack = 65, .baseDefense = 55, .baseSpeed = 40, .baseSpAttack = 40, .baseSpDefense = 40, + .types = MON_TYPES(TYPE_STEEL), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 69, .evYield_Attack = 1, - .types = { TYPE_STEEL, TYPE_STEEL }, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_TOUGH_CLAWS, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Meowth"), + .cryId = CRY_MEOWTH, + .natDexNum = NATIONAL_DEX_MEOWTH, + .categoryName = _("Scratch Cat"), .height = 4, .weight = 75, .description = COMPOUND_STRING( @@ -4071,17 +5583,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(MeowthGalarian, 48, 48), + .frontPic = gMonFrontPic_MeowthGalarian, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_MeowthGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MeowthGalarian, 64, 56), + .backPic = gMonBackPic_MeowthGalarian, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MeowthGalarian), - ICON(MeowthGalarian, 0), - LEARNSETS(MeowthGalarian), + .palette = gMonPalette_MeowthGalarian, + .shinyPalette = gMonShinyPalette_MeowthGalarian, + .iconSprite = gMonIcon_MeowthGalarian, + .iconPalIndex = 0, + FOOTPRINT(Meowth) .isGalarianForm = TRUE, + .levelUpLearnset = sMeowthGalarianLevelUpLearnset, + .teachableLearnset = sMeowthGalarianTeachableLearnset, + .formSpeciesIdTable = sMeowthFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_PERRSERKER}), }, @@ -4093,7 +5612,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 60, - .types = { TYPE_STEEL, TYPE_STEEL }, + .types = MON_TYPES(TYPE_STEEL), .catchRate = 90, .expYield = 154, .evYield_Attack = 2, @@ -4101,7 +5620,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_TOUGH_CLAWS, ABILITY_STEELY_SPIRIT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Perrserker"), @@ -4118,35 +5637,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Perrserker, 48, 64), + .frontPic = gMonFrontPic_Perrserker, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Perrserker, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Perrserker, 64, 56), + .backPic = gMonBackPic_Perrserker, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Perrserker), - ICON(Perrserker, 2), - .footprint = gMonFootprint_Perrserker, - LEARNSETS(Perrserker), + .palette = gMonPalette_Perrserker, + .shinyPalette = gMonShinyPalette_Perrserker, + .iconSprite = gMonIcon_Perrserker, + .iconPalIndex = 2, + FOOTPRINT(Perrserker) + .levelUpLearnset = sPerrserkerLevelUpLearnset, + .teachableLearnset = sPerrserkerTeachableLearnset, }, #endif //P_GALARIAN_FORMS #if P_GIGANTAMAX_FORMS [SPECIES_MEOWTH_GIGANTAMAX] = { - MEOWTH_MISC_INFO, .baseHP = 40, .baseAttack = 45, .baseDefense = 35, .baseSpeed = 90, .baseSpAttack = 40, .baseSpDefense = 40, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 69, .evYield_Speed = 1, - .types = { TYPE_NORMAL, TYPE_NORMAL }, .itemRare = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_TECHNICIAN, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Meowth"), + .cryId = CRY_MEOWTH, + .natDexNum = NATIONAL_DEX_MEOWTH, + .categoryName = _("Scratch Cat"), .height = 330, .weight = 0, .description = COMPOUND_STRING( @@ -4158,17 +5692,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(MeowthGigantamax, 64, 64), + .frontPic = gMonFrontPic_MeowthGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_MeowthGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MeowthGigantamax, 64, 64), + .backPic = gMonBackPic_MeowthGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MeowthGigantamax), - ICON(MeowthGigantamax, 1), - LEARNSETS(Meowth), + .palette = gMonPalette_MeowthGigantamax, + .shinyPalette = gMonShinyPalette_MeowthGigantamax, + .iconSprite = gMonIcon_MeowthGigantamax, + .iconPalIndex = 1, + FOOTPRINT(Meowth) .isGigantamax = TRUE, + .levelUpLearnset = sMeowthLevelUpLearnset, + .teachableLearnset = sMeowthTeachableLearnset, + .formSpeciesIdTable = sMeowthFormSpeciesIdTable, .formChangeTable = sMeowthFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS @@ -4183,15 +5724,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 55, .baseSpAttack = 65, .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 190, - .expYield = 64, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 64 : 80, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_DAMP, ABILITY_CLOUD_NINE, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Psyduck"), @@ -4209,17 +5750,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Psyduck, 40, 48), + .frontPic = gMonFrontPic_Psyduck, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Psyduck, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, - BACK_PIC(Psyduck, 48, 48), + .backPic = gMonBackPic_Psyduck, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Psyduck), - ICON(Psyduck, 1), - .footprint = gMonFootprint_Psyduck, - LEARNSETS(Psyduck), + .palette = gMonPalette_Psyduck, + .shinyPalette = gMonShinyPalette_Psyduck, + .iconSprite = gMonIcon_Psyduck, + .iconPalIndex = 1, + FOOTPRINT(Psyduck) + .levelUpLearnset = sPsyduckLevelUpLearnset, + .teachableLearnset = sPsyduckTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_GOLDUCK}), }, @@ -4231,15 +5777,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 85, .baseSpAttack = 95, .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 75, - .expYield = 175, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 174, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_DAMP, ABILITY_CLOUD_NINE, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Golduck"), @@ -4257,17 +5803,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 273, .trainerOffset = 1, - FRONT_PIC(Golduck, 64, 64), + .frontPic = gMonFrontPic_Golduck, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Golduck, .frontAnimId = ANIM_H_SHAKE_SLOW, - BACK_PIC(Golduck, 64, 64), + .backPic = gMonBackPic_Golduck, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Golduck), - ICON(Golduck, 0), - .footprint = gMonFootprint_Golduck, - LEARNSETS(Golduck), + .palette = gMonPalette_Golduck, + .shinyPalette = gMonShinyPalette_Golduck, + .iconSprite = gMonIcon_Golduck, + .iconPalIndex = 0, + FOOTPRINT(Golduck) + .levelUpLearnset = sGolduckLevelUpLearnset, + .teachableLearnset = sGolduckTeachableLearnset, }, #endif //P_FAMILY_PSYDUCK @@ -4280,15 +5831,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 35, .baseSpDefense = 45, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 190, - .expYield = 61, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 61 : 74, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_ANGER_POINT, ABILITY_DEFIANT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Mankey"), @@ -4306,18 +5857,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mankey, 56, 48), + .frontPic = gMonFrontPic_Mankey, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Mankey, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .frontAnimDelay = 20, - BACK_PIC(Mankey, 64, 48), + .backPic = gMonBackPic_Mankey, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Mankey), - ICON(Mankey, 1), - .footprint = gMonFootprint_Mankey, - LEARNSETS(Mankey), + .palette = gMonPalette_Mankey, + .shinyPalette = gMonShinyPalette_Mankey, + .iconSprite = gMonIcon_Mankey, + .iconPalIndex = 1, + FOOTPRINT(Mankey) + .levelUpLearnset = sMankeyLevelUpLearnset, + .teachableLearnset = sMankeyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_PRIMEAPE}), }, @@ -4329,15 +5885,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 95, .baseSpAttack = 60, .baseSpDefense = 70, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 75, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 149, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_ANGER_POINT, ABILITY_DEFIANT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Primeape"), @@ -4355,18 +5911,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Primeape, 64, 56), + .frontPic = gMonFrontPic_Primeape, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Primeape, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, - BACK_PIC(Primeape, 64, 48), + .backPic = gMonBackPic_Primeape, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Primeape), - ICON(Primeape, 2), - .footprint = gMonFootprint_Primeape, - LEARNSETS(Primeape), - .evolutions = EVOLUTION({EVO_MOVE, MOVE_RAGE_FIST, SPECIES_ANNIHILAPE}), + .palette = gMonPalette_Primeape, + .shinyPalette = gMonShinyPalette_Primeape, + .iconSprite = gMonIcon_Primeape, + .iconPalIndex = 2, + FOOTPRINT(Primeape) + .levelUpLearnset = sPrimeapeLevelUpLearnset, + .teachableLearnset = sPrimeapeTeachableLearnset, + .evolutions = EVOLUTION({EVO_LEVEL_MOVE_TWENTY_TIMES, MOVE_RAGE_FIST, SPECIES_ANNIHILAPE}), }, #if P_GEN_9_CROSS_EVOS @@ -4378,7 +5939,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 90, .baseSpAttack = 50, .baseSpDefense = 90, - .types = { TYPE_FIGHTING, TYPE_GHOST }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_GHOST), .catchRate = 45, .expYield = 268, .evYield_Attack = 3, @@ -4386,7 +5947,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_INNER_FOCUS, ABILITY_DEFIANT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Annihilape"), @@ -4404,64 +5965,49 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Annihilape, 64, 64), + .frontPic = gMonFrontPic_Annihilape, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Annihilape, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Annihilape, 64, 64), + .backPic = gMonBackPic_Annihilape, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Annihilape), - ICON(Annihilape, 0), - //.footprint = gMonFootprint_Annihilape, - LEARNSETS(Annihilape), + .palette = gMonPalette_Annihilape, + .shinyPalette = gMonShinyPalette_Annihilape, + .iconSprite = gMonIcon_Annihilape, + .iconPalIndex = 0, + //FOOTPRINT(Annihilape) + .levelUpLearnset = sAnnihilapeLevelUpLearnset, + .teachableLearnset = sAnnihilapeTeachableLearnset, }, #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_MANKEY #if P_FAMILY_GROWLITHE -#define GROWLITHE_FAMILY_MISC_INFO \ - .genderRatio = PERCENT_FEMALE(25), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_BROWN - -#define GROWLITHE_MISC_INFO \ - .catchRate = 190, \ - .expYield = 70, \ - .evYield_Attack = 1, \ - .speciesName = _("Growlithe"), \ - .cryId = CRY_GROWLITHE, \ - .natDexNum = NATIONAL_DEX_GROWLITHE, \ - .footprint = gMonFootprint_Growlithe, \ - .formSpeciesIdTable = sGrowlitheFormSpeciesIdTable, \ - GROWLITHE_FAMILY_MISC_INFO - -#define ARCANINE_MISC_INFO \ - .catchRate = 75, \ - .expYield = 194, \ - .evYield_Attack = 2, \ - .speciesName = _("Arcanine"), \ - .cryId = CRY_ARCANINE, \ - .natDexNum = NATIONAL_DEX_ARCANINE, \ - .categoryName = _("Legendary"), \ - .footprint = gMonFootprint_Arcanine, \ - .formSpeciesIdTable = sArcanineFormSpeciesIdTable, \ - GROWLITHE_FAMILY_MISC_INFO - [SPECIES_GROWLITHE] = { - GROWLITHE_MISC_INFO, .baseHP = 55, .baseAttack = 70, .baseDefense = 45, .baseSpeed = 60, .baseSpAttack = 70, .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 70 : 91, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_JUSTIFIED }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Growlithe"), + .cryId = CRY_GROWLITHE, + .natDexNum = NATIONAL_DEX_GROWLITHE, .categoryName = _("Puppy"), .height = 7, .weight = 190, @@ -4474,31 +6020,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Growlithe, 48, 48), + .frontPic = gMonFrontPic_Growlithe, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Growlithe, .frontAnimId = ANIM_V_STRETCH, .frontAnimDelay = 30, - BACK_PIC(Growlithe, 48, 56), + .backPic = gMonBackPic_Growlithe, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Growlithe), - ICON(Growlithe, 3), - LEARNSETS(Growlithe), + .palette = gMonPalette_Growlithe, + .shinyPalette = gMonShinyPalette_Growlithe, + .iconSprite = gMonIcon_Growlithe, + .iconPalIndex = 3, + FOOTPRINT(Growlithe) + .levelUpLearnset = sGrowlitheLevelUpLearnset, + .teachableLearnset = sGrowlitheTeachableLearnset, + .formSpeciesIdTable = sGrowlitheFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE}), }, [SPECIES_ARCANINE] = { - ARCANINE_MISC_INFO, .baseHP = 90, .baseAttack = 110, .baseDefense = 80, .baseSpeed = 95, .baseSpAttack = 100, .baseSpDefense = 80, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 194 : 213, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_JUSTIFIED }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Arcanine"), + .cryId = CRY_ARCANINE, + .natDexNum = NATIONAL_DEX_ARCANINE, + .categoryName = _("Legendary"), .height = 19, .weight = 1550, .description = COMPOUND_STRING( @@ -4510,31 +6075,49 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 312, .trainerOffset = 4, - FRONT_PIC(Arcanine, 64, 64), + .frontPic = gMonFrontPic_Arcanine, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Arcanine, .frontAnimId = ANIM_V_SHAKE, .frontAnimDelay = 8, - BACK_PIC(Arcanine, 64, 56), + .backPic = gMonBackPic_Arcanine, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Arcanine), - ICON(Arcanine, 3), - LEARNSETS(Arcanine), + .palette = gMonPalette_Arcanine, + .shinyPalette = gMonShinyPalette_Arcanine, + .iconSprite = gMonIcon_Arcanine, + .iconPalIndex = 3, + FOOTPRINT(Arcanine) + .levelUpLearnset = sArcanineLevelUpLearnset, + .teachableLearnset = sArcanineTeachableLearnset, + .formSpeciesIdTable = sArcanineFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_GROWLITHE_HISUIAN] = { - GROWLITHE_MISC_INFO, .baseHP = 60, .baseAttack = 75, .baseDefense = 45, .baseSpeed = 55, .baseSpAttack = 65, .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_ROCK }, + .types = MON_TYPES(TYPE_FIRE, TYPE_ROCK), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 70 : 91, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_ROCK_HEAD }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Growlithe"), + .cryId = CRY_GROWLITHE, + .natDexNum = NATIONAL_DEX_GROWLITHE, .categoryName = _("Scout"), .height = 8, .weight = 227, @@ -4547,31 +6130,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GrowlitheHisuian, 48, 48), + .frontPic = gMonFrontPic_GrowlitheHisuian, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_GrowlitheHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GrowlitheHisuian, 56, 56), + .backPic = gMonBackPic_GrowlitheHisuian, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GrowlitheHisuian), - ICON(GrowlitheHisuian, 0), - LEARNSETS(GrowlitheHisuian), + .palette = gMonPalette_GrowlitheHisuian, + .shinyPalette = gMonShinyPalette_GrowlitheHisuian, + .iconSprite = gMonIcon_GrowlitheHisuian, + .iconPalIndex = 0, + FOOTPRINT(Growlithe) .isHisuianForm = TRUE, + .levelUpLearnset = sGrowlitheHisuianLevelUpLearnset, + .teachableLearnset = sGrowlitheHisuianTeachableLearnset, + .formSpeciesIdTable = sGrowlitheFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE_HISUIAN}), }, [SPECIES_ARCANINE_HISUIAN] = { - ARCANINE_MISC_INFO, .baseHP = 95, .baseAttack = 115, .baseDefense = 80, .baseSpeed = 90, .baseSpAttack = 95, .baseSpDefense = 80, - .types = { TYPE_FIRE, TYPE_ROCK }, + .types = MON_TYPES(TYPE_FIRE, TYPE_ROCK), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 194 : 213, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_ROCK_HEAD }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Arcanine"), + .cryId = CRY_ARCANINE, + .natDexNum = NATIONAL_DEX_ARCANINE, + .categoryName = _("Legendary"), .height = 20, .weight = 1680, .description = COMPOUND_STRING( @@ -4583,17 +6185,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 312, .trainerOffset = 4, - FRONT_PIC(ArcanineHisuian, 64, 64), + .frontPic = gMonFrontPic_ArcanineHisuian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_ArcanineHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ArcanineHisuian, 64, 64), + .backPic = gMonBackPic_ArcanineHisuian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ArcanineHisuian), - ICON(ArcanineHisuian, 0), - LEARNSETS(ArcanineHisuian), + .palette = gMonPalette_ArcanineHisuian, + .shinyPalette = gMonShinyPalette_ArcanineHisuian, + .iconSprite = gMonIcon_ArcanineHisuian, + .iconPalIndex = 0, + FOOTPRINT(Arcanine) .isHisuianForm = TRUE, + .levelUpLearnset = sArcanineHisuianLevelUpLearnset, + .teachableLearnset = sArcanineHisuianTeachableLearnset, + .formSpeciesIdTable = sArcanineFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_GROWLITHE @@ -4607,15 +6216,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 90, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 255, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 77, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_BLUE, .noFlip = TRUE, @@ -4634,17 +6243,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Poliwag, 64, 40), + .frontPic = gMonFrontPic_Poliwag, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Poliwag, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Poliwag, 48, 32), + .backPic = gMonBackPic_Poliwag, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 18, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Poliwag), - ICON(Poliwag, 0), - .footprint = gMonFootprint_Poliwag, - LEARNSETS(Poliwag), + .palette = gMonPalette_Poliwag, + .shinyPalette = gMonShinyPalette_Poliwag, + .iconSprite = gMonIcon_Poliwag, + .iconPalIndex = 0, + FOOTPRINT(Poliwag) + .levelUpLearnset = sPoliwagLevelUpLearnset, + .teachableLearnset = sPoliwagTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_POLIWHIRL}), }, @@ -4656,16 +6270,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 90, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 120, - .expYield = 135, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 135 : 131, .evYield_Speed = 2, .itemRare = ITEM_KINGS_ROCK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_BLUE, .noFlip = TRUE, @@ -4684,18 +6298,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Poliwhirl, 64, 48), + .frontPic = gMonFrontPic_Poliwhirl, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Poliwhirl, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .frontAnimDelay = 5, - BACK_PIC(Poliwhirl, 64, 40), + .backPic = gMonBackPic_Poliwhirl, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Poliwhirl), - ICON(Poliwhirl, 0), - .footprint = gMonFootprint_Poliwhirl, - LEARNSETS(Poliwhirl), + .palette = gMonPalette_Poliwhirl, + .shinyPalette = gMonShinyPalette_Poliwhirl, + .iconSprite = gMonIcon_Poliwhirl, + .iconPalIndex = 0, + FOOTPRINT(Poliwhirl) + .levelUpLearnset = sPoliwhirlLevelUpLearnset, + .teachableLearnset = sPoliwhirlTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_POLIWRATH}, {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED}, {EVO_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED}), @@ -4709,16 +6328,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 70, .baseSpDefense = 90, - .types = { TYPE_WATER, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_WATER, TYPE_FIGHTING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 255, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 230, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 225, + #else + .expYield = 185, + #endif .evYield_Defense = 3, .itemRare = ITEM_KINGS_ROCK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_BLUE, .noFlip = TRUE, @@ -4737,17 +6364,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Poliwrath, 64, 56), + .frontPic = gMonFrontPic_Poliwrath, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Poliwrath, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Poliwrath, 64, 56), + .backPic = gMonBackPic_Poliwrath, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Poliwrath), - ICON(Poliwrath, 0), - .footprint = gMonFootprint_Poliwrath, - LEARNSETS(Poliwrath), + .palette = gMonPalette_Poliwrath, + .shinyPalette = gMonShinyPalette_Poliwrath, + .iconSprite = gMonIcon_Poliwrath, + .iconPalIndex = 0, + FOOTPRINT(Poliwrath) + .levelUpLearnset = sPoliwrathLevelUpLearnset, + .teachableLearnset = sPoliwrathTeachableLearnset, }, #if P_GEN_2_CROSS_EVOS @@ -4759,16 +6391,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 90, .baseSpDefense = 100, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 250, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 225, + #else + .expYield = 185, + #endif .evYield_SpDefense = 3, .itemRare = ITEM_KINGS_ROCK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_DRIZZLE }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -4787,20 +6425,27 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Politoed, 48, 56), - FRONT_PIC_FEMALE(Politoed, 48, 56), + .frontPic = gMonFrontPic_Politoed, + .frontPicFemale = gMonFrontPic_PolitoedF, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Politoed, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .frontAnimDelay = 40, - BACK_PIC(Politoed, 56, 56), - BACK_PIC_FEMALE(Politoed, 56, 56), + .backPic = gMonBackPic_Politoed, + .backPicFemale = gMonBackPic_PolitoedF, + .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Politoed), - ICON(Politoed, 1), - .footprint = gMonFootprint_Politoed, - LEARNSETS(Politoed), + .palette = gMonPalette_Politoed, + .shinyPalette = gMonShinyPalette_Politoed, + .iconSprite = gMonIcon_Politoed, + .iconPalIndex = 1, + FOOTPRINT(Politoed) + .levelUpLearnset = sPolitoedLevelUpLearnset, + .teachableLearnset = sPolitoedTeachableLearnset, }, #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_POLIWAG @@ -4814,16 +6459,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 90, .baseSpAttack = 105, .baseSpDefense = 55, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 200, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 62, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 75, + #else + .expYield = 73, + #endif .evYield_SpAttack = 1, .itemRare = ITEM_TWISTED_SPOON, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS, ABILITY_MAGIC_GUARD }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Abra"), @@ -4841,17 +6492,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Abra, 56, 48), + .frontPic = gMonFrontPic_Abra, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Abra, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Abra, 56, 48), + .backPic = gMonBackPic_Abra, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Abra), - ICON(Abra, 2), - .footprint = gMonFootprint_Abra, - LEARNSETS(Abra), + .palette = gMonPalette_Abra, + .shinyPalette = gMonShinyPalette_Abra, + .iconSprite = gMonIcon_Abra, + .iconPalIndex = 2, + FOOTPRINT(Abra) + .levelUpLearnset = sAbraLevelUpLearnset, + .teachableLearnset = sAbraTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_KADABRA}), }, @@ -4863,16 +6519,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 105, .baseSpAttack = 120, .baseSpDefense = 70, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 100, - .expYield = 140, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 140 : 145, .evYield_SpAttack = 2, .itemRare = ITEM_TWISTED_SPOON, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS, ABILITY_MAGIC_GUARD }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -4891,55 +6547,64 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kadabra, 64, 56), - FRONT_PIC_FEMALE(Kadabra, 64, 56), + .frontPic = gMonFrontPic_Kadabra, + .frontPicFemale = gMonFrontPic_KadabraF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Kadabra, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Kadabra, 64, 48), - BACK_PIC_FEMALE(Kadabra, 64, 48), + .backPic = gMonBackPic_Kadabra, + .backPicFemale = gMonBackPic_KadabraF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Kadabra), - ICON(Kadabra, 2), - .footprint = gMonFootprint_Kadabra, - LEARNSETS(Kadabra), - .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_ALAKAZAM}), + .palette = gMonPalette_Kadabra, + .shinyPalette = gMonShinyPalette_Kadabra, + .iconSprite = gMonIcon_Kadabra, + .iconPalIndex = 2, + FOOTPRINT(Kadabra) + .levelUpLearnset = sKadabraLevelUpLearnset, + .teachableLearnset = sKadabraTeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_ALAKAZAM}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_ALAKAZAM}), }, #define ALAKAZAM_SP_DEF (P_UPDATED_STATS >= GEN_6 ? 95 : 85) -#define ALAKAZAM_MISC_INFO \ - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, \ - .catchRate = 50, \ - .evYield_SpAttack = 3, \ - .itemRare = ITEM_TWISTED_SPOON, \ - .genderRatio = PERCENT_FEMALE(25), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE },\ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Alakazam"), \ - .natDexNum = NATIONAL_DEX_ALAKAZAM, \ - .categoryName = _("Psi"), \ - .footprint = gMonFootprint_Alakazam, \ - LEARNSETS(Alakazam), \ - .formSpeciesIdTable = sAlakazamFormSpeciesIdTable, \ - .formChangeTable = sAlakazamFormChangeTable - [SPECIES_ALAKAZAM] = { - ALAKAZAM_MISC_INFO, .baseHP = 55, .baseAttack = 50, .baseDefense = 45, .baseSpeed = 120, .baseSpAttack = 135, .baseSpDefense = ALAKAZAM_SP_DEF, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 50, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 250, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 225, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 221, + #else + .expYield = 186, + #endif + .evYield_SpAttack = 3, + .itemRare = ITEM_TWISTED_SPOON, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS, ABILITY_MAGIC_GUARD }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Alakazam"), .cryId = CRY_ALAKAZAM, + .natDexNum = NATIONAL_DEX_ALAKAZAM, + .categoryName = _("Psi"), .height = 15, .weight = 480, .description = COMPOUND_STRING( @@ -4951,32 +6616,55 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Alakazam, 64, 64), - FRONT_PIC_FEMALE(Alakazam, 64, 64), + .frontPic = gMonFrontPic_Alakazam, + .frontPicFemale = gMonFrontPic_AlakazamF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Alakazam, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Alakazam, 64, 56), - BACK_PIC_FEMALE(Alakazam, 64, 56), + .backPic = gMonBackPic_Alakazam, + .backPicFemale = gMonBackPic_AlakazamF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Alakazam), - ICON(Alakazam, 2), + .palette = gMonPalette_Alakazam, + .shinyPalette = gMonShinyPalette_Alakazam, + .iconSprite = gMonIcon_Alakazam, + .iconPalIndex = 2, + FOOTPRINT(Alakazam) + .levelUpLearnset = sAlakazamLevelUpLearnset, + .teachableLearnset = sAlakazamTeachableLearnset, + .formSpeciesIdTable = sAlakazamFormSpeciesIdTable, + .formChangeTable = sAlakazamFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_ALAKAZAM_MEGA] = { - ALAKAZAM_MISC_INFO, .baseHP = 55, .baseAttack = 50, .baseDefense = 65, .baseSpeed = 150, .baseSpAttack = 175, .baseSpDefense = ALAKAZAM_SP_DEF + 10, - .expYield = 270, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 50, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_SpAttack = 3, + .itemRare = ITEM_TWISTED_SPOON, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_TRACE, ABILITY_TRACE, ABILITY_TRACE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Alakazam"), .cryId = CRY_ALAKAZAM_MEGA, + .natDexNum = NATIONAL_DEX_ALAKAZAM, + .categoryName = _("Psi"), .height = 12, .weight = 480, .description = COMPOUND_STRING( @@ -4987,17 +6675,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(AlakazamMega, 64, 64), + .frontPic = gMonFrontPic_AlakazamMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_AlakazamMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 7, - BACK_PIC(AlakazamMega, 64, 64), + .backPic = gMonBackPic_AlakazamMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(AlakazamMega), - ICON(AlakazamMega, 2), + .palette = gMonPalette_AlakazamMega, + .shinyPalette = gMonShinyPalette_AlakazamMega, + .iconSprite = gMonIcon_AlakazamMega, + .iconPalIndex = 2, + FOOTPRINT(Alakazam) .isMegaEvolution = TRUE, + .levelUpLearnset = sAlakazamLevelUpLearnset, + .teachableLearnset = sAlakazamTeachableLearnset, + .formSpeciesIdTable = sAlakazamFormSpeciesIdTable, + .formChangeTable = sAlakazamFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_ABRA @@ -5011,16 +6708,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 35, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 180, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 61, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 75, + #else + .expYield = 88, + #endif .evYield_Attack = 1, .itemRare = ITEM_FOCUS_BAND, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Machop"), @@ -5038,17 +6741,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Machop, 48, 48), + .frontPic = gMonFrontPic_Machop, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Machop, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Machop, 48, 56), + .backPic = gMonBackPic_Machop, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Machop), - ICON(Machop, 0), - .footprint = gMonFootprint_Machop, - LEARNSETS(Machop), + .palette = gMonPalette_Machop, + .shinyPalette = gMonShinyPalette_Machop, + .iconSprite = gMonIcon_Machop, + .iconPalIndex = 0, + FOOTPRINT(Machop) + .levelUpLearnset = sMachopLevelUpLearnset, + .teachableLearnset = sMachopTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_MACHOKE}), }, @@ -5060,16 +6768,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 45, .baseSpAttack = 50, .baseSpDefense = 60, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 90, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 146, .evYield_Attack = 2, .itemRare = ITEM_FOCUS_BAND, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -5088,51 +6796,58 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 9, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Machoke, 56, 56), + .frontPic = gMonFrontPic_Machoke, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Machoke, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Machoke, 64, 48), + .backPic = gMonBackPic_Machoke, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Machoke), - ICON(Machoke, 2), - .footprint = gMonFootprint_Machoke, - LEARNSETS(Machoke), - .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_MACHAMP}), + .palette = gMonPalette_Machoke, + .shinyPalette = gMonShinyPalette_Machoke, + .iconSprite = gMonIcon_Machoke, + .iconPalIndex = 2, + FOOTPRINT(Machoke) + .levelUpLearnset = sMachokeLevelUpLearnset, + .teachableLearnset = sMachokeTeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_MACHAMP}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_MACHAMP}), }, -#define MACHAMP_MISC_INFO \ - .baseHP = 90, \ - .baseAttack = 130, \ - .baseDefense = 80, \ - .baseSpeed = 55, \ - .baseSpAttack = 65, \ - .baseSpDefense = 85, \ - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, \ - .catchRate = 45, \ - .expYield = 227, \ - .evYield_Attack = 3, \ - .itemRare = ITEM_FOCUS_BAND, \ - .genderRatio = PERCENT_FEMALE(25), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, \ - .abilities = { ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Machamp"), \ - .cryId = CRY_MACHAMP, \ - .natDexNum = NATIONAL_DEX_MACHAMP, \ - .categoryName = _("Superpower"), \ - .footprint = gMonFootprint_Machamp, \ - LEARNSETS(Machamp), \ - .formSpeciesIdTable = sMachampFormSpeciesIdTable, \ - .formChangeTable = sMachampFormChangeTable +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define MACHAMP_EXP_YIELD 253 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define MACHAMP_EXP_YIELD 227 +#else + #define MACHAMP_EXP_YIELD 193 +#endif [SPECIES_MACHAMP] = { - MACHAMP_MISC_INFO, + .baseHP = 90, + .baseAttack = 130, + .baseDefense = 80, + .baseSpeed = 55, + .baseSpAttack = 65, + .baseSpDefense = 85, + .types = MON_TYPES(TYPE_FIGHTING), + .catchRate = 45, + .expYield = MACHAMP_EXP_YIELD, + .evYield_Attack = 3, + .itemRare = ITEM_FOCUS_BAND, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), + .abilities = { ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Machamp"), + .cryId = CRY_MACHAMP, + .natDexNum = NATIONAL_DEX_MACHAMP, + .categoryName = _("Superpower"), .height = 16, .weight = 1300, .description = COMPOUND_STRING( @@ -5144,21 +6859,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 269, .trainerOffset = -1, - FRONT_PIC(Machamp, 64, 64), + .frontPic = gMonFrontPic_Machamp, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Machamp, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Machamp, 64, 56), + .backPic = gMonBackPic_Machamp, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Machamp), - ICON(Machamp, 0), + .palette = gMonPalette_Machamp, + .shinyPalette = gMonShinyPalette_Machamp, + .iconSprite = gMonIcon_Machamp, + .iconPalIndex = 0, + FOOTPRINT(Machamp) + .levelUpLearnset = sMachampLevelUpLearnset, + .teachableLearnset = sMachampTeachableLearnset, + .formSpeciesIdTable = sMachampFormSpeciesIdTable, + .formChangeTable = sMachampFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_MACHAMP_GIGANTAMAX] = { - MACHAMP_MISC_INFO, + .baseHP = 90, + .baseAttack = 130, + .baseDefense = 80, + .baseSpeed = 55, + .baseSpAttack = 65, + .baseSpDefense = 85, + .types = MON_TYPES(TYPE_FIGHTING), + .catchRate = 45, + .expYield = MACHAMP_EXP_YIELD, + .evYield_Attack = 3, + .itemRare = ITEM_FOCUS_BAND, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), + .abilities = { ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Machamp"), + .cryId = CRY_MACHAMP, + .natDexNum = NATIONAL_DEX_MACHAMP, + .categoryName = _("Superpower"), .height = 250, .weight = 0, .description = COMPOUND_STRING( @@ -5170,16 +6915,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 269, .trainerOffset = -1, - FRONT_PIC(MachampGigantamax, 64, 64), + .frontPic = gMonFrontPic_MachampGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_MachampGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MachampGigantamax, 64, 64), + .backPic = gMonBackPic_MachampGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MachampGigantamax), - ICON(MachampGigantamax, 0), + .palette = gMonPalette_MachampGigantamax, + .shinyPalette = gMonShinyPalette_MachampGigantamax, + .iconSprite = gMonIcon_MachampGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Machamp) .isGigantamax = TRUE, + .levelUpLearnset = sMachampLevelUpLearnset, + .teachableLearnset = sMachampTeachableLearnset, + .formSpeciesIdTable = sMachampFormSpeciesIdTable, + .formChangeTable = sMachampFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MACHOP @@ -5193,15 +6947,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 40, .baseSpAttack = 70, .baseSpDefense = 30, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 255, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 84, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Bellsprout"), @@ -5219,17 +6973,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bellsprout, 40, 40), + .frontPic = gMonFrontPic_Bellsprout, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Bellsprout, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Bellsprout, 40, 48), + .backPic = gMonBackPic_Bellsprout, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Bellsprout), - ICON(Bellsprout, 1), - .footprint = gMonFootprint_Bellsprout, - LEARNSETS(Bellsprout), + .palette = gMonPalette_Bellsprout, + .shinyPalette = gMonShinyPalette_Bellsprout, + .iconSprite = gMonIcon_Bellsprout, + .iconPalIndex = 1, + FOOTPRINT(Bellsprout) + .levelUpLearnset = sBellsproutLevelUpLearnset, + .teachableLearnset = sBellsproutTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 21, SPECIES_WEEPINBELL}), }, @@ -5241,15 +7000,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 55, .baseSpAttack = 85, .baseSpDefense = 45, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 120, - .expYield = 137, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 137 : 151, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Weepinbell"), @@ -5267,18 +7026,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Weepinbell, 56, 48), + .frontPic = gMonFrontPic_Weepinbell, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Weepinbell, .frontAnimId = ANIM_SWING_CONVEX, .frontAnimDelay = 3, - BACK_PIC(Weepinbell, 64, 48), + .backPic = gMonBackPic_Weepinbell, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Weepinbell), - ICON(Weepinbell, 1), - .footprint = gMonFootprint_Weepinbell, - LEARNSETS(Weepinbell), + .palette = gMonPalette_Weepinbell, + .shinyPalette = gMonShinyPalette_Weepinbell, + .iconSprite = gMonIcon_Weepinbell, + .iconPalIndex = 1, + FOOTPRINT(Weepinbell) + .levelUpLearnset = sWeepinbellLevelUpLearnset, + .teachableLearnset = sWeepinbellTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VICTREEBEL}), }, @@ -5290,15 +7054,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 100, .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 70 : 60, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 245, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 221, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 216, + #else + .expYield = 191, + #endif .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Victreebel"), @@ -5316,17 +7088,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 312, .trainerOffset = 3, - FRONT_PIC(Victreebel, 64, 56), + .frontPic = gMonFrontPic_Victreebel, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Victreebel, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Victreebel, 64, 56), + .backPic = gMonBackPic_Victreebel, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Victreebel), - ICON(Victreebel, 1), - .footprint = gMonFootprint_Victreebel, - LEARNSETS(Victreebel), + .palette = gMonPalette_Victreebel, + .shinyPalette = gMonShinyPalette_Victreebel, + .iconSprite = gMonIcon_Victreebel, + .iconPalIndex = 1, + FOOTPRINT(Victreebel) + .levelUpLearnset = sVictreebelLevelUpLearnset, + .teachableLearnset = sVictreebelTeachableLearnset, }, #endif //P_FAMILY_BELLSPROUT @@ -5339,16 +7116,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 50, .baseSpDefense = 100, - .types = { TYPE_WATER, TYPE_POISON }, + .types = MON_TYPES(TYPE_WATER, TYPE_POISON), .catchRate = 190, - .expYield = 67, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 67 : 105, .evYield_SpDefense = 1, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_CLEAR_BODY, ABILITY_LIQUID_OOZE, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Tentacool"), @@ -5366,17 +7143,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tentacool, 48, 56), + .frontPic = gMonFrontPic_Tentacool, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Tentacool, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Tentacool, 64, 48), + .backPic = gMonBackPic_Tentacool, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Tentacool), - ICON(Tentacool, 0), - .footprint = gMonFootprint_Tentacool, - LEARNSETS(Tentacool), + .palette = gMonPalette_Tentacool, + .shinyPalette = gMonShinyPalette_Tentacool, + .iconSprite = gMonIcon_Tentacool, + .iconPalIndex = 0, + FOOTPRINT(Tentacool) + .levelUpLearnset = sTentacoolLevelUpLearnset, + .teachableLearnset = sTentacoolTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_TENTACRUEL}), }, @@ -5388,16 +7170,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 100, .baseSpAttack = 80, .baseSpDefense = 120, - .types = { TYPE_WATER, TYPE_POISON }, + .types = MON_TYPES(TYPE_WATER, TYPE_POISON), .catchRate = 60, - .expYield = 180, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 180 : 205, .evYield_SpDefense = 2, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_CLEAR_BODY, ABILITY_LIQUID_OOZE, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Tentacruel"), @@ -5415,151 +7197,183 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 312, .trainerOffset = 1, - FRONT_PIC(Tentacruel, 64, 56), + .frontPic = gMonFrontPic_Tentacruel, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Tentacruel, .frontAnimId = ANIM_V_SLIDE_WOBBLE, - BACK_PIC(Tentacruel, 64, 48), + .backPic = gMonBackPic_Tentacruel, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Tentacruel), - ICON(Tentacruel, 0), - .footprint = gMonFootprint_Tentacruel, - LEARNSETS(Tentacruel), + .palette = gMonPalette_Tentacruel, + .shinyPalette = gMonShinyPalette_Tentacruel, + .iconSprite = gMonIcon_Tentacruel, + .iconPalIndex = 0, + FOOTPRINT(Tentacruel) + .levelUpLearnset = sTentacruelLevelUpLearnset, + .teachableLearnset = sTentacruelTeachableLearnset, }, #endif //P_FAMILY_TENTACOOL #if P_FAMILY_GEODUDE -#define KANTONIAN_GEODUDE_FAMILY_INFO \ - .types = { TYPE_ROCK, TYPE_GROUND }, \ - .itemRare = ITEM_EVERSTONE, \ - .abilities = { ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SAND_VEIL } -#define GEODUDE_FAMILY_MISC_INFO \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, \ - .bodyColor = BODY_COLOR_BROWN - -#define GEODUDE_MISC_INFO \ - .baseHP = 40, \ - .baseAttack = 80, \ - .baseDefense = 100, \ - .baseSpeed = 20, \ - .baseSpAttack = 30, \ - .baseSpDefense = 30, \ - .catchRate = 255, \ - .expYield = 60, \ - .evYield_Defense = 1, \ - .speciesName = _("Geodude"), \ - .cryId = CRY_GEODUDE, \ - .natDexNum = NATIONAL_DEX_GEODUDE, \ - .categoryName = _("Rock"), \ - .height = 4, \ - .pokemonScale = 347, \ - .pokemonOffset = 18, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Geodude, \ - .formSpeciesIdTable = sGeodudeFormSpeciesIdTable, \ - GEODUDE_FAMILY_MISC_INFO - -#define GRAVELER_MISC_INFO \ - .baseHP = 55, \ - .baseAttack = 95, \ - .baseDefense = 115, \ - .baseSpeed = 35, \ - .baseSpAttack = 45, \ - .baseSpDefense = 45, \ - .catchRate = 120, \ - .expYield = 137, \ - .evYield_Defense = 2, \ - .speciesName = _("Graveler"), \ - .cryId = CRY_GRAVELER, \ - .natDexNum = NATIONAL_DEX_GRAVELER, \ - .categoryName = _("Rock"), \ - .height = 10, \ - .pokemonScale = 256, \ - .pokemonOffset = 2, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Graveler, \ - .formSpeciesIdTable = sGravelerFormSpeciesIdTable, \ - GEODUDE_FAMILY_MISC_INFO +#if P_UPDATED_EXP_YIELDS >= GEN_5 + #define GEODUDE_EXP_YIELD 60 +#elif P_UPDATED_EXP_YIELDS >= GEN_4 + #define GEODUDE_EXP_YIELD 73 +#else + #define GEODUDE_EXP_YIELD 86 +#endif #define GOLEM_ATTACK (P_UPDATED_STATS >= GEN_6 ? 120 : 110) -#define GOLEM_MISC_INFO \ - .baseHP = 80, \ - .baseAttack = GOLEM_ATTACK, \ - .baseDefense = 130, \ - .baseSpeed = 45, \ - .baseSpAttack = 55, \ - .baseSpDefense = 65, \ - .catchRate = 45, \ - .expYield = 223, \ - .evYield_Defense = 3, \ - .speciesName = _("Golem"), \ - .cryId = CRY_GOLEM, \ - .natDexNum = NATIONAL_DEX_GOLEM, \ - .categoryName = _("Megaton"), \ - .footprint = gMonFootprint_Golem, \ - .formSpeciesIdTable = sGolemFormSpeciesIdTable, \ - GEODUDE_FAMILY_MISC_INFO +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define GOLEM_EXP_YIELD 248 +#elif P_UPDATED_EXP_YIELDS >= GEN_7 + #define GOLEM_EXP_YIELD 223 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define GOLEM_EXP_YIELD 218 +#else + #define GOLEM_EXP_YIELD 177 +#endif [SPECIES_GEODUDE] = { - KANTONIAN_GEODUDE_FAMILY_INFO, - GEODUDE_MISC_INFO, + .baseHP = 40, + .baseAttack = 80, + .baseDefense = 100, + .baseSpeed = 20, + .baseSpAttack = 30, + .baseSpDefense = 30, + .types = MON_TYPES(TYPE_ROCK, TYPE_GROUND), + .catchRate = 255, + .expYield = GEODUDE_EXP_YIELD, + .evYield_Defense = 1, + .itemRare = ITEM_EVERSTONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SAND_VEIL }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Geodude"), + .cryId = CRY_GEODUDE, + .natDexNum = NATIONAL_DEX_GEODUDE, + .categoryName = _("Rock"), + .height = 4, .weight = 200, .description = COMPOUND_STRING( "It climbs mountain paths using only the\n" "power of its arms. Because they look just\n" "like boulders lining paths, hikers may step\n" "on them without noticing."), - FRONT_PIC(Geodude, 64, 32), + .pokemonScale = 347, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Geodude, + .frontPicSize = MON_COORDS_SIZE(64, 32), .frontPicYOffset = 19, .frontAnimFrames = sAnims_Geodude, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, .enemyMonElevation = 10, - BACK_PIC(Geodude, 64, 48), + .backPic = gMonBackPic_Geodude, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Geodude), - ICON(Geodude, 1), - LEARNSETS(Geodude), + .palette = gMonPalette_Geodude, + .shinyPalette = gMonShinyPalette_Geodude, + .iconSprite = gMonIcon_Geodude, + .iconPalIndex = 1, + FOOTPRINT(Geodude) + .levelUpLearnset = sGeodudeLevelUpLearnset, + .teachableLearnset = sGeodudeTeachableLearnset, + .formSpeciesIdTable = sGeodudeFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_GRAVELER}), }, [SPECIES_GRAVELER] = { - KANTONIAN_GEODUDE_FAMILY_INFO, - GRAVELER_MISC_INFO, + .baseHP = 55, + .baseAttack = 95, + .baseDefense = 115, + .baseSpeed = 35, + .baseSpAttack = 45, + .baseSpDefense = 45, + .types = MON_TYPES(TYPE_ROCK, TYPE_GROUND), + .catchRate = 120, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 137 : 134, + .evYield_Defense = 2, + .itemRare = ITEM_EVERSTONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SAND_VEIL }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Graveler"), + .cryId = CRY_GRAVELER, + .natDexNum = NATIONAL_DEX_GRAVELER, + .categoryName = _("Rock"), + .height = 10, .weight = 1050, .description = COMPOUND_STRING( "They descend from mountains by tumbling\n" "down steep slopes. They are so brutal,\n" "they smash aside obstructing trees and\n" "massive boulders with thunderous tackles."), - FRONT_PIC(Graveler, 64, 48), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Graveler, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Graveler, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Graveler, 64, 48), + .backPic = gMonBackPic_Graveler, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Graveler), - ICON(Graveler, 1), - LEARNSETS(Graveler), - .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOLEM}), + .palette = gMonPalette_Graveler, + .shinyPalette = gMonShinyPalette_Graveler, + .iconSprite = gMonIcon_Graveler, + .iconPalIndex = 1, + FOOTPRINT(Graveler) + .levelUpLearnset = sGravelerLevelUpLearnset, + .teachableLearnset = sGravelerTeachableLearnset, + .formSpeciesIdTable = sGravelerFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOLEM}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOLEM}), }, [SPECIES_GOLEM] = { - KANTONIAN_GEODUDE_FAMILY_INFO, - GOLEM_MISC_INFO, + .baseHP = 80, + .baseAttack = GOLEM_ATTACK, + .baseDefense = 130, + .baseSpeed = 45, + .baseSpAttack = 55, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_ROCK, TYPE_GROUND), + .catchRate = 45, + .expYield = GOLEM_EXP_YIELD, + .evYield_Defense = 3, + .itemRare = ITEM_EVERSTONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SAND_VEIL }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Golem"), + .cryId = CRY_GOLEM, + .natDexNum = NATIONAL_DEX_GOLEM, + .categoryName = _("Megaton"), .height = 14, .weight = 3000, .description = COMPOUND_STRING( @@ -5571,75 +7385,164 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 296, .trainerOffset = 2, - FRONT_PIC(Golem, 64, 56), + .frontPic = gMonFrontPic_Golem, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Golem, .frontAnimId = ANIM_ROTATE_UP_SLAM_DOWN, - BACK_PIC(Golem, 64, 48), + .backPic = gMonBackPic_Golem, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Golem), - ICON(Golem, 2), - LEARNSETS(Golem), + .palette = gMonPalette_Golem, + .shinyPalette = gMonShinyPalette_Golem, + .iconSprite = gMonIcon_Golem, + .iconPalIndex = 2, + FOOTPRINT(Golem) + .levelUpLearnset = sGolemLevelUpLearnset, + .teachableLearnset = sGolemTeachableLearnset, + .formSpeciesIdTable = sGolemFormSpeciesIdTable, }, #if P_ALOLAN_FORMS -#define ALOLAN_GEODUDE_FAMILY_INFO \ - .types = { TYPE_ROCK, TYPE_ELECTRIC }, \ - .abilities = { ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_GALVANIZE },\ - .isAlolanForm = TRUE - [SPECIES_GEODUDE_ALOLAN] = { - ALOLAN_GEODUDE_FAMILY_INFO, - GEODUDE_MISC_INFO, + .baseHP = 40, + .baseAttack = 80, + .baseDefense = 100, + .baseSpeed = 20, + .baseSpAttack = 30, + .baseSpDefense = 30, + .types = MON_TYPES(TYPE_ROCK, TYPE_ELECTRIC), + .catchRate = 255, + .expYield = GEODUDE_EXP_YIELD, + .evYield_Defense = 1, + .itemRare = ITEM_CELL_BATTERY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_GALVANIZE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Geodude"), + .cryId = CRY_GEODUDE, + .natDexNum = NATIONAL_DEX_GEODUDE, + .categoryName = _("Rock"), + .height = 4, .weight = 203, .description = COMPOUND_STRING( "Its body is a magnetic stone. Iron sand\n" "attach to parts of its body with stronger\n" "magnetism. If you carelessly step on one,\n" "it will headbutt and shock you in anger."), - FRONT_PIC(GeodudeAlolan, 48, 32), + .pokemonScale = 347, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_GeodudeAlolan, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_GeodudeAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 16, - BACK_PIC(GeodudeAlolan, 64, 56), + .backPic = gMonBackPic_GeodudeAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GeodudeAlolan), - ICON(GeodudeAlolan, 2), - LEARNSETS(GeodudeAlolan), + .palette = gMonPalette_GeodudeAlolan, + .shinyPalette = gMonShinyPalette_GeodudeAlolan, + .iconSprite = gMonIcon_GeodudeAlolan, + .iconPalIndex = 2, + FOOTPRINT(Geodude) + .isAlolanForm = TRUE, + .levelUpLearnset = sGeodudeAlolanLevelUpLearnset, + .teachableLearnset = sGeodudeAlolanTeachableLearnset, + .formSpeciesIdTable = sGeodudeFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_GRAVELER_ALOLAN}), }, [SPECIES_GRAVELER_ALOLAN] = { - ALOLAN_GEODUDE_FAMILY_INFO, - GRAVELER_MISC_INFO, + .baseHP = 55, + .baseAttack = 95, + .baseDefense = 115, + .baseSpeed = 35, + .baseSpAttack = 45, + .baseSpDefense = 45, + .types = MON_TYPES(TYPE_ROCK, TYPE_ELECTRIC), + .catchRate = 120, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 137 : 134, + .evYield_Defense = 2, + .itemRare = ITEM_CELL_BATTERY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_GALVANIZE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Graveler"), + .cryId = CRY_GRAVELER, + .natDexNum = NATIONAL_DEX_GRAVELER, + .categoryName = _("Rock"), + .height = 10, .weight = 1100, .description = COMPOUND_STRING( "When two Graveler smash each other over\n" "dravite, their favorite food, they cause\n" "flashes of light and booming noises.\n" "People call them “fireworks of the earth.”"), - FRONT_PIC(GravelerAlolan, 64, 56), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_GravelerAlolan, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_GravelerAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GravelerAlolan, 64, 48), + .backPic = gMonBackPic_GravelerAlolan, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GravelerAlolan), - ICON(GravelerAlolan, 2), - LEARNSETS(GravelerAlolan), - .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOLEM_ALOLAN}), + .palette = gMonPalette_GravelerAlolan, + .shinyPalette = gMonShinyPalette_GravelerAlolan, + .iconSprite = gMonIcon_GravelerAlolan, + .iconPalIndex = 2, + FOOTPRINT(Graveler) + .isAlolanForm = TRUE, + .levelUpLearnset = sGravelerAlolanLevelUpLearnset, + .teachableLearnset = sGravelerAlolanTeachableLearnset, + .formSpeciesIdTable = sGravelerFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOLEM_ALOLAN}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOLEM_ALOLAN}), }, [SPECIES_GOLEM_ALOLAN] = { - ALOLAN_GEODUDE_FAMILY_INFO, - GOLEM_MISC_INFO, + .baseHP = 80, + .baseAttack = GOLEM_ATTACK, + .baseDefense = 130, + .baseSpeed = 45, + .baseSpAttack = 55, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_ROCK, TYPE_ELECTRIC), + .catchRate = 45, + .expYield = GOLEM_EXP_YIELD, + .evYield_Defense = 3, + .itemCommon = ITEM_CELL_BATTERY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_GALVANIZE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Golem"), + .cryId = CRY_GOLEM, + .natDexNum = NATIONAL_DEX_GOLEM, + .categoryName = _("Megaton"), .height = 17, .weight = 3160, .description = COMPOUND_STRING( @@ -5651,76 +7554,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 296, .trainerOffset = 2, - FRONT_PIC(GolemAlolan, 56, 64), + .frontPic = gMonFrontPic_GolemAlolan, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_GolemAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GolemAlolan, 64, 48), + .backPic = gMonBackPic_GolemAlolan, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GolemAlolan), - ICON(GolemAlolan, 2), - LEARNSETS(GolemAlolan), + .palette = gMonPalette_GolemAlolan, + .shinyPalette = gMonShinyPalette_GolemAlolan, + .iconSprite = gMonIcon_GolemAlolan, + .iconPalIndex = 2, + FOOTPRINT(Golem) + .isAlolanForm = TRUE, + .levelUpLearnset = sGolemAlolanLevelUpLearnset, + .teachableLearnset = sGolemAlolanTeachableLearnset, + .formSpeciesIdTable = sGolemFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_GEODUDE #if P_FAMILY_PONYTA -#define KANTONIAN_PONYTA_FAMILY_INFO \ - .types = { TYPE_FIRE, TYPE_FIRE }, \ - .abilities = { ABILITY_RUN_AWAY, ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY }, \ - .bodyColor = BODY_COLOR_YELLOW - -#define PONYTA_FAMILY_MISC_INFO \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD } - -#define PONYTA_MISC_INFO \ - .baseHP = 50, \ - .baseAttack = 85, \ - .baseDefense = 55, \ - .baseSpeed = 90, \ - .baseSpAttack = 65, \ - .baseSpDefense = 65, \ - .catchRate = 190, \ - .expYield = 82, \ - .evYield_Speed = 1, \ - .speciesName = _("Ponyta"), \ - .cryId = CRY_PONYTA, \ - .natDexNum = NATIONAL_DEX_PONYTA, \ - .footprint = gMonFootprint_Ponyta, \ - .formSpeciesIdTable = sPonytaFormSpeciesIdTable,\ - PONYTA_FAMILY_MISC_INFO - -#define RAPIDASH_MISC_INFO \ - .baseHP = 65, \ - .baseAttack = 100, \ - .baseDefense = 70, \ - .baseSpeed = 105, \ - .baseSpAttack = 80, \ - .baseSpDefense = 80, \ - .catchRate = 60, \ - .expYield = 175, \ - .evYield_Speed = 2, \ - .speciesName = _("Rapidash"), \ - .cryId = CRY_RAPIDASH, \ - .natDexNum = NATIONAL_DEX_RAPIDASH, \ - .height = 17, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 289, \ - .trainerOffset = 1, \ - .footprint = gMonFootprint_Rapidash, \ - .formSpeciesIdTable = sRapidashFormSpeciesIdTable, \ - PONYTA_FAMILY_MISC_INFO - [SPECIES_PONYTA] = { - KANTONIAN_PONYTA_FAMILY_INFO, - PONYTA_MISC_INFO, + .baseHP = 50, + .baseAttack = 85, + .baseDefense = 55, + .baseSpeed = 90, + .baseSpAttack = 65, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 82 : 152, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_RUN_AWAY, ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Ponyta"), + .cryId = CRY_PONYTA, + .natDexNum = NATIONAL_DEX_PONYTA, .categoryName = _("Fire Horse"), .height = 10, .weight = 300, @@ -5733,54 +7611,103 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ponyta, 56, 56), + .frontPic = gMonFrontPic_Ponyta, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Ponyta, .frontAnimId = ANIM_V_SHAKE, .frontAnimDelay = 10, - BACK_PIC(Ponyta, 64, 56), + .backPic = gMonBackPic_Ponyta, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Ponyta), - ICON(Ponyta, 3), - LEARNSETS(Ponyta), + .palette = gMonPalette_Ponyta, + .shinyPalette = gMonShinyPalette_Ponyta, + .iconSprite = gMonIcon_Ponyta, + .iconPalIndex = 3, + FOOTPRINT(Ponyta) + .levelUpLearnset = sPonytaLevelUpLearnset, + .teachableLearnset = sPonytaTeachableLearnset, + .formSpeciesIdTable = sPonytaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_RAPIDASH}), }, [SPECIES_RAPIDASH] = { - KANTONIAN_PONYTA_FAMILY_INFO, - RAPIDASH_MISC_INFO, + .baseHP = 65, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 105, + .baseSpAttack = 80, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 192, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_RUN_AWAY, ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Rapidash"), + .cryId = CRY_RAPIDASH, + .natDexNum = NATIONAL_DEX_RAPIDASH, .categoryName = _("Fire Horse"), + .height = 17, .weight = 950, .description = COMPOUND_STRING( "It usually canters casually in the fields\n" "and plains. But once a Rapidash turns\n" "serious, its fiery manes flare and blaze\n" "as it gallops its way up to 150 mph."), - FRONT_PIC(Rapidash, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 289, + .trainerOffset = 1, + .frontPic = gMonFrontPic_Rapidash, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Rapidash, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Rapidash, 64, 64), + .backPic = gMonBackPic_Rapidash, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Rapidash), - ICON(Rapidash, 3), - LEARNSETS(Rapidash), + .palette = gMonPalette_Rapidash, + .shinyPalette = gMonShinyPalette_Rapidash, + .iconSprite = gMonIcon_Rapidash, + .iconPalIndex = 3, + FOOTPRINT(Rapidash) + .levelUpLearnset = sRapidashLevelUpLearnset, + .teachableLearnset = sRapidashTeachableLearnset, + .formSpeciesIdTable = sRapidashFormSpeciesIdTable, }, -#define GALARIAN_PONYTA_FAMILY_INFO \ - .abilities = { ABILITY_RUN_AWAY, ABILITY_PASTEL_VEIL, ABILITY_ANTICIPATION },\ - .bodyColor = BODY_COLOR_WHITE, \ - .isGalarianForm = TRUE - #if P_GALARIAN_FORMS [SPECIES_PONYTA_GALARIAN] = { - GALARIAN_PONYTA_FAMILY_INFO, - PONYTA_MISC_INFO, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .baseHP = 50, + .baseAttack = 85, + .baseDefense = 55, + .baseSpeed = 90, + .baseSpAttack = 65, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 82 : 152, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_RUN_AWAY, ABILITY_PASTEL_VEIL, ABILITY_ANTICIPATION }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Ponyta"), + .cryId = CRY_PONYTA, + .natDexNum = NATIONAL_DEX_PONYTA, .categoryName = _("Unique Horn"), .height = 8, .weight = 240, @@ -5793,127 +7720,136 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(PonytaGalarian, 64, 56), + .frontPic = gMonFrontPic_PonytaGalarian, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_PonytaGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PonytaGalarian, 64, 56), + .backPic = gMonBackPic_PonytaGalarian, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PonytaGalarian), - ICON(PonytaGalarian, 2), - LEARNSETS(PonytaGalarian), + .palette = gMonPalette_PonytaGalarian, + .shinyPalette = gMonShinyPalette_PonytaGalarian, + .iconSprite = gMonIcon_PonytaGalarian, + .iconPalIndex = 2, + FOOTPRINT(Ponyta) + .isGalarianForm = TRUE, + .levelUpLearnset = sPonytaGalarianLevelUpLearnset, + .teachableLearnset = sPonytaGalarianTeachableLearnset, + .formSpeciesIdTable = sPonytaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_RAPIDASH_GALARIAN}), }, [SPECIES_RAPIDASH_GALARIAN] = { - GALARIAN_PONYTA_FAMILY_INFO, - RAPIDASH_MISC_INFO, - .types = { TYPE_PSYCHIC, TYPE_FAIRY }, + .baseHP = 65, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 105, + .baseSpAttack = 80, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FAIRY), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 192, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_RUN_AWAY, ABILITY_PASTEL_VEIL, ABILITY_ANTICIPATION }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Rapidash"), + .cryId = CRY_RAPIDASH, + .natDexNum = NATIONAL_DEX_RAPIDASH, .categoryName = _("Unique Horn"), + .height = 17, .weight = 800, .description = COMPOUND_STRING( "Little can stand up to its psycho cut.\n" "Unleashed from this Pokémon's horn,\n" "the move will punch a hole right\n" "through a thick metal sheet."), - FRONT_PIC(RapidashGalarian, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 289, + .trainerOffset = 1, + .frontPic = gMonFrontPic_RapidashGalarian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_RapidashGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(RapidashGalarian, 64, 56), + .backPic = gMonBackPic_RapidashGalarian, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(RapidashGalarian), - ICON(RapidashGalarian, 2), - LEARNSETS(RapidashGalarian), + .palette = gMonPalette_RapidashGalarian, + .shinyPalette = gMonShinyPalette_RapidashGalarian, + .iconSprite = gMonIcon_RapidashGalarian, + .iconPalIndex = 2, + FOOTPRINT(Rapidash) + .isGalarianForm = TRUE, + .levelUpLearnset = sRapidashGalarianLevelUpLearnset, + .teachableLearnset = sRapidashGalarianTeachableLearnset, + .formSpeciesIdTable = sRapidashFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_PONYTA #if P_FAMILY_SLOWPOKE -#define SLOWPOKE_MISC_INFO \ - .baseHP = 90, \ - .baseAttack = 65, \ - .baseDefense = 65, \ - .baseSpeed = 15, \ - .baseSpAttack = 40, \ - .baseSpDefense = 40, \ - .catchRate = 190, \ - .expYield = 63, \ - .evYield_HP = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, \ - .bodyColor = BODY_COLOR_PINK, \ - .speciesName = _("Slowpoke"), \ - .natDexNum = NATIONAL_DEX_SLOWPOKE, \ - .categoryName = _("Dopey"), \ - .height = 12, \ - .weight = 360, \ - .pokemonScale = 256, \ - .pokemonOffset = 10, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Slowpoke, \ - .formSpeciesIdTable = sSlowpokeFormSpeciesIdTable - -#define SLOWBRO_MISC_INFO \ - .catchRate = 75, \ - .itemRare = ITEM_KINGS_ROCK, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, \ - .bodyColor = BODY_COLOR_PINK, \ - .speciesName = _("Slowbro"), \ - .cryId = CRY_SLOWBRO, \ - .natDexNum = NATIONAL_DEX_SLOWBRO, \ - .categoryName = _("Hermit Crab"), \ - .footprint = gMonFootprint_Slowbro, \ - .formSpeciesIdTable = sSlowbroFormSpeciesIdTable - -#define SLOWKING_MISC_INFO \ - .catchRate = 70, \ - .expYield = 172, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, \ - .bodyColor = BODY_COLOR_PINK, \ - .speciesName = _("Slowking"), \ - .cryId = CRY_SLOWKING, \ - .natDexNum = NATIONAL_DEX_SLOWKING, \ - .weight = 795, \ - .footprint = gMonFootprint_Slowking, \ - .formSpeciesIdTable = sSlowkingFormSpeciesIdTable - [SPECIES_SLOWPOKE] = { - SLOWPOKE_MISC_INFO, - .types = { TYPE_WATER, TYPE_PSYCHIC }, + .baseHP = 90, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 15, + .baseSpAttack = 40, + .baseSpDefense = 40, + .types = MON_TYPES(TYPE_WATER, TYPE_PSYCHIC), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 63 : 99, + .evYield_HP = 1, + .itemRare = ITEM_LAGGING_TAIL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Slowpoke"), .cryId = CRY_SLOWPOKE, + .natDexNum = NATIONAL_DEX_SLOWPOKE, + .categoryName = _("Dopey"), + .height = 12, + .weight = 360, .description = COMPOUND_STRING( "It catches prey by dipping its tail in\n" "water at the side of a river. But it often\n" "forgets what it is doing and spends entire\n" "days just loafing at water's edge."), - FRONT_PIC(Slowpoke, 64, 32), + .pokemonScale = 256, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Slowpoke, + .frontPicSize = MON_COORDS_SIZE(64, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Slowpoke, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Slowpoke, 64, 40), + .backPic = gMonBackPic_Slowpoke, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Slowpoke), - ICON(Slowpoke, 0), - LEARNSETS(Slowpoke), + .palette = gMonPalette_Slowpoke, + .shinyPalette = gMonShinyPalette_Slowpoke, + .iconSprite = gMonIcon_Slowpoke, + .iconPalIndex = 0, + FOOTPRINT(Slowpoke) + .levelUpLearnset = sSlowpokeLevelUpLearnset, + .teachableLearnset = sSlowpokeTeachableLearnset, + .formSpeciesIdTable = sSlowpokeFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_SLOWBRO}, {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING}, {EVO_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING}), @@ -5921,17 +7857,28 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = [SPECIES_SLOWBRO] = { - SLOWBRO_MISC_INFO, .baseHP = 95, .baseAttack = 75, .baseDefense = 110, .baseSpeed = 30, .baseSpAttack = 100, .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_PSYCHIC }, - .expYield = 172, - .evYield_Defense = 2, + .types = MON_TYPES(TYPE_WATER, TYPE_PSYCHIC), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 164, + .evYield_Defense = (P_UPDATED_EVS >= GEN_8) ? 2 : 3, + .itemRare = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Slowbro"), + .cryId = CRY_SLOWBRO, + .natDexNum = NATIONAL_DEX_SLOWBRO, + .categoryName = _("Hermit Crab"), .height = 16, .weight = 785, .description = COMPOUND_STRING( @@ -5943,35 +7890,53 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 296, .trainerOffset = 2, - FRONT_PIC(Slowbro, 56, 56), + .frontPic = gMonFrontPic_Slowbro, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Slowbro, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Slowbro, 64, 48), + .backPic = gMonBackPic_Slowbro, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Slowbro), - ICON(Slowbro, 0), - LEARNSETS(Slowbro), + .palette = gMonPalette_Slowbro, + .shinyPalette = gMonShinyPalette_Slowbro, + .iconSprite = gMonIcon_Slowbro, + .iconPalIndex = 0, + FOOTPRINT(Slowbro) + .levelUpLearnset = sSlowbroLevelUpLearnset, + .teachableLearnset = sSlowbroTeachableLearnset, + .formSpeciesIdTable = sSlowbroFormSpeciesIdTable, .formChangeTable = sSlowbroFormChangeTable, }, #if P_GEN_2_CROSS_EVOS [SPECIES_SLOWKING] = { - SLOWKING_MISC_INFO, .baseHP = 95, .baseAttack = 75, .baseDefense = 80, .baseSpeed = 30, .baseSpAttack = 100, .baseSpDefense = 110, - .types = { TYPE_WATER, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_WATER, TYPE_PSYCHIC), + .catchRate = 70, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 164, .evYield_SpDefense = 3, .itemRare = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Slowking"), + .cryId = CRY_SLOWKING, + .natDexNum = NATIONAL_DEX_SLOWKING, .categoryName = _("Royal"), .height = 20, + .weight = 795, .description = COMPOUND_STRING( "It undertakes research every day to\n" "solve the mysteries of the world.\n" @@ -5981,33 +7946,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 5, - FRONT_PIC(Slowking, 48, 64), + .frontPic = gMonFrontPic_Slowking, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Slowking, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Slowking, 56, 64), + .backPic = gMonBackPic_Slowking, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Slowking), - ICON(Slowking, 0), - LEARNSETS(Slowking), + .palette = gMonPalette_Slowking, + .shinyPalette = gMonShinyPalette_Slowking, + .iconSprite = gMonIcon_Slowking, + .iconPalIndex = 0, + FOOTPRINT(Slowking) + .levelUpLearnset = sSlowkingLevelUpLearnset, + .teachableLearnset = sSlowkingTeachableLearnset, + .formSpeciesIdTable = sSlowkingFormSpeciesIdTable, }, #endif //P_GEN_2_CROSS_EVOS #if P_MEGA_EVOLUTIONS [SPECIES_SLOWBRO_MEGA] = { - SLOWBRO_MISC_INFO, .baseHP = 95, .baseAttack = 75, .baseDefense = 180, .baseSpeed = 30, .baseSpAttack = 130, .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_WATER, TYPE_PSYCHIC), + .catchRate = 75, .expYield = 207, .evYield_Defense = 2, + .itemRare = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_SHELL_ARMOR, ABILITY_SHELL_ARMOR, ABILITY_SHELL_ARMOR }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Slowbro"), + .cryId = CRY_SLOWBRO, + .natDexNum = NATIONAL_DEX_SLOWBRO, + .categoryName = _("Hermit Crab"), .height = 20, .weight = 1200, .description = COMPOUND_STRING( @@ -6019,61 +8002,109 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 296, .trainerOffset = 2, - FRONT_PIC(SlowbroMega, 56, 64), + .frontPic = gMonFrontPic_SlowbroMega, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_SlowbroMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SlowbroMega, 64, 48), + .backPic = gMonBackPic_SlowbroMega, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(SlowbroMega), - ICON(SlowbroMega, 0), - LEARNSETS(Slowbro), - .formChangeTable = sSlowbroFormChangeTable, + .palette = gMonPalette_SlowbroMega, + .shinyPalette = gMonShinyPalette_SlowbroMega, + .iconSprite = gMonIcon_SlowbroMega, + .iconPalIndex = 0, + FOOTPRINT(Slowbro) .isMegaEvolution = TRUE, + .levelUpLearnset = sSlowbroLevelUpLearnset, + .teachableLearnset = sSlowbroTeachableLearnset, + .formSpeciesIdTable = sSlowbroFormSpeciesIdTable, + .formChangeTable = sSlowbroFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #if P_GALARIAN_FORMS [SPECIES_SLOWPOKE_GALARIAN] = { - SLOWPOKE_MISC_INFO, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .baseHP = 90, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 15, + .baseSpAttack = 40, + .baseSpDefense = 40, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 63 : 99, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_GLUTTONY, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Slowpoke"), .cryId = CRY_SLOWPOKE_GALARIAN, + .natDexNum = NATIONAL_DEX_SLOWPOKE, + .categoryName = _("Dopey"), + .height = 12, + .weight = 360, .description = COMPOUND_STRING( "Although it is normally zoned out, its\n" "expression abruptly sharpens on occasion.\n" "The cause seems to lie in Slowpoke's diet,\n" "which also give their tails a spicy flavor."), - FRONT_PIC(SlowpokeGalarian, 56, 32), + .pokemonScale = 256, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_SlowpokeGalarian, + .frontPicSize = MON_COORDS_SIZE(56, 32), .frontPicYOffset = 19, .frontAnimFrames = sAnims_SlowpokeGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SlowpokeGalarian, 64, 40), + .backPic = gMonBackPic_SlowpokeGalarian, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SlowpokeGalarian), - ICON(SlowpokeGalarian, 1), - LEARNSETS(SlowpokeGalarian), + .palette = gMonPalette_SlowpokeGalarian, + .shinyPalette = gMonShinyPalette_SlowpokeGalarian, + .iconSprite = gMonIcon_SlowpokeGalarian, + .iconPalIndex = 1, + FOOTPRINT(Slowpoke) .isGalarianForm = TRUE, - .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_SLOWBRO_GALARIAN}, - {EVO_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING_GALARIAN}), + .levelUpLearnset = sSlowpokeGalarianLevelUpLearnset, + .teachableLearnset = sSlowpokeGalarianTeachableLearnset, + .formSpeciesIdTable = sSlowpokeFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_GALARICA_CUFF, SPECIES_SLOWBRO_GALARIAN}, + {EVO_ITEM, ITEM_GALARICA_WREATH, SPECIES_SLOWKING_GALARIAN}), }, [SPECIES_SLOWBRO_GALARIAN] = { - SLOWBRO_MISC_INFO, .baseHP = 95, .baseAttack = 100, .baseDefense = 95, .baseSpeed = 30, .baseSpAttack = 100, .baseSpDefense = 70, - .types = { TYPE_POISON, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_POISON, TYPE_PSYCHIC), + .catchRate = 75, .expYield = 172, .evYield_Attack = 2, + .itemRare = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_QUICK_DRAW, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Slowbro"), + .cryId = CRY_SLOWBRO, + .natDexNum = NATIONAL_DEX_SLOWBRO, + .categoryName = _("Hermit Crab"), .height = 16, .weight = 705, .description = COMPOUND_STRING( @@ -6085,34 +8116,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 296, .trainerOffset = 2, - FRONT_PIC(SlowbroGalarian, 64, 56), + .frontPic = gMonFrontPic_SlowbroGalarian, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_SlowbroGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SlowbroGalarian, 64, 48), + .backPic = gMonBackPic_SlowbroGalarian, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SlowbroGalarian), - ICON(SlowbroGalarian, 0), - LEARNSETS(SlowbroGalarian), + .palette = gMonPalette_SlowbroGalarian, + .shinyPalette = gMonShinyPalette_SlowbroGalarian, + .iconSprite = gMonIcon_SlowbroGalarian, + .iconPalIndex = 0, + FOOTPRINT(Slowbro) .isGalarianForm = TRUE, + .levelUpLearnset = sSlowbroGalarianLevelUpLearnset, + .teachableLearnset = sSlowbroGalarianTeachableLearnset, + .formSpeciesIdTable = sSlowbroFormSpeciesIdTable, }, #if P_GEN_2_CROSS_EVOS [SPECIES_SLOWKING_GALARIAN] = { - SLOWKING_MISC_INFO, .baseHP = 95, .baseAttack = 65, .baseDefense = 80, .baseSpeed = 30, .baseSpAttack = 110, .baseSpDefense = 110, - .types = { TYPE_POISON, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_POISON, TYPE_PSYCHIC), + .catchRate = 70, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 164, .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_CURIOUS_MEDICINE, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Slowking"), + .cryId = CRY_SLOWKING, + .natDexNum = NATIONAL_DEX_SLOWKING, .categoryName = _("Hexpert"), .height = 18, + .weight = 795, .description = COMPOUND_STRING( "A combination of toxins and the shock of\n" "evolving has increased Shellder's\n" @@ -6122,17 +8171,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 5, - FRONT_PIC(SlowkingGalarian, 48, 64), + .frontPic = gMonFrontPic_SlowkingGalarian, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_SlowkingGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SlowkingGalarian, 56, 64), + .backPic = gMonBackPic_SlowkingGalarian, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SlowkingGalarian), - ICON(SlowkingGalarian, 2), - LEARNSETS(SlowkingGalarian), + .palette = gMonPalette_SlowkingGalarian, + .shinyPalette = gMonShinyPalette_SlowkingGalarian, + .iconSprite = gMonIcon_SlowkingGalarian, + .iconPalIndex = 2, + FOOTPRINT(Slowking) .isGalarianForm = TRUE, + .levelUpLearnset = sSlowkingGalarianLevelUpLearnset, + .teachableLearnset = sSlowkingGalarianTeachableLearnset, + .formSpeciesIdTable = sSlowkingFormSpeciesIdTable, }, #endif //P_GEN_2_CROSS_EVOS #endif //P_GALARIAN_FORMS @@ -6147,16 +8203,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 45, .baseSpAttack = 95, .baseSpDefense = 55, - .types = { TYPE_ELECTRIC, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_STEEL), .catchRate = 190, - .expYield = 65, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 89, .evYield_SpAttack = 1, .itemRare = ITEM_METAL_COAT, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Magnemite"), @@ -6174,18 +8230,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Magnemite, 48, 32), + .frontPic = gMonFrontPic_Magnemite, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 20, .frontAnimFrames = sAnims_Magnemite, .frontAnimId = ANIM_TUMBLING_FRONT_FLIP_TWICE, .enemyMonElevation = 17, - BACK_PIC(Magnemite, 48, 40), + .backPic = gMonBackPic_Magnemite, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Magnemite), - ICON(Magnemite, 0), - .footprint = gMonFootprint_Magnemite, - LEARNSETS(Magnemite), + .palette = gMonPalette_Magnemite, + .shinyPalette = gMonShinyPalette_Magnemite, + .iconSprite = gMonIcon_Magnemite, + .iconPalIndex = 0, + FOOTPRINT(Magnemite) + .levelUpLearnset = sMagnemiteLevelUpLearnset, + .teachableLearnset = sMagnemiteTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MAGNETON}), }, @@ -6197,16 +8258,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 120, .baseSpDefense = 70, - .types = { TYPE_ELECTRIC, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_STEEL), .catchRate = 60, - .expYield = 163, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 163 : 161, .evYield_SpAttack = 2, .itemRare = ITEM_METAL_COAT, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Magneton"), @@ -6224,19 +8285,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Magneton, 64, 56), + .frontPic = gMonFrontPic_Magneton, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Magneton, .frontAnimId = ANIM_FLASH_YELLOW, .enemyMonElevation = 9, - BACK_PIC(Magneton, 64, 56), + .backPic = gMonBackPic_Magneton, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Magneton), - ICON(Magneton, 0), - .footprint = gMonFootprint_Magneton, - LEARNSETS(Magneton), - .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_MAGNEZONE}), + .palette = gMonPalette_Magneton, + .shinyPalette = gMonShinyPalette_Magneton, + .iconSprite = gMonIcon_Magneton, + .iconPalIndex = 0, + FOOTPRINT(Magneton) + .levelUpLearnset = sMagnetonLevelUpLearnset, + .teachableLearnset = sMagnetonTeachableLearnset, + .evolutions = EVOLUTION({EVO_MAPSEC, MAPSEC_NEW_MAUVILLE, SPECIES_MAGNEZONE}, + {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_MAGNEZONE}), }, #if P_GEN_4_CROSS_EVOS @@ -6248,16 +8315,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 60, .baseSpAttack = 130, .baseSpDefense = 90, - .types = { TYPE_ELECTRIC, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_STEEL), .catchRate = 30, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 268, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 241, + #else + .expYield = 211, + #endif .evYield_SpAttack = 3, .itemRare = ITEM_METAL_COAT, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Magnezone"), @@ -6275,18 +8348,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Magnezone, 64, 56), + .frontPic = gMonFrontPic_Magnezone, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Magnezone, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 4, - BACK_PIC(Magnezone, 64, 40), + .backPic = gMonBackPic_Magnezone, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Magnezone), - ICON(Magnezone, 0), - .footprint = gMonFootprint_Magnezone, - LEARNSETS(Magnezone), + .palette = gMonPalette_Magnezone, + .shinyPalette = gMonShinyPalette_Magnezone, + .iconSprite = gMonIcon_Magnezone, + .iconPalIndex = 0, + FOOTPRINT(Magnezone) + .levelUpLearnset = sMagnezoneLevelUpLearnset, + .teachableLearnset = sMagnezoneTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_MAGNEMITE @@ -6294,34 +8372,38 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = #if P_FAMILY_FARFETCHD #define FARFETCHD_ATTACK (P_UPDATED_STATS >= GEN_7 ? 90 : 65) -#define FARFETCHD_MISC_INFO \ - .catchRate = 45, \ - .expYield = 132, \ - .evYield_Attack = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Farfetch'd"), \ - .cryId = CRY_FARFETCHD, \ - .natDexNum = NATIONAL_DEX_FARFETCHD, \ - .categoryName = _("Wild Duck"), \ - .footprint = gMonFootprint_Farfetchd, \ - .formSpeciesIdTable = sFarfetchdFormSpeciesIdTable +#if P_UPDATED_EXP_YIELDS >= GEN_7 + #define FARFETCHD_EXP_YIELD 132 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define FARFETCHD_EXP_YIELD 123 +#else + #define FARFETCHD_EXP_YIELD 94 +#endif [SPECIES_FARFETCHD] = { - FARFETCHD_MISC_INFO, .baseHP = 52, + .baseAttack = FARFETCHD_ATTACK, .baseDefense = 55, .baseSpeed = 60, .baseSpAttack = 58, .baseSpDefense = 62, - .baseAttack = FARFETCHD_ATTACK, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), + .catchRate = 45, + .expYield = FARFETCHD_EXP_YIELD, + .evYield_Attack = 1, + .itemRare = ITEM_LEEK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_FIELD), .abilities = { ABILITY_KEEN_EYE, ABILITY_INNER_FOCUS, ABILITY_DEFIANT }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Farfetch'd"), + .cryId = CRY_FARFETCHD, + .natDexNum = NATIONAL_DEX_FARFETCHD, + .categoryName = _("Wild Duck"), .height = 8, .weight = 150, .description = COMPOUND_STRING( @@ -6333,30 +8415,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 293, .trainerOffset = 2, - FRONT_PIC(Farfetchd, 48, 56), + .frontPic = gMonFrontPic_Farfetchd, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Farfetchd, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, - BACK_PIC(Farfetchd, 64, 48), + .backPic = gMonBackPic_Farfetchd, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Farfetchd), - ICON(Farfetchd, 1), - LEARNSETS(Farfetchd), + .palette = gMonPalette_Farfetchd, + .shinyPalette = gMonShinyPalette_Farfetchd, + .iconSprite = gMonIcon_Farfetchd, + .iconPalIndex = 1, + FOOTPRINT(Farfetchd) + .levelUpLearnset = sFarfetchdLevelUpLearnset, + .teachableLearnset = sFarfetchdTeachableLearnset, + .formSpeciesIdTable = sFarfetchdFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_FARFETCHD_GALARIAN] = { - FARFETCHD_MISC_INFO, .baseHP = 52, .baseAttack = FARFETCHD_ATTACK + 5, .baseDefense = 55, .baseSpeed = 55, .baseSpAttack = 58, .baseSpDefense = 62, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), + .catchRate = 45, + .expYield = FARFETCHD_EXP_YIELD, + .evYield_Attack = 1, + .itemCommon = ITEM_LEEK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_FIELD), .abilities = { ABILITY_STEADFAST, ABILITY_NONE, ABILITY_SCRAPPY }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Farfetch'd"), + .cryId = CRY_FARFETCHD, + .natDexNum = NATIONAL_DEX_FARFETCHD, + .categoryName = _("Wild Duck"), .height = 8, .weight = 420, .description = COMPOUND_STRING( @@ -6368,17 +8470,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 293, .trainerOffset = 2, - FRONT_PIC(FarfetchdGalarian, 64, 48), + .frontPic = gMonFrontPic_FarfetchdGalarian, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_FarfetchdGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(FarfetchdGalarian, 64, 48), + .backPic = gMonBackPic_FarfetchdGalarian, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(FarfetchdGalarian), - ICON(FarfetchdGalarian, 1), - LEARNSETS(FarfetchdGalarian), + .palette = gMonPalette_FarfetchdGalarian, + .shinyPalette = gMonShinyPalette_FarfetchdGalarian, + .iconSprite = gMonIcon_FarfetchdGalarian, + .iconPalIndex = 1, + FOOTPRINT(Farfetchd) .isGalarianForm = TRUE, + .levelUpLearnset = sFarfetchdGalarianLevelUpLearnset, + .teachableLearnset = sFarfetchdGalarianTeachableLearnset, + .formSpeciesIdTable = sFarfetchdFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_CRITICAL_HITS, 3, SPECIES_SIRFETCHD}), }, @@ -6390,15 +8499,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 65, .baseSpAttack = 68, .baseSpDefense = 82, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, .expYield = 177, .evYield_Attack = 2, + .itemRare = ITEM_LEEK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_FIELD), .abilities = { ABILITY_STEADFAST, ABILITY_NONE, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Sirfetch'd"), @@ -6416,17 +8526,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Sirfetchd, 64, 64), + .frontPic = gMonFrontPic_Sirfetchd, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Sirfetchd, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sirfetchd, 64, 48), + .backPic = gMonBackPic_Sirfetchd, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Sirfetchd), - ICON(Sirfetchd, 1), - .footprint = gMonFootprint_Sirfetchd, - LEARNSETS(Sirfetchd), + .palette = gMonPalette_Sirfetchd, + .shinyPalette = gMonShinyPalette_Sirfetchd, + .iconSprite = gMonIcon_Sirfetchd, + .iconPalIndex = 1, + FOOTPRINT(Sirfetchd) + .levelUpLearnset = sSirfetchdLevelUpLearnset, + .teachableLearnset = sSirfetchdTeachableLearnset, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_FARFETCHD @@ -6440,16 +8555,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 75, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 190, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 96, .evYield_Attack = 1, .itemRare = ITEM_SHARP_BEAK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_RUN_AWAY, ABILITY_EARLY_BIRD, ABILITY_TANGLED_FEET }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Doduo"), @@ -6467,19 +8582,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 257, .trainerOffset = -1, - FRONT_PIC(Doduo, 64, 56), - FRONT_PIC_FEMALE(Doduo, 64, 56), + .frontPic = gMonFrontPic_Doduo, + .frontPicFemale = gMonFrontPic_DoduoF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Doduo, .frontAnimId = ANIM_H_SHAKE_SLOW, - BACK_PIC(Doduo, 64, 56), - BACK_PIC_FEMALE(Doduo, 64, 56), + .backPic = gMonBackPic_Doduo, + .backPicFemale = gMonBackPic_DoduoF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Doduo), - ICON(Doduo, 2), - .footprint = gMonFootprint_Doduo, - LEARNSETS(Doduo), + .palette = gMonPalette_Doduo, + .shinyPalette = gMonShinyPalette_Doduo, + .iconSprite = gMonIcon_Doduo, + .iconPalIndex = 2, + FOOTPRINT(Doduo) + .levelUpLearnset = sDoduoLevelUpLearnset, + .teachableLearnset = sDoduoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_DODRIO}), }, @@ -6491,16 +8613,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = P_UPDATED_STATS >= GEN_7 ? 110 : 100, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 165, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 161, + #else + .expYield = 158, + #endif .evYield_Attack = 2, .itemRare = ITEM_SHARP_BEAK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_RUN_AWAY, ABILITY_EARLY_BIRD, ABILITY_TANGLED_FEET }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Dodrio"), @@ -6518,19 +8646,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 268, .trainerOffset = 0, - FRONT_PIC(Dodrio, 64, 64), - FRONT_PIC_FEMALE(Dodrio, 64, 64), + .frontPic = gMonFrontPic_Dodrio, + .frontPicFemale = gMonFrontPic_DodrioF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Dodrio, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Dodrio, 64, 64), - BACK_PIC_FEMALE(Dodrio, 64, 64), + .backPic = gMonBackPic_Dodrio, + .backPicFemale = gMonBackPic_DodrioF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Dodrio), - ICON(Dodrio, 2), - .footprint = gMonFootprint_Dodrio, - LEARNSETS(Dodrio), + .palette = gMonPalette_Dodrio, + .shinyPalette = gMonShinyPalette_Dodrio, + .iconSprite = gMonIcon_Dodrio, + .iconPalIndex = 2, + FOOTPRINT(Dodrio) + .levelUpLearnset = sDodrioLevelUpLearnset, + .teachableLearnset = sDodrioTeachableLearnset, }, #endif //P_FAMILY_DODUO @@ -6543,15 +8678,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 45, .baseSpAttack = 45, .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 190, - .expYield = 65, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 100, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_HYDRATION, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Seel"), @@ -6569,17 +8704,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Seel, 56, 48), + .frontPic = gMonFrontPic_Seel, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Seel, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Seel, 64, 40), + .backPic = gMonBackPic_Seel, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Seel), - ICON(Seel, 0), - .footprint = gMonFootprint_Seel, - LEARNSETS(Seel), + .palette = gMonPalette_Seel, + .shinyPalette = gMonShinyPalette_Seel, + .iconSprite = gMonIcon_Seel, + .iconPalIndex = 0, + FOOTPRINT(Seel) + .levelUpLearnset = sSeelLevelUpLearnset, + .teachableLearnset = sSeelTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_DEWGONG}), }, @@ -6591,15 +8731,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 70, .baseSpDefense = 95, - .types = { TYPE_WATER, TYPE_ICE }, + .types = MON_TYPES(TYPE_WATER, TYPE_ICE), .catchRate = 75, - .expYield = 166, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 176, .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_HYDRATION, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Dewgong"), @@ -6617,74 +8757,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 275, .trainerOffset = 0, - FRONT_PIC(Dewgong, 64, 64), + .frontPic = gMonFrontPic_Dewgong, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Dewgong, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Dewgong, 64, 56), + .backPic = gMonBackPic_Dewgong, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Dewgong), - ICON(Dewgong, 2), - .footprint = gMonFootprint_Dewgong, - LEARNSETS(Dewgong), + .palette = gMonPalette_Dewgong, + .shinyPalette = gMonShinyPalette_Dewgong, + .iconSprite = gMonIcon_Dewgong, + .iconPalIndex = 2, + FOOTPRINT(Dewgong) + .levelUpLearnset = sDewgongLevelUpLearnset, + .teachableLearnset = sDewgongTeachableLearnset, }, #endif //P_FAMILY_SEEL #if P_FAMILY_GRIMER -#define GRIMER_FAMILY_MISC_INFO \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS } - -#define GRIMER_MISC_INFO \ - .baseHP = 80, \ - .baseAttack = 80, \ - .baseDefense = 50, \ - .baseSpeed = 25, \ - .baseSpAttack = 40, \ - .baseSpDefense = 50, \ - .catchRate = 190, \ - .expYield = 65, \ - .evYield_HP = 1, \ - .speciesName = _("Grimer"), \ - .cryId = CRY_GRIMER, \ - .natDexNum = NATIONAL_DEX_GRIMER, \ - .categoryName = _("Sludge"), \ - .footprint = gMonFootprint_Grimer, \ - .formSpeciesIdTable = sGrimerFormSpeciesIdTable,\ - GRIMER_FAMILY_MISC_INFO - -#define MUK_MISC_INFO \ - .baseHP = 105, \ - .baseAttack = 105, \ - .baseDefense = 75, \ - .baseSpeed = 50, \ - .baseSpAttack = 65, \ - .baseSpDefense = 100, \ - .catchRate = 75, \ - .expYield = 175, \ - .evYield_HP = 1, \ - .evYield_Attack = 1, \ - .speciesName = _("Muk"), \ - .cryId = CRY_MUK, \ - .natDexNum = NATIONAL_DEX_MUK, \ - .categoryName = _("Sludge"), \ - .footprint = gMonFootprint_Muk, \ - .formSpeciesIdTable = sMukFormSpeciesIdTable, \ - GRIMER_FAMILY_MISC_INFO - -#define KANTONIAN_GRIMER_FAMILY_INFO \ - .types = { TYPE_POISON, TYPE_POISON }, \ - .abilities = { ABILITY_STENCH, ABILITY_STICKY_HOLD, ABILITY_POISON_TOUCH }, \ - .bodyColor = BODY_COLOR_PURPLE - [SPECIES_GRIMER] = { - KANTONIAN_GRIMER_FAMILY_INFO, - GRIMER_MISC_INFO, + .baseHP = 80, + .baseAttack = 80, + .baseDefense = 50, + .baseSpeed = 25, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_POISON), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 90, + .evYield_HP = 1, + .itemRare = ITEM_BLACK_SLUDGE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_STENCH, ABILITY_STICKY_HOLD, ABILITY_POISON_TOUCH }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Grimer"), + .cryId = CRY_GRIMER, + .natDexNum = NATIONAL_DEX_GRIMER, + .categoryName = _("Sludge"), .height = 9, .weight = 300, .description = COMPOUND_STRING( @@ -6696,23 +8812,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Grimer, 48, 48), + .frontPic = gMonFrontPic_Grimer, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Grimer, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Grimer, 64, 40), + .backPic = gMonBackPic_Grimer, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Grimer), - ICON(Grimer, 2), - LEARNSETS(Grimer), + .palette = gMonPalette_Grimer, + .shinyPalette = gMonShinyPalette_Grimer, + .iconSprite = gMonIcon_Grimer, + .iconPalIndex = 2, + FOOTPRINT(Grimer) + .levelUpLearnset = sGrimerLevelUpLearnset, + .teachableLearnset = sGrimerTeachableLearnset, + .formSpeciesIdTable = sGrimerFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_MUK}), }, [SPECIES_MUK] = { - KANTONIAN_GRIMER_FAMILY_INFO, - MUK_MISC_INFO, + .baseHP = 105, + .baseAttack = 105, + .baseDefense = 75, + .baseSpeed = 50, + .baseSpAttack = 65, + .baseSpDefense = 100, + .types = MON_TYPES(TYPE_POISON), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 157, + .evYield_HP = 1, + .evYield_Attack = 1, + .itemRare = ITEM_BLACK_SLUDGE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_STENCH, ABILITY_STICKY_HOLD, ABILITY_POISON_TOUCH }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Muk"), + .cryId = CRY_MUK, + .natDexNum = NATIONAL_DEX_MUK, + .categoryName = _("Sludge"), .height = 12, .weight = 300, .description = COMPOUND_STRING( @@ -6724,30 +8868,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Muk, 64, 56), + .frontPic = gMonFrontPic_Muk, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Muk, .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, .frontAnimDelay = 45, - BACK_PIC(Muk, 64, 56), + .backPic = gMonBackPic_Muk, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Muk), - ICON(Muk, 2), - LEARNSETS(Muk), + .palette = gMonPalette_Muk, + .shinyPalette = gMonShinyPalette_Muk, + .iconSprite = gMonIcon_Muk, + .iconPalIndex = 2, + FOOTPRINT(Muk) + .levelUpLearnset = sMukLevelUpLearnset, + .teachableLearnset = sMukTeachableLearnset, + .formSpeciesIdTable = sMukFormSpeciesIdTable, }, #if P_ALOLAN_FORMS -#define ALOLAN_GRIMER_FAMILY_INFO \ - .types = { TYPE_POISON, TYPE_DARK }, \ - .abilities = { ABILITY_POISON_TOUCH, ABILITY_GLUTTONY, ABILITY_POWER_OF_ALCHEMY }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .isAlolanForm = TRUE - [SPECIES_GRIMER_ALOLAN] = { - ALOLAN_GRIMER_FAMILY_INFO, - GRIMER_MISC_INFO, + .baseHP = 80, + .baseAttack = 80, + .baseDefense = 50, + .baseSpeed = 25, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_POISON, TYPE_DARK), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 90, + .evYield_HP = 1, + .itemRare = ITEM_BLACK_SLUDGE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_POISON_TOUCH, ABILITY_GLUTTONY, ABILITY_POWER_OF_ALCHEMY }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Grimer"), + .cryId = CRY_GRIMER, + .natDexNum = NATIONAL_DEX_GRIMER, + .categoryName = _("Sludge"), .height = 7, .weight = 420, .description = COMPOUND_STRING( @@ -6759,24 +8924,53 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GrimerAlolan, 56, 48), + .frontPic = gMonFrontPic_GrimerAlolan, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_GrimerAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GrimerAlolan, 64, 40), + .backPic = gMonBackPic_GrimerAlolan, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GrimerAlolan), - ICON(GrimerAlolan, 1), - LEARNSETS(GrimerAlolan), + .palette = gMonPalette_GrimerAlolan, + .shinyPalette = gMonShinyPalette_GrimerAlolan, + .iconSprite = gMonIcon_GrimerAlolan, + .iconPalIndex = 1, + FOOTPRINT(Grimer) + .isAlolanForm = TRUE, + .levelUpLearnset = sGrimerAlolanLevelUpLearnset, + .teachableLearnset = sGrimerAlolanTeachableLearnset, + .formSpeciesIdTable = sGrimerFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_MUK_ALOLAN}), }, [SPECIES_MUK_ALOLAN] = { - MUK_MISC_INFO, - ALOLAN_GRIMER_FAMILY_INFO, + .baseHP = 105, + .baseAttack = 105, + .baseDefense = 75, + .baseSpeed = 50, + .baseSpAttack = 65, + .baseSpDefense = 100, + .types = MON_TYPES(TYPE_POISON, TYPE_DARK), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 157, + .evYield_HP = 1, + .evYield_Attack = 1, + .itemRare = ITEM_BLACK_SLUDGE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_POISON_TOUCH, ABILITY_GLUTTONY, ABILITY_POWER_OF_ALCHEMY }, + .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, + .speciesName = _("Muk"), + .cryId = CRY_MUK, + .natDexNum = NATIONAL_DEX_MUK, + .categoryName = _("Sludge"), .height = 10, .weight = 520, .description = COMPOUND_STRING( @@ -6788,16 +8982,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(MukAlolan, 64, 64), + .frontPic = gMonFrontPic_MukAlolan, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_MukAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MukAlolan, 64, 56), + .backPic = gMonBackPic_MukAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MukAlolan), - ICON(MukAlolan, 0), - LEARNSETS(MukAlolan), + .palette = gMonPalette_MukAlolan, + .shinyPalette = gMonShinyPalette_MukAlolan, + .iconSprite = gMonIcon_MukAlolan, + .iconPalIndex = 0, + FOOTPRINT(Muk) + .isAlolanForm = TRUE, + .levelUpLearnset = sMukAlolanLevelUpLearnset, + .teachableLearnset = sMukAlolanTeachableLearnset, + .formSpeciesIdTable = sMukFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_GRIMER @@ -6811,9 +9013,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 40, .baseSpAttack = 45, .baseSpDefense = 25, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 190, - .expYield = 61, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 61 : 97, .evYield_Defense = 1, .itemCommon = ITEM_PEARL, .itemRare = ITEM_BIG_PEARL, @@ -6821,7 +9023,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_SHELL_ARMOR, ABILITY_SKILL_LINK, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Shellder"), @@ -6839,18 +9041,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shellder, 40, 40), + .frontPic = gMonFrontPic_Shellder, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Shellder, .frontAnimId = ANIM_TWIST, .frontAnimDelay = 20, - BACK_PIC(Shellder, 48, 24), + .backPic = gMonBackPic_Shellder, + .backPicSize = MON_COORDS_SIZE(48, 24), .backPicYOffset = 21, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Shellder), - ICON(Shellder, 2), - .footprint = gMonFootprint_Shellder, - LEARNSETS(Shellder), + .palette = gMonPalette_Shellder, + .shinyPalette = gMonShinyPalette_Shellder, + .iconSprite = gMonIcon_Shellder, + .iconPalIndex = 2, + FOOTPRINT(Shellder) + .levelUpLearnset = sShellderLevelUpLearnset, + .teachableLearnset = sShellderTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_CLOYSTER}), }, @@ -6862,9 +9069,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 85, .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_ICE }, + .types = MON_TYPES(TYPE_WATER, TYPE_ICE), .catchRate = 60, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 203, .evYield_Defense = 2, .itemCommon = ITEM_PEARL, .itemRare = ITEM_BIG_PEARL, @@ -6872,7 +9079,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_SHELL_ARMOR, ABILITY_SKILL_LINK, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Cloyster"), @@ -6890,17 +9097,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 269, .trainerOffset = 1, - FRONT_PIC(Cloyster, 64, 64), + .frontPic = gMonFrontPic_Cloyster, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Cloyster, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Cloyster, 64, 56), + .backPic = gMonBackPic_Cloyster, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Cloyster), - ICON(Cloyster, 2), - .footprint = gMonFootprint_Cloyster, - LEARNSETS(Cloyster), + .palette = gMonPalette_Cloyster, + .shinyPalette = gMonShinyPalette_Cloyster, + .iconSprite = gMonIcon_Cloyster, + .iconPalIndex = 2, + FOOTPRINT(Cloyster) + .levelUpLearnset = sCloysterLevelUpLearnset, + .teachableLearnset = sCloysterTeachableLearnset, }, #endif //P_FAMILY_SHELLDER @@ -6913,16 +9125,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 80, .baseSpAttack = 100, .baseSpDefense = 35, - .types = { TYPE_GHOST, TYPE_POISON }, + .types = MON_TYPES(TYPE_GHOST, TYPE_POISON), .catchRate = 190, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 95, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Gastly"), .cryId = CRY_GASTLY, @@ -6939,18 +9151,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gastly, 64, 48), + .frontPic = gMonFrontPic_Gastly, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Gastly, .frontAnimId = ANIM_SHRINK_GROW, .enemyMonElevation = 13, - BACK_PIC(Gastly, 64, 56), + .backPic = gMonBackPic_Gastly, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Gastly), - ICON(Gastly, 2), - .footprint = gMonFootprint_Gastly, - LEARNSETS(Gastly), + .palette = gMonPalette_Gastly, + .shinyPalette = gMonShinyPalette_Gastly, + .iconSprite = gMonIcon_Gastly, + .iconPalIndex = 2, + FOOTPRINT(Gastly) + .levelUpLearnset = sGastlyLevelUpLearnset, + .teachableLearnset = sGastlyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_HAUNTER}), }, @@ -6962,16 +9179,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 95, .baseSpAttack = 115, .baseSpDefense = 55, - .types = { TYPE_GHOST, TYPE_POISON }, + .types = MON_TYPES(TYPE_GHOST, TYPE_POISON), .catchRate = 90, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 126, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Haunter"), .cryId = CRY_HAUNTER, @@ -6988,20 +9205,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 293, .trainerOffset = 2, - FRONT_PIC(Haunter, 64, 48), + .frontPic = gMonFrontPic_Haunter, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Haunter, .frontAnimId = ANIM_FLICKER_INCREASING, .frontAnimDelay = 23, .enemyMonElevation = 14, - BACK_PIC(Haunter, 64, 56), + .backPic = gMonBackPic_Haunter, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Haunter), - ICON(Haunter, 2), - .footprint = gMonFootprint_Haunter, - LEARNSETS(Haunter), - .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GENGAR}), + .palette = gMonPalette_Haunter, + .shinyPalette = gMonShinyPalette_Haunter, + .iconSprite = gMonIcon_Haunter, + .iconPalIndex = 2, + FOOTPRINT(Haunter) + .levelUpLearnset = sHaunterLevelUpLearnset, + .teachableLearnset = sHaunterTeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GENGAR}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GENGAR}), }, #if P_UPDATED_ABILITIES >= GEN_7 @@ -7010,35 +9233,35 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = #define GENGAR_ABILITIES {ABILITY_LEVITATE, ABILITY_NONE} #endif -#define GENGAR_MISC_INFO \ - .types = { TYPE_GHOST, TYPE_POISON }, \ - .catchRate = 45, \ - .evYield_SpAttack = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Gengar"), \ - .natDexNum = NATIONAL_DEX_GENGAR, \ - .categoryName = _("Shadow"), \ - .footprint = gMonFootprint_Gengar, \ - LEARNSETS(Gengar), \ - .formSpeciesIdTable = sGengarFormSpeciesIdTable, \ - .formChangeTable = sGengarFormChangeTable - [SPECIES_GENGAR] = { - GENGAR_MISC_INFO, .baseHP = 60, .baseAttack = 65, .baseDefense = 60, .baseSpeed = 110, .baseSpAttack = 130, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_GHOST, TYPE_POISON), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 250, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 225, + #else + .expYield = 190, + #endif + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = GENGAR_ABILITIES, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Gengar"), + .cryId = CRY_GENGAR, + .natDexNum = NATIONAL_DEX_GENGAR, + .categoryName = _("Shadow"), .height = 15, .weight = 405, .description = COMPOUND_STRING( @@ -7050,30 +9273,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 302, .trainerOffset = 2, - FRONT_PIC(Gengar, 56, 56), + .frontPic = gMonFrontPic_Gengar, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Gengar, .frontAnimId = ANIM_GROW_IN_STAGES, - BACK_PIC(Gengar, 64, 48), + .backPic = gMonBackPic_Gengar, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Gengar), - ICON(Gengar, 2), + .palette = gMonPalette_Gengar, + .shinyPalette = gMonShinyPalette_Gengar, + .iconSprite = gMonIcon_Gengar, + .iconPalIndex = 2, + FOOTPRINT(Gengar) + .levelUpLearnset = sGengarLevelUpLearnset, + .teachableLearnset = sGengarTeachableLearnset, + .formSpeciesIdTable = sGengarFormSpeciesIdTable, + .formChangeTable = sGengarFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_GENGAR_MEGA] = { - GENGAR_MISC_INFO, .baseHP = 60, .baseAttack = 65, .baseDefense = 80, .baseSpeed = 130, .baseSpAttack = 170, .baseSpDefense = 95, - .expYield = 270, + .types = MON_TYPES(TYPE_GHOST, TYPE_POISON), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_SHADOW_TAG, ABILITY_SHADOW_TAG, ABILITY_SHADOW_TAG }, - .isMegaEvolution = TRUE, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Gengar"), + .cryId = CRY_GENGAR_MEGA, + .natDexNum = NATIONAL_DEX_GENGAR, + .categoryName = _("Shadow"), .height = 14, .weight = 405, .description = COMPOUND_STRING( @@ -7085,31 +9328,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 302, .trainerOffset = 2, - FRONT_PIC(GengarMega, 64, 64), + .frontPic = gMonFrontPic_GengarMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, .frontAnimFrames = sAnims_GengarMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GengarMega, 64, 64), + .backPic = gMonBackPic_GengarMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(GengarMega), - ICON(GengarMega, 2), + .palette = gMonPalette_GengarMega, + .shinyPalette = gMonShinyPalette_GengarMega, + .iconSprite = gMonIcon_GengarMega, + .iconPalIndex = 2, + FOOTPRINT(Gengar) + .isMegaEvolution = TRUE, + .levelUpLearnset = sGengarLevelUpLearnset, + .teachableLearnset = sGengarTeachableLearnset, + .formSpeciesIdTable = sGengarFormSpeciesIdTable, + .formChangeTable = sGengarFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS [SPECIES_GENGAR_GIGANTAMAX] = { - GENGAR_MISC_INFO, .baseHP = 60, .baseAttack = 65, .baseDefense = 60, .baseSpeed = 110, .baseSpAttack = 130, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_GHOST, TYPE_POISON), + .catchRate = 45, .expYield = 225, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = GENGAR_ABILITIES, - .isGigantamax = TRUE, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Gengar"), + .cryId = CRY_GENGAR, + .natDexNum = NATIONAL_DEX_GENGAR, + .categoryName = _("Shadow"), .height = 200, .weight = 0, .description = COMPOUND_STRING( @@ -7121,15 +9385,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 302, .trainerOffset = 2, - FRONT_PIC(GengarGigantamax, 64, 64), + .frontPic = gMonFrontPic_GengarGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, .frontAnimFrames = sAnims_GengarGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GengarGigantamax, 64, 64), + .backPic = gMonBackPic_GengarGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GengarGigantamax), - ICON(GengarGigantamax, 2), + .palette = gMonPalette_GengarGigantamax, + .shinyPalette = gMonShinyPalette_GengarGigantamax, + .iconSprite = gMonIcon_GengarGigantamax, + .iconPalIndex = 2, + FOOTPRINT(Gengar) + .isGigantamax = TRUE, + .levelUpLearnset = sGengarLevelUpLearnset, + .teachableLearnset = sGengarTeachableLearnset, + .formSpeciesIdTable = sGengarFormSpeciesIdTable, + .formChangeTable = sGengarFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_GASTLY @@ -7143,15 +9417,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 30, .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_GROUND }, + .types = MON_TYPES(TYPE_ROCK, TYPE_GROUND), .catchRate = 45, - .expYield = 77, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 77 : 108, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Onix"), @@ -7169,53 +9443,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 515, .trainerOffset = 14, - FRONT_PIC(Onix, 64, 64), + .frontPic = gMonFrontPic_Onix, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Onix, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Onix, 64, 64), + .backPic = gMonBackPic_Onix, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Onix), - ICON(Onix, 2), - .footprint = gMonFootprint_Onix, - LEARNSETS(Onix), + .palette = gMonPalette_Onix, + .shinyPalette = gMonShinyPalette_Onix, + .iconSprite = gMonIcon_Onix, + .iconPalIndex = 2, + FOOTPRINT(Onix) + .levelUpLearnset = sOnixLevelUpLearnset, + .teachableLearnset = sOnixTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX}, {EVO_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX}), }, #if P_GEN_2_CROSS_EVOS -#define STEELIX_MISC_INFO \ - .types = { TYPE_STEEL, TYPE_GROUND }, \ - .catchRate = 25, \ - .evYield_Defense = 2, \ - .itemRare = ITEM_METAL_COAT, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Steelix"), \ - .natDexNum = NATIONAL_DEX_STEELIX, \ - .categoryName = _("Iron Snake"), \ - .footprint = gMonFootprint_Steelix, \ - LEARNSETS(Steelix), \ - .formSpeciesIdTable = sSteelixFormSpeciesIdTable, \ - .formChangeTable = sSteelixFormChangeTable - [SPECIES_STEELIX] = { - STEELIX_MISC_INFO, .baseHP = 75, .baseAttack = 85, .baseDefense = 200, .baseSpeed = 30, .baseSpAttack = 55, .baseSpDefense = 65, - .expYield = 179, + .types = MON_TYPES(TYPE_STEEL, TYPE_GROUND), + .catchRate = 25, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 179 : 196, + .evYield_Defense = 2, + .itemRare = ITEM_METAL_COAT, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Steelix"), .cryId = CRY_STEELIX, + .natDexNum = NATIONAL_DEX_STEELIX, + .categoryName = _("Iron Snake"), .height = 92, .weight = 4000, .description = COMPOUND_STRING( @@ -7227,33 +9499,56 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 516, .trainerOffset = 13, - FRONT_PIC(Steelix, 64, 64), - FRONT_PIC_FEMALE(Steelix, 64, 64), + .frontPic = gMonFrontPic_Steelix, + .frontPicFemale = gMonFrontPic_SteelixF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Steelix, .frontAnimId = ANIM_V_SHAKE, .frontAnimDelay = 45, - BACK_PIC(Steelix, 64, 64), - BACK_PIC_FEMALE(Steelix, 64, 64), + .backPic = gMonBackPic_Steelix, + .backPicFemale = gMonBackPic_SteelixF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Steelix), - ICON(Steelix, 0), + .palette = gMonPalette_Steelix, + .shinyPalette = gMonShinyPalette_Steelix, + .iconSprite = gMonIcon_Steelix, + .iconPalIndex = 0, + FOOTPRINT(Steelix) + .levelUpLearnset = sSteelixLevelUpLearnset, + .teachableLearnset = sSteelixTeachableLearnset, + .formSpeciesIdTable = sSteelixFormSpeciesIdTable, + .formChangeTable = sSteelixFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_STEELIX_MEGA] = { - STEELIX_MISC_INFO, .baseHP = 75, .baseAttack = 125, .baseDefense = 230, .baseSpeed = 30, .baseSpAttack = 55, .baseSpDefense = 95, + .types = MON_TYPES(TYPE_STEEL, TYPE_GROUND), + .catchRate = 25, .expYield = 214, + .evYield_Defense = 2, + .itemRare = ITEM_METAL_COAT, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_SAND_FORCE, ABILITY_SAND_FORCE, ABILITY_SAND_FORCE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Steelix"), .cryId = CRY_STEELIX_MEGA, + .natDexNum = NATIONAL_DEX_STEELIX, + .categoryName = _("Iron Snake"), .height = 105, .weight = 7400, .description = COMPOUND_STRING( @@ -7265,16 +9560,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 516, .trainerOffset = 13, - FRONT_PIC(SteelixMega, 64, 64), + .frontPic = gMonFrontPic_SteelixMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_SteelixMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SteelixMega, 64, 64), + .backPic = gMonBackPic_SteelixMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(SteelixMega), - ICON(SteelixMega, 0), + .palette = gMonPalette_SteelixMega, + .shinyPalette = gMonShinyPalette_SteelixMega, + .iconSprite = gMonIcon_SteelixMega, + .iconPalIndex = 0, + FOOTPRINT(Steelix) .isMegaEvolution = TRUE, + .levelUpLearnset = sSteelixLevelUpLearnset, + .teachableLearnset = sSteelixTeachableLearnset, + .formSpeciesIdTable = sSteelixFormSpeciesIdTable, + .formChangeTable = sSteelixFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_GEN_2_CROSS_EVOS @@ -7289,15 +9593,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 42, .baseSpAttack = 43, .baseSpDefense = 90, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 190, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 102, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_INSOMNIA, ABILITY_FOREWARN, ABILITY_INNER_FOCUS }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Drowzee"), @@ -7315,18 +9619,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Drowzee, 48, 56), + .frontPic = gMonFrontPic_Drowzee, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Drowzee, .frontAnimId = ANIM_V_STRETCH, .frontAnimDelay = 48, - BACK_PIC(Drowzee, 56, 48), + .backPic = gMonBackPic_Drowzee, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Drowzee), - ICON(Drowzee, 2), - .footprint = gMonFootprint_Drowzee, - LEARNSETS(Drowzee), + .palette = gMonPalette_Drowzee, + .shinyPalette = gMonShinyPalette_Drowzee, + .iconSprite = gMonIcon_Drowzee, + .iconPalIndex = 2, + FOOTPRINT(Drowzee) + .levelUpLearnset = sDrowzeeLevelUpLearnset, + .teachableLearnset = sDrowzeeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_HYPNO}), }, @@ -7338,15 +9647,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 67, .baseSpAttack = 73, .baseSpDefense = 115, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 75, - .expYield = 169, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 169 : 165, .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_INSOMNIA, ABILITY_FOREWARN, ABILITY_INNER_FOCUS }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Hypno"), @@ -7364,20 +9673,27 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Hypno, 64, 64), - FRONT_PIC_FEMALE(Hypno, 64, 64), + .frontPic = gMonFrontPic_Hypno, + .frontPicFemale = gMonFrontPic_HypnoF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Hypno, .frontAnimId = ANIM_GROW_VIBRATE, .frontAnimDelay = 40, - BACK_PIC(Hypno, 64, 56), - BACK_PIC_FEMALE(Hypno, 64, 56), + .backPic = gMonBackPic_Hypno, + .backPicFemale = gMonBackPic_HypnoF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Hypno), - ICON(Hypno, 2), - .footprint = gMonFootprint_Hypno, - LEARNSETS(Hypno), + .palette = gMonPalette_Hypno, + .shinyPalette = gMonShinyPalette_Hypno, + .iconSprite = gMonIcon_Hypno, + .iconPalIndex = 2, + FOOTPRINT(Hypno) + .levelUpLearnset = sHypnoLevelUpLearnset, + .teachableLearnset = sHypnoTeachableLearnset, }, #endif //P_FAMILY_DROWZEE @@ -7390,15 +9706,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 25, .baseSpDefense = 25, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 225, - .expYield = 65, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 115, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Krabby"), @@ -7416,51 +9732,49 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Krabby, 64, 48), + .frontPic = gMonFrontPic_Krabby, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Krabby, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Krabby, 56, 40), + .backPic = gMonBackPic_Krabby, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Krabby), - ICON(Krabby, 0), - .footprint = gMonFootprint_Krabby, - LEARNSETS(Krabby), + .palette = gMonPalette_Krabby, + .shinyPalette = gMonShinyPalette_Krabby, + .iconSprite = gMonIcon_Krabby, + .iconPalIndex = 0, + FOOTPRINT(Krabby) + .levelUpLearnset = sKrabbyLevelUpLearnset, + .teachableLearnset = sKrabbyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_KINGLER}), }, -#define KINGLER_MISC_INFO \ - .baseHP = 55, \ - .baseAttack = 130, \ - .baseDefense = 115, \ - .baseSpeed = 75, \ - .baseSpAttack = 50, \ - .baseSpDefense = 50, \ - .types = { TYPE_WATER, TYPE_WATER }, \ - .catchRate = 60, \ - .expYield = 166, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, \ - .abilities = { ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_SHEER_FORCE },\ - .bodyColor = BODY_COLOR_RED, \ - .noFlip = TRUE, \ - .speciesName = _("Kingler"), \ - .cryId = CRY_KINGLER, \ - .natDexNum = NATIONAL_DEX_KINGLER, \ - .categoryName = _("Pincer"), \ - .footprint = gMonFootprint_Kingler, \ - LEARNSETS(Kingler), \ - .formSpeciesIdTable = sKinglerFormSpeciesIdTable, \ - .formChangeTable = sKinglerFormChangeTable - [SPECIES_KINGLER] = { - KINGLER_MISC_INFO, + .baseHP = 55, + .baseAttack = 130, + .baseDefense = 115, + .baseSpeed = 75, + .baseSpAttack = 50, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 206, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), + .abilities = { ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_RED, + .noFlip = TRUE, + .speciesName = _("Kingler"), + .cryId = CRY_KINGLER, + .natDexNum = NATIONAL_DEX_KINGLER, + .categoryName = _("Pincer"), .height = 13, .weight = 600, .description = COMPOUND_STRING( @@ -7472,22 +9786,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kingler, 64, 48), + .frontPic = gMonFrontPic_Kingler, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Kingler, .frontAnimId = ANIM_V_SHAKE_TWICE, .frontAnimDelay = 4, - BACK_PIC(Kingler, 64, 56), + .backPic = gMonBackPic_Kingler, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Kingler), - ICON(Kingler, 0), + .palette = gMonPalette_Kingler, + .shinyPalette = gMonShinyPalette_Kingler, + .iconSprite = gMonIcon_Kingler, + .iconPalIndex = 0, + FOOTPRINT(Kingler) + .levelUpLearnset = sKinglerLevelUpLearnset, + .teachableLearnset = sKinglerTeachableLearnset, + .formSpeciesIdTable = sKinglerFormSpeciesIdTable, + .formChangeTable = sKinglerFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_KINGLER_GIGANTAMAX] = { - KINGLER_MISC_INFO, + .baseHP = 55, + .baseAttack = 130, + .baseDefense = 115, + .baseSpeed = 75, + .baseSpAttack = 50, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 206, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), + .abilities = { ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_RED, + .noFlip = TRUE, + .speciesName = _("Kingler"), + .cryId = CRY_KINGLER, + .natDexNum = NATIONAL_DEX_KINGLER, + .categoryName = _("Pincer"), .height = 190, .weight = 0, .description = COMPOUND_STRING( @@ -7499,169 +9843,253 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(KinglerGigantamax, 64, 64), + .frontPic = gMonFrontPic_KinglerGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_KinglerGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(KinglerGigantamax, 64, 64), + .backPic = gMonBackPic_KinglerGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(KinglerGigantamax), - ICON(KinglerGigantamax, 0), + .palette = gMonPalette_KinglerGigantamax, + .shinyPalette = gMonShinyPalette_KinglerGigantamax, + .iconSprite = gMonIcon_KinglerGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Kingler) .isGigantamax = TRUE, + .levelUpLearnset = sKinglerLevelUpLearnset, + .teachableLearnset = sKinglerTeachableLearnset, + .formSpeciesIdTable = sKinglerFormSpeciesIdTable, + .formChangeTable = sKinglerFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_KRABBY #if P_FAMILY_VOLTORB -#define VOLTORB_FAMILY_MISC_INFO \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, \ - .abilities = { ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH }, \ - .bodyColor = BODY_COLOR_RED - -#define VOLTORB_MISC_INFO \ - .baseHP = 40, \ - .baseAttack = 30, \ - .baseDefense = 50, \ - .baseSpeed = 100, \ - .baseSpAttack = 55, \ - .baseSpDefense = 55, \ - .catchRate = 190, \ - .expYield = 66, \ - .evYield_Speed = 1, \ - .speciesName = _("Voltorb"), \ - .cryId = CRY_VOLTORB, \ - .natDexNum = NATIONAL_DEX_VOLTORB, \ - .height = 5, \ - .pokemonScale = 364, \ - .pokemonOffset = -8, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Voltorb, \ - .formSpeciesIdTable = sVoltorbFormSpeciesIdTable, \ - VOLTORB_FAMILY_MISC_INFO - -#define ELECTRODE_MISC_INFO \ - .baseHP = 60, \ - .baseAttack = 50, \ - .baseDefense = 70, \ - .baseSpAttack = 80, \ - .baseSpDefense = 80, \ - .baseSpeed = P_UPDATED_STATS >= GEN_7 ? 150 : 140, \ - .catchRate = 60, \ - .expYield = 172, \ - .evYield_Speed = 2, \ - .speciesName = _("Electrode"), \ - .cryId = CRY_ELECTRODE, \ - .natDexNum = NATIONAL_DEX_ELECTRODE, \ - .height = 12, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Electrode, \ - .formSpeciesIdTable = sElectrodeFormSpeciesIdTable, \ - VOLTORB_FAMILY_MISC_INFO +#if P_UPDATED_EXP_YIELDS >= GEN_7 + #define ELECTRODE_EXP_YIELD 172 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define ELECTRODE_EXP_YIELD 168 +#else + #define ELECTRODE_EXP_YIELD 150 +#endif [SPECIES_VOLTORB] = { - VOLTORB_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .baseHP = 40, + .baseAttack = 30, + .baseDefense = 50, + .baseSpeed = 100, + .baseSpAttack = 55, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 103, + .evYield_Speed = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Voltorb"), + .cryId = CRY_VOLTORB, + .natDexNum = NATIONAL_DEX_VOLTORB, .categoryName = _("Ball"), + .height = 5, .weight = 104, .description = COMPOUND_STRING( "It bears an uncanny and unexplained\n" "resemblance to a Poké Ball. Because it\n" "explodes at the slightest shock, even\n" "veteran Trainers treat it with caution."), - FRONT_PIC(Voltorb, 32, 40), + .pokemonScale = 364, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Voltorb, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Voltorb, .frontAnimId = ANIM_SWING_CONCAVE, - BACK_PIC(Voltorb, 48, 40), + .backPic = gMonBackPic_Voltorb, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Voltorb), - ICON(Voltorb, 0), - LEARNSETS(Voltorb), + .palette = gMonPalette_Voltorb, + .shinyPalette = gMonShinyPalette_Voltorb, + .iconSprite = gMonIcon_Voltorb, + .iconPalIndex = 0, + FOOTPRINT(Voltorb) + .levelUpLearnset = sVoltorbLevelUpLearnset, + .teachableLearnset = sVoltorbTeachableLearnset, + .formSpeciesIdTable = sVoltorbFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ELECTRODE}), }, [SPECIES_ELECTRODE] = { - ELECTRODE_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .baseHP = 60, + .baseAttack = 50, + .baseDefense = 70, + .baseSpeed = P_UPDATED_STATS >= GEN_7 ? 150 : 140, + .baseSpAttack = 80, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 60, + .expYield = ELECTRODE_EXP_YIELD, + .evYield_Speed = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Electrode"), + .cryId = CRY_ELECTRODE, + .natDexNum = NATIONAL_DEX_ELECTRODE, .categoryName = _("Ball"), + .height = 12, .weight = 666, .description = COMPOUND_STRING( "They appear in great numbers at electric\n" "power plants. Because they feed on\n" "electricity, they cause massive and\n" "chaotic blackouts in nearby cities."), - FRONT_PIC(Electrode, 48, 48), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Electrode, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Electrode, .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_SLOW, - BACK_PIC(Electrode, 64, 40), + .backPic = gMonBackPic_Electrode, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Electrode), - ICON(Electrode, 0), - LEARNSETS(Electrode), + .palette = gMonPalette_Electrode, + .shinyPalette = gMonShinyPalette_Electrode, + .iconSprite = gMonIcon_Electrode, + .iconPalIndex = 0, + FOOTPRINT(Electrode) + .levelUpLearnset = sElectrodeLevelUpLearnset, + .teachableLearnset = sElectrodeTeachableLearnset, + .formSpeciesIdTable = sElectrodeFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_VOLTORB_HISUIAN] = { - VOLTORB_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_GRASS }, + .baseHP = 40, + .baseAttack = 30, + .baseDefense = 50, + .baseSpeed = 100, + .baseSpAttack = 55, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_GRASS), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 103, + .evYield_Speed = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Voltorb"), + .cryId = CRY_VOLTORB, + .natDexNum = NATIONAL_DEX_VOLTORB, .categoryName = _("Sphere"), + .height = 5, .weight = 130, .description = COMPOUND_STRING( "It esembles an ancient Poké Ball design.\n" "When excited, it discharges the electric\n" "current it has stored in its belly, then\n" "lets out a great, uproarious laugh."), - FRONT_PIC(VoltorbHisuian, 32, 32), + .pokemonScale = 364, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_VoltorbHisuian, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_VoltorbHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(VoltorbHisuian, 48, 32), + .backPic = gMonBackPic_VoltorbHisuian, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(VoltorbHisuian), - ICON(VoltorbHisuian, 0), - LEARNSETS(VoltorbHisuian), + .palette = gMonPalette_VoltorbHisuian, + .shinyPalette = gMonShinyPalette_VoltorbHisuian, + .iconSprite = gMonIcon_VoltorbHisuian, + .iconPalIndex = 0, + FOOTPRINT(Voltorb) .isHisuianForm = TRUE, + .levelUpLearnset = sVoltorbHisuianLevelUpLearnset, + .teachableLearnset = sVoltorbHisuianTeachableLearnset, + .formSpeciesIdTable = sVoltorbFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_ELECTRODE_HISUIAN}), }, [SPECIES_ELECTRODE_HISUIAN] = { - ELECTRODE_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_GRASS }, + .baseHP = 60, + .baseAttack = 50, + .baseDefense = 70, + .baseSpeed = P_UPDATED_STATS >= GEN_7 ? 150 : 140, + .baseSpAttack = 80, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_GRASS), + .catchRate = 60, + .expYield = ELECTRODE_EXP_YIELD, + .evYield_Speed = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Electrode"), + .cryId = CRY_ELECTRODE, + .natDexNum = NATIONAL_DEX_ELECTRODE, .categoryName = _("Sphere"), + .height = 12, .weight = 710, .description = COMPOUND_STRING( "The tissue on the surface of its body is\n" "similar in composition to an Apricorn.\n" "When irritated, it lets loose an electric\n" "current equal to 20 lightning bolts."), - FRONT_PIC(ElectrodeHisuian, 48, 48), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ElectrodeHisuian, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_ElectrodeHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ElectrodeHisuian, 64, 40), + .backPic = gMonBackPic_ElectrodeHisuian, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ElectrodeHisuian), - ICON(ElectrodeHisuian, 1), - LEARNSETS(ElectrodeHisuian), + .palette = gMonPalette_ElectrodeHisuian, + .shinyPalette = gMonShinyPalette_ElectrodeHisuian, + .iconSprite = gMonIcon_ElectrodeHisuian, + .iconPalIndex = 1, + FOOTPRINT(Electrode) .isHisuianForm = TRUE, + .levelUpLearnset = sElectrodeHisuianLevelUpLearnset, + .teachableLearnset = sElectrodeHisuianTeachableLearnset, + .formSpeciesIdTable = sElectrodeFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_VOLTORB @@ -7675,15 +10103,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 40, .baseSpAttack = 60, .baseSpDefense = 45, - .types = { TYPE_GRASS, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_GRASS, TYPE_PSYCHIC), .catchRate = 90, - .expYield = 65, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 98, .evYield_Defense = 1, + .itemRare = ITEM_PSYCHIC_SEED, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HARVEST }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Exeggcute"), @@ -7701,51 +10130,59 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Exeggcute, 56, 40), + .frontPic = gMonFrontPic_Exeggcute, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Exeggcute, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Exeggcute, 64, 32), + .backPic = gMonBackPic_Exeggcute, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 18, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Exeggcute), - ICON(Exeggcute, 0), - .footprint = gMonFootprint_Exeggcute, - LEARNSETS(Exeggcute), + .palette = gMonPalette_Exeggcute, + .shinyPalette = gMonShinyPalette_Exeggcute, + .iconSprite = gMonIcon_Exeggcute, + .iconPalIndex = 0, + FOOTPRINT(Exeggcute) + .levelUpLearnset = sExeggcuteLevelUpLearnset, + .teachableLearnset = sExeggcuteTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_EXEGGUTOR}, {EVO_NONE, 0, SPECIES_EXEGGUTOR_ALOLAN}), }, -#define EXEGGUTOR_MISC_INFO \ - .catchRate = 45, \ - .expYield = 186, \ - .evYield_SpAttack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Exeggutor"), \ - .cryId = CRY_EXEGGUTOR, \ - .natDexNum = NATIONAL_DEX_EXEGGUTOR, \ - .categoryName = _("Coconut"), \ - .footprint = gMonFootprint_Exeggutor, \ - .formSpeciesIdTable = sExeggutorFormSpeciesIdTable +#if P_UPDATED_EXP_YIELDS >= GEN_7 + #define EXEGGUTOR_EXP_YIELD 186 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define EXEGGUTOR_EXP_YIELD 182 +#else + #define EXEGGUTOR_EXP_YIELD 212 +#endif #define EXEGGUTOR_SP_DEF (P_UPDATED_STATS >= GEN_7 ? 75 : 65) [SPECIES_EXEGGUTOR] = { - EXEGGUTOR_MISC_INFO, .baseHP = 95, .baseAttack = 95, .baseDefense = 85, .baseSpeed = 55, .baseSpAttack = 125, .baseSpDefense = EXEGGUTOR_SP_DEF, - .types = { TYPE_GRASS, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_GRASS, TYPE_PSYCHIC), + .catchRate = 45, + .expYield = EXEGGUTOR_EXP_YIELD, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HARVEST }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Exeggutor"), + .cryId = CRY_EXEGGUTOR, + .natDexNum = NATIONAL_DEX_EXEGGUTOR, + .categoryName = _("Coconut"), .height = 20, .weight = 1200, .description = COMPOUND_STRING( @@ -7757,30 +10194,49 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 5, - FRONT_PIC(Exeggutor, 64, 64), + .frontPic = gMonFrontPic_Exeggutor, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Exeggutor, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Exeggutor, 64, 48), + .backPic = gMonBackPic_Exeggutor, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Exeggutor), - ICON(Exeggutor, 1), - LEARNSETS(Exeggutor), + .palette = gMonPalette_Exeggutor, + .shinyPalette = gMonShinyPalette_Exeggutor, + .iconSprite = gMonIcon_Exeggutor, + .iconPalIndex = 1, + FOOTPRINT(Exeggutor) + .levelUpLearnset = sExeggutorLevelUpLearnset, + .teachableLearnset = sExeggutorTeachableLearnset, + .formSpeciesIdTable = sExeggutorFormSpeciesIdTable, }, #if P_ALOLAN_FORMS [SPECIES_EXEGGUTOR_ALOLAN] = { - EXEGGUTOR_MISC_INFO, .baseHP = 95, .baseAttack = 105, .baseDefense = 85, .baseSpeed = 45, .baseSpAttack = 125, .baseSpDefense = EXEGGUTOR_SP_DEF, - .types = { TYPE_GRASS, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), + .catchRate = 45, + .expYield = EXEGGUTOR_EXP_YIELD, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_FRISK, ABILITY_NONE, ABILITY_HARVEST }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Exeggutor"), + .cryId = CRY_EXEGGUTOR, + .natDexNum = NATIONAL_DEX_EXEGGUTOR, + .categoryName = _("Coconut"), .height = 109, .weight = 4156, .description = COMPOUND_STRING( @@ -7792,17 +10248,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 5, - FRONT_PIC(ExeggutorAlolan, 64, 64), + .frontPic = gMonFrontPic_ExeggutorAlolan, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_ExeggutorAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ExeggutorAlolan, 64, 56), + .backPic = gMonBackPic_ExeggutorAlolan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ExeggutorAlolan), - ICON(ExeggutorAlolan, 1), - LEARNSETS(ExeggutorAlolan), + .palette = gMonPalette_ExeggutorAlolan, + .shinyPalette = gMonShinyPalette_ExeggutorAlolan, + .iconSprite = gMonIcon_ExeggutorAlolan, + .iconPalIndex = 1, + FOOTPRINT(Exeggutor) .isAlolanForm = TRUE, + .levelUpLearnset = sExeggutorAlolanLevelUpLearnset, + .teachableLearnset = sExeggutorAlolanTeachableLearnset, + .formSpeciesIdTable = sExeggutorFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_EXEGGCUTE @@ -7816,16 +10279,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 35, .baseSpAttack = 40, .baseSpDefense = 50, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 190, - .expYield = 64, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 64 : 87, .evYield_Defense = 1, .itemRare = ITEM_THICK_CLUB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_ROCK_HEAD, ABILITY_LIGHTNING_ROD, ABILITY_BATTLE_ARMOR }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Cubone"), @@ -7843,98 +10306,184 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cubone, 56, 40), + .frontPic = gMonFrontPic_Cubone, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Cubone, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .frontAnimDelay = 30, - BACK_PIC(Cubone, 56, 48), + .backPic = gMonBackPic_Cubone, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Cubone), - ICON(Cubone, 2), - .footprint = gMonFootprint_Cubone, - LEARNSETS(Cubone), + .palette = gMonPalette_Cubone, + .shinyPalette = gMonShinyPalette_Cubone, + .iconSprite = gMonIcon_Cubone, + .iconPalIndex = 2, + FOOTPRINT(Cubone) + .levelUpLearnset = sCuboneLevelUpLearnset, + .teachableLearnset = sCuboneTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_MAROWAK}, - {EVO_NONE, 0, SPECIES_MAROWAK_ALOLAN}), + {EVO_NONE, 0, SPECIES_MAROWAK_ALOLAN}, + {EVO_NONE, 0, SPECIES_MAROWAK_ALOLAN_TOTEM}), }, -#define MAROWAK_MISC_INFO \ - .baseHP = 60, \ - .baseAttack = 80, \ - .baseDefense = 110, \ - .baseSpeed = 45, \ - .baseSpAttack = 50, \ - .baseSpDefense = 80, \ - .catchRate = 75, \ - .expYield = 149, \ - .evYield_Defense = 2, \ - .itemRare = ITEM_THICK_CLUB, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, \ - .speciesName = _("Marowak"), \ - .cryId = CRY_MAROWAK, \ - .natDexNum = NATIONAL_DEX_MAROWAK, \ - .categoryName = _("Bone Keeper"), \ - .height = 10, \ - .pokemonScale = 293, \ - .pokemonOffset = 12, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Marowak, \ - .formSpeciesIdTable = sMarowakFormSpeciesIdTable - [SPECIES_MAROWAK] = { - MAROWAK_MISC_INFO, - .types = { TYPE_GROUND, TYPE_GROUND }, + .baseHP = 60, + .baseAttack = 80, + .baseDefense = 110, + .baseSpeed = 45, + .baseSpAttack = 50, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GROUND), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 149 : 124, + .evYield_Defense = 2, + .itemRare = ITEM_THICK_CLUB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_ROCK_HEAD, ABILITY_LIGHTNING_ROD, ABILITY_BATTLE_ARMOR }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Marowak"), + .cryId = CRY_MAROWAK, + .natDexNum = NATIONAL_DEX_MAROWAK, + .categoryName = _("Bone Keeper"), + .height = 10, .weight = 450, .description = COMPOUND_STRING( "A Marowak is the evolved form of a Cubone\n" "that has grown tough by overcoming the\n" "grief of losing its mother. Its tempered\n" "and hardened spirit is not easily broken."), - FRONT_PIC(Marowak, 56, 64), + .pokemonScale = 293, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Marowak, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Marowak, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, - BACK_PIC(Marowak, 48, 56), + .backPic = gMonBackPic_Marowak, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Marowak), - ICON(Marowak, 2), - LEARNSETS(Marowak), + .palette = gMonPalette_Marowak, + .shinyPalette = gMonShinyPalette_Marowak, + .iconSprite = gMonIcon_Marowak, + .iconPalIndex = 2, + FOOTPRINT(Marowak) + .levelUpLearnset = sMarowakLevelUpLearnset, + .teachableLearnset = sMarowakTeachableLearnset, + .formSpeciesIdTable = sMarowakFormSpeciesIdTable, }, #if P_ALOLAN_FORMS [SPECIES_MAROWAK_ALOLAN] = { - MAROWAK_MISC_INFO, - .types = { TYPE_FIRE, TYPE_GHOST }, + .baseHP = 60, + .baseAttack = 80, + .baseDefense = 110, + .baseSpeed = 45, + .baseSpAttack = 50, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_FIRE, TYPE_GHOST), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 149 : 124, + .evYield_Defense = 2, + .itemRare = ITEM_THICK_CLUB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_CURSED_BODY, ABILITY_LIGHTNING_ROD, ABILITY_ROCK_HEAD }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Marowak"), + .cryId = CRY_MAROWAK, + .natDexNum = NATIONAL_DEX_MAROWAK, + .categoryName = _("Bone Keeper"), + .height = 10, .weight = 340, - .description = COMPOUND_STRING( - "The cursed flames that light up the bone\n" - "carried by this Pokémon are said\n" - "to cause both mental and physical\n" - "pain that will never fade."), - FRONT_PIC(MarowakAlolan, 64, 64), + .description = gMarowakAlolanPokedexText, + .pokemonScale = 293, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MarowakAlolan, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_MarowakAlolan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MarowakAlolan, 56, 56), + .backPic = gMonBackPic_MarowakAlolan, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MarowakAlolan), - ICON(MarowakAlolan, 1), - LEARNSETS(MarowakAlolan), + .palette = gMonPalette_MarowakAlolan, + .shinyPalette = gMonShinyPalette_MarowakAlolan, + .iconSprite = gMonIcon_MarowakAlolan, + .iconPalIndex = 1, + FOOTPRINT(Marowak) .isAlolanForm = TRUE, + .levelUpLearnset = sMarowakAlolanLevelUpLearnset, + .teachableLearnset = sMarowakAlolanTeachableLearnset, + .formSpeciesIdTable = sMarowakFormSpeciesIdTable, + }, + + [SPECIES_MAROWAK_ALOLAN_TOTEM] = + { + .baseHP = 60, + .baseAttack = 80, + .baseDefense = 110, + .baseSpeed = 45, + .baseSpAttack = 50, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_FIRE, TYPE_GHOST), + .catchRate = 75, + .expYield = 149, + .evYield_Defense = 2, + .itemRare = ITEM_THICK_CLUB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), + .abilities = { ABILITY_ROCK_HEAD, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Marowak"), + .cryId = CRY_MAROWAK, + .natDexNum = NATIONAL_DEX_MAROWAK, + .categoryName = _("Bone Keeper"), + .height = 17, + .weight = 980, + .description = gMarowakAlolanPokedexText, + .pokemonScale = 293, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MarowakAlolan, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_MarowakAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_MarowakAlolan, + .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_MarowakAlolan, + .shinyPalette = gMonShinyPalette_MarowakAlolan, + .iconSprite = gMonIcon_MarowakAlolan, + .iconPalIndex = 1, + FOOTPRINT(Marowak) + .isTotem = TRUE, + .isAlolanForm = TRUE, + .levelUpLearnset = sMarowakAlolanLevelUpLearnset, + .teachableLearnset = sMarowakAlolanTeachableLearnset, + .formSpeciesIdTable = sMarowakFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS #endif //P_FAMILY_CUBONE @@ -7949,15 +10498,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 35, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 75, - .expYield = 42, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 42 : 91, .evYield_Attack = 1, .genderRatio = MON_MALE, .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_GUTS, ABILITY_STEADFAST, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Tyrogue"), @@ -7975,17 +10524,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tyrogue, 40, 48), + .frontPic = gMonFrontPic_Tyrogue, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Tyrogue, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Tyrogue, 48, 48), + .backPic = gMonBackPic_Tyrogue, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Tyrogue), - ICON(Tyrogue, 2), - .footprint = gMonFootprint_Tyrogue, - LEARNSETS(Tyrogue), + .palette = gMonPalette_Tyrogue, + .shinyPalette = gMonShinyPalette_Tyrogue, + .iconSprite = gMonIcon_Tyrogue, + .iconPalIndex = 2, + FOOTPRINT(Tyrogue) + .levelUpLearnset = sTyrogueLevelUpLearnset, + .teachableLearnset = sTyrogueTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_ATK_LT_DEF, 20, SPECIES_HITMONCHAN}, {EVO_LEVEL_ATK_GT_DEF, 20, SPECIES_HITMONLEE}, {EVO_LEVEL_ATK_EQ_DEF, 20, SPECIES_HITMONTOP}), @@ -8000,15 +10554,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 87, .baseSpAttack = 35, .baseSpDefense = 110, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 139, .evYield_Attack = 2, .genderRatio = MON_MALE, .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_LIMBER, ABILITY_RECKLESS, ABILITY_UNBURDEN }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Hitmonlee"), @@ -8026,17 +10580,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 259, .trainerOffset = 1, - FRONT_PIC(Hitmonlee, 64, 64), + .frontPic = gMonFrontPic_Hitmonlee, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Hitmonlee, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Hitmonlee, 64, 56), + .backPic = gMonBackPic_Hitmonlee, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Hitmonlee), - ICON(Hitmonlee, 2), - .footprint = gMonFootprint_Hitmonlee, - LEARNSETS(Hitmonlee), + .palette = gMonPalette_Hitmonlee, + .shinyPalette = gMonShinyPalette_Hitmonlee, + .iconSprite = gMonIcon_Hitmonlee, + .iconPalIndex = 2, + FOOTPRINT(Hitmonlee) + .levelUpLearnset = sHitmonleeLevelUpLearnset, + .teachableLearnset = sHitmonleeTeachableLearnset, }, [SPECIES_HITMONCHAN] = @@ -8047,15 +10606,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 76, .baseSpAttack = 35, .baseSpDefense = 110, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 140, .evYield_SpDefense = 2, .genderRatio = MON_MALE, .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_KEEN_EYE, ABILITY_IRON_FIST, ABILITY_INNER_FOCUS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Hitmonchan"), @@ -8073,17 +10632,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 277, .trainerOffset = 2, - FRONT_PIC(Hitmonchan, 48, 64), + .frontPic = gMonFrontPic_Hitmonchan, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Hitmonchan, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Hitmonchan, 56, 56), + .backPic = gMonBackPic_Hitmonchan, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Hitmonchan), - ICON(Hitmonchan, 2), - .footprint = gMonFootprint_Hitmonchan, - LEARNSETS(Hitmonchan), + .palette = gMonPalette_Hitmonchan, + .shinyPalette = gMonShinyPalette_Hitmonchan, + .iconSprite = gMonIcon_Hitmonchan, + .iconPalIndex = 2, + FOOTPRINT(Hitmonchan) + .levelUpLearnset = sHitmonchanLevelUpLearnset, + .teachableLearnset = sHitmonchanTeachableLearnset, }, #if P_GEN_2_CROSS_EVOS @@ -8095,15 +10659,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 35, .baseSpDefense = 110, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 138, .evYield_SpDefense = 2, .genderRatio = MON_MALE, .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_INTIMIDATE, ABILITY_TECHNICIAN, ABILITY_STEADFAST }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Hitmontop"), @@ -8121,17 +10685,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Hitmontop, 64, 56), + .frontPic = gMonFrontPic_Hitmontop, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Hitmontop, .frontAnimId = ANIM_SWING_CONCAVE, - BACK_PIC(Hitmontop, 64, 56), + .backPic = gMonBackPic_Hitmontop, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - PALETTES(Hitmontop), - ICON(Hitmontop, 2), - .footprint = gMonFootprint_Hitmontop, - LEARNSETS(Hitmontop), + .palette = gMonPalette_Hitmontop, + .shinyPalette = gMonShinyPalette_Hitmontop, + .iconSprite = gMonIcon_Hitmontop, + .iconPalIndex = 2, + FOOTPRINT(Hitmontop) + .levelUpLearnset = sHitmontopLevelUpLearnset, + .teachableLearnset = sHitmontopTeachableLearnset, }, #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_HITMONS @@ -8145,15 +10714,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 30, .baseSpAttack = 60, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, - .expYield = 77, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 77 : 127, .evYield_HP = 2, + .itemRare = ITEM_LAGGING_TAIL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_OWN_TEMPO, ABILITY_OBLIVIOUS, ABILITY_CLOUD_NINE }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Lickitung"), @@ -8171,17 +10741,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lickitung, 64, 56), + .frontPic = gMonFrontPic_Lickitung, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Lickitung, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Lickitung, 64, 40), + .backPic = gMonBackPic_Lickitung, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Lickitung), - ICON(Lickitung, 0), - .footprint = gMonFootprint_Lickitung, - LEARNSETS(Lickitung), + .palette = gMonPalette_Lickitung, + .shinyPalette = gMonShinyPalette_Lickitung, + .iconSprite = gMonIcon_Lickitung, + .iconPalIndex = 0, + FOOTPRINT(Lickitung) + .levelUpLearnset = sLickitungLevelUpLearnset, + .teachableLearnset = sLickitungTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_ROLLOUT, SPECIES_LICKILICKY}), }, @@ -8194,15 +10769,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 80, .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 30, - .expYield = 180, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 180 : 193, .evYield_HP = 3, + .itemRare = ITEM_LAGGING_TAIL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_OWN_TEMPO, ABILITY_OBLIVIOUS, ABILITY_CLOUD_NINE }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Lickilicky"), @@ -8220,17 +10796,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 290, .trainerOffset = 1, - FRONT_PIC(Lickilicky, 64, 64), + .frontPic = gMonFrontPic_Lickilicky, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Lickilicky, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Lickilicky, 64, 64), + .backPic = gMonBackPic_Lickilicky, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Lickilicky), - ICON(Lickilicky, 1), - .footprint = gMonFootprint_Lickilicky, - LEARNSETS(Lickilicky), + .palette = gMonPalette_Lickilicky, + .shinyPalette = gMonShinyPalette_Lickilicky, + .iconSprite = gMonIcon_Lickilicky, + .iconPalIndex = 1, + FOOTPRINT(Lickilicky) + .levelUpLearnset = sLickilickyLevelUpLearnset, + .teachableLearnset = sLickilickyTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_LICKITUNG @@ -8244,21 +10825,21 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 35, .baseSpAttack = 60, .baseSpDefense = 45, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 190, - .expYield = 68, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 68 : 114, .evYield_Defense = 1, .itemRare = ITEM_SMOKE_BALL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - #if P_UPDATED_ABILITIES >= GEN_8 - .abilities = { ABILITY_LEVITATE, ABILITY_NEUTRALIZING_GAS, ABILITY_STENCH }, - #else - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + #if P_UPDATED_ABILITIES >= GEN_8 + .abilities = { ABILITY_LEVITATE, ABILITY_NEUTRALIZING_GAS, ABILITY_STENCH }, + #else + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + #endif .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Koffing"), .cryId = CRY_KOFFING, @@ -8275,56 +10856,56 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Koffing, 56, 48), + .frontPic = gMonFrontPic_Koffing, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Koffing, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .enemyMonElevation = 14, - BACK_PIC(Koffing, 64, 64), + .backPic = gMonBackPic_Koffing, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_GROW, - PALETTES(Koffing), - ICON(Koffing, 2), - .footprint = gMonFootprint_Koffing, - LEARNSETS(Koffing), + .palette = gMonPalette_Koffing, + .shinyPalette = gMonShinyPalette_Koffing, + .iconSprite = gMonIcon_Koffing, + .iconPalIndex = 2, + FOOTPRINT(Koffing) + .levelUpLearnset = sKoffingLevelUpLearnset, + .teachableLearnset = sKoffingTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_WEEZING}, {EVO_NONE, 0, SPECIES_WEEZING_GALARIAN}), }, -#define WEEZING_MISC_INFO \ - .baseHP = 65, \ - .baseAttack = 90, \ - .baseDefense = 120, \ - .baseSpeed = 60, \ - .baseSpAttack = 85, \ - .baseSpDefense = 70, \ - .catchRate = 60, \ - .expYield = 172, \ - .evYield_Defense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, \ - .noFlip = TRUE, \ - .speciesName = _("Weezing"), \ - .cryId = CRY_WEEZING, \ - .natDexNum = NATIONAL_DEX_WEEZING, \ - .categoryName = _("Poison Gas"), \ - .footprint = gMonFootprint_Weezing, \ - .formSpeciesIdTable = sWeezingFormSpeciesIdTable - [SPECIES_WEEZING] = { - WEEZING_MISC_INFO, - .types = { TYPE_POISON, TYPE_POISON }, + .baseHP = 65, + .baseAttack = 90, + .baseDefense = 120, + .baseSpeed = 60, + .baseSpAttack = 85, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_POISON), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 173, + .evYield_Defense = 2, .itemRare = ITEM_SMOKE_BALL, - #if P_UPDATED_ABILITIES >= GEN_8 - .abilities = { ABILITY_LEVITATE, ABILITY_NEUTRALIZING_GAS, ABILITY_STENCH }, - #else - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, - #endif + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + #if P_UPDATED_ABILITIES >= GEN_8 + .abilities = { ABILITY_LEVITATE, ABILITY_NEUTRALIZING_GAS, ABILITY_STENCH }, + #else + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + #endif .bodyColor = BODY_COLOR_PURPLE, + .noFlip = TRUE, + .speciesName = _("Weezing"), + .cryId = CRY_WEEZING, + .natDexNum = NATIONAL_DEX_WEEZING, + .categoryName = _("Poison Gas"), .height = 12, .weight = 95, .description = COMPOUND_STRING( @@ -8336,27 +10917,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Weezing, 64, 64), + .frontPic = gMonFrontPic_Weezing, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Weezing, .frontAnimId = ANIM_V_SLIDE, .enemyMonElevation = 3, - BACK_PIC(Weezing, 64, 48), + .backPic = gMonBackPic_Weezing, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_GROW, - PALETTES(Weezing), - ICON(Weezing, 2), - LEARNSETS(Weezing), + .palette = gMonPalette_Weezing, + .shinyPalette = gMonShinyPalette_Weezing, + .iconSprite = gMonIcon_Weezing, + .iconPalIndex = 2, + FOOTPRINT(Weezing) + .levelUpLearnset = sWeezingLevelUpLearnset, + .teachableLearnset = sWeezingTeachableLearnset, + .formSpeciesIdTable = sWeezingFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_WEEZING_GALARIAN] = { - WEEZING_MISC_INFO, - .types = { TYPE_POISON, TYPE_FAIRY }, + .baseHP = 65, + .baseAttack = 90, + .baseDefense = 120, + .baseSpeed = 60, + .baseSpAttack = 85, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_POISON, TYPE_FAIRY), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 173, + .evYield_Defense = 2, + .itemRare = ITEM_MISTY_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_LEVITATE, ABILITY_NEUTRALIZING_GAS, ABILITY_MISTY_SURGE }, .bodyColor = BODY_COLOR_GRAY, - .isGalarianForm = TRUE, + .noFlip = TRUE, + .speciesName = _("Weezing"), + .cryId = CRY_WEEZING, + .natDexNum = NATIONAL_DEX_WEEZING, + .categoryName = _("Poison Gas"), .height = 30, .weight = 160, .description = COMPOUND_STRING( @@ -8368,17 +10974,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(WeezingGalarian, 64, 64), + .frontPic = gMonFrontPic_WeezingGalarian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_WeezingGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 6, - BACK_PIC(WeezingGalarian, 64, 64), + .backPic = gMonBackPic_WeezingGalarian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(WeezingGalarian), - ICON(WeezingGalarian, 1), - LEARNSETS(WeezingGalarian), + .palette = gMonPalette_WeezingGalarian, + .shinyPalette = gMonShinyPalette_WeezingGalarian, + .iconSprite = gMonIcon_WeezingGalarian, + .iconPalIndex = 1, + FOOTPRINT(Weezing) + .isGalarianForm = TRUE, + .levelUpLearnset = sWeezingGalarianLevelUpLearnset, + .teachableLearnset = sWeezingGalarianTeachableLearnset, + .formSpeciesIdTable = sWeezingFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_KOFFING @@ -8392,15 +11006,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 25, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_GROUND, TYPE_ROCK }, + .types = MON_TYPES(TYPE_GROUND, TYPE_ROCK), .catchRate = 120, - .expYield = 69, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 69 : 135, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_LIGHTNING_ROD, ABILITY_ROCK_HEAD, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Rhyhorn"), @@ -8418,19 +11032,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Rhyhorn, 56, 40), - FRONT_PIC_FEMALE(Rhyhorn, 56, 40), + .frontPic = gMonFrontPic_Rhyhorn, + .frontPicFemale = gMonFrontPic_RhyhornF, + .frontPicSize = MON_COORDS_SIZE(56, 40), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Rhyhorn, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Rhyhorn, 64, 48), - BACK_PIC_FEMALE(Rhyhorn, 64, 48), + .backPic = gMonBackPic_Rhyhorn, + .backPicFemale = gMonBackPic_RhyhornF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Rhyhorn), - ICON(Rhyhorn, 1), - .footprint = gMonFootprint_Rhyhorn, - LEARNSETS(Rhyhorn), + .palette = gMonPalette_Rhyhorn, + .shinyPalette = gMonShinyPalette_Rhyhorn, + .iconSprite = gMonIcon_Rhyhorn, + .iconPalIndex = 1, + FOOTPRINT(Rhyhorn) + .levelUpLearnset = sRhyhornLevelUpLearnset, + .teachableLearnset = sRhyhornTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_RHYDON}), }, @@ -8442,15 +11063,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 40, .baseSpAttack = 45, .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_ROCK }, + .types = MON_TYPES(TYPE_GROUND, TYPE_ROCK), .catchRate = 60, - .expYield = 170, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 170 : 204, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_LIGHTNING_ROD, ABILITY_ROCK_HEAD, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Rhydon"), @@ -8468,20 +11089,28 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 299, .trainerOffset = 2, - FRONT_PIC(Rhydon, 64, 56), - FRONT_PIC_FEMALE(Rhydon, 64, 56), + .frontPic = gMonFrontPic_Rhydon, + .frontPicFemale = gMonFrontPic_RhydonF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Rhydon, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Rhydon, 64, 56), - BACK_PIC_FEMALE(Rhydon, 64, 56), + .backPic = gMonBackPic_Rhydon, + .backPicFemale = gMonBackPic_RhydonF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Rhydon), - ICON(Rhydon, 1), - .footprint = gMonFootprint_Rhydon, - LEARNSETS(Rhydon), - .evolutions = EVOLUTION({EVO_LEVEL, 52, SPECIES_RHYPERIOR}), + .palette = gMonPalette_Rhydon, + .shinyPalette = gMonShinyPalette_Rhydon, + .iconSprite = gMonIcon_Rhydon, + .iconPalIndex = 1, + FOOTPRINT(Rhydon) + .levelUpLearnset = sRhydonLevelUpLearnset, + .teachableLearnset = sRhydonTeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_PROTECTOR, SPECIES_RHYPERIOR}, + {EVO_ITEM, ITEM_PROTECTOR, SPECIES_RHYPERIOR}), }, #if P_GEN_4_CROSS_EVOS @@ -8493,15 +11122,21 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 40, .baseSpAttack = 55, .baseSpDefense = 55, - .types = { TYPE_GROUND, TYPE_ROCK }, + .types = MON_TYPES(TYPE_GROUND, TYPE_ROCK), .catchRate = 30, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 268, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 241, + #else + .expYield = 217, + #endif .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_LIGHTNING_ROD, ABILITY_SOLID_ROCK, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Rhyperior"), @@ -8519,19 +11154,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 369, .trainerOffset = 7, - FRONT_PIC(Rhyperior, 64, 64), - FRONT_PIC_FEMALE(Rhyperior, 64, 64), + .frontPic = gMonFrontPic_Rhyperior, + .frontPicFemale = gMonFrontPic_RhyperiorF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Rhyperior, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Rhyperior, 64, 64), - BACK_PIC_FEMALE(Rhyperior, 64, 64), + .backPic = gMonBackPic_Rhyperior, + .backPicFemale = gMonBackPic_RhyperiorF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Rhyperior), - ICON(Rhyperior, 0), - .footprint = gMonFootprint_Rhyperior, - LEARNSETS(Rhyperior), + .palette = gMonPalette_Rhyperior, + .shinyPalette = gMonShinyPalette_Rhyperior, + .iconSprite = gMonIcon_Rhyperior, + .iconPalIndex = 0, + FOOTPRINT(Rhyperior) + .levelUpLearnset = sRhyperiorLevelUpLearnset, + .teachableLearnset = sRhyperiorTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_RHYHORN @@ -8546,15 +11188,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 30, .baseSpAttack = 15, .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 130, - .expYield = 110, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 110 : 255, .evYield_HP = 1, + .itemCommon = ITEM_OVAL_STONE, .genderRatio = MON_FEMALE, .eggCycles = 40, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_NATURAL_CURE, ABILITY_SERENE_GRACE, ABILITY_FRIEND_GUARD }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Happiny"), @@ -8572,18 +11215,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Happiny, 32, 48), + .frontPic = gMonFrontPic_Happiny, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Happiny, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Happiny, 48, 56), + .backPic = gMonBackPic_Happiny, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Happiny), - ICON(Happiny, 0), - .footprint = gMonFootprint_Happiny, - LEARNSETS(Happiny), - .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_CHANSEY}), + .palette = gMonPalette_Happiny, + .shinyPalette = gMonShinyPalette_Happiny, + .iconSprite = gMonIcon_Happiny, + .iconPalIndex = 0, + FOOTPRINT(Happiny) + .levelUpLearnset = sHappinyLevelUpLearnset, + .teachableLearnset = sHappinyTeachableLearnset, + .evolutions = EVOLUTION({EVO_ITEM_HOLD_DAY, ITEM_OVAL_STONE, SPECIES_CHANSEY}, + {EVO_ITEM_DAY, ITEM_OVAL_STONE, SPECIES_CHANSEY}), }, #endif //P_GEN_4_CROSS_EVOS @@ -8595,16 +11244,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 35, .baseSpDefense = 105, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 30, - .expYield = 395, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 395 : 255, .evYield_HP = 2, .itemCommon = ITEM_LUCKY_PUNCH, .genderRatio = MON_FEMALE, .eggCycles = 40, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_NATURAL_CURE, ABILITY_SERENE_GRACE, ABILITY_HEALER }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Chansey"), @@ -8622,17 +11271,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chansey, 56, 48), + .frontPic = gMonFrontPic_Chansey, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Chansey, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Chansey, 64, 48), + .backPic = gMonBackPic_Chansey, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Chansey), - ICON(Chansey, 0), - .footprint = gMonFootprint_Chansey, - LEARNSETS(Chansey), + .palette = gMonPalette_Chansey, + .shinyPalette = gMonShinyPalette_Chansey, + .iconSprite = gMonIcon_Chansey, + .iconPalIndex = 0, + FOOTPRINT(Chansey) + .levelUpLearnset = sChanseyLevelUpLearnset, + .teachableLearnset = sChanseyTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_BLISSEY}), }, @@ -8645,16 +11299,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 55, .baseSpAttack = 75, .baseSpDefense = 135, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 30, - .expYield = 608, - .evYield_HP = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 608 : 255, + .evYield_HP = (P_UPDATED_EVS >= GEN_4) ? 3 : 2, .itemRare = ITEM_LUCKY_EGG, .genderRatio = MON_FEMALE, .eggCycles = 40, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_NATURAL_CURE, ABILITY_SERENE_GRACE, ABILITY_HEALER }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Blissey"), @@ -8672,17 +11326,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 310, .trainerOffset = 3, - FRONT_PIC(Blissey, 56, 56), + .frontPic = gMonFrontPic_Blissey, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Blissey, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Blissey, 64, 32), + .backPic = gMonBackPic_Blissey, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Blissey), - ICON(Blissey, 0), - .footprint = gMonFootprint_Blissey, - LEARNSETS(Blissey), + .palette = gMonPalette_Blissey, + .shinyPalette = gMonShinyPalette_Blissey, + .iconSprite = gMonIcon_Blissey, + .iconPalIndex = 0, + FOOTPRINT(Blissey) + .levelUpLearnset = sBlisseyLevelUpLearnset, + .teachableLearnset = sBlisseyTeachableLearnset, }, #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_CHANSEY @@ -8696,15 +11355,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 60, .baseSpAttack = 100, .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, - .expYield = 87, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 87 : 166, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Tangela"), @@ -8722,17 +11381,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tangela, 48, 40), + .frontPic = gMonFrontPic_Tangela, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Tangela, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Tangela, 64, 40), + .backPic = gMonBackPic_Tangela, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Tangela), - ICON(Tangela, 0), - .footprint = gMonFootprint_Tangela, - LEARNSETS(Tangela), + .palette = gMonPalette_Tangela, + .shinyPalette = gMonShinyPalette_Tangela, + .iconSprite = gMonIcon_Tangela, + .iconPalIndex = 0, + FOOTPRINT(Tangela) + .levelUpLearnset = sTangelaLevelUpLearnset, + .teachableLearnset = sTangelaTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_ANCIENT_POWER, SPECIES_TANGROWTH}), }, @@ -8745,15 +11409,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 110, .baseSpDefense = 50, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 30, - .expYield = 187, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 187 : 211, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Tangrowth"), @@ -8771,104 +11435,137 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Tangrowth, 64, 64), - FRONT_PIC_FEMALE(Tangrowth, 64, 64), + .frontPic = gMonFrontPic_Tangrowth, + .frontPicFemale = gMonFrontPic_TangrowthF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Tangrowth, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Tangrowth, 64, 56), + .backPic = gMonBackPic_Tangrowth, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_GROW, - PALETTES(Tangrowth), - ICON(Tangrowth, 0), - .footprint = gMonFootprint_Tangrowth, - LEARNSETS(Tangrowth), + .palette = gMonPalette_Tangrowth, + .shinyPalette = gMonShinyPalette_Tangrowth, + .iconSprite = gMonIcon_Tangrowth, + .iconPalIndex = 0, + FOOTPRINT(Tangrowth) + .levelUpLearnset = sTangrowthLevelUpLearnset, + .teachableLearnset = sTangrowthTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_TANGELA #if P_FAMILY_KANGASKHAN -#define KANGASKHAN_MISC_INFO \ - .types = { TYPE_NORMAL, TYPE_NORMAL }, \ - .catchRate = 45, \ - .evYield_HP = 2, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Kangaskhan"), \ - .natDexNum = NATIONAL_DEX_KANGASKHAN, \ - .categoryName = _("Parent"), \ - .height = 22, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 387, \ - .trainerOffset = 8, \ - .footprint = gMonFootprint_Kangaskhan, \ - LEARNSETS(Kangaskhan), \ - .formSpeciesIdTable = sKangaskhanFormSpeciesIdTable, \ - .formChangeTable = sKangaskhanFormChangeTable - [SPECIES_KANGASKHAN] = { - KANGASKHAN_MISC_INFO, .baseHP = 105, .baseAttack = 95, .baseDefense = 80, .baseSpeed = 90, .baseSpAttack = 40, .baseSpDefense = 80, - .expYield = 172, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 175, + .evYield_HP = 2, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_EARLY_BIRD, ABILITY_SCRAPPY, ABILITY_INNER_FOCUS }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Kangaskhan"), .cryId = CRY_KANGASKHAN, + .natDexNum = NATIONAL_DEX_KANGASKHAN, + .categoryName = _("Parent"), + .height = 22, .weight = 800, .description = COMPOUND_STRING( "If you come across a young Kangaskhan\n" "playing by itself, never try to catch it.\n" "The baby's parent is sure to be in the area,\n" "and it will become violently enraged."), - FRONT_PIC(Kangaskhan, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 387, + .trainerOffset = 8, + .frontPic = gMonFrontPic_Kangaskhan, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Kangaskhan, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Kangaskhan, 64, 56), + .backPic = gMonBackPic_Kangaskhan, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Kangaskhan), - ICON(Kangaskhan, 2), + .palette = gMonPalette_Kangaskhan, + .shinyPalette = gMonShinyPalette_Kangaskhan, + .iconSprite = gMonIcon_Kangaskhan, + .iconPalIndex = 2, + FOOTPRINT(Kangaskhan) + .levelUpLearnset = sKangaskhanLevelUpLearnset, + .teachableLearnset = sKangaskhanTeachableLearnset, + .formSpeciesIdTable = sKangaskhanFormSpeciesIdTable, + .formChangeTable = sKangaskhanFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_KANGASKHAN_MEGA] = { - KANGASKHAN_MISC_INFO, .baseHP = 105, .baseAttack = 125, .baseDefense = 100, .baseSpeed = 100, .baseSpAttack = 60, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, .expYield = 207, + .evYield_HP = 2, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_PARENTAL_BOND, ABILITY_PARENTAL_BOND, ABILITY_PARENTAL_BOND }, - .isMegaEvolution = TRUE, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Kangaskhan"), .cryId = CRY_KANGASKHAN_MEGA, + .natDexNum = NATIONAL_DEX_KANGASKHAN, + .categoryName = _("Parent"), + .height = 22, .weight = 1000, .description = COMPOUND_STRING( "When the mother sees the back of her\n" "Mega-Evolved child, it makes her think\n" "of the day when her child will inevitably\n" "leave her."), - FRONT_PIC(KangaskhanMega, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 387, + .trainerOffset = 8, + .frontPic = gMonFrontPic_KangaskhanMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_KangaskhanMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(KangaskhanMega, 64, 56), + .backPic = gMonBackPic_KangaskhanMega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(KangaskhanMega), - ICON(KangaskhanMega, 2), + .palette = gMonPalette_KangaskhanMega, + .shinyPalette = gMonShinyPalette_KangaskhanMega, + .iconSprite = gMonIcon_KangaskhanMega, + .iconPalIndex = 2, + FOOTPRINT(Kangaskhan) + .isMegaEvolution = TRUE, + .levelUpLearnset = sKangaskhanLevelUpLearnset, + .teachableLearnset = sKangaskhanTeachableLearnset, + .formSpeciesIdTable = sKangaskhanFormSpeciesIdTable, + .formChangeTable = sKangaskhanFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_KANGASKHAN @@ -8882,16 +11579,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 60, .baseSpAttack = 70, .baseSpDefense = 25, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 225, - .expYield = 59, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 59 : 83, .evYield_SpAttack = 1, .itemRare = ITEM_DRAGON_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_SNIPER, ABILITY_DAMP }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Horsea"), @@ -8909,17 +11606,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Horsea, 32, 40), + .frontPic = gMonFrontPic_Horsea, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Horsea, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Horsea, 48, 40), + .backPic = gMonBackPic_Horsea, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Horsea), - ICON(Horsea, 0), - .footprint = gMonFootprint_Horsea, - LEARNSETS(Horsea), + .palette = gMonPalette_Horsea, + .shinyPalette = gMonShinyPalette_Horsea, + .iconSprite = gMonIcon_Horsea, + .iconPalIndex = 0, + FOOTPRINT(Horsea) + .levelUpLearnset = sHorseaLevelUpLearnset, + .teachableLearnset = sHorseaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_SEADRA}), }, @@ -8931,9 +11633,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 85, .baseSpAttack = 95, .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 75, - .expYield = 154, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 154 : 155, .evYield_Defense = 1, .evYield_SpAttack = 1, .itemRare = ITEM_DRAGON_SCALE, @@ -8941,7 +11643,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_POISON_POINT, ABILITY_SNIPER, ABILITY_DAMP }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Seadra"), @@ -8959,17 +11661,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Seadra, 64, 56), + .frontPic = gMonFrontPic_Seadra, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Seadra, .frontAnimId = ANIM_V_SLIDE, - BACK_PIC(Seadra, 64, 56), + .backPic = gMonBackPic_Seadra, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Seadra), - ICON(Seadra, 0), - .footprint = gMonFootprint_Seadra, - LEARNSETS(Seadra), + .palette = gMonPalette_Seadra, + .shinyPalette = gMonShinyPalette_Seadra, + .iconSprite = gMonIcon_Seadra, + .iconPalIndex = 0, + FOOTPRINT(Seadra) + .levelUpLearnset = sSeadraLevelUpLearnset, + .teachableLearnset = sSeadraTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA}, {EVO_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA}), }, @@ -8983,9 +11690,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 85, .baseSpAttack = 95, .baseSpDefense = 95, - .types = { TYPE_WATER, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_WATER, TYPE_DRAGON), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 270, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 243, + #else + .expYield = 207, + #endif .evYield_Attack = 1, .evYield_SpAttack = 1, .evYield_SpDefense = 1, @@ -8994,7 +11707,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_SNIPER, ABILITY_DAMP }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Kingdra"), @@ -9012,17 +11725,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 287, .trainerOffset = 0, - FRONT_PIC(Kingdra, 64, 64), + .frontPic = gMonFrontPic_Kingdra, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Kingdra, .frontAnimId = ANIM_CIRCLE_INTO_BG, - BACK_PIC(Kingdra, 64, 56), + .backPic = gMonBackPic_Kingdra, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Kingdra), - ICON(Kingdra, 0), - .footprint = gMonFootprint_Kingdra, - LEARNSETS(Kingdra), + .palette = gMonPalette_Kingdra, + .shinyPalette = gMonShinyPalette_Kingdra, + .iconSprite = gMonIcon_Kingdra, + .iconPalIndex = 0, + FOOTPRINT(Kingdra) + .levelUpLearnset = sKingdraLevelUpLearnset, + .teachableLearnset = sKingdraTeachableLearnset, }, #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_HORSEA @@ -9036,16 +11754,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 63, .baseSpAttack = 35, .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 225, - .expYield = 64, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 64 : 111, .evYield_Attack = 1, .itemRare = ITEM_MYSTIC_WATER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_WATER_VEIL, ABILITY_LIGHTNING_ROD }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Goldeen"), @@ -9063,19 +11781,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Goldeen, 64, 40), - FRONT_PIC_FEMALE(Goldeen, 64, 40), + .frontPic = gMonFrontPic_Goldeen, + .frontPicFemale = gMonFrontPic_GoldeenF, + .frontPicSize = MON_COORDS_SIZE(64, 40), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Goldeen, .frontAnimId = ANIM_H_SLIDE_WOBBLE, - BACK_PIC(Goldeen, 64, 48), - BACK_PIC_FEMALE(Goldeen, 64, 48), + .backPic = gMonBackPic_Goldeen, + .backPicFemale = gMonBackPic_GoldeenF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Goldeen), - ICON(Goldeen, 0), - .footprint = gMonFootprint_Goldeen, - LEARNSETS(Goldeen), + .palette = gMonPalette_Goldeen, + .shinyPalette = gMonShinyPalette_Goldeen, + .iconSprite = gMonIcon_Goldeen, + .iconPalIndex = 0, + FOOTPRINT(Goldeen) + .levelUpLearnset = sGoldeenLevelUpLearnset, + .teachableLearnset = sGoldeenTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_SEAKING}), }, @@ -9087,16 +11812,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 68, .baseSpAttack = 65, .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 60, - .expYield = 158, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 170, .evYield_Attack = 2, .itemRare = ITEM_MYSTIC_WATER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_WATER_VEIL, ABILITY_LIGHTNING_ROD }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Seaking"), @@ -9114,19 +11839,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Seaking, 64, 56), - FRONT_PIC_FEMALE(Seaking, 64, 56), + .frontPic = gMonFrontPic_Seaking, + .frontPicFemale = gMonFrontPic_SeakingF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Seaking, .frontAnimId = ANIM_V_SLIDE_WOBBLE, - BACK_PIC(Seaking, 64, 56), - BACK_PIC_FEMALE(Seaking, 64, 56), + .backPic = gMonBackPic_Seaking, + .backPicFemale = gMonBackPic_SeakingF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Seaking), - ICON(Seaking, 0), - .footprint = gMonFootprint_Seaking, - LEARNSETS(Seaking), + .palette = gMonPalette_Seaking, + .shinyPalette = gMonShinyPalette_Seaking, + .iconSprite = gMonIcon_Seaking, + .iconPalIndex = 0, + FOOTPRINT(Seaking) + .levelUpLearnset = sSeakingLevelUpLearnset, + .teachableLearnset = sSeakingTeachableLearnset, }, #endif //P_FAMILY_GOLDEEN @@ -9139,9 +11871,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 85, .baseSpAttack = 70, .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 225, - .expYield = 68, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 68 : 106, .evYield_Speed = 1, .itemCommon = ITEM_STARDUST, .itemRare = ITEM_STAR_PIECE, @@ -9149,7 +11881,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_ILLUMINATE, ABILITY_NATURAL_CURE, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -9168,17 +11900,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Staryu, 40, 48), + .frontPic = gMonFrontPic_Staryu, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Staryu, .frontAnimId = ANIM_TWIST_TWICE, - BACK_PIC(Staryu, 56, 56), + .backPic = gMonBackPic_Staryu, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Staryu), - ICON(Staryu, 2), - .footprint = gMonFootprint_Staryu, - LEARNSETS(Staryu), + .palette = gMonPalette_Staryu, + .shinyPalette = gMonShinyPalette_Staryu, + .iconSprite = gMonIcon_Staryu, + .iconPalIndex = 2, + FOOTPRINT(Staryu) + .levelUpLearnset = sStaryuLevelUpLearnset, + .teachableLearnset = sStaryuTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_STARMIE}), }, @@ -9190,9 +11927,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 115, .baseSpAttack = 100, .baseSpDefense = 85, - .types = { TYPE_WATER, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_WATER, TYPE_PSYCHIC), .catchRate = 60, - .expYield = 182, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 182 : 207, .evYield_Speed = 2, .itemCommon = ITEM_STARDUST, .itemRare = ITEM_STAR_PIECE, @@ -9200,7 +11937,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_ILLUMINATE, ABILITY_NATURAL_CURE, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Starmie"), @@ -9218,17 +11955,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Starmie, 56, 56), + .frontPic = gMonFrontPic_Starmie, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Starmie, .frontAnimId = ANIM_TWIST, - BACK_PIC(Starmie, 64, 64), + .backPic = gMonBackPic_Starmie, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Starmie), - ICON(Starmie, 2), - .footprint = gMonFootprint_Starmie, - LEARNSETS(Starmie), + .palette = gMonPalette_Starmie, + .shinyPalette = gMonShinyPalette_Starmie, + .iconSprite = gMonIcon_Starmie, + .iconPalIndex = 2, + FOOTPRINT(Starmie) + .levelUpLearnset = sStarmieLevelUpLearnset, + .teachableLearnset = sStarmieTeachableLearnset, }, #endif //P_FAMILY_STARYU @@ -9242,19 +11984,19 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 60, .baseSpAttack = 70, .baseSpDefense = 90, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_PSYCHIC, TYPE_FAIRY }, - #else - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, - #endif + #if P_UPDATED_TYPES >= GEN_6 + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FAIRY), + #else + .types = MON_TYPES(TYPE_PSYCHIC), + #endif .catchRate = 145, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 78, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_SOUNDPROOF, ABILITY_FILTER, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Mime Jr."), @@ -9272,53 +12014,49 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(MimeJr, 32, 56), + .frontPic = gMonFrontPic_MimeJr, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_MimeJr, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(MimeJr, 64, 64), + .backPic = gMonBackPic_MimeJr, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(MimeJr), - ICON(MimeJr, 0), - .footprint = gMonFootprint_MimeJr, - LEARNSETS(MimeJr), + .palette = gMonPalette_MimeJr, + .shinyPalette = gMonShinyPalette_MimeJr, + .iconSprite = gMonIcon_MimeJr, + .iconPalIndex = 0, + FOOTPRINT(MimeJr) + .levelUpLearnset = sMimeJrLevelUpLearnset, + .teachableLearnset = sMimeJrTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_MIMIC, SPECIES_MR_MIME}, {EVO_NONE, 0, SPECIES_MR_MIME_GALARIAN}), }, #endif //P_GEN_4_CROSS_EVOS -#define MR_MIME_MISC_INFO \ - .catchRate = 45, \ - .expYield = 161, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE },\ - .speciesName = _("Mr. Mime"), \ - .cryId = CRY_MR_MIME, \ - .natDexNum = NATIONAL_DEX_MR_MIME, \ - .footprint = gMonFootprint_MrMime, \ - .formSpeciesIdTable = sMrMimeFormSpeciesIdTable - [SPECIES_MR_MIME] = { - MR_MIME_MISC_INFO, .baseHP = 40, .baseAttack = 45, .baseDefense = 65, .baseSpeed = 90, .baseSpAttack = 100, .baseSpDefense = 120, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_PSYCHIC, TYPE_FAIRY }, - #else - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, - #endif + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 161 : 136, .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_SOUNDPROOF, ABILITY_FILTER, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Mr. Mime"), + .cryId = CRY_MR_MIME, + .natDexNum = NATIONAL_DEX_MR_MIME, .categoryName = _("Barrier"), .height = 13, .weight = 545, @@ -9331,32 +12069,48 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(MrMime, 56, 56), + .frontPic = gMonFrontPic_MrMime, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_MrMime, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(MrMime, 64, 48), + .backPic = gMonBackPic_MrMime, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(MrMime), - ICON(MrMime, 0), - LEARNSETS(MrMime), + .palette = gMonPalette_MrMime, + .shinyPalette = gMonShinyPalette_MrMime, + .iconSprite = gMonIcon_MrMime, + .iconPalIndex = 0, + FOOTPRINT(MrMime) + .levelUpLearnset = sMrMimeLevelUpLearnset, + .teachableLearnset = sMrMimeTeachableLearnset, + .formSpeciesIdTable = sMrMimeFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_MR_MIME_GALARIAN] = { - MR_MIME_MISC_INFO, .baseHP = 50, .baseAttack = 65, .baseDefense = 65, .baseSpeed = 100, .baseSpAttack = 90, .baseSpDefense = 90, - .types = { TYPE_ICE, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_ICE, TYPE_PSYCHIC), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 161 : 136, .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_SCREEN_CLEANER, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Mr. Mime"), + .cryId = CRY_MR_MIME, + .natDexNum = NATIONAL_DEX_MR_MIME, .categoryName = _("Dancing"), .height = 14, .weight = 568, @@ -9369,17 +12123,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(MrMimeGalarian, 56, 56), + .frontPic = gMonFrontPic_MrMimeGalarian, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_MrMimeGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MrMimeGalarian, 64, 48), + .backPic = gMonBackPic_MrMimeGalarian, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MrMimeGalarian), - ICON(MrMimeGalarian, 0), - LEARNSETS(MrMimeGalarian), + .palette = gMonPalette_MrMimeGalarian, + .shinyPalette = gMonShinyPalette_MrMimeGalarian, + .iconSprite = gMonIcon_MrMimeGalarian, + .iconPalIndex = 0, + FOOTPRINT(MrMime) .isGalarianForm = TRUE, + .levelUpLearnset = sMrMimeGalarianLevelUpLearnset, + .teachableLearnset = sMrMimeGalarianTeachableLearnset, + .formSpeciesIdTable = sMrMimeFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_MR_RIME}), }, @@ -9391,7 +12152,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 110, .baseSpDefense = 100, - .types = { TYPE_ICE, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_ICE, TYPE_PSYCHIC), .catchRate = 45, .expYield = 182, .evYield_SpAttack = 3, @@ -9399,7 +12160,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_TANGLED_FEET, ABILITY_SCREEN_CLEANER, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Mr. Rime"), @@ -9416,17 +12177,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(MrRime, 56, 64), + .frontPic = gMonFrontPic_MrRime, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_MrRime, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MrRime, 64, 56), + .backPic = gMonBackPic_MrRime, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MrRime), - ICON(MrRime, 0), - .footprint = gMonFootprint_MrRime, - LEARNSETS(MrRime), + .palette = gMonPalette_MrRime, + .shinyPalette = gMonShinyPalette_MrRime, + .iconSprite = gMonIcon_MrRime, + .iconPalIndex = 0, + FOOTPRINT(MrRime) + .levelUpLearnset = sMrRimeLevelUpLearnset, + .teachableLearnset = sMrRimeTeachableLearnset, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_MR_MIME @@ -9440,15 +12206,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 105, .baseSpAttack = 55, .baseSpDefense = 80, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 45, - .expYield = 100, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 100 : 187, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_TECHNICIAN, ABILITY_STEADFAST }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Scyther"), @@ -9466,55 +12232,54 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 293, .trainerOffset = 2, - FRONT_PIC(Scyther, 56, 64), - FRONT_PIC_FEMALE(Scyther, 56, 64), + .frontPic = gMonFrontPic_Scyther, + .frontPicFemale = gMonFrontPic_ScytherF, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Scyther, .frontAnimId = ANIM_H_VIBRATE, .frontAnimDelay = 10, - BACK_PIC(Scyther, 64, 64), + .backPic = gMonBackPic_Scyther, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Scyther), - ICON(Scyther, 1), - .footprint = gMonFootprint_Scyther, - LEARNSETS(Scyther), + .palette = gMonPalette_Scyther, + .shinyPalette = gMonShinyPalette_Scyther, + .iconSprite = gMonIcon_Scyther, + .iconPalIndex = 1, + FOOTPRINT(Scyther) + .levelUpLearnset = sScytherLevelUpLearnset, + .teachableLearnset = sScytherTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR}, {EVO_ITEM, ITEM_BLACK_AUGURITE, SPECIES_KLEAVOR}, {EVO_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR}), }, #if P_GEN_2_CROSS_EVOS -#define SCIZOR_MISC_INFO \ - .types = { TYPE_BUG, TYPE_STEEL }, \ - .catchRate = 25, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .bodyColor = BODY_COLOR_RED, \ - .speciesName = _("Scizor"), \ - .natDexNum = NATIONAL_DEX_SCIZOR, \ - .categoryName = _("Pincer"), \ - .footprint = gMonFootprint_Scizor, \ - LEARNSETS(Scizor), \ - .formSpeciesIdTable = sScizorFormSpeciesIdTable,\ - .formChangeTable = sScizorFormChangeTable - [SPECIES_SCIZOR] = { - SCIZOR_MISC_INFO, .baseHP = 70, .baseAttack = 130, .baseDefense = 100, .baseSpeed = 65, .baseSpAttack = 55, .baseSpDefense = 80, - .expYield = 175, + .types = MON_TYPES(TYPE_BUG, TYPE_STEEL), + .catchRate = 25, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 200, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_TECHNICIAN, ABILITY_LIGHT_METAL }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Scizor"), .cryId = CRY_SCIZOR, + .natDexNum = NATIONAL_DEX_SCIZOR, + .categoryName = _("Pincer"), .height = 18, .weight = 1180, .description = COMPOUND_STRING( @@ -9526,33 +12291,53 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Scizor, 64, 64), - FRONT_PIC_FEMALE(Scizor, 64, 64), + .frontPic = gMonFrontPic_Scizor, + .frontPicFemale = gMonFrontPic_ScizorF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Scizor, .frontAnimId = ANIM_H_VIBRATE, .frontAnimDelay = 19, - BACK_PIC(Scizor, 64, 56), + .backPic = gMonBackPic_Scizor, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Scizor), - ICON(Scizor, 0), + .palette = gMonPalette_Scizor, + .shinyPalette = gMonShinyPalette_Scizor, + .iconSprite = gMonIcon_Scizor, + .iconPalIndex = 0, + FOOTPRINT(Scizor) + .levelUpLearnset = sScizorLevelUpLearnset, + .teachableLearnset = sScizorTeachableLearnset, + .formSpeciesIdTable = sScizorFormSpeciesIdTable, + .formChangeTable = sScizorFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_SCIZOR_MEGA] = { - SCIZOR_MISC_INFO, .baseHP = 70, .baseAttack = 150, .baseDefense = 140, .baseSpeed = 75, .baseSpAttack = 65, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_BUG, TYPE_STEEL), + .catchRate = 25, .expYield = 210, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_TECHNICIAN, ABILITY_TECHNICIAN, ABILITY_TECHNICIAN }, - .isMegaEvolution = TRUE, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Scizor"), .cryId = CRY_SCIZOR_MEGA, + .natDexNum = NATIONAL_DEX_SCIZOR, + .categoryName = _("Pincer"), .height = 20, .weight = 1250, .description = COMPOUND_STRING( @@ -9564,15 +12349,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(ScizorMega, 64, 64), + .frontPic = gMonFrontPic_ScizorMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_ScizorMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ScizorMega, 64, 56), + .backPic = gMonBackPic_ScizorMega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(ScizorMega), - ICON(ScizorMega, 0), + .palette = gMonPalette_ScizorMega, + .shinyPalette = gMonShinyPalette_ScizorMega, + .iconSprite = gMonIcon_ScizorMega, + .iconPalIndex = 0, + FOOTPRINT(Scizor) + .isMegaEvolution = TRUE, + .levelUpLearnset = sScizorLevelUpLearnset, + .teachableLearnset = sScizorTeachableLearnset, + .formSpeciesIdTable = sScizorFormSpeciesIdTable, + .formChangeTable = sScizorFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_GEN_2_CROSS_EVOS @@ -9586,7 +12381,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 85, .baseSpAttack = 45, .baseSpDefense = 70, - .types = { TYPE_BUG, TYPE_ROCK }, + .types = MON_TYPES(TYPE_BUG, TYPE_ROCK), .catchRate = 15, .expYield = 175, .evYield_Attack = 3, @@ -9594,7 +12389,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_SHEER_FORCE, ABILITY_SHARPNESS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Kleavor"), @@ -9612,17 +12407,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Kleavor, 64, 64), + .frontPic = gMonFrontPic_Kleavor, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Kleavor, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Kleavor, 64, 56), + .backPic = gMonBackPic_Kleavor, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Kleavor), - ICON(Kleavor, 2), - //.footprint = gMonFootprint_Kleavor, - LEARNSETS(Kleavor), + .palette = gMonPalette_Kleavor, + .shinyPalette = gMonShinyPalette_Kleavor, + .iconSprite = gMonIcon_Kleavor, + .iconPalIndex = 2, + //FOOTPRINT(Kleavor) + .levelUpLearnset = sKleavorLevelUpLearnset, + .teachableLearnset = sKleavorTeachableLearnset, }, #endif //P_GEN_8_CROSS_EVOS #endif //P_FAMILY_SCYTHER @@ -9637,15 +12437,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 65, .baseSpAttack = 85, .baseSpDefense = 65, - .types = { TYPE_ICE, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_ICE, TYPE_PSYCHIC), .catchRate = 45, - .expYield = 61, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 61 : 87, .evYield_SpAttack = 1, .genderRatio = MON_FEMALE, .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_OBLIVIOUS, ABILITY_FOREWARN, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Smoochum"), @@ -9663,18 +12463,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Smoochum, 32, 40), + .frontPic = gMonFrontPic_Smoochum, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Smoochum, .frontAnimId = ANIM_GROW_VIBRATE, .frontAnimDelay = 40, - BACK_PIC(Smoochum, 40, 48), + .backPic = gMonBackPic_Smoochum, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Smoochum), - ICON(Smoochum, 1), - .footprint = gMonFootprint_Smoochum, - LEARNSETS(Smoochum), + .palette = gMonPalette_Smoochum, + .shinyPalette = gMonShinyPalette_Smoochum, + .iconSprite = gMonIcon_Smoochum, + .iconPalIndex = 1, + FOOTPRINT(Smoochum) + .levelUpLearnset = sSmoochumLevelUpLearnset, + .teachableLearnset = sSmoochumTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_JYNX}), }, #endif //P_GEN_2_CROSS_EVOS @@ -9687,15 +12492,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 95, .baseSpAttack = 115, .baseSpDefense = 95, - .types = { TYPE_ICE, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_ICE, TYPE_PSYCHIC), .catchRate = 45, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 137, .evYield_SpAttack = 2, .genderRatio = MON_FEMALE, .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_OBLIVIOUS, ABILITY_FOREWARN, ABILITY_DRY_SKIN }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Jynx"), @@ -9713,17 +12518,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 300, .trainerOffset = 1, - FRONT_PIC(Jynx, 64, 48), + .frontPic = gMonFrontPic_Jynx, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Jynx, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Jynx, 56, 64), + .backPic = gMonBackPic_Jynx, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Jynx), - ICON(Jynx, 2), - .footprint = gMonFootprint_Jynx, - LEARNSETS(Jynx), + .palette = gMonPalette_Jynx, + .shinyPalette = gMonShinyPalette_Jynx, + .iconSprite = gMonIcon_Jynx, + .iconPalIndex = 2, + FOOTPRINT(Jynx) + .levelUpLearnset = sJynxLevelUpLearnset, + .teachableLearnset = sJynxTeachableLearnset, }, #endif //P_FAMILY_JYNX @@ -9737,15 +12547,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 95, .baseSpAttack = 65, .baseSpDefense = 55, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 45, - .expYield = 72, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 72 : 106, .evYield_Speed = 1, + .itemRare = ITEM_ELECTIRIZER, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, @@ -9764,17 +12575,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Elekid, 48, 40), + .frontPic = gMonFrontPic_Elekid, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Elekid, .frontAnimId = ANIM_FLASH_YELLOW, - BACK_PIC(Elekid, 64, 48), + .backPic = gMonBackPic_Elekid, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Elekid), - ICON(Elekid, 1), - .footprint = gMonFootprint_Elekid, - LEARNSETS(Elekid), + .palette = gMonPalette_Elekid, + .shinyPalette = gMonShinyPalette_Elekid, + .iconSprite = gMonIcon_Elekid, + .iconPalIndex = 1, + FOOTPRINT(Elekid) + .levelUpLearnset = sElekidLevelUpLearnset, + .teachableLearnset = sElekidTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ELECTABUZZ}), }, #endif //P_GEN_2_CROSS_EVOS @@ -9787,15 +12603,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 105, .baseSpAttack = 95, .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 45, - .expYield = 172, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 156, .evYield_Speed = 2, + .itemRare = ITEM_ELECTIRIZER, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, @@ -9814,18 +12631,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Electabuzz, 64, 64), + .frontPic = gMonFrontPic_Electabuzz, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Electabuzz, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW, - BACK_PIC(Electabuzz, 64, 64), + .backPic = gMonBackPic_Electabuzz, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Electabuzz), - ICON(Electabuzz, 1), - .footprint = gMonFootprint_Electabuzz, - LEARNSETS(Electabuzz), - .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_ELECTIVIRE}), + .palette = gMonPalette_Electabuzz, + .shinyPalette = gMonShinyPalette_Electabuzz, + .iconSprite = gMonIcon_Electabuzz, + .iconPalIndex = 1, + FOOTPRINT(Electabuzz) + .levelUpLearnset = sElectabuzzLevelUpLearnset, + .teachableLearnset = sElectabuzzTeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_ELECTIRIZER, SPECIES_ELECTIVIRE}, + {EVO_ITEM, ITEM_ELECTIRIZER, SPECIES_ELECTIVIRE}), }, #if P_GEN_4_CROSS_EVOS @@ -9837,15 +12660,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 95, .baseSpAttack = 95, .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 30, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 270, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 243, + #else + .expYield = 199, + #endif .evYield_Attack = 3, + .itemRare = ITEM_ELECTIRIZER, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_MOTOR_DRIVE, ABILITY_NONE, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Electivire"), @@ -9863,17 +12693,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Electivire, 64, 64), + .frontPic = gMonFrontPic_Electivire, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Electivire, .frontAnimId = ANIM_GLOW_YELLOW, - BACK_PIC(Electivire, 64, 48), + .backPic = gMonBackPic_Electivire, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Electivire), - ICON(Electivire, 1), - .footprint = gMonFootprint_Electivire, - LEARNSETS(Electivire), + .palette = gMonPalette_Electivire, + .shinyPalette = gMonShinyPalette_Electivire, + .iconSprite = gMonIcon_Electivire, + .iconPalIndex = 1, + FOOTPRINT(Electivire) + .levelUpLearnset = sElectivireLevelUpLearnset, + .teachableLearnset = sElectivireTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_ELECTABUZZ @@ -9888,15 +12723,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 83, .baseSpAttack = 70, .baseSpDefense = 55, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, - .expYield = 73, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 73 : 117, .evYield_Speed = 1, + .itemRare = ITEM_MAGMARIZER, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, @@ -9915,17 +12751,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Magby, 32, 48), + .frontPic = gMonFrontPic_Magby, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Magby, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Magby, 40, 48), + .backPic = gMonBackPic_Magby, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Magby), - ICON(Magby, 0), - .footprint = gMonFootprint_Magby, - LEARNSETS(Magby), + .palette = gMonPalette_Magby, + .shinyPalette = gMonShinyPalette_Magby, + .iconSprite = gMonIcon_Magby, + .iconPalIndex = 0, + FOOTPRINT(Magby) + .levelUpLearnset = sMagbyLevelUpLearnset, + .teachableLearnset = sMagbyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MAGMAR}), }, #endif //P_GEN_2_CROSS_EVOS @@ -9938,15 +12779,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 93, .baseSpAttack = 100, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, - .expYield = 173, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 173 : 167, .evYield_SpAttack = 2, + .itemRare = ITEM_MAGMARIZER, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Magmar"), @@ -9964,18 +12806,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Magmar, 64, 56), + .frontPic = gMonFrontPic_Magmar, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Magmar, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Magmar, 64, 64), + .backPic = gMonBackPic_Magmar, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Magmar), - ICON(Magmar, 0), - .footprint = gMonFootprint_Magmar, - LEARNSETS(Magmar), - .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_MAGMORTAR}), + .palette = gMonPalette_Magmar, + .shinyPalette = gMonShinyPalette_Magmar, + .iconSprite = gMonIcon_Magmar, + .iconPalIndex = 0, + FOOTPRINT(Magmar) + .levelUpLearnset = sMagmarLevelUpLearnset, + .teachableLearnset = sMagmarTeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_MAGMARIZER, SPECIES_MAGMORTAR}, + {EVO_ITEM, ITEM_MAGMARIZER, SPECIES_MAGMORTAR}), }, #if P_GEN_4_CROSS_EVOS @@ -9987,15 +12835,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 83, .baseSpAttack = 125, .baseSpDefense = 95, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 30, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 270, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 243, + #else + .expYield = 199, + #endif .evYield_SpAttack = 3, + .itemRare = ITEM_MAGMARIZER, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_VITAL_SPIRIT }, .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, @@ -10014,52 +12869,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Magmortar, 64, 64), + .frontPic = gMonFrontPic_Magmortar, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Magmortar, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Magmortar, 64, 56), + .backPic = gMonBackPic_Magmortar, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Magmortar), - ICON(Magmortar, 0), - .footprint = gMonFootprint_Magmortar, - LEARNSETS(Magmortar), + .palette = gMonPalette_Magmortar, + .shinyPalette = gMonShinyPalette_Magmortar, + .iconSprite = gMonIcon_Magmortar, + .iconPalIndex = 0, + FOOTPRINT(Magmortar) + .levelUpLearnset = sMagmortarLevelUpLearnset, + .teachableLearnset = sMagmortarTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_MAGMAR #if P_FAMILY_PINSIR -#define PINSIR_MISC_INFO \ - .catchRate = 45, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Pinsir"), \ - .natDexNum = NATIONAL_DEX_PINSIR, \ - .categoryName = _("Stag Beetle"), \ - .footprint = gMonFootprint_Pinsir, \ - LEARNSETS(Pinsir), \ - .formSpeciesIdTable = sPinsirFormSpeciesIdTable,\ - .formChangeTable = sPinsirFormChangeTable - [SPECIES_PINSIR] = { - PINSIR_MISC_INFO, .baseHP = 65, .baseAttack = 125, .baseDefense = 100, .baseSpeed = 85, .baseSpAttack = 55, .baseSpDefense = 70, - .types = { TYPE_BUG, TYPE_BUG }, - .expYield = 175, + .types = MON_TYPES(TYPE_BUG), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 200, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_MOLD_BREAKER, ABILITY_MOXIE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Pinsir"), .cryId = CRY_PINSIR, + .natDexNum = NATIONAL_DEX_PINSIR, + .categoryName = _("Stag Beetle"), .height = 15, .weight = 550, .description = COMPOUND_STRING( @@ -10071,31 +12924,50 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Pinsir, 64, 64), + .frontPic = gMonFrontPic_Pinsir, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Pinsir, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Pinsir, 64, 56), + .backPic = gMonBackPic_Pinsir, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Pinsir), - ICON(Pinsir, 2), + .palette = gMonPalette_Pinsir, + .shinyPalette = gMonShinyPalette_Pinsir, + .iconSprite = gMonIcon_Pinsir, + .iconPalIndex = 2, + FOOTPRINT(Pinsir) + .levelUpLearnset = sPinsirLevelUpLearnset, + .teachableLearnset = sPinsirTeachableLearnset, + .formSpeciesIdTable = sPinsirFormSpeciesIdTable, + .formChangeTable = sPinsirFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_PINSIR_MEGA] = { - PINSIR_MISC_INFO, .baseHP = 65, .baseAttack = 155, .baseDefense = 120, .baseSpeed = 105, .baseSpAttack = 65, .baseSpDefense = 90, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), + .catchRate = 45, .expYield = 210, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_AERILATE, ABILITY_AERILATE, ABILITY_AERILATE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Pinsir"), .cryId = CRY_PINSIR_MEGA, + .natDexNum = NATIONAL_DEX_PINSIR, + .categoryName = _("Stag Beetle"), .height = 17, .weight = 590, .description = COMPOUND_STRING( @@ -10107,149 +12979,247 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(PinsirMega, 64, 64), + .frontPic = gMonFrontPic_PinsirMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_PinsirMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 4, - BACK_PIC(PinsirMega, 64, 56), + .backPic = gMonBackPic_PinsirMega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(PinsirMega), - ICON(PinsirMega, 2), + .palette = gMonPalette_PinsirMega, + .shinyPalette = gMonShinyPalette_PinsirMega, + .iconSprite = gMonIcon_PinsirMega, + .iconPalIndex = 2, + FOOTPRINT(Pinsir) .isMegaEvolution = TRUE, + .levelUpLearnset = sPinsirLevelUpLearnset, + .teachableLearnset = sPinsirTeachableLearnset, + .formSpeciesIdTable = sPinsirFormSpeciesIdTable, + .formChangeTable = sPinsirFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_PINSIR #if P_FAMILY_TAUROS -#define TAUROS_MISC_INFO \ - .catchRate = 45, \ - .expYield = 172, \ - .genderRatio = MON_MALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .speciesName = _("Tauros"), \ - .cryId = CRY_TAUROS, \ - .natDexNum = NATIONAL_DEX_TAUROS, \ - .categoryName = _("Wild Bull"), \ - .height = 14, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Tauros, \ - .formSpeciesIdTable = sTaurosFormSpeciesIdTable - [SPECIES_TAUROS] = { - TAUROS_MISC_INFO, .baseHP = 75, .baseAttack = 100, .baseDefense = 95, .baseSpeed = 110, .baseSpAttack = 40, .baseSpDefense = 70, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 211, .evYield_Attack = 1, .evYield_Speed = 1, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Tauros"), + .cryId = CRY_TAUROS, + .natDexNum = NATIONAL_DEX_TAUROS, + .categoryName = _("Wild Bull"), + .height = 14, .weight = 884, .description = COMPOUND_STRING( "It is not satisfied unless it is rampaging\n" "at all times. If there is no opponent for\n" "Tauros to battle, it will charge at thick\n" "trees and knock them down to calm itself."), - FRONT_PIC(Tauros, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Tauros, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Tauros, .frontAnimId = ANIM_V_SHAKE_TWICE, .frontAnimDelay = 10, - BACK_PIC(Tauros, 64, 48), + .backPic = gMonBackPic_Tauros, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Tauros), - ICON(Tauros, 2), - LEARNSETS(Tauros), + .palette = gMonPalette_Tauros, + .shinyPalette = gMonShinyPalette_Tauros, + .iconSprite = gMonIcon_Tauros, + .iconPalIndex = 2, + FOOTPRINT(Tauros) + .levelUpLearnset = sTaurosLevelUpLearnset, + .teachableLearnset = sTaurosTeachableLearnset, + .formSpeciesIdTable = sTaurosFormSpeciesIdTable, }, #if P_PALDEAN_FORMS -#define TAUROS_PALDEAN_MISC_INFO \ - .baseHP = 75, \ - .baseAttack = 110, \ - .baseDefense = 105, \ - .baseSpeed = 100, \ - .baseSpAttack = 30, \ - .baseSpDefense = 70, \ - .evYield_Attack = 2, \ - .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .frontAnimFrames = sAnims_TaurosPaldean, \ - /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ \ - .backAnimId = BACK_ANIM_V_SHAKE_LOW, \ - .isPaldeanForm = TRUE - [SPECIES_TAUROS_PALDEAN_COMBAT_BREED] = { - TAUROS_MISC_INFO, - TAUROS_PALDEAN_MISC_INFO, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .baseHP = 75, + .baseAttack = 110, + .baseDefense = 105, + .baseSpeed = 100, + .baseSpAttack = 30, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_FIGHTING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 211, + .evYield_Attack = 2, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Tauros"), + .cryId = CRY_TAUROS, + .natDexNum = NATIONAL_DEX_TAUROS, + .categoryName = _("Wild Bull"), + .height = 14, .weight = 1150, .description = COMPOUND_STRING( "This Pokémon has a muscular body\n" "and excels at close-quarters combat.\n" "It uses its short horns to strike\n" "the opponent’s weak spots."), - FRONT_PIC(TaurosPaldeanCombatBreed, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_TaurosPaldeanCombatBreed, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, - BACK_PIC(TaurosPaldeanCombatBreed, 64, 48), + .frontAnimFrames = sAnims_TaurosPaldean, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_TaurosPaldeanCombatBreed, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, - PALETTES(TaurosPaldeanCombatBreed), - ICON(TaurosPaldeanCombatBreed, 0), - LEARNSETS(TaurosPaldeanCombatBreed), + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + .palette = gMonPalette_TaurosPaldeanCombatBreed, + .shinyPalette = gMonShinyPalette_TaurosPaldeanCombatBreed, + .iconSprite = gMonIcon_TaurosPaldeanCombatBreed, + .iconPalIndex = 0, + FOOTPRINT(Tauros) + .isPaldeanForm = TRUE, + .levelUpLearnset = sTaurosPaldeanCombatBreedLevelUpLearnset, + .teachableLearnset = sTaurosPaldeanCombatBreedTeachableLearnset, + .formSpeciesIdTable = sTaurosFormSpeciesIdTable, }, [SPECIES_TAUROS_PALDEAN_BLAZE_BREED] = { - TAUROS_MISC_INFO, - TAUROS_PALDEAN_MISC_INFO, - .types = { TYPE_FIGHTING, TYPE_FIRE }, + .baseHP = 75, + .baseAttack = 110, + .baseDefense = 105, + .baseSpeed = 100, + .baseSpAttack = 30, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_FIRE), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 211, + .evYield_Attack = 2, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Tauros"), + .cryId = CRY_TAUROS, + .natDexNum = NATIONAL_DEX_TAUROS, + .categoryName = _("Wild Bull"), + .height = 14, .weight = 850, .description = COMPOUND_STRING( "When heated by fire energy, its horns can\n" "get hotter than 1,800 degrees Fahrenheit.\n" "Those gored by them will suffer\n" "both wounds and burns."), - FRONT_PIC(TaurosPaldeanBlazeBreed, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_TaurosPaldeanBlazeBreed, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, - BACK_PIC(TaurosPaldeanBlazeBreed, 64, 48), + .frontAnimFrames = sAnims_TaurosPaldean, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_TaurosPaldeanBlazeBreed, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, - PALETTES(TaurosPaldeanBlazeBreed), - ICON(TaurosPaldeanBlazeBreed, 0), - LEARNSETS(TaurosPaldeanBlazeBreed), + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + .palette = gMonPalette_TaurosPaldeanBlazeBreed, + .shinyPalette = gMonShinyPalette_TaurosPaldeanBlazeBreed, + .iconSprite = gMonIcon_TaurosPaldeanBlazeBreed, + .iconPalIndex = 0, + FOOTPRINT(Tauros) + .isPaldeanForm = TRUE, + .levelUpLearnset = sTaurosPaldeanBlazeBreedLevelUpLearnset, + .teachableLearnset = sTaurosPaldeanBlazeBreedTeachableLearnset, + .formSpeciesIdTable = sTaurosFormSpeciesIdTable, }, [SPECIES_TAUROS_PALDEAN_AQUA_BREED] = { - TAUROS_MISC_INFO, - TAUROS_PALDEAN_MISC_INFO, - .types = { TYPE_FIGHTING, TYPE_WATER }, + .baseHP = 75, + .baseAttack = 110, + .baseDefense = 105, + .baseSpeed = 100, + .baseSpAttack = 30, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_WATER), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 211, + .evYield_Attack = 2, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Tauros"), + .cryId = CRY_TAUROS, + .natDexNum = NATIONAL_DEX_TAUROS, + .categoryName = _("Wild Bull"), + .height = 14, .weight = 1100, .description = COMPOUND_STRING( "This Pokémon blasts water from holes on\n" "the tips of its horns--the high-pressure\n" "jets pierce right through\n" "Tauros’s enemies."), - FRONT_PIC(TaurosPaldeanAquaBreed, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_TaurosPaldeanAquaBreed, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, - BACK_PIC(TaurosPaldeanAquaBreed, 64, 48), + .frontAnimFrames = sAnims_TaurosPaldean, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_TaurosPaldeanAquaBreed, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, - PALETTES(TaurosPaldeanAquaBreed), - ICON(TaurosPaldeanAquaBreed, 0), - LEARNSETS(TaurosPaldeanAquaBreed), + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + .palette = gMonPalette_TaurosPaldeanAquaBreed, + .shinyPalette = gMonShinyPalette_TaurosPaldeanAquaBreed, + .iconSprite = gMonIcon_TaurosPaldeanAquaBreed, + .iconPalIndex = 0, + FOOTPRINT(Tauros) + .isPaldeanForm = TRUE, + .levelUpLearnset = sTaurosPaldeanAquaBreedLevelUpLearnset, + .teachableLearnset = sTaurosPaldeanAquaBreedTeachableLearnset, + .formSpeciesIdTable = sTaurosFormSpeciesIdTable, }, #endif //P_PALDEAN_FORMS #endif //P_FAMILY_TAUROS @@ -10263,15 +13233,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 80, .baseSpAttack = 15, .baseSpDefense = 20, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 255, - .expYield = 40, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 40 : 20, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 5, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2, EGG_GROUP_DRAGON), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Magikarp"), @@ -10289,144 +13259,173 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Magikarp, 48, 56), - FRONT_PIC_FEMALE(Magikarp, 48, 56), + .frontPic = gMonFrontPic_Magikarp, + .frontPicFemale = gMonFrontPic_MagikarpF, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Magikarp, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, - BACK_PIC(Magikarp, 64, 56), - BACK_PIC_FEMALE(Magikarp, 64, 56), + .backPic = gMonBackPic_Magikarp, + .backPicFemale = gMonBackPic_MagikarpF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Magikarp), - ICON(Magikarp, 0), - .footprint = gMonFootprint_Magikarp, - LEARNSETS(Magikarp), + .palette = gMonPalette_Magikarp, + .shinyPalette = gMonShinyPalette_Magikarp, + .iconSprite = gMonIcon_Magikarp, + .iconPalIndex = 0, + FOOTPRINT(Magikarp) + .tmIlliterate = TRUE, + .levelUpLearnset = sMagikarpLevelUpLearnset, + .teachableLearnset = sMagikarpTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_GYARADOS}), }, -#define GYARADOS_MISC_INFO \ - .catchRate = 45, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 5, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_DRAGON },\ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Gyarados"), \ - .natDexNum = NATIONAL_DEX_GYARADOS, \ - .categoryName = _("Atrocious"), \ - .height = 65, \ - .pokemonScale = 256, \ - .pokemonOffset = 6, \ - .trainerScale = 481, \ - .trainerOffset = 13, \ - .footprint = gMonFootprint_Gyarados, \ - LEARNSETS(Gyarados), \ - .formSpeciesIdTable = sGyaradosFormSpeciesIdTable, \ - .formChangeTable = sGyaradosFormChangeTable - [SPECIES_GYARADOS] = { - GYARADOS_MISC_INFO, .baseHP = 95, .baseAttack = 125, .baseDefense = 79, .baseSpeed = 81, .baseSpAttack = 60, .baseSpDefense = 100, - .types = { TYPE_WATER, TYPE_FLYING }, - .expYield = 189, + .types = MON_TYPES(TYPE_WATER, TYPE_FLYING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 189 : 214, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 5, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2, EGG_GROUP_DRAGON), .abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_MOXIE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Gyarados"), .cryId = CRY_GYARADOS, + .natDexNum = NATIONAL_DEX_GYARADOS, + .categoryName = _("Atrocious"), + .height = 65, .weight = 2350, .description = COMPOUND_STRING( "It is an extremely vicious and violent\n" "Pokémon. When humans begin to fight,\n" "it will appear and burn everything to the\n" "ground with intensely hot flames."), - FRONT_PIC(Gyarados, 64, 64), - FRONT_PIC_FEMALE(Gyarados, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 481, + .trainerOffset = 13, + .frontPic = gMonFrontPic_Gyarados, + .frontPicFemale = gMonFrontPic_GyaradosF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Gyarados, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, - BACK_PIC(Gyarados, 64, 64), - BACK_PIC_FEMALE(Gyarados, 64, 64), + .backPic = gMonBackPic_Gyarados, + .backPicFemale = gMonBackPic_GyaradosF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Gyarados), - ICON(Gyarados, 0), + .palette = gMonPalette_Gyarados, + .shinyPalette = gMonShinyPalette_Gyarados, + .iconSprite = gMonIcon_Gyarados, + .iconPalIndex = 0, + FOOTPRINT(Gyarados) + .levelUpLearnset = sGyaradosLevelUpLearnset, + .teachableLearnset = sGyaradosTeachableLearnset, + .formSpeciesIdTable = sGyaradosFormSpeciesIdTable, + .formChangeTable = sGyaradosFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_GYARADOS_MEGA] = { - GYARADOS_MISC_INFO, .baseHP = 95, .baseAttack = 155, .baseDefense = 109, .baseSpeed = 81, .baseSpAttack = 70, .baseSpDefense = 130, - .types = { TYPE_WATER, TYPE_DARK }, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), + .catchRate = 45, .expYield = 224, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 5, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2, EGG_GROUP_DRAGON), .abilities = { ABILITY_MOLD_BREAKER, ABILITY_MOLD_BREAKER, ABILITY_MOLD_BREAKER }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Gyarados"), .cryId = CRY_GYARADOS_MEGA, + .natDexNum = NATIONAL_DEX_GYARADOS, + .categoryName = _("Atrocious"), + .height = 65, .weight = 3050, .description = COMPOUND_STRING( "Although it obeys its instinctive drive to\n" "destroy everything within its reach, it\n" "will respond to orders from a Trainer it\n" "truly trusts."), - FRONT_PIC(GyaradosMega, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 481, + .trainerOffset = 13, + .frontPic = gMonFrontPic_GyaradosMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_GyaradosMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 6, - BACK_PIC(GyaradosMega, 64, 64), + .backPic = gMonBackPic_GyaradosMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(GyaradosMega), - ICON(GyaradosMega, 0), + .palette = gMonPalette_GyaradosMega, + .shinyPalette = gMonShinyPalette_GyaradosMega, + .iconSprite = gMonIcon_GyaradosMega, + .iconPalIndex = 0, + FOOTPRINT(Gyarados) .isMegaEvolution = TRUE, + .levelUpLearnset = sGyaradosLevelUpLearnset, + .teachableLearnset = sGyaradosTeachableLearnset, + .formSpeciesIdTable = sGyaradosFormSpeciesIdTable, + .formChangeTable = sGyaradosFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_MAGIKARP #if P_FAMILY_LAPRAS -#define LAPRAS_MISC_INFO \ - .baseHP = 130, \ - .baseAttack = 85, \ - .baseDefense = 80, \ - .baseSpeed = 60, \ - .baseSpAttack = 85, \ - .baseSpDefense = 95, \ - .types = { TYPE_WATER, TYPE_ICE }, \ - .catchRate = 45, \ - .expYield = 187, \ - .evYield_HP = 2, \ - .itemCommon = ITEM_MYSTIC_WATER, \ - .itemRare = ITEM_MYSTIC_WATER, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, \ - .abilities = { ABILITY_WATER_ABSORB, ABILITY_SHELL_ARMOR, ABILITY_HYDRATION }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Lapras"), \ - .cryId = CRY_LAPRAS, \ - .natDexNum = NATIONAL_DEX_LAPRAS, \ - .categoryName = _("Transport"), \ - .footprint = gMonFootprint_Lapras, \ - LEARNSETS(Lapras), \ - .formSpeciesIdTable = sLaprasFormSpeciesIdTable, \ - .formChangeTable = sLaprasFormChangeTable - [SPECIES_LAPRAS] = { - LAPRAS_MISC_INFO, + .baseHP = 130, + .baseAttack = 85, + .baseDefense = 80, + .baseSpeed = 60, + .baseSpAttack = 85, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_WATER, TYPE_ICE), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 187 : 219, + .evYield_HP = 2, + .itemCommon = ITEM_MYSTIC_WATER, + .itemRare = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), + .abilities = { ABILITY_WATER_ABSORB, ABILITY_SHELL_ARMOR, ABILITY_HYDRATION }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Lapras"), + .cryId = CRY_LAPRAS, + .natDexNum = NATIONAL_DEX_LAPRAS, + .categoryName = _("Transport"), .height = 25, .weight = 2200, .description = COMPOUND_STRING( @@ -10438,21 +13437,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 423, .trainerOffset = 8, - FRONT_PIC(Lapras, 64, 64), + .frontPic = gMonFrontPic_Lapras, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Lapras, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Lapras, 56, 64), + .backPic = gMonBackPic_Lapras, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Lapras), - ICON(Lapras, 2), + .palette = gMonPalette_Lapras, + .shinyPalette = gMonShinyPalette_Lapras, + .iconSprite = gMonIcon_Lapras, + .iconPalIndex = 2, + FOOTPRINT(Lapras) + .levelUpLearnset = sLaprasLevelUpLearnset, + .teachableLearnset = sLaprasTeachableLearnset, + .formSpeciesIdTable = sLaprasFormSpeciesIdTable, + .formChangeTable = sLaprasFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_LAPRAS_GIGANTAMAX] = { - LAPRAS_MISC_INFO, + .baseHP = 130, + .baseAttack = 85, + .baseDefense = 80, + .baseSpeed = 60, + .baseSpAttack = 85, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_WATER, TYPE_ICE), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 187 : 219, + .evYield_HP = 2, + .itemCommon = ITEM_MYSTIC_WATER, + .itemRare = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), + .abilities = { ABILITY_WATER_ABSORB, ABILITY_SHELL_ARMOR, ABILITY_HYDRATION }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Lapras"), + .cryId = CRY_LAPRAS, + .natDexNum = NATIONAL_DEX_LAPRAS, + .categoryName = _("Transport"), .height = 240, .weight = 0, .description = COMPOUND_STRING( @@ -10464,16 +13494,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 423, .trainerOffset = 8, - FRONT_PIC(LaprasGigantamax, 64, 64), + .frontPic = gMonFrontPic_LaprasGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_LaprasGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(LaprasGigantamax, 64, 64), + .backPic = gMonBackPic_LaprasGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(LaprasGigantamax), - ICON(LaprasGigantamax, 2), + .palette = gMonPalette_LaprasGigantamax, + .shinyPalette = gMonShinyPalette_LaprasGigantamax, + .iconSprite = gMonIcon_LaprasGigantamax, + .iconPalIndex = 2, + FOOTPRINT(Lapras) .isGigantamax = TRUE, + .levelUpLearnset = sLaprasLevelUpLearnset, + .teachableLearnset = sLaprasTeachableLearnset, + .formSpeciesIdTable = sLaprasFormSpeciesIdTable, + .formChangeTable = sLaprasFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_LAPRAS @@ -10487,16 +13526,17 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 48, .baseSpAttack = 48, .baseSpDefense = 48, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 35, - .expYield = 101, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 101 : 61, .evYield_HP = 1, + .itemCommon = ITEM_QUICK_POWDER, .itemRare = ITEM_METAL_POWDER, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_DITTO, EGG_GROUP_DITTO }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DITTO), .abilities = { ABILITY_LIMBER, ABILITY_NONE, ABILITY_IMPOSTER }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Ditto"), @@ -10514,79 +13554,87 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 23, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ditto, 40, 40), + .frontPic = gMonFrontPic_Ditto, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Ditto, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Ditto, 48, 32), + .backPic = gMonBackPic_Ditto, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 17, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Ditto), - ICON(Ditto, 2), - .footprint = gMonFootprint_Ditto, - LEARNSETS(Ditto), + .palette = gMonPalette_Ditto, + .shinyPalette = gMonShinyPalette_Ditto, + .iconSprite = gMonIcon_Ditto, + .iconPalIndex = 2, + FOOTPRINT(Ditto) + .tmIlliterate = TRUE, + .levelUpLearnset = sDittoLevelUpLearnset, + .teachableLearnset = sDittoTeachableLearnset, }, #endif //P_FAMILY_DITTO #if P_FAMILY_EEVEE -#define EEVEE_MISC_INFO \ - .baseHP = 55, \ - .baseAttack = 55, \ - .baseDefense = 50, \ - .baseSpeed = 55, \ - .baseSpAttack = 45, \ - .baseSpDefense = 65, \ - .types = { TYPE_NORMAL, TYPE_NORMAL }, \ - .catchRate = 45, \ - .expYield = 65, \ - .evYield_SpDefense = 1, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 35, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_RUN_AWAY, ABILITY_ADAPTABILITY, ABILITY_ANTICIPATION }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Eevee"), \ - .cryId = CRY_EEVEE, \ - .natDexNum = NATIONAL_DEX_EEVEE, \ - .categoryName = _("Evolution"), \ - .footprint = gMonFootprint_Eevee, \ - LEARNSETS(Eevee), \ - .formSpeciesIdTable = sEeveeFormSpeciesIdTable, \ - .formChangeTable = sEeveeFormChangeTable - [SPECIES_EEVEE] = { - EEVEE_MISC_INFO, + .baseHP = 55, + .baseAttack = 55, + .baseDefense = 50, + .baseSpeed = 55, + .baseSpAttack = 45, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 92, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_RUN_AWAY, ABILITY_ADAPTABILITY, ABILITY_ANTICIPATION }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Eevee"), + .cryId = CRY_EEVEE, + .natDexNum = NATIONAL_DEX_EEVEE, + .categoryName = _("Evolution"), .height = 3, .weight = 65, - .description = COMPOUND_STRING( - "An Eevee has an unstable genetic makeup\n" - "that suddenly mutates due to its\n" - "environment. Radiation from various\n" - "Stones causes this Pokémon to evolve."), + .description = gEeveePokedexText, .pokemonScale = 476, .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Eevee, 40, 48), - FRONT_PIC_FEMALE(Eevee, 40, 48), + .frontPic = gMonFrontPic_Eevee, + .frontPicFemale = gMonFrontPic_EeveeF, + .frontPicSize = MON_COORDS_SIZE(40, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Eevee, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Eevee, 56, 48), - BACK_PIC_FEMALE(Eevee, 56, 48), + .backPic = gMonBackPic_Eevee, + .backPicFemale = gMonBackPic_EeveeF, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Eevee), - ICON(Eevee, 2), + .palette = gMonPalette_Eevee, + .shinyPalette = gMonShinyPalette_Eevee, + .iconSprite = gMonIcon_Eevee, + .iconPalIndex = 2, + FOOTPRINT(Eevee) + .levelUpLearnset = sEeveeLevelUpLearnset, + .teachableLearnset = sEeveeTeachableLearnset, + .formSpeciesIdTable = sEeveeFormSpeciesIdTable, + .formChangeTable = sEeveeFormChangeTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_JOLTEON}, {EVO_ITEM, ITEM_WATER_STONE, SPECIES_VAPOREON}, {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_FLAREON}, {EVO_FRIENDSHIP_DAY, 0, SPECIES_ESPEON}, {EVO_FRIENDSHIP_NIGHT, 0, SPECIES_UMBREON}, + {EVO_SPECIFIC_MAP, MAPSEC_VIRIDIAN_FOREST, SPECIES_LEAFEON}, {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_LEAFEON}, + {EVO_SPECIFIC_MAP, MAPSEC_SEAFOAM_ISLANDS, SPECIES_GLACEON}, {EVO_ITEM, ITEM_ICE_STONE, SPECIES_GLACEON}, {EVO_FRIENDSHIP_MOVE_TYPE, TYPE_FAIRY, SPECIES_SYLVEON}), }, @@ -10594,7 +13642,27 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = #if P_GIGANTAMAX_FORMS [SPECIES_EEVEE_GIGANTAMAX] = { - EEVEE_MISC_INFO, + .baseHP = 55, + .baseAttack = 55, + .baseDefense = 50, + .baseSpeed = 55, + .baseSpAttack = 45, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 92, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_RUN_AWAY, ABILITY_ADAPTABILITY, ABILITY_ANTICIPATION }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Eevee"), + .cryId = CRY_EEVEE, + .natDexNum = NATIONAL_DEX_EEVEE, + .categoryName = _("Evolution"), .height = 180, .weight = 0, .description = COMPOUND_STRING( @@ -10606,19 +13674,87 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(EeveeGigantamax, 64, 64), + .frontPic = gMonFrontPic_EeveeGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_EeveeGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(EeveeGigantamax, 64, 64), + .backPic = gMonBackPic_EeveeGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(EeveeGigantamax), - ICON(EeveeGigantamax, 2), + .palette = gMonPalette_EeveeGigantamax, + .shinyPalette = gMonShinyPalette_EeveeGigantamax, + .iconSprite = gMonIcon_EeveeGigantamax, + .iconPalIndex = 2, + FOOTPRINT(Eevee) .isGigantamax = TRUE, + .levelUpLearnset = sEeveeLevelUpLearnset, + .teachableLearnset = sEeveeTeachableLearnset, + .formSpeciesIdTable = sEeveeFormSpeciesIdTable, + .formChangeTable = sEeveeFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS + [SPECIES_EEVEE_PARTNER] = + { + .baseHP = 65, + .baseAttack = 75, + .baseDefense = 70, + .baseSpeed = 75, + .baseSpAttack = 65, + .baseSpDefense = 85, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 92, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_RUN_AWAY, ABILITY_ADAPTABILITY, ABILITY_ANTICIPATION }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Eevee"), + .cryId = CRY_EEVEE, + .natDexNum = NATIONAL_DEX_EEVEE, + .categoryName = _("Evolution"), + .height = 3, + .weight = 65, + .description = gEeveePokedexText, + .pokemonScale = 476, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Eevee, + .frontPicFemale = gMonFrontPic_EeveeF, + .frontPicSize = MON_COORDS_SIZE(40, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Eevee, + .frontAnimId = ANIM_V_STRETCH, + .backPic = gMonBackPic_Eevee, + .backPicFemale = gMonBackPic_EeveeF, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + .palette = gMonPalette_Eevee, + .shinyPalette = gMonShinyPalette_Eevee, + .iconSprite = gMonIcon_EeveePartner, + .iconPalIndex = 2, + #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE + .iconSpriteFemale = gMonIcon_EeveePartnerF, + .iconPalIndexFemale = 2, + #endif + FOOTPRINT(Eevee) + .cannotBeTraded = TRUE, + .allPerfectIVs = TRUE, + .levelUpLearnset = sEeveeLevelUpLearnset, + .teachableLearnset = sEeveeTeachableLearnset, + .formSpeciesIdTable = sEeveeFormSpeciesIdTable, + }, + [SPECIES_VAPOREON] = { .baseHP = 130, @@ -10627,15 +13763,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 65, .baseSpAttack = 110, .baseSpDefense = 95, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 196, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_WATER_ABSORB, ABILITY_WATER_ABSORB, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Vaporeon"), @@ -10653,17 +13789,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vaporeon, 48, 48), + .frontPic = gMonFrontPic_Vaporeon, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Vaporeon, .frontAnimId = ANIM_GLOW_BLUE, - BACK_PIC(Vaporeon, 64, 56), + .backPic = gMonBackPic_Vaporeon, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Vaporeon), - ICON(Vaporeon, 0), - .footprint = gMonFootprint_Vaporeon, - LEARNSETS(Vaporeon), + .palette = gMonPalette_Vaporeon, + .shinyPalette = gMonShinyPalette_Vaporeon, + .iconSprite = gMonIcon_Vaporeon, + .iconPalIndex = 0, + FOOTPRINT(Vaporeon) + .levelUpLearnset = sVaporeonLevelUpLearnset, + .teachableLearnset = sVaporeonTeachableLearnset, }, [SPECIES_JOLTEON] = @@ -10674,15 +13815,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 130, .baseSpAttack = 110, .baseSpDefense = 95, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 45, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 197, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_VOLT_ABSORB, ABILITY_VOLT_ABSORB, ABILITY_QUICK_FEET }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Jolteon"), @@ -10700,17 +13841,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Jolteon, 48, 48), + .frontPic = gMonFrontPic_Jolteon, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Jolteon, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Jolteon, 56, 56), + .backPic = gMonBackPic_Jolteon, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Jolteon), - ICON(Jolteon, 2), - .footprint = gMonFootprint_Jolteon, - LEARNSETS(Jolteon), + .palette = gMonPalette_Jolteon, + .shinyPalette = gMonShinyPalette_Jolteon, + .iconSprite = gMonIcon_Jolteon, + .iconPalIndex = 2, + FOOTPRINT(Jolteon) + .levelUpLearnset = sJolteonLevelUpLearnset, + .teachableLearnset = sJolteonTeachableLearnset, }, [SPECIES_FLAREON] = @@ -10721,15 +13867,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 65, .baseSpAttack = 95, .baseSpDefense = 110, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 198, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLASH_FIRE, ABILITY_GUTS }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Flareon"), @@ -10747,17 +13893,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Flareon, 56, 56), + .frontPic = gMonFrontPic_Flareon, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Flareon, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Flareon, 64, 56), + .backPic = gMonBackPic_Flareon, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Flareon), - ICON(Flareon, 3), - .footprint = gMonFootprint_Flareon, - LEARNSETS(Flareon), + .palette = gMonPalette_Flareon, + .shinyPalette = gMonShinyPalette_Flareon, + .iconSprite = gMonIcon_Flareon, + .iconPalIndex = 3, + FOOTPRINT(Flareon) + .levelUpLearnset = sFlareonLevelUpLearnset, + .teachableLearnset = sFlareonTeachableLearnset, }, #if P_GEN_2_CROSS_EVOS @@ -10769,15 +13920,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 110, .baseSpAttack = 130, .baseSpDefense = 95, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 45, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 197, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SYNCHRONIZE, ABILITY_SYNCHRONIZE, ABILITY_MAGIC_BOUNCE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Espeon"), @@ -10795,17 +13946,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Espeon, 48, 56), + .frontPic = gMonFrontPic_Espeon, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Espeon, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Espeon, 64, 56), + .backPic = gMonBackPic_Espeon, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Espeon), - ICON(Espeon, 2), - .footprint = gMonFootprint_Espeon, - LEARNSETS(Espeon), + .palette = gMonPalette_Espeon, + .shinyPalette = gMonShinyPalette_Espeon, + .iconSprite = gMonIcon_Espeon, + .iconPalIndex = 2, + FOOTPRINT(Espeon) + .levelUpLearnset = sEspeonLevelUpLearnset, + .teachableLearnset = sEspeonTeachableLearnset, }, [SPECIES_UMBREON] = @@ -10816,15 +13972,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 65, .baseSpAttack = 60, .baseSpDefense = 130, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 45, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 197, .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, .friendship = 35, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SYNCHRONIZE, ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Umbreon"), @@ -10842,17 +13998,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Umbreon, 40, 48), + .frontPic = gMonFrontPic_Umbreon, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Umbreon, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Umbreon, 64, 64), + .backPic = gMonBackPic_Umbreon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Umbreon), - ICON(Umbreon, 0), - .footprint = gMonFootprint_Umbreon, - LEARNSETS(Umbreon), + .palette = gMonPalette_Umbreon, + .shinyPalette = gMonShinyPalette_Umbreon, + .iconSprite = gMonIcon_Umbreon, + .iconPalIndex = 0, + FOOTPRINT(Umbreon) + .levelUpLearnset = sUmbreonLevelUpLearnset, + .teachableLearnset = sUmbreonTeachableLearnset, }, #endif //P_GEN_2_CROSS_EVOS @@ -10865,15 +14026,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 95, .baseSpAttack = 60, .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 196, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, .friendship = 35, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_LEAF_GUARD, ABILITY_LEAF_GUARD, ABILITY_CHLOROPHYLL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Leafeon"), @@ -10891,17 +14052,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Leafeon, 56, 48), + .frontPic = gMonFrontPic_Leafeon, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Leafeon, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Leafeon, 48, 64), + .backPic = gMonBackPic_Leafeon, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Leafeon), - ICON(Leafeon, 1), - .footprint = gMonFootprint_Leafeon, - LEARNSETS(Leafeon), + .palette = gMonPalette_Leafeon, + .shinyPalette = gMonShinyPalette_Leafeon, + .iconSprite = gMonIcon_Leafeon, + .iconPalIndex = 1, + FOOTPRINT(Leafeon) + .levelUpLearnset = sLeafeonLevelUpLearnset, + .teachableLearnset = sLeafeonTeachableLearnset, }, [SPECIES_GLACEON] = @@ -10912,15 +14078,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 65, .baseSpAttack = 130, .baseSpDefense = 95, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 45, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 196, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, .friendship = 35, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SNOW_CLOAK, ABILITY_SNOW_CLOAK, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Glaceon"), @@ -10938,17 +14104,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Glaceon, 64, 56), + .frontPic = gMonFrontPic_Glaceon, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Glaceon, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Glaceon, 56, 64), + .backPic = gMonBackPic_Glaceon, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Glaceon), - ICON(Glaceon, 0), - .footprint = gMonFootprint_Glaceon, - LEARNSETS(Glaceon), + .palette = gMonPalette_Glaceon, + .shinyPalette = gMonShinyPalette_Glaceon, + .iconSprite = gMonIcon_Glaceon, + .iconPalIndex = 0, + FOOTPRINT(Glaceon) + .levelUpLearnset = sGlaceonLevelUpLearnset, + .teachableLearnset = sGlaceonTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS @@ -10961,7 +14132,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 60, .baseSpAttack = 110, .baseSpDefense = 130, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 45, .expYield = 184, .evYield_SpDefense = 2, @@ -10969,7 +14140,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_CUTE_CHARM, ABILITY_CUTE_CHARM, ABILITY_PIXILATE }, .bodyColor = BODY_COLOR_PINK, .noFlip = TRUE, @@ -10988,17 +14159,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Sylveon, 48, 56), + .frontPic = gMonFrontPic_Sylveon, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Sylveon, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Sylveon, 64, 64), + .backPic = gMonBackPic_Sylveon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Sylveon), - ICON(Sylveon, 0), - .footprint = gMonFootprint_Sylveon, - LEARNSETS(Sylveon), + .palette = gMonPalette_Sylveon, + .shinyPalette = gMonShinyPalette_Sylveon, + .iconSprite = gMonIcon_Sylveon, + .iconPalIndex = 0, + FOOTPRINT(Sylveon) + .levelUpLearnset = sSylveonLevelUpLearnset, + .teachableLearnset = sSylveonTeachableLearnset, }, #endif //P_GEN_6_CROSS_EVOS #endif //P_FAMILY_EEVEE @@ -11012,15 +14188,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 40, .baseSpAttack = 85, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, - .expYield = 79, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 79 : 130, .evYield_SpAttack = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_TRACE, ABILITY_DOWNLOAD, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Porygon"), @@ -11038,18 +14214,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Porygon, 40, 40), + .frontPic = gMonFrontPic_Porygon, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Porygon, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Porygon, 56, 40), + .backPic = gMonBackPic_Porygon, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Porygon), - ICON(Porygon, 0), - .footprint = gMonFootprint_Porygon, - LEARNSETS(Porygon), - .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_PORYGON2}), + .palette = gMonPalette_Porygon, + .shinyPalette = gMonShinyPalette_Porygon, + .iconSprite = gMonIcon_Porygon, + .iconPalIndex = 0, + FOOTPRINT(Porygon) + .levelUpLearnset = sPorygonLevelUpLearnset, + .teachableLearnset = sPorygonTeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_UPGRADE, SPECIES_PORYGON2}, + {EVO_ITEM, ITEM_UPGRADE, SPECIES_PORYGON2}), }, #if P_GEN_2_CROSS_EVOS @@ -11061,7 +14243,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 60, .baseSpAttack = 105, .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, .expYield = 180, .evYield_SpAttack = 2, @@ -11069,7 +14251,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_TRACE, ABILITY_DOWNLOAD, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Porygon2"), @@ -11087,19 +14269,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Porygon2, 40, 40), + .frontPic = gMonFrontPic_Porygon2, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Porygon2, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 9, - BACK_PIC(Porygon2, 56, 48), + .backPic = gMonBackPic_Porygon2, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Porygon2), - ICON(Porygon2, 0), - .footprint = gMonFootprint_Porygon2, - LEARNSETS(Porygon2), - .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_PORYGON_Z}), + .palette = gMonPalette_Porygon2, + .shinyPalette = gMonShinyPalette_Porygon2, + .iconSprite = gMonIcon_Porygon2, + .iconPalIndex = 0, + FOOTPRINT(Porygon2) + .levelUpLearnset = sPorygon2LevelUpLearnset, + .teachableLearnset = sPorygon2TeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_DUBIOUS_DISC, SPECIES_PORYGON_Z}, + {EVO_ITEM, ITEM_DUBIOUS_DISC, SPECIES_PORYGON_Z}), }, #if P_GEN_4_CROSS_EVOS @@ -11111,15 +14299,21 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 90, .baseSpAttack = 135, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 30, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 268, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 241, + #else + .expYield = 185, + #endif .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_ADAPTABILITY, ABILITY_DOWNLOAD, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Porygon-Z"), @@ -11137,18 +14331,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(PorygonZ, 40, 56), + .frontPic = gMonFrontPic_PorygonZ, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Porygon_Z, .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, .enemyMonElevation = 12, - BACK_PIC(PorygonZ, 64, 56), + .backPic = gMonBackPic_PorygonZ, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(PorygonZ), - ICON(PorygonZ, 0), - .footprint = gMonFootprint_PorygonZ, - LEARNSETS(PorygonZ), + .palette = gMonPalette_PorygonZ, + .shinyPalette = gMonShinyPalette_PorygonZ, + .iconSprite = gMonIcon_PorygonZ, + .iconPalIndex = 0, + FOOTPRINT(PorygonZ) + .levelUpLearnset = sPorygonZLevelUpLearnset, + .teachableLearnset = sPorygonZTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_GEN_2_CROSS_EVOS @@ -11163,15 +14362,21 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 35, .baseSpAttack = 90, .baseSpDefense = 55, - .types = { TYPE_ROCK, TYPE_WATER }, + .types = MON_TYPES(TYPE_ROCK, TYPE_WATER), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 71, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 99, + #else + .expYield = 120, + #endif .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_SHELL_ARMOR, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Omanyte"), @@ -11189,17 +14394,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 22, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Omanyte, 40, 40), + .frontPic = gMonFrontPic_Omanyte, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Omanyte, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, - BACK_PIC(Omanyte, 48, 40), + .backPic = gMonBackPic_Omanyte, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Omanyte), - ICON(Omanyte, 0), - .footprint = gMonFootprint_Omanyte, - LEARNSETS(Omanyte), + .palette = gMonPalette_Omanyte, + .shinyPalette = gMonShinyPalette_Omanyte, + .iconSprite = gMonIcon_Omanyte, + .iconPalIndex = 0, + FOOTPRINT(Omanyte) + .levelUpLearnset = sOmanyteLevelUpLearnset, + .teachableLearnset = sOmanyteTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_OMASTAR}), }, @@ -11211,15 +14421,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 55, .baseSpAttack = 115, .baseSpDefense = 70, - .types = { TYPE_ROCK, TYPE_WATER }, + .types = MON_TYPES(TYPE_ROCK, TYPE_WATER), .catchRate = 45, - .expYield = 173, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 173 : 199, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_SHELL_ARMOR, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Omastar"), @@ -11237,17 +14447,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Omastar, 64, 56), + .frontPic = gMonFrontPic_Omastar, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Omastar, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Omastar, 56, 56), + .backPic = gMonBackPic_Omastar, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Omastar), - ICON(Omastar, 0), - .footprint = gMonFootprint_Omastar, - LEARNSETS(Omastar), + .palette = gMonPalette_Omastar, + .shinyPalette = gMonShinyPalette_Omastar, + .iconSprite = gMonIcon_Omastar, + .iconPalIndex = 0, + FOOTPRINT(Omastar) + .levelUpLearnset = sOmastarLevelUpLearnset, + .teachableLearnset = sOmastarTeachableLearnset, }, #endif //P_FAMILY_OMANYTE @@ -11260,15 +14475,21 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 55, .baseSpAttack = 55, .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_WATER }, + .types = MON_TYPES(TYPE_ROCK, TYPE_WATER), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 71, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 99, + #else + .expYield = 119, + #endif .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_BATTLE_ARMOR, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Kabuto"), @@ -11286,17 +14507,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kabuto, 40, 32), + .frontPic = gMonFrontPic_Kabuto, + .frontPicSize = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Kabuto, .frontAnimId = ANIM_H_SLIDE_WOBBLE, - BACK_PIC(Kabuto, 48, 40), + .backPic = gMonBackPic_Kabuto, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Kabuto), - ICON(Kabuto, 2), - .footprint = gMonFootprint_Kabuto, - LEARNSETS(Kabuto), + .palette = gMonPalette_Kabuto, + .shinyPalette = gMonShinyPalette_Kabuto, + .iconSprite = gMonIcon_Kabuto, + .iconPalIndex = 2, + FOOTPRINT(Kabuto) + .levelUpLearnset = sKabutoLevelUpLearnset, + .teachableLearnset = sKabutoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_KABUTOPS}), }, @@ -11308,15 +14534,21 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 80, .baseSpAttack = 65, .baseSpDefense = 70, - .types = { TYPE_ROCK, TYPE_WATER }, + .types = MON_TYPES(TYPE_ROCK, TYPE_WATER), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 173, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 199, + #else + .expYield = 201, + #endif .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_BATTLE_ARMOR, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Kabutops"), @@ -11334,51 +14566,49 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kabutops, 64, 64), + .frontPic = gMonFrontPic_Kabutops, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Kabutops, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Kabutops, 64, 56), + .backPic = gMonBackPic_Kabutops, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Kabutops), - ICON(Kabutops, 2), - .footprint = gMonFootprint_Kabutops, - LEARNSETS(Kabutops), + .palette = gMonPalette_Kabutops, + .shinyPalette = gMonShinyPalette_Kabutops, + .iconSprite = gMonIcon_Kabutops, + .iconPalIndex = 2, + FOOTPRINT(Kabutops) + .levelUpLearnset = sKabutopsLevelUpLearnset, + .teachableLearnset = sKabutopsTeachableLearnset, }, #endif //P_FAMILY_KABUTO #if P_FAMILY_AERODACTYL -#define AERODACTYL_MISC_INFO \ - .types = { TYPE_ROCK, TYPE_FLYING }, \ - .catchRate = 45, \ - .evYield_Speed = 2, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 35, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING },\ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Aerodactyl"), \ - .natDexNum = NATIONAL_DEX_AERODACTYL, \ - .categoryName = _("Fossil"), \ - .footprint = gMonFootprint_Aerodactyl, \ - LEARNSETS(Aerodactyl), \ - .formSpeciesIdTable = sAerodactylFormSpeciesIdTable,\ - .formChangeTable = sAerodactylFormChangeTable - [SPECIES_AERODACTYL] = { - AERODACTYL_MISC_INFO, .baseHP = 80, .baseAttack = 105, .baseDefense = 65, .baseSpeed = 130, .baseSpAttack = 60, .baseSpDefense = 75, - .expYield = 180, + .types = MON_TYPES(TYPE_ROCK, TYPE_FLYING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 180 : 202, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_ROCK_HEAD, ABILITY_PRESSURE, ABILITY_UNNERVE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Aerodactyl"), .cryId = CRY_AERODACTYL, + .natDexNum = NATIONAL_DEX_AERODACTYL, + .categoryName = _("Fossil"), .height = 18, .weight = 590, .description = COMPOUND_STRING( @@ -11390,31 +14620,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 302, .trainerOffset = 4, - FRONT_PIC(Aerodactyl, 64, 64), + .frontPic = gMonFrontPic_Aerodactyl, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Aerodactyl, .frontAnimId = ANIM_V_SLIDE_SLOW, .enemyMonElevation = 9, - BACK_PIC(Aerodactyl, 64, 48), + .backPic = gMonBackPic_Aerodactyl, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Aerodactyl), - ICON(Aerodactyl, 2), + .palette = gMonPalette_Aerodactyl, + .shinyPalette = gMonShinyPalette_Aerodactyl, + .iconSprite = gMonIcon_Aerodactyl, + .iconPalIndex = 2, + FOOTPRINT(Aerodactyl) + .levelUpLearnset = sAerodactylLevelUpLearnset, + .teachableLearnset = sAerodactylTeachableLearnset, + .formSpeciesIdTable = sAerodactylFormSpeciesIdTable, + .formChangeTable = sAerodactylFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_AERODACTYL_MEGA] = { - AERODACTYL_MISC_INFO, .baseHP = 80, .baseAttack = 135, .baseDefense = 85, .baseSpeed = 150, .baseSpAttack = 70, .baseSpDefense = 95, + .types = MON_TYPES(TYPE_ROCK, TYPE_FLYING), + .catchRate = 45, .expYield = 215, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Aerodactyl"), .cryId = CRY_AERODACTYL_MEGA, + .natDexNum = NATIONAL_DEX_AERODACTYL, + .categoryName = _("Fossil"), .height = 21, .weight = 790, .description = COMPOUND_STRING( @@ -11425,17 +14675,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 302, .trainerOffset = 4, - FRONT_PIC(AerodactylMega, 64, 64), + .frontPic = gMonFrontPic_AerodactylMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_AerodactylMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 7, - BACK_PIC(AerodactylMega, 64, 64), + .backPic = gMonBackPic_AerodactylMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(AerodactylMega), - ICON(AerodactylMega, 2), + .palette = gMonPalette_AerodactylMega, + .shinyPalette = gMonShinyPalette_AerodactylMega, + .iconSprite = gMonIcon_AerodactylMega, + .iconPalIndex = 2, + FOOTPRINT(Aerodactyl) .isMegaEvolution = TRUE, + .levelUpLearnset = sAerodactylLevelUpLearnset, + .teachableLearnset = sAerodactylTeachableLearnset, + .formSpeciesIdTable = sAerodactylFormSpeciesIdTable, + .formChangeTable = sAerodactylFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_AERODACTYL @@ -11450,9 +14709,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 5, .baseSpAttack = 40, .baseSpDefense = 85, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 50, - .expYield = 78, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 78 : 94, .evYield_HP = 1, .itemCommon = ITEM_LEFTOVERS, .itemRare = ITEM_LEFTOVERS, @@ -11460,7 +14719,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PICKUP, ABILITY_THICK_FAT, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Munchlax"), @@ -11478,53 +14737,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Munchlax, 48, 48), + .frontPic = gMonFrontPic_Munchlax, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Munchlax, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Munchlax, 48, 56), + .backPic = gMonBackPic_Munchlax, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_GROW, - PALETTES(Munchlax), - ICON(Munchlax, 3), - .footprint = gMonFootprint_Munchlax, - LEARNSETS(Munchlax), + .palette = gMonPalette_Munchlax, + .shinyPalette = gMonShinyPalette_Munchlax, + .iconSprite = gMonIcon_Munchlax, + .iconPalIndex = 3, + FOOTPRINT(Munchlax) + .levelUpLearnset = sMunchlaxLevelUpLearnset, + .teachableLearnset = sMunchlaxTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_SNORLAX}), }, #endif //P_GEN_4_CROSS_EVOS -#define SNORLAX_MISC_INFO \ - .baseHP = 160, \ - .baseAttack = 110, \ - .baseDefense = 65, \ - .baseSpeed = 30, \ - .baseSpAttack = 65, \ - .baseSpDefense = 110, \ - .types = { TYPE_NORMAL, TYPE_NORMAL }, \ - .catchRate = 25, \ - .expYield = 189, \ - .evYield_HP = 2, \ - .itemCommon = ITEM_LEFTOVERS, \ - .itemRare = ITEM_LEFTOVERS, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 40, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, \ - .abilities = { ABILITY_IMMUNITY, ABILITY_THICK_FAT, ABILITY_GLUTTONY }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Snorlax"), \ - .cryId = CRY_SNORLAX, \ - .natDexNum = NATIONAL_DEX_SNORLAX, \ - .categoryName = _("Sleeping"), \ - .footprint = gMonFootprint_Snorlax, \ - LEARNSETS(Snorlax), \ - .formSpeciesIdTable = sSnorlaxFormSpeciesIdTable, \ - .formChangeTable = sSnorlaxFormChangeTable - [SPECIES_SNORLAX] = { - SNORLAX_MISC_INFO, + .baseHP = 160, + .baseAttack = 110, + .baseDefense = 65, + .baseSpeed = 30, + .baseSpAttack = 65, + .baseSpDefense = 110, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 25, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 189 : 154, + .evYield_HP = 2, + .itemCommon = ITEM_LEFTOVERS, + .itemRare = ITEM_LEFTOVERS, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), + .abilities = { ABILITY_IMMUNITY, ABILITY_THICK_FAT, ABILITY_GLUTTONY }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Snorlax"), + .cryId = CRY_SNORLAX, + .natDexNum = NATIONAL_DEX_SNORLAX, + .categoryName = _("Sleeping"), .height = 21, .weight = 4600, .description = COMPOUND_STRING( @@ -11536,21 +14793,52 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 423, .trainerOffset = 11, - FRONT_PIC(Snorlax, 64, 64), + .frontPic = gMonFrontPic_Snorlax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Snorlax, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Snorlax, 64, 40), + .backPic = gMonBackPic_Snorlax, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Snorlax), - ICON(Snorlax, 3), + .palette = gMonPalette_Snorlax, + .shinyPalette = gMonShinyPalette_Snorlax, + .iconSprite = gMonIcon_Snorlax, + .iconPalIndex = 3, + FOOTPRINT(Snorlax) + .levelUpLearnset = sSnorlaxLevelUpLearnset, + .teachableLearnset = sSnorlaxTeachableLearnset, + .formSpeciesIdTable = sSnorlaxFormSpeciesIdTable, + .formChangeTable = sSnorlaxFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_SNORLAX_GIGANTAMAX] = { - SNORLAX_MISC_INFO, + .baseHP = 160, + .baseAttack = 110, + .baseDefense = 65, + .baseSpeed = 30, + .baseSpAttack = 65, + .baseSpDefense = 110, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 25, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 189 : 154, + .evYield_HP = 2, + .itemCommon = ITEM_LEFTOVERS, + .itemRare = ITEM_LEFTOVERS, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), + .abilities = { ABILITY_IMMUNITY, ABILITY_THICK_FAT, ABILITY_GLUTTONY }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Snorlax"), + .cryId = CRY_SNORLAX, + .natDexNum = NATIONAL_DEX_SNORLAX, + .categoryName = _("Sleeping"), .height = 350, .weight = 0, .description = COMPOUND_STRING( @@ -11562,294 +14850,388 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 423, .trainerOffset = 11, - FRONT_PIC(SnorlaxGigantamax, 64, 64), + .frontPic = gMonFrontPic_SnorlaxGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_SnorlaxGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SnorlaxGigantamax, 64, 64), + .backPic = gMonBackPic_SnorlaxGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SnorlaxGigantamax), - ICON(SnorlaxGigantamax, 3), + .palette = gMonPalette_SnorlaxGigantamax, + .shinyPalette = gMonShinyPalette_SnorlaxGigantamax, + .iconSprite = gMonIcon_SnorlaxGigantamax, + .iconPalIndex = 3, + FOOTPRINT(Snorlax) .isGigantamax = TRUE, + .levelUpLearnset = sSnorlaxLevelUpLearnset, + .teachableLearnset = sSnorlaxTeachableLearnset, + .formSpeciesIdTable = sSnorlaxFormSpeciesIdTable, + .formChangeTable = sSnorlaxFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SNORLAX #if P_FAMILY_ARTICUNO -#define ARTICUNO_MISC_INFO \ - .catchRate = 3, \ - .genderRatio = MON_GENDERLESS, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .speciesName = _("Articuno"), \ - .cryId = CRY_ARTICUNO, \ - .natDexNum = NATIONAL_DEX_ARTICUNO, \ - .height = 17, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 309, \ - .trainerOffset = 2, \ - .footprint = gMonFootprint_Articuno, \ - .formSpeciesIdTable = sArticunoFormSpeciesIdTable, \ - .isLegendary = TRUE - [SPECIES_ARTICUNO] = { - ARTICUNO_MISC_INFO, .baseHP = 90, .baseAttack = 85, .baseDefense = 100, .baseSpeed = 85, .baseSpAttack = 95, .baseSpDefense = 125, - .types = { TYPE_ICE, TYPE_FLYING }, + .types = MON_TYPES(TYPE_ICE, TYPE_FLYING), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 215, + #endif .evYield_SpDefense = 3, + .genderRatio = MON_GENDERLESS, .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_SNOW_CLOAK }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Articuno"), + .cryId = CRY_ARTICUNO, + .natDexNum = NATIONAL_DEX_ARTICUNO, .categoryName = _("Freeze"), + .height = 17, .weight = 554, .description = COMPOUND_STRING( "Articuno is a legendary bird Pokémon that\n" "can control ice. The flapping of its wings\n" "chills the air. As a result, it is said that\n" "when this Pokémon flies, snow will fall."), - FRONT_PIC(Articuno, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 2, + .frontPic = gMonFrontPic_Articuno, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Articuno, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Articuno, 64, 56), + .backPic = gMonBackPic_Articuno, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Articuno), - ICON(Articuno, 2), - LEARNSETS(Articuno), + .palette = gMonPalette_Articuno, + .shinyPalette = gMonShinyPalette_Articuno, + .iconSprite = gMonIcon_Articuno, + .iconPalIndex = 2, + FOOTPRINT(Articuno) + .isLegendary = TRUE, + .levelUpLearnset = sArticunoLevelUpLearnset, + .teachableLearnset = sArticunoTeachableLearnset, + .formSpeciesIdTable = sArticunoFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_ARTICUNO_GALARIAN] = { - ARTICUNO_MISC_INFO, .baseHP = 90, .baseAttack = 85, .baseDefense = 85, .baseSpeed = 95, .baseSpAttack = 125, .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), + .catchRate = 3, .expYield = 290, .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, .eggCycles = 120, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_COMPETITIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Articuno"), + .cryId = CRY_ARTICUNO, + .natDexNum = NATIONAL_DEX_ARTICUNO, .categoryName = _("Cruel"), + .height = 17, .weight = 509, .description = COMPOUND_STRING( "It fires beams that immobilize opponents\n" "as if they had been frozen solid.\n" "Its feather-like blades of psychic energy\n" "rip through thick iron sheets like paper."), - FRONT_PIC(ArticunoGalarian, 64, 56), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 2, + .frontPic = gMonFrontPic_ArticunoGalarian, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_ArticunoGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 10, - BACK_PIC(ArticunoGalarian, 64, 56), + .backPic = gMonBackPic_ArticunoGalarian, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ArticunoGalarian), - ICON(ArticunoGalarian, 2), - LEARNSETS(ArticunoGalarian), + .palette = gMonPalette_ArticunoGalarian, + .shinyPalette = gMonShinyPalette_ArticunoGalarian, + .iconSprite = gMonIcon_ArticunoGalarian, + .iconPalIndex = 2, + FOOTPRINT(Articuno) + .isLegendary = TRUE, .isGalarianForm = TRUE, + .levelUpLearnset = sArticunoGalarianLevelUpLearnset, + .teachableLearnset = sArticunoGalarianTeachableLearnset, + .formSpeciesIdTable = sArticunoFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ARTICUNO #if P_FAMILY_ZAPDOS -#define ZAPDOS_MISC_INFO \ - .catchRate = 3, \ - .genderRatio = MON_GENDERLESS, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Zapdos"), \ - .cryId = CRY_ZAPDOS, \ - .natDexNum = NATIONAL_DEX_ZAPDOS, \ - .height = 16, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 318, \ - .trainerOffset = 3, \ - .footprint = gMonFootprint_Zapdos, \ - .formSpeciesIdTable = sZapdosFormSpeciesIdTable, \ - .isLegendary = TRUE - [SPECIES_ZAPDOS] = { - ZAPDOS_MISC_INFO, .baseHP = 90, .baseAttack = 90, .baseDefense = 85, .baseSpeed = 100, .baseSpAttack = 125, .baseSpDefense = 90, - .types = { TYPE_ELECTRIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FLYING), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 216, + #endif .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, .eggCycles = 80, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_STATIC }, - #else - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, - #endif + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_STATIC }, + #else + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + #endif + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Zapdos"), + .cryId = CRY_ZAPDOS, + .natDexNum = NATIONAL_DEX_ZAPDOS, .categoryName = _("Electric"), + .height = 16, .weight = 526, .description = COMPOUND_STRING( "Zapdos is a legendary bird Pokémon that\n" "has the ability to control electricity.\n" "It usually lives in thunderclouds. It gains\n" "power if it is stricken by lightning bolts."), - FRONT_PIC(Zapdos, 64, 56), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 318, + .trainerOffset = 3, + .frontPic = gMonFrontPic_Zapdos, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Zapdos, .frontAnimId = ANIM_FLASH_YELLOW, .enemyMonElevation = 8, - BACK_PIC(Zapdos, 64, 40), + .backPic = gMonBackPic_Zapdos, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Zapdos), - ICON(Zapdos, 0), - LEARNSETS(Zapdos), + .palette = gMonPalette_Zapdos, + .shinyPalette = gMonShinyPalette_Zapdos, + .iconSprite = gMonIcon_Zapdos, + .iconPalIndex = 0, + FOOTPRINT(Zapdos) + .isLegendary = TRUE, + .levelUpLearnset = sZapdosLevelUpLearnset, + .teachableLearnset = sZapdosTeachableLearnset, + .formSpeciesIdTable = sZapdosFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_ZAPDOS_GALARIAN] = { - ZAPDOS_MISC_INFO, .baseHP = 90, .baseAttack = 125, .baseDefense = 90, .baseSpeed = 100, .baseSpAttack = 85, .baseSpDefense = 90, - .types = { TYPE_FIGHTING, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_FLYING), + .catchRate = 3, .expYield = 290, .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, .eggCycles = 120, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_DEFIANT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Zapdos"), + .cryId = CRY_ZAPDOS, + .natDexNum = NATIONAL_DEX_ZAPDOS, .categoryName = _("Strong Legs"), + .height = 16, .weight = 582, .description = COMPOUND_STRING( "When its feathers rub together, they\n" "produce a crackling sound like the\n" "zapping of electricity. Apparently, it runs\n" "through the mountains at over 180 mph."), - FRONT_PIC(ZapdosGalarian, 48, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 318, + .trainerOffset = 3, + .frontPic = gMonFrontPic_ZapdosGalarian, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_ZapdosGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZapdosGalarian, 56, 48), + .backPic = gMonBackPic_ZapdosGalarian, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZapdosGalarian), - ICON(ZapdosGalarian, 0), - LEARNSETS(ZapdosGalarian), + .palette = gMonPalette_ZapdosGalarian, + .shinyPalette = gMonShinyPalette_ZapdosGalarian, + .iconSprite = gMonIcon_ZapdosGalarian, + .iconPalIndex = 0, + FOOTPRINT(Zapdos) + .isLegendary = TRUE, .isGalarianForm = TRUE, + .levelUpLearnset = sZapdosGalarianLevelUpLearnset, + .teachableLearnset = sZapdosGalarianTeachableLearnset, + .formSpeciesIdTable = sZapdosFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ZAPDOS #if P_FAMILY_MOLTRES -#define MOLTRES_MISC_INFO \ - .catchRate = 3, \ - .genderRatio = MON_GENDERLESS, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .speciesName = _("Moltres"), \ - .cryId = CRY_MOLTRES, \ - .natDexNum = NATIONAL_DEX_MOLTRES, \ - .height = 20, \ - .pokemonScale = 270, \ - .pokemonOffset = 0, \ - .trainerScale = 387, \ - .trainerOffset = 8, \ - .footprint = gMonFootprint_Moltres, \ - .formSpeciesIdTable = sMoltresFormSpeciesIdTable, \ - .isLegendary = TRUE - [SPECIES_MOLTRES] = { - MOLTRES_MISC_INFO, .baseHP = 90, .baseAttack = 100, .baseDefense = 90, .baseSpeed = 90, .baseSpAttack = 125, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FLYING), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 217, + #endif .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FLAME_BODY }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Moltres"), + .cryId = CRY_MOLTRES, + .natDexNum = NATIONAL_DEX_MOLTRES, .categoryName = _("Flame"), + .height = 20, .weight = 600, .description = COMPOUND_STRING( "Moltres is a legendary bird Pokémon\n" "that can control fire. If injured, it is said\n" "to dip its body in the molten magma of\n" "a volcano to burn and heal itself."), - FRONT_PIC(Moltres, 64, 64), + .pokemonScale = 270, + .pokemonOffset = 0, + .trainerScale = 387, + .trainerOffset = 8, + .frontPic = gMonFrontPic_Moltres, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Moltres, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Moltres, 64, 56), + .backPic = gMonBackPic_Moltres, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Moltres), - ICON(Moltres, 0), - LEARNSETS(Moltres), + .palette = gMonPalette_Moltres, + .shinyPalette = gMonShinyPalette_Moltres, + .iconSprite = gMonIcon_Moltres, + .iconPalIndex = 0, + FOOTPRINT(Moltres) + .isLegendary = TRUE, + .levelUpLearnset = sMoltresLevelUpLearnset, + .teachableLearnset = sMoltresTeachableLearnset, + .formSpeciesIdTable = sMoltresFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_MOLTRES_GALARIAN] = { - MOLTRES_MISC_INFO, .baseHP = 90, .baseAttack = 85, .baseDefense = 90, .baseSpeed = 90, .baseSpAttack = 100, .baseSpDefense = 125, - .types = { TYPE_DARK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FLYING), + .catchRate = 3, .expYield = 290, .evYield_SpDefense = 3, + .genderRatio = MON_GENDERLESS, .eggCycles = 120, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_BERSERK, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Moltres"), + .cryId = CRY_MOLTRES, + .natDexNum = NATIONAL_DEX_MOLTRES, .categoryName = _("Malevolent"), + .height = 20, .weight = 660, .description = COMPOUND_STRING( "This Pokémon's sinister, flame-like aura\n" "will consume the spirit of any creature\n" "it hits. Victims become burned-out\n" "shadows of themselves."), - FRONT_PIC(MoltresGalarian, 64, 64), + .pokemonScale = 270, + .pokemonOffset = 0, + .trainerScale = 387, + .trainerOffset = 8, + .frontPic = gMonFrontPic_MoltresGalarian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_MoltresGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MoltresGalarian, 56, 56), + .backPic = gMonBackPic_MoltresGalarian, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MoltresGalarian), - ICON(MoltresGalarian, 0), - LEARNSETS(MoltresGalarian), + .palette = gMonPalette_MoltresGalarian, + .shinyPalette = gMonShinyPalette_MoltresGalarian, + .iconSprite = gMonIcon_MoltresGalarian, + .iconPalIndex = 0, + FOOTPRINT(Moltres) + .isLegendary = TRUE, .isGalarianForm = TRUE, + .levelUpLearnset = sMoltresGalarianLevelUpLearnset, + .teachableLearnset = sMoltresGalarianTeachableLearnset, + .formSpeciesIdTable = sMoltresFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_MOLTRES @@ -11863,16 +15245,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 45, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 67, .evYield_Attack = 1, .itemRare = ITEM_DRAGON_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_MARVEL_SCALE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Dratini"), @@ -11890,17 +15272,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 386, .trainerOffset = 6, - FRONT_PIC(Dratini, 56, 48), + .frontPic = gMonFrontPic_Dratini, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Dratini, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dratini, 56, 48), + .backPic = gMonBackPic_Dratini, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Dratini), - ICON(Dratini, 0), - .footprint = gMonFootprint_Dratini, - LEARNSETS(Dratini), + .palette = gMonPalette_Dratini, + .shinyPalette = gMonShinyPalette_Dratini, + .iconSprite = gMonIcon_Dratini, + .iconPalIndex = 0, + FOOTPRINT(Dratini) + .levelUpLearnset = sDratiniLevelUpLearnset, + .teachableLearnset = sDratiniTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_DRAGONAIR}), }, @@ -11912,16 +15299,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 70, .baseSpAttack = 70, .baseSpDefense = 70, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 45, - .expYield = 147, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 144, .evYield_Attack = 2, .itemRare = ITEM_DRAGON_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_MARVEL_SCALE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Dragonair"), @@ -11939,17 +15326,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 411, .trainerOffset = 5, - FRONT_PIC(Dragonair, 64, 64), + .frontPic = gMonFrontPic_Dragonair, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Dragonair, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Dragonair, 40, 56), + .backPic = gMonBackPic_Dragonair, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Dragonair), - ICON(Dragonair, 0), - .footprint = gMonFootprint_Dragonair, - LEARNSETS(Dragonair), + .palette = gMonPalette_Dragonair, + .shinyPalette = gMonShinyPalette_Dragonair, + .iconSprite = gMonIcon_Dragonair, + .iconPalIndex = 0, + FOOTPRINT(Dragonair) + .levelUpLearnset = sDragonairLevelUpLearnset, + .teachableLearnset = sDragonairTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 55, SPECIES_DRAGONITE}), }, @@ -11961,16 +15353,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 80, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_DRAGON, TYPE_FLYING }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FLYING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 218, + #endif .evYield_Attack = 3, .itemRare = ITEM_DRAGON_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_MULTISCALE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Dragonite"), @@ -11988,52 +15386,55 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 4, - FRONT_PIC(Dragonite, 64, 64), + .frontPic = gMonFrontPic_Dragonite, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Dragonite, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Dragonite, 64, 64), + .backPic = gMonBackPic_Dragonite, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Dragonite), - ICON(Dragonite, 2), - .footprint = gMonFootprint_Dragonite, - LEARNSETS(Dragonite), + .palette = gMonPalette_Dragonite, + .shinyPalette = gMonShinyPalette_Dragonite, + .iconSprite = gMonIcon_Dragonite, + .iconPalIndex = 2, + FOOTPRINT(Dragonite) + .levelUpLearnset = sDragoniteLevelUpLearnset, + .teachableLearnset = sDragoniteTeachableLearnset, }, #endif //P_FAMILY_DRATINI #if P_FAMILY_MEWTWO -#define SPECIES_MEWTWO_MISC_INFO \ - .catchRate = 3, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Mewtwo"), \ - .natDexNum = NATIONAL_DEX_MEWTWO, \ - .categoryName = _("Genetic"), \ - .footprint = gMonFootprint_Mewtwo, \ - LEARNSETS(Mewtwo), \ - .formSpeciesIdTable = sMewtwoFormSpeciesIdTable, \ - .formChangeTable = sMewtwoFormChangeTable, \ - .isLegendary = TRUE - [SPECIES_MEWTWO] = { - SPECIES_MEWTWO_MISC_INFO, .baseHP = 106, .baseAttack = 110, .baseDefense = 90, .baseSpeed = 130, .baseSpAttack = 154, .baseSpDefense = 90, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 340, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 306, + #else + .expYield = 220, + #endif + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_UNNERVE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Mewtwo"), .cryId = CRY_MEWTWO, + .natDexNum = NATIONAL_DEX_MEWTWO, + .categoryName = _("Genetic"), .height = 20, .weight = 1220, .description = COMPOUND_STRING( @@ -12045,32 +15446,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 4, - FRONT_PIC(Mewtwo, 64, 64), + .frontPic = gMonFrontPic_Mewtwo, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Mewtwo, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Mewtwo, 64, 64), + .backPic = gMonBackPic_Mewtwo, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Mewtwo), - ICON(Mewtwo, 2), + .palette = gMonPalette_Mewtwo, + .shinyPalette = gMonShinyPalette_Mewtwo, + .iconSprite = gMonIcon_Mewtwo, + .iconPalIndex = 2, + FOOTPRINT(Mewtwo) + .isLegendary = TRUE, + .levelUpLearnset = sMewtwoLevelUpLearnset, + .teachableLearnset = sMewtwoTeachableLearnset, + .formSpeciesIdTable = sMewtwoFormSpeciesIdTable, + .formChangeTable = sMewtwoFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_MEWTWO_MEGA_X] = { - SPECIES_MEWTWO_MISC_INFO, .baseHP = 106, .baseAttack = 190, .baseDefense = 100, .baseSpeed = 130, .baseSpAttack = 154, .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_FIGHTING }, - .expYield = 351, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FIGHTING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 390 : 351, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_STEADFAST, ABILITY_STEADFAST, ABILITY_STEADFAST }, - .isMegaEvolution = TRUE, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Mewtwo"), .cryId = CRY_MEWTWO_MEGA_X, + .natDexNum = NATIONAL_DEX_MEWTWO, + .categoryName = _("Genetic"), .height = 23, .weight = 1270, .description = COMPOUND_STRING( @@ -12082,31 +15502,51 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 4, - FRONT_PIC(MewtwoMegaX, 48, 64), + .frontPic = gMonFrontPic_MewtwoMegaX, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_MewtwoMegaX, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MewtwoMegaX, 56, 64), + .backPic = gMonBackPic_MewtwoMegaX, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(MewtwoMegaX), - ICON(MewtwoMegaX, 2), + .palette = gMonPalette_MewtwoMegaX, + .shinyPalette = gMonShinyPalette_MewtwoMegaX, + .iconSprite = gMonIcon_MewtwoMegaX, + .iconPalIndex = 2, + FOOTPRINT(Mewtwo) + .isLegendary = TRUE, + .isMegaEvolution = TRUE, + .levelUpLearnset = sMewtwoLevelUpLearnset, + .teachableLearnset = sMewtwoTeachableLearnset, + .formSpeciesIdTable = sMewtwoFormSpeciesIdTable, + .formChangeTable = sMewtwoFormChangeTable, }, [SPECIES_MEWTWO_MEGA_Y] = { - SPECIES_MEWTWO_MISC_INFO, .baseHP = 106, .baseAttack = 150, .baseDefense = 70, .baseSpeed = 140, .baseSpAttack = 194, .baseSpDefense = 120, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, - .expYield = 351, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 390 : 351, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_INSOMNIA, ABILITY_INSOMNIA, ABILITY_INSOMNIA }, - .isMegaEvolution = TRUE, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Mewtwo"), .cryId = CRY_MEWTWO_MEGA_Y, + .natDexNum = NATIONAL_DEX_MEWTWO, + .categoryName = _("Genetic"), .height = 15, .weight = 330, .description = COMPOUND_STRING( @@ -12118,16 +15558,27 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 4, - FRONT_PIC(MewtwoMegaY, 40, 64), + .frontPic = gMonFrontPic_MewtwoMegaY, + .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_MewtwoMegaY, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 3, - BACK_PIC(MewtwoMegaY, 64, 64), + .backPic = gMonBackPic_MewtwoMegaY, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(MewtwoMegaY), - ICON(MewtwoMegaY, 2), + .palette = gMonPalette_MewtwoMegaY, + .shinyPalette = gMonShinyPalette_MewtwoMegaY, + .iconSprite = gMonIcon_MewtwoMegaY, + .iconPalIndex = 2, + FOOTPRINT(Mewtwo) + .isLegendary = TRUE, + .isMegaEvolution = TRUE, + .levelUpLearnset = sMewtwoLevelUpLearnset, + .teachableLearnset = sMewtwoTeachableLearnset, + .formSpeciesIdTable = sMewtwoFormSpeciesIdTable, + .formChangeTable = sMewtwoFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_MEWTWO @@ -12141,9 +15592,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .baseSpeed = 100, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 64, + #endif .evYield_HP = 3, .itemCommon = ITEM_LUM_BERRY, .itemRare = ITEM_LUM_BERRY, @@ -12151,10 +15608,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_SYNCHRONIZE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SYNCHRONIZE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PINK, - .isMythical = TRUE, .speciesName = _("Mew"), .cryId = CRY_MEW, .natDexNum = NATIONAL_DEX_MEW, @@ -12170,18 +15626,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mew, 64, 48), + .frontPic = gMonFrontPic_Mew, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Mew, .frontAnimId = ANIM_ZIGZAG_SLOW, .enemyMonElevation = 11, - BACK_PIC(Mew, 64, 64), + .backPic = gMonBackPic_Mew, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Mew), - ICON(Mew, 0), - .footprint = gMonFootprint_Mew, - LEARNSETS(Mew), + .palette = gMonPalette_Mew, + .shinyPalette = gMonShinyPalette_Mew, + .iconSprite = gMonIcon_Mew, + .iconPalIndex = 0, + FOOTPRINT(Mew) + .isMythical = TRUE, + .levelUpLearnset = sMewLevelUpLearnset, + .teachableLearnset = sMewTeachableLearnset, }, #endif //P_FAMILY_MEW diff --git a/src/data/pokemon/species_info/gen_2.h b/src/data/pokemon/species_info/gen_2_families.h similarity index 59% rename from src/data/pokemon/species_info/gen_2.h rename to src/data/pokemon/species_info/gen_2_families.h index 87ed9e132..75fa9ac1e 100644 --- a/src/data/pokemon/species_info/gen_2.h +++ b/src/data/pokemon/species_info/gen_2_families.h @@ -12,7 +12,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 45, .baseSpAttack = 49, .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 64, .evYield_SpDefense = 1, @@ -20,7 +20,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LEAF_GUARD }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Chikorita"), @@ -38,17 +38,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chikorita, 48, 48), + .frontPic = gMonFrontPic_Chikorita, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Chikorita, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Chikorita, 56, 48), + .backPic = gMonBackPic_Chikorita, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Chikorita), - ICON(Chikorita, 1), - .footprint = gMonFootprint_Chikorita, - LEARNSETS(Chikorita), + .palette = gMonPalette_Chikorita, + .shinyPalette = gMonShinyPalette_Chikorita, + .iconSprite = gMonIcon_Chikorita, + .iconPalIndex = 1, + FOOTPRINT(Chikorita) + .levelUpLearnset = sChikoritaLevelUpLearnset, + .teachableLearnset = sChikoritaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_BAYLEEF}), }, @@ -60,16 +65,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 60, .baseSpAttack = 63, .baseSpDefense = 80, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 141, .evYield_Defense = 1, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LEAF_GUARD }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Bayleef"), @@ -87,17 +92,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bayleef, 48, 64), + .frontPic = gMonFrontPic_Bayleef, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Bayleef, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Bayleef, 64, 56), + .backPic = gMonBackPic_Bayleef, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Bayleef), - ICON(Bayleef, 1), - .footprint = gMonFootprint_Bayleef, - LEARNSETS(Bayleef), + .palette = gMonPalette_Bayleef, + .shinyPalette = gMonShinyPalette_Bayleef, + .iconSprite = gMonIcon_Bayleef, + .iconPalIndex = 1, + FOOTPRINT(Bayleef) + .levelUpLearnset = sBayleefLevelUpLearnset, + .teachableLearnset = sBayleefTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_MEGANIUM}), }, @@ -109,16 +119,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 80, .baseSpAttack = 83, .baseSpDefense = 100, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 263, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 236, + #else + .expYield = 208, + #endif .evYield_Defense = 1, .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LEAF_GUARD }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Meganium"), @@ -136,19 +152,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 277, .trainerOffset = 1, - FRONT_PIC(Meganium, 48, 64), - FRONT_PIC_FEMALE(Meganium, 48, 64), + .frontPic = gMonFrontPic_Meganium, + .frontPicFemale = gMonFrontPic_MeganiumF, + .frontPicSize = MON_COORDS_SIZE(48, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Meganium, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Meganium, 56, 64), - BACK_PIC_FEMALE(Meganium, 56, 64), + .backPic = gMonBackPic_Meganium, + .backPicFemale = gMonBackPic_MeganiumF, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Meganium), - ICON(Meganium, 1), - .footprint = gMonFootprint_Meganium, - LEARNSETS(Meganium), + .palette = gMonPalette_Meganium, + .shinyPalette = gMonShinyPalette_Meganium, + .iconSprite = gMonIcon_Meganium, + .iconPalIndex = 1, + FOOTPRINT(Meganium) + .levelUpLearnset = sMeganiumLevelUpLearnset, + .teachableLearnset = sMeganiumTeachableLearnset, }, #endif //P_FAMILY_CHIKORITA @@ -161,15 +184,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 65, .baseSpAttack = 60, .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 65, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_FLASH_FIRE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Cyndaquil"), @@ -187,17 +210,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cyndaquil, 48, 40), + .frontPic = gMonFrontPic_Cyndaquil, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Cyndaquil, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Cyndaquil, 64, 64), + .backPic = gMonBackPic_Cyndaquil, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Cyndaquil), - ICON(Cyndaquil, 3), - .footprint = gMonFootprint_Cyndaquil, - LEARNSETS(Cyndaquil), + .palette = gMonPalette_Cyndaquil, + .shinyPalette = gMonShinyPalette_Cyndaquil, + .iconSprite = gMonIcon_Cyndaquil, + .iconPalIndex = 3, + FOOTPRINT(Cyndaquil) + .levelUpLearnset = sCyndaquilLevelUpLearnset, + .teachableLearnset = sCyndaquilTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_QUILAVA}), }, @@ -209,7 +237,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 80, .baseSpAttack = 80, .baseSpDefense = 65, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 142, .evYield_Speed = 1, @@ -218,7 +246,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_FLASH_FIRE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Quilava"), @@ -236,48 +264,56 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Quilava, 64, 48), + .frontPic = gMonFrontPic_Quilava, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Quilava, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Quilava, 64, 64), + .backPic = gMonBackPic_Quilava, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Quilava), - ICON(Quilava, 3), - .footprint = gMonFootprint_Quilava, - LEARNSETS(Quilava), + .palette = gMonPalette_Quilava, + .shinyPalette = gMonShinyPalette_Quilava, + .iconSprite = gMonIcon_Quilava, + .iconPalIndex = 3, + FOOTPRINT(Quilava) + .levelUpLearnset = sQuilavaLevelUpLearnset, + .teachableLearnset = sQuilavaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_TYPHLOSION}, {EVO_NONE, 0, SPECIES_TYPHLOSION_HISUIAN}), }, -#define TYPHLOSION_MISC_INFO \ - .catchRate = 45, \ - .expYield = 240, \ - .evYield_SpAttack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Typhlosion"), \ - .cryId = CRY_TYPHLOSION, \ - .natDexNum = NATIONAL_DEX_TYPHLOSION, \ - .footprint = gMonFootprint_Typhlosion, \ - .formSpeciesIdTable = sTyphlosionFormSpeciesIdTable +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define TYPHLOSION_EXP_YIELD 267 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define TYPHLOSION_EXP_YIELD 240 +#else + #define TYPHLOSION_EXP_YIELD 209 +#endif [SPECIES_TYPHLOSION] = { - TYPHLOSION_MISC_INFO, .baseHP = 78, .baseAttack = 84, .baseDefense = 78, .baseSpeed = 100, .baseSpAttack = 109, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 45, + .expYield = TYPHLOSION_EXP_YIELD, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_FLASH_FIRE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Typhlosion"), + .cryId = CRY_TYPHLOSION, + .natDexNum = NATIONAL_DEX_TYPHLOSION, .categoryName = _("Volcano"), .height = 17, .weight = 795, @@ -290,31 +326,49 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 268, .trainerOffset = 1, - FRONT_PIC(Typhlosion, 56, 64), + .frontPic = gMonFrontPic_Typhlosion, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Typhlosion, .frontAnimId = ANIM_V_SHAKE, .frontAnimDelay = 20, - BACK_PIC(Typhlosion, 64, 64), + .backPic = gMonBackPic_Typhlosion, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Typhlosion), - ICON(Typhlosion, 3), - LEARNSETS(Typhlosion), + .palette = gMonPalette_Typhlosion, + .shinyPalette = gMonShinyPalette_Typhlosion, + .iconSprite = gMonIcon_Typhlosion, + .iconPalIndex = 3, + FOOTPRINT(Typhlosion) + .levelUpLearnset = sTyphlosionLevelUpLearnset, + .teachableLearnset = sTyphlosionTeachableLearnset, + .formSpeciesIdTable = sTyphlosionFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_TYPHLOSION_HISUIAN] = { - TYPHLOSION_MISC_INFO, .baseHP = 73, .baseAttack = 84, .baseDefense = 78, .baseSpeed = 95, .baseSpAttack = 119, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_GHOST }, + .types = MON_TYPES(TYPE_FIRE, TYPE_GHOST), + .catchRate = 45, + .expYield = TYPHLOSION_EXP_YIELD, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_FRISK }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Typhlosion"), + .cryId = CRY_TYPHLOSION, + .natDexNum = NATIONAL_DEX_TYPHLOSION, .categoryName = _("Ghost Flame"), .height = 16, .weight = 698, @@ -327,17 +381,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 268, .trainerOffset = 1, - FRONT_PIC(TyphlosionHisuian, 48, 64), + .frontPic = gMonFrontPic_TyphlosionHisuian, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_TyphlosionHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(TyphlosionHisuian, 64, 56), + .backPic = gMonBackPic_TyphlosionHisuian, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(TyphlosionHisuian), - ICON(TyphlosionHisuian, 1), - LEARNSETS(TyphlosionHisuian), + .palette = gMonPalette_TyphlosionHisuian, + .shinyPalette = gMonShinyPalette_TyphlosionHisuian, + .iconSprite = gMonIcon_TyphlosionHisuian, + .iconPalIndex = 1, + FOOTPRINT(Typhlosion) .isHisuianForm = TRUE, + .levelUpLearnset = sTyphlosionHisuianLevelUpLearnset, + .teachableLearnset = sTyphlosionHisuianTeachableLearnset, + .formSpeciesIdTable = sTyphlosionFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_CYNDAQUIL @@ -351,15 +412,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 43, .baseSpAttack = 44, .baseSpDefense = 48, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, - .expYield = 63, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 63 : 66, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Totodile"), @@ -377,17 +438,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Totodile, 40, 40), + .frontPic = gMonFrontPic_Totodile, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Totodile, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Totodile, 56, 48), + .backPic = gMonBackPic_Totodile, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Totodile), - ICON(Totodile, 0), - .footprint = gMonFootprint_Totodile, - LEARNSETS(Totodile), + .palette = gMonPalette_Totodile, + .shinyPalette = gMonShinyPalette_Totodile, + .iconSprite = gMonIcon_Totodile, + .iconPalIndex = 0, + FOOTPRINT(Totodile) + .levelUpLearnset = sTotodileLevelUpLearnset, + .teachableLearnset = sTotodileTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_CROCONAW}), }, @@ -399,16 +465,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 58, .baseSpAttack = 59, .baseSpDefense = 63, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 143, .evYield_Attack = 1, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLUE, .noFlip = TRUE, @@ -427,17 +493,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Croconaw, 48, 56), + .frontPic = gMonFrontPic_Croconaw, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Croconaw, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Croconaw, 56, 64), + .backPic = gMonBackPic_Croconaw, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Croconaw), - ICON(Croconaw, 0), - .footprint = gMonFootprint_Croconaw, - LEARNSETS(Croconaw), + .palette = gMonPalette_Croconaw, + .shinyPalette = gMonShinyPalette_Croconaw, + .iconSprite = gMonIcon_Croconaw, + .iconPalIndex = 0, + FOOTPRINT(Croconaw) + .levelUpLearnset = sCroconawLevelUpLearnset, + .teachableLearnset = sCroconawTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_FERALIGATR}), }, @@ -449,16 +520,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 78, .baseSpAttack = 79, .baseSpDefense = 83, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 265, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 239, + #else + .expYield = 210, + #endif .evYield_Attack = 2, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Feraligatr"), @@ -476,18 +553,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 342, .trainerOffset = 7, - FRONT_PIC(Feraligatr, 64, 64), + .frontPic = gMonFrontPic_Feraligatr, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Feraligatr, .frontAnimId = ANIM_H_SHAKE, .frontAnimDelay = 5, - BACK_PIC(Feraligatr, 56, 64), + .backPic = gMonBackPic_Feraligatr, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Feraligatr), - ICON(Feraligatr, 0), - .footprint = gMonFootprint_Feraligatr, - LEARNSETS(Feraligatr), + .palette = gMonPalette_Feraligatr, + .shinyPalette = gMonShinyPalette_Feraligatr, + .iconSprite = gMonIcon_Feraligatr, + .iconPalIndex = 0, + FOOTPRINT(Feraligatr) + .levelUpLearnset = sFeraligatrLevelUpLearnset, + .teachableLearnset = sFeraligatrTeachableLearnset, }, #endif //P_FAMILY_TOTODILE @@ -500,15 +582,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 20, .baseSpAttack = 35, .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, - .expYield = 43, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 43 : 57, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_KEEN_EYE, ABILITY_FRISK }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Sentret"), @@ -526,17 +608,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sentret, 40, 64), + .frontPic = gMonFrontPic_Sentret, + .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Sentret, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sentret, 48, 64), + .backPic = gMonBackPic_Sentret, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Sentret), - ICON(Sentret, 2), - .footprint = gMonFootprint_Sentret, - LEARNSETS(Sentret), + .palette = gMonPalette_Sentret, + .shinyPalette = gMonShinyPalette_Sentret, + .iconSprite = gMonIcon_Sentret, + .iconPalIndex = 2, + FOOTPRINT(Sentret) + .levelUpLearnset = sSentretLevelUpLearnset, + .teachableLearnset = sSentretTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_FURRET}), }, @@ -548,15 +635,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 90, .baseSpAttack = 45, .baseSpDefense = 55, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 90, - .expYield = 145, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 145 : 116, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_KEEN_EYE, ABILITY_FRISK }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Furret"), @@ -574,17 +661,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Furret, 48, 56), + .frontPic = gMonFrontPic_Furret, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Furret, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Furret, 64, 56), + .backPic = gMonBackPic_Furret, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Furret), - ICON(Furret, 2), - .footprint = gMonFootprint_Furret, - LEARNSETS(Furret), + .palette = gMonPalette_Furret, + .shinyPalette = gMonShinyPalette_Furret, + .iconSprite = gMonIcon_Furret, + .iconPalIndex = 2, + FOOTPRINT(Furret) + .levelUpLearnset = sFurretLevelUpLearnset, + .teachableLearnset = sFurretTeachableLearnset, }, #endif //P_FAMILY_SENTRET @@ -597,15 +689,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 50, .baseSpAttack = 36, .baseSpDefense = 56, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 255, - .expYield = 52, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 52 : 58, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INSOMNIA, ABILITY_KEEN_EYE, ABILITY_TINTED_LENS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Hoothoot"), @@ -623,17 +715,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Hoothoot, 40, 40), + .frontPic = gMonFrontPic_Hoothoot, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Hoothoot, .frontAnimId = ANIM_V_SLIDE_SLOW, - BACK_PIC(Hoothoot, 56, 64), + .backPic = gMonBackPic_Hoothoot, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Hoothoot), - ICON(Hoothoot, 2), - .footprint = gMonFootprint_Hoothoot, - LEARNSETS(Hoothoot), + .palette = gMonPalette_Hoothoot, + .shinyPalette = gMonShinyPalette_Hoothoot, + .iconSprite = gMonIcon_Hoothoot, + .iconPalIndex = 2, + FOOTPRINT(Hoothoot) + .levelUpLearnset = sHoothootLevelUpLearnset, + .teachableLearnset = sHoothootTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_NOCTOWL}), }, @@ -645,15 +742,21 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 70, .baseSpAttack = P_UPDATED_STATS >= GEN_7 ? 86 : 76, .baseSpDefense = 96, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 90, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 158, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 155, + #else + .expYield = 162, + #endif .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INSOMNIA, ABILITY_KEEN_EYE, ABILITY_TINTED_LENS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Noctowl"), @@ -671,17 +774,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Noctowl, 40, 64), + .frontPic = gMonFrontPic_Noctowl, + .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Noctowl, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Noctowl, 48, 64), + .backPic = gMonBackPic_Noctowl, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Noctowl), - ICON(Noctowl, 2), - .footprint = gMonFootprint_Noctowl, - LEARNSETS(Noctowl), + .palette = gMonPalette_Noctowl, + .shinyPalette = gMonShinyPalette_Noctowl, + .iconSprite = gMonIcon_Noctowl, + .iconPalIndex = 2, + FOOTPRINT(Noctowl) + .levelUpLearnset = sNoctowlLevelUpLearnset, + .teachableLearnset = sNoctowlTeachableLearnset, }, #endif //P_FAMILY_HOOTHOOT @@ -694,15 +802,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 55, .baseSpAttack = 40, .baseSpDefense = 80, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 255, - .expYield = 53, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 53 : 54, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_EARLY_BIRD, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Ledyba"), @@ -720,19 +828,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ledyba, 48, 48), - FRONT_PIC_FEMALE(Ledyba, 48, 48), + .frontPic = gMonFrontPic_Ledyba, + .frontPicFemale = gMonFrontPic_LedybaF, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Ledyba, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Ledyba, 56, 48), - BACK_PIC_FEMALE(Ledyba, 56, 48), + .backPic = gMonBackPic_Ledyba, + .backPicFemale = gMonBackPic_LedybaF, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Ledyba), - ICON(Ledyba, 0), - .footprint = gMonFootprint_Ledyba, - LEARNSETS(Ledyba), + .palette = gMonPalette_Ledyba, + .shinyPalette = gMonShinyPalette_Ledyba, + .iconSprite = gMonIcon_Ledyba, + .iconPalIndex = 0, + FOOTPRINT(Ledyba) + .levelUpLearnset = sLedybaLevelUpLearnset, + .teachableLearnset = sLedybaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_LEDIAN}), }, @@ -744,15 +859,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 85, .baseSpAttack = 55, .baseSpDefense = 110, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 90, - .expYield = 137, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 137 : 134, .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_EARLY_BIRD, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Ledian"), @@ -770,20 +885,27 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ledian, 48, 56), - FRONT_PIC_FEMALE(Ledian, 48, 56), + .frontPic = gMonFrontPic_Ledian, + .frontPicFemale = gMonFrontPic_LedianF, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Ledian, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 10, - BACK_PIC(Ledian, 64, 64), - BACK_PIC_FEMALE(Ledian, 64, 64), + .backPic = gMonBackPic_Ledian, + .backPicFemale = gMonBackPic_LedianF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Ledian), - ICON(Ledian, 0), - .footprint = gMonFootprint_Ledian, - LEARNSETS(Ledian), + .palette = gMonPalette_Ledian, + .shinyPalette = gMonShinyPalette_Ledian, + .iconSprite = gMonIcon_Ledian, + .iconPalIndex = 0, + FOOTPRINT(Ledian) + .levelUpLearnset = sLedianLevelUpLearnset, + .teachableLearnset = sLedianTeachableLearnset, }, #endif //P_FAMILY_LEDYBA @@ -796,15 +918,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 30, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 255, - .expYield = 50, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 50 : 54, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_INSOMNIA, ABILITY_SNIPER }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Spinarak"), @@ -822,17 +944,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Spinarak, 48, 32), + .frontPic = gMonFrontPic_Spinarak, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Spinarak, .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, - BACK_PIC(Spinarak, 64, 32), + .backPic = gMonBackPic_Spinarak, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Spinarak), - ICON(Spinarak, 1), - .footprint = gMonFootprint_Spinarak, - LEARNSETS(Spinarak), + .palette = gMonPalette_Spinarak, + .shinyPalette = gMonShinyPalette_Spinarak, + .iconSprite = gMonIcon_Spinarak, + .iconPalIndex = 1, + FOOTPRINT(Spinarak) + .levelUpLearnset = sSpinarakLevelUpLearnset, + .teachableLearnset = sSpinarakTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_ARIADOS}), }, @@ -844,15 +971,21 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 40, .baseSpAttack = 60, .baseSpDefense = P_UPDATED_STATS >= GEN_7 ? 70 : 60, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 90, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 140, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 137, + #else + .expYield = 134, + #endif .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_INSOMNIA, ABILITY_SNIPER }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Ariados"), @@ -870,17 +1003,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ariados, 64, 56), + .frontPic = gMonFrontPic_Ariados, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Ariados, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Ariados, 64, 48), + .backPic = gMonBackPic_Ariados, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Ariados), - ICON(Ariados, 0), - .footprint = gMonFootprint_Ariados, - LEARNSETS(Ariados), + .palette = gMonPalette_Ariados, + .shinyPalette = gMonShinyPalette_Ariados, + .iconSprite = gMonIcon_Ariados, + .iconPalIndex = 0, + FOOTPRINT(Ariados) + .levelUpLearnset = sAriadosLevelUpLearnset, + .teachableLearnset = sAriadosTeachableLearnset, }, #endif //P_FAMILY_SPINARAK @@ -893,16 +1031,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 67, .baseSpAttack = 56, .baseSpDefense = 56, - .types = { TYPE_WATER, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_WATER, TYPE_ELECTRIC), .catchRate = 190, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 90, .evYield_HP = 1, .itemRare = ITEM_DEEP_SEA_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_VOLT_ABSORB, ABILITY_ILLUMINATE, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Chinchou"), @@ -920,17 +1058,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chinchou, 64, 48), + .frontPic = gMonFrontPic_Chinchou, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Chinchou, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Chinchou, 64, 48), + .backPic = gMonBackPic_Chinchou, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Chinchou), - ICON(Chinchou, 2), - .footprint = gMonFootprint_Chinchou, - LEARNSETS(Chinchou), + .palette = gMonPalette_Chinchou, + .shinyPalette = gMonShinyPalette_Chinchou, + .iconSprite = gMonIcon_Chinchou, + .iconPalIndex = 2, + FOOTPRINT(Chinchou) + .levelUpLearnset = sChinchouLevelUpLearnset, + .teachableLearnset = sChinchouTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 27, SPECIES_LANTURN}), }, @@ -942,16 +1085,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 67, .baseSpAttack = 76, .baseSpDefense = 76, - .types = { TYPE_WATER, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_WATER, TYPE_ELECTRIC), .catchRate = 75, - .expYield = 161, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 161 : 156, .evYield_HP = 2, .itemRare = ITEM_DEEP_SEA_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_VOLT_ABSORB, ABILITY_ILLUMINATE, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Lanturn"), @@ -969,17 +1112,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lanturn, 64, 48), + .frontPic = gMonFrontPic_Lanturn, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Lanturn, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, - BACK_PIC(Lanturn, 64, 56), + .backPic = gMonBackPic_Lanturn, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Lanturn), - ICON(Lanturn, 0), - .footprint = gMonFootprint_Lanturn, - LEARNSETS(Lanturn), + .palette = gMonPalette_Lanturn, + .shinyPalette = gMonShinyPalette_Lanturn, + .iconSprite = gMonIcon_Lanturn, + .iconPalIndex = 0, + FOOTPRINT(Lanturn) + .levelUpLearnset = sLanturnLevelUpLearnset, + .teachableLearnset = sLanturnTeachableLearnset, }, #endif //P_FAMILY_CHINCHOU @@ -994,15 +1142,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 20, .baseSpAttack = 40, .baseSpDefense = 65, - .types = { TOGEPI_FAMILY_TYPE, TOGEPI_FAMILY_TYPE }, + .types = MON_TYPES(TOGEPI_FAMILY_TYPE), .catchRate = 190, - .expYield = 49, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 49 : 74, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_HUSTLE, ABILITY_SERENE_GRACE, ABILITY_SUPER_LUCK }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Togepi"), @@ -1020,17 +1168,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 23, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Togepi, 24, 32), + .frontPic = gMonFrontPic_Togepi, + .frontPicSize = MON_COORDS_SIZE(24, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Togepi, .frontAnimId = ANIM_V_JUMPS_BIG, - BACK_PIC(Togepi, 48, 40), + .backPic = gMonBackPic_Togepi, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Togepi), - ICON(Togepi, 0), - .footprint = gMonFootprint_Togepi, - LEARNSETS(Togepi), + .palette = gMonPalette_Togepi, + .shinyPalette = gMonShinyPalette_Togepi, + .iconSprite = gMonIcon_Togepi, + .iconPalIndex = 0, + FOOTPRINT(Togepi) + .levelUpLearnset = sTogepiLevelUpLearnset, + .teachableLearnset = sTogepiTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_TOGETIC}), }, @@ -1042,15 +1195,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 40, .baseSpAttack = 80, .baseSpDefense = 105, - .types = { TOGEPI_FAMILY_TYPE, TYPE_FLYING }, + .types = MON_TYPES(TOGEPI_FAMILY_TYPE, TYPE_FLYING), .catchRate = 75, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 114, .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_FAIRY), .abilities = { ABILITY_HUSTLE, ABILITY_SERENE_GRACE, ABILITY_SUPER_LUCK }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Togetic"), @@ -1068,18 +1221,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Togetic, 32, 48), + .frontPic = gMonFrontPic_Togetic, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Togetic, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Togetic, 56, 56), + .backPic = gMonBackPic_Togetic, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Togetic), - ICON(Togetic, 0), - .footprint = gMonFootprint_Togetic, - LEARNSETS(Togetic), - .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_TOGEKISS}), + .palette = gMonPalette_Togetic, + .shinyPalette = gMonShinyPalette_Togetic, + .iconSprite = gMonIcon_Togetic, + .iconPalIndex = 0, + FOOTPRINT(Togetic) + .levelUpLearnset = sTogeticLevelUpLearnset, + .teachableLearnset = sTogeticTeachableLearnset, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_SHINY_STONE, SPECIES_TOGEKISS}), }, #if P_GEN_4_CROSS_EVOS @@ -1091,20 +1249,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 80, .baseSpAttack = 120, .baseSpDefense = 115, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TOGEPI_FAMILY_TYPE, TYPE_FLYING }, - #else - .types = { TYPE_NORMAL, TYPE_FLYING }, - #endif + .types = MON_TYPES(TOGEPI_FAMILY_TYPE, TYPE_FLYING), .catchRate = 30, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 273, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 245, + #else + .expYield = 220, + #endif .evYield_SpAttack = 2, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_FAIRY), .abilities = { ABILITY_HUSTLE, ABILITY_SERENE_GRACE, ABILITY_SUPER_LUCK }, .bodyColor = BODY_COLOR_WHITE, .noFlip = TRUE, @@ -1123,18 +1283,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Togekiss, 64, 56), + .frontPic = gMonFrontPic_Togekiss, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Togekiss, .frontAnimId = ANIM_SWING_CONVEX, .enemyMonElevation = 14, - BACK_PIC(Togekiss, 64, 48), + .backPic = gMonBackPic_Togekiss, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Togekiss), - ICON(Togekiss, 2), - .footprint = gMonFootprint_Togekiss, - LEARNSETS(Togekiss), + .palette = gMonPalette_Togekiss, + .shinyPalette = gMonShinyPalette_Togekiss, + .iconSprite = gMonIcon_Togekiss, + .iconPalIndex = 2, + FOOTPRINT(Togekiss) + .levelUpLearnset = sTogekissLevelUpLearnset, + .teachableLearnset = sTogekissTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_TOGEPI @@ -1148,15 +1313,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 70, .baseSpAttack = 70, .baseSpDefense = 45, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), .catchRate = 190, - .expYield = 64, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 64 : 73, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_SYNCHRONIZE, ABILITY_EARLY_BIRD, ABILITY_MAGIC_BOUNCE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Natu"), @@ -1174,18 +1339,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 25, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Natu, 32, 32), + .frontPic = gMonFrontPic_Natu, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Natu, .frontAnimId = ANIM_H_JUMPS, .frontAnimDelay = 30, - BACK_PIC(Natu, 40, 40), + .backPic = gMonBackPic_Natu, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Natu), - ICON(Natu, 1), - .footprint = gMonFootprint_Natu, - LEARNSETS(Natu), + .palette = gMonPalette_Natu, + .shinyPalette = gMonShinyPalette_Natu, + .iconSprite = gMonIcon_Natu, + .iconPalIndex = 1, + FOOTPRINT(Natu) + .levelUpLearnset = sNatuLevelUpLearnset, + .teachableLearnset = sNatuTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_XATU}), }, @@ -1197,16 +1367,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 95, .baseSpAttack = 95, .baseSpDefense = 70, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), .catchRate = 75, - .expYield = 165, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 165 : 171, .evYield_Speed = 1, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_SYNCHRONIZE, ABILITY_EARLY_BIRD, ABILITY_MAGIC_BOUNCE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Xatu"), @@ -1224,18 +1394,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 6, .trainerScale = 318, .trainerOffset = 4, - FRONT_PIC(Xatu, 40, 56), - FRONT_PIC_FEMALE(Xatu, 40, 56), + .frontPic = gMonFrontPic_Xatu, + .frontPicFemale = gMonFrontPic_XatuF, + .frontPicSize = MON_COORDS_SIZE(40, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Xatu, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Xatu, 64, 56), + .backPic = gMonBackPic_Xatu, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Xatu), - ICON(Xatu, 1), - .footprint = gMonFootprint_Xatu, - LEARNSETS(Xatu), + .palette = gMonPalette_Xatu, + .shinyPalette = gMonShinyPalette_Xatu, + .iconSprite = gMonIcon_Xatu, + .iconPalIndex = 1, + FOOTPRINT(Xatu) + .levelUpLearnset = sXatuLevelUpLearnset, + .teachableLearnset = sXatuTeachableLearnset, }, #endif //P_FAMILY_NATU @@ -1248,15 +1424,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 35, .baseSpAttack = 65, .baseSpDefense = 45, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 235, - .expYield = 56, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 56 : 59, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_PLUS }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Mareep"), @@ -1274,18 +1450,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mareep, 40, 48), + .frontPic = gMonFrontPic_Mareep, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Mareep, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .frontAnimDelay = 50, - BACK_PIC(Mareep, 56, 40), + .backPic = gMonBackPic_Mareep, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Mareep), - ICON(Mareep, 0), - .footprint = gMonFootprint_Mareep, - LEARNSETS(Mareep), + .palette = gMonPalette_Mareep, + .shinyPalette = gMonShinyPalette_Mareep, + .iconSprite = gMonIcon_Mareep, + .iconPalIndex = 0, + FOOTPRINT(Mareep) + .levelUpLearnset = sMareepLevelUpLearnset, + .teachableLearnset = sMareepTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_FLAAFFY}), }, @@ -1297,15 +1478,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 45, .baseSpAttack = 80, .baseSpDefense = 60, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 120, - .expYield = 128, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 128 : 117, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_PLUS }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Flaaffy"), @@ -1323,104 +1504,144 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Flaaffy, 48, 48), + .frontPic = gMonFrontPic_Flaaffy, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Flaaffy, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Flaaffy, 48, 56), + .backPic = gMonBackPic_Flaaffy, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Flaaffy), - ICON(Flaaffy, 0), - .footprint = gMonFootprint_Flaaffy, - LEARNSETS(Flaaffy), + .palette = gMonPalette_Flaaffy, + .shinyPalette = gMonShinyPalette_Flaaffy, + .iconSprite = gMonIcon_Flaaffy, + .iconPalIndex = 0, + FOOTPRINT(Flaaffy) + .levelUpLearnset = sFlaaffyLevelUpLearnset, + .teachableLearnset = sFlaaffyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_AMPHAROS}), }, -#define AMPHAROS_MISC_INFO \ - .catchRate = 45, \ - .evYield_SpAttack = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD },\ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Ampharos"), \ - .natDexNum = NATIONAL_DEX_AMPHAROS, \ - .categoryName = _("Light"), \ - .height = 14, \ - .weight = 615, \ - .pokemonScale = 256, \ - .pokemonOffset = 4, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Ampharos, \ - LEARNSETS(Ampharos), \ - .formSpeciesIdTable = sAmpharosFormSpeciesIdTable, \ - .formChangeTable = sAmpharosFormChangeTable - #define AMPHAROS_DEFENSE (P_UPDATED_STATS >= GEN_6 ? 85 : 75) [SPECIES_AMPHAROS] = { - AMPHAROS_MISC_INFO, .baseHP = 90, .baseAttack = 75, .baseDefense = AMPHAROS_DEFENSE, .baseSpeed = 55, .baseSpAttack = 115, .baseSpDefense = 90, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 255, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 230, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 225, + #else + .expYield = 194, + #endif + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_PLUS }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Ampharos"), .cryId = CRY_AMPHAROS, + .natDexNum = NATIONAL_DEX_AMPHAROS, + .categoryName = _("Light"), + .height = 14, + .weight = 615, .description = COMPOUND_STRING( "It gives off so much light that it can be\n" "seen even from space. People in the old\n" "days used its light to send signals back\n" "and forth with others far away."), - FRONT_PIC(Ampharos, 56, 64), + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Ampharos, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Ampharos, .frontAnimId = ANIM_FLASH_YELLOW, .frontAnimDelay = 10, - BACK_PIC(Ampharos, 56, 64), + .backPic = gMonBackPic_Ampharos, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Ampharos), - ICON(Ampharos, 0), + .palette = gMonPalette_Ampharos, + .shinyPalette = gMonShinyPalette_Ampharos, + .iconSprite = gMonIcon_Ampharos, + .iconPalIndex = 0, + FOOTPRINT(Ampharos) + .levelUpLearnset = sAmpharosLevelUpLearnset, + .teachableLearnset = sAmpharosTeachableLearnset, + .formSpeciesIdTable = sAmpharosFormSpeciesIdTable, + .formChangeTable = sAmpharosFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_AMPHAROS_MEGA] = { - AMPHAROS_MISC_INFO, .baseHP = 90, .baseAttack = 95, .baseDefense = AMPHAROS_DEFENSE + 20, .baseSpeed = 45, .baseSpAttack = 165, .baseSpDefense = 110, - .types = { TYPE_ELECTRIC, TYPE_DRAGON }, - .expYield = 275, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_DRAGON), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 305 : 275, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_MOLD_BREAKER, ABILITY_MOLD_BREAKER, ABILITY_MOLD_BREAKER }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Ampharos"), .cryId = CRY_AMPHAROS_MEGA, + .natDexNum = NATIONAL_DEX_AMPHAROS, + .categoryName = _("Light"), + .height = 14, + .weight = 615, .description = COMPOUND_STRING( "Massive amounts of energy intensely\n" "stimulated Ampharos's cells, apparently\n" "awakening its long-sleeping dragon's\n" "blood."), - FRONT_PIC(AmpharosMega, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_AmpharosMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_AmpharosMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(AmpharosMega, 64, 64), + .backPic = gMonBackPic_AmpharosMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(AmpharosMega), - ICON(AmpharosMega, 0), + .palette = gMonPalette_AmpharosMega, + .shinyPalette = gMonShinyPalette_AmpharosMega, + .iconSprite = gMonIcon_AmpharosMega, + .iconPalIndex = 0, + FOOTPRINT(Ampharos) .isMegaEvolution = TRUE, + .levelUpLearnset = sAmpharosLevelUpLearnset, + .teachableLearnset = sAmpharosTeachableLearnset, + .formSpeciesIdTable = sAmpharosFormSpeciesIdTable, + .formChangeTable = sAmpharosFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_MAREEP @@ -1436,18 +1657,18 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpAttack = 20, .baseSpDefense = 40, #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_NORMAL, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FAIRY), #else - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), #endif .catchRate = 150, - .expYield = 38, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 38 : 33, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_THICK_FAT, ABILITY_HUGE_POWER, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Azurill"), @@ -1465,17 +1686,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 23, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Azurill, 48, 48), + .frontPic = gMonFrontPic_Azurill, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Azurill, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Azurill, 64, 56), + .backPic = gMonBackPic_Azurill, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Azurill), - ICON(Azurill, 0), - .footprint = gMonFootprint_Azurill, - LEARNSETS(Azurill), + .palette = gMonPalette_Azurill, + .shinyPalette = gMonShinyPalette_Azurill, + .iconSprite = gMonIcon_Azurill, + .iconPalIndex = 0, + FOOTPRINT(Azurill) + .levelUpLearnset = sAzurillLevelUpLearnset, + .teachableLearnset = sAzurillTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_MARILL}), }, #endif //P_GEN_3_CROSS_EVOS @@ -1489,18 +1715,18 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpAttack = 20, .baseSpDefense = 50, #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_WATER, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_WATER, TYPE_FAIRY), #else - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), #endif .catchRate = 190, - .expYield = 88, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 88 : 58, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FAIRY), .abilities = { ABILITY_THICK_FAT, ABILITY_HUGE_POWER, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Marill"), @@ -1518,17 +1744,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Marill, 56, 40), + .frontPic = gMonFrontPic_Marill, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Marill, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Marill, 64, 40), + .backPic = gMonBackPic_Marill, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Marill), - ICON(Marill, 0), - .footprint = gMonFootprint_Marill, - LEARNSETS(Marill), + .palette = gMonPalette_Marill, + .shinyPalette = gMonShinyPalette_Marill, + .iconSprite = gMonIcon_Marill, + .iconPalIndex = 0, + FOOTPRINT(Marill) + .levelUpLearnset = sMarillLevelUpLearnset, + .teachableLearnset = sMarillTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_AZUMARILL}), }, @@ -1541,18 +1772,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 60 : 50, .baseSpDefense = 80, #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_WATER, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_WATER, TYPE_FAIRY), #else - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), #endif .catchRate = 75, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 210, + #elif P_UPDATED_EXP_YIELDS >= GEN_6 .expYield = 189, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 185, + #else + .expYield = 153, + #endif .evYield_HP = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FAIRY), .abilities = { ABILITY_THICK_FAT, ABILITY_HUGE_POWER, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Azumarill"), @@ -1570,17 +1809,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Azumarill, 56, 64), + .frontPic = gMonFrontPic_Azumarill, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Azumarill, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Azumarill, 64, 64), + .backPic = gMonBackPic_Azumarill, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Azumarill), - ICON(Azumarill, 0), - .footprint = gMonFootprint_Azumarill, - LEARNSETS(Azumarill), + .palette = gMonPalette_Azumarill, + .shinyPalette = gMonShinyPalette_Azumarill, + .iconSprite = gMonIcon_Azumarill, + .iconPalIndex = 0, + FOOTPRINT(Azumarill) + .levelUpLearnset = sAzumarillLevelUpLearnset, + .teachableLearnset = sAzumarillTeachableLearnset, }, #endif //P_FAMILY_MARILL @@ -1594,15 +1838,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 10, .baseSpAttack = 10, .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 255, - .expYield = 58, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 68, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Bonsly"), @@ -1620,17 +1864,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bonsly, 32, 48), + .frontPic = gMonFrontPic_Bonsly, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Bonsly, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, - BACK_PIC(Bonsly, 40, 64), + .backPic = gMonBackPic_Bonsly, + .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Bonsly), - ICON(Bonsly, 1), - .footprint = gMonFootprint_Bonsly, - LEARNSETS(Bonsly), + .palette = gMonPalette_Bonsly, + .shinyPalette = gMonShinyPalette_Bonsly, + .iconSprite = gMonIcon_Bonsly, + .iconPalIndex = 1, + FOOTPRINT(Bonsly) + .levelUpLearnset = sBonslyLevelUpLearnset, + .teachableLearnset = sBonslyTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_MIMIC, SPECIES_SUDOWOODO}), }, #endif //P_GEN_4_CROSS_EVOS @@ -1643,15 +1892,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 30, .baseSpAttack = 30, .baseSpDefense = 65, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 65, - .expYield = 144, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 144 : 135, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Sudowoodo"), @@ -1669,19 +1918,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sudowoodo, 48, 56), - FRONT_PIC_FEMALE(Sudowoodo, 48, 56), + .frontPic = gMonFrontPic_Sudowoodo, + .frontPicFemale = gMonFrontPic_SudowoodoF, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Sudowoodo, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Sudowoodo, 48, 56), - BACK_PIC_FEMALE(Sudowoodo, 48, 56), + .backPic = gMonBackPic_Sudowoodo, + .backPicFemale = gMonBackPic_SudowoodoF, + .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicSizeFemale = MON_COORDS_SIZE(48, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Sudowoodo), - ICON(Sudowoodo, 1), - .footprint = gMonFootprint_Sudowoodo, - LEARNSETS(Sudowoodo), + .palette = gMonPalette_Sudowoodo, + .shinyPalette = gMonShinyPalette_Sudowoodo, + .iconSprite = gMonIcon_Sudowoodo, + .iconPalIndex = 1, + FOOTPRINT(Sudowoodo) + .levelUpLearnset = sSudowoodoLevelUpLearnset, + .teachableLearnset = sSudowoodoTeachableLearnset, }, #endif //P_FAMILY_SUDOWOODO @@ -1694,15 +1950,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 50, .baseSpAttack = 35, .baseSpDefense = 55, - .types = { TYPE_GRASS, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FLYING), .catchRate = 255, - .expYield = 50, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 50 : 74, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Hoppip"), @@ -1720,18 +1976,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Hoppip, 64, 56), + .frontPic = gMonFrontPic_Hoppip, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Hoppip, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 15, - BACK_PIC(Hoppip, 64, 48), + .backPic = gMonBackPic_Hoppip, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Hoppip), - ICON(Hoppip, 1), - .footprint = gMonFootprint_Hoppip, - LEARNSETS(Hoppip), + .palette = gMonPalette_Hoppip, + .shinyPalette = gMonShinyPalette_Hoppip, + .iconSprite = gMonIcon_Hoppip, + .iconPalIndex = 1, + FOOTPRINT(Hoppip) + .levelUpLearnset = sHoppipLevelUpLearnset, + .teachableLearnset = sHoppipTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_SKIPLOOM}), }, @@ -1743,15 +2004,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 80, .baseSpAttack = 45, .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FLYING), .catchRate = 120, - .expYield = 119, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 119 : 136, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Skiploom"), @@ -1769,18 +2030,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Skiploom, 40, 40), + .frontPic = gMonFrontPic_Skiploom, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Skiploom, .frontAnimId = ANIM_RISING_WOBBLE, .enemyMonElevation = 15, - BACK_PIC(Skiploom, 64, 56), + .backPic = gMonBackPic_Skiploom, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Skiploom), - ICON(Skiploom, 1), - .footprint = gMonFootprint_Skiploom, - LEARNSETS(Skiploom), + .palette = gMonPalette_Skiploom, + .shinyPalette = gMonShinyPalette_Skiploom, + .iconSprite = gMonIcon_Skiploom, + .iconPalIndex = 1, + FOOTPRINT(Skiploom) + .levelUpLearnset = sSkiploomLevelUpLearnset, + .teachableLearnset = sSkiploomTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 27, SPECIES_JUMPLUFF}), }, @@ -1792,15 +2058,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 110, .baseSpAttack = 55, .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 95 : 85, - .types = { TYPE_GRASS, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FLYING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 230, + #elif P_UPDATED_EXP_YIELDS >= GEN_6 .expYield = 207, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 203, + #else + .expYield = 176, + #endif .evYield_Speed = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Jumpluff"), @@ -1818,18 +2092,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Jumpluff, 64, 56), + .frontPic = gMonFrontPic_Jumpluff, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Jumpluff, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .enemyMonElevation = 9, - BACK_PIC(Jumpluff, 56, 64), + .backPic = gMonBackPic_Jumpluff, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Jumpluff), - ICON(Jumpluff, 2), - .footprint = gMonFootprint_Jumpluff, - LEARNSETS(Jumpluff), + .palette = gMonPalette_Jumpluff, + .shinyPalette = gMonShinyPalette_Jumpluff, + .iconSprite = gMonIcon_Jumpluff, + .iconPalIndex = 2, + FOOTPRINT(Jumpluff) + .levelUpLearnset = sJumpluffLevelUpLearnset, + .teachableLearnset = sJumpluffTeachableLearnset, }, #endif //P_FAMILY_HOPPIP @@ -1842,15 +2121,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 85, .baseSpAttack = 40, .baseSpDefense = 55, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, - .expYield = 72, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 72 : 94, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_PICKUP, ABILITY_SKILL_LINK }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Aipom"), @@ -1868,19 +2147,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Aipom, 32, 64), - FRONT_PIC_FEMALE(Aipom, 32, 64), + .frontPic = gMonFrontPic_Aipom, + .frontPicFemale = gMonFrontPic_AipomF, + .frontPicSize = MON_COORDS_SIZE(32, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(32, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Aipom, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Aipom, 64, 64), - BACK_PIC_FEMALE(Aipom, 64, 64), + .backPic = gMonBackPic_Aipom, + .backPicFemale = gMonBackPic_AipomF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Aipom), - ICON(Aipom, 2), - .footprint = gMonFootprint_Aipom, - LEARNSETS(Aipom), + .palette = gMonPalette_Aipom, + .shinyPalette = gMonShinyPalette_Aipom, + .iconSprite = gMonIcon_Aipom, + .iconPalIndex = 2, + FOOTPRINT(Aipom) + .levelUpLearnset = sAipomLevelUpLearnset, + .teachableLearnset = sAipomTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_DOUBLE_HIT, SPECIES_AMBIPOM}), }, @@ -1893,15 +2179,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 115, .baseSpAttack = 60, .baseSpDefense = 66, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, - .expYield = 169, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 169 : 186, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 100, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_TECHNICIAN, ABILITY_PICKUP, ABILITY_SKILL_LINK }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Ambipom"), @@ -1919,19 +2205,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ambipom, 64, 64), - FRONT_PIC_FEMALE(Ambipom, 64, 64), + .frontPic = gMonFrontPic_Ambipom, + .frontPicFemale = gMonFrontPic_AmbipomF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Ambipom, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Ambipom, 64, 64), - BACK_PIC_FEMALE(Ambipom, 64, 64), + .backPic = gMonBackPic_Ambipom, + .backPicFemale = gMonBackPic_AmbipomF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Ambipom), - ICON(Ambipom, 2), - .footprint = gMonFootprint_Ambipom, - LEARNSETS(Ambipom), + .palette = gMonPalette_Ambipom, + .shinyPalette = gMonShinyPalette_Ambipom, + .iconSprite = gMonIcon_Ambipom, + .iconPalIndex = 2, + FOOTPRINT(Ambipom) + .levelUpLearnset = sAmbipomLevelUpLearnset, + .teachableLearnset = sAmbipomTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_AIPOM @@ -1945,15 +2238,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 30, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 235, - .expYield = 36, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 36 : 52, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_EARLY_BIRD }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Sunkern"), @@ -1971,17 +2264,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sunkern, 32, 40), + .frontPic = gMonFrontPic_Sunkern, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Sunkern, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Sunkern, 48, 48), + .backPic = gMonBackPic_Sunkern, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Sunkern), - ICON(Sunkern, 1), - .footprint = gMonFootprint_Sunkern, - LEARNSETS(Sunkern), + .palette = gMonPalette_Sunkern, + .shinyPalette = gMonShinyPalette_Sunkern, + .iconSprite = gMonIcon_Sunkern, + .iconPalIndex = 1, + FOOTPRINT(Sunkern) + .levelUpLearnset = sSunkernLevelUpLearnset, + .teachableLearnset = sSunkernTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_SUNFLORA}), }, @@ -1993,15 +2291,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 30, .baseSpAttack = 105, .baseSpDefense = 85, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 120, - .expYield = 149, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 149 : 146, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_EARLY_BIRD }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Sunflora"), @@ -2019,17 +2317,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sunflora, 40, 48), + .frontPic = gMonFrontPic_Sunflora, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Sunflora, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sunflora, 56, 56), + .backPic = gMonBackPic_Sunflora, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Sunflora), - ICON(Sunflora, 1), - .footprint = gMonFootprint_Sunflora, - LEARNSETS(Sunflora), + .palette = gMonPalette_Sunflora, + .shinyPalette = gMonShinyPalette_Sunflora, + .iconSprite = gMonIcon_Sunflora, + .iconPalIndex = 1, + FOOTPRINT(Sunflora) + .levelUpLearnset = sSunfloraLevelUpLearnset, + .teachableLearnset = sSunfloraTeachableLearnset, }, #endif //P_FAMILY_SUNKERN @@ -2042,15 +2345,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 95, .baseSpAttack = 75, .baseSpDefense = 45, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 75, - .expYield = 78, - .evYield_Speed = 1, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 78 : 147, + .evYield_Speed = (P_UPDATED_EVS >= GEN_4) ? 1 : 2, + .itemRare = ITEM_WIDE_LENS, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SPEED_BOOST, ABILITY_COMPOUND_EYES, ABILITY_FRISK }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Yanma"), @@ -2068,18 +2372,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Yanma, 64, 40), + .frontPic = gMonFrontPic_Yanma, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Yanma, .frontAnimId = ANIM_FIGURE_8, .enemyMonElevation = 13, - BACK_PIC(Yanma, 64, 64), + .backPic = gMonBackPic_Yanma, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Yanma), - ICON(Yanma, 1), - .footprint = gMonFootprint_Yanma, - LEARNSETS(Yanma), + .palette = gMonPalette_Yanma, + .shinyPalette = gMonShinyPalette_Yanma, + .iconSprite = gMonIcon_Yanma, + .iconPalIndex = 1, + FOOTPRINT(Yanma) + .levelUpLearnset = sYanmaLevelUpLearnset, + .teachableLearnset = sYanmaTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_ANCIENT_POWER, SPECIES_YANMEGA}), }, @@ -2092,15 +2401,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 95, .baseSpAttack = 116, .baseSpDefense = 56, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 30, - .expYield = 180, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 180 : 198, .evYield_Attack = 2, + .itemRare = ITEM_WIDE_LENS, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SPEED_BOOST, ABILITY_TINTED_LENS, ABILITY_FRISK }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Yanmega"), @@ -2118,74 +2428,83 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - FRONT_PIC(Yanmega, 64, 56), + .frontPic = gMonFrontPic_Yanmega, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Yanmega, .frontAnimId = ANIM_H_VIBRATE, .enemyMonElevation = 6, - BACK_PIC(Yanmega, 64, 56), + .backPic = gMonBackPic_Yanmega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Yanmega), - ICON(Yanmega, 1), - .footprint = gMonFootprint_Yanmega, - LEARNSETS(Yanmega), + .palette = gMonPalette_Yanmega, + .shinyPalette = gMonShinyPalette_Yanmega, + .iconSprite = gMonIcon_Yanmega, + .iconPalIndex = 1, + FOOTPRINT(Yanmega) + .levelUpLearnset = sYanmegaLevelUpLearnset, + .teachableLearnset = sYanmegaTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_YANMA #if P_FAMILY_WOOPER -#define WOOPER_MISC_INFO \ - .baseHP = 55, \ - .baseAttack = 45, \ - .baseDefense = 45, \ - .baseSpeed = 15, \ - .baseSpAttack = 25, \ - .baseSpDefense = 25, \ - .catchRate = 255, \ - .expYield = 42, \ - .evYield_HP = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, \ - .speciesName = _("Wooper"), \ - .cryId = CRY_WOOPER, \ - .natDexNum = NATIONAL_DEX_WOOPER, \ - .height = 4, \ - .pokemonScale = 479, \ - .pokemonOffset = 21, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Wooper, \ - .formSpeciesIdTable = sWooperFormSpeciesIdTable - [SPECIES_WOOPER] = { - WOOPER_MISC_INFO, - .types = { TYPE_WATER, TYPE_GROUND }, + .baseHP = 55, + .baseAttack = 45, + .baseDefense = 45, + .baseSpeed = 15, + .baseSpAttack = 25, + .baseSpDefense = 25, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 42 : 52, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_DAMP, ABILITY_WATER_ABSORB, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Wooper"), + .cryId = CRY_WOOPER, + .natDexNum = NATIONAL_DEX_WOOPER, .categoryName = _("Water Fish"), + .height = 4, .weight = 85, .description = COMPOUND_STRING( "Wooper usually live in water but come\n" "out onto land seeking food occasionally.\n" "On land, they coat their bodies with a\n" "gooey, toxic film."), - FRONT_PIC(Wooper, 40, 32), - FRONT_PIC_FEMALE(Wooper, 40, 32), + .pokemonScale = 479, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Wooper, + .frontPicFemale = gMonFrontPic_WooperF, + .frontPicSize = MON_COORDS_SIZE(40, 32), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Wooper, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Wooper, 64, 40), - BACK_PIC_FEMALE(Wooper, 64, 40), + .backPic = gMonBackPic_Wooper, + .backPicFemale = gMonBackPic_WooperF, + .backPicSize = MON_COORDS_SIZE(64, 40), + .backPicSizeFemale = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Wooper), - ICON(Wooper, 0), - LEARNSETS(Wooper), + .palette = gMonPalette_Wooper, + .shinyPalette = gMonShinyPalette_Wooper, + .iconSprite = gMonIcon_Wooper, + .iconPalIndex = 0, + FOOTPRINT(Wooper) + .levelUpLearnset = sWooperLevelUpLearnset, + .teachableLearnset = sWooperTeachableLearnset, + .formSpeciesIdTable = sWooperFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_QUAGSIRE}), }, @@ -2197,15 +2516,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 35, .baseSpAttack = 65, .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_GROUND }, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), .catchRate = 90, - .expYield = 151, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 151 : 137, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_DAMP, ABILITY_WATER_ABSORB, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Quagsire"), @@ -2223,46 +2542,81 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Quagsire, 64, 56), - FRONT_PIC_FEMALE(Quagsire, 64, 56), + .frontPic = gMonFrontPic_Quagsire, + .frontPicFemale = gMonFrontPic_QuagsireF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Quagsire, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Quagsire, 64, 56), - BACK_PIC_FEMALE(Quagsire, 64, 56), + .backPic = gMonBackPic_Quagsire, + .backPicFemale = gMonBackPic_QuagsireF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Quagsire), - ICON(Quagsire, 0), - .footprint = gMonFootprint_Quagsire, - LEARNSETS(Quagsire), + .palette = gMonPalette_Quagsire, + .shinyPalette = gMonShinyPalette_Quagsire, + .iconSprite = gMonIcon_Quagsire, + .iconPalIndex = 0, + FOOTPRINT(Quagsire) + .levelUpLearnset = sQuagsireLevelUpLearnset, + .teachableLearnset = sQuagsireTeachableLearnset, }, #if P_PALDEAN_FORMS [SPECIES_WOOPER_PALDEAN] = { - WOOPER_MISC_INFO, - .types = { TYPE_POISON, TYPE_GROUND }, + .baseHP = 55, + .baseAttack = 45, + .baseDefense = 45, + .baseSpeed = 15, + .baseSpAttack = 25, + .baseSpDefense = 25, + .types = MON_TYPES(TYPE_POISON, TYPE_GROUND), + .catchRate = 255, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 42 : 52, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_POISON_POINT, ABILITY_WATER_ABSORB, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_BROWN, - .isPaldeanForm = TRUE, + .speciesName = _("Wooper"), + .cryId = CRY_WOOPER, + .natDexNum = NATIONAL_DEX_WOOPER, .categoryName = _("Poison Fish"), + .height = 4, .weight = 110, .description = COMPOUND_STRING( "After losing a territorial struggle,\n" "Wooper began living on land.\n" "The Pokémon changed over time, developing\n" "a poisonous film to protect its body."), - FRONT_PIC(WooperPaldean, 40, 32), + .pokemonScale = 479, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_WooperPaldean, + .frontPicSize = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_WooperPaldean, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(WooperPaldean, 64, 40), + .backPic = gMonBackPic_WooperPaldean, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(WooperPaldean), - //ICON(WooperPaldean, 0), - LEARNSETS(WooperPaldean), + .palette = gMonPalette_WooperPaldean, + .shinyPalette = gMonShinyPalette_WooperPaldean, + .iconSprite = gMonIcon_WooperPaldean, + .iconPalIndex = 2, + FOOTPRINT(Wooper) + .isPaldeanForm = TRUE, + .levelUpLearnset = sWooperPaldeanLevelUpLearnset, + .teachableLearnset = sWooperPaldeanTeachableLearnset, + .formSpeciesIdTable = sWooperFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_CLODSIRE}), }, @@ -2274,7 +2628,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 20, .baseSpAttack = 45, .baseSpDefense = 100, - .types = { TYPE_POISON, TYPE_GROUND }, + .types = MON_TYPES(TYPE_POISON, TYPE_GROUND), .catchRate = 90, .expYield = 151, .evYield_HP = 2, @@ -2282,7 +2636,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_POISON_POINT, ABILITY_WATER_ABSORB, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Clodsire"), @@ -2300,17 +2654,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Clodsire, 64, 64), + .frontPic = gMonFrontPic_Clodsire, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Clodsire, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Clodsire, 64, 64), + .backPic = gMonBackPic_Clodsire, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Clodsire), - ICON(Clodsire, 2), - //.footprint = gMonFootprint_Clodsire, - LEARNSETS(Clodsire), + .palette = gMonPalette_Clodsire, + .shinyPalette = gMonShinyPalette_Clodsire, + .iconSprite = gMonIcon_Clodsire, + .iconPalIndex = 0, + //FOOTPRINT(Clodsire) + .levelUpLearnset = sClodsireLevelUpLearnset, + .teachableLearnset = sClodsireTeachableLearnset, }, #endif //P_PALDEAN_FORMS #endif //P_FAMILY_WOOPER @@ -2324,15 +2683,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 91, .baseSpAttack = 85, .baseSpDefense = 42, - .types = { TYPE_DARK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FLYING), .catchRate = 30, - .expYield = 81, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 81 : 107, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INSOMNIA, ABILITY_SUPER_LUCK, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Murkrow"), @@ -2350,21 +2709,28 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -8, .trainerScale = 256, .trainerOffset = 1, - FRONT_PIC(Murkrow, 48, 40), - FRONT_PIC_FEMALE(Murkrow, 48, 40), + .frontPic = gMonFrontPic_Murkrow, + .frontPicFemale = gMonFrontPic_MurkrowF, + .frontPicSize = MON_COORDS_SIZE(48, 40), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Murkrow, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 12, - BACK_PIC(Murkrow, 40, 56), - BACK_PIC_FEMALE(Murkrow, 40, 56), + .backPic = gMonBackPic_Murkrow, + .backPicFemale = gMonBackPic_MurkrowF, + .backPicSize = MON_COORDS_SIZE(40, 56), + .backPicSizeFemale = MON_COORDS_SIZE(40, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Murkrow), - ICON(Murkrow, 2), - .footprint = gMonFootprint_Murkrow, - LEARNSETS(Murkrow), - .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_HONCHKROW}), + .palette = gMonPalette_Murkrow, + .shinyPalette = gMonShinyPalette_Murkrow, + .iconSprite = gMonIcon_Murkrow, + .iconPalIndex = 2, + FOOTPRINT(Murkrow) + .levelUpLearnset = sMurkrowLevelUpLearnset, + .teachableLearnset = sMurkrowTeachableLearnset, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_DUSK_STONE, SPECIES_HONCHKROW}), }, #if P_GEN_4_CROSS_EVOS @@ -2376,15 +2742,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 71, .baseSpAttack = 105, .baseSpDefense = 52, - .types = { TYPE_DARK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FLYING), .catchRate = 30, - .expYield = 177, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 177 : 187, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INSOMNIA, ABILITY_SUPER_LUCK, ABILITY_MOXIE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Honchkrow"), @@ -2402,17 +2768,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Honchkrow, 64, 56), + .frontPic = gMonFrontPic_Honchkrow, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Honchkrow, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Honchkrow, 64, 48), + .backPic = gMonBackPic_Honchkrow, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Honchkrow), - ICON(Honchkrow, 2), - .footprint = gMonFootprint_Honchkrow, - LEARNSETS(Honchkrow), + .palette = gMonPalette_Honchkrow, + .shinyPalette = gMonShinyPalette_Honchkrow, + .iconSprite = gMonIcon_Honchkrow, + .iconPalIndex = 2, + FOOTPRINT(Honchkrow) + .levelUpLearnset = sHonchkrowLevelUpLearnset, + .teachableLearnset = sHonchkrowTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_MURKROW @@ -2426,16 +2797,17 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 85, .baseSpAttack = 85, .baseSpDefense = 85, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 45, - .expYield = 87, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 87 : 147, + .evYield_SpAttack = (P_UPDATED_EVS >= GEN_4) ? 0 : 1, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Misdreavus"), .cryId = CRY_MISDREAVUS, @@ -2452,19 +2824,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Misdreavus, 48, 48), + .frontPic = gMonFrontPic_Misdreavus, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Misdreavus, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 12, - BACK_PIC(Misdreavus, 56, 48), + .backPic = gMonBackPic_Misdreavus, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Misdreavus), - ICON(Misdreavus, 0), - .footprint = gMonFootprint_Misdreavus, - LEARNSETS(Misdreavus), - .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_MISMAGIUS}), + .palette = gMonPalette_Misdreavus, + .shinyPalette = gMonShinyPalette_Misdreavus, + .iconSprite = gMonIcon_Misdreavus, + .iconPalIndex = 0, + FOOTPRINT(Misdreavus) + .levelUpLearnset = sMisdreavusLevelUpLearnset, + .teachableLearnset = sMisdreavusTeachableLearnset, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_DUSK_STONE, SPECIES_MISMAGIUS}), }, #if P_GEN_4_CROSS_EVOS @@ -2476,17 +2853,17 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 105, .baseSpAttack = 105, .baseSpDefense = 105, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 45, - .expYield = 173, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 173 : 187, .evYield_SpAttack = 1, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Mismagius"), .cryId = CRY_MISMAGIUS, @@ -2503,305 +2880,109 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mismagius, 56, 64), + .frontPic = gMonFrontPic_Mismagius, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Mismagius, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 3, - BACK_PIC(Mismagius, 56, 64), + .backPic = gMonBackPic_Mismagius, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Mismagius), - ICON(Mismagius, 2), - .footprint = gMonFootprint_Mismagius, - LEARNSETS(Mismagius), + .palette = gMonPalette_Mismagius, + .shinyPalette = gMonShinyPalette_Mismagius, + .iconSprite = gMonIcon_Mismagius, + .iconPalIndex = 2, + FOOTPRINT(Mismagius) + .levelUpLearnset = sMismagiusLevelUpLearnset, + .teachableLearnset = sMismagiusTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_MISDREAVUS #if P_FAMILY_UNOWN -#define UNOWN_MISC_INFO(letter) \ - .baseHP = 48, \ - .baseAttack = 72, \ - .baseDefense = 48, \ - .baseSpeed = 48, \ - .baseSpAttack = 72, \ - .baseSpDefense = 48, \ - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, \ - .catchRate = 225, \ - .expYield = 118, \ - .evYield_Attack = 1, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 40, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Unown"), \ - .cryId = CRY_UNOWN, \ - .natDexNum = NATIONAL_DEX_UNOWN, \ - .categoryName = _("Symbol"), \ - .height = 5, \ - .weight = 50, \ - .description = gUnownPokedexText, \ - .pokemonScale = 411, \ - .pokemonOffset = 2, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontPicYOffset = 16, \ - .frontAnimFrames = sAnims_Unown, \ - .frontAnimId = ANIM_ZIGZAG_FAST, \ - .enemyMonElevation = 8, \ - .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, \ - PALETTES(Unown), \ - ICON(Unown ##letter, 0), \ - .footprint = gMonFootprint_Unown, \ - LEARNSETS(Unown), \ - .formSpeciesIdTable = sUnownFormSpeciesIdTable +#define UNOWN_MISC_INFO(letter, _noFlip, frontWidth, frontHeight, backWidth, backHeight, backYOffset) \ + { \ + .baseHP = 48, \ + .baseAttack = 72, \ + .baseDefense = 48, \ + .baseSpeed = 48, \ + .baseSpAttack = 72, \ + .baseSpDefense = 48, \ + .types = MON_TYPES(TYPE_PSYCHIC), \ + .catchRate = 225, \ + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 118 : 61, \ + .evYield_Attack = 1, \ + .evYield_SpAttack = 1, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 40, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), \ + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_BLACK, \ + .noFlip = _noFlip, \ + .speciesName = _("Unown"), \ + .cryId = CRY_UNOWN, \ + .natDexNum = NATIONAL_DEX_UNOWN, \ + .categoryName = _("Symbol"), \ + .height = 5, \ + .weight = 50, \ + .description = gUnownPokedexText, \ + .pokemonScale = 411, \ + .pokemonOffset = 2, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPic = gMonFrontPic_Unown ##letter, \ + .frontPicSize = MON_COORDS_SIZE(frontWidth, frontHeight), \ + .frontPicYOffset = 16, \ + .frontAnimFrames = sAnims_Unown, \ + .frontAnimId = ANIM_ZIGZAG_FAST, \ + .enemyMonElevation = 8, \ + .backPic = gMonBackPic_Unown ##letter, \ + .backPicSize = MON_COORDS_SIZE(backWidth, backHeight), \ + .backPicYOffset = backYOffset, \ + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, \ + .palette = gMonPalette_Unown, \ + .shinyPalette = gMonShinyPalette_Unown, \ + .iconSprite = gMonIcon_Unown ##letter, \ + .iconPalIndex = 0, \ + FOOTPRINT(Unown) \ + .levelUpLearnset = sUnownLevelUpLearnset, \ + .teachableLearnset = sUnownTeachableLearnset, \ + .tmIlliterate = TRUE, \ + .formSpeciesIdTable = sUnownFormSpeciesIdTable, \ + } - [SPECIES_UNOWN] = - { - UNOWN_MISC_INFO(A), - FRONT_PIC(UnownA, 24, 40), - BACK_PIC(UnownA, 24, 48), - .backPicYOffset = 8, - }, - - [SPECIES_UNOWN_B] = - { - UNOWN_MISC_INFO(B), - .noFlip = TRUE, - FRONT_PIC(UnownB, 24, 32), - BACK_PIC(UnownB, 40, 48), - .backPicYOffset = 9, - }, - - [SPECIES_UNOWN_C] = - { - UNOWN_MISC_INFO(C), - .noFlip = TRUE, - FRONT_PIC(UnownC, 32, 32), - BACK_PIC(UnownC, 48, 56), - .backPicYOffset = 6, - }, - - [SPECIES_UNOWN_D] = - { - UNOWN_MISC_INFO(D), - .noFlip = TRUE, - FRONT_PIC(UnownD, 32, 32), - BACK_PIC(UnownD, 40, 48), - .backPicYOffset = 8, - }, - - [SPECIES_UNOWN_E] = - { - UNOWN_MISC_INFO(E), - .noFlip = TRUE, - FRONT_PIC(UnownE, 32, 32), - BACK_PIC(UnownE, 40, 48), - .backPicYOffset = 10, - }, - - [SPECIES_UNOWN_F] = - { - UNOWN_MISC_INFO(F), - .noFlip = TRUE, - FRONT_PIC(UnownF, 32, 32), - BACK_PIC(UnownF, 48, 48), - .backPicYOffset = 10, - }, - - [SPECIES_UNOWN_G] = - { - UNOWN_MISC_INFO(G), - .noFlip = TRUE, - FRONT_PIC(UnownG, 24, 40), - BACK_PIC(UnownG, 40, 56), - .backPicYOffset = 5, - }, - - [SPECIES_UNOWN_H] = - { - UNOWN_MISC_INFO(H), - .noFlip = TRUE, - FRONT_PIC(UnownH, 32, 32), - BACK_PIC(UnownH, 48, 48), - .backPicYOffset = 8, - }, - - [SPECIES_UNOWN_I] = - { - UNOWN_MISC_INFO(I), - FRONT_PIC(UnownI, 24, 32), - BACK_PIC(UnownI, 24, 56), - .backPicYOffset = 7, - }, - - [SPECIES_UNOWN_J] = - { - UNOWN_MISC_INFO(J), - .noFlip = TRUE, - FRONT_PIC(UnownJ, 24, 32), - BACK_PIC(UnownJ, 32, 48), - .backPicYOffset = 9, - }, - - [SPECIES_UNOWN_K] = - { - UNOWN_MISC_INFO(K), - .noFlip = TRUE, - FRONT_PIC(UnownK, 32, 32), - BACK_PIC(UnownK, 40, 56), - .backPicYOffset = 7, - }, - - [SPECIES_UNOWN_L] = - { - UNOWN_MISC_INFO(L), - .noFlip = TRUE, - FRONT_PIC(UnownL, 24, 32), - BACK_PIC(UnownL, 32, 48), - .backPicYOffset = 10, - }, - - [SPECIES_UNOWN_M] = - { - UNOWN_MISC_INFO(M), - FRONT_PIC(UnownM, 32, 32), - BACK_PIC(UnownM, 48, 40), - .backPicYOffset = 13, - }, - - [SPECIES_UNOWN_N] = - { - UNOWN_MISC_INFO(N), - .noFlip = TRUE, - FRONT_PIC(UnownN, 32, 24), - BACK_PIC(UnownN, 48, 40), - .backPicYOffset = 13, - }, - - [SPECIES_UNOWN_O] = - { - UNOWN_MISC_INFO(O), - FRONT_PIC(UnownO, 32, 32), - BACK_PIC(UnownO, 48, 48), - .backPicYOffset = 8, - }, - - [SPECIES_UNOWN_P] = - { - UNOWN_MISC_INFO(P), - .noFlip = TRUE, - FRONT_PIC(UnownP, 24, 32), - BACK_PIC(UnownP, 32, 48), - .backPicYOffset = 10, - }, - - [SPECIES_UNOWN_Q] = - { - UNOWN_MISC_INFO(Q), - .noFlip = TRUE, - FRONT_PIC(UnownQ, 32, 24), - BACK_PIC(UnownQ, 40, 40), - .backPicYOffset = 15, - }, - - [SPECIES_UNOWN_R] = - { - UNOWN_MISC_INFO(R), - .noFlip = TRUE, - FRONT_PIC(UnownR, 24, 32), - BACK_PIC(UnownR, 32, 40), - .backPicYOffset = 12, - }, - - [SPECIES_UNOWN_S] = - { - UNOWN_MISC_INFO(S), - .noFlip = TRUE, - FRONT_PIC(UnownS, 32, 40), - BACK_PIC(UnownS, 40, 56), - .backPicYOffset = 4, - }, - - [SPECIES_UNOWN_T] = - { - UNOWN_MISC_INFO(T), - FRONT_PIC(UnownT, 24, 32), - BACK_PIC(UnownT, 32, 40), - .backPicYOffset = 13, - }, - - [SPECIES_UNOWN_U] = - { - UNOWN_MISC_INFO(U), - FRONT_PIC(UnownU, 32, 32), - BACK_PIC(UnownU, 48, 40), - .backPicYOffset = 13, - }, - - [SPECIES_UNOWN_V] = - { - UNOWN_MISC_INFO(V), - .noFlip = TRUE, - FRONT_PIC(UnownV, 32, 32), - BACK_PIC(UnownV, 40, 48), - .backPicYOffset = 11, - }, - - [SPECIES_UNOWN_W] = - { - UNOWN_MISC_INFO(W), - FRONT_PIC(UnownW, 32, 32), - BACK_PIC(UnownW, 40, 40), - .backPicYOffset = 13, - }, - - [SPECIES_UNOWN_X] = - { - UNOWN_MISC_INFO(X), - FRONT_PIC(UnownX, 24, 24), - BACK_PIC(UnownX, 40, 40), - .backPicYOffset = 15, - }, - - [SPECIES_UNOWN_Y] = - { - UNOWN_MISC_INFO(Y), - FRONT_PIC(UnownY, 24, 32), - BACK_PIC(UnownY, 32, 48), - .backPicYOffset = 10, - }, - - [SPECIES_UNOWN_Z] = - { - UNOWN_MISC_INFO(Z), - .noFlip = TRUE, - FRONT_PIC(UnownZ, 24, 32), - BACK_PIC(UnownZ, 32, 48), - .backPicYOffset = 10, - }, - - [SPECIES_UNOWN_EMARK] = - { - UNOWN_MISC_INFO(ExclamationMark), - FRONT_PIC(UnownExclamationMark, 24, 40), - BACK_PIC(UnownExclamationMark, 24, 56), - .backPicYOffset = 6, - }, - - [SPECIES_UNOWN_QMARK] = - { - UNOWN_MISC_INFO(QuestionMark), - .noFlip = TRUE, - FRONT_PIC(UnownQuestionMark, 24, 40), - BACK_PIC(UnownQuestionMark, 32, 56), - .backPicYOffset = 6, - }, + [SPECIES_UNOWN] = UNOWN_MISC_INFO(A, FALSE, 24, 40, 24, 48, 8 ), + [SPECIES_UNOWN_B] = UNOWN_MISC_INFO(B, TRUE, 24, 32, 40, 48, 9 ), + [SPECIES_UNOWN_C] = UNOWN_MISC_INFO(C, TRUE, 32, 32, 48, 56, 6 ), + [SPECIES_UNOWN_D] = UNOWN_MISC_INFO(D, TRUE, 32, 32, 40, 48, 8 ), + [SPECIES_UNOWN_E] = UNOWN_MISC_INFO(E, TRUE, 32, 32, 40, 48, 10 ), + [SPECIES_UNOWN_F] = UNOWN_MISC_INFO(F, TRUE, 32, 32, 48, 48, 10 ), + [SPECIES_UNOWN_G] = UNOWN_MISC_INFO(G, TRUE, 24, 40, 40, 56, 5 ), + [SPECIES_UNOWN_H] = UNOWN_MISC_INFO(H, TRUE, 32, 32, 48, 48, 8 ), + [SPECIES_UNOWN_I] = UNOWN_MISC_INFO(I, FALSE, 24, 32, 24, 56, 7 ), + [SPECIES_UNOWN_J] = UNOWN_MISC_INFO(J, TRUE, 24, 32, 32, 48, 9 ), + [SPECIES_UNOWN_K] = UNOWN_MISC_INFO(K, TRUE, 32, 32, 40, 56, 7 ), + [SPECIES_UNOWN_L] = UNOWN_MISC_INFO(L, TRUE, 24, 32, 32, 48, 10 ), + [SPECIES_UNOWN_M] = UNOWN_MISC_INFO(M, FALSE, 32, 32, 48, 40, 13 ), + [SPECIES_UNOWN_N] = UNOWN_MISC_INFO(N, TRUE, 32, 24, 48, 40, 13 ), + [SPECIES_UNOWN_O] = UNOWN_MISC_INFO(O, FALSE, 32, 32, 48, 48, 8 ), + [SPECIES_UNOWN_P] = UNOWN_MISC_INFO(P, TRUE, 24, 32, 32, 48, 10 ), + [SPECIES_UNOWN_Q] = UNOWN_MISC_INFO(Q, TRUE, 32, 24, 40, 40, 15 ), + [SPECIES_UNOWN_R] = UNOWN_MISC_INFO(R, TRUE, 24, 32, 32, 40, 12 ), + [SPECIES_UNOWN_S] = UNOWN_MISC_INFO(S, TRUE, 32, 40, 40, 56, 4 ), + [SPECIES_UNOWN_T] = UNOWN_MISC_INFO(T, FALSE, 24, 32, 32, 40, 13 ), + [SPECIES_UNOWN_U] = UNOWN_MISC_INFO(U, FALSE, 32, 32, 48, 40, 13 ), + [SPECIES_UNOWN_V] = UNOWN_MISC_INFO(V, TRUE, 32, 32, 40, 48, 11 ), + [SPECIES_UNOWN_W] = UNOWN_MISC_INFO(W, FALSE, 32, 32, 40, 40, 13 ), + [SPECIES_UNOWN_X] = UNOWN_MISC_INFO(X, FALSE, 24, 24, 40, 40, 15 ), + [SPECIES_UNOWN_Y] = UNOWN_MISC_INFO(Y, FALSE, 24, 32, 32, 48, 10 ), + [SPECIES_UNOWN_Z] = UNOWN_MISC_INFO(Z, TRUE, 24, 32, 32, 48, 10 ), + [SPECIES_UNOWN_EMARK] = UNOWN_MISC_INFO(ExclamationMark, FALSE, 24, 40, 24, 56, 6 ), + [SPECIES_UNOWN_QMARK] = UNOWN_MISC_INFO(QuestionMark, TRUE, 24, 40, 32, 56, 6 ), #endif //P_FAMILY_UNOWN #if P_FAMILY_WOBBUFFET @@ -2814,15 +2995,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 23, .baseSpAttack = 23, .baseSpDefense = 48, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 125, - .expYield = 52, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 52 : 44, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_SHADOW_TAG, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Wynaut"), @@ -2840,18 +3021,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wynaut, 48, 40), + .frontPic = gMonFrontPic_Wynaut, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Wynaut, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .frontAnimDelay = 15, - BACK_PIC(Wynaut, 48, 48), + .backPic = gMonBackPic_Wynaut, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Wynaut), - ICON(Wynaut, 0), - .footprint = gMonFootprint_Wynaut, - LEARNSETS(Wynaut), + .palette = gMonPalette_Wynaut, + .shinyPalette = gMonShinyPalette_Wynaut, + .iconSprite = gMonIcon_Wynaut, + .iconPalIndex = 0, + FOOTPRINT(Wynaut) + .tmIlliterate = TRUE, + .levelUpLearnset = sWynautLevelUpLearnset, + .teachableLearnset = sWynautTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_WOBBUFFET}), }, #endif //P_GEN_3_CROSS_EVOS @@ -2864,15 +3051,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 33, .baseSpAttack = 33, .baseSpDefense = 58, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 177, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_SHADOW_TAG, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Wobbuffet"), @@ -2890,22 +3077,31 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wobbuffet, 64, 56), - FRONT_PIC_FEMALE(Wobbuffet, 64, 56), + .frontPic = gMonFrontPic_Wobbuffet, + .frontPicFemale = gMonFrontPic_WobbuffetF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Wobbuffet, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Wobbuffet, 56, 56), - BACK_PIC_FEMALE(Wobbuffet, 56, 56), + .backPic = gMonBackPic_Wobbuffet, + .backPicFemale = gMonBackPic_WobbuffetF, + .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Wobbuffet), - ICON(Wobbuffet, 0), + .palette = gMonPalette_Wobbuffet, + .shinyPalette = gMonShinyPalette_Wobbuffet, + .iconSprite = gMonIcon_Wobbuffet, + .iconPalIndex = 0, #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE - ICON_FEMALE(Wobbuffet, 0), + .iconSpriteFemale = gMonIcon_WobbuffetF, + .iconPalIndexFemale = 0, #endif - .footprint = gMonFootprint_Wobbuffet, - LEARNSETS(Wobbuffet), + FOOTPRINT(Wobbuffet) + .tmIlliterate = TRUE, + .levelUpLearnset = sWobbuffetLevelUpLearnset, + .teachableLearnset = sWobbuffetTeachableLearnset, }, #endif //P_FAMILY_WOBBUFFET @@ -2918,15 +3114,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 85, .baseSpAttack = 90, .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_PSYCHIC), .catchRate = 60, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 149, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INNER_FOCUS, ABILITY_EARLY_BIRD, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Girafarig"), @@ -2944,19 +3140,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Girafarig, 56, 64), - FRONT_PIC_FEMALE(Girafarig, 56, 64), + .frontPic = gMonFrontPic_Girafarig, + .frontPicFemale = gMonFrontPic_GirafarigF, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Girafarig, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Girafarig, 64, 64), - BACK_PIC_FEMALE(Girafarig, 64, 64), + .backPic = gMonBackPic_Girafarig, + .backPicFemale = gMonBackPic_GirafarigF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Girafarig), - ICON(Girafarig, 1), - .footprint = gMonFootprint_Girafarig, - LEARNSETS(Girafarig), + .palette = gMonPalette_Girafarig, + .shinyPalette = gMonShinyPalette_Girafarig, + .iconSprite = gMonIcon_Girafarig, + .iconPalIndex = 1, + FOOTPRINT(Girafarig) + .levelUpLearnset = sGirafarigLevelUpLearnset, + .teachableLearnset = sGirafarigTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_TWIN_BEAM, SPECIES_FARIGIRAF}), }, @@ -2969,7 +3172,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 60, .baseSpAttack = 110, .baseSpDefense = 70, - .types = { TYPE_NORMAL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_PSYCHIC), .catchRate = 45, .expYield = 260, .evYield_HP = 3, @@ -2977,7 +3180,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_CUD_CHEW, ABILITY_ARMOR_TAIL, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Farigiraf"), @@ -2995,17 +3198,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Farigiraf, 64, 64), + .frontPic = gMonFrontPic_Farigiraf, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Farigiraf, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Farigiraf, 64, 64), + .backPic = gMonBackPic_Farigiraf, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Farigiraf), - ICON(Farigiraf, 0), - //.footprint = gMonFootprint_Farigiraf, - LEARNSETS(Farigiraf), + .palette = gMonPalette_Farigiraf, + .shinyPalette = gMonShinyPalette_Farigiraf, + .iconSprite = gMonIcon_Farigiraf, + .iconPalIndex = 0, + //FOOTPRINT(Farigiraf) + .levelUpLearnset = sFarigirafLevelUpLearnset, + .teachableLearnset = sFarigirafTeachableLearnset, }, #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_GIRAFARIG @@ -3019,15 +3227,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 15, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 190, - .expYield = 58, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 60, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Pineco"), @@ -3045,17 +3253,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pineco, 40, 40), + .frontPic = gMonFrontPic_Pineco, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Pineco, .frontAnimId = ANIM_SWING_CONCAVE, - BACK_PIC(Pineco, 56, 40), + .backPic = gMonBackPic_Pineco, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Pineco), - ICON(Pineco, 0), - .footprint = gMonFootprint_Pineco, - LEARNSETS(Pineco), + .palette = gMonPalette_Pineco, + .shinyPalette = gMonShinyPalette_Pineco, + .iconSprite = gMonIcon_Pineco, + .iconPalIndex = 0, + FOOTPRINT(Pineco) + .levelUpLearnset = sPinecoLevelUpLearnset, + .teachableLearnset = sPinecoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_FORRETRESS}), }, @@ -3067,15 +3280,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 40, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_BUG, TYPE_STEEL }, + .types = MON_TYPES(TYPE_BUG, TYPE_STEEL), .catchRate = 75, - .expYield = 163, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 163 : 118, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Forretress"), @@ -3093,17 +3306,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Forretress, 64, 48), + .frontPic = gMonFrontPic_Forretress, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Forretress, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Forretress, 64, 32), + .backPic = gMonBackPic_Forretress, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Forretress), - ICON(Forretress, 2), - .footprint = gMonFootprint_Forretress, - LEARNSETS(Forretress), + .palette = gMonPalette_Forretress, + .shinyPalette = gMonShinyPalette_Forretress, + .iconSprite = gMonIcon_Forretress, + .iconPalIndex = 2, + FOOTPRINT(Forretress) + .levelUpLearnset = sForretressLevelUpLearnset, + .teachableLearnset = sForretressTeachableLearnset, }, #endif //P_FAMILY_PINECO @@ -3116,15 +3334,21 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 45, .baseSpAttack = 65, .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 190, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 145, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 125, + #else + .expYield = 75, + #endif .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SERENE_GRACE, ABILITY_RUN_AWAY, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Dunsparce"), @@ -3142,65 +3366,51 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dunsparce, 48, 48), + .frontPic = gMonFrontPic_Dunsparce, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Dunsparce, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .frontAnimDelay = 10, - BACK_PIC(Dunsparce, 56, 32), + .backPic = gMonBackPic_Dunsparce, + .backPicSize = MON_COORDS_SIZE(56, 32), .backPicYOffset = 17, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Dunsparce), - ICON(Dunsparce, 0), - .footprint = gMonFootprint_Dunsparce, - LEARNSETS(Dunsparce), + .palette = gMonPalette_Dunsparce, + .shinyPalette = gMonShinyPalette_Dunsparce, + .iconSprite = gMonIcon_Dunsparce, + .iconPalIndex = 0, + FOOTPRINT(Dunsparce) + .levelUpLearnset = sDunsparceLevelUpLearnset, + .teachableLearnset = sDunsparceTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE_TWO_SEGMENT, MOVE_HYPER_DRILL, SPECIES_DUDUNSPARCE_TWO_SEGMENT}, {EVO_MOVE_THREE_SEGMENT, MOVE_HYPER_DRILL, SPECIES_DUDUNSPARCE_THREE_SEGMENT}), }, #if P_GEN_9_CROSS_EVOS -#define DUDUNSPARCE_MISC_INFO(segments) \ - .baseHP = 125, \ - .baseAttack = 100, \ - .baseDefense = 80, \ - .baseSpeed = 55, \ - .baseSpAttack = 85, \ - .baseSpDefense = 75, \ - .types = { TYPE_NORMAL, TYPE_NORMAL }, \ - .catchRate = 45, \ - .expYield = 182, \ - .evYield_HP = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_SERENE_GRACE, ABILITY_RUN_AWAY, ABILITY_RATTLED }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Dudunsprce"), \ - .cryId = CRY_DUDUNSPARCE, \ - .natDexNum = NATIONAL_DEX_DUDUNSPARCE, \ - .categoryName = _("Land Snake"), \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Dudunsparce ##segments##Segment, 64, 64), \ - .frontPicYOffset = 10, \ - .frontAnimFrames = sAnims_Dudunsparce, \ - BACK_PIC(Dudunsparce ##segments##Segment, 64, 64), \ - .backPicYOffset = 11, \ - PALETTES(Dudunsparce), \ - ICON(Dudunsparce, 0), \ - LEARNSETS(Dudunsparce), \ - .formSpeciesIdTable = sDudunsparceFormSpeciesIdTable - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.footprint = gMonFootprint_Dudunsparce, - [SPECIES_DUDUNSPARCE_TWO_SEGMENT] = { - DUDUNSPARCE_MISC_INFO(Two), + .baseHP = 125, + .baseAttack = 100, + .baseDefense = 80, + .baseSpeed = 55, + .baseSpAttack = 85, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, + .expYield = 182, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_SERENE_GRACE, ABILITY_RUN_AWAY, ABILITY_RATTLED }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Dudunsprce"), + .cryId = CRY_DUDUNSPARCE, + .natDexNum = NATIONAL_DEX_DUDUNSPARCE, + .categoryName = _("Land Snake"), .height = 36, .weight = 392, .description = COMPOUND_STRING( @@ -3208,11 +3418,52 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = "make its nest by boring holes into\n" "bedrock deep underground. The nest\n" "can reach lengths of over six miles."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_DudunsparceTwoSegment, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Dudunsparce, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_DudunsparceTwoSegment, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Dudunsparce, + .shinyPalette = gMonShinyPalette_Dudunsparce, + .iconSprite = gMonIcon_Dudunsparce, + .iconPalIndex = 0, + //FOOTPRINT(Dudunsparce), + .levelUpLearnset = sDudunsparceLevelUpLearnset, + .teachableLearnset = sDudunsparceTeachableLearnset, + .formSpeciesIdTable = sDudunsparceFormSpeciesIdTable, }, [SPECIES_DUDUNSPARCE_THREE_SEGMENT] = { - DUDUNSPARCE_MISC_INFO(Three), + .baseHP = 125, + .baseAttack = 100, + .baseDefense = 80, + .baseSpeed = 55, + .baseSpAttack = 85, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, + .expYield = 182, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_SERENE_GRACE, ABILITY_RUN_AWAY, ABILITY_RATTLED }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Dudunsprce"), + .cryId = CRY_DUDUNSPARCE, + .natDexNum = NATIONAL_DEX_DUDUNSPARCE, + .categoryName = _("Land Snake"), .height = 45, .weight = 474, .description = COMPOUND_STRING( @@ -3220,6 +3471,27 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = "number of segments a\n" "Dudunsparce's body has is determined by the\n" "Pokémon's genes."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_DudunsparceThreeSegment, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Dudunsparce, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_DudunsparceThreeSegment, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Dudunsparce, + .shinyPalette = gMonShinyPalette_Dudunsparce, + .iconSprite = gMonIcon_Dudunsparce, + .iconPalIndex = 0, + //FOOTPRINT(Dudunsparce), + .levelUpLearnset = sDudunsparceLevelUpLearnset, + .teachableLearnset = sDudunsparceTeachableLearnset, + .formSpeciesIdTable = sDudunsparceFormSpeciesIdTable, }, #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DUNSPARCE @@ -3233,15 +3505,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 85, .baseSpAttack = 35, .baseSpDefense = 65, - .types = { TYPE_GROUND, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GROUND, TYPE_FLYING), .catchRate = 60, - .expYield = 86, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 86 : 108, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_SAND_VEIL, ABILITY_IMMUNITY }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Gligar"), @@ -3259,21 +3531,29 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gligar, 56, 56), - FRONT_PIC_FEMALE(Gligar, 56, 56), + .frontPic = gMonFrontPic_Gligar, + .frontPicFemale = gMonFrontPic_GligarF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Gligar, .frontAnimId = ANIM_SHRINK_GROW, .enemyMonElevation = 8, - BACK_PIC(Gligar, 64, 64), - BACK_PIC_FEMALE(Gligar, 64, 64), + .backPic = gMonBackPic_Gligar, + .backPicFemale = gMonBackPic_GligarF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Gligar), - ICON(Gligar, 0), - .footprint = gMonFootprint_Gligar, - LEARNSETS(Gligar), - .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_GLISCOR}), + .palette = gMonPalette_Gligar, + .shinyPalette = gMonShinyPalette_Gligar, + .iconSprite = gMonIcon_Gligar, + .iconPalIndex = 0, + FOOTPRINT(Gligar) + .levelUpLearnset = sGligarLevelUpLearnset, + .teachableLearnset = sGligarTeachableLearnset, + .evolutions = EVOLUTION({EVO_ITEM_HOLD_NIGHT, ITEM_RAZOR_FANG, SPECIES_GLISCOR}, + {EVO_ITEM_NIGHT, ITEM_RAZOR_FANG, SPECIES_GLISCOR}), }, #if P_GEN_4_CROSS_EVOS @@ -3285,15 +3565,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 95, .baseSpAttack = 45, .baseSpDefense = 75, - .types = { TYPE_GROUND, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GROUND, TYPE_FLYING), .catchRate = 30, - .expYield = 179, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 179 : 192, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_SAND_VEIL, ABILITY_POISON_HEAL }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Gliscor"), @@ -3311,18 +3591,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Gliscor, 64, 56), + .frontPic = gMonFrontPic_Gliscor, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Gliscor, .frontAnimId = ANIM_SWING_CONVEX, .enemyMonElevation = 9, - BACK_PIC(Gliscor, 64, 48), + .backPic = gMonBackPic_Gliscor, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Gliscor), - ICON(Gliscor, 2), - .footprint = gMonFootprint_Gliscor, - LEARNSETS(Gliscor), + .palette = gMonPalette_Gliscor, + .shinyPalette = gMonShinyPalette_Gliscor, + .iconSprite = gMonIcon_Gliscor, + .iconPalIndex = 2, + FOOTPRINT(Gliscor) + .levelUpLearnset = sGliscorLevelUpLearnset, + .teachableLearnset = sGliscorTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_GLIGAR @@ -3336,19 +3621,19 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 30, .baseSpAttack = 40, .baseSpDefense = 40, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_FAIRY, TYPE_FAIRY }, - #else - .types = { TYPE_NORMAL, TYPE_NORMAL }, - #endif + #if P_UPDATED_TYPES >= GEN_6 + .types = MON_TYPES(TYPE_FAIRY), + #else + .types = MON_TYPES(TYPE_NORMAL), + #endif .catchRate = 190, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 63, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_INTIMIDATE, ABILITY_RUN_AWAY, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Snubbull"), @@ -3366,17 +3651,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Snubbull, 40, 40), + .frontPic = gMonFrontPic_Snubbull, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Snubbull, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Snubbull, 56, 40), + .backPic = gMonBackPic_Snubbull, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Snubbull), - ICON(Snubbull, 0), - .footprint = gMonFootprint_Snubbull, - LEARNSETS(Snubbull), + .palette = gMonPalette_Snubbull, + .shinyPalette = gMonShinyPalette_Snubbull, + .iconSprite = gMonIcon_Snubbull, + .iconPalIndex = 0, + FOOTPRINT(Snubbull) + .levelUpLearnset = sSnubbullLevelUpLearnset, + .teachableLearnset = sSnubbullTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 23, SPECIES_GRANBULL}), }, @@ -3388,19 +3678,19 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 45, .baseSpAttack = 60, .baseSpDefense = 60, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_FAIRY, TYPE_FAIRY }, - #else - .types = { TYPE_NORMAL, TYPE_NORMAL }, - #endif + #if P_UPDATED_TYPES >= GEN_6 + .types = MON_TYPES(TYPE_FAIRY), + #else + .types = MON_TYPES(TYPE_NORMAL), + #endif .catchRate = 75, - .expYield = 158, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 178, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_INTIMIDATE, ABILITY_QUICK_FEET, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Granbull"), @@ -3418,97 +3708,145 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Granbull, 56, 56), + .frontPic = gMonFrontPic_Granbull, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Granbull, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Granbull, 56, 48), + .backPic = gMonBackPic_Granbull, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Granbull), - ICON(Granbull, 2), - .footprint = gMonFootprint_Granbull, - LEARNSETS(Granbull), + .palette = gMonPalette_Granbull, + .shinyPalette = gMonShinyPalette_Granbull, + .iconSprite = gMonIcon_Granbull, + .iconPalIndex = 2, + FOOTPRINT(Granbull) + .levelUpLearnset = sGranbullLevelUpLearnset, + .teachableLearnset = sGranbullTeachableLearnset, }, #endif //P_FAMILY_SNUBBULL #if P_FAMILY_QWILFISH -#define QWILFISH_MISC_INFO \ - .baseHP = 65, \ - .baseAttack = 95, \ - .baseDefense = P_UPDATED_STATS >= GEN_7 ? 85 : 75, \ - .baseSpeed = 85, \ - .baseSpAttack = 55, \ - .baseSpDefense = 55, \ - .catchRate = 45, \ - .expYield = 88, \ - .evYield_Attack = 1, \ - .itemRare = ITEM_POISON_BARB, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, \ - .abilities = { ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM, ABILITY_INTIMIDATE }, \ - .speciesName = _("Qwilfish"), \ - .cryId = CRY_QWILFISH, \ - .natDexNum = NATIONAL_DEX_QWILFISH, \ - .categoryName = _("Balloon"), \ - .height = 5, \ - .weight = 39, \ - .pokemonScale = 430, \ - .pokemonOffset = 0, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Qwilfish, \ - .formSpeciesIdTable = sQwilfishFormSpeciesIdTable + +#if P_UPDATED_EXP_YIELDS >= GEN_7 + #define QWILFISH_EXP_YIELD 88 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define QWILFISH_EXP_YIELD 86 +#else + #define QWILFISH_EXP_YIELD 100 +#endif [SPECIES_QWILFISH] = { - QWILFISH_MISC_INFO, - .types = { TYPE_WATER, TYPE_POISON }, + .baseHP = 65, + .baseAttack = 95, + .baseDefense = P_UPDATED_STATS >= GEN_7 ? 85 : 75, + .baseSpeed = 85, + .baseSpAttack = 55, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_WATER, TYPE_POISON), + .catchRate = 45, + .expYield = QWILFISH_EXP_YIELD, + .evYield_Attack = 1, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM, ABILITY_INTIMIDATE }, .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Qwilfish"), + .cryId = CRY_QWILFISH, + .natDexNum = NATIONAL_DEX_QWILFISH, + .categoryName = _("Balloon"), + .height = 5, + .weight = 39, .description = COMPOUND_STRING( "A Qwilfish uses the pressure of water\n" "it swallows to shoot toxic quills all at\n" "once from all over its body. It finds\n" "swimming to be somewhat challenging."), - FRONT_PIC(Qwilfish, 40, 48), + .pokemonScale = 430, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Qwilfish, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Qwilfish, .frontAnimId = ANIM_GROW_IN_STAGES, .frontAnimDelay = 39, - BACK_PIC(Qwilfish, 56, 56), + .backPic = gMonBackPic_Qwilfish, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Qwilfish), - ICON(Qwilfish, 0), - LEARNSETS(Qwilfish), + .palette = gMonPalette_Qwilfish, + .shinyPalette = gMonShinyPalette_Qwilfish, + .iconSprite = gMonIcon_Qwilfish, + .iconPalIndex = 0, + FOOTPRINT(Qwilfish) + .levelUpLearnset = sQwilfishLevelUpLearnset, + .teachableLearnset = sQwilfishTeachableLearnset, + .formSpeciesIdTable = sQwilfishFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_QWILFISH_HISUIAN] = { - QWILFISH_MISC_INFO, - .types = { TYPE_DARK, TYPE_POISON }, + .baseHP = 65, + .baseAttack = 95, + .baseDefense = P_UPDATED_STATS >= GEN_7 ? 85 : 75, + .baseSpeed = 85, + .baseSpAttack = 55, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_DARK, TYPE_POISON), + .catchRate = 45, + .expYield = QWILFISH_EXP_YIELD, + .evYield_Attack = 1, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM, ABILITY_INTIMIDATE }, .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Qwilfish"), + .cryId = CRY_QWILFISH, + .natDexNum = NATIONAL_DEX_QWILFISH, + .categoryName = _("Balloon"), + .height = 5, + .weight = 39, .description = COMPOUND_STRING( "A form of Qwilfish from the distant past.\n" "Fishers detest this troublesome Pokémon\n" "because it sprays poison from its spines,\n" "getting it everywhere."), - FRONT_PIC(QwilfishHisuian, 48, 40), + .pokemonScale = 430, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_QwilfishHisuian, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 16, .frontAnimFrames = sAnims_QwilfishHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 9, - BACK_PIC(QwilfishHisuian, 56, 56), + .backPic = gMonBackPic_QwilfishHisuian, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(QwilfishHisuian), - ICON(QwilfishHisuian, 0), - LEARNSETS(QwilfishHisuian), + .palette = gMonPalette_QwilfishHisuian, + .shinyPalette = gMonShinyPalette_QwilfishHisuian, + .iconSprite = gMonIcon_QwilfishHisuian, + .iconPalIndex = 1, + FOOTPRINT(Qwilfish) .isHisuianForm = TRUE, + .levelUpLearnset = sQwilfishHisuianLevelUpLearnset, + .teachableLearnset = sQwilfishHisuianTeachableLearnset, + .formSpeciesIdTable = sQwilfishFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_MOVE, MOVE_BARB_BARRAGE, SPECIES_OVERQWIL}), }, @@ -3520,7 +3858,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 85, .baseSpAttack = 65, .baseSpDefense = 65, - .types = { TYPE_DARK, TYPE_POISON }, + .types = MON_TYPES(TYPE_DARK, TYPE_POISON), .catchRate = 45, .expYield = 179, .evYield_Attack = 2, @@ -3528,7 +3866,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM, ABILITY_INTIMIDATE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Overqwil"), @@ -3546,17 +3884,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 10, .trainerScale = 423, .trainerOffset = 8, - FRONT_PIC(Overqwil, 64, 64), + .frontPic = gMonFrontPic_Overqwil, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Overqwil, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Overqwil, 64, 56), + .backPic = gMonBackPic_Overqwil, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Overqwil), - ICON(Overqwil, 2), - //.footprint = gMonFootprint_Overqwil, - LEARNSETS(Overqwil), + .palette = gMonPalette_Overqwil, + .shinyPalette = gMonShinyPalette_Overqwil, + .iconSprite = gMonIcon_Overqwil, + .iconPalIndex = 2, + //FOOTPRINT(Overqwil) + .levelUpLearnset = sOverqwilLevelUpLearnset, + .teachableLearnset = sOverqwilTeachableLearnset, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_QWILFISH @@ -3570,9 +3913,9 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 5, .baseSpAttack = 10, .baseSpDefense = 230, - .types = { TYPE_BUG, TYPE_ROCK }, + .types = MON_TYPES(TYPE_BUG, TYPE_ROCK), .catchRate = 190, - .expYield = 177, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 177 : 80, .evYield_Defense = 1, .evYield_SpDefense = 1, .itemCommon = ITEM_BERRY_JUICE, @@ -3581,7 +3924,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_STURDY, ABILITY_GLUTTONY, ABILITY_CONTRARY }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Shuckle"), @@ -3599,51 +3942,49 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shuckle, 56, 48), + .frontPic = gMonFrontPic_Shuckle, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Shuckle, .frontAnimId = ANIM_SWING_CONCAVE, - BACK_PIC(Shuckle, 48, 48), + .backPic = gMonBackPic_Shuckle, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Shuckle), - ICON(Shuckle, 1), - .footprint = gMonFootprint_Shuckle, - LEARNSETS(Shuckle), + .palette = gMonPalette_Shuckle, + .shinyPalette = gMonShinyPalette_Shuckle, + .iconSprite = gMonIcon_Shuckle, + .iconPalIndex = 1, + FOOTPRINT(Shuckle) + .levelUpLearnset = sShuckleLevelUpLearnset, + .teachableLearnset = sShuckleTeachableLearnset, }, #endif //P_FAMILY_SHUCKLE #if P_FAMILY_HERACROSS -#define HERACROSS_MISC_INFO \ - .types = { TYPE_BUG, TYPE_FIGHTING }, \ - .catchRate = 45, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Heracross"), \ - .natDexNum = NATIONAL_DEX_HERACROSS, \ - .categoryName = _("Single Horn"), \ - .footprint = gMonFootprint_Heracross, \ - LEARNSETS(Heracross), \ - .formSpeciesIdTable = sHeracrossFormSpeciesIdTable, \ - .formChangeTable = sHeracrossFormChangeTable - [SPECIES_HERACROSS] = { - HERACROSS_MISC_INFO, .baseHP = 80, .baseAttack = 125, .baseDefense = 75, .baseSpeed = 85, .baseSpAttack = 40, .baseSpDefense = 95, - .expYield = 175, + .types = MON_TYPES(TYPE_BUG, TYPE_FIGHTING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 200, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_GUTS, ABILITY_MOXIE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Heracross"), .cryId = CRY_HERACROSS, + .natDexNum = NATIONAL_DEX_HERACROSS, + .categoryName = _("Single Horn"), .height = 15, .weight = 540, .description = COMPOUND_STRING( @@ -3655,32 +3996,54 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Heracross, 64, 64), - FRONT_PIC_FEMALE(Heracross, 64, 64), + .frontPic = gMonFrontPic_Heracross, + .frontPicFemale = gMonFrontPic_HeracrossF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Heracross, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Heracross, 48, 64), - BACK_PIC_FEMALE(Heracross, 48, 64), + .backPic = gMonBackPic_Heracross, + .backPicFemale = gMonBackPic_HeracrossF, + .backPicSize = MON_COORDS_SIZE(48, 64), + .backPicSizeFemale = MON_COORDS_SIZE(48, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Heracross), - ICON(Heracross, 0), + .palette = gMonPalette_Heracross, + .shinyPalette = gMonShinyPalette_Heracross, + .iconSprite = gMonIcon_Heracross, + .iconPalIndex = 0, + FOOTPRINT(Heracross) + .levelUpLearnset = sHeracrossLevelUpLearnset, + .teachableLearnset = sHeracrossTeachableLearnset, + .formSpeciesIdTable = sHeracrossFormSpeciesIdTable, + .formChangeTable = sHeracrossFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_HERACROSS_MEGA] = { - HERACROSS_MISC_INFO, .baseHP = 80, .baseAttack = 185, .baseDefense = 115, .baseSpeed = 75, .baseSpAttack = 40, .baseSpDefense = 105, + .types = MON_TYPES(TYPE_BUG, TYPE_FIGHTING), + .catchRate = 45, .expYield = 210, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SKILL_LINK, ABILITY_SKILL_LINK, ABILITY_SKILL_LINK }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Heracross"), .cryId = CRY_HERACROSS_MEGA, + .natDexNum = NATIONAL_DEX_HERACROSS, + .categoryName = _("Single Horn"), .height = 17, .weight = 625, .description = COMPOUND_STRING( @@ -3692,75 +4055,89 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(HeracrossMega, 64, 64), + .frontPic = gMonFrontPic_HeracrossMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_HeracrossMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(HeracrossMega, 56, 64), + .backPic = gMonBackPic_HeracrossMega, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(HeracrossMega), - ICON(HeracrossMega, 0), + .palette = gMonPalette_HeracrossMega, + .shinyPalette = gMonShinyPalette_HeracrossMega, + .iconSprite = gMonIcon_HeracrossMega, + .iconPalIndex = 0, + FOOTPRINT(Heracross) .isMegaEvolution = TRUE, + .levelUpLearnset = sHeracrossLevelUpLearnset, + .teachableLearnset = sHeracrossTeachableLearnset, + .formSpeciesIdTable = sHeracrossFormSpeciesIdTable, + .formChangeTable = sHeracrossFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_HERACROSS #if P_FAMILY_SNEASEL -#define SNEASEL_MISC_INFO \ - .baseHP = 55, \ - .baseAttack = 95, \ - .baseDefense = 55, \ - .baseSpeed = 115, \ - .baseSpAttack = 35, \ - .baseSpDefense = 75, \ - .catchRate = 60, \ - .expYield = 86, \ - .evYield_Speed = 1, \ - .itemRare = ITEM_QUICK_CLAW, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = 35, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .noFlip = TRUE, \ - .speciesName = _("Sneasel"), \ - .cryId = CRY_SNEASEL, \ - .natDexNum = NATIONAL_DEX_SNEASEL, \ - .categoryName = _("Sharp Claw"), \ - .height = 9, \ - .pokemonScale = 413, \ - .pokemonOffset = -3, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Sneasel, \ - .formSpeciesIdTable = sSneaselFormSpeciesIdTable - [SPECIES_SNEASEL] = { - SNEASEL_MISC_INFO, - .types = { TYPE_DARK, TYPE_ICE }, + .baseHP = 55, + .baseAttack = 95, + .baseDefense = 55, + .baseSpeed = 115, + .baseSpAttack = 35, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_DARK, TYPE_ICE), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 86 : 132, + .evYield_Speed = 1, + .itemRare = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INNER_FOCUS, ABILITY_KEEN_EYE, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_BLACK, + .noFlip = TRUE, + .speciesName = _("Sneasel"), + .cryId = CRY_SNEASEL, + .natDexNum = NATIONAL_DEX_SNEASEL, + .categoryName = _("Sharp Claw"), + .height = 9, .weight = 280, .description = COMPOUND_STRING( "A Sneasel scales trees by punching its\n" "hooked claws into the bark. It seeks out\n" "unguarded nests and steals eggs for food\n" "while the parents are away."), - FRONT_PIC(Sneasel, 56, 48), - FRONT_PIC_FEMALE(Sneasel, 56, 48), + .pokemonScale = 413, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Sneasel, + .frontPicFemale = gMonFrontPic_SneaselF, + .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Sneasel, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Sneasel, 64, 64), - BACK_PIC_FEMALE(Sneasel, 64, 64), + .backPic = gMonBackPic_Sneasel, + .backPicFemale = gMonBackPic_SneaselF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Sneasel), - ICON(Sneasel, 0), - LEARNSETS(Sneasel), - .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_WEAVILE}), + .palette = gMonPalette_Sneasel, + .shinyPalette = gMonShinyPalette_Sneasel, + .iconSprite = gMonIcon_Sneasel, + .iconPalIndex = 0, + FOOTPRINT(Sneasel) + .levelUpLearnset = sSneaselLevelUpLearnset, + .teachableLearnset = sSneaselTeachableLearnset, + .formSpeciesIdTable = sSneaselFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_ITEM_HOLD_NIGHT, ITEM_RAZOR_CLAW, SPECIES_WEAVILE}, + {EVO_ITEM_NIGHT, ITEM_RAZOR_CLAW, SPECIES_WEAVILE}), }, #if P_GEN_4_CROSS_EVOS @@ -3772,9 +4149,9 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 125, .baseSpAttack = 45, .baseSpDefense = 85, - .types = { TYPE_DARK, TYPE_ICE }, + .types = MON_TYPES(TYPE_DARK, TYPE_ICE), .catchRate = 45, - .expYield = 179, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 179 : 199, .evYield_Attack = 1, .evYield_Speed = 1, .itemRare = ITEM_QUICK_CLAW, @@ -3782,7 +4159,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Weavile"), @@ -3800,49 +4177,90 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Weavile, 56, 56), - FRONT_PIC_FEMALE(Weavile, 56, 56), + .frontPic = gMonFrontPic_Weavile, + .frontPicFemale = gMonFrontPic_WeavileF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Weavile, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Weavile, 64, 64), - BACK_PIC_FEMALE(Weavile, 64, 64), + .backPic = gMonBackPic_Weavile, + .backPicFemale = gMonBackPic_WeavileF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Weavile), - ICON(Weavile, 0), - .footprint = gMonFootprint_Weavile, - LEARNSETS(Weavile), + .palette = gMonPalette_Weavile, + .shinyPalette = gMonShinyPalette_Weavile, + .iconSprite = gMonIcon_Weavile, + .iconPalIndex = 0, + FOOTPRINT(Weavile) + .levelUpLearnset = sWeavileLevelUpLearnset, + .teachableLearnset = sWeavileTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #if P_HISUIAN_FORMS [SPECIES_SNEASEL_HISUIAN] = { - SNEASEL_MISC_INFO, - .types = { TYPE_FIGHTING, TYPE_POISON }, + .baseHP = 55, + .baseAttack = 95, + .baseDefense = 55, + .baseSpeed = 115, + .baseSpAttack = 35, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_POISON), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 86 : 132, + .evYield_Speed = 1, + .itemRare = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INNER_FOCUS, ABILITY_KEEN_EYE, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Sneasel"), + .cryId = CRY_SNEASEL, + .natDexNum = NATIONAL_DEX_SNEASEL, + .categoryName = _("Sharp Claw"), + .height = 9, .weight = 270, .description = COMPOUND_STRING( "Its sturdy, curved claws are ideal for\n" "traversing precipitous cliffs. From the\n" "tips of these claws drips a venom that\n" "infiltrates the nerves of any prey caught."), - FRONT_PIC(SneaselHisuian, 56, 56), - FRONT_PIC_FEMALE(SneaselHisuian, 56, 56), + .pokemonScale = 413, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_SneaselHisuian, + .frontPicFemale = gMonFrontPic_SneaselHisuianF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_SneaselHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SneaselHisuian, 56, 64), - BACK_PIC_FEMALE(SneaselHisuian, 56, 64), + .backPic = gMonBackPic_SneaselHisuian, + .backPicFemale = gMonBackPic_SneaselHisuianF, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SneaselHisuian), - ICON(SneaselHisuian, 2), - LEARNSETS(SneaselHisuian), + .palette = gMonPalette_SneaselHisuian, + .shinyPalette = gMonShinyPalette_SneaselHisuian, + .iconSprite = gMonIcon_SneaselHisuian, + .iconPalIndex = 0, + FOOTPRINT(Sneasel) .isHisuianForm = TRUE, - .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_SNEASLER}), + .levelUpLearnset = sSneaselHisuianLevelUpLearnset, + .teachableLearnset = sSneaselHisuianTeachableLearnset, + .formSpeciesIdTable = sSneaselFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_ITEM_HOLD_DAY, ITEM_RAZOR_CLAW, SPECIES_SNEASLER}, + {EVO_ITEM_DAY, ITEM_RAZOR_CLAW, SPECIES_SNEASLER}), }, [SPECIES_SNEASLER] = @@ -3853,7 +4271,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 120, .baseSpAttack = 40, .baseSpDefense = 80, - .types = { TYPE_FIGHTING, TYPE_POISON }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_POISON), .catchRate = 20, .expYield = 102, .evYield_Attack = 2, @@ -3861,7 +4279,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PRESSURE, ABILITY_UNBURDEN, ABILITY_POISON_TOUCH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Sneasler"), @@ -3879,17 +4297,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sneasler, 64, 64), + .frontPic = gMonFrontPic_Sneasler, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Sneasler, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sneasler, 64, 64), + .backPic = gMonBackPic_Sneasler, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Sneasler), - ICON(Sneasler, 2), - //.footprint = gMonFootprint_Sneasler, - LEARNSETS(Sneasler), + .palette = gMonPalette_Sneasler, + .shinyPalette = gMonShinyPalette_Sneasler, + .iconSprite = gMonIcon_Sneasler, + .iconPalIndex = 2, + //FOOTPRINT(Sneasler) + .levelUpLearnset = sSneaslerLevelUpLearnset, + .teachableLearnset = sSneaslerTeachableLearnset, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_SNEASEL @@ -3903,15 +4326,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 40, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 120, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 124, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_QUICK_FEET, ABILITY_HONEY_GATHER }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -3930,17 +4353,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Teddiursa, 40, 40), + .frontPic = gMonFrontPic_Teddiursa, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Teddiursa, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Teddiursa, 48, 48), + .backPic = gMonBackPic_Teddiursa, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Teddiursa), - ICON(Teddiursa, 0), - .footprint = gMonFootprint_Teddiursa, - LEARNSETS(Teddiursa), + .palette = gMonPalette_Teddiursa, + .shinyPalette = gMonShinyPalette_Teddiursa, + .iconSprite = gMonIcon_Teddiursa, + .iconPalIndex = 0, + FOOTPRINT(Teddiursa) + .levelUpLearnset = sTeddiursaLevelUpLearnset, + .teachableLearnset = sTeddiursaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_URSARING}), }, @@ -3952,15 +4380,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 55, .baseSpAttack = 75, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 60, - .expYield = 175, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 189, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GUTS, ABILITY_QUICK_FEET, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Ursaring"), @@ -3978,51 +4406,54 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ursaring, 64, 64), - FRONT_PIC_FEMALE(Ursaring, 64, 64), + .frontPic = gMonFrontPic_Ursaring, + .frontPicFemale = gMonFrontPic_UrsaringF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Ursaring, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Ursaring, 56, 64), - BACK_PIC_FEMALE(Ursaring, 56, 64), + .backPic = gMonBackPic_Ursaring, + .backPicFemale = gMonBackPic_UrsaringF, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Ursaring), - ICON(Ursaring, 2), - .footprint = gMonFootprint_Ursaring, - LEARNSETS(Ursaring), - .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_URSALUNA}, + .palette = gMonPalette_Ursaring, + .shinyPalette = gMonShinyPalette_Ursaring, + .iconSprite = gMonIcon_Ursaring, + .iconPalIndex = 2, + FOOTPRINT(Ursaring) + .levelUpLearnset = sUrsaringLevelUpLearnset, + .teachableLearnset = sUrsaringTeachableLearnset, + .evolutions = EVOLUTION({EVO_ITEM_NIGHT, ITEM_PEAT_BLOCK, SPECIES_URSALUNA}, {EVO_NONE, 0, SPECIES_URSALUNA_BLOODMOON}), }, #if P_GEN_8_CROSS_EVOS -#define URSALUNA_MISC_INFO \ - .expYield = 275, \ - .types = { TYPE_GROUND, TYPE_NORMAL }, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Ursaluna"), \ - .cryId = CRY_URSALUNA, \ - .natDexNum = NATIONAL_DEX_URSALUNA, \ - .categoryName = _("Peat"), \ - .formSpeciesIdTable = sUrsalunaFormSpeciesIdTable - [SPECIES_URSALUNA] = { - URSALUNA_MISC_INFO, .baseHP = 130, .baseAttack = 140, .baseDefense = 105, .baseSpeed = 50, .baseSpAttack = 45, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GROUND, TYPE_NORMAL), .catchRate = 20, + .expYield = 275, .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GUTS, ABILITY_BULLETPROOF, ABILITY_UNNERVE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Ursaluna"), + .cryId = CRY_URSALUNA, + .natDexNum = NATIONAL_DEX_URSALUNA, + .categoryName = _("Peat"), .height = 24, .weight = 2900, .description = COMPOUND_STRING( @@ -4033,32 +4464,48 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 3, .trainerScale = 369, .trainerOffset = 7, - FRONT_PIC(Ursaluna, 56, 56), + .frontPic = gMonFrontPic_Ursaluna, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Ursaluna, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Ursaluna, 64, 40), + .backPic = gMonBackPic_Ursaluna, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Ursaluna), - ICON(Ursaluna, 2), - //.footprint = gMonFootprint_Ursaluna, - LEARNSETS(Ursaluna), + .palette = gMonPalette_Ursaluna, + .shinyPalette = gMonShinyPalette_Ursaluna, + .iconSprite = gMonIcon_Ursaluna, + .iconPalIndex = 2, + //FOOTPRINT(Ursaluna) + .levelUpLearnset = sUrsalunaLevelUpLearnset, + .teachableLearnset = sUrsalunaTeachableLearnset, + .formSpeciesIdTable = sUrsalunaFormSpeciesIdTable, }, [SPECIES_URSALUNA_BLOODMOON] = { - URSALUNA_MISC_INFO, .baseHP = 113, .baseAttack = 70, .baseDefense = 120, .baseSpeed = 52, .baseSpAttack = 135, .baseSpDefense = 65, + .types = MON_TYPES(TYPE_GROUND, TYPE_NORMAL), .catchRate = 5, + .expYield = 275, .evYield_SpAttack = 3, .genderRatio = MON_MALE, - .abilities = { ABILITY_MINDS_EYE, ABILITY_NONE }, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_MINDS_EYE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Ursaluna"), + .cryId = CRY_URSALUNA, + .natDexNum = NATIONAL_DEX_URSALUNA, + .categoryName = _("Peat"), .height = 27, .weight = 3330, .description = COMPOUND_STRING( @@ -4070,17 +4517,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 3, .trainerScale = 369, .trainerOffset = 7, - FRONT_PIC(UrsalunaBloodmoon, 64, 64), + .frontPic = gMonFrontPic_UrsalunaBloodmoon, + .frontPicSize = MON_COORDS_SIZE(64, 64), //.frontPicYOffset = 0, .frontAnimFrames = sAnims_UrsalunaBloodmoon, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(UrsalunaBloodmoon, 64, 40), + .backPic = gMonBackPic_UrsalunaBloodmoon, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(UrsalunaBloodmoon), - //ICON(UrsalunaBloodmoon, 0), - //.footprint = gMonFootprint_UrsalunaBloodmoon, - LEARNSETS(UrsalunaBloodmoon), + .palette = gMonPalette_UrsalunaBloodmoon, + .shinyPalette = gMonShinyPalette_UrsalunaBloodmoon, + .iconSprite = gMonIcon_UrsalunaBloodmoon, + .iconPalIndex = 2, + //FOOTPRINT(UrsalunaBloodmoon) + .levelUpLearnset = sUrsalunaBloodmoonLevelUpLearnset, + .teachableLearnset = sUrsalunaBloodmoonTeachableLearnset, + .formSpeciesIdTable = sUrsalunaFormSpeciesIdTable, }, #endif //P_GEN_8_CROSS_EVOS #endif //P_FAMILY_TEDDIURSA @@ -4094,15 +4547,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 20, .baseSpAttack = 70, .baseSpDefense = 40, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 190, - .expYield = 50, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 50 : 78, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_MAGMA_ARMOR, ABILITY_FLAME_BODY, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Slugma"), @@ -4120,17 +4573,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Slugma, 32, 48), + .frontPic = gMonFrontPic_Slugma, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Slugma, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Slugma, 64, 56), + .backPic = gMonBackPic_Slugma, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Slugma), - ICON(Slugma, 0), - .footprint = gMonFootprint_Slugma, - LEARNSETS(Slugma), + .palette = gMonPalette_Slugma, + .shinyPalette = gMonShinyPalette_Slugma, + .iconSprite = gMonIcon_Slugma, + .iconPalIndex = 0, + FOOTPRINT(Slugma) + .levelUpLearnset = sSlugmaLevelUpLearnset, + .teachableLearnset = sSlugmaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_MAGCARGO}), }, @@ -4142,15 +4600,21 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 30, .baseSpAttack = P_UPDATED_STATS >= GEN_7 ? 90 : 80, .baseSpDefense = 80, - .types = { TYPE_FIRE, TYPE_ROCK }, + .types = MON_TYPES(TYPE_FIRE, TYPE_ROCK), .catchRate = 75, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 151, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 144, + #else + .expYield = 154, + #endif .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_MAGMA_ARMOR, ABILITY_FLAME_BODY, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, @@ -4169,17 +4633,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Magcargo, 56, 64), + .frontPic = gMonFrontPic_Magcargo, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Magcargo, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Magcargo, 64, 56), + .backPic = gMonBackPic_Magcargo, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Magcargo), - ICON(Magcargo, 0), - .footprint = gMonFootprint_Magcargo, - LEARNSETS(Magcargo), + .palette = gMonPalette_Magcargo, + .shinyPalette = gMonShinyPalette_Magcargo, + .iconSprite = gMonIcon_Magcargo, + .iconPalIndex = 0, + FOOTPRINT(Magcargo) + .levelUpLearnset = sMagcargoLevelUpLearnset, + .teachableLearnset = sMagcargoTeachableLearnset, }, #endif //P_FAMILY_SLUGMA @@ -4192,15 +4661,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 50, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_ICE, TYPE_GROUND }, + .types = MON_TYPES(TYPE_ICE, TYPE_GROUND), .catchRate = 225, - .expYield = 50, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 50 : 78, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OBLIVIOUS, ABILITY_SNOW_CLOAK, ABILITY_THICK_FAT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Swinub"), @@ -4218,17 +4687,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Swinub, 40, 32), + .frontPic = gMonFrontPic_Swinub, + .frontPicSize = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 18, .frontAnimFrames = sAnims_Swinub, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Swinub, 56, 40), + .backPic = gMonBackPic_Swinub, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Swinub), - ICON(Swinub, 2), - .footprint = gMonFootprint_Swinub, - LEARNSETS(Swinub), + .palette = gMonPalette_Swinub, + .shinyPalette = gMonShinyPalette_Swinub, + .iconSprite = gMonIcon_Swinub, + .iconPalIndex = 2, + FOOTPRINT(Swinub) + .levelUpLearnset = sSwinubLevelUpLearnset, + .teachableLearnset = sSwinubTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_PILOSWINE}), }, @@ -4240,16 +4714,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_ICE, TYPE_GROUND }, + .types = MON_TYPES(TYPE_ICE, TYPE_GROUND), .catchRate = 75, - .expYield = 158, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 160, .evYield_HP = 1, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OBLIVIOUS, ABILITY_SNOW_CLOAK, ABILITY_THICK_FAT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Piloswine"), @@ -4267,19 +4741,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Piloswine, 48, 56), - FRONT_PIC_FEMALE(Piloswine, 48, 56), + .frontPic = gMonFrontPic_Piloswine, + .frontPicFemale = gMonFrontPic_PiloswineF, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Piloswine, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Piloswine, 64, 48), - BACK_PIC_FEMALE(Piloswine, 64, 48), + .backPic = gMonBackPic_Piloswine, + .backPicFemale = gMonBackPic_PiloswineF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Piloswine), - ICON(Piloswine, 2), - .footprint = gMonFootprint_Piloswine, - LEARNSETS(Piloswine), + .palette = gMonPalette_Piloswine, + .shinyPalette = gMonShinyPalette_Piloswine, + .iconSprite = gMonIcon_Piloswine, + .iconPalIndex = 2, + FOOTPRINT(Piloswine) + .levelUpLearnset = sPiloswineLevelUpLearnset, + .teachableLearnset = sPiloswineTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_ANCIENT_POWER, SPECIES_MAMOSWINE}), }, @@ -4292,15 +4773,21 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 80, .baseSpAttack = 70, .baseSpDefense = 60, - .types = { TYPE_ICE, TYPE_GROUND }, + .types = MON_TYPES(TYPE_ICE, TYPE_GROUND), .catchRate = 50, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 265, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 239, + #else + .expYield = 207, + #endif .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OBLIVIOUS, ABILITY_SNOW_CLOAK, ABILITY_THICK_FAT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Mamoswine"), @@ -4318,108 +4805,147 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 6, .trainerScale = 423, .trainerOffset = 8, - FRONT_PIC(Mamoswine, 64, 56), - FRONT_PIC_FEMALE(Mamoswine, 64, 56), + .frontPic = gMonFrontPic_Mamoswine, + .frontPicFemale = gMonFrontPic_MamoswineF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Mamoswine, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Mamoswine, 64, 56), + .backPic = gMonBackPic_Mamoswine, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Mamoswine), - ICON(Mamoswine, 2), - .footprint = gMonFootprint_Mamoswine, - LEARNSETS(Mamoswine), + .palette = gMonPalette_Mamoswine, + .shinyPalette = gMonShinyPalette_Mamoswine, + .iconSprite = gMonIcon_Mamoswine, + .iconPalIndex = 2, + FOOTPRINT(Mamoswine) + .levelUpLearnset = sMamoswineLevelUpLearnset, + .teachableLearnset = sMamoswineTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_SWINUB #if P_FAMILY_CORSOLA +#if P_UPDATED_EXP_YIELDS >= GEN_7 + #define CORSOLA_EXP_YIELD 144 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define CORSOLA_EXP_YIELD 133 +#else + #define CORSOLA_EXP_YIELD 113 +#endif #define CORSOLA_HP (P_UPDATED_STATS >= GEN_7 ? 65 : 55) #define CORSOLA_DEFENSES (P_UPDATED_STATS >= GEN_7 ? 95 : 85) -#define CORSOLA_MISC_INFO \ - .catchRate = 60, \ - .expYield = 144, \ - .evYield_SpDefense = 1, \ - .genderRatio = PERCENT_FEMALE(75), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_FAST, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, \ - .speciesName = _("Corsola"), \ - .cryId = CRY_CORSOLA, \ - .natDexNum = NATIONAL_DEX_CORSOLA, \ - .categoryName = _("Coral"), \ - .height = 6, \ - .pokemonScale = 410, \ - .pokemonOffset = 15, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Corsola, \ - .formSpeciesIdTable = sCorsolaFormSpeciesIdTable - [SPECIES_CORSOLA] = { - CORSOLA_MISC_INFO, .baseHP = CORSOLA_HP, .baseAttack = 55, .baseDefense = CORSOLA_DEFENSES, .baseSpeed = 35, .baseSpAttack = 65, .baseSpDefense = CORSOLA_DEFENSES, - .types = { TYPE_WATER, TYPE_ROCK }, + .types = MON_TYPES(TYPE_WATER, TYPE_ROCK), + .catchRate = 60, + .expYield = CORSOLA_EXP_YIELD, .evYield_Defense = 1, + .evYield_SpDefense = 1, + .itemRare = ITEM_LUMINOUS_MOSS, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_HUSTLE, ABILITY_NATURAL_CURE, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Corsola"), + .cryId = CRY_CORSOLA, + .natDexNum = NATIONAL_DEX_CORSOLA, + .categoryName = _("Coral"), + .height = 6, .weight = 50, .description = COMPOUND_STRING( "Corsola live in warm southern seas.\n" "If the sea becomes polluted, the beautiful\n" "coral stalks become discolored and crumble\n" "away in tatters."), - FRONT_PIC(Corsola, 48, 40), + .pokemonScale = 410, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Corsola, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Corsola, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Corsola, 56, 48), + .backPic = gMonBackPic_Corsola, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Corsola), - ICON(Corsola, 0), - LEARNSETS(Corsola), + .palette = gMonPalette_Corsola, + .shinyPalette = gMonShinyPalette_Corsola, + .iconSprite = gMonIcon_Corsola, + .iconPalIndex = 0, + FOOTPRINT(Corsola) + .levelUpLearnset = sCorsolaLevelUpLearnset, + .teachableLearnset = sCorsolaTeachableLearnset, + .formSpeciesIdTable = sCorsolaFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_CORSOLA_GALARIAN] = { - CORSOLA_MISC_INFO, .baseHP = CORSOLA_HP - 5, .baseAttack = 55, .baseDefense = CORSOLA_DEFENSES + 5, .baseSpeed = 30, .baseSpAttack = 65, .baseSpDefense = CORSOLA_DEFENSES + 5, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 60, + .expYield = CORSOLA_EXP_YIELD, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Corsola"), + .cryId = CRY_CORSOLA, + .natDexNum = NATIONAL_DEX_CORSOLA, + .categoryName = _("Coral"), + .height = 6, .weight = 5, .description = COMPOUND_STRING( "Sudden climate change wiped out this\n" "ancient kind of Corsola. With its branches,\n" "it absorbs others' life-force. It curses\n" "those unaware that kick it by accident."), - FRONT_PIC(CorsolaGalarian, 48, 48), + .pokemonScale = 410, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CorsolaGalarian, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_CorsolaGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CorsolaGalarian, 56, 48), + .backPic = gMonBackPic_CorsolaGalarian, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CorsolaGalarian), - ICON(CorsolaGalarian, 0), - LEARNSETS(CorsolaGalarian), + .palette = gMonPalette_CorsolaGalarian, + .shinyPalette = gMonShinyPalette_CorsolaGalarian, + .iconSprite = gMonIcon_CorsolaGalarian, + .iconPalIndex = 0, + FOOTPRINT(Corsola) .isGalarianForm = TRUE, + .levelUpLearnset = sCorsolaGalarianLevelUpLearnset, + .teachableLearnset = sCorsolaGalarianTeachableLearnset, + .formSpeciesIdTable = sCorsolaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_CURSOLA}), }, @@ -4431,7 +4957,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 30, .baseSpAttack = 145, .baseSpDefense = 130, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 30, .expYield = 179, .evYield_SpAttack = 2, @@ -4439,7 +4965,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_PERISH_BODY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Cursola"), @@ -4457,17 +4983,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Cursola, 64, 64), + .frontPic = gMonFrontPic_Cursola, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cursola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cursola, 64, 56), + .backPic = gMonBackPic_Cursola, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cursola), - ICON(Cursola, 0), - .footprint = gMonFootprint_Cursola, - LEARNSETS(Cursola), + .palette = gMonPalette_Cursola, + .shinyPalette = gMonShinyPalette_Cursola, + .iconSprite = gMonIcon_Cursola, + .iconPalIndex = 0, + FOOTPRINT(Cursola) + .levelUpLearnset = sCursolaLevelUpLearnset, + .teachableLearnset = sCursolaTeachableLearnset, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_CORSOLA @@ -4481,15 +5012,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 65, .baseSpAttack = 65, .baseSpDefense = 35, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 190, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 78, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_2), .abilities = { ABILITY_HUSTLE, ABILITY_SNIPER, ABILITY_MOODY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Remoraid"), @@ -4507,17 +5038,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Remoraid, 40, 48), + .frontPic = gMonFrontPic_Remoraid, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Remoraid, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Remoraid, 56, 40), + .backPic = gMonBackPic_Remoraid, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Remoraid), - ICON(Remoraid, 0), - .footprint = gMonFootprint_Remoraid, - LEARNSETS(Remoraid), + .palette = gMonPalette_Remoraid, + .shinyPalette = gMonShinyPalette_Remoraid, + .iconSprite = gMonIcon_Remoraid, + .iconPalIndex = 0, + FOOTPRINT(Remoraid) + .levelUpLearnset = sRemoraidLevelUpLearnset, + .teachableLearnset = sRemoraidTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_OCTILLERY}), }, @@ -4529,16 +5065,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 45, .baseSpAttack = 105, .baseSpDefense = 75, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 75, - .expYield = 168, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 168 : 164, .evYield_Attack = 1, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_2), .abilities = { ABILITY_SUCTION_CUPS, ABILITY_SNIPER, ABILITY_MOODY }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Octillery"), @@ -4556,20 +5092,27 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Octillery, 56, 48), - FRONT_PIC_FEMALE(Octillery, 56, 48), + .frontPic = gMonFrontPic_Octillery, + .frontPicFemale = gMonFrontPic_OctilleryF, + .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Octillery, .frontAnimId = ANIM_V_STRETCH, .frontAnimDelay = 20, - BACK_PIC(Octillery, 64, 56), - BACK_PIC_FEMALE(Octillery, 64, 56), + .backPic = gMonBackPic_Octillery, + .backPicFemale = gMonBackPic_OctilleryF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Octillery), - ICON(Octillery, 0), - .footprint = gMonFootprint_Octillery, - LEARNSETS(Octillery), + .palette = gMonPalette_Octillery, + .shinyPalette = gMonShinyPalette_Octillery, + .iconSprite = gMonIcon_Octillery, + .iconPalIndex = 0, + FOOTPRINT(Octillery) + .levelUpLearnset = sOctilleryLevelUpLearnset, + .teachableLearnset = sOctilleryTeachableLearnset, }, #endif //P_FAMILY_REMORAID @@ -4582,15 +5125,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 75, .baseSpAttack = 65, .baseSpDefense = 45, - .types = { TYPE_ICE, TYPE_FLYING }, + .types = MON_TYPES(TYPE_ICE, TYPE_FLYING), .catchRate = 45, - .expYield = 116, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 116 : 183, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_HUSTLE, ABILITY_INSOMNIA }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Delibird"), @@ -4608,17 +5151,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Delibird, 48, 56), + .frontPic = gMonFrontPic_Delibird, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Delibird, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Delibird, 56, 56), + .backPic = gMonBackPic_Delibird, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Delibird), - ICON(Delibird, 1), - .footprint = gMonFootprint_Delibird, - LEARNSETS(Delibird), + .palette = gMonPalette_Delibird, + .shinyPalette = gMonShinyPalette_Delibird, + .iconSprite = gMonIcon_Delibird, + .iconPalIndex = 1, + FOOTPRINT(Delibird) + .levelUpLearnset = sDelibirdLevelUpLearnset, + .teachableLearnset = sDelibirdTeachableLearnset, }, #endif //P_FAMILY_DELIBIRD @@ -4632,15 +5180,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 120, - .types = { TYPE_WATER, TYPE_FLYING }, + .types = MON_TYPES(TYPE_WATER, TYPE_FLYING), .catchRate = 25, - .expYield = 69, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 69 : 108, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_WATER_ABSORB, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Mantyke"), @@ -4658,17 +5206,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Mantyke, 48, 48), + .frontPic = gMonFrontPic_Mantyke, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Mantyke, .frontAnimId = ANIM_TWIST_TWICE, - BACK_PIC(Mantyke, 64, 56), + .backPic = gMonBackPic_Mantyke, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Mantyke), - ICON(Mantyke, 0), - .footprint = gMonFootprint_Mantyke, - LEARNSETS(Mantyke), + .palette = gMonPalette_Mantyke, + .shinyPalette = gMonShinyPalette_Mantyke, + .iconSprite = gMonIcon_Mantyke, + .iconPalIndex = 0, + FOOTPRINT(Mantyke) + .levelUpLearnset = sMantykeLevelUpLearnset, + .teachableLearnset = sMantykeTeachableLearnset, .evolutions = EVOLUTION({EVO_SPECIFIC_MON_IN_PARTY, SPECIES_REMORAID, SPECIES_MANTINE}), }, #endif //P_GEN_4_CROSS_EVOS @@ -4681,15 +5234,21 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 70, .baseSpAttack = 80, .baseSpDefense = 140, - .types = { TYPE_WATER, TYPE_FLYING }, + .types = MON_TYPES(TYPE_WATER, TYPE_FLYING), .catchRate = 25, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 170, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 163, + #else + .expYield = 168, + #endif .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_WATER_ABSORB, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Mantine"), @@ -4707,18 +5266,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 342, .trainerOffset = 7, - FRONT_PIC(Mantine, 64, 56), + .frontPic = gMonFrontPic_Mantine, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Mantine, .frontAnimId = ANIM_SWING_CONVEX, .enemyMonElevation = 6, - BACK_PIC(Mantine, 64, 64), + .backPic = gMonBackPic_Mantine, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Mantine), - ICON(Mantine, 2), - .footprint = gMonFootprint_Mantine, - LEARNSETS(Mantine), + .palette = gMonPalette_Mantine, + .shinyPalette = gMonShinyPalette_Mantine, + .iconSprite = gMonIcon_Mantine, + .iconPalIndex = 2, + FOOTPRINT(Mantine) + .levelUpLearnset = sMantineLevelUpLearnset, + .teachableLearnset = sMantineTeachableLearnset, }, #endif //P_FAMILY_MANTINE @@ -4731,16 +5295,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 70, .baseSpAttack = 40, .baseSpDefense = 70, - .types = { TYPE_STEEL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_STEEL, TYPE_FLYING), .catchRate = 25, - .expYield = 163, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 163 : 168, .evYield_Defense = 2, .itemRare = ITEM_METAL_COAT, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_STURDY, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Skarmory"), @@ -4758,17 +5322,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 271, .trainerOffset = 1, - FRONT_PIC(Skarmory, 64, 64), + .frontPic = gMonFrontPic_Skarmory, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Skarmory, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Skarmory, 48, 64), + .backPic = gMonBackPic_Skarmory, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Skarmory), - ICON(Skarmory, 0), - .footprint = gMonFootprint_Skarmory, - LEARNSETS(Skarmory), + .palette = gMonPalette_Skarmory, + .shinyPalette = gMonShinyPalette_Skarmory, + .iconSprite = gMonIcon_Skarmory, + .iconPalIndex = 0, + FOOTPRINT(Skarmory) + .levelUpLearnset = sSkarmoryLevelUpLearnset, + .teachableLearnset = sSkarmoryTeachableLearnset, }, #endif //P_FAMILY_SKARMORY @@ -4781,15 +5350,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 65, .baseSpAttack = 80, .baseSpDefense = 50, - .types = { TYPE_DARK, TYPE_FIRE }, + .types = MON_TYPES(TYPE_DARK, TYPE_FIRE), .catchRate = 120, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 114, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_EARLY_BIRD, ABILITY_FLASH_FIRE, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Houndour"), @@ -4807,50 +5376,48 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Houndour, 40, 48), + .frontPic = gMonFrontPic_Houndour, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Houndour, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Houndour, 40, 48), + .backPic = gMonBackPic_Houndour, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Houndour), - ICON(Houndour, 0), - .footprint = gMonFootprint_Houndour, - LEARNSETS(Houndour), + .palette = gMonPalette_Houndour, + .shinyPalette = gMonShinyPalette_Houndour, + .iconSprite = gMonIcon_Houndour, + .iconPalIndex = 0, + FOOTPRINT(Houndour) + .levelUpLearnset = sHoundourLevelUpLearnset, + .teachableLearnset = sHoundourTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_HOUNDOOM}), }, -#define HOUNDOOM_MISC_INFO \ - .types = { TYPE_DARK, TYPE_FIRE }, \ - .catchRate = 45, \ - .evYield_SpAttack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Houndoom"), \ - .natDexNum = NATIONAL_DEX_HOUNDOOM, \ - .categoryName = _("Dark"), \ - .footprint = gMonFootprint_Houndoom, \ - LEARNSETS(Houndoom), \ - .formSpeciesIdTable = sHoundoomFormSpeciesIdTable, \ - .formChangeTable = sHoundoomFormChangeTable - [SPECIES_HOUNDOOM] = { - HOUNDOOM_MISC_INFO, .baseHP = 75, .baseAttack = 90, .baseDefense = 50, .baseSpeed = 95, .baseSpAttack = 110, .baseSpDefense = 80, - .expYield = 175, + .types = MON_TYPES(TYPE_DARK, TYPE_FIRE), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 204, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_EARLY_BIRD, ABILITY_FLASH_FIRE, ABILITY_UNNERVE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Houndoom"), .cryId = CRY_HOUNDOOM, + .natDexNum = NATIONAL_DEX_HOUNDOOM, + .categoryName = _("Dark"), .height = 14, .weight = 350, .description = COMPOUND_STRING( @@ -4862,32 +5429,54 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Houndoom, 64, 64), - FRONT_PIC_FEMALE(Houndoom, 64, 64), + .frontPic = gMonFrontPic_Houndoom, + .frontPicFemale = gMonFrontPic_HoundoomF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Houndoom, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Houndoom, 64, 56), - BACK_PIC_FEMALE(Houndoom, 64, 56), + .backPic = gMonBackPic_Houndoom, + .backPicFemale = gMonBackPic_HoundoomF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Houndoom), - ICON(Houndoom, 0), + .palette = gMonPalette_Houndoom, + .shinyPalette = gMonShinyPalette_Houndoom, + .iconSprite = gMonIcon_Houndoom, + .iconPalIndex = 0, + FOOTPRINT(Houndoom) + .levelUpLearnset = sHoundoomLevelUpLearnset, + .teachableLearnset = sHoundoomTeachableLearnset, + .formSpeciesIdTable = sHoundoomFormSpeciesIdTable, + .formChangeTable = sHoundoomFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_HOUNDOOM_MEGA] = { - HOUNDOOM_MISC_INFO, .baseHP = 75, .baseAttack = 90, .baseDefense = 90, .baseSpeed = 115, .baseSpAttack = 140, .baseSpDefense = 90, + .types = MON_TYPES(TYPE_DARK, TYPE_FIRE), + .catchRate = 45, .expYield = 210, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SOLAR_POWER, ABILITY_SOLAR_POWER, ABILITY_SOLAR_POWER }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Houndoom"), .cryId = CRY_HOUNDOOM_MEGA, + .natDexNum = NATIONAL_DEX_HOUNDOOM, + .categoryName = _("Dark"), .height = 19, .weight = 495, .description = COMPOUND_STRING( @@ -4898,16 +5487,25 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(HoundoomMega, 64, 64), + .frontPic = gMonFrontPic_HoundoomMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_HoundoomMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(HoundoomMega, 64, 64), + .backPic = gMonBackPic_HoundoomMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(HoundoomMega), - ICON(HoundoomMega, 0), + .palette = gMonPalette_HoundoomMega, + .shinyPalette = gMonShinyPalette_HoundoomMega, + .iconSprite = gMonIcon_HoundoomMega, + .iconPalIndex = 0, + FOOTPRINT(Houndoom) .isMegaEvolution = TRUE, + .levelUpLearnset = sHoundoomLevelUpLearnset, + .teachableLearnset = sHoundoomTeachableLearnset, + .formSpeciesIdTable = sHoundoomFormSpeciesIdTable, + .formChangeTable = sHoundoomFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_HOUNDOUR @@ -4921,15 +5519,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 40, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 120, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 124, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_NONE, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Phanpy"), @@ -4947,17 +5545,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Phanpy, 40, 32), + .frontPic = gMonFrontPic_Phanpy, + .frontPicSize = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Phanpy, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Phanpy, 56, 40), + .backPic = gMonBackPic_Phanpy, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Phanpy), - ICON(Phanpy, 0), - .footprint = gMonFootprint_Phanpy, - LEARNSETS(Phanpy), + .palette = gMonPalette_Phanpy, + .shinyPalette = gMonShinyPalette_Phanpy, + .iconSprite = gMonIcon_Phanpy, + .iconPalIndex = 0, + FOOTPRINT(Phanpy) + .levelUpLearnset = sPhanpyLevelUpLearnset, + .teachableLearnset = sPhanpyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_DONPHAN}), }, @@ -4969,16 +5572,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 60, - .expYield = 175, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 189, .evYield_Attack = 1, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Donphan"), @@ -4996,19 +5599,26 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Donphan, 64, 48), - FRONT_PIC_FEMALE(Donphan, 64, 48), + .frontPic = gMonFrontPic_Donphan, + .frontPicFemale = gMonFrontPic_DonphanF, + .frontPicSize = MON_COORDS_SIZE(64, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Donphan, .frontAnimId = ANIM_ROTATE_UP_SLAM_DOWN, - BACK_PIC(Donphan, 64, 48), - BACK_PIC_FEMALE(Donphan, 64, 48), + .backPic = gMonBackPic_Donphan, + .backPicFemale = gMonBackPic_DonphanF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Donphan), - ICON(Donphan, 0), - .footprint = gMonFootprint_Donphan, - LEARNSETS(Donphan), + .palette = gMonPalette_Donphan, + .shinyPalette = gMonShinyPalette_Donphan, + .iconSprite = gMonIcon_Donphan, + .iconPalIndex = 0, + FOOTPRINT(Donphan) + .levelUpLearnset = sDonphanLevelUpLearnset, + .teachableLearnset = sDonphanTeachableLearnset, }, #endif //P_FAMILY_PHANPY @@ -5021,15 +5631,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 85, .baseSpAttack = 85, .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, - .expYield = 163, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 163 : 165, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_FRISK, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Stantler"), @@ -5047,18 +5657,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Stantler, 48, 64), + .frontPic = gMonFrontPic_Stantler, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Stantler, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Stantler, 64, 64), + .backPic = gMonBackPic_Stantler, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Stantler), - ICON(Stantler, 2), - .footprint = gMonFootprint_Stantler, - LEARNSETS(Stantler), - .evolutions = EVOLUTION({EVO_MOVE, MOVE_PSYSHIELD_BASH, SPECIES_WYRDEER}), + .palette = gMonPalette_Stantler, + .shinyPalette = gMonShinyPalette_Stantler, + .iconSprite = gMonIcon_Stantler, + .iconPalIndex = 2, + FOOTPRINT(Stantler) + .levelUpLearnset = sStantlerLevelUpLearnset, + .teachableLearnset = sStantlerTeachableLearnset, + .evolutions = EVOLUTION({EVO_LEVEL_MOVE_TWENTY_TIMES, MOVE_PSYSHIELD_BASH, SPECIES_WYRDEER}), }, #if P_GEN_8_CROSS_EVOS @@ -5070,7 +5685,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 65, .baseSpAttack = 105, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_PSYCHIC), .catchRate = 45, .expYield = 263, .evYield_Attack = 1, @@ -5079,7 +5694,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_FRISK, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Wyrdeer"), @@ -5097,17 +5712,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Wyrdeer, 64, 64), + .frontPic = gMonFrontPic_Wyrdeer, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Wyrdeer, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Wyrdeer, 64, 64), + .backPic = gMonBackPic_Wyrdeer, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Wyrdeer), - ICON(Wyrdeer, 2), - //.footprint = gMonFootprint_Wyrdeer, - LEARNSETS(Wyrdeer), + .palette = gMonPalette_Wyrdeer, + .shinyPalette = gMonShinyPalette_Wyrdeer, + .iconSprite = gMonIcon_Wyrdeer, + .iconPalIndex = 2, + //FOOTPRINT(Wyrdeer) + .levelUpLearnset = sWyrdeerLevelUpLearnset, + .teachableLearnset = sWyrdeerTeachableLearnset, }, #endif //P_GEN_8_CROSS_EVOS #endif //P_FAMILY_STANTLER @@ -5121,15 +5741,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 75, .baseSpAttack = 20, .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, - .expYield = 88, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 88 : 106, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OWN_TEMPO, ABILITY_TECHNICIAN, ABILITY_MOODY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Smeargle"), @@ -5147,17 +5767,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Smeargle, 64, 56), + .frontPic = gMonFrontPic_Smeargle, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Smeargle, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Smeargle, 56, 48), + .backPic = gMonBackPic_Smeargle, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Smeargle), - ICON(Smeargle, 1), - .footprint = gMonFootprint_Smeargle, - LEARNSETS(Smeargle), + .palette = gMonPalette_Smeargle, + .shinyPalette = gMonShinyPalette_Smeargle, + .iconSprite = gMonIcon_Smeargle, + .iconPalIndex = 1, + FOOTPRINT(Smeargle) + .tmIlliterate = TRUE, + .levelUpLearnset = sSmeargleLevelUpLearnset, + .teachableLearnset = sSmeargleTeachableLearnset, }, #endif //P_FAMILY_SMEARGLE @@ -5170,9 +5796,9 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 100, .baseSpAttack = 40, .baseSpDefense = 70, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, - .expYield = 172, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 200, .evYield_Defense = 2, .itemCommon = ITEM_MOOMOO_MILK, .itemRare = ITEM_MOOMOO_MILK, @@ -5180,7 +5806,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_SCRAPPY, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Miltank"), @@ -5198,17 +5824,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Miltank, 64, 48), + .frontPic = gMonFrontPic_Miltank, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Miltank, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Miltank, 64, 56), + .backPic = gMonBackPic_Miltank, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Miltank), - ICON(Miltank, 0), - .footprint = gMonFootprint_Miltank, - LEARNSETS(Miltank), + .palette = gMonPalette_Miltank, + .shinyPalette = gMonShinyPalette_Miltank, + .iconSprite = gMonIcon_Miltank, + .iconPalIndex = 0, + FOOTPRINT(Miltank) + .levelUpLearnset = sMiltankLevelUpLearnset, + .teachableLearnset = sMiltankTeachableLearnset, }, #endif //P_FAMILY_MILTANK @@ -5221,23 +5852,28 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 115, .baseSpAttack = 115, .baseSpDefense = 100, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 216, + #endif .evYield_Speed = 2, .evYield_SpAttack = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - #if P_UPDATED_ABILITIES >= GEN_7 - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS }, - #else - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_VOLT_ABSORB }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + #if P_UPDATED_ABILITIES >= GEN_7 + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS }, + #else + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_VOLT_ABSORB }, + #endif .bodyColor = BODY_COLOR_YELLOW, - .isLegendary = TRUE, .speciesName = _("Raikou"), .cryId = CRY_RAIKOU, .natDexNum = NATIONAL_DEX_RAIKOU, @@ -5253,17 +5889,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 345, .trainerOffset = 7, - FRONT_PIC(Raikou, 64, 56), + .frontPic = gMonFrontPic_Raikou, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Raikou, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Raikou, 64, 56), + .backPic = gMonBackPic_Raikou, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Raikou), - ICON(Raikou, 2), - .footprint = gMonFootprint_Raikou, - LEARNSETS(Raikou), + .palette = gMonPalette_Raikou, + .shinyPalette = gMonShinyPalette_Raikou, + .iconSprite = gMonIcon_Raikou, + .iconPalIndex = 2, + FOOTPRINT(Raikou) + .isLegendary = TRUE, + .levelUpLearnset = sRaikouLevelUpLearnset, + .teachableLearnset = sRaikouTeachableLearnset, }, #endif //P_FAMILY_RAIKOU @@ -5276,23 +5918,28 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 100, .baseSpAttack = 90, .baseSpDefense = 75, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 217, + #endif .evYield_HP = 1, .evYield_Attack = 2, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - #if P_UPDATED_ABILITIES >= GEN_7 - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS }, - #else - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FLASH_FIRE }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + #if P_UPDATED_ABILITIES >= GEN_7 + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS }, + #else + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FLASH_FIRE }, + #endif .bodyColor = BODY_COLOR_BROWN, - .isLegendary = TRUE, .speciesName = _("Entei"), .cryId = CRY_ENTEI, .natDexNum = NATIONAL_DEX_ENTEI, @@ -5308,17 +5955,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 345, .trainerOffset = 7, - FRONT_PIC(Entei, 64, 64), + .frontPic = gMonFrontPic_Entei, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Entei, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Entei, 64, 48), + .backPic = gMonBackPic_Entei, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Entei), - ICON(Entei, 2), - .footprint = gMonFootprint_Entei, - LEARNSETS(Entei), + .palette = gMonPalette_Entei, + .shinyPalette = gMonShinyPalette_Entei, + .iconSprite = gMonIcon_Entei, + .iconPalIndex = 2, + FOOTPRINT(Entei) + .isLegendary = TRUE, + .levelUpLearnset = sEnteiLevelUpLearnset, + .teachableLearnset = sEnteiTeachableLearnset, }, #endif //P_FAMILY_ENTEI @@ -5331,23 +5984,28 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 85, .baseSpAttack = 90, .baseSpDefense = 115, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 215, + #endif .evYield_Defense = 1, .evYield_SpDefense = 2, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - #if P_UPDATED_ABILITIES >= GEN_7 - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS }, - #else - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_WATER_ABSORB }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + #if P_UPDATED_ABILITIES >= GEN_7 + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS }, + #else + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_WATER_ABSORB }, + #endif .bodyColor = BODY_COLOR_BLUE, - .isLegendary = TRUE, .speciesName = _("Suicune"), .cryId = CRY_SUICUNE, .natDexNum = NATIONAL_DEX_SUICUNE, @@ -5363,17 +6021,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 345, .trainerOffset = 7, - FRONT_PIC(Suicune, 64, 64), + .frontPic = gMonFrontPic_Suicune, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Suicune, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Suicune, 64, 64), + .backPic = gMonBackPic_Suicune, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Suicune), - ICON(Suicune, 2), - .footprint = gMonFootprint_Suicune, - LEARNSETS(Suicune), + .palette = gMonPalette_Suicune, + .shinyPalette = gMonShinyPalette_Suicune, + .iconSprite = gMonIcon_Suicune, + .iconPalIndex = 2, + FOOTPRINT(Suicune) + .isLegendary = TRUE, + .levelUpLearnset = sSuicuneLevelUpLearnset, + .teachableLearnset = sSuicuneTeachableLearnset, }, #endif //P_FAMILY_SUICUNE @@ -5386,15 +6050,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 41, .baseSpAttack = 45, .baseSpDefense = 50, - .types = { TYPE_ROCK, TYPE_GROUND }, + .types = MON_TYPES(TYPE_ROCK, TYPE_GROUND), .catchRate = 45, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 67, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_GUTS, ABILITY_NONE, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Larvitar"), @@ -5412,17 +6076,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Larvitar, 40, 48), + .frontPic = gMonFrontPic_Larvitar, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Larvitar, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Larvitar, 56, 64), + .backPic = gMonBackPic_Larvitar, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Larvitar), - ICON(Larvitar, 1), - .footprint = gMonFootprint_Larvitar, - LEARNSETS(Larvitar), + .palette = gMonPalette_Larvitar, + .shinyPalette = gMonShinyPalette_Larvitar, + .iconSprite = gMonIcon_Larvitar, + .iconPalIndex = 1, + FOOTPRINT(Larvitar) + .levelUpLearnset = sLarvitarLevelUpLearnset, + .teachableLearnset = sLarvitarTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_PUPITAR}), }, @@ -5434,7 +6103,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 51, .baseSpAttack = 65, .baseSpDefense = 70, - .types = { TYPE_ROCK, TYPE_GROUND }, + .types = MON_TYPES(TYPE_ROCK, TYPE_GROUND), .catchRate = 45, .expYield = 144, .evYield_Attack = 2, @@ -5442,8 +6111,8 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, - .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Pupitar"), .cryId = CRY_PUPITAR, @@ -5460,50 +6129,54 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pupitar, 40, 48), + .frontPic = gMonFrontPic_Pupitar, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Pupitar, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Pupitar, 48, 56), + .backPic = gMonBackPic_Pupitar, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Pupitar), - ICON(Pupitar, 2), - .footprint = gMonFootprint_Pupitar, - LEARNSETS(Pupitar), + .palette = gMonPalette_Pupitar, + .shinyPalette = gMonShinyPalette_Pupitar, + .iconSprite = gMonIcon_Pupitar, + .iconPalIndex = 2, + FOOTPRINT(Pupitar) + .levelUpLearnset = sPupitarLevelUpLearnset, + .teachableLearnset = sPupitarTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 55, SPECIES_TYRANITAR}), }, -#define TYRANITAR_MISC_INFO \ - .types = { TYPE_ROCK, TYPE_DARK }, \ - .catchRate = 45, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Tyranitar"), \ - .natDexNum = NATIONAL_DEX_TYRANITAR, \ - .categoryName = _("Armor"), \ - .footprint = gMonFootprint_Tyranitar, \ - LEARNSETS(Tyranitar), \ - .formSpeciesIdTable = sTyranitarFormSpeciesIdTable, \ - .formChangeTable = sTyranitarFormChangeTable - [SPECIES_TYRANITAR] = { - TYRANITAR_MISC_INFO, .baseHP = 100, .baseAttack = 134, .baseDefense = 110, .baseSpeed = 61, .baseSpAttack = 95, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_ROCK, TYPE_DARK), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 218, + #endif + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_SAND_STREAM, ABILITY_NONE, ABILITY_UNNERVE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Tyranitar"), .cryId = CRY_TYRANITAR, + .natDexNum = NATIONAL_DEX_TYRANITAR, + .categoryName = _("Armor"), .height = 20, .weight = 2020, .description = COMPOUND_STRING( @@ -5515,31 +6188,51 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 345, .trainerOffset = 7, - FRONT_PIC(Tyranitar, 64, 64), + .frontPic = gMonFrontPic_Tyranitar, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Tyranitar, .frontAnimId = ANIM_V_SHAKE, .frontAnimDelay = 10, - BACK_PIC(Tyranitar, 64, 64), + .backPic = gMonBackPic_Tyranitar, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Tyranitar), - ICON(Tyranitar, 4), + .palette = gMonPalette_Tyranitar, + .shinyPalette = gMonShinyPalette_Tyranitar, + .iconSprite = gMonIcon_Tyranitar, + .iconPalIndex = 4, + FOOTPRINT(Tyranitar) + .levelUpLearnset = sTyranitarLevelUpLearnset, + .teachableLearnset = sTyranitarTeachableLearnset, + .formSpeciesIdTable = sTyranitarFormSpeciesIdTable, + .formChangeTable = sTyranitarFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_TYRANITAR_MEGA] = { - TYRANITAR_MISC_INFO, .baseHP = 100, .baseAttack = 164, .baseDefense = 150, .baseSpeed = 71, .baseSpAttack = 95, .baseSpDefense = 120, - .expYield = 315, + .types = MON_TYPES(TYPE_ROCK, TYPE_DARK), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 350 : 315, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_SAND_STREAM, ABILITY_SAND_STREAM, ABILITY_SAND_STREAM }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Tyranitar"), .cryId = CRY_TYRANITAR_MEGA, + .natDexNum = NATIONAL_DEX_TYRANITAR, + .categoryName = _("Armor"), .height = 25, .weight = 2550, .description = COMPOUND_STRING( @@ -5551,16 +6244,25 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 345, .trainerOffset = 7, - FRONT_PIC(TyranitarMega, 64, 64), + .frontPic = gMonFrontPic_TyranitarMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_TyranitarMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(TyranitarMega, 64, 64), + .backPic = gMonBackPic_TyranitarMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(TyranitarMega), - ICON(TyranitarMega, 1), + .palette = gMonPalette_TyranitarMega, + .shinyPalette = gMonShinyPalette_TyranitarMega, + .iconSprite = gMonIcon_TyranitarMega, + .iconPalIndex = 1, + FOOTPRINT(Tyranitar) .isMegaEvolution = TRUE, + .levelUpLearnset = sTyranitarLevelUpLearnset, + .teachableLearnset = sTyranitarTeachableLearnset, + .formSpeciesIdTable = sTyranitarFormSpeciesIdTable, + .formChangeTable = sTyranitarFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_LARVITAR @@ -5574,18 +6276,23 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 110, .baseSpAttack = 90, .baseSpDefense = 154, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 340, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 306, + #else + .expYield = 220, + #endif .evYield_SpDefense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_MULTISCALE }, .bodyColor = BODY_COLOR_WHITE, - .isLegendary = TRUE, .speciesName = _("Lugia"), .cryId = CRY_LUGIA, .natDexNum = NATIONAL_DEX_LUGIA, @@ -5601,19 +6308,25 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 721, .trainerOffset = 19, - FRONT_PIC(Lugia, 64, 64), + .frontPic = gMonFrontPic_Lugia, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Lugia, .frontAnimId = ANIM_GROW_IN_STAGES, .frontAnimDelay = 20, .enemyMonElevation = 6, - BACK_PIC(Lugia, 64, 64), + .backPic = gMonBackPic_Lugia, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Lugia), - ICON(Lugia, 0), - .footprint = gMonFootprint_Lugia, - LEARNSETS(Lugia), + .palette = gMonPalette_Lugia, + .shinyPalette = gMonShinyPalette_Lugia, + .iconSprite = gMonIcon_Lugia, + .iconPalIndex = 0, + FOOTPRINT(Lugia) + .isLegendary = TRUE, + .levelUpLearnset = sLugiaLevelUpLearnset, + .teachableLearnset = sLugiaTeachableLearnset, }, #endif //P_FAMILY_LUGIA @@ -5626,9 +6339,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 90, .baseSpAttack = 110, .baseSpDefense = 154, - .types = { TYPE_FIRE, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FLYING), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 340, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 306, + #else + .expYield = 220, + #endif .evYield_SpDefense = 3, .itemCommon = ITEM_SACRED_ASH, .itemRare = ITEM_SACRED_ASH, @@ -5636,10 +6355,9 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_RED, - .isLegendary = TRUE, .speciesName = _("Ho-Oh"), .cryId = CRY_HO_OH, .natDexNum = NATIONAL_DEX_HO_OH, @@ -5655,18 +6373,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 610, .trainerOffset = 17, - FRONT_PIC(HoOh, 64, 64), + .frontPic = gMonFrontPic_HoOh, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_HoOh, .frontAnimId = ANIM_GROW_VIBRATE, .enemyMonElevation = 6, - BACK_PIC(HoOh, 64, 64), + .backPic = gMonBackPic_HoOh, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(HoOh), - ICON(HoOh, 1), - .footprint = gMonFootprint_HoOh, - LEARNSETS(HoOh), + .palette = gMonPalette_HoOh, + .shinyPalette = gMonShinyPalette_HoOh, + .iconSprite = gMonIcon_HoOh, + .iconPalIndex = 1, + FOOTPRINT(HoOh) + .isLegendary = TRUE, + .levelUpLearnset = sHoOhLevelUpLearnset, + .teachableLearnset = sHoOhTeachableLearnset, }, #endif //P_FAMILY_HO_OH @@ -5679,9 +6403,15 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .baseSpeed = 100, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_GRASS }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_GRASS), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 64, + #endif .evYield_HP = 3, .itemCommon = ITEM_LUM_BERRY, .itemRare = ITEM_LUM_BERRY, @@ -5689,10 +6419,9 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_NATURAL_CURE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_NATURAL_CURE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, - .isMythical = TRUE, .speciesName = _("Celebi"), .cryId = CRY_CELEBI, .natDexNum = NATIONAL_DEX_CELEBI, @@ -5708,18 +6437,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Celebi, 40, 40), + .frontPic = gMonFrontPic_Celebi, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Celebi, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 15, - BACK_PIC(Celebi, 48, 56), + .backPic = gMonBackPic_Celebi, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, - PALETTES(Celebi), - ICON(Celebi, 1), - .footprint = gMonFootprint_Celebi, - LEARNSETS(Celebi), + .palette = gMonPalette_Celebi, + .shinyPalette = gMonShinyPalette_Celebi, + .iconSprite = gMonIcon_Celebi, + .iconPalIndex = 1, + FOOTPRINT(Celebi) + .isMythical = TRUE, + .levelUpLearnset = sCelebiLevelUpLearnset, + .teachableLearnset = sCelebiTeachableLearnset, }, #endif //P_FAMILY_CELEBI diff --git a/src/data/pokemon/species_info/gen_3.h b/src/data/pokemon/species_info/gen_3_families.h similarity index 57% rename from src/data/pokemon/species_info/gen_3.h rename to src/data/pokemon/species_info/gen_3_families.h index 40cc97fcc..fb34fdc4a 100644 --- a/src/data/pokemon/species_info/gen_3.h +++ b/src/data/pokemon/species_info/gen_3_families.h @@ -12,15 +12,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 70, .baseSpAttack = 65, .baseSpDefense = 55, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 65, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_UNBURDEN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Treecko"), @@ -38,17 +38,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Treecko, 48, 48), + .frontPic = gMonFrontPic_Treecko, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Treecko, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Treecko, 56, 48), + .backPic = gMonBackPic_Treecko, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Treecko), - ICON(Treecko, 1), - .footprint = gMonFootprint_Treecko, - LEARNSETS(Treecko), + .palette = gMonPalette_Treecko, + .shinyPalette = gMonShinyPalette_Treecko, + .iconSprite = gMonIcon_Treecko, + .iconPalIndex = 1, + FOOTPRINT(Treecko) + .levelUpLearnset = sTreeckoLevelUpLearnset, + .teachableLearnset = sTreeckoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_GROVYLE}), }, @@ -60,15 +65,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 95, .baseSpAttack = 85, .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 141, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_UNBURDEN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Grovyle"), @@ -86,50 +91,54 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Grovyle, 64, 56), + .frontPic = gMonFrontPic_Grovyle, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Grovyle, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Grovyle, 64, 56), + .backPic = gMonBackPic_Grovyle, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Grovyle), - ICON(Grovyle, 1), - .footprint = gMonFootprint_Grovyle, - LEARNSETS(Grovyle), + .palette = gMonPalette_Grovyle, + .shinyPalette = gMonShinyPalette_Grovyle, + .iconSprite = gMonIcon_Grovyle, + .iconPalIndex = 1, + FOOTPRINT(Grovyle) + .levelUpLearnset = sGrovyleLevelUpLearnset, + .teachableLearnset = sGrovyleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SCEPTILE}), }, -#define SCEPTILE_MISC_INFO \ - .catchRate = 45, \ - .evYield_Speed = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON },\ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Sceptile"), \ - .natDexNum = NATIONAL_DEX_SCEPTILE, \ - .categoryName = _("Forest"), \ - .footprint = gMonFootprint_Sceptile, \ - LEARNSETS(Sceptile), \ - .formSpeciesIdTable = sSceptileFormSpeciesIdTable, \ - .formChangeTable = sSceptileFormChangeTable - [SPECIES_SCEPTILE] = { - SCEPTILE_MISC_INFO, .baseHP = 70, .baseAttack = 85, .baseDefense = 65, .baseSpeed = 120, .baseSpAttack = 105, .baseSpDefense = 85, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 265, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 239, + #else + .expYield = 208, + #endif + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_UNBURDEN }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Sceptile"), .cryId = CRY_SCEPTILE, + .natDexNum = NATIONAL_DEX_SCEPTILE, + .categoryName = _("Forest"), .height = 17, .weight = 522, .description = COMPOUND_STRING( @@ -141,31 +150,50 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -1, .trainerScale = 275, .trainerOffset = 2, - FRONT_PIC(Sceptile, 64, 64), + .frontPic = gMonFrontPic_Sceptile, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Sceptile, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Sceptile, 64, 64), + .backPic = gMonBackPic_Sceptile, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Sceptile), - ICON(Sceptile, 1), + .palette = gMonPalette_Sceptile, + .shinyPalette = gMonShinyPalette_Sceptile, + .iconSprite = gMonIcon_Sceptile, + .iconPalIndex = 1, + FOOTPRINT(Sceptile) + .levelUpLearnset = sSceptileLevelUpLearnset, + .teachableLearnset = sSceptileTeachableLearnset, + .formSpeciesIdTable = sSceptileFormSpeciesIdTable, + .formChangeTable = sSceptileFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_SCEPTILE_MEGA] = { - SCEPTILE_MISC_INFO, .baseHP = 70, .baseAttack = 110, .baseDefense = 75, .baseSpeed = 145, .baseSpAttack = 145, .baseSpDefense = 85, - .types = { TYPE_GRASS, TYPE_DRAGON }, - .expYield = 284, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 315 : 284, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_LIGHTNING_ROD, ABILITY_LIGHTNING_ROD, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Sceptile"), .cryId = CRY_SCEPTILE_MEGA, + .natDexNum = NATIONAL_DEX_SCEPTILE, + .categoryName = _("Forest"), .height = 19, .weight = 552, .description = COMPOUND_STRING( @@ -177,16 +205,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -1, .trainerScale = 275, .trainerOffset = 2, - FRONT_PIC(SceptileMega, 64, 64), + .frontPic = gMonFrontPic_SceptileMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_SceptileMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SceptileMega, 64, 64), + .backPic = gMonBackPic_SceptileMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(SceptileMega), - ICON(SceptileMega, 1), + .palette = gMonPalette_SceptileMega, + .shinyPalette = gMonShinyPalette_SceptileMega, + .iconSprite = gMonIcon_SceptileMega, + .iconPalIndex = 1, + FOOTPRINT(Sceptile) .isMegaEvolution = TRUE, + .levelUpLearnset = sSceptileLevelUpLearnset, + .teachableLearnset = sSceptileTeachableLearnset, + .formSpeciesIdTable = sSceptileFormSpeciesIdTable, + .formChangeTable = sSceptileFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_TREECKO @@ -200,15 +237,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 45, .baseSpAttack = 70, .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 65, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_SPEED_BOOST }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Torchic"), @@ -226,18 +263,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Torchic, 32, 48), + .frontPic = gMonFrontPic_Torchic, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Torchic, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Torchic, 40, 48), - BACK_PIC_FEMALE(Torchic, 40, 48), + .backPic = gMonBackPic_Torchic, + .backPicFemale = gMonBackPic_TorchicF, + .backPicSize = MON_COORDS_SIZE(40, 48), + .backPicSizeFemale = MON_COORDS_SIZE(40, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Torchic), - ICON(Torchic, 0), - .footprint = gMonFootprint_Torchic, - LEARNSETS(Torchic), + .palette = gMonPalette_Torchic, + .shinyPalette = gMonShinyPalette_Torchic, + .iconSprite = gMonIcon_Torchic, + .iconPalIndex = 0, + FOOTPRINT(Torchic) + .levelUpLearnset = sTorchicLevelUpLearnset, + .teachableLearnset = sTorchicTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_COMBUSKEN}), }, @@ -249,7 +292,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 55, .baseSpAttack = 85, .baseSpDefense = 60, - .types = { TYPE_FIRE, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FIGHTING), .catchRate = 45, .expYield = 142, .evYield_Attack = 1, @@ -258,7 +301,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_SPEED_BOOST }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Combusken"), @@ -276,104 +319,147 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Combusken, 48, 64), - FRONT_PIC_FEMALE(Combusken, 48, 64), + .frontPic = gMonFrontPic_Combusken, + .frontPicFemale = gMonFrontPic_CombuskenF, + .frontPicSize = MON_COORDS_SIZE(48, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Combusken, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, - BACK_PIC(Combusken, 64, 64), - BACK_PIC_FEMALE(Combusken, 64, 64), + .backPic = gMonBackPic_Combusken, + .backPicFemale = gMonBackPic_CombuskenF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Combusken), - ICON(Combusken, 0), - .footprint = gMonFootprint_Combusken, - LEARNSETS(Combusken), + .palette = gMonPalette_Combusken, + .shinyPalette = gMonShinyPalette_Combusken, + .iconSprite = gMonIcon_Combusken, + .iconPalIndex = 0, + FOOTPRINT(Combusken) + .levelUpLearnset = sCombuskenLevelUpLearnset, + .teachableLearnset = sCombuskenTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_BLAZIKEN}), }, -#define BLAZIKEN_MISC_INFO \ - .types = { TYPE_FIRE, TYPE_FIGHTING }, \ - .catchRate = 45, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_RED, \ - .speciesName = _("Blaziken"), \ - .natDexNum = NATIONAL_DEX_BLAZIKEN, \ - .categoryName = _("Blaze"), \ - .height = 19, \ - .weight = 520, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 301, \ - .trainerOffset = 4, \ - .footprint = gMonFootprint_Blaziken, \ - LEARNSETS(Blaziken), \ - .formSpeciesIdTable = sBlazikenFormSpeciesIdTable, \ - .formChangeTable = sBlazikenFormChangeTable - [SPECIES_BLAZIKEN] = { - BLAZIKEN_MISC_INFO, .baseHP = 80, .baseAttack = 120, .baseDefense = 70, .baseSpeed = 80, .baseSpAttack = 110, .baseSpDefense = 70, + .types = MON_TYPES(TYPE_FIRE, TYPE_FIGHTING), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 265, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 239, + #else + .expYield = 209, + #endif + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_SPEED_BOOST }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Blaziken"), .cryId = CRY_BLAZIKEN, + .natDexNum = NATIONAL_DEX_BLAZIKEN, + .categoryName = _("Blaze"), + .height = 19, + .weight = 520, .description = COMPOUND_STRING( "It learns martial arts that use punches\n" "and kicks. Every several years, its old\n" "feathers burn off, and new, supple\n" "feathers grow back in their place."), - FRONT_PIC(Blaziken, 56, 64), - FRONT_PIC_FEMALE(Blaziken, 56, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 301, + .trainerOffset = 4, + .frontPic = gMonFrontPic_Blaziken, + .frontPicFemale = gMonFrontPic_BlazikenF, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Blaziken, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Blaziken, 64, 64), - BACK_PIC_FEMALE(Blaziken, 64, 64), + .backPic = gMonBackPic_Blaziken, + .backPicFemale = gMonBackPic_BlazikenF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Blaziken), - ICON(Blaziken, 0), + .palette = gMonPalette_Blaziken, + .shinyPalette = gMonShinyPalette_Blaziken, + .iconSprite = gMonIcon_Blaziken, + .iconPalIndex = 0, + FOOTPRINT(Blaziken) + .levelUpLearnset = sBlazikenLevelUpLearnset, + .teachableLearnset = sBlazikenTeachableLearnset, + .formSpeciesIdTable = sBlazikenFormSpeciesIdTable, + .formChangeTable = sBlazikenFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_BLAZIKEN_MEGA] = { - BLAZIKEN_MISC_INFO, .baseHP = 80, .baseAttack = 160, .baseDefense = 80, .baseSpeed = 100, .baseSpAttack = 130, .baseSpDefense = 80, - .expYield = 284, + .types = MON_TYPES(TYPE_FIRE, TYPE_FIGHTING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 315 : 284, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SPEED_BOOST, ABILITY_SPEED_BOOST, ABILITY_SPEED_BOOST }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Blaziken"), .cryId = CRY_BLAZIKEN_MEGA, + .natDexNum = NATIONAL_DEX_BLAZIKEN, + .categoryName = _("Blaze"), + .height = 19, + .weight = 520, .description = COMPOUND_STRING( "As it unleashes a flurry of savage kicks,\n" "its legs can begin to burn from the\n" "friction of the surrounding atmosphere.\n" "They're always a source of pride to it."), - FRONT_PIC(BlazikenMega, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 301, + .trainerOffset = 4, + .frontPic = gMonFrontPic_BlazikenMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_BlazikenMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(BlazikenMega, 56, 64), + .backPic = gMonBackPic_BlazikenMega, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(BlazikenMega), - ICON(BlazikenMega, 0), + .palette = gMonPalette_BlazikenMega, + .shinyPalette = gMonShinyPalette_BlazikenMega, + .iconSprite = gMonIcon_BlazikenMega, + .iconPalIndex = 0, + FOOTPRINT(Blaziken) .isMegaEvolution = TRUE, + .levelUpLearnset = sBlazikenLevelUpLearnset, + .teachableLearnset = sBlazikenTeachableLearnset, + .formSpeciesIdTable = sBlazikenFormSpeciesIdTable, + .formChangeTable = sBlazikenFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_TORCHIC @@ -387,15 +473,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 40, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 65, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DAMP }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Mudkip"), @@ -413,17 +499,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mudkip, 40, 40), + .frontPic = gMonFrontPic_Mudkip, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Mudkip, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Mudkip, 48, 48), + .backPic = gMonBackPic_Mudkip, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Mudkip), - ICON(Mudkip, 0), - .footprint = gMonFootprint_Mudkip, - LEARNSETS(Mudkip), + .palette = gMonPalette_Mudkip, + .shinyPalette = gMonShinyPalette_Mudkip, + .iconSprite = gMonIcon_Mudkip, + .iconPalIndex = 0, + FOOTPRINT(Mudkip) + .levelUpLearnset = sMudkipLevelUpLearnset, + .teachableLearnset = sMudkipTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_MARSHTOMP}), }, @@ -435,15 +526,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_GROUND }, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 143, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DAMP }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Marshtomp"), @@ -461,50 +552,54 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Marshtomp, 48, 56), + .frontPic = gMonFrontPic_Marshtomp, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Marshtomp, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Marshtomp, 64, 64), + .backPic = gMonBackPic_Marshtomp, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Marshtomp), - ICON(Marshtomp, 0), - .footprint = gMonFootprint_Marshtomp, - LEARNSETS(Marshtomp), + .palette = gMonPalette_Marshtomp, + .shinyPalette = gMonShinyPalette_Marshtomp, + .iconSprite = gMonIcon_Marshtomp, + .iconPalIndex = 0, + FOOTPRINT(Marshtomp) + .levelUpLearnset = sMarshtompLevelUpLearnset, + .teachableLearnset = sMarshtompTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SWAMPERT}), }, -#define SWAMPERT_MISC_INFO \ - .types = { TYPE_WATER, TYPE_GROUND }, \ - .catchRate = 45, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Swampert"), \ - .natDexNum = NATIONAL_DEX_SWAMPERT, \ - .categoryName = _("Mud Fish"), \ - .footprint = gMonFootprint_Swampert, \ - LEARNSETS(Swampert), \ - .formSpeciesIdTable = sSwampertFormSpeciesIdTable, \ - .formChangeTable = sSwampertFormChangeTable - [SPECIES_SWAMPERT] = { - SWAMPERT_MISC_INFO, .baseHP = 100, .baseAttack = 110, .baseDefense = 90, .baseSpeed = 60, .baseSpAttack = 85, .baseSpDefense = 90, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 268, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 241, + #else + .expYield = 210, + #endif + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DAMP }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Swampert"), .cryId = CRY_SWAMPERT, + .natDexNum = NATIONAL_DEX_SWAMPERT, + .categoryName = _("Mud Fish"), .height = 15, .weight = 819, .description = COMPOUND_STRING( @@ -516,30 +611,50 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Swampert, 64, 56), + .frontPic = gMonFrontPic_Swampert, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Swampert, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Swampert, 64, 64), + .backPic = gMonBackPic_Swampert, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Swampert), - ICON(Swampert, 0), + .palette = gMonPalette_Swampert, + .shinyPalette = gMonShinyPalette_Swampert, + .iconSprite = gMonIcon_Swampert, + .iconPalIndex = 0, + FOOTPRINT(Swampert) + .levelUpLearnset = sSwampertLevelUpLearnset, + .teachableLearnset = sSwampertTeachableLearnset, + .formSpeciesIdTable = sSwampertFormSpeciesIdTable, + .formChangeTable = sSwampertFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_SWAMPERT_MEGA] = { - SWAMPERT_MISC_INFO, .baseHP = 100, .baseAttack = 150, .baseDefense = 110, .baseSpeed = 70, .baseSpAttack = 95, .baseSpDefense = 110, - .expYield = 286, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 318 : 286, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_SWIFT_SWIM, ABILITY_SWIFT_SWIM }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Swampert"), .cryId = CRY_SWAMPERT_MEGA, + .natDexNum = NATIONAL_DEX_SWAMPERT, + .categoryName = _("Mud Fish"), .height = 19, .weight = 1020, .description = COMPOUND_STRING( @@ -551,16 +666,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(SwampertMega, 64, 64), + .frontPic = gMonFrontPic_SwampertMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_SwampertMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SwampertMega, 64, 56), + .backPic = gMonBackPic_SwampertMega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(SwampertMega), - ICON(SwampertMega, 0), + .palette = gMonPalette_SwampertMega, + .shinyPalette = gMonShinyPalette_SwampertMega, + .iconSprite = gMonIcon_SwampertMega, + .iconPalIndex = 0, + FOOTPRINT(Swampert) .isMegaEvolution = TRUE, + .levelUpLearnset = sSwampertLevelUpLearnset, + .teachableLearnset = sSwampertTeachableLearnset, + .formSpeciesIdTable = sSwampertFormSpeciesIdTable, + .formChangeTable = sSwampertFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_MUDKIP @@ -574,15 +698,21 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 35, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 255, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 56, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 44, + #else + .expYield = 55, + #endif .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_QUICK_FEET, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Poochyena"), @@ -600,17 +730,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Poochyena, 48, 48), + .frontPic = gMonFrontPic_Poochyena, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Poochyena, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Poochyena, 64, 48), + .backPic = gMonBackPic_Poochyena, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Poochyena), - ICON(Poochyena, 2), - .footprint = gMonFootprint_Poochyena, - LEARNSETS(Poochyena), + .palette = gMonPalette_Poochyena, + .shinyPalette = gMonShinyPalette_Poochyena, + .iconSprite = gMonIcon_Poochyena, + .iconPalIndex = 2, + FOOTPRINT(Poochyena) + .levelUpLearnset = sPoochyenaLevelUpLearnset, + .teachableLearnset = sPoochyenaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_MIGHTYENA}), }, @@ -622,15 +757,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 70, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 127, - .expYield = 147, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 128, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_QUICK_FEET, ABILITY_MOXIE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Mightyena"), @@ -648,173 +783,253 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mightyena, 64, 64), + .frontPic = gMonFrontPic_Mightyena, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Mightyena, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Mightyena, 64, 64), + .backPic = gMonBackPic_Mightyena, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Mightyena), - ICON(Mightyena, 2), - .footprint = gMonFootprint_Mightyena, - LEARNSETS(Mightyena), + .palette = gMonPalette_Mightyena, + .shinyPalette = gMonShinyPalette_Mightyena, + .iconSprite = gMonIcon_Mightyena, + .iconPalIndex = 2, + FOOTPRINT(Mightyena) + .levelUpLearnset = sMightyenaLevelUpLearnset, + .teachableLearnset = sMightyenaTeachableLearnset, }, #endif //P_FAMILY_POOCHYENA #if P_FAMILY_ZIGZAGOON -#define ZIGZAGOON_MISC_INFO \ - .baseHP = 38, \ - .baseAttack = 30, \ - .baseDefense = 41, \ - .baseSpeed = 60, \ - .baseSpAttack = 30, \ - .baseSpDefense = 41, \ - .catchRate = 255, \ - .expYield = 56, \ - .evYield_Speed = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET }, \ - .speciesName = _("Zigzagoon"), \ - .cryId = CRY_ZIGZAGOON, \ - .natDexNum = NATIONAL_DEX_ZIGZAGOON, \ - .categoryName = _("Tiny Raccoon"), \ - .height = 4, \ - .weight = 175, \ - .pokemonScale = 560, \ - .pokemonOffset = 22, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Zigzagoon, \ - .formSpeciesIdTable = sZigzagoonFormSpeciesIdTable - -#define LINOONE_MISC_INFO \ - .baseHP = 78, \ - .baseAttack = 70, \ - .baseDefense = 61, \ - .baseSpeed = 100, \ - .baseSpAttack = 50, \ - .baseSpDefense = 61, \ - .catchRate = 90, \ - .expYield = 147, \ - .evYield_Speed = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Linoone"), \ - .cryId = CRY_LINOONE, \ - .natDexNum = NATIONAL_DEX_LINOONE, \ - .categoryName = _("Rushing"), \ - .height = 5, \ - .weight = 325, \ - .pokemonScale = 321, \ - .pokemonOffset = 7, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Linoone, \ - .formSpeciesIdTable = sLinooneFormSpeciesIdTable +#if P_UPDATED_EXP_YIELDS >= GEN_7 + #define ZIGZAGOON_EXP_YIELD 56 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define ZIGZAGOON_EXP_YIELD 48 +#else + #define ZIGZAGOON_EXP_YIELD 60 +#endif [SPECIES_ZIGZAGOON] = { - ZIGZAGOON_MISC_INFO, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .baseHP = 38, + .baseAttack = 30, + .baseDefense = 41, + .baseSpeed = 60, + .baseSpAttack = 30, + .baseSpDefense = 41, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 255, + .expYield = ZIGZAGOON_EXP_YIELD, + .evYield_Speed = 1, .itemCommon = ITEM_POTION, .itemRare = ITEM_REVIVE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Zigzagoon"), + .cryId = CRY_ZIGZAGOON, + .natDexNum = NATIONAL_DEX_ZIGZAGOON, + .categoryName = _("Tiny Raccoon"), + .height = 4, + .weight = 175, .description = COMPOUND_STRING( "Rubbing its nose against the ground, it\n" "always wanders about back and forth in\n" "search of something. It is distinguished\n" "by the zigzag footprints it leaves."), - FRONT_PIC(Zigzagoon, 56, 40), + .pokemonScale = 560, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Zigzagoon, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Zigzagoon, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Zigzagoon, 56, 56), + .backPic = gMonBackPic_Zigzagoon, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Zigzagoon), - ICON(Zigzagoon, 2), - LEARNSETS(Zigzagoon), + .palette = gMonPalette_Zigzagoon, + .shinyPalette = gMonShinyPalette_Zigzagoon, + .iconSprite = gMonIcon_Zigzagoon, + .iconPalIndex = 2, + FOOTPRINT(Zigzagoon) + .levelUpLearnset = sZigzagoonLevelUpLearnset, + .teachableLearnset = sZigzagoonTeachableLearnset, + .formSpeciesIdTable = sZigzagoonFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_LINOONE}), }, [SPECIES_LINOONE] = { - LINOONE_MISC_INFO, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .baseHP = 78, + .baseAttack = 70, + .baseDefense = 61, + .baseSpeed = 100, + .baseSpAttack = 50, + .baseSpDefense = 61, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 90, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 128, + .evYield_Speed = 2, .itemCommon = ITEM_POTION, .itemRare = ITEM_MAX_REVIVE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Linoone"), + .cryId = CRY_LINOONE, + .natDexNum = NATIONAL_DEX_LINOONE, + .categoryName = _("Rushing"), + .height = 5, + .weight = 325, .description = COMPOUND_STRING( "It is exceedingly fast if it only has to run\n" "in a straight line. When it spots pond-\n" "dwelling prey underwater, it quickly leaps\n" "in and catches it with its sharp claws."), - FRONT_PIC(Linoone, 64, 40), + .pokemonScale = 321, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Linoone, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Linoone, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Linoone, 56, 40), + .backPic = gMonBackPic_Linoone, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Linoone), - ICON(Linoone, 2), - LEARNSETS(Linoone), + .palette = gMonPalette_Linoone, + .shinyPalette = gMonShinyPalette_Linoone, + .iconSprite = gMonIcon_Linoone, + .iconPalIndex = 2, + FOOTPRINT(Linoone) + .levelUpLearnset = sLinooneLevelUpLearnset, + .teachableLearnset = sLinooneTeachableLearnset, + .formSpeciesIdTable = sLinooneFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_ZIGZAGOON_GALARIAN] = { - ZIGZAGOON_MISC_INFO, - .types = { TYPE_DARK, TYPE_NORMAL }, + .baseHP = 38, + .baseAttack = 30, + .baseDefense = 41, + .baseSpeed = 60, + .baseSpAttack = 30, + .baseSpDefense = 41, + .types = MON_TYPES(TYPE_DARK, TYPE_NORMAL), + .catchRate = 255, + .expYield = ZIGZAGOON_EXP_YIELD, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Zigzagoon"), + .cryId = CRY_ZIGZAGOON, + .natDexNum = NATIONAL_DEX_ZIGZAGOON, + .categoryName = _("Tiny Raccoon"), + .height = 4, + .weight = 175, .description = COMPOUND_STRING( "Its restlessness has it constantly moving\n" "in zigzags. It will purposely run into other\n" "Pokémon to start fights. It's thought to\n" "be the oldest form of Zigzagoon."), - FRONT_PIC(ZigzagoonGalarian, 56, 40), + .pokemonScale = 560, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ZigzagoonGalarian, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_ZigzagoonGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZigzagoonGalarian, 56, 48), + .backPic = gMonBackPic_ZigzagoonGalarian, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZigzagoonGalarian), - ICON(ZigzagoonGalarian, 0), - LEARNSETS(ZigzagoonGalarian), + .palette = gMonPalette_ZigzagoonGalarian, + .shinyPalette = gMonShinyPalette_ZigzagoonGalarian, + .iconSprite = gMonIcon_ZigzagoonGalarian, + .iconPalIndex = 0, + FOOTPRINT(Zigzagoon) .isGalarianForm = TRUE, + .levelUpLearnset = sZigzagoonGalarianLevelUpLearnset, + .teachableLearnset = sZigzagoonGalarianTeachableLearnset, + .formSpeciesIdTable = sZigzagoonFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_LINOONE_GALARIAN}), }, [SPECIES_LINOONE_GALARIAN] = { - LINOONE_MISC_INFO, - .types = { TYPE_DARK, TYPE_NORMAL }, + .baseHP = 78, + .baseAttack = 70, + .baseDefense = 61, + .baseSpeed = 100, + .baseSpAttack = 50, + .baseSpDefense = 61, + .types = MON_TYPES(TYPE_DARK, TYPE_NORMAL), + .catchRate = 90, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 128, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Linoone"), + .cryId = CRY_LINOONE, + .natDexNum = NATIONAL_DEX_LINOONE, + .categoryName = _("Rushing"), + .height = 5, + .weight = 325, .description = COMPOUND_STRING( "This very aggressive Pokémon will\n" "recklessly challenge opponents stronger\n" "than itself. It uses its long tongue to\n" "taunt them to then tackle forcefully."), - FRONT_PIC(LinooneGalarian, 64, 40), + .pokemonScale = 321, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_LinooneGalarian, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_LinooneGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(LinooneGalarian, 64, 40), + .backPic = gMonBackPic_LinooneGalarian, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(LinooneGalarian), - ICON(LinooneGalarian, 0), - LEARNSETS(LinooneGalarian), + .palette = gMonPalette_LinooneGalarian, + .shinyPalette = gMonShinyPalette_LinooneGalarian, + .iconSprite = gMonIcon_LinooneGalarian, + .iconPalIndex = 0, + FOOTPRINT(Linoone) .isGalarianForm = TRUE, + .levelUpLearnset = sLinooneGalarianLevelUpLearnset, + .teachableLearnset = sLinooneGalarianTeachableLearnset, + .formSpeciesIdTable = sLinooneFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 35, SPECIES_OBSTAGOON}), }, @@ -826,7 +1041,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 95, .baseSpAttack = 60, .baseSpDefense = 81, - .types = { TYPE_DARK, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_DARK, TYPE_NORMAL), .catchRate = 45, .expYield = 260, .evYield_Defense = 3, @@ -834,7 +1049,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RECKLESS, ABILITY_GUTS, ABILITY_DEFIANT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Obstagoon"), @@ -852,17 +1067,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Obstagoon, 56, 64), + .frontPic = gMonFrontPic_Obstagoon, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Obstagoon, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Obstagoon, 64, 64), + .backPic = gMonBackPic_Obstagoon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Obstagoon), - ICON(Obstagoon, 0), - .footprint = gMonFootprint_Obstagoon, - LEARNSETS(Obstagoon), + .palette = gMonPalette_Obstagoon, + .shinyPalette = gMonShinyPalette_Obstagoon, + .iconSprite = gMonIcon_Obstagoon, + .iconPalIndex = 0, + FOOTPRINT(Obstagoon) + .levelUpLearnset = sObstagoonLevelUpLearnset, + .teachableLearnset = sObstagoonTeachableLearnset, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ZIGZAGOON @@ -876,9 +1096,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 20, .baseSpAttack = 20, .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 255, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 56, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 39, + #else + .expYield = 54, + #endif .evYield_HP = 1, .itemCommon = ITEM_PECHA_BERRY, .itemRare = ITEM_BRIGHT_POWDER, @@ -886,7 +1112,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_RUN_AWAY }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Wurmple"), @@ -904,17 +1130,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wurmple, 40, 40), + .frontPic = gMonFrontPic_Wurmple, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Wurmple, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Wurmple, 64, 56), + .backPic = gMonBackPic_Wurmple, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Wurmple), - ICON(Wurmple, 0), - .footprint = gMonFootprint_Wurmple, - LEARNSETS(Wurmple), + .palette = gMonPalette_Wurmple, + .shinyPalette = gMonShinyPalette_Wurmple, + .iconSprite = gMonIcon_Wurmple, + .iconPalIndex = 0, + FOOTPRINT(Wurmple) + .tmIlliterate = TRUE, + .levelUpLearnset = sWurmpleLevelUpLearnset, + .teachableLearnset = sWurmpleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_SILCOON, 7, SPECIES_SILCOON}, {EVO_LEVEL_CASCOON, 7, SPECIES_CASCOON}), }, @@ -927,16 +1159,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 15, .baseSpAttack = 25, .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 120, - .expYield = 72, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_4) ? 72 : 71, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Silcoon"), .cryId = CRY_SILCOON, @@ -953,17 +1185,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Silcoon, 56, 48), + .frontPic = gMonFrontPic_Silcoon, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Silcoon, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Silcoon, 64, 40), + .backPic = gMonBackPic_Silcoon, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Silcoon), - ICON(Silcoon, 2), - .footprint = gMonFootprint_Silcoon, - LEARNSETS(Silcoon), + .palette = gMonPalette_Silcoon, + .shinyPalette = gMonShinyPalette_Silcoon, + .iconSprite = gMonIcon_Silcoon, + .iconPalIndex = 2, + FOOTPRINT(Silcoon) + .tmIlliterate = TRUE, + .levelUpLearnset = sSilcoonLevelUpLearnset, + .teachableLearnset = sSilcoonTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_BEAUTIFLY}), }, @@ -975,15 +1213,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 100 : 90, .baseSpDefense = 50, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 198, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 178, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 173, + #else + .expYield = 161, + #endif .evYield_SpAttack = 3, + .itemRare = ITEM_SHED_SHELL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_RIVALRY }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Beautifly"), @@ -1001,20 +1248,27 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Beautifly, 64, 56), - FRONT_PIC_FEMALE(Beautifly, 64, 56), + .frontPic = gMonFrontPic_Beautifly, + .frontPicFemale = gMonFrontPic_BeautiflyF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Beautifly, .frontAnimId = ANIM_V_SLIDE, .enemyMonElevation = 10, - BACK_PIC(Beautifly, 64, 64), - BACK_PIC_FEMALE(Beautifly, 64, 64), + .backPic = gMonBackPic_Beautifly, + .backPicFemale = gMonBackPic_BeautiflyF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Beautifly), - ICON(Beautifly, 0), - .footprint = gMonFootprint_Beautifly, - LEARNSETS(Beautifly), + .palette = gMonPalette_Beautifly, + .shinyPalette = gMonShinyPalette_Beautifly, + .iconSprite = gMonIcon_Beautifly, + .iconPalIndex = 0, + FOOTPRINT(Beautifly) + .levelUpLearnset = sBeautiflyLevelUpLearnset, + .teachableLearnset = sBeautiflyTeachableLearnset, }, [SPECIES_CASCOON] = @@ -1025,16 +1279,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 15, .baseSpAttack = 25, .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 120, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 72, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 41, + #else + .expYield = 72, + #endif .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Cascoon"), .cryId = CRY_CASCOON, @@ -1051,17 +1311,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cascoon, 56, 48), + .frontPic = gMonFrontPic_Cascoon, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Cascoon, .frontAnimId = ANIM_V_SLIDE, - BACK_PIC(Cascoon, 56, 40), + .backPic = gMonBackPic_Cascoon, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Cascoon), - ICON(Cascoon, 2), - .footprint = gMonFootprint_Cascoon, - LEARNSETS(Cascoon), + .palette = gMonPalette_Cascoon, + .shinyPalette = gMonShinyPalette_Cascoon, + .iconSprite = gMonIcon_Cascoon, + .iconPalIndex = 2, + FOOTPRINT(Cascoon) + .tmIlliterate = TRUE, + .levelUpLearnset = sCascoonLevelUpLearnset, + .teachableLearnset = sCascoonTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_DUSTOX}), }, @@ -1073,15 +1339,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = 50, .baseSpDefense = 90, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 193, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 173, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 135, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 161, + #else + .expYield = 160, + #endif .evYield_SpDefense = 3, + .itemRare = ITEM_SHED_SHELL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_COMPOUND_EYES }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dustox"), @@ -1099,20 +1376,27 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dustox, 64, 48), - FRONT_PIC_FEMALE(Dustox, 64, 48), + .frontPic = gMonFrontPic_Dustox, + .frontPicFemale = gMonFrontPic_DustoxF, + .frontPicSize = MON_COORDS_SIZE(64, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Dustox, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, .enemyMonElevation = 12, - BACK_PIC(Dustox, 64, 64), - BACK_PIC_FEMALE(Dustox, 64, 64), + .backPic = gMonBackPic_Dustox, + .backPicFemale = gMonBackPic_DustoxF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Dustox), - ICON(Dustox, 5), - .footprint = gMonFootprint_Dustox, - LEARNSETS(Dustox), + .palette = gMonPalette_Dustox, + .shinyPalette = gMonShinyPalette_Dustox, + .iconSprite = gMonIcon_Dustox, + .iconPalIndex = 5, + FOOTPRINT(Dustox) + .levelUpLearnset = sDustoxLevelUpLearnset, + .teachableLearnset = sDustoxTeachableLearnset, }, #endif //P_FAMILY_WURMPLE @@ -1125,16 +1409,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 30, .baseSpAttack = 40, .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_GRASS }, + .types = MON_TYPES(TYPE_WATER, TYPE_GRASS), .catchRate = 255, - .expYield = 44, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 44 : 74, .evYield_SpDefense = 1, .itemRare = ITEM_MENTAL_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_GRASS), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH, ABILITY_OWN_TEMPO }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Lotad"), @@ -1152,17 +1436,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lotad, 40, 40), + .frontPic = gMonFrontPic_Lotad, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Lotad, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Lotad, 56, 40), + .backPic = gMonBackPic_Lotad, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Lotad), - ICON(Lotad, 4), - .footprint = gMonFootprint_Lotad, - LEARNSETS(Lotad), + .palette = gMonPalette_Lotad, + .shinyPalette = gMonShinyPalette_Lotad, + .iconSprite = gMonIcon_Lotad, + .iconPalIndex = 4, + FOOTPRINT(Lotad) + .levelUpLearnset = sLotadLevelUpLearnset, + .teachableLearnset = sLotadTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_LOMBRE}), }, @@ -1174,16 +1463,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_GRASS }, + .types = MON_TYPES(TYPE_WATER, TYPE_GRASS), .catchRate = 120, - .expYield = 119, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 119 : 141, .evYield_SpDefense = 2, .itemRare = ITEM_MENTAL_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_GRASS), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH, ABILITY_OWN_TEMPO }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Lombre"), @@ -1201,17 +1490,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lombre, 48, 48), + .frontPic = gMonFrontPic_Lombre, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Lombre, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Lombre, 48, 56), + .backPic = gMonBackPic_Lombre, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Lombre), - ICON(Lombre, 1), - .footprint = gMonFootprint_Lombre, - LEARNSETS(Lombre), + .palette = gMonPalette_Lombre, + .shinyPalette = gMonShinyPalette_Lombre, + .iconSprite = gMonIcon_Lombre, + .iconPalIndex = 1, + FOOTPRINT(Lombre) + .levelUpLearnset = sLombreLevelUpLearnset, + .teachableLearnset = sLombreTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_LUDICOLO}), }, @@ -1223,16 +1517,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 70, .baseSpAttack = 90, .baseSpDefense = 100, - .types = { TYPE_WATER, TYPE_GRASS }, + .types = MON_TYPES(TYPE_WATER, TYPE_GRASS), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 240, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 216, + #else + .expYield = 181, + #endif .evYield_SpDefense = 3, .itemRare = ITEM_MENTAL_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_GRASS), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH, ABILITY_OWN_TEMPO }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Ludicolo"), @@ -1250,19 +1550,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 268, .trainerOffset = -1, - FRONT_PIC(Ludicolo, 56, 64), - FRONT_PIC_FEMALE(Ludicolo, 56, 64), + .frontPic = gMonFrontPic_Ludicolo, + .frontPicFemale = gMonFrontPic_LudicoloF, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Ludicolo, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - BACK_PIC(Ludicolo, 64, 56), - BACK_PIC_FEMALE(Ludicolo, 64, 56), + .backPic = gMonBackPic_Ludicolo, + .backPicFemale = gMonBackPic_LudicoloF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Ludicolo), - ICON(Ludicolo, 1), - .footprint = gMonFootprint_Ludicolo, - LEARNSETS(Ludicolo), + .palette = gMonPalette_Ludicolo, + .shinyPalette = gMonShinyPalette_Ludicolo, + .iconSprite = gMonIcon_Ludicolo, + .iconPalIndex = 1, + FOOTPRINT(Ludicolo) + .levelUpLearnset = sLudicoloLevelUpLearnset, + .teachableLearnset = sLudicoloTeachableLearnset, }, #endif //P_FAMILY_LOTAD @@ -1275,15 +1582,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 30, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 255, - .expYield = 44, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 44 : 74, .evYield_Defense = 1, + .itemRare = ITEM_POWER_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Seedot"), @@ -1301,17 +1609,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Seedot, 32, 40), + .frontPic = gMonFrontPic_Seedot, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Seedot, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, - BACK_PIC(Seedot, 48, 48), + .backPic = gMonBackPic_Seedot, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Seedot), - ICON(Seedot, 2), - .footprint = gMonFootprint_Seedot, - LEARNSETS(Seedot), + .palette = gMonPalette_Seedot, + .shinyPalette = gMonShinyPalette_Seedot, + .iconSprite = gMonIcon_Seedot, + .iconPalIndex = 2, + FOOTPRINT(Seedot) + .levelUpLearnset = sSeedotLevelUpLearnset, + .teachableLearnset = sSeedotTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_NUZLEAF}), }, @@ -1323,15 +1636,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 60, .baseSpAttack = 60, .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_DARK }, + .types = MON_TYPES(TYPE_GRASS, TYPE_DARK), .catchRate = 120, - .expYield = 119, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 119 : 141, .evYield_Attack = 2, + .itemRare = ITEM_POWER_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Nuzleaf"), @@ -1349,19 +1663,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nuzleaf, 40, 56), - FRONT_PIC_FEMALE(Nuzleaf, 40, 56), + .frontPic = gMonFrontPic_Nuzleaf, + .frontPicFemale = gMonFrontPic_NuzleafF, + .frontPicSize = MON_COORDS_SIZE(40, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Nuzleaf, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Nuzleaf, 56, 48), - BACK_PIC_FEMALE(Nuzleaf, 56, 48), + .backPic = gMonBackPic_Nuzleaf, + .backPicFemale = gMonBackPic_NuzleafF, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Nuzleaf), - ICON(Nuzleaf, 1), - .footprint = gMonFootprint_Nuzleaf, - LEARNSETS(Nuzleaf), + .palette = gMonPalette_Nuzleaf, + .shinyPalette = gMonShinyPalette_Nuzleaf, + .iconSprite = gMonIcon_Nuzleaf, + .iconPalIndex = 1, + FOOTPRINT(Nuzleaf) + .levelUpLearnset = sNuzleafLevelUpLearnset, + .teachableLearnset = sNuzleafTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SHIFTRY}), }, @@ -1373,20 +1694,27 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 80, .baseSpAttack = 90, .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_DARK }, + .types = MON_TYPES(TYPE_GRASS, TYPE_DARK), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 240, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 216, + #else + .expYield = 181, + #endif .evYield_Attack = 3, + .itemRare = ITEM_POWER_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, - #if P_UPDATED_ABILITIES >= GEN_9 - .abilities = { ABILITY_CHLOROPHYLL, ABILITY_WIND_RIDER, ABILITY_PICKPOCKET }, - #else - .abilities = { ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), + #if P_UPDATED_ABILITIES >= GEN_9 + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_WIND_RIDER, ABILITY_PICKPOCKET }, + #else + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET }, + #endif .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Shiftry"), .cryId = CRY_SHIFTRY, @@ -1403,19 +1731,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shiftry, 64, 56), - FRONT_PIC_FEMALE(Shiftry, 64, 56), + .frontPic = gMonFrontPic_Shiftry, + .frontPicFemale = gMonFrontPic_ShiftryF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Shiftry, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Shiftry, 64, 56), - BACK_PIC_FEMALE(Shiftry, 64, 56), + .backPic = gMonBackPic_Shiftry, + .backPicFemale = gMonBackPic_ShiftryF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Shiftry), - ICON(Shiftry, 5), - .footprint = gMonFootprint_Shiftry, - LEARNSETS(Shiftry), + .palette = gMonPalette_Shiftry, + .shinyPalette = gMonShinyPalette_Shiftry, + .iconSprite = gMonIcon_Shiftry, + .iconPalIndex = 5, + FOOTPRINT(Shiftry) + .levelUpLearnset = sShiftryLevelUpLearnset, + .teachableLearnset = sShiftryTeachableLearnset, }, #endif //P_FAMILY_SEEDOT @@ -1428,15 +1763,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 85, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 200, - .expYield = 54, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 54 : 59, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_GUTS, ABILITY_NONE, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Taillow"), @@ -1454,17 +1789,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Taillow, 48, 48), + .frontPic = gMonFrontPic_Taillow, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Taillow, .frontAnimId = ANIM_V_JUMPS_BIG, - BACK_PIC(Taillow, 56, 40), + .backPic = gMonBackPic_Taillow, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Taillow), - ICON(Taillow, 2), - .footprint = gMonFootprint_Taillow, - LEARNSETS(Taillow), + .palette = gMonPalette_Taillow, + .shinyPalette = gMonShinyPalette_Taillow, + .iconSprite = gMonIcon_Taillow, + .iconPalIndex = 2, + FOOTPRINT(Taillow) + .levelUpLearnset = sTaillowLevelUpLearnset, + .teachableLearnset = sTaillowTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_SWELLOW}), }, @@ -1476,15 +1816,21 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 125, .baseSpAttack = P_UPDATED_STATS >= GEN_7 ? 75 : 50, .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 159, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 151, + #else + .expYield = 162, + #endif .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_GUTS, ABILITY_NONE, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Swellow"), @@ -1502,17 +1848,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Swellow, 64, 56), + .frontPic = gMonFrontPic_Swellow, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Swellow, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Swellow, 56, 56), + .backPic = gMonBackPic_Swellow, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Swellow), - ICON(Swellow, 2), - .footprint = gMonFootprint_Swellow, - LEARNSETS(Swellow), + .palette = gMonPalette_Swellow, + .shinyPalette = gMonShinyPalette_Swellow, + .iconSprite = gMonIcon_Swellow, + .iconPalIndex = 2, + FOOTPRINT(Swellow) + .levelUpLearnset = sSwellowLevelUpLearnset, + .teachableLearnset = sSwellowTeachableLearnset, }, #endif //P_FAMILY_TAILLOW @@ -1525,15 +1876,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 85, .baseSpAttack = 55, .baseSpDefense = 30, - .types = { TYPE_WATER, TYPE_FLYING }, + .types = MON_TYPES(TYPE_WATER, TYPE_FLYING), .catchRate = 190, - .expYield = 54, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 54 : 64, .evYield_Speed = 1, + .itemCommon = ITEM_PRETTY_FEATHER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_HYDRATION, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Wingull"), @@ -1551,18 +1903,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wingull, 64, 48), + .frontPic = gMonFrontPic_Wingull, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Wingull, .frontAnimId = ANIM_H_PIVOT, .enemyMonElevation = 15, - BACK_PIC(Wingull, 64, 40), + .backPic = gMonBackPic_Wingull, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Wingull), - ICON(Wingull, 0), - .footprint = gMonFootprint_Wingull, - LEARNSETS(Wingull), + .palette = gMonPalette_Wingull, + .shinyPalette = gMonShinyPalette_Wingull, + .iconSprite = gMonIcon_Wingull, + .iconPalIndex = 0, + FOOTPRINT(Wingull) + .levelUpLearnset = sWingullLevelUpLearnset, + .teachableLearnset = sWingullTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_PELIPPER}), }, @@ -1574,15 +1931,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = P_UPDATED_STATS >= GEN_7 ? 95 : 85, .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_FLYING }, + .types = MON_TYPES(TYPE_WATER, TYPE_FLYING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 154, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 151, + #else + .expYield = 164, + #endif .evYield_Defense = 2, + .itemCommon = ITEM_PRETTY_FEATHER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_DRIZZLE, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Pelipper"), @@ -1600,18 +1964,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pelipper, 64, 64), + .frontPic = gMonFrontPic_Pelipper, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Pelipper, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 8, - BACK_PIC(Pelipper, 64, 56), + .backPic = gMonBackPic_Pelipper, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Pelipper), - ICON(Pelipper, 2), - .footprint = gMonFootprint_Pelipper, - LEARNSETS(Pelipper), + .palette = gMonPalette_Pelipper, + .shinyPalette = gMonShinyPalette_Pelipper, + .iconSprite = gMonIcon_Pelipper, + .iconPalIndex = 2, + FOOTPRINT(Pelipper) + .levelUpLearnset = sPelipperLevelUpLearnset, + .teachableLearnset = sPelipperTeachableLearnset, }, #endif //P_FAMILY_WINGULL @@ -1619,9 +1988,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = #define RALTS_FAMILY_TYPE2 (P_UPDATED_TYPES >= GEN_6 ? TYPE_FAIRY : TYPE_PSYCHIC) #if P_UPDATED_EGG_GROUPS >= GEN_8 - #define RALTS_FAMILY_EGG_GROUPS { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_AMORPHOUS } + #define RALTS_FAMILY_EGG_GROUPS MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE, EGG_GROUP_AMORPHOUS) #else - #define RALTS_FAMILY_EGG_GROUPS { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS } + #define RALTS_FAMILY_EGG_GROUPS MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS) #endif [SPECIES_RALTS] = @@ -1632,9 +2001,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 40, .baseSpAttack = 45, .baseSpDefense = 35, - .types = { TYPE_PSYCHIC, RALTS_FAMILY_TYPE2 }, + .types = MON_TYPES(TYPE_PSYCHIC, RALTS_FAMILY_TYPE2), .catchRate = 235, - .expYield = 40, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 40 : 70, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, @@ -1658,17 +2027,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ralts, 24, 40), + .frontPic = gMonFrontPic_Ralts, + .frontPicSize = MON_COORDS_SIZE(24, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Ralts, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Ralts, 32, 40), + .backPic = gMonBackPic_Ralts, + .backPicSize = MON_COORDS_SIZE(32, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Ralts), - ICON(Ralts, 1), - .footprint = gMonFootprint_Ralts, - LEARNSETS(Ralts), + .palette = gMonPalette_Ralts, + .shinyPalette = gMonShinyPalette_Ralts, + .iconSprite = gMonIcon_Ralts, + .iconPalIndex = 1, + FOOTPRINT(Ralts) + .levelUpLearnset = sRaltsLevelUpLearnset, + .teachableLearnset = sRaltsTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_KIRLIA}), }, @@ -1680,9 +2054,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 65, .baseSpDefense = 55, - .types = { TYPE_PSYCHIC, RALTS_FAMILY_TYPE2 }, + .types = MON_TYPES(TYPE_PSYCHIC, RALTS_FAMILY_TYPE2), .catchRate = 120, - .expYield = 97, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 97 : 140, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, @@ -1706,190 +2080,262 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kirlia, 32, 56), + .frontPic = gMonFrontPic_Kirlia, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Kirlia, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Kirlia, 48, 56), + .backPic = gMonBackPic_Kirlia, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Kirlia), - ICON(Kirlia, 1), - .footprint = gMonFootprint_Kirlia, - LEARNSETS(Kirlia), + .palette = gMonPalette_Kirlia, + .shinyPalette = gMonShinyPalette_Kirlia, + .iconSprite = gMonIcon_Kirlia, + .iconPalIndex = 1, + FOOTPRINT(Kirlia) + .levelUpLearnset = sKirliaLevelUpLearnset, + .teachableLearnset = sKirliaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_GARDEVOIR}, - {EVO_ITEM_MALE, ITEM_SUN_STONE, SPECIES_GALLADE}), + {EVO_ITEM_MALE, ITEM_DAWN_STONE, SPECIES_GALLADE}), }, -#define GARDEVOIR_MISC_INFO \ - .catchRate = 45, \ - .evYield_SpAttack = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = RALTS_FAMILY_EGG_GROUPS, \ - .types = { TYPE_PSYCHIC, RALTS_FAMILY_TYPE2 }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Gardevoir"), \ - .natDexNum = NATIONAL_DEX_GARDEVOIR, \ - .categoryName = _("Embrace"), \ - .height = 16, \ - .weight = 484, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Gardevoir, \ - LEARNSETS(Gardevoir), \ - .formSpeciesIdTable = sGardevoirFormSpeciesIdTable, \ - .formChangeTable = sGardevoirFormChangeTable - [SPECIES_GARDEVOIR] = { - GARDEVOIR_MISC_INFO, .baseHP = 68, .baseAttack = 65, .baseDefense = 65, .baseSpeed = 80, .baseSpAttack = 125, .baseSpDefense = 115, + .types = MON_TYPES(TYPE_PSYCHIC, RALTS_FAMILY_TYPE2), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 259, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 233, + #else + .expYield = 208, + #endif + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = RALTS_FAMILY_EGG_GROUPS, .abilities = { ABILITY_SYNCHRONIZE, ABILITY_TRACE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Gardevoir"), .cryId = CRY_GARDEVOIR, + .natDexNum = NATIONAL_DEX_GARDEVOIR, + .categoryName = _("Embrace"), + .height = 16, + .weight = 484, .description = COMPOUND_STRING( "It apparently does not feel the pull of\n" "gravity because it supports itself with\n" "psychic power. It will give its life to\n" "protect its Trainer."), - FRONT_PIC(Gardevoir, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Gardevoir, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Gardevoir, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Gardevoir, 48, 56), + .backPic = gMonBackPic_Gardevoir, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Gardevoir), - ICON(Gardevoir, 1), + .palette = gMonPalette_Gardevoir, + .shinyPalette = gMonShinyPalette_Gardevoir, + .iconSprite = gMonIcon_Gardevoir, + .iconPalIndex = 1, + FOOTPRINT(Gardevoir) + .levelUpLearnset = sGardevoirLevelUpLearnset, + .teachableLearnset = sGardevoirTeachableLearnset, + .formSpeciesIdTable = sGardevoirFormSpeciesIdTable, + .formChangeTable = sGardevoirFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_GARDEVOIR_MEGA] = { - GARDEVOIR_MISC_INFO, .baseHP = 68, .baseAttack = 85, .baseDefense = 65, .baseSpeed = 100, .baseSpAttack = 165, .baseSpDefense = 135, - .expYield = 278, + .types = MON_TYPES(TYPE_PSYCHIC, RALTS_FAMILY_TYPE2), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 309 : 278, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = RALTS_FAMILY_EGG_GROUPS, .abilities = { ABILITY_PIXILATE, ABILITY_PIXILATE, ABILITY_PIXILATE }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Gardevoir"), .cryId = CRY_GARDEVOIR_MEGA, + .natDexNum = NATIONAL_DEX_GARDEVOIR, + .categoryName = _("Embrace"), + .height = 16, + .weight = 484, .description = COMPOUND_STRING( "By opening its heart, Mega Gardevoir\n" "becomes able to use tremendous psychic\n" "power. The red plate in its chest is said to\n" "be a physical manifestation of its heart."), - FRONT_PIC(GardevoirMega, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_GardevoirMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_GardevoirMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GardevoirMega, 48, 56), + .backPic = gMonBackPic_GardevoirMega, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, - PALETTES(GardevoirMega), - ICON(GardevoirMega, 1), + .palette = gMonPalette_GardevoirMega, + .shinyPalette = gMonShinyPalette_GardevoirMega, + .iconSprite = gMonIcon_GardevoirMega, + .iconPalIndex = 1, + FOOTPRINT(Gardevoir) .isMegaEvolution = TRUE, + .levelUpLearnset = sGardevoirLevelUpLearnset, + .teachableLearnset = sGardevoirTeachableLearnset, + .formSpeciesIdTable = sGardevoirFormSpeciesIdTable, + .formChangeTable = sGardevoirFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #if P_GEN_4_CROSS_EVOS -#define GALLADE_MISC_INFO \ - .types = { TYPE_PSYCHIC, TYPE_FIGHTING }, \ - .catchRate = 45, \ - .evYield_Attack = 3, \ - .genderRatio = MON_MALE, \ - .eggCycles = 20, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = RALTS_FAMILY_EGG_GROUPS, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Gallade"), \ - .natDexNum = NATIONAL_DEX_GALLADE, \ - .categoryName = _("Blade"), \ - .height = 16, \ - .pokemonScale = 259, \ - .pokemonOffset = 1, \ - .trainerScale = 296, \ - .trainerOffset = 1, \ - .footprint = gMonFootprint_Gallade, \ - LEARNSETS(Gallade), \ - .formSpeciesIdTable = sGalladeFormSpeciesIdTable, \ - .formChangeTable = sGalladeFormChangeTable - [SPECIES_GALLADE] = { - GALLADE_MISC_INFO, .baseHP = 68, .baseAttack = 125, .baseDefense = 65, .baseSpeed = 80, .baseSpAttack = 65, .baseSpDefense = 115, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FIGHTING), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 259, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 233, - #if P_UPDATED_ABILITIES >= GEN_9 - .abilities = { ABILITY_STEADFAST, ABILITY_SHARPNESS, ABILITY_JUSTIFIED }, - #else - .abilities = { ABILITY_STEADFAST, ABILITY_NONE, ABILITY_JUSTIFIED }, - #endif + #else + .expYield = 208, + #endif + .evYield_Attack = 3, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = RALTS_FAMILY_EGG_GROUPS, + #if P_UPDATED_ABILITIES >= GEN_9 + .abilities = { ABILITY_STEADFAST, ABILITY_SHARPNESS, ABILITY_JUSTIFIED }, + #else + .abilities = { ABILITY_STEADFAST, ABILITY_NONE, ABILITY_JUSTIFIED }, + #endif + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Gallade"), .cryId = CRY_GALLADE, + .natDexNum = NATIONAL_DEX_GALLADE, + .categoryName = _("Blade"), + .height = 16, .weight = 520, .description = COMPOUND_STRING( "A master of courtesy and swordsmanship,\n" "it fights using extending swords on its\n" "elbows when trying to protect someone.\n" "It can sense what its foe is thinking."), - FRONT_PIC(Gallade, 56, 64), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_Gallade, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Gallade, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Gallade, 64, 64), + .backPic = gMonBackPic_Gallade, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Gallade), - ICON(Gallade, 1), + .palette = gMonPalette_Gallade, + .shinyPalette = gMonShinyPalette_Gallade, + .iconSprite = gMonIcon_Gallade, + .iconPalIndex = 1, + FOOTPRINT(Gallade) + .levelUpLearnset = sGalladeLevelUpLearnset, + .teachableLearnset = sGalladeTeachableLearnset, + .formSpeciesIdTable = sGalladeFormSpeciesIdTable, + .formChangeTable = sGalladeFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_GALLADE_MEGA] = { - GALLADE_MISC_INFO, .baseHP = 68, .baseAttack = 165, .baseDefense = 95, .baseSpeed = 110, .baseSpAttack = 65, .baseSpDefense = 115, - .expYield = 278, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FIGHTING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 309 : 278, + .evYield_Attack = 3, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = RALTS_FAMILY_EGG_GROUPS, .abilities = { ABILITY_INNER_FOCUS, ABILITY_INNER_FOCUS, ABILITY_INNER_FOCUS }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Gallade"), .cryId = CRY_GALLADE_MEGA, + .natDexNum = NATIONAL_DEX_GALLADE, + .categoryName = _("Blade"), + .height = 16, .weight = 564, .description = COMPOUND_STRING( "Mega Gallade has a knightly appearance.\n" "It can use its psychic power to reshape\n" "both arms into blades simultaneously and\n" "fight using a dual-wielding style."), - FRONT_PIC(GalladeMega, 64, 64), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_GalladeMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_GalladeMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GalladeMega, 64, 64), + .backPic = gMonBackPic_GalladeMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(GalladeMega), - ICON(GalladeMega, 1), + .palette = gMonPalette_GalladeMega, + .shinyPalette = gMonShinyPalette_GalladeMega, + .iconSprite = gMonIcon_GalladeMega, + .iconPalIndex = 1, + FOOTPRINT(Gallade) .isMegaEvolution = TRUE, + .levelUpLearnset = sGalladeLevelUpLearnset, + .teachableLearnset = sGalladeTeachableLearnset, + .formSpeciesIdTable = sGalladeFormSpeciesIdTable, + .formChangeTable = sGalladeFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_GEN_4_CROSS_EVOS @@ -1904,15 +2350,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = 50, .baseSpDefense = 52, - .types = { TYPE_BUG, TYPE_WATER }, + .types = MON_TYPES(TYPE_BUG, TYPE_WATER), .catchRate = 200, - .expYield = 54, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 54 : 63, .evYield_Speed = 1, + .itemCommon = ITEM_HONEY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_BUG), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Surskit"), @@ -1930,17 +2377,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Surskit, 48, 48), + .frontPic = gMonFrontPic_Surskit, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Surskit, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Surskit, 56, 40), + .backPic = gMonBackPic_Surskit, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_SPRING, - PALETTES(Surskit), - ICON(Surskit, 0), - .footprint = gMonFootprint_Surskit, - LEARNSETS(Surskit), + .palette = gMonPalette_Surskit, + .shinyPalette = gMonShinyPalette_Surskit, + .iconSprite = gMonIcon_Surskit, + .iconPalIndex = 0, + FOOTPRINT(Surskit) + .levelUpLearnset = sSurskitLevelUpLearnset, + .teachableLearnset = sSurskitTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_MASQUERAIN}), }, @@ -1949,17 +2401,18 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseHP = 70, .baseAttack = 60, .baseDefense = 62, + .baseSpeed = P_UPDATED_STATS >= GEN_7 ? 80 : 60, + .baseSpAttack = P_UPDATED_STATS >= GEN_7 ? 100 : 80, .baseSpDefense = 82, - #if P_UPDATED_STATS >= GEN_7 - .baseSpeed = 80, - .baseSpAttack = 100, - #else - .baseSpeed = 60, - .baseSpAttack = 80, - #endif - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 75, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 159, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 145, + #else + .expYield = 128, + #endif .evYield_SpAttack = 1, .evYield_SpDefense = 1, .itemRare = ITEM_SILVER_POWDER, @@ -1967,7 +2420,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_BUG), .abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Masquerain"), @@ -1985,18 +2438,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Masquerain, 64, 64), + .frontPic = gMonFrontPic_Masquerain, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Masquerain, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 10, - BACK_PIC(Masquerain, 64, 64), + .backPic = gMonBackPic_Masquerain, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Masquerain), - ICON(Masquerain, 0), - .footprint = gMonFootprint_Masquerain, - LEARNSETS(Masquerain), + .palette = gMonPalette_Masquerain, + .shinyPalette = gMonShinyPalette_Masquerain, + .iconSprite = gMonIcon_Masquerain, + .iconPalIndex = 0, + FOOTPRINT(Masquerain) + .levelUpLearnset = sMasquerainLevelUpLearnset, + .teachableLearnset = sMasquerainTeachableLearnset, }, #endif //P_FAMILY_SURSKIT @@ -2009,9 +2467,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 35, .baseSpAttack = 40, .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 255, - .expYield = 59, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 59 : 65, .evYield_HP = 1, .itemCommon = ITEM_TINY_MUSHROOM, .itemRare = ITEM_BIG_MUSHROOM, @@ -2019,7 +2477,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), .abilities = { ABILITY_EFFECT_SPORE, ABILITY_POISON_HEAL, ABILITY_QUICK_FEET }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Shroomish"), @@ -2037,17 +2495,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 22, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shroomish, 40, 40), + .frontPic = gMonFrontPic_Shroomish, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Shroomish, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Shroomish, 56, 48), + .backPic = gMonBackPic_Shroomish, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Shroomish), - ICON(Shroomish, 1), - .footprint = gMonFootprint_Shroomish, - LEARNSETS(Shroomish), + .palette = gMonPalette_Shroomish, + .shinyPalette = gMonShinyPalette_Shroomish, + .iconSprite = gMonIcon_Shroomish, + .iconPalIndex = 1, + FOOTPRINT(Shroomish) + .levelUpLearnset = sShroomishLevelUpLearnset, + .teachableLearnset = sShroomishTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 23, SPECIES_BRELOOM}), }, @@ -2059,9 +2522,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 70, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FIGHTING), .catchRate = 90, - .expYield = 161, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 161 : 165, .evYield_Attack = 2, .itemCommon = ITEM_TINY_MUSHROOM, .itemRare = ITEM_BIG_MUSHROOM, @@ -2069,7 +2532,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), .abilities = { ABILITY_EFFECT_SPORE, ABILITY_POISON_HEAL, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Breloom"), @@ -2087,17 +2550,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Breloom, 48, 64), + .frontPic = gMonFrontPic_Breloom, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Breloom, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Breloom, 64, 64), + .backPic = gMonBackPic_Breloom, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Breloom), - ICON(Breloom, 1), - .footprint = gMonFootprint_Breloom, - LEARNSETS(Breloom), + .palette = gMonPalette_Breloom, + .shinyPalette = gMonShinyPalette_Breloom, + .iconSprite = gMonIcon_Breloom, + .iconPalIndex = 1, + FOOTPRINT(Breloom) + .levelUpLearnset = sBreloomLevelUpLearnset, + .teachableLearnset = sBreloomTeachableLearnset, }, #endif //P_FAMILY_SHROOMISH @@ -2110,16 +2578,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 30, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, - .expYield = 56, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 56 : 83, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, - .abilities = { ABILITY_TRUANT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_TRUANT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Slakoth"), .cryId = CRY_SLAKOTH, @@ -2136,17 +2604,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Slakoth, 56, 40), + .frontPic = gMonFrontPic_Slakoth, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Slakoth, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Slakoth, 64, 40), + .backPic = gMonBackPic_Slakoth, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Slakoth), - ICON(Slakoth, 2), - .footprint = gMonFootprint_Slakoth, - LEARNSETS(Slakoth), + .palette = gMonPalette_Slakoth, + .shinyPalette = gMonShinyPalette_Slakoth, + .iconSprite = gMonIcon_Slakoth, + .iconPalIndex = 2, + FOOTPRINT(Slakoth) + .levelUpLearnset = sSlakothLevelUpLearnset, + .teachableLearnset = sSlakothTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_VIGOROTH}), }, @@ -2158,16 +2631,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 90, .baseSpAttack = 55, .baseSpDefense = 55, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 120, - .expYield = 154, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 154 : 126, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, - .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Vigoroth"), .cryId = CRY_VIGOROTH, @@ -2184,17 +2657,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vigoroth, 64, 56), + .frontPic = gMonFrontPic_Vigoroth, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Vigoroth, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Vigoroth, 56, 64), + .backPic = gMonBackPic_Vigoroth, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Vigoroth), - ICON(Vigoroth, 2), - .footprint = gMonFootprint_Vigoroth, - LEARNSETS(Vigoroth), + .palette = gMonPalette_Vigoroth, + .shinyPalette = gMonShinyPalette_Vigoroth, + .iconSprite = gMonIcon_Vigoroth, + .iconPalIndex = 2, + FOOTPRINT(Vigoroth) + .levelUpLearnset = sVigorothLevelUpLearnset, + .teachableLearnset = sVigorothTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SLAKING}), }, @@ -2206,16 +2684,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 100, .baseSpAttack = 95, .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 285, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 252, + #else + .expYield = 210, + #endif .evYield_HP = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, - .abilities = { ABILITY_TRUANT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_TRUANT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Slaking"), .cryId = CRY_SLAKING, @@ -2232,17 +2716,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 2, .trainerScale = 300, .trainerOffset = 1, - FRONT_PIC(Slaking, 64, 56), + .frontPic = gMonFrontPic_Slaking, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Slaking, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Slaking, 64, 56), + .backPic = gMonBackPic_Slaking, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Slaking), - ICON(Slaking, 2), - .footprint = gMonFootprint_Slaking, - LEARNSETS(Slaking), + .palette = gMonPalette_Slaking, + .shinyPalette = gMonShinyPalette_Slaking, + .iconSprite = gMonIcon_Slaking, + .iconPalIndex = 2, + FOOTPRINT(Slaking) + .levelUpLearnset = sSlakingLevelUpLearnset, + .teachableLearnset = sSlakingTeachableLearnset, }, #endif //P_FAMILY_SLAKOTH @@ -2255,16 +2744,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 40, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_GROUND }, + .types = MON_TYPES(TYPE_BUG, TYPE_GROUND), .catchRate = 255, - .expYield = 53, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 53 : 65, .evYield_Defense = 1, .itemRare = ITEM_SOFT_SAND, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_RUN_AWAY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Nincada"), @@ -2282,17 +2771,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nincada, 56, 32), + .frontPic = gMonFrontPic_Nincada, + .frontPicSize = MON_COORDS_SIZE(56, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Nincada, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Nincada, 64, 32), + .backPic = gMonBackPic_Nincada, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 18, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Nincada), - ICON(Nincada, 1), - .footprint = gMonFootprint_Nincada, - LEARNSETS(Nincada), + .palette = gMonPalette_Nincada, + .shinyPalette = gMonShinyPalette_Nincada, + .iconSprite = gMonIcon_Nincada, + .iconPalIndex = 1, + FOOTPRINT(Nincada) + .levelUpLearnset = sNincadaLevelUpLearnset, + .teachableLearnset = sNincadaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_NINJASK, 20, SPECIES_NINJASK}, {EVO_LEVEL_SHEDINJA, 20, SPECIES_SHEDINJA}), }, @@ -2305,15 +2799,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 160, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 120, - .expYield = 160, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 160 : 155, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SPEED_BOOST, ABILITY_NONE, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Ninjask"), @@ -2331,18 +2825,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ninjask, 64, 48), + .frontPic = gMonFrontPic_Ninjask, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Ninjask, .frontAnimId = ANIM_H_SLIDE_SLOW, .enemyMonElevation = 10, - BACK_PIC(Ninjask, 64, 40), + .backPic = gMonBackPic_Ninjask, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Ninjask), - ICON(Ninjask, 1), - .footprint = gMonFootprint_Ninjask, - LEARNSETS(Ninjask), + .palette = gMonPalette_Ninjask, + .shinyPalette = gMonShinyPalette_Ninjask, + .iconSprite = gMonIcon_Ninjask, + .iconPalIndex = 1, + FOOTPRINT(Ninjask) + .levelUpLearnset = sNinjaskLevelUpLearnset, + .teachableLearnset = sNinjaskTeachableLearnset, }, [SPECIES_SHEDINJA] = @@ -2353,16 +2852,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 40, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_GHOST }, + .types = MON_TYPES(TYPE_BUG, TYPE_GHOST), .catchRate = 45, - .expYield = 83, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 83 : 95, .evYield_HP = 2, .genderRatio = MON_GENDERLESS, .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_WONDER_GUARD, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_WONDER_GUARD, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Shedinja"), .cryId = CRY_SHEDINJA, @@ -2379,18 +2878,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shedinja, 48, 48), + .frontPic = gMonFrontPic_Shedinja, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Shedinja, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 8, - BACK_PIC(Shedinja, 64, 56), + .backPic = gMonBackPic_Shedinja, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Shedinja), - ICON(Shedinja, 1), - .footprint = gMonFootprint_Shedinja, - LEARNSETS(Shedinja), + .palette = gMonPalette_Shedinja, + .shinyPalette = gMonShinyPalette_Shedinja, + .iconSprite = gMonIcon_Shedinja, + .iconPalIndex = 1, + FOOTPRINT(Shedinja) + .levelUpLearnset = sShedinjaLevelUpLearnset, + .teachableLearnset = sShedinjaTeachableLearnset, }, #endif //P_FAMILY_NINCADA @@ -2403,15 +2907,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 28, .baseSpAttack = 51, .baseSpDefense = 23, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 190, - .expYield = 48, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 48 : 68, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Whismur"), @@ -2429,17 +2933,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Whismur, 48, 40), + .frontPic = gMonFrontPic_Whismur, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Whismur, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Whismur, 56, 40), + .backPic = gMonBackPic_Whismur, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Whismur), - ICON(Whismur, 1), - .footprint = gMonFootprint_Whismur, - LEARNSETS(Whismur), + .palette = gMonPalette_Whismur, + .shinyPalette = gMonShinyPalette_Whismur, + .iconSprite = gMonIcon_Whismur, + .iconPalIndex = 1, + FOOTPRINT(Whismur) + .levelUpLearnset = sWhismurLevelUpLearnset, + .teachableLearnset = sWhismurTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_LOUDRED}), }, @@ -2451,7 +2960,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 48, .baseSpAttack = 71, .baseSpDefense = 43, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 120, .expYield = 126, .evYield_HP = 2, @@ -2459,7 +2968,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Loudred"), @@ -2477,17 +2986,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Loudred, 56, 64), + .frontPic = gMonFrontPic_Loudred, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Loudred, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Loudred, 64, 56), + .backPic = gMonBackPic_Loudred, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Loudred), - ICON(Loudred, 2), - .footprint = gMonFootprint_Loudred, - LEARNSETS(Loudred), + .palette = gMonPalette_Loudred, + .shinyPalette = gMonShinyPalette_Loudred, + .iconSprite = gMonIcon_Loudred, + .iconPalIndex = 2, + FOOTPRINT(Loudred) + .levelUpLearnset = sLoudredLevelUpLearnset, + .teachableLearnset = sLoudredTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_EXPLOUD}), }, @@ -2499,15 +3013,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 68, .baseSpAttack = 91, .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 73 : 63, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 245, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 221, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 216, + #else + .expYield = 184, + #endif .evYield_HP = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), .abilities = { ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Exploud"), @@ -2525,17 +3047,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Exploud, 64, 64), + .frontPic = gMonFrontPic_Exploud, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Exploud, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Exploud, 64, 64), + .backPic = gMonBackPic_Exploud, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Exploud), - ICON(Exploud, 2), - .footprint = gMonFootprint_Exploud, - LEARNSETS(Exploud), + .palette = gMonPalette_Exploud, + .shinyPalette = gMonShinyPalette_Exploud, + .iconSprite = gMonIcon_Exploud, + .iconPalIndex = 2, + FOOTPRINT(Exploud) + .levelUpLearnset = sExploudLevelUpLearnset, + .teachableLearnset = sExploudTeachableLearnset, }, #endif //P_FAMILY_WHISMUR @@ -2548,16 +3075,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 25, .baseSpAttack = 20, .baseSpDefense = 30, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 180, - .expYield = 47, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 47 : 87, .evYield_HP = 1, .itemRare = ITEM_BLACK_BELT, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_THICK_FAT, ABILITY_GUTS, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Makuhita"), @@ -2575,17 +3102,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Makuhita, 48, 48), + .frontPic = gMonFrontPic_Makuhita, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Makuhita, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Makuhita, 56, 56), + .backPic = gMonBackPic_Makuhita, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Makuhita), - ICON(Makuhita, 1), - .footprint = gMonFootprint_Makuhita, - LEARNSETS(Makuhita), + .palette = gMonPalette_Makuhita, + .shinyPalette = gMonShinyPalette_Makuhita, + .iconSprite = gMonIcon_Makuhita, + .iconPalIndex = 1, + FOOTPRINT(Makuhita) + .levelUpLearnset = sMakuhitaLevelUpLearnset, + .teachableLearnset = sMakuhitaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_HARIYAMA}), }, @@ -2597,16 +3129,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 40, .baseSpDefense = 60, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 200, - .expYield = 166, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 184, .evYield_HP = 2, .itemRare = ITEM_KINGS_ROCK, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_THICK_FAT, ABILITY_GUTS, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Hariyama"), @@ -2624,17 +3156,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 343, .trainerOffset = 7, - FRONT_PIC(Hariyama, 64, 64), + .frontPic = gMonFrontPic_Hariyama, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Hariyama, .frontAnimId = ANIM_ROTATE_UP_TO_SIDES, - BACK_PIC(Hariyama, 64, 56), + .backPic = gMonBackPic_Hariyama, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Hariyama), - ICON(Hariyama, 2), - .footprint = gMonFootprint_Hariyama, - LEARNSETS(Hariyama), + .palette = gMonPalette_Hariyama, + .shinyPalette = gMonShinyPalette_Hariyama, + .iconSprite = gMonIcon_Hariyama, + .iconPalIndex = 2, + FOOTPRINT(Hariyama) + .levelUpLearnset = sHariyamaLevelUpLearnset, + .teachableLearnset = sHariyamaTeachableLearnset, }, #endif //P_FAMILY_MAKUHITA @@ -2647,16 +3184,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 30, .baseSpAttack = 45, .baseSpDefense = 90, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 255, - .expYield = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 75 : 108, .evYield_Defense = 1, .itemRare = ITEM_MAGNET, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STURDY, ABILITY_MAGNET_PULL, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Nosepass"), @@ -2674,18 +3211,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 9, .trainerScale = 289, .trainerOffset = 3, - FRONT_PIC(Nosepass, 40, 48), + .frontPic = gMonFrontPic_Nosepass, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Nosepass, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Nosepass, 56, 48), + .backPic = gMonBackPic_Nosepass, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Nosepass), - ICON(Nosepass, 0), - .footprint = gMonFootprint_Nosepass, - LEARNSETS(Nosepass), - .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_PROBOPASS}), + .palette = gMonPalette_Nosepass, + .shinyPalette = gMonShinyPalette_Nosepass, + .iconSprite = gMonIcon_Nosepass, + .iconPalIndex = 0, + FOOTPRINT(Nosepass) + .levelUpLearnset = sNosepassLevelUpLearnset, + .teachableLearnset = sNosepassTeachableLearnset, + .evolutions = EVOLUTION({EVO_MAPSEC, MAPSEC_NEW_MAUVILLE, SPECIES_PROBOPASS}, + {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_PROBOPASS}), }, #if P_GEN_4_CROSS_EVOS @@ -2697,9 +3240,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 40, .baseSpAttack = 75, .baseSpDefense = 150, - .types = { TYPE_ROCK, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ROCK, TYPE_STEEL), .catchRate = 60, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 198, .evYield_Defense = 1, .evYield_SpDefense = 2, .itemRare = ITEM_MAGNET, @@ -2707,7 +3250,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STURDY, ABILITY_MAGNET_PULL, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Probopass"), @@ -2725,18 +3268,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Probopass, 56, 56), + .frontPic = gMonFrontPic_Probopass, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Probopass, .frontAnimId = ANIM_V_SLIDE, .enemyMonElevation = 6, - BACK_PIC(Probopass, 64, 56), + .backPic = gMonBackPic_Probopass, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Probopass), - ICON(Probopass, 0), - .footprint = gMonFootprint_Probopass, - LEARNSETS(Probopass), + .palette = gMonPalette_Probopass, + .shinyPalette = gMonShinyPalette_Probopass, + .iconSprite = gMonIcon_Probopass, + .iconPalIndex = 0, + FOOTPRINT(Probopass) + .levelUpLearnset = sProbopassLevelUpLearnset, + .teachableLearnset = sProbopassTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_NOSEPASS @@ -2750,15 +3298,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, - .expYield = 52, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 52 : 65, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_CUTE_CHARM, ABILITY_NORMALIZE, ABILITY_WONDER_SKIN }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Skitty"), @@ -2776,17 +3324,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Skitty, 56, 40), + .frontPic = gMonFrontPic_Skitty, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Skitty, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Skitty, 64, 56), + .backPic = gMonBackPic_Skitty, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Skitty), - ICON(Skitty, 0), - .footprint = gMonFootprint_Skitty, - LEARNSETS(Skitty), + .palette = gMonPalette_Skitty, + .shinyPalette = gMonShinyPalette_Skitty, + .iconSprite = gMonIcon_Skitty, + .iconPalIndex = 0, + FOOTPRINT(Skitty) + .levelUpLearnset = sSkittyLevelUpLearnset, + .teachableLearnset = sSkittyTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_DELCATTY}), }, @@ -2798,16 +3351,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = P_UPDATED_STATS >= GEN_7 ? 90 : 70, .baseSpAttack = 55, .baseSpDefense = 55, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 60, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 140, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 133, + #else + .expYield = 138, + #endif .evYield_HP = 1, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_CUTE_CHARM, ABILITY_NORMALIZE, ABILITY_WONDER_SKIN }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Delcatty"), @@ -2825,53 +3384,52 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Delcatty, 56, 56), + .frontPic = gMonFrontPic_Delcatty, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Delcatty, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Delcatty, 64, 64), + .backPic = gMonBackPic_Delcatty, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Delcatty), - ICON(Delcatty, 2), - .footprint = gMonFootprint_Delcatty, - LEARNSETS(Delcatty), + .palette = gMonPalette_Delcatty, + .shinyPalette = gMonShinyPalette_Delcatty, + .iconSprite = gMonIcon_Delcatty, + .iconPalIndex = 2, + FOOTPRINT(Delcatty) + .levelUpLearnset = sDelcattyLevelUpLearnset, + .teachableLearnset = sDelcattyTeachableLearnset, }, #endif //P_FAMILY_SKITTY #if P_FAMILY_SABLEYE -#define SABLEYE_MISC_INFO \ - .types = { TYPE_DARK, TYPE_GHOST }, \ - .catchRate = 45, \ - .evYield_Attack = 1, \ - .evYield_Defense = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = 35, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE },\ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Sableye"), \ - .natDexNum = NATIONAL_DEX_SABLEYE, \ - .categoryName = _("Darkness"), \ - .height = 5, \ - .footprint = gMonFootprint_Sableye, \ - LEARNSETS(Sableye), \ - .formSpeciesIdTable = sSableyeFormSpeciesIdTable, \ - .formChangeTable = sSableyeFormChangeTable - [SPECIES_SABLEYE] = { - SABLEYE_MISC_INFO, .baseHP = 50, .baseAttack = 75, .baseDefense = 75, .baseSpeed = 50, .baseSpAttack = 65, .baseSpDefense = 65, - .expYield = 133, + .types = MON_TYPES(TYPE_DARK, TYPE_GHOST), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 133 : 98, + .evYield_Attack = 1, + .evYield_Defense = 1, + .itemRare = ITEM_WIDE_LENS, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_KEEN_EYE, ABILITY_STALL, ABILITY_PRANKSTER }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Sableye"), .cryId = CRY_SABLEYE, + .natDexNum = NATIONAL_DEX_SABLEYE, + .categoryName = _("Darkness"), + .height = 5, .weight = 110, .description = COMPOUND_STRING( "It digs branching holes in caves using its\n" @@ -2882,30 +3440,52 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sableye, 48, 48), + .frontPic = gMonFrontPic_Sableye, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Sableye, .frontAnimId = ANIM_GLOW_BLACK, - BACK_PIC(Sableye, 48, 48), + .backPic = gMonBackPic_Sableye, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Sableye), - ICON(Sableye, 2), + .palette = gMonPalette_Sableye, + .shinyPalette = gMonShinyPalette_Sableye, + .iconSprite = gMonIcon_Sableye, + .iconPalIndex = 2, + FOOTPRINT(Sableye) + .levelUpLearnset = sSableyeLevelUpLearnset, + .teachableLearnset = sSableyeTeachableLearnset, + .formSpeciesIdTable = sSableyeFormSpeciesIdTable, + .formChangeTable = sSableyeFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_SABLEYE_MEGA] = { - SABLEYE_MISC_INFO, .baseHP = 50, .baseAttack = 85, .baseDefense = 125, .baseSpeed = 20, .baseSpAttack = 85, .baseSpDefense = 115, + .types = MON_TYPES(TYPE_DARK, TYPE_GHOST), + .catchRate = 45, .expYield = 168, + .evYield_Attack = 1, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Sableye"), .cryId = CRY_SABLEYE_MEGA, + .natDexNum = NATIONAL_DEX_SABLEYE, + .categoryName = _("Darkness"), + .height = 5, .weight = 1610, .description = COMPOUND_STRING( "Bathed in the energy of Mega Evolution,\n" @@ -2915,16 +3495,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(SableyeMega, 64, 64), + .frontPic = gMonFrontPic_SableyeMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_SableyeMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SableyeMega, 64, 64), + .backPic = gMonBackPic_SableyeMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(SableyeMega), - ICON(SableyeMega, 2), + .palette = gMonPalette_SableyeMega, + .shinyPalette = gMonShinyPalette_SableyeMega, + .iconSprite = gMonIcon_SableyeMega, + .iconPalIndex = 2, + FOOTPRINT(Sableye) .isMegaEvolution = TRUE, + .levelUpLearnset = sSableyeLevelUpLearnset, + .teachableLearnset = sSableyeTeachableLearnset, + .formSpeciesIdTable = sSableyeFormSpeciesIdTable, + .formChangeTable = sSableyeFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_SABLEYE @@ -2936,37 +3525,31 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = #define MAWILE_TYPES { TYPE_STEEL, TYPE_STEEL } #endif -#define MAWILE_MISC_INFO \ - .types = MAWILE_TYPES, \ - .catchRate = 45, \ - .evYield_Attack = 1, \ - .evYield_Defense = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Mawile"), \ - .natDexNum = NATIONAL_DEX_MAWILE, \ - .categoryName = _("Deceiver"), \ - .footprint = gMonFootprint_Mawile, \ - LEARNSETS(Mawile), \ - .formSpeciesIdTable = sMawileFormSpeciesIdTable, \ - .formChangeTable = sMawileFormChangeTable - [SPECIES_MAWILE] = { - MAWILE_MISC_INFO, .baseHP = 50, .baseAttack = 85, .baseDefense = 85, .baseSpeed = 50, .baseSpAttack = 55, .baseSpDefense = 55, - .expYield = 133, + .types = MAWILE_TYPES, + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 133 : 98, + .evYield_Attack = 1, + .evYield_Defense = 1, + .itemRare = ITEM_IRON_BALL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_INTIMIDATE, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Mawile"), .cryId = CRY_MAWILE, + .natDexNum = NATIONAL_DEX_MAWILE, + .categoryName = _("Deceiver"), .height = 6, .weight = 115, .description = COMPOUND_STRING( @@ -2978,30 +3561,51 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mawile, 64, 48), + .frontPic = gMonFrontPic_Mawile, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Mawile, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Mawile, 64, 56), + .backPic = gMonBackPic_Mawile, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Mawile), - ICON(Mawile, 2), + .palette = gMonPalette_Mawile, + .shinyPalette = gMonShinyPalette_Mawile, + .iconSprite = gMonIcon_Mawile, + .iconPalIndex = 2, + FOOTPRINT(Mawile) + .levelUpLearnset = sMawileLevelUpLearnset, + .teachableLearnset = sMawileTeachableLearnset, + .formSpeciesIdTable = sMawileFormSpeciesIdTable, + .formChangeTable = sMawileFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_MAWILE_MEGA] = { - MAWILE_MISC_INFO, .baseHP = 50, .baseAttack = 105, .baseDefense = 125, .baseSpeed = 50, .baseSpAttack = 55, .baseSpDefense = 95, + .types = MAWILE_TYPES, + .catchRate = 45, .expYield = 168, + .evYield_Attack = 1, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_HUGE_POWER, ABILITY_HUGE_POWER, ABILITY_HUGE_POWER }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Mawile"), .cryId = CRY_MAWILE_MEGA, + .natDexNum = NATIONAL_DEX_MAWILE, + .categoryName = _("Deceiver"), .height = 10, .weight = 235, .description = COMPOUND_STRING( @@ -3013,16 +3617,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(MawileMega, 64, 64), + .frontPic = gMonFrontPic_MawileMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_MawileMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MawileMega, 64, 64), + .backPic = gMonBackPic_MawileMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(MawileMega), - ICON(MawileMega, 0), + .palette = gMonPalette_MawileMega, + .shinyPalette = gMonShinyPalette_MawileMega, + .iconSprite = gMonIcon_MawileMega, + .iconPalIndex = 0, + FOOTPRINT(Mawile) .isMegaEvolution = TRUE, + .levelUpLearnset = sMawileLevelUpLearnset, + .teachableLearnset = sMawileTeachableLearnset, + .formSpeciesIdTable = sMawileFormSpeciesIdTable, + .formChangeTable = sMawileFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_MAWILE @@ -3036,16 +3649,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 30, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_STEEL, TYPE_ROCK }, + .types = MON_TYPES(TYPE_STEEL, TYPE_ROCK), .catchRate = 180, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 96, .evYield_Defense = 1, .itemRare = ITEM_HARD_STONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 35, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_HEAVY_METAL }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Aron"), @@ -3063,17 +3676,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 23, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Aron, 32, 40), + .frontPic = gMonFrontPic_Aron, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Aron, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Aron, 48, 40), + .backPic = gMonBackPic_Aron, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Aron), - ICON(Aron, 2), - .footprint = gMonFootprint_Aron, - LEARNSETS(Aron), + .palette = gMonPalette_Aron, + .shinyPalette = gMonShinyPalette_Aron, + .iconSprite = gMonIcon_Aron, + .iconPalIndex = 2, + FOOTPRINT(Aron) + .levelUpLearnset = sAronLevelUpLearnset, + .teachableLearnset = sAronTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_LAIRON}), }, @@ -3085,16 +3703,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 40, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_STEEL, TYPE_ROCK }, + .types = MON_TYPES(TYPE_STEEL, TYPE_ROCK), .catchRate = 90, - .expYield = 151, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 151 : 152, .evYield_Defense = 2, .itemRare = ITEM_HARD_STONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 35, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_HEAVY_METAL }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Lairon"), @@ -3112,51 +3730,55 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lairon, 56, 48), + .frontPic = gMonFrontPic_Lairon, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Lairon, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Lairon, 64, 40), + .backPic = gMonBackPic_Lairon, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Lairon), - ICON(Lairon, 2), - .footprint = gMonFootprint_Lairon, - LEARNSETS(Lairon), + .palette = gMonPalette_Lairon, + .shinyPalette = gMonShinyPalette_Lairon, + .iconSprite = gMonIcon_Lairon, + .iconPalIndex = 2, + FOOTPRINT(Lairon) + .levelUpLearnset = sLaironLevelUpLearnset, + .teachableLearnset = sLaironTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_AGGRON}), }, -#define AGGRON_MISC_INFO \ - .catchRate = 45, \ - .evYield_Defense = 3, \ - .itemRare = ITEM_HARD_STONE, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 35, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Aggron"), \ - .natDexNum = NATIONAL_DEX_AGGRON, \ - .categoryName = _("Iron Armor"), \ - .footprint = gMonFootprint_Aggron, \ - LEARNSETS(Aggron), \ - .formSpeciesIdTable = sAggronFormSpeciesIdTable, \ - .formChangeTable = sAggronFormChangeTable - [SPECIES_AGGRON] = { - AGGRON_MISC_INFO, .baseHP = 70, .baseAttack = 110, .baseDefense = 180, .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_STEEL, TYPE_ROCK }, + .types = MON_TYPES(TYPE_STEEL, TYPE_ROCK), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 265, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 239, + #else + .expYield = 205, + #endif + .evYield_Defense = 3, + .itemRare = ITEM_HARD_STONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_HEAVY_METAL }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Aggron"), .cryId = CRY_AGGRON, + .natDexNum = NATIONAL_DEX_AGGRON, + .categoryName = _("Iron Armor"), .height = 21, .weight = 3600, .description = COMPOUND_STRING( @@ -3168,31 +3790,51 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -1, .trainerScale = 350, .trainerOffset = 6, - FRONT_PIC(Aggron, 64, 64), + .frontPic = gMonFrontPic_Aggron, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Aggron, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Aggron, 64, 56), + .backPic = gMonBackPic_Aggron, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Aggron), - ICON(Aggron, 2), + .palette = gMonPalette_Aggron, + .shinyPalette = gMonShinyPalette_Aggron, + .iconSprite = gMonIcon_Aggron, + .iconPalIndex = 2, + FOOTPRINT(Aggron) + .levelUpLearnset = sAggronLevelUpLearnset, + .teachableLearnset = sAggronTeachableLearnset, + .formSpeciesIdTable = sAggronFormSpeciesIdTable, + .formChangeTable = sAggronFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_AGGRON_MEGA] = { - AGGRON_MISC_INFO, .baseHP = 70, .baseAttack = 140, .baseDefense = 230, .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 80, - .types = { TYPE_STEEL, TYPE_STEEL }, - .expYield = 284, + .types = MON_TYPES(TYPE_STEEL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 315 : 284, + .evYield_Defense = 3, + .itemRare = ITEM_HARD_STONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_FILTER, ABILITY_FILTER, ABILITY_FILTER }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Aggron"), .cryId = CRY_AGGRON_MEGA, + .natDexNum = NATIONAL_DEX_AGGRON, + .categoryName = _("Iron Armor"), .height = 22, .weight = 3950, .description = COMPOUND_STRING( @@ -3204,16 +3846,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -1, .trainerScale = 350, .trainerOffset = 6, - FRONT_PIC(AggronMega, 64, 64), + .frontPic = gMonFrontPic_AggronMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_AggronMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(AggronMega, 64, 56), + .backPic = gMonBackPic_AggronMega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(AggronMega), - ICON(AggronMega, 2), + .palette = gMonPalette_AggronMega, + .shinyPalette = gMonShinyPalette_AggronMega, + .iconSprite = gMonIcon_AggronMega, + .iconPalIndex = 2, + FOOTPRINT(Aggron) .isMegaEvolution = TRUE, + .levelUpLearnset = sAggronLevelUpLearnset, + .teachableLearnset = sAggronTeachableLearnset, + .formSpeciesIdTable = sAggronFormSpeciesIdTable, + .formChangeTable = sAggronFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_ARON @@ -3227,15 +3878,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 60, .baseSpAttack = 40, .baseSpDefense = 55, - .types = { TYPE_FIGHTING, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_PSYCHIC), .catchRate = 180, - .expYield = 56, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 56 : 91, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PURE_POWER, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Meditite"), @@ -3253,104 +3904,141 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Meditite, 48, 48), - FRONT_PIC_FEMALE(Meditite, 48, 48), + .frontPic = gMonFrontPic_Meditite, + .frontPicFemale = gMonFrontPic_MedititeF, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Meditite, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, - BACK_PIC(Meditite, 48, 48), - BACK_PIC_FEMALE(Meditite, 48, 48), + .backPic = gMonBackPic_Meditite, + .backPicFemale = gMonBackPic_MedititeF, + .backPicSize = MON_COORDS_SIZE(48, 48), + .backPicSizeFemale = MON_COORDS_SIZE(48, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Meditite), - ICON(Meditite, 0), - .footprint = gMonFootprint_Meditite, - LEARNSETS(Meditite), + .palette = gMonPalette_Meditite, + .shinyPalette = gMonShinyPalette_Meditite, + .iconSprite = gMonIcon_Meditite, + .iconPalIndex = 0, + FOOTPRINT(Meditite) + .levelUpLearnset = sMedititeLevelUpLearnset, + .teachableLearnset = sMedititeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_MEDICHAM}), }, -#define MEDICHAM_MISC_INFO \ - .types = { TYPE_FIGHTING, TYPE_PSYCHIC }, \ - .catchRate = 90, \ - .evYield_Speed = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE },\ - .bodyColor = BODY_COLOR_RED, \ - .speciesName = _("Medicham"), \ - .natDexNum = NATIONAL_DEX_MEDICHAM, \ - .categoryName = _("Meditate"), \ - .height = 13, \ - .weight = 315, \ - .pokemonScale = 298, \ - .pokemonOffset = 5, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Medicham, \ - LEARNSETS(Medicham), \ - .formSpeciesIdTable = sMedichamFormSpeciesIdTable, \ - .formChangeTable = sMedichamFormChangeTable - [SPECIES_MEDICHAM] = { - MEDICHAM_MISC_INFO, .baseHP = 60, .baseAttack = 60, .baseDefense = 75, .baseSpeed = 80, .baseSpAttack = 60, .baseSpDefense = 75, - .expYield = 144, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_PSYCHIC), + .catchRate = 90, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 144 : 153, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PURE_POWER, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Medicham"), .cryId = CRY_MEDICHAM, + .natDexNum = NATIONAL_DEX_MEDICHAM, + .categoryName = _("Meditate"), + .height = 13, + .weight = 315, .description = COMPOUND_STRING( "Through crushingly harsh yoga training, it\n" "gained the power to foretell its foe's\n" "actions. It battles with elegant, dance-\n" "like movement."), - FRONT_PIC(Medicham, 40, 64), - FRONT_PIC_FEMALE(Medicham, 40, 64), + .pokemonScale = 298, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Medicham, + .frontPicFemale = gMonFrontPic_MedichamF, + .frontPicSize = MON_COORDS_SIZE(40, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Medicham, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Medicham, 56, 64), - BACK_PIC_FEMALE(Medicham, 56, 64), + .backPic = gMonBackPic_Medicham, + .backPicFemale = gMonBackPic_MedichamF, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Medicham), - ICON(Medicham, 0), + .palette = gMonPalette_Medicham, + .shinyPalette = gMonShinyPalette_Medicham, + .iconSprite = gMonIcon_Medicham, + .iconPalIndex = 0, + FOOTPRINT(Medicham) + .levelUpLearnset = sMedichamLevelUpLearnset, + .teachableLearnset = sMedichamTeachableLearnset, + .formSpeciesIdTable = sMedichamFormSpeciesIdTable, + .formChangeTable = sMedichamFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_MEDICHAM_MEGA] = { - MEDICHAM_MISC_INFO, .baseHP = 60, .baseAttack = 100, .baseDefense = 85, .baseSpeed = 100, .baseSpAttack = 80, .baseSpDefense = 85, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_PSYCHIC), + .catchRate = 90, .expYield = 179, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PURE_POWER, ABILITY_PURE_POWER, ABILITY_PURE_POWER }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Medicham"), .cryId = CRY_MEDICHAM_MEGA, + .natDexNum = NATIONAL_DEX_MEDICHAM, + .categoryName = _("Meditate"), + .height = 13, + .weight = 315, .description = COMPOUND_STRING( "It uses its amped-up willpower to create\n" "additional arms for itself. The more it has\n" "trained its spirit, the more realistic and\n" "dexterous these self-created arms become."), - FRONT_PIC(MedichamMega, 64, 64), + .pokemonScale = 298, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MedichamMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_MedichamMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MedichamMega, 64, 64), + .backPic = gMonBackPic_MedichamMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(MedichamMega), - ICON(MedichamMega, 0), + .palette = gMonPalette_MedichamMega, + .shinyPalette = gMonShinyPalette_MedichamMega, + .iconSprite = gMonIcon_MedichamMega, + .iconPalIndex = 0, + FOOTPRINT(Medicham) .isMegaEvolution = TRUE, + .levelUpLearnset = sMedichamLevelUpLearnset, + .teachableLearnset = sMedichamTeachableLearnset, + .formSpeciesIdTable = sMedichamFormSpeciesIdTable, + .formChangeTable = sMedichamFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_MEDITITE @@ -3364,15 +4052,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = 65, .baseSpDefense = 40, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 120, - .expYield = 59, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 59 : 104, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STATIC, ABILITY_LIGHTNING_ROD, ABILITY_MINUS }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Electrike"), @@ -3390,50 +4078,48 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Electrike, 48, 40), + .frontPic = gMonFrontPic_Electrike, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Electrike, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Electrike, 56, 40), + .backPic = gMonBackPic_Electrike, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Electrike), - ICON(Electrike, 1), - .footprint = gMonFootprint_Electrike, - LEARNSETS(Electrike), + .palette = gMonPalette_Electrike, + .shinyPalette = gMonShinyPalette_Electrike, + .iconSprite = gMonIcon_Electrike, + .iconPalIndex = 1, + FOOTPRINT(Electrike) + .levelUpLearnset = sElectrikeLevelUpLearnset, + .teachableLearnset = sElectrikeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_MANECTRIC}), }, -#define MANECTRIC_MISC_INFO \ - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, \ - .catchRate = 45, \ - .evYield_Speed = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Manectric"), \ - .natDexNum = NATIONAL_DEX_MANECTRIC, \ - .categoryName = _("Discharge"), \ - .footprint = gMonFootprint_Manectric, \ - LEARNSETS(Manectric), \ - .formSpeciesIdTable = sManectricFormSpeciesIdTable, \ - .formChangeTable = sManectricFormChangeTable - [SPECIES_MANECTRIC] = { - MANECTRIC_MISC_INFO, .baseHP = 70, .baseAttack = 75, .baseDefense = 60, .baseSpeed = 105, .baseSpAttack = 105, .baseSpDefense = 60, - .expYield = 166, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 168, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STATIC, ABILITY_LIGHTNING_ROD, ABILITY_MINUS }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Manectric"), .cryId = CRY_MANECTRIC, + .natDexNum = NATIONAL_DEX_MANECTRIC, + .categoryName = _("Discharge"), .height = 15, .weight = 402, .description = COMPOUND_STRING( @@ -3445,30 +4131,50 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Manectric, 56, 64), + .frontPic = gMonFrontPic_Manectric, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Manectric, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Manectric, 56, 64), + .backPic = gMonBackPic_Manectric, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Manectric), - ICON(Manectric, 0), + .palette = gMonPalette_Manectric, + .shinyPalette = gMonShinyPalette_Manectric, + .iconSprite = gMonIcon_Manectric, + .iconPalIndex = 0, + FOOTPRINT(Manectric) + .levelUpLearnset = sManectricLevelUpLearnset, + .teachableLearnset = sManectricTeachableLearnset, + .formSpeciesIdTable = sManectricFormSpeciesIdTable, + .formChangeTable = sManectricFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_MANECTRIC_MEGA] = { - MANECTRIC_MISC_INFO, .baseHP = 70, .baseAttack = 75, .baseDefense = 80, .baseSpeed = 135, .baseSpAttack = 135, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_ELECTRIC), + .catchRate = 45, .expYield = 201, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_INTIMIDATE, ABILITY_INTIMIDATE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Manectric"), .cryId = CRY_MANECTRIC_MEGA, + .natDexNum = NATIONAL_DEX_MANECTRIC, + .categoryName = _("Discharge"), .height = 18, .weight = 440, .description = COMPOUND_STRING( @@ -3479,16 +4185,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(ManectricMega, 64, 64), + .frontPic = gMonFrontPic_ManectricMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_ManectricMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ManectricMega, 64, 64), + .backPic = gMonBackPic_ManectricMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(ManectricMega), - ICON(ManectricMega, 0), + .palette = gMonPalette_ManectricMega, + .shinyPalette = gMonShinyPalette_ManectricMega, + .iconSprite = gMonIcon_ManectricMega, + .iconPalIndex = 0, + FOOTPRINT(Manectric) .isMegaEvolution = TRUE, + .levelUpLearnset = sManectricLevelUpLearnset, + .teachableLearnset = sManectricTeachableLearnset, + .formSpeciesIdTable = sManectricFormSpeciesIdTable, + .formChangeTable = sManectricFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_ELECTRIKE @@ -3502,15 +4217,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 95, .baseSpAttack = 85, .baseSpDefense = 75, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 200, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 120, .evYield_Speed = 1, + .itemRare = ITEM_CELL_BATTERY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_PLUS, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Plusle"), @@ -3528,17 +4244,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Plusle, 40, 48), + .frontPic = gMonFrontPic_Plusle, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Plusle, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, - BACK_PIC(Plusle, 56, 64), + .backPic = gMonBackPic_Plusle, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Plusle), - ICON(Plusle, 0), - .footprint = gMonFootprint_Plusle, - LEARNSETS(Plusle), + .palette = gMonPalette_Plusle, + .shinyPalette = gMonShinyPalette_Plusle, + .iconSprite = gMonIcon_Plusle, + .iconPalIndex = 0, + FOOTPRINT(Plusle) + .levelUpLearnset = sPlusleLevelUpLearnset, + .teachableLearnset = sPlusleTeachableLearnset, }, #endif //P_FAMILY_PLUSLE @@ -3551,15 +4272,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 95, .baseSpAttack = 75, .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 200, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 120, .evYield_Speed = 1, + .itemRare = ITEM_CELL_BATTERY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_MINUS, ABILITY_NONE, ABILITY_VOLT_ABSORB }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Minun"), @@ -3577,17 +4299,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Minun, 40, 48), + .frontPic = gMonFrontPic_Minun, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Minun, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, - BACK_PIC(Minun, 48, 64), + .backPic = gMonBackPic_Minun, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Minun), - ICON(Minun, 0), - .footprint = gMonFootprint_Minun, - LEARNSETS(Minun), + .palette = gMonPalette_Minun, + .shinyPalette = gMonShinyPalette_Minun, + .iconSprite = gMonIcon_Minun, + .iconPalIndex = 0, + FOOTPRINT(Minun) + .levelUpLearnset = sMinunLevelUpLearnset, + .teachableLearnset = sMinunTeachableLearnset, }, #endif //P_FAMILY_MINUN @@ -3596,25 +4323,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = { .baseHP = 65, .baseAttack = 73, + .baseDefense = P_UPDATED_STATS >= GEN_7 ? 75 : 55, .baseSpeed = 85, .baseSpAttack = 47, - #if P_UPDATED_STATS >= GEN_7 - .baseDefense = 75, - .baseSpDefense = 85, - #else - .baseDefense = 55, - .baseSpDefense = 75, - #endif - .types = { TYPE_BUG, TYPE_BUG }, + .baseSpDefense = P_UPDATED_STATS >= GEN_7 ? 85 : 75, + .types = MON_TYPES(TYPE_BUG), .catchRate = 150, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 151, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 140, + #else + .expYield = 146, + #endif .evYield_Speed = 1, .itemRare = ITEM_BRIGHT_POWDER, .genderRatio = MON_MALE, .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_ILLUMINATE, ABILITY_SWARM, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Volbeat"), @@ -3632,42 +4360,48 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Volbeat, 48, 56), + .frontPic = gMonFrontPic_Volbeat, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Volbeat, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Volbeat, 48, 64), + .backPic = gMonBackPic_Volbeat, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Volbeat), - ICON(Volbeat, 0), - .footprint = gMonFootprint_Volbeat, - LEARNSETS(Volbeat), + .palette = gMonPalette_Volbeat, + .shinyPalette = gMonShinyPalette_Volbeat, + .iconSprite = gMonIcon_Volbeat, + .iconPalIndex = 0, + FOOTPRINT(Volbeat) + .levelUpLearnset = sVolbeatLevelUpLearnset, + .teachableLearnset = sVolbeatTeachableLearnset, }, [SPECIES_ILLUMISE] = { .baseHP = 65, .baseAttack = 47, + .baseDefense = P_UPDATED_STATS >= GEN_7 ? 75 : 55, .baseSpeed = 85, .baseSpAttack = 73, - #if P_UPDATED_STATS >= GEN_7 - .baseDefense = 75, - .baseSpDefense = 85, - #else - .baseDefense = 55, - .baseSpDefense = 75, - #endif - .types = { TYPE_BUG, TYPE_BUG }, + .baseSpDefense = P_UPDATED_STATS >= GEN_7 ? 85 : 75, + .types = MON_TYPES(TYPE_BUG), .catchRate = 150, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 151, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 140, + #else + .expYield = 146, + #endif .evYield_Speed = 1, .itemRare = ITEM_BRIGHT_POWDER, .genderRatio = MON_FEMALE, .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_OBLIVIOUS, ABILITY_TINTED_LENS, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Illumise"), @@ -3685,17 +4419,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Illumise, 40, 48), + .frontPic = gMonFrontPic_Illumise, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Illumise, .frontAnimId = ANIM_RISING_WOBBLE, - BACK_PIC(Illumise, 48, 56), + .backPic = gMonBackPic_Illumise, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Illumise), - ICON(Illumise, 2), - .footprint = gMonFootprint_Illumise, - LEARNSETS(Illumise), + .palette = gMonPalette_Illumise, + .shinyPalette = gMonShinyPalette_Illumise, + .iconSprite = gMonIcon_Illumise, + .iconPalIndex = 2, + FOOTPRINT(Illumise) + .levelUpLearnset = sIllumiseLevelUpLearnset, + .teachableLearnset = sIllumiseTeachableLearnset, }, #endif //P_FAMILY_VOLBEAT_ILLUMISE @@ -3709,16 +4448,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 55, .baseSpAttack = 50, .baseSpDefense = 70, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 255, - .expYield = 56, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 56 : 68, .evYield_SpAttack = 1, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_LEAF_GUARD }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -3737,17 +4476,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Budew, 32, 40), + .frontPic = gMonFrontPic_Budew, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Budew, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Budew, 40, 56), + .backPic = gMonBackPic_Budew, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Budew), - ICON(Budew, 1), - .footprint = gMonFootprint_Budew, - LEARNSETS(Budew), + .palette = gMonPalette_Budew, + .shinyPalette = gMonShinyPalette_Budew, + .iconSprite = gMonIcon_Budew, + .iconPalIndex = 1, + FOOTPRINT(Budew) + .levelUpLearnset = sBudewLevelUpLearnset, + .teachableLearnset = sBudewTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP_DAY, 0, SPECIES_ROSELIA}), }, #endif //P_GEN_4_CROSS_EVOS @@ -3760,16 +4504,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = 100, .baseSpDefense = 80, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 150, - .expYield = 140, - .evYield_SpAttack = 2, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 140 : 152, + .evYield_SpAttack = (P_UPDATED_EVS >= GEN_4) ? 2 : 1, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), .abilities = { ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_LEAF_GUARD }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -3788,20 +4532,27 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Roselia, 56, 48), - FRONT_PIC_FEMALE(Roselia, 56, 48), + .frontPic = gMonFrontPic_Roselia, + .frontPicFemale = gMonFrontPic_RoseliaF, + .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Roselia, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Roselia, 64, 56), - BACK_PIC_FEMALE(Roselia, 64, 56), + .backPic = gMonBackPic_Roselia, + .backPicFemale = gMonBackPic_RoseliaF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, - PALETTES(Roselia), - ICON(Roselia, 4), - .footprint = gMonFootprint_Roselia, - LEARNSETS(Roselia), - .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_ROSERADE}), + .palette = gMonPalette_Roselia, + .shinyPalette = gMonShinyPalette_Roselia, + .iconSprite = gMonIcon_Roselia, + .iconPalIndex = 4, + FOOTPRINT(Roselia) + .levelUpLearnset = sRoseliaLevelUpLearnset, + .teachableLearnset = sRoseliaTeachableLearnset, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_SHINY_STONE, SPECIES_ROSERADE}), }, #if P_GEN_4_CROSS_EVOS @@ -3813,16 +4564,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 90, .baseSpAttack = 125, .baseSpDefense = 105, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 75, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 258, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 232, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 227, + #else + .expYield = 204, + #endif .evYield_SpAttack = 3, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), .abilities = { ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -3841,19 +4600,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Roserade, 48, 56), - FRONT_PIC_FEMALE(Roserade, 48, 56), + .frontPic = gMonFrontPic_Roserade, + .frontPicFemale = gMonFrontPic_RoseradeF, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Roserade, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Roserade, 64, 56), - BACK_PIC_FEMALE(Roserade, 64, 56), + .backPic = gMonBackPic_Roserade, + .backPicFemale = gMonBackPic_RoseradeF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Roserade), - ICON(Roserade, 0), - .footprint = gMonFootprint_Roserade, - LEARNSETS(Roserade), + .palette = gMonPalette_Roserade, + .shinyPalette = gMonShinyPalette_Roserade, + .iconSprite = gMonIcon_Roserade, + .iconPalIndex = 0, + FOOTPRINT(Roserade) + .levelUpLearnset = sRoseradeLevelUpLearnset, + .teachableLearnset = sRoseradeTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_ROSELIA @@ -3867,9 +4633,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 40, .baseSpAttack = 43, .baseSpDefense = 53, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 225, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 75, .evYield_HP = 1, .itemCommon = ITEM_ORAN_BERRY, .itemRare = ITEM_SITRUS_BERRY, @@ -3877,7 +4643,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_LIQUID_OOZE, ABILITY_STICKY_HOLD, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Gulpin"), @@ -3895,19 +4661,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 23, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gulpin, 40, 48), - FRONT_PIC_FEMALE(Gulpin, 40, 48), + .frontPic = gMonFrontPic_Gulpin, + .frontPicFemale = gMonFrontPic_GulpinF, + .frontPicSize = MON_COORDS_SIZE(40, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Gulpin, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Gulpin, 56, 48), - BACK_PIC_FEMALE(Gulpin, 56, 48), + .backPic = gMonBackPic_Gulpin, + .backPicFemale = gMonBackPic_GulpinF, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Gulpin), - ICON(Gulpin, 1), - .footprint = gMonFootprint_Gulpin, - LEARNSETS(Gulpin), + .palette = gMonPalette_Gulpin, + .shinyPalette = gMonShinyPalette_Gulpin, + .iconSprite = gMonIcon_Gulpin, + .iconPalIndex = 1, + FOOTPRINT(Gulpin) + .levelUpLearnset = sGulpinLevelUpLearnset, + .teachableLearnset = sGulpinTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_SWALOT}), }, @@ -3919,9 +4692,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 55, .baseSpAttack = 73, .baseSpDefense = 83, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 75, - .expYield = 163, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 163 : 168, .evYield_HP = 2, .itemCommon = ITEM_ORAN_BERRY, .itemRare = ITEM_SITRUS_BERRY, @@ -3929,7 +4702,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_LIQUID_OOZE, ABILITY_STICKY_HOLD, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Swalot"), @@ -3947,19 +4720,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 6, .trainerScale = 345, .trainerOffset = 3, - FRONT_PIC(Swalot, 56, 56), - FRONT_PIC_FEMALE(Swalot, 56, 56), + .frontPic = gMonFrontPic_Swalot, + .frontPicFemale = gMonFrontPic_SwalotF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Swalot, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Swalot, 64, 64), - BACK_PIC_FEMALE(Swalot, 64, 64), + .backPic = gMonBackPic_Swalot, + .backPicFemale = gMonBackPic_SwalotF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Swalot), - ICON(Swalot, 2), - .footprint = gMonFootprint_Swalot, - LEARNSETS(Swalot), + .palette = gMonPalette_Swalot, + .shinyPalette = gMonShinyPalette_Swalot, + .iconSprite = gMonIcon_Swalot, + .iconPalIndex = 2, + FOOTPRINT(Swalot) + .levelUpLearnset = sSwalotLevelUpLearnset, + .teachableLearnset = sSwalotTeachableLearnset, }, #endif //P_FAMILY_GULPIN @@ -3972,16 +4752,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = 65, .baseSpDefense = 20, - .types = { TYPE_WATER, TYPE_DARK }, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), .catchRate = 225, - .expYield = 61, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 61 : 88, .evYield_Attack = 1, .itemRare = ITEM_DEEP_SEA_TOOTH, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_ROUGH_SKIN, ABILITY_NONE, ABILITY_SPEED_BOOST }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Carvanha"), @@ -3999,51 +4779,49 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Carvanha, 48, 56), + .frontPic = gMonFrontPic_Carvanha, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Carvanha, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - BACK_PIC(Carvanha, 64, 48), + .backPic = gMonBackPic_Carvanha, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SPRING_REPEATED, - PALETTES(Carvanha), - ICON(Carvanha, 0), - .footprint = gMonFootprint_Carvanha, - LEARNSETS(Carvanha), + .palette = gMonPalette_Carvanha, + .shinyPalette = gMonShinyPalette_Carvanha, + .iconSprite = gMonIcon_Carvanha, + .iconPalIndex = 0, + FOOTPRINT(Carvanha) + .levelUpLearnset = sCarvanhaLevelUpLearnset, + .teachableLearnset = sCarvanhaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_SHARPEDO}), }, -#define SHARPEDO_MISC_INFO \ - .types = { TYPE_WATER, TYPE_DARK }, \ - .catchRate = 60, \ - .evYield_Attack = 2, \ - .itemRare = ITEM_DEEP_SEA_TOOTH, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Sharpedo"), \ - .natDexNum = NATIONAL_DEX_SHARPEDO, \ - .categoryName = _("Brutal"), \ - .footprint = gMonFootprint_Sharpedo, \ - LEARNSETS(Sharpedo), \ - .formSpeciesIdTable = sSharpedoFormSpeciesIdTable, \ - .formChangeTable = sSharpedoFormChangeTable - [SPECIES_SHARPEDO] = { - SHARPEDO_MISC_INFO, .baseHP = 70, .baseAttack = 120, .baseDefense = 40, .baseSpeed = 95, .baseSpAttack = 95, .baseSpDefense = 40, - .expYield = 161, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 161 : 175, + .evYield_Attack = 2, + .itemRare = ITEM_DEEP_SEA_TOOTH, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_ROUGH_SKIN, ABILITY_NONE, ABILITY_SPEED_BOOST }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Sharpedo"), .cryId = CRY_SHARPEDO, + .natDexNum = NATIONAL_DEX_SHARPEDO, + .categoryName = _("Brutal"), .height = 18, .weight = 888, .description = COMPOUND_STRING( @@ -4055,30 +4833,51 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 317, .trainerOffset = 3, - FRONT_PIC(Sharpedo, 64, 64), + .frontPic = gMonFrontPic_Sharpedo, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Sharpedo, .frontAnimId = ANIM_H_JUMPS_V_STRETCH_TWICE, - BACK_PIC(Sharpedo, 64, 64), + .backPic = gMonBackPic_Sharpedo, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Sharpedo), - ICON(Sharpedo, 0), + .palette = gMonPalette_Sharpedo, + .shinyPalette = gMonShinyPalette_Sharpedo, + .iconSprite = gMonIcon_Sharpedo, + .iconPalIndex = 0, + FOOTPRINT(Sharpedo) + .levelUpLearnset = sSharpedoLevelUpLearnset, + .teachableLearnset = sSharpedoTeachableLearnset, + .formSpeciesIdTable = sSharpedoFormSpeciesIdTable, + .formChangeTable = sSharpedoFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_SHARPEDO_MEGA] = { - SHARPEDO_MISC_INFO, .baseHP = 70, .baseAttack = 140, .baseDefense = 70, .baseSpeed = 105, .baseSpAttack = 110, .baseSpDefense = 65, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), + .catchRate = 60, .expYield = 196, + .evYield_Attack = 2, + .itemRare = ITEM_DEEP_SEA_TOOTH, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_STRONG_JAW, ABILITY_STRONG_JAW, ABILITY_STRONG_JAW }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Sharpedo"), .cryId = CRY_SHARPEDO_MEGA, + .natDexNum = NATIONAL_DEX_SHARPEDO, + .categoryName = _("Brutal"), .height = 25, .weight = 1303, .description = COMPOUND_STRING( @@ -4090,17 +4889,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 317, .trainerOffset = 3, - FRONT_PIC(SharpedoMega, 64, 64), + .frontPic = gMonFrontPic_SharpedoMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_SharpedoMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 1, - BACK_PIC(SharpedoMega, 64, 64), + .backPic = gMonBackPic_SharpedoMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(SharpedoMega), - ICON(SharpedoMega, 0), + .palette = gMonPalette_SharpedoMega, + .shinyPalette = gMonShinyPalette_SharpedoMega, + .iconSprite = gMonIcon_SharpedoMega, + .iconPalIndex = 0, + FOOTPRINT(Sharpedo) .isMegaEvolution = TRUE, + .levelUpLearnset = sSharpedoLevelUpLearnset, + .teachableLearnset = sSharpedoTeachableLearnset, + .formSpeciesIdTable = sSharpedoFormSpeciesIdTable, + .formChangeTable = sSharpedoFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_CARVANHA @@ -4114,15 +4922,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 60, .baseSpAttack = 70, .baseSpDefense = 35, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 125, - .expYield = 80, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 80 : 137, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_WATER_2), .abilities = { ABILITY_WATER_VEIL, ABILITY_OBLIVIOUS, ABILITY_PRESSURE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Wailmer"), @@ -4140,17 +4948,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 2, .trainerScale = 493, .trainerOffset = 0, - FRONT_PIC(Wailmer, 64, 48), + .frontPic = gMonFrontPic_Wailmer, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Wailmer, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Wailmer, 64, 48), + .backPic = gMonBackPic_Wailmer, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Wailmer), - ICON(Wailmer, 2), - .footprint = gMonFootprint_Wailmer, - LEARNSETS(Wailmer), + .palette = gMonPalette_Wailmer, + .shinyPalette = gMonShinyPalette_Wailmer, + .iconSprite = gMonIcon_Wailmer, + .iconPalIndex = 2, + FOOTPRINT(Wailmer) + .levelUpLearnset = sWailmerLevelUpLearnset, + .teachableLearnset = sWailmerTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_WAILORD}), }, @@ -4162,15 +4975,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 60, .baseSpAttack = 90, .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 60, - .expYield = 175, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 206, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_WATER_2), .abilities = { ABILITY_WATER_VEIL, ABILITY_OBLIVIOUS, ABILITY_PRESSURE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Wailord"), @@ -4188,18 +5001,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 1352, .trainerOffset = 18, - FRONT_PIC(Wailord, 64, 56), + .frontPic = gMonFrontPic_Wailord, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Wailord, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .frontAnimDelay = 10, - BACK_PIC(Wailord, 64, 40), + .backPic = gMonBackPic_Wailord, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Wailord), - ICON(Wailord, 0), - .footprint = gMonFootprint_Wailord, - LEARNSETS(Wailord), + .palette = gMonPalette_Wailord, + .shinyPalette = gMonShinyPalette_Wailord, + .iconSprite = gMonIcon_Wailord, + .iconPalIndex = 0, + FOOTPRINT(Wailord) + .levelUpLearnset = sWailordLevelUpLearnset, + .teachableLearnset = sWailordTeachableLearnset, }, #endif //P_FAMILY_WAILMER @@ -4212,15 +5030,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 35, .baseSpAttack = 65, .baseSpDefense = 45, - .types = { TYPE_FIRE, TYPE_GROUND }, + .types = MON_TYPES(TYPE_FIRE, TYPE_GROUND), .catchRate = 255, - .expYield = 61, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 61 : 88, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OBLIVIOUS, ABILITY_SIMPLE, ABILITY_OWN_TEMPO }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Numel"), @@ -4238,53 +5056,53 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Numel, 40, 48), - FRONT_PIC_FEMALE(Numel, 40, 48), + .frontPic = gMonFrontPic_Numel, + .frontPicFemale = gMonFrontPic_NumelF, + .frontPicSize = MON_COORDS_SIZE(40, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Numel, .frontAnimId = ANIM_V_SLIDE, - BACK_PIC(Numel, 56, 56), - BACK_PIC_FEMALE(Numel, 56, 56), + .backPic = gMonBackPic_Numel, + .backPicFemale = gMonBackPic_NumelF, + .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Numel), - ICON(Numel, 1), - .footprint = gMonFootprint_Numel, - LEARNSETS(Numel), + .palette = gMonPalette_Numel, + .shinyPalette = gMonShinyPalette_Numel, + .iconSprite = gMonIcon_Numel, + .iconPalIndex = 1, + FOOTPRINT(Numel) + .levelUpLearnset = sNumelLevelUpLearnset, + .teachableLearnset = sNumelTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_CAMERUPT}), }, -#define CAMERUPT_MISC_INFO \ - .types = { TYPE_FIRE, TYPE_GROUND }, \ - .catchRate = 150, \ - .evYield_Attack = 1, \ - .evYield_SpAttack = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_RED, \ - .speciesName = _("Camerupt"), \ - .natDexNum = NATIONAL_DEX_CAMERUPT, \ - .categoryName = _("Eruption"), \ - .footprint = gMonFootprint_Camerupt, \ - LEARNSETS(Camerupt), \ - .formSpeciesIdTable = sCameruptFormSpeciesIdTable, \ - .formChangeTable = sCameruptFormChangeTable - [SPECIES_CAMERUPT] = { - CAMERUPT_MISC_INFO, .baseHP = 70, .baseAttack = 100, .baseDefense = 70, .baseSpeed = 40, .baseSpAttack = 105, .baseSpDefense = 75, - .expYield = 161, + .types = MON_TYPES(TYPE_FIRE, TYPE_GROUND), + .catchRate = 150, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 161 : 175, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_MAGMA_ARMOR, ABILITY_SOLID_ROCK, ABILITY_ANGER_POINT }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Camerupt"), .cryId = CRY_CAMERUPT, + .natDexNum = NATIONAL_DEX_CAMERUPT, + .categoryName = _("Eruption"), .height = 19, .weight = 2200, .description = COMPOUND_STRING( @@ -4296,32 +5114,55 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 7, .trainerScale = 345, .trainerOffset = 6, - FRONT_PIC(Camerupt, 64, 56), - FRONT_PIC_FEMALE(Camerupt, 64, 56), + .frontPic = gMonFrontPic_Camerupt, + .frontPicFemale = gMonFrontPic_CameruptF, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Camerupt, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Camerupt, 64, 40), - BACK_PIC_FEMALE(Camerupt, 64, 40), + .backPic = gMonBackPic_Camerupt, + .backPicFemale = gMonBackPic_CameruptF, + .backPicSize = MON_COORDS_SIZE(64, 40), + .backPicSizeFemale = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Camerupt), - ICON(Camerupt, 0), + .palette = gMonPalette_Camerupt, + .shinyPalette = gMonShinyPalette_Camerupt, + .iconSprite = gMonIcon_Camerupt, + .iconPalIndex = 0, + FOOTPRINT(Camerupt) + .levelUpLearnset = sCameruptLevelUpLearnset, + .teachableLearnset = sCameruptTeachableLearnset, + .formSpeciesIdTable = sCameruptFormSpeciesIdTable, + .formChangeTable = sCameruptFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_CAMERUPT_MEGA] = { - CAMERUPT_MISC_INFO, .baseHP = 70, .baseAttack = 120, .baseDefense = 100, .baseSpeed = 20, .baseSpAttack = 145, .baseSpDefense = 105, + .types = MON_TYPES(TYPE_FIRE, TYPE_GROUND), + .catchRate = 150, .expYield = 196, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SHEER_FORCE, ABILITY_SHEER_FORCE, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Camerupt"), .cryId = CRY_CAMERUPT_MEGA, + .natDexNum = NATIONAL_DEX_CAMERUPT, + .categoryName = _("Eruption"), .height = 25, .weight = 3205, .description = COMPOUND_STRING( @@ -4333,16 +5174,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 7, .trainerScale = 345, .trainerOffset = 6, - FRONT_PIC(CameruptMega, 64, 64), + .frontPic = gMonFrontPic_CameruptMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_CameruptMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CameruptMega, 64, 64), + .backPic = gMonBackPic_CameruptMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(CameruptMega), - ICON(CameruptMega, 0), + .palette = gMonPalette_CameruptMega, + .shinyPalette = gMonShinyPalette_CameruptMega, + .iconSprite = gMonIcon_CameruptMega, + .iconPalIndex = 0, + FOOTPRINT(Camerupt) .isMegaEvolution = TRUE, + .levelUpLearnset = sCameruptLevelUpLearnset, + .teachableLearnset = sCameruptTeachableLearnset, + .formSpeciesIdTable = sCameruptFormSpeciesIdTable, + .formChangeTable = sCameruptFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_NUMEL @@ -4356,16 +5206,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 20, .baseSpAttack = 85, .baseSpDefense = 70, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 90, - .expYield = 165, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 165 : 161, .evYield_Defense = 2, .itemRare = ITEM_CHARCOAL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_WHITE_SMOKE, ABILITY_DROUGHT, ABILITY_SHELL_ARMOR }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Torkoal"), @@ -4383,17 +5233,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Torkoal, 64, 64), + .frontPic = gMonFrontPic_Torkoal, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Torkoal, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Torkoal, 64, 48), + .backPic = gMonBackPic_Torkoal, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Torkoal), - ICON(Torkoal, 2), - .footprint = gMonFootprint_Torkoal, - LEARNSETS(Torkoal), + .palette = gMonPalette_Torkoal, + .shinyPalette = gMonShinyPalette_Torkoal, + .iconSprite = gMonIcon_Torkoal, + .iconPalIndex = 2, + FOOTPRINT(Torkoal) + .levelUpLearnset = sTorkoalLevelUpLearnset, + .teachableLearnset = sTorkoalTeachableLearnset, }, #endif //P_FAMILY_TORKOAL @@ -4406,15 +5261,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 60, .baseSpAttack = 70, .baseSpDefense = 80, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 255, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 89, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_OWN_TEMPO, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Spoink"), @@ -4432,17 +5287,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Spoink, 32, 48), + .frontPic = gMonFrontPic_Spoink, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Spoink, .frontAnimId = ANIM_H_JUMPS_V_STRETCH_TWICE, - BACK_PIC(Spoink, 40, 64), + .backPic = gMonBackPic_Spoink, + .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Spoink), - ICON(Spoink, 0), - .footprint = gMonFootprint_Spoink, - LEARNSETS(Spoink), + .palette = gMonPalette_Spoink, + .shinyPalette = gMonShinyPalette_Spoink, + .iconSprite = gMonIcon_Spoink, + .iconPalIndex = 0, + FOOTPRINT(Spoink) + .levelUpLearnset = sSpoinkLevelUpLearnset, + .teachableLearnset = sSpoinkTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_GRUMPIG}), }, @@ -4454,15 +5314,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 80, .baseSpAttack = 90, .baseSpDefense = 110, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 60, - .expYield = 165, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 165 : 164, .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_OWN_TEMPO, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Grumpig"), @@ -4480,18 +5340,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Grumpig, 56, 64), + .frontPic = gMonFrontPic_Grumpig, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Grumpig, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .frontAnimDelay = 15, - BACK_PIC(Grumpig, 64, 64), + .backPic = gMonBackPic_Grumpig, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Grumpig), - ICON(Grumpig, 2), - .footprint = gMonFootprint_Grumpig, - LEARNSETS(Grumpig), + .palette = gMonPalette_Grumpig, + .shinyPalette = gMonShinyPalette_Grumpig, + .iconSprite = gMonIcon_Grumpig, + .iconPalIndex = 2, + FOOTPRINT(Grumpig) + .levelUpLearnset = sGrumpigLevelUpLearnset, + .teachableLearnset = sGrumpigTeachableLearnset, }, #endif //P_FAMILY_SPOINK @@ -4504,15 +5369,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 60, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, - .expYield = 126, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 126 : 85, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_OWN_TEMPO, ABILITY_TANGLED_FEET, ABILITY_CONTRARY }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -4531,17 +5396,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Spinda, 48, 64), + .frontPic = gMonFrontPic_Spinda, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Spinda, .frontAnimId = ANIM_CIRCLE_INTO_BG, - BACK_PIC(Spinda, 56, 56), + .backPic = gMonBackPic_Spinda, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - PALETTES(Spinda), - ICON(Spinda, 1), - .footprint = gMonFootprint_Spinda, - LEARNSETS(Spinda), + .palette = gMonPalette_Spinda, + .shinyPalette = gMonShinyPalette_Spinda, + .iconSprite = gMonIcon_Spinda, + .iconPalIndex = 1, + FOOTPRINT(Spinda) + .levelUpLearnset = sSpindaLevelUpLearnset, + .teachableLearnset = sSpindaTeachableLearnset, }, #endif //P_FAMILY_SPINDA @@ -4554,20 +5424,20 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 10, .baseSpAttack = 45, .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 255, - .expYield = 58, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 73, .evYield_Attack = 1, .itemRare = ITEM_SOFT_SAND, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_DRAGON }, - #else - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - #endif + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_DRAGON), + #else + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + #endif .abilities = { ABILITY_HYPER_CUTTER, ABILITY_ARENA_TRAP, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Trapinch"), @@ -4585,17 +5455,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Trapinch, 40, 40), + .frontPic = gMonFrontPic_Trapinch, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Trapinch, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Trapinch, 48, 48), + .backPic = gMonBackPic_Trapinch, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Trapinch), - ICON(Trapinch, 0), - .footprint = gMonFootprint_Trapinch, - LEARNSETS(Trapinch), + .palette = gMonPalette_Trapinch, + .shinyPalette = gMonShinyPalette_Trapinch, + .iconSprite = gMonIcon_Trapinch, + .iconPalIndex = 0, + FOOTPRINT(Trapinch) + .levelUpLearnset = sTrapinchLevelUpLearnset, + .teachableLearnset = sTrapinchTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_VIBRAVA}), }, @@ -4607,20 +5482,20 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 70, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_GROUND, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_GROUND, TYPE_DRAGON), .catchRate = 120, - .expYield = 119, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 119 : 126, .evYield_Attack = 1, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_DRAGON }, - #else - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - #endif + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_DRAGON), + #else + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + #endif .abilities = { ABILITY_LEVITATE, ABILITY_LEVITATE, ABILITY_LEVITATE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Vibrava"), @@ -4638,17 +5513,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vibrava, 64, 48), + .frontPic = gMonFrontPic_Vibrava, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Vibrava, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Vibrava, 64, 40), + .backPic = gMonBackPic_Vibrava, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Vibrava), - ICON(Vibrava, 1), - .footprint = gMonFootprint_Vibrava, - LEARNSETS(Vibrava), + .palette = gMonPalette_Vibrava, + .shinyPalette = gMonShinyPalette_Vibrava, + .iconSprite = gMonIcon_Vibrava, + .iconPalIndex = 1, + FOOTPRINT(Vibrava) + .levelUpLearnset = sVibravaLevelUpLearnset, + .teachableLearnset = sVibravaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_FLYGON}), }, @@ -4660,20 +5540,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 100, .baseSpAttack = 80, .baseSpDefense = 80, - .types = { TYPE_GROUND, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_GROUND, TYPE_DRAGON), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 260, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 234, + #else + .expYield = 197, + #endif .evYield_Attack = 1, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_DRAGON }, - #else - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - #endif + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_DRAGON), + #else + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + #endif .abilities = { ABILITY_LEVITATE, ABILITY_LEVITATE, ABILITY_LEVITATE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Flygon"), @@ -4691,18 +5577,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 268, .trainerOffset = 1, - FRONT_PIC(Flygon, 64, 64), + .frontPic = gMonFrontPic_Flygon, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Flygon, .frontAnimId = ANIM_ZIGZAG_SLOW, .enemyMonElevation = 7, - BACK_PIC(Flygon, 64, 64), + .backPic = gMonBackPic_Flygon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Flygon), - ICON(Flygon, 1), - .footprint = gMonFootprint_Flygon, - LEARNSETS(Flygon), + .palette = gMonPalette_Flygon, + .shinyPalette = gMonShinyPalette_Flygon, + .iconSprite = gMonIcon_Flygon, + .iconPalIndex = 1, + FOOTPRINT(Flygon) + .levelUpLearnset = sFlygonLevelUpLearnset, + .teachableLearnset = sFlygonTeachableLearnset, }, #endif //P_FAMILY_TRAPINCH @@ -4715,15 +5606,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 35, .baseSpAttack = 85, .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 190, - .expYield = 67, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 67 : 97, .evYield_SpAttack = 1, + .itemRare = ITEM_STICKY_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Cacnea"), @@ -4741,17 +5633,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cacnea, 56, 40), + .frontPic = gMonFrontPic_Cacnea, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Cacnea, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - BACK_PIC(Cacnea, 64, 40), + .backPic = gMonBackPic_Cacnea, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Cacnea), - ICON(Cacnea, 1), - .footprint = gMonFootprint_Cacnea, - LEARNSETS(Cacnea), + .palette = gMonPalette_Cacnea, + .shinyPalette = gMonShinyPalette_Cacnea, + .iconSprite = gMonIcon_Cacnea, + .iconPalIndex = 1, + FOOTPRINT(Cacnea) + .levelUpLearnset = sCacneaLevelUpLearnset, + .teachableLearnset = sCacneaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_CACTURNE}), }, @@ -4763,16 +5660,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 55, .baseSpAttack = 115, .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_DARK }, + .types = MON_TYPES(TYPE_GRASS, TYPE_DARK), .catchRate = 60, - .expYield = 166, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 177, .evYield_Attack = 1, .evYield_SpAttack = 1, + .itemRare = ITEM_STICKY_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Cacturne"), @@ -4790,18 +5688,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cacturne, 64, 64), - FRONT_PIC_FEMALE(Cacturne, 64, 64), + .frontPic = gMonFrontPic_Cacturne, + .frontPicFemale = gMonFrontPic_CacturneF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cacturne, .frontAnimId = ANIM_V_SLIDE, - BACK_PIC(Cacturne, 64, 64), + .backPic = gMonBackPic_Cacturne, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Cacturne), - ICON(Cacturne, 1), - .footprint = gMonFootprint_Cacturne, - LEARNSETS(Cacturne), + .palette = gMonPalette_Cacturne, + .shinyPalette = gMonShinyPalette_Cacturne, + .iconSprite = gMonIcon_Cacturne, + .iconPalIndex = 1, + FOOTPRINT(Cacturne) + .levelUpLearnset = sCacturneLevelUpLearnset, + .teachableLearnset = sCacturneTeachableLearnset, }, #endif //P_FAMILY_CACNEA @@ -4814,15 +5718,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 40, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 255, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 74, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_DRAGON), .abilities = { ABILITY_NATURAL_CURE, ABILITY_NONE, ABILITY_CLOUD_NINE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Swablu"), @@ -4840,50 +5744,48 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Swablu, 48, 40), + .frontPic = gMonFrontPic_Swablu, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Swablu, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Swablu, 64, 48), + .backPic = gMonBackPic_Swablu, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Swablu), - ICON(Swablu, 0), - .footprint = gMonFootprint_Swablu, - LEARNSETS(Swablu), + .palette = gMonPalette_Swablu, + .shinyPalette = gMonShinyPalette_Swablu, + .iconSprite = gMonIcon_Swablu, + .iconPalIndex = 0, + FOOTPRINT(Swablu) + .levelUpLearnset = sSwabluLevelUpLearnset, + .teachableLearnset = sSwabluTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_ALTARIA}), }, -#define ALTARIA_MISC_INFO \ - .catchRate = 45, \ - .evYield_SpDefense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_ERRATIC, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON },\ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Altaria"), \ - .natDexNum = NATIONAL_DEX_ALTARIA, \ - .categoryName = _("Humming"), \ - .footprint = gMonFootprint_Altaria, \ - LEARNSETS(Altaria), \ - .formSpeciesIdTable = sAltariaFormSpeciesIdTable, \ - .formChangeTable = sAltariaFormChangeTable - [SPECIES_ALTARIA] = { - ALTARIA_MISC_INFO, .baseHP = 75, .baseAttack = 70, .baseDefense = 90, .baseSpeed = 80, .baseSpAttack = 70, .baseSpDefense = 105, - .types = { TYPE_DRAGON, TYPE_FLYING }, - .expYield = 172, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FLYING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 188, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_DRAGON), .abilities = { ABILITY_NATURAL_CURE, ABILITY_NONE, ABILITY_CLOUD_NINE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Altaria"), .cryId = CRY_ALTARIA, + .natDexNum = NATIONAL_DEX_ALTARIA, + .categoryName = _("Humming"), .height = 11, .weight = 206, .description = COMPOUND_STRING( @@ -4895,31 +5797,50 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Altaria, 64, 64), + .frontPic = gMonFrontPic_Altaria, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Altaria, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Altaria, 64, 48), + .backPic = gMonBackPic_Altaria, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Altaria), - ICON(Altaria, 0), + .palette = gMonPalette_Altaria, + .shinyPalette = gMonShinyPalette_Altaria, + .iconSprite = gMonIcon_Altaria, + .iconPalIndex = 0, + FOOTPRINT(Altaria) + .levelUpLearnset = sAltariaLevelUpLearnset, + .teachableLearnset = sAltariaTeachableLearnset, + .formSpeciesIdTable = sAltariaFormSpeciesIdTable, + .formChangeTable = sAltariaFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_ALTARIA_MEGA] = { - ALTARIA_MISC_INFO, .baseHP = 75, .baseAttack = 110, .baseDefense = 110, .baseSpeed = 80, .baseSpAttack = 110, .baseSpDefense = 105, - .types = { TYPE_DRAGON, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FAIRY), + .catchRate = 45, .expYield = 207, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_DRAGON), .abilities = { ABILITY_PIXILATE, ABILITY_PIXILATE, ABILITY_PIXILATE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Altaria"), .cryId = CRY_ALTARIA_MEGA, + .natDexNum = NATIONAL_DEX_ALTARIA, + .categoryName = _("Humming"), .height = 15, .weight = 206, .description = COMPOUND_STRING( @@ -4931,17 +5852,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(AltariaMega, 64, 64), + .frontPic = gMonFrontPic_AltariaMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_AltariaMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 6, - BACK_PIC(AltariaMega, 64, 48), + .backPic = gMonBackPic_AltariaMega, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(AltariaMega), - ICON(AltariaMega, 0), + .palette = gMonPalette_AltariaMega, + .shinyPalette = gMonShinyPalette_AltariaMega, + .iconSprite = gMonIcon_AltariaMega, + .iconPalIndex = 0, + FOOTPRINT(Altaria) .isMegaEvolution = TRUE, + .levelUpLearnset = sAltariaLevelUpLearnset, + .teachableLearnset = sAltariaTeachableLearnset, + .formSpeciesIdTable = sAltariaFormSpeciesIdTable, + .formChangeTable = sAltariaFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_SWABLU @@ -4955,16 +5885,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 90, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 90, - .expYield = 160, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 160 : 165, .evYield_Attack = 2, .itemRare = ITEM_QUICK_CLAW, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_IMMUNITY, ABILITY_NONE, ABILITY_TOXIC_BOOST }, .bodyColor = BODY_COLOR_WHITE, .noFlip = TRUE, @@ -4983,17 +5913,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Zangoose, 56, 56), + .frontPic = gMonFrontPic_Zangoose, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Zangoose, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Zangoose, 64, 56), + .backPic = gMonBackPic_Zangoose, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Zangoose), - ICON(Zangoose, 0), - .footprint = gMonFootprint_Zangoose, - LEARNSETS(Zangoose), + .palette = gMonPalette_Zangoose, + .shinyPalette = gMonShinyPalette_Zangoose, + .iconSprite = gMonIcon_Zangoose, + .iconPalIndex = 0, + FOOTPRINT(Zangoose) + .levelUpLearnset = sZangooseLevelUpLearnset, + .teachableLearnset = sZangooseTeachableLearnset, }, #endif //P_FAMILY_ZANGOOSE @@ -5006,16 +5941,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = 100, .baseSpDefense = 60, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 90, - .expYield = 160, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 160 : 165, .evYield_Attack = 1, .evYield_SpAttack = 1, + .itemRare = ITEM_SHED_SHELL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_DRAGON), .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_BLACK, .noFlip = TRUE, @@ -5034,17 +5970,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Seviper, 64, 56), + .frontPic = gMonFrontPic_Seviper, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Seviper, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Seviper, 64, 64), + .backPic = gMonBackPic_Seviper, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Seviper), - ICON(Seviper, 2), - .footprint = gMonFootprint_Seviper, - LEARNSETS(Seviper), + .palette = gMonPalette_Seviper, + .shinyPalette = gMonShinyPalette_Seviper, + .iconSprite = gMonIcon_Seviper, + .iconPalIndex = 2, + FOOTPRINT(Seviper) + .levelUpLearnset = sSeviperLevelUpLearnset, + .teachableLearnset = sSeviperTeachableLearnset, }, #endif //P_FAMILY_SEVIPER @@ -5057,9 +5998,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 70, .baseSpAttack = 95, .baseSpDefense = 85, - .types = { TYPE_ROCK, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_ROCK, TYPE_PSYCHIC), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 161, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 154, + #else + .expYield = 150, + #endif .evYield_SpAttack = 2, .itemCommon = ITEM_STARDUST, .itemRare = ITEM_MOON_STONE, @@ -5067,8 +6014,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Lunatone"), .cryId = CRY_LUNATONE, @@ -5085,18 +6032,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lunatone, 48, 48), + .frontPic = gMonFrontPic_Lunatone, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Lunatone, .frontAnimId = ANIM_SWING_CONVEX_FAST, .enemyMonElevation = 13, - BACK_PIC(Lunatone, 48, 48), + .backPic = gMonBackPic_Lunatone, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Lunatone), - ICON(Lunatone, 1), - .footprint = gMonFootprint_Lunatone, - LEARNSETS(Lunatone), + .palette = gMonPalette_Lunatone, + .shinyPalette = gMonShinyPalette_Lunatone, + .iconSprite = gMonIcon_Lunatone, + .iconPalIndex = 1, + FOOTPRINT(Lunatone) + .levelUpLearnset = sLunatoneLevelUpLearnset, + .teachableLearnset = sLunatoneTeachableLearnset, }, #endif //P_FAMILY_LUNATONE @@ -5109,9 +6061,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 70, .baseSpAttack = 55, .baseSpDefense = 65, - .types = { TYPE_ROCK, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_ROCK, TYPE_PSYCHIC), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 161, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 154, + #else + .expYield = 150, + #endif .evYield_Attack = 2, .itemCommon = ITEM_STARDUST, .itemRare = ITEM_SUN_STONE, @@ -5119,8 +6077,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Solrock"), .cryId = CRY_SOLROCK, @@ -5137,18 +6095,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Solrock, 64, 64), + .frontPic = gMonFrontPic_Solrock, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Solrock, .frontAnimId = ANIM_ROTATE_TO_SIDES_TWICE, .enemyMonElevation = 4, - BACK_PIC(Solrock, 64, 64), + .backPic = gMonBackPic_Solrock, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Solrock), - ICON(Solrock, 0), - .footprint = gMonFootprint_Solrock, - LEARNSETS(Solrock), + .palette = gMonPalette_Solrock, + .shinyPalette = gMonShinyPalette_Solrock, + .iconSprite = gMonIcon_Solrock, + .iconPalIndex = 0, + FOOTPRINT(Solrock) + .levelUpLearnset = sSolrockLevelUpLearnset, + .teachableLearnset = sSolrockTeachableLearnset, }, #endif //P_FAMILY_SOLROCK @@ -5161,15 +6124,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 60, .baseSpAttack = 46, .baseSpDefense = 41, - .types = { TYPE_WATER, TYPE_GROUND }, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), .catchRate = 190, - .expYield = 58, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 92, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_OBLIVIOUS, ABILITY_ANTICIPATION, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Barboach"), @@ -5187,18 +6150,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Barboach, 48, 40), + .frontPic = gMonFrontPic_Barboach, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Barboach, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, .enemyMonElevation = 7, - BACK_PIC(Barboach, 56, 48), + .backPic = gMonBackPic_Barboach, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Barboach), - ICON(Barboach, 0), - .footprint = gMonFootprint_Barboach, - LEARNSETS(Barboach), + .palette = gMonPalette_Barboach, + .shinyPalette = gMonShinyPalette_Barboach, + .iconSprite = gMonIcon_Barboach, + .iconPalIndex = 0, + FOOTPRINT(Barboach) + .levelUpLearnset = sBarboachLevelUpLearnset, + .teachableLearnset = sBarboachTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_WHISCASH}), }, @@ -5210,15 +6178,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 60, .baseSpAttack = 76, .baseSpDefense = 71, - .types = { TYPE_WATER, TYPE_GROUND }, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), .catchRate = 75, - .expYield = 164, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 164 : 158, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_OBLIVIOUS, ABILITY_ANTICIPATION, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Whiscash"), @@ -5236,17 +6204,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Whiscash, 64, 48), + .frontPic = gMonFrontPic_Whiscash, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Whiscash, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - BACK_PIC(Whiscash, 64, 48), + .backPic = gMonBackPic_Whiscash, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Whiscash), - ICON(Whiscash, 0), - .footprint = gMonFootprint_Whiscash, - LEARNSETS(Whiscash), + .palette = gMonPalette_Whiscash, + .shinyPalette = gMonShinyPalette_Whiscash, + .iconSprite = gMonIcon_Whiscash, + .iconPalIndex = 0, + FOOTPRINT(Whiscash) + .levelUpLearnset = sWhiscashLevelUpLearnset, + .teachableLearnset = sWhiscashTeachableLearnset, }, #endif //P_FAMILY_BARBOACH @@ -5259,15 +6232,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 35, .baseSpAttack = 50, .baseSpDefense = 35, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 205, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 111, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_ADAPTABILITY }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Corphish"), @@ -5285,17 +6258,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Corphish, 56, 48), + .frontPic = gMonFrontPic_Corphish, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Corphish, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Corphish, 64, 48), + .backPic = gMonBackPic_Corphish, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Corphish), - ICON(Corphish, 0), - .footprint = gMonFootprint_Corphish, - LEARNSETS(Corphish), + .palette = gMonPalette_Corphish, + .shinyPalette = gMonShinyPalette_Corphish, + .iconSprite = gMonIcon_Corphish, + .iconPalIndex = 0, + FOOTPRINT(Corphish) + .levelUpLearnset = sCorphishLevelUpLearnset, + .teachableLearnset = sCorphishTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_CRAWDAUNT}), }, @@ -5307,15 +6285,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 55, .baseSpAttack = 90, .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_DARK }, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), .catchRate = 155, - .expYield = 164, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 164 : 161, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_ADAPTABILITY }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Crawdaunt"), @@ -5333,17 +6311,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Crawdaunt, 64, 64), + .frontPic = gMonFrontPic_Crawdaunt, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Crawdaunt, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Crawdaunt, 64, 56), + .backPic = gMonBackPic_Crawdaunt, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Crawdaunt), - ICON(Crawdaunt, 0), - .footprint = gMonFootprint_Crawdaunt, - LEARNSETS(Crawdaunt), + .palette = gMonPalette_Crawdaunt, + .shinyPalette = gMonShinyPalette_Crawdaunt, + .iconSprite = gMonIcon_Crawdaunt, + .iconPalIndex = 0, + FOOTPRINT(Crawdaunt) + .levelUpLearnset = sCrawdauntLevelUpLearnset, + .teachableLearnset = sCrawdauntTeachableLearnset, }, #endif //P_FAMILY_CORPHISH @@ -5356,16 +6339,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 55, .baseSpAttack = 40, .baseSpDefense = 70, - .types = { TYPE_GROUND, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_GROUND, TYPE_PSYCHIC), .catchRate = 255, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 58, .evYield_SpDefense = 1, + .itemRare = ITEM_LIGHT_CLAY, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Baltoy"), .cryId = CRY_BALTOY, @@ -5382,18 +6366,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Baltoy, 40, 40), + .frontPic = gMonFrontPic_Baltoy, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Baltoy, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 8, - BACK_PIC(Baltoy, 64, 48), + .backPic = gMonBackPic_Baltoy, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Baltoy), - ICON(Baltoy, 2), - .footprint = gMonFootprint_Baltoy, - LEARNSETS(Baltoy), + .palette = gMonPalette_Baltoy, + .shinyPalette = gMonShinyPalette_Baltoy, + .iconSprite = gMonIcon_Baltoy, + .iconPalIndex = 2, + FOOTPRINT(Baltoy) + .levelUpLearnset = sBaltoyLevelUpLearnset, + .teachableLearnset = sBaltoyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_CLAYDOL}), }, @@ -5405,16 +6394,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 75, .baseSpAttack = 70, .baseSpDefense = 120, - .types = { TYPE_GROUND, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_GROUND, TYPE_PSYCHIC), .catchRate = 90, - .expYield = 175, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 189, .evYield_SpDefense = 2, + .itemRare = ITEM_LIGHT_CLAY, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Claydol"), .cryId = CRY_CLAYDOL, @@ -5431,18 +6421,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 280, .trainerOffset = 1, - FRONT_PIC(Claydol, 56, 64), + .frontPic = gMonFrontPic_Claydol, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Claydol, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .enemyMonElevation = 10, - BACK_PIC(Claydol, 64, 56), + .backPic = gMonBackPic_Claydol, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Claydol), - ICON(Claydol, 0), - .footprint = gMonFootprint_Claydol, - LEARNSETS(Claydol), + .palette = gMonPalette_Claydol, + .shinyPalette = gMonShinyPalette_Claydol, + .iconSprite = gMonIcon_Claydol, + .iconPalIndex = 0, + FOOTPRINT(Claydol) + .levelUpLearnset = sClaydolLevelUpLearnset, + .teachableLearnset = sClaydolTeachableLearnset, }, #endif //P_FAMILY_BALTOY @@ -5455,15 +6450,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 23, .baseSpAttack = 61, .baseSpDefense = 87, - .types = { TYPE_ROCK, TYPE_GRASS }, + .types = MON_TYPES(TYPE_ROCK, TYPE_GRASS), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 71, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 99, + #else + .expYield = 121, + #endif .evYield_SpDefense = 1, + .itemRare = ITEM_BIG_ROOT, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_SUCTION_CUPS, ABILITY_NONE, ABILITY_STORM_DRAIN }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Lileep"), @@ -5481,17 +6483,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lileep, 48, 56), + .frontPic = gMonFrontPic_Lileep, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Lileep, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Lileep, 48, 48), + .backPic = gMonBackPic_Lileep, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Lileep), - ICON(Lileep, 2), - .footprint = gMonFootprint_Lileep, - LEARNSETS(Lileep), + .palette = gMonPalette_Lileep, + .shinyPalette = gMonShinyPalette_Lileep, + .iconSprite = gMonIcon_Lileep, + .iconPalIndex = 2, + FOOTPRINT(Lileep) + .levelUpLearnset = sLileepLevelUpLearnset, + .teachableLearnset = sLileepTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_CRADILY}), }, @@ -5503,15 +6510,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 43, .baseSpAttack = 81, .baseSpDefense = 107, - .types = { TYPE_ROCK, TYPE_GRASS }, + .types = MON_TYPES(TYPE_ROCK, TYPE_GRASS), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 173, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 199, + #else + .expYield = 201, + #endif .evYield_SpDefense = 2, + .itemRare = ITEM_BIG_ROOT, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_SUCTION_CUPS, ABILITY_NONE, ABILITY_STORM_DRAIN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Cradily"), @@ -5529,17 +6543,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cradily, 56, 64), + .frontPic = gMonFrontPic_Cradily, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cradily, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Cradily, 56, 64), + .backPic = gMonBackPic_Cradily, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Cradily), - ICON(Cradily, 1), - .footprint = gMonFootprint_Cradily, - LEARNSETS(Cradily), + .palette = gMonPalette_Cradily, + .shinyPalette = gMonShinyPalette_Cradily, + .iconSprite = gMonIcon_Cradily, + .iconPalIndex = 1, + FOOTPRINT(Cradily) + .levelUpLearnset = sCradilyLevelUpLearnset, + .teachableLearnset = sCradilyTeachableLearnset, }, #endif //P_FAMILY_LILEEP @@ -5552,15 +6571,21 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 75, .baseSpAttack = 40, .baseSpDefense = 50, - .types = { TYPE_ROCK, TYPE_BUG }, + .types = MON_TYPES(TYPE_ROCK, TYPE_BUG), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 71, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 99, + #else + .expYield = 119, + #endif .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_NONE, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Anorith"), @@ -5578,17 +6603,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Anorith, 48, 56), + .frontPic = gMonFrontPic_Anorith, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Anorith, .frontAnimId = ANIM_TWIST, - BACK_PIC(Anorith, 56, 32), + .backPic = gMonBackPic_Anorith, + .backPicSize = MON_COORDS_SIZE(56, 32), .backPicYOffset = 19, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Anorith), - ICON(Anorith, 0), - .footprint = gMonFootprint_Anorith, - LEARNSETS(Anorith), + .palette = gMonPalette_Anorith, + .shinyPalette = gMonShinyPalette_Anorith, + .iconSprite = gMonIcon_Anorith, + .iconPalIndex = 0, + FOOTPRINT(Anorith) + .levelUpLearnset = sAnorithLevelUpLearnset, + .teachableLearnset = sAnorithTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_ARMALDO}), }, @@ -5600,15 +6630,21 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 45, .baseSpAttack = 70, .baseSpDefense = 80, - .types = { TYPE_ROCK, TYPE_BUG }, + .types = MON_TYPES(TYPE_ROCK, TYPE_BUG), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 173, + #elif P_UPDATED_EXP_YIELDS >= GEN_4 + .expYield = 199, + #else + .expYield = 200, + #endif .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_NONE, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Armaldo"), @@ -5626,17 +6662,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Armaldo, 64, 64), + .frontPic = gMonFrontPic_Armaldo, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Armaldo, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Armaldo, 64, 64), + .backPic = gMonBackPic_Armaldo, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Armaldo), - ICON(Armaldo, 2), - .footprint = gMonFootprint_Armaldo, - LEARNSETS(Armaldo), + .palette = gMonPalette_Armaldo, + .shinyPalette = gMonShinyPalette_Armaldo, + .iconSprite = gMonIcon_Armaldo, + .iconPalIndex = 2, + FOOTPRINT(Armaldo) + .levelUpLearnset = sArmaldoLevelUpLearnset, + .teachableLearnset = sArmaldoTeachableLearnset, }, #endif //P_FAMILY_ANORITH @@ -5649,15 +6690,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 80, .baseSpAttack = 10, .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 255, - .expYield = 40, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 40 : 61, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_OBLIVIOUS, ABILITY_ADAPTABILITY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Feebas"), @@ -5675,19 +6716,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Feebas, 40, 48), + .frontPic = gMonFrontPic_Feebas, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Feebas, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - BACK_PIC(Feebas, 48, 56), + .backPic = gMonBackPic_Feebas, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SPRING, - PALETTES(Feebas), - ICON(Feebas, 2), - .footprint = gMonFootprint_Feebas, - LEARNSETS(Feebas), + .palette = gMonPalette_Feebas, + .shinyPalette = gMonShinyPalette_Feebas, + .iconSprite = gMonIcon_Feebas, + .iconPalIndex = 2, + FOOTPRINT(Feebas) + .levelUpLearnset = sFeebasLevelUpLearnset, + .teachableLearnset = sFeebasTeachableLearnset, .evolutions = EVOLUTION({EVO_BEAUTY, 170, SPECIES_MILOTIC}, - {EVO_LEVEL, 20, SPECIES_MILOTIC}), + {EVO_TRADE_ITEM, ITEM_PRISM_SCALE, SPECIES_MILOTIC}, + {EVO_ITEM, ITEM_PRISM_SCALE, SPECIES_MILOTIC}), }, [SPECIES_MILOTIC] = @@ -5698,15 +6745,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 81, .baseSpAttack = 100, .baseSpDefense = 125, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 60, - .expYield = 189, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 189 : 213, .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_MARVEL_SCALE, ABILITY_COMPETITIVE, ABILITY_CUTE_CHARM }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Milotic"), @@ -5724,143 +6771,257 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 360, .trainerOffset = 7, - FRONT_PIC(Milotic, 64, 64), - FRONT_PIC_FEMALE(Milotic, 64, 64), + .frontPic = gMonFrontPic_Milotic, + .frontPicFemale = gMonFrontPic_MiloticF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Milotic, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .frontAnimDelay = 45, - BACK_PIC(Milotic, 64, 64), - BACK_PIC_FEMALE(Milotic, 64, 64), + .backPic = gMonBackPic_Milotic, + .backPicFemale = gMonBackPic_MiloticF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Milotic), - ICON(Milotic, 2), - .footprint = gMonFootprint_Milotic, - LEARNSETS(Milotic), + .palette = gMonPalette_Milotic, + .shinyPalette = gMonShinyPalette_Milotic, + .iconSprite = gMonIcon_Milotic, + .iconPalIndex = 2, + FOOTPRINT(Milotic) + .levelUpLearnset = sMiloticLevelUpLearnset, + .teachableLearnset = sMiloticTeachableLearnset, }, #endif //P_FAMILY_FEEBAS #if P_FAMILY_CASTFORM -#define CASTFORM_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 70, \ - .baseDefense = 70, \ - .baseSpeed = 70, \ - .baseSpAttack = 70, \ - .baseSpDefense = 70, \ - .catchRate = 45, \ - .expYield = 147, \ - .evYield_HP = 1, \ - .itemCommon = ITEM_MYSTIC_WATER, \ - .itemRare = ITEM_MYSTIC_WATER, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_FORECAST, ABILITY_NONE }, \ - .speciesName = _("Castform"), \ - .cryId = CRY_CASTFORM, \ - .natDexNum = NATIONAL_DEX_CASTFORM, \ - .categoryName = _("Weather"), \ - .height = 3, \ - .weight = 8, \ - .pokemonScale = 435, \ - .pokemonOffset = -5, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Castform, \ - LEARNSETS(Castform), \ - .formSpeciesIdTable = sCastformFormSpeciesIdTable, \ - .formChangeTable = sCastformFormChangeTable - [SPECIES_CASTFORM_NORMAL] = { - CASTFORM_MISC_INFO, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .baseHP = 70, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 145, + .evYield_HP = 1, + .itemCommon = ITEM_MYSTIC_WATER, + .itemRare = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_FORECAST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Castform"), + .cryId = CRY_CASTFORM, + .natDexNum = NATIONAL_DEX_CASTFORM, + .categoryName = _("Weather"), + .height = 3, + .weight = 8, .description = COMPOUND_STRING( "It alters its form depending on the\n" "weather. Changes in the climate such as\n" "the temperature and humidity appear to\n" "affect its cellular structure."), - FRONT_PIC(CastformNormal, 24, 32), + .pokemonScale = 435, + .pokemonOffset = -5, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CastformNormal, + .frontPicSize = MON_COORDS_SIZE(24, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_CastformNormal, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 16, - BACK_PIC(CastformNormal, 32, 64), + .backPic = gMonBackPic_CastformNormal, + .backPicSize = MON_COORDS_SIZE(32, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(CastformNormal), - ICON(CastformNormal, 0), + .palette = gMonPalette_CastformNormal, + .shinyPalette = gMonShinyPalette_CastformNormal, + .iconSprite = gMonIcon_CastformNormal, + .iconPalIndex = 0, + FOOTPRINT(Castform) + .levelUpLearnset = sCastformLevelUpLearnset, + .teachableLearnset = sCastformTeachableLearnset, + .formSpeciesIdTable = sCastformFormSpeciesIdTable, + .formChangeTable = sCastformFormChangeTable, }, [SPECIES_CASTFORM_SUNNY] = { - CASTFORM_MISC_INFO, - .types = { TYPE_FIRE, TYPE_FIRE }, + .baseHP = 70, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 145, + .evYield_HP = 1, + .itemCommon = ITEM_MYSTIC_WATER, + .itemRare = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_FORECAST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Castform"), + .cryId = CRY_CASTFORM, + .natDexNum = NATIONAL_DEX_CASTFORM, + .categoryName = _("Weather"), + .height = 3, + .weight = 8, .description = COMPOUND_STRING( "Castform takes this form on bright days.\n" "In an experiment where is was placed in\n" "front of a heater, it didn't change to this\n" "form. Its body is warm and toasty."), - FRONT_PIC(CastformSunny, 40, 48), + .pokemonScale = 435, + .pokemonOffset = -5, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CastformSunny, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_CastformSunny, .frontAnimId = ANIM_GROW_VIBRATE, .enemyMonElevation = 5, - BACK_PIC(CastformSunny, 56, 64), + .backPic = gMonBackPic_CastformSunny, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(CastformSunny), - ICON(CastformSunny, 0), + .palette = gMonPalette_CastformSunny, + .shinyPalette = gMonShinyPalette_CastformSunny, + .iconSprite = gMonIcon_CastformSunny, + .iconPalIndex = 0, + FOOTPRINT(Castform) + .levelUpLearnset = sCastformLevelUpLearnset, + .teachableLearnset = sCastformTeachableLearnset, + .formSpeciesIdTable = sCastformFormSpeciesIdTable, + .formChangeTable = sCastformFormChangeTable, }, [SPECIES_CASTFORM_RAINY] = { - CASTFORM_MISC_INFO, - .types = { TYPE_WATER, TYPE_WATER }, + .baseHP = 70, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 145, + .evYield_HP = 1, + .itemCommon = ITEM_MYSTIC_WATER, + .itemRare = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_FORECAST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Castform"), + .cryId = CRY_CASTFORM, + .natDexNum = NATIONAL_DEX_CASTFORM, + .categoryName = _("Weather"), + .height = 3, + .weight = 8, .description = COMPOUND_STRING( "This is Castform's form while it's raining.\n" "In an experiment where it was placed in a\n" "shower, it didn't change to this form. Its\n" "body is soft, slightly swollen with water."), - FRONT_PIC(CastformRainy, 32, 48), + .pokemonScale = 435, + .pokemonOffset = -5, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CastformRainy, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_CastformRainy, .frontAnimId = ANIM_SWING_CONVEX_FAST, .enemyMonElevation = 5, - BACK_PIC(CastformRainy, 40, 64), + .backPic = gMonBackPic_CastformRainy, + .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(CastformRainy), - ICON(CastformRainy, 0), + .palette = gMonPalette_CastformRainy, + .shinyPalette = gMonShinyPalette_CastformRainy, + .iconSprite = gMonIcon_CastformRainy, + .iconPalIndex = 0, + FOOTPRINT(Castform) + .levelUpLearnset = sCastformLevelUpLearnset, + .teachableLearnset = sCastformTeachableLearnset, + .formSpeciesIdTable = sCastformFormSpeciesIdTable, + .formChangeTable = sCastformFormChangeTable, }, [SPECIES_CASTFORM_SNOWY] = { - CASTFORM_MISC_INFO, - .types = { TYPE_ICE, TYPE_ICE }, + .baseHP = 70, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 145, + .evYield_HP = 1, + .itemCommon = ITEM_MYSTIC_WATER, + .itemRare = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_FORECAST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Castform"), + .cryId = CRY_CASTFORM, + .natDexNum = NATIONAL_DEX_CASTFORM, + .categoryName = _("Weather"), + .height = 3, + .weight = 8, .description = COMPOUND_STRING( "This is Castform's form in a hailstorm.\n" "In an experiment where it was placed\n" "in a freezer, it didn't change to this form.\n" "Its cold skin is as smooth as ice."), - FRONT_PIC(CastformSnowy, 40, 56), + .pokemonScale = 435, + .pokemonOffset = -5, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CastformSnowy, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_CastformSnowy, .frontAnimId = ANIM_V_STRETCH, .enemyMonElevation = 5, - BACK_PIC(CastformSnowy, 56, 64), + .backPic = gMonBackPic_CastformSnowy, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(CastformSnowy), - ICON(CastformSnowy, 0), + .palette = gMonPalette_CastformSnowy, + .shinyPalette = gMonShinyPalette_CastformSnowy, + .iconSprite = gMonIcon_CastformSnowy, + .iconPalIndex = 0, + FOOTPRINT(Castform) + .levelUpLearnset = sCastformLevelUpLearnset, + .teachableLearnset = sCastformTeachableLearnset, + .formSpeciesIdTable = sCastformFormSpeciesIdTable, + .formChangeTable = sCastformFormChangeTable, }, #endif //P_FAMILY_CASTFORM @@ -5873,15 +7034,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 40, .baseSpAttack = 60, .baseSpDefense = 120, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 200, - .expYield = 154, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 154 : 132, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_COLOR_CHANGE, ABILITY_NONE, ABILITY_PROTEAN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Kecleon"), @@ -5899,18 +7060,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kecleon, 48, 56), + .frontPic = gMonFrontPic_Kecleon, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Kecleon, .frontAnimId = ANIM_FLICKER_INCREASING, .frontAnimDelay = 30, - BACK_PIC(Kecleon, 56, 56), + .backPic = gMonBackPic_Kecleon, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Kecleon), - ICON(Kecleon, 1), - .footprint = gMonFootprint_Kecleon, - LEARNSETS(Kecleon), + .palette = gMonPalette_Kecleon, + .shinyPalette = gMonShinyPalette_Kecleon, + .iconSprite = gMonIcon_Kecleon, + .iconPalIndex = 1, + FOOTPRINT(Kecleon) + .levelUpLearnset = sKecleonLevelUpLearnset, + .teachableLearnset = sKecleonTeachableLearnset, }, #endif //P_FAMILY_KECLEON @@ -5923,16 +7089,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 45, .baseSpAttack = 63, .baseSpDefense = 33, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 225, - .expYield = 59, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 59 : 97, .evYield_Attack = 1, .itemRare = ITEM_SPELL_TAG, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_INSOMNIA, ABILITY_FRISK, ABILITY_CURSED_BODY }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Shuppet"), @@ -5950,52 +7116,50 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shuppet, 40, 40), + .frontPic = gMonFrontPic_Shuppet, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Shuppet, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 14, - BACK_PIC(Shuppet, 56, 56), + .backPic = gMonBackPic_Shuppet, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Shuppet), - ICON(Shuppet, 0), - .footprint = gMonFootprint_Shuppet, - LEARNSETS(Shuppet), + .palette = gMonPalette_Shuppet, + .shinyPalette = gMonShinyPalette_Shuppet, + .iconSprite = gMonIcon_Shuppet, + .iconPalIndex = 0, + FOOTPRINT(Shuppet) + .levelUpLearnset = sShuppetLevelUpLearnset, + .teachableLearnset = sShuppetTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_BANETTE}), }, -#define BANETTE_MISC_INFO \ - .types = { TYPE_GHOST, TYPE_GHOST }, \ - .catchRate = 45, \ - .evYield_Attack = 2, \ - .itemRare = ITEM_SPELL_TAG, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = 35, \ - .growthRate = GROWTH_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Banette"), \ - .natDexNum = NATIONAL_DEX_BANETTE, \ - .categoryName = _("Marionette"), \ - .footprint = gMonFootprint_Banette, \ - LEARNSETS(Banette), \ - .formSpeciesIdTable = sBanetteFormSpeciesIdTable, \ - .formChangeTable = sBanetteFormChangeTable - [SPECIES_BANETTE] = { - BANETTE_MISC_INFO, .baseHP = 64, .baseAttack = 115, .baseDefense = 65, .baseSpeed = 65, .baseSpAttack = 83, .baseSpDefense = 63, - .expYield = 159, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 179, + .evYield_Attack = 2, + .itemRare = ITEM_SPELL_TAG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_INSOMNIA, ABILITY_FRISK, ABILITY_CURSED_BODY }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Banette"), .cryId = CRY_BANETTE, + .natDexNum = NATIONAL_DEX_BANETTE, + .categoryName = _("Marionette"), .height = 11, .weight = 125, .description = COMPOUND_STRING( @@ -6007,30 +7171,51 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Banette, 56, 56), + .frontPic = gMonFrontPic_Banette, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Banette, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Banette, 64, 64), + .backPic = gMonBackPic_Banette, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Banette), - ICON(Banette, 0), + .palette = gMonPalette_Banette, + .shinyPalette = gMonShinyPalette_Banette, + .iconSprite = gMonIcon_Banette, + .iconPalIndex = 0, + FOOTPRINT(Banette) + .levelUpLearnset = sBanetteLevelUpLearnset, + .teachableLearnset = sBanetteTeachableLearnset, + .formSpeciesIdTable = sBanetteFormSpeciesIdTable, + .formChangeTable = sBanetteFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_BANETTE_MEGA] = { - BANETTE_MISC_INFO, .baseHP = 64, .baseAttack = 165, .baseDefense = 75, .baseSpeed = 75, .baseSpAttack = 93, .baseSpDefense = 83, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 45, .expYield = 194, + .evYield_Attack = 2, + .itemRare = ITEM_SPELL_TAG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_PRANKSTER, ABILITY_PRANKSTER, ABILITY_PRANKSTER }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Banette"), .cryId = CRY_BANETTE_MEGA, + .natDexNum = NATIONAL_DEX_BANETTE, + .categoryName = _("Marionette"), .height = 12, .weight = 130, .description = COMPOUND_STRING( @@ -6041,17 +7226,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(BanetteMega, 64, 64), + .frontPic = gMonFrontPic_BanetteMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_BanetteMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(BanetteMega, 64, 64), + .backPic = gMonBackPic_BanetteMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(BanetteMega), - ICON(BanetteMega, 0), + .palette = gMonPalette_BanetteMega, + .shinyPalette = gMonShinyPalette_BanetteMega, + .iconSprite = gMonIcon_BanetteMega, + .iconPalIndex = 0, + FOOTPRINT(Banette) .isMegaEvolution = TRUE, + .levelUpLearnset = sBanetteLevelUpLearnset, + .teachableLearnset = sBanetteTeachableLearnset, + .formSpeciesIdTable = sBanetteFormSpeciesIdTable, + .formChangeTable = sBanetteFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_SHUPPET @@ -6065,16 +7259,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 25, .baseSpAttack = 30, .baseSpDefense = 90, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 190, - .expYield = 59, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 59 : 97, + .evYield_Defense = (P_UPDATED_EVS >= GEN_4) ? 0 : 1, .evYield_SpDefense = 1, .itemRare = ITEM_SPELL_TAG, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_FRISK }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Duskull"), @@ -6092,18 +7287,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Duskull, 40, 48), + .frontPic = gMonFrontPic_Duskull, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Duskull, .frontAnimId = ANIM_ZIGZAG_FAST, .enemyMonElevation = 13, - BACK_PIC(Duskull, 56, 56), + .backPic = gMonBackPic_Duskull, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Duskull), - ICON(Duskull, 0), - .footprint = gMonFootprint_Duskull, - LEARNSETS(Duskull), + .palette = gMonPalette_Duskull, + .shinyPalette = gMonShinyPalette_Duskull, + .iconSprite = gMonIcon_Duskull, + .iconPalIndex = 0, + FOOTPRINT(Duskull) + .levelUpLearnset = sDuskullLevelUpLearnset, + .teachableLearnset = sDuskullTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_DUSCLOPS}), }, @@ -6115,17 +7315,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 25, .baseSpAttack = 60, .baseSpDefense = 130, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 90, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 179, .evYield_Defense = 1, - .evYield_SpDefense = 1, + .evYield_SpDefense = (P_UPDATED_EVS >= GEN_4) ? 1 : 2, .itemRare = ITEM_SPELL_TAG, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FRISK }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Dusclops"), @@ -6143,19 +7343,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 299, .trainerOffset = 1, - FRONT_PIC(Dusclops, 64, 64), + .frontPic = gMonFrontPic_Dusclops, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Dusclops, .frontAnimId = ANIM_H_VIBRATE, .frontAnimDelay = 30, - BACK_PIC(Dusclops, 64, 64), + .backPic = gMonBackPic_Dusclops, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Dusclops), - ICON(Dusclops, 0), - .footprint = gMonFootprint_Dusclops, - LEARNSETS(Dusclops), - .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_DUSKNOIR}), + .palette = gMonPalette_Dusclops, + .shinyPalette = gMonShinyPalette_Dusclops, + .iconSprite = gMonIcon_Dusclops, + .iconPalIndex = 0, + FOOTPRINT(Dusclops) + .levelUpLearnset = sDusclopsLevelUpLearnset, + .teachableLearnset = sDusclopsTeachableLearnset, + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_REAPER_CLOTH, SPECIES_DUSKNOIR}, + {EVO_ITEM, ITEM_REAPER_CLOTH, SPECIES_DUSKNOIR}), }, #if P_GEN_4_CROSS_EVOS @@ -6167,9 +7373,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 45, .baseSpAttack = 65, .baseSpDefense = 135, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 263, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 236, + #else + .expYield = 210, + #endif .evYield_Defense = 1, .evYield_SpDefense = 2, .itemRare = ITEM_SPELL_TAG, @@ -6177,7 +7389,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FRISK }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Dusknoir"), @@ -6195,18 +7407,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(Dusknoir, 64, 64), + .frontPic = gMonFrontPic_Dusknoir, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Dusknoir, .frontAnimId = ANIM_H_SLIDE, .enemyMonElevation = 6, - BACK_PIC(Dusknoir, 64, 56), + .backPic = gMonBackPic_Dusknoir, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Dusknoir), - ICON(Dusknoir, 2), - .footprint = gMonFootprint_Dusknoir, - LEARNSETS(Dusknoir), + .palette = gMonPalette_Dusknoir, + .shinyPalette = gMonShinyPalette_Dusknoir, + .iconSprite = gMonIcon_Dusknoir, + .iconPalIndex = 2, + FOOTPRINT(Dusknoir) + .levelUpLearnset = sDusknoirLevelUpLearnset, + .teachableLearnset = sDusknoirTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_DUSKULL @@ -6220,15 +7437,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 51, .baseSpAttack = 72, .baseSpDefense = 87, - .types = { TYPE_GRASS, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FLYING), .catchRate = 200, - .expYield = 161, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 161 : 169, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_HARVEST }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Tropius"), @@ -6246,17 +7463,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 344, .trainerOffset = 7, - FRONT_PIC(Tropius, 64, 64), + .frontPic = gMonFrontPic_Tropius, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Tropius, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Tropius, 56, 64), + .backPic = gMonBackPic_Tropius, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Tropius), - ICON(Tropius, 1), - .footprint = gMonFootprint_Tropius, - LEARNSETS(Tropius), + .palette = gMonPalette_Tropius, + .shinyPalette = gMonShinyPalette_Tropius, + .iconSprite = gMonIcon_Tropius, + .iconPalIndex = 1, + FOOTPRINT(Tropius) + .levelUpLearnset = sTropiusLevelUpLearnset, + .teachableLearnset = sTropiusTeachableLearnset, }, #endif //P_FAMILY_TROPIUS @@ -6270,17 +7492,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 45, .baseSpAttack = 65, .baseSpDefense = 50, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 120, - .expYield = 57, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 57 : 74, .evYield_SpAttack = 1, .itemRare = ITEM_CLEANSE_TAG, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Chingling"), .cryId = CRY_CHINGLING, @@ -6297,38 +7519,43 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chingling, 40, 40), + .frontPic = gMonFrontPic_Chingling, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Chingling, .frontAnimId = ANIM_H_SLIDE_WOBBLE, - BACK_PIC(Chingling, 48, 48), + .backPic = gMonBackPic_Chingling, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Chingling), - ICON(Chingling, 1), - .footprint = gMonFootprint_Chingling, - LEARNSETS(Chingling), + .palette = gMonPalette_Chingling, + .shinyPalette = gMonShinyPalette_Chingling, + .iconSprite = gMonIcon_Chingling, + .iconPalIndex = 1, + FOOTPRINT(Chingling) + .levelUpLearnset = sChinglingLevelUpLearnset, + .teachableLearnset = sChinglingTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP_NIGHT, 0, SPECIES_CHIMECHO}), }, #endif //P_GEN_4_CROSS_EVOS [SPECIES_CHIMECHO] = { + .baseHP = P_UPDATED_STATS >= GEN_7 ? 75 : 65, .baseAttack = 50, + .baseDefense = P_UPDATED_STATS >= GEN_7 ? 80 : 70, .baseSpeed = 65, .baseSpAttack = 95, - #if P_UPDATED_STATS >= GEN_7 - .baseHP = 75, - .baseDefense = 80, - .baseSpDefense = 90, - #else - .baseHP = 65, - .baseDefense = 70, - .baseSpDefense = 80, - #endif - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .baseSpDefense = P_UPDATED_STATS >= GEN_7 ? 90 : 80, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 159, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 149, + #else + .expYield = 147, + #endif .evYield_SpAttack = 1, .evYield_SpDefense = 1, .itemRare = ITEM_CLEANSE_TAG, @@ -6336,8 +7563,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Chimecho"), .cryId = CRY_CHIMECHO, @@ -6354,105 +7581,138 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chimecho, 48, 48), + .frontPic = gMonFrontPic_Chimecho, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Chimecho, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 16, - BACK_PIC(Chimecho, 64, 56), + .backPic = gMonBackPic_Chimecho, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Chimecho), - ICON(Chimecho, 0), - .footprint = gMonFootprint_Chimecho, - LEARNSETS(Chimecho), + .palette = gMonPalette_Chimecho, + .shinyPalette = gMonShinyPalette_Chimecho, + .iconSprite = gMonIcon_Chimecho, + .iconPalIndex = 0, + FOOTPRINT(Chimecho) + .levelUpLearnset = sChimechoLevelUpLearnset, + .teachableLearnset = sChimechoTeachableLearnset, }, #endif //P_FAMILY_CHIMECHO #if P_FAMILY_ABSOL -#define ABSOL_MISC_INFO \ - .types = { TYPE_DARK, TYPE_DARK }, \ - .catchRate = 30, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = 35, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .noFlip = TRUE, \ - .speciesName = _("Absol"), \ - .natDexNum = NATIONAL_DEX_ABSOL, \ - .categoryName = _("Disaster"), \ - .height = 12, \ - .pokemonScale = 301, \ - .pokemonOffset = 3, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Absol, \ - LEARNSETS(Absol), \ - .formSpeciesIdTable = sAbsolFormSpeciesIdTable, \ - .formChangeTable = sAbsolFormChangeTable - [SPECIES_ABSOL] = { - ABSOL_MISC_INFO, .baseHP = 65, .baseAttack = 130, .baseDefense = 60, .baseSpeed = 75, .baseSpAttack = 75, .baseSpDefense = 60, - .expYield = 163, + .types = MON_TYPES(TYPE_DARK), + .catchRate = 30, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 163 : 174, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PRESSURE, ABILITY_SUPER_LUCK, ABILITY_JUSTIFIED }, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = TRUE, + .speciesName = _("Absol"), .cryId = CRY_ABSOL, + .natDexNum = NATIONAL_DEX_ABSOL, + .categoryName = _("Disaster"), + .height = 12, .weight = 470, .description = COMPOUND_STRING( "It sharply senses even subtle changes in\n" "the sky and the land to predict natural\n" "disasters. It is a long-lived Pokémon that\n" "has a life-span of 100 years."), - FRONT_PIC(Absol, 56, 64), + .pokemonScale = 301, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Absol, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Absol, .frontAnimId = ANIM_CIRCULAR_VIBRATE, .frontAnimDelay = 45, - BACK_PIC(Absol, 64, 64), + .backPic = gMonBackPic_Absol, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Absol), - ICON(Absol, 0), + .palette = gMonPalette_Absol, + .shinyPalette = gMonShinyPalette_Absol, + .iconSprite = gMonIcon_Absol, + .iconPalIndex = 0, + FOOTPRINT(Absol) + .levelUpLearnset = sAbsolLevelUpLearnset, + .teachableLearnset = sAbsolTeachableLearnset, + .formSpeciesIdTable = sAbsolFormSpeciesIdTable, + .formChangeTable = sAbsolFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_ABSOL_MEGA] = { - ABSOL_MISC_INFO, .baseHP = 65, .baseAttack = 150, .baseDefense = 60, .baseSpeed = 115, .baseSpAttack = 115, .baseSpDefense = 60, + .types = MON_TYPES(TYPE_DARK), + .catchRate = 30, .expYield = 198, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE }, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = TRUE, + .speciesName = _("Absol"), .cryId = CRY_ABSOL_MEGA, + .natDexNum = NATIONAL_DEX_ABSOL, + .categoryName = _("Disaster"), + .height = 12, .weight = 490, .description = COMPOUND_STRING( "As the energy of Mega Evolution fills it,\n" "its fur bristles. What you see on its back\n" "are not true wings, and this Pokémon isn't\n" "able to fly."), - FRONT_PIC(AbsolMega, 64, 64), + .pokemonScale = 301, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_AbsolMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_AbsolMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(AbsolMega, 64, 64), + .backPic = gMonBackPic_AbsolMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(AbsolMega), - ICON(AbsolMega, 0), + .palette = gMonPalette_AbsolMega, + .shinyPalette = gMonShinyPalette_AbsolMega, + .iconSprite = gMonIcon_AbsolMega, + .iconPalIndex = 0, + FOOTPRINT(Absol) .isMegaEvolution = TRUE, + .levelUpLearnset = sAbsolLevelUpLearnset, + .teachableLearnset = sAbsolTeachableLearnset, + .formSpeciesIdTable = sAbsolFormSpeciesIdTable, + .formChangeTable = sAbsolFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_ABSOL @@ -6466,15 +7726,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 190, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 74, .evYield_HP = 1, + .itemRare = ITEM_SNOWBALL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_MINERAL), .abilities = { ABILITY_INNER_FOCUS, ABILITY_ICE_BODY, ABILITY_MOODY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Snorunt"), @@ -6492,52 +7753,50 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Snorunt, 32, 40), + .frontPic = gMonFrontPic_Snorunt, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Snorunt, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .frontAnimDelay = 20, - BACK_PIC(Snorunt, 56, 48), + .backPic = gMonBackPic_Snorunt, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Snorunt), - ICON(Snorunt, 2), - .footprint = gMonFootprint_Snorunt, - LEARNSETS(Snorunt), + .palette = gMonPalette_Snorunt, + .shinyPalette = gMonShinyPalette_Snorunt, + .iconSprite = gMonIcon_Snorunt, + .iconPalIndex = 2, + FOOTPRINT(Snorunt) + .levelUpLearnset = sSnoruntLevelUpLearnset, + .teachableLearnset = sSnoruntTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_GLALIE}, - {EVO_ITEM_FEMALE, ITEM_SUN_STONE, SPECIES_FROSLASS}), + {EVO_ITEM_FEMALE, ITEM_DAWN_STONE, SPECIES_FROSLASS}), }, -#define GLALIE_MISC_INFO \ - .types = { TYPE_ICE, TYPE_ICE }, \ - .catchRate = 75, \ - .evYield_HP = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL },\ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Glalie"), \ - .natDexNum = NATIONAL_DEX_GLALIE, \ - .categoryName = _("Face"), \ - .footprint = gMonFootprint_Glalie, \ - LEARNSETS(Glalie), \ - .formSpeciesIdTable = sGlalieFormSpeciesIdTable, \ - .formChangeTable = sGlalieFormChangeTable - [SPECIES_GLALIE] = { - GLALIE_MISC_INFO, .baseHP = 80, .baseAttack = 80, .baseDefense = 80, .baseSpeed = 80, .baseSpAttack = 80, .baseSpDefense = 80, - .expYield = 168, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 168 : 187, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_MINERAL), .abilities = { ABILITY_INNER_FOCUS, ABILITY_ICE_BODY, ABILITY_MOODY }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Glalie"), .cryId = CRY_GLALIE, + .natDexNum = NATIONAL_DEX_GLALIE, + .categoryName = _("Face"), .height = 15, .weight = 2565, .description = COMPOUND_STRING( @@ -6549,31 +7808,51 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 344, .trainerOffset = 0, - FRONT_PIC(Glalie, 56, 56), + .frontPic = gMonFrontPic_Glalie, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Glalie, .frontAnimId = ANIM_ZIGZAG_FAST, .enemyMonElevation = 12, - BACK_PIC(Glalie, 64, 48), + .backPic = gMonBackPic_Glalie, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Glalie), - ICON(Glalie, 0), + .palette = gMonPalette_Glalie, + .shinyPalette = gMonShinyPalette_Glalie, + .iconSprite = gMonIcon_Glalie, + .iconPalIndex = 0, + FOOTPRINT(Glalie) + .levelUpLearnset = sGlalieLevelUpLearnset, + .teachableLearnset = sGlalieTeachableLearnset, + .formSpeciesIdTable = sGlalieFormSpeciesIdTable, + .formChangeTable = sGlalieFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_GLALIE_MEGA] = { - GLALIE_MISC_INFO, .baseHP = 80, .baseAttack = 120, .baseDefense = 80, .baseSpeed = 100, .baseSpAttack = 120, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 75, .expYield = 203, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_MINERAL), .abilities = { ABILITY_REFRIGERATE, ABILITY_REFRIGERATE, ABILITY_REFRIGERATE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Glalie"), .cryId = CRY_GLALIE_MEGA, + .natDexNum = NATIONAL_DEX_GLALIE, + .categoryName = _("Face"), .height = 21, .weight = 3502, .description = COMPOUND_STRING( @@ -6584,17 +7863,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 344, .trainerOffset = 0, - FRONT_PIC(GlalieMega, 56, 64), + .frontPic = gMonFrontPic_GlalieMega, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_GlalieMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(GlalieMega, 64, 48), + .backPic = gMonBackPic_GlalieMega, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(GlalieMega), - ICON(GlalieMega, 0), + .palette = gMonPalette_GlalieMega, + .shinyPalette = gMonShinyPalette_GlalieMega, + .iconSprite = gMonIcon_GlalieMega, + .iconPalIndex = 0, + FOOTPRINT(Glalie) .isMegaEvolution = TRUE, + .levelUpLearnset = sGlalieLevelUpLearnset, + .teachableLearnset = sGlalieTeachableLearnset, + .formSpeciesIdTable = sGlalieFormSpeciesIdTable, + .formChangeTable = sGlalieFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS @@ -6607,15 +7895,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 110, .baseSpAttack = 80, .baseSpDefense = 70, - .types = { TYPE_ICE, TYPE_GHOST }, + .types = MON_TYPES(TYPE_ICE, TYPE_GHOST), .catchRate = 75, - .expYield = 168, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 168 : 187, .evYield_Speed = 2, .genderRatio = MON_FEMALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_MINERAL), .abilities = { ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_CURSED_BODY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Froslass"), @@ -6633,18 +7921,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Froslass, 48, 48), + .frontPic = gMonFrontPic_Froslass, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Froslass, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 7, - BACK_PIC(Froslass, 64, 64), + .backPic = gMonBackPic_Froslass, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Froslass), - ICON(Froslass, 0), - .footprint = gMonFootprint_Froslass, - LEARNSETS(Froslass), + .palette = gMonPalette_Froslass, + .shinyPalette = gMonShinyPalette_Froslass, + .iconSprite = gMonIcon_Froslass, + .iconPalIndex = 0, + FOOTPRINT(Froslass) + .levelUpLearnset = sFroslassLevelUpLearnset, + .teachableLearnset = sFroslassTeachableLearnset, }, #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_SNORUNT @@ -6658,15 +7951,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 25, .baseSpAttack = 55, .baseSpDefense = 50, - .types = { TYPE_ICE, TYPE_WATER }, + .types = MON_TYPES(TYPE_ICE, TYPE_WATER), .catchRate = 255, - .expYield = 58, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 58 : 75, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_ICE_BODY, ABILITY_OBLIVIOUS }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Spheal"), @@ -6684,18 +7977,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Spheal, 40, 48), + .frontPic = gMonFrontPic_Spheal, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Spheal, .frontAnimId = ANIM_SPIN_LONG, .frontAnimDelay = 15, - BACK_PIC(Spheal, 48, 40), + .backPic = gMonBackPic_Spheal, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Spheal), - ICON(Spheal, 2), - .footprint = gMonFootprint_Spheal, - LEARNSETS(Spheal), + .palette = gMonPalette_Spheal, + .shinyPalette = gMonShinyPalette_Spheal, + .iconSprite = gMonIcon_Spheal, + .iconPalIndex = 2, + FOOTPRINT(Spheal) + .levelUpLearnset = sSphealLevelUpLearnset, + .teachableLearnset = sSphealTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_SEALEO}), }, @@ -6707,15 +8005,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 45, .baseSpAttack = 75, .baseSpDefense = 70, - .types = { TYPE_ICE, TYPE_WATER }, + .types = MON_TYPES(TYPE_ICE, TYPE_WATER), .catchRate = 120, - .expYield = 144, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 144 : 128, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_ICE_BODY, ABILITY_OBLIVIOUS }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Sealeo"), @@ -6733,17 +8031,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sealeo, 56, 48), + .frontPic = gMonFrontPic_Sealeo, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Sealeo, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Sealeo, 64, 48), + .backPic = gMonBackPic_Sealeo, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Sealeo), - ICON(Sealeo, 2), - .footprint = gMonFootprint_Sealeo, - LEARNSETS(Sealeo), + .palette = gMonPalette_Sealeo, + .shinyPalette = gMonShinyPalette_Sealeo, + .iconSprite = gMonIcon_Sealeo, + .iconPalIndex = 2, + FOOTPRINT(Sealeo) + .levelUpLearnset = sSealeoLevelUpLearnset, + .teachableLearnset = sSealeoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 44, SPECIES_WALREIN}), }, @@ -6755,15 +8058,21 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 65, .baseSpAttack = 95, .baseSpDefense = 90, - .types = { TYPE_ICE, TYPE_WATER }, + .types = MON_TYPES(TYPE_ICE, TYPE_WATER), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 265, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 239, + #else + .expYield = 192, + #endif .evYield_HP = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_ICE_BODY, ABILITY_OBLIVIOUS }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Walrein"), @@ -6781,17 +8090,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Walrein, 64, 64), + .frontPic = gMonFrontPic_Walrein, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Walrein, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Walrein, 64, 64), + .backPic = gMonBackPic_Walrein, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Walrein), - ICON(Walrein, 0), - .footprint = gMonFootprint_Walrein, - LEARNSETS(Walrein), + .palette = gMonPalette_Walrein, + .shinyPalette = gMonShinyPalette_Walrein, + .iconSprite = gMonIcon_Walrein, + .iconPalIndex = 0, + FOOTPRINT(Walrein) + .levelUpLearnset = sWalreinLevelUpLearnset, + .teachableLearnset = sWalreinTeachableLearnset, }, #endif //P_FAMILY_SPHEAL @@ -6804,9 +8118,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 32, .baseSpAttack = 74, .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 255, - .expYield = 69, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 69 : 142, .evYield_Defense = 1, .itemCommon = ITEM_PEARL, .itemRare = ITEM_BIG_PEARL, @@ -6814,7 +8128,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_SHELL_ARMOR, ABILITY_NONE, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Clamperl"), @@ -6832,17 +8146,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 22, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Clamperl, 40, 48), + .frontPic = gMonFrontPic_Clamperl, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Clamperl, .frontAnimId = ANIM_TWIST, - BACK_PIC(Clamperl, 56, 40), + .backPic = gMonBackPic_Clamperl, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Clamperl), - ICON(Clamperl, 0), - .footprint = gMonFootprint_Clamperl, - LEARNSETS(Clamperl), + .palette = gMonPalette_Clamperl, + .shinyPalette = gMonShinyPalette_Clamperl, + .iconSprite = gMonIcon_Clamperl, + .iconPalIndex = 0, + FOOTPRINT(Clamperl) + .levelUpLearnset = sClamperlLevelUpLearnset, + .teachableLearnset = sClamperlTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL}, {EVO_TRADE_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS}, {EVO_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL}, @@ -6857,9 +8176,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 52, .baseSpAttack = 94, .baseSpDefense = 75, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 60, - .expYield = 170, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 170 : 178, .evYield_Attack = 1, .evYield_Defense = 1, .itemRare = ITEM_DEEP_SEA_TOOTH, @@ -6867,7 +8186,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Huntail"), @@ -6885,17 +8204,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Huntail, 64, 64), + .frontPic = gMonFrontPic_Huntail, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Huntail, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Huntail, 64, 56), + .backPic = gMonBackPic_Huntail, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Huntail), - ICON(Huntail, 0), - .footprint = gMonFootprint_Huntail, - LEARNSETS(Huntail), + .palette = gMonPalette_Huntail, + .shinyPalette = gMonShinyPalette_Huntail, + .iconSprite = gMonIcon_Huntail, + .iconPalIndex = 0, + FOOTPRINT(Huntail) + .levelUpLearnset = sHuntailLevelUpLearnset, + .teachableLearnset = sHuntailTeachableLearnset, }, [SPECIES_GOREBYSS] = @@ -6906,16 +8230,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 52, .baseSpAttack = 114, .baseSpDefense = 75, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 60, - .expYield = 170, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 170 : 178, .evYield_SpAttack = 2, .itemRare = ITEM_DEEP_SEA_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Gorebyss"), @@ -6933,17 +8257,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gorebyss, 64, 56), + .frontPic = gMonFrontPic_Gorebyss, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Gorebyss, .frontAnimId = ANIM_V_SLIDE_WOBBLE, - BACK_PIC(Gorebyss, 64, 56), + .backPic = gMonBackPic_Gorebyss, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Gorebyss), - ICON(Gorebyss, 0), - .footprint = gMonFootprint_Gorebyss, - LEARNSETS(Gorebyss), + .palette = gMonPalette_Gorebyss, + .shinyPalette = gMonShinyPalette_Gorebyss, + .iconSprite = gMonIcon_Gorebyss, + .iconPalIndex = 0, + FOOTPRINT(Gorebyss) + .levelUpLearnset = sGorebyssLevelUpLearnset, + .teachableLearnset = sGorebyssTeachableLearnset, }, #endif //P_FAMILY_CLAMPERL @@ -6956,9 +8285,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 55, .baseSpAttack = 45, .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_ROCK }, + .types = MON_TYPES(TYPE_WATER, TYPE_ROCK), .catchRate = 25, - .expYield = 170, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 170 : 198, .evYield_HP = 1, .evYield_Defense = 1, .itemRare = ITEM_DEEP_SEA_SCALE, @@ -6966,7 +8295,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_2), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_ROCK_HEAD, ABILITY_STURDY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Relicanth"), @@ -6984,19 +8313,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Relicanth, 56, 56), - FRONT_PIC_FEMALE(Relicanth, 56, 56), + .frontPic = gMonFrontPic_Relicanth, + .frontPicFemale = gMonFrontPic_RelicanthF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Relicanth, .frontAnimId = ANIM_TIP_MOVE_FORWARD, - BACK_PIC(Relicanth, 64, 40), - BACK_PIC_FEMALE(Relicanth, 64, 40), + .backPic = gMonBackPic_Relicanth, + .backPicFemale = gMonBackPic_RelicanthF, + .backPicSize = MON_COORDS_SIZE(64, 40), + .backPicSizeFemale = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Relicanth), - ICON(Relicanth, 2), - .footprint = gMonFootprint_Relicanth, - LEARNSETS(Relicanth), + .palette = gMonPalette_Relicanth, + .shinyPalette = gMonShinyPalette_Relicanth, + .iconSprite = gMonIcon_Relicanth, + .iconPalIndex = 2, + FOOTPRINT(Relicanth) + .levelUpLearnset = sRelicanthLevelUpLearnset, + .teachableLearnset = sRelicanthTeachableLearnset, }, #endif //P_FAMILY_RELICANTH @@ -7009,16 +8345,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 97, .baseSpAttack = 40, .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 225, - .expYield = 116, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 116 : 110, .evYield_Speed = 1, .itemCommon = ITEM_HEART_SCALE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Luvdisc"), @@ -7036,17 +8372,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Luvdisc, 32, 40), + .frontPic = gMonFrontPic_Luvdisc, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Luvdisc, .frontAnimId = ANIM_H_SLIDE_WOBBLE, - BACK_PIC(Luvdisc, 40, 48), + .backPic = gMonBackPic_Luvdisc, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SPRING_REPEATED, - PALETTES(Luvdisc), - ICON(Luvdisc, 0), - .footprint = gMonFootprint_Luvdisc, - LEARNSETS(Luvdisc), + .palette = gMonPalette_Luvdisc, + .shinyPalette = gMonShinyPalette_Luvdisc, + .iconSprite = gMonIcon_Luvdisc, + .iconPalIndex = 0, + FOOTPRINT(Luvdisc) + .levelUpLearnset = sLuvdiscLevelUpLearnset, + .teachableLearnset = sLuvdiscTeachableLearnset, }, #endif //P_FAMILY_LUVDISC @@ -7059,16 +8400,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 40, .baseSpDefense = 30, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 45, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 89, .evYield_Attack = 1, .itemRare = ITEM_DRAGON_FANG, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_ROCK_HEAD, ABILITY_NONE, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Bagon"), @@ -7086,17 +8427,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bagon, 32, 48), + .frontPic = gMonFrontPic_Bagon, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Bagon, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Bagon, 48, 56), + .backPic = gMonBackPic_Bagon, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Bagon), - ICON(Bagon, 0), - .footprint = gMonFootprint_Bagon, - LEARNSETS(Bagon), + .palette = gMonPalette_Bagon, + .shinyPalette = gMonShinyPalette_Bagon, + .iconSprite = gMonIcon_Bagon, + .iconPalIndex = 0, + FOOTPRINT(Bagon) + .levelUpLearnset = sBagonLevelUpLearnset, + .teachableLearnset = sBagonTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_SHELGON}), }, @@ -7108,16 +8454,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 50, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 45, - .expYield = 147, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 144, .evYield_Defense = 2, .itemRare = ITEM_DRAGON_FANG, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_ROCK_HEAD, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Shelgon"), @@ -7135,51 +8481,55 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shelgon, 48, 48), + .frontPic = gMonFrontPic_Shelgon, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Shelgon, .frontAnimId = ANIM_V_SLIDE, - BACK_PIC(Shelgon, 64, 40), + .backPic = gMonBackPic_Shelgon, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Shelgon), - ICON(Shelgon, 2), - .footprint = gMonFootprint_Shelgon, - LEARNSETS(Shelgon), + .palette = gMonPalette_Shelgon, + .shinyPalette = gMonShinyPalette_Shelgon, + .iconSprite = gMonIcon_Shelgon, + .iconPalIndex = 2, + FOOTPRINT(Shelgon) + .levelUpLearnset = sShelgonLevelUpLearnset, + .teachableLearnset = sShelgonTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 50, SPECIES_SALAMENCE}), }, -#define SALAMENCE_MISC_INFO \ - .types = { TYPE_DRAGON, TYPE_FLYING }, \ - .catchRate = 45, \ - .evYield_Attack = 3, \ - .itemRare = ITEM_DRAGON_FANG, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON },\ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Salamence"), \ - .natDexNum = NATIONAL_DEX_SALAMENCE, \ - .categoryName = _("Dragon"), \ - .footprint = gMonFootprint_Salamence, \ - LEARNSETS(Salamence), \ - .formSpeciesIdTable = sSalamenceFormSpeciesIdTable, \ - .formChangeTable = sSalamenceFormChangeTable - [SPECIES_SALAMENCE] = { - SALAMENCE_MISC_INFO, .baseHP = 95, .baseAttack = 135, .baseDefense = 80, .baseSpeed = 100, .baseSpAttack = 110, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FLYING), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 218, + #endif + .evYield_Attack = 3, + .itemRare = ITEM_DRAGON_FANG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_MOXIE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Salamence"), .cryId = CRY_SALAMENCE, + .natDexNum = NATIONAL_DEX_SALAMENCE, + .categoryName = _("Dragon"), .height = 15, .weight = 1026, .description = COMPOUND_STRING( @@ -7191,31 +8541,52 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Salamence, 64, 64), + .frontPic = gMonFrontPic_Salamence, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Salamence, .frontAnimId = ANIM_H_SHAKE, .frontAnimDelay = 70, - BACK_PIC(Salamence, 56, 64), + .backPic = gMonBackPic_Salamence, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Salamence), - ICON(Salamence, 0), + .palette = gMonPalette_Salamence, + .shinyPalette = gMonShinyPalette_Salamence, + .iconSprite = gMonIcon_Salamence, + .iconPalIndex = 0, + FOOTPRINT(Salamence) + .levelUpLearnset = sSalamenceLevelUpLearnset, + .teachableLearnset = sSalamenceTeachableLearnset, + .formSpeciesIdTable = sSalamenceFormSpeciesIdTable, + .formChangeTable = sSalamenceFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_SALAMENCE_MEGA] = { - SALAMENCE_MISC_INFO, .baseHP = 95, .baseAttack = 145, .baseDefense = 130, .baseSpeed = 120, .baseSpAttack = 120, .baseSpDefense = 90, - .expYield = 315, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FLYING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 350 : 315, + .evYield_Attack = 3, + .itemRare = ITEM_DRAGON_FANG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_AERILATE, ABILITY_AERILATE, ABILITY_AERILATE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Salamence"), .cryId = CRY_SALAMENCE_MEGA, + .natDexNum = NATIONAL_DEX_SALAMENCE, + .categoryName = _("Dragon"), .height = 18, .weight = 1126, .description = COMPOUND_STRING( @@ -7227,16 +8598,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(SalamenceMega, 64, 64), + .frontPic = gMonFrontPic_SalamenceMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_SalamenceMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SalamenceMega, 56, 64), + .backPic = gMonBackPic_SalamenceMega, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(SalamenceMega), - ICON(SalamenceMega, 0), + .palette = gMonPalette_SalamenceMega, + .shinyPalette = gMonShinyPalette_SalamenceMega, + .iconSprite = gMonIcon_SalamenceMega, + .iconPalIndex = 0, + FOOTPRINT(Salamence) .isMegaEvolution = TRUE, + .levelUpLearnset = sSalamenceLevelUpLearnset, + .teachableLearnset = sSalamenceTeachableLearnset, + .formSpeciesIdTable = sSalamenceFormSpeciesIdTable, + .formChangeTable = sSalamenceFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_BAGON @@ -7250,16 +8630,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 30, .baseSpAttack = 35, .baseSpDefense = 60, - .types = { TYPE_STEEL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_STEEL, TYPE_PSYCHIC), .catchRate = 3, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 103, .evYield_Defense = 1, .itemRare = ITEM_METAL_COAT, .genderRatio = MON_GENDERLESS, .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Beldum"), @@ -7277,18 +8657,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -1, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Beldum, 48, 40), + .frontPic = gMonFrontPic_Beldum, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Beldum, .frontAnimId = ANIM_H_SHAKE, .enemyMonElevation = 8, - BACK_PIC(Beldum, 64, 48), + .backPic = gMonBackPic_Beldum, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Beldum), - ICON(Beldum, 0), - .footprint = gMonFootprint_Beldum, - LEARNSETS(Beldum), + .palette = gMonPalette_Beldum, + .shinyPalette = gMonShinyPalette_Beldum, + .iconSprite = gMonIcon_Beldum, + .iconPalIndex = 0, + FOOTPRINT(Beldum) + .tmIlliterate = TRUE, + .levelUpLearnset = sBeldumLevelUpLearnset, + .teachableLearnset = sBeldumTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_METANG}), }, @@ -7300,16 +8686,16 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 55, .baseSpDefense = 80, - .types = { TYPE_STEEL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_STEEL, TYPE_PSYCHIC), .catchRate = 3, - .expYield = 147, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 147 : 153, .evYield_Defense = 2, .itemRare = ITEM_METAL_COAT, .genderRatio = MON_GENDERLESS, .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Metang"), @@ -7327,51 +8713,55 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Metang, 64, 48), + .frontPic = gMonFrontPic_Metang, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Metang, .frontAnimId = ANIM_V_SLIDE, - BACK_PIC(Metang, 64, 40), + .backPic = gMonBackPic_Metang, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Metang), - ICON(Metang, 0), - .footprint = gMonFootprint_Metang, - LEARNSETS(Metang), + .palette = gMonPalette_Metang, + .shinyPalette = gMonShinyPalette_Metang, + .iconSprite = gMonIcon_Metang, + .iconPalIndex = 0, + FOOTPRINT(Metang) + .levelUpLearnset = sMetangLevelUpLearnset, + .teachableLearnset = sMetangTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_METAGROSS}), }, -#define METAGROSS_MISC_INFO \ - .types = { TYPE_STEEL, TYPE_PSYCHIC }, \ - .catchRate = 3, \ - .evYield_Defense = 3, \ - .itemRare = ITEM_METAL_COAT, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 40, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Metagross"), \ - .natDexNum = NATIONAL_DEX_METAGROSS, \ - .categoryName = _("Iron Leg"), \ - .footprint = gMonFootprint_Metagross, \ - LEARNSETS(Metagross), \ - .formSpeciesIdTable = sMetagrossFormSpeciesIdTable, \ - .formChangeTable = sMetagrossFormChangeTable - [SPECIES_METAGROSS] = { - METAGROSS_MISC_INFO, .baseHP = 80, .baseAttack = 135, .baseDefense = 130, .baseSpeed = 70, .baseSpAttack = 95, .baseSpDefense = 90, + .types = MON_TYPES(TYPE_STEEL, TYPE_PSYCHIC), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 210, + #endif + .evYield_Defense = 3, + .itemRare = ITEM_METAL_COAT, + .genderRatio = MON_GENDERLESS, + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Metagross"), .cryId = CRY_METAGROSS, + .natDexNum = NATIONAL_DEX_METAGROSS, + .categoryName = _("Iron Leg"), .height = 16, .weight = 5500, .description = COMPOUND_STRING( @@ -7383,30 +8773,51 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 4, .trainerScale = 447, .trainerOffset = 9, - FRONT_PIC(Metagross, 64, 48), + .frontPic = gMonFrontPic_Metagross, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Metagross, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Metagross, 64, 56), + .backPic = gMonBackPic_Metagross, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Metagross), - ICON(Metagross, 0), + .palette = gMonPalette_Metagross, + .shinyPalette = gMonShinyPalette_Metagross, + .iconSprite = gMonIcon_Metagross, + .iconPalIndex = 0, + FOOTPRINT(Metagross) + .levelUpLearnset = sMetagrossLevelUpLearnset, + .teachableLearnset = sMetagrossTeachableLearnset, + .formSpeciesIdTable = sMetagrossFormSpeciesIdTable, + .formChangeTable = sMetagrossFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_METAGROSS_MEGA] = { - METAGROSS_MISC_INFO, .baseHP = 80, .baseAttack = 145, .baseDefense = 150, .baseSpeed = 110, .baseSpAttack = 105, .baseSpDefense = 110, - .expYield = 315, + .types = MON_TYPES(TYPE_STEEL, TYPE_PSYCHIC), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 350 : 315, + .evYield_Defense = 3, + .itemRare = ITEM_METAL_COAT, + .genderRatio = MON_GENDERLESS, + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Metagross"), .cryId = CRY_METAGROSS_MEGA, + .natDexNum = NATIONAL_DEX_METAGROSS, + .categoryName = _("Iron Leg"), .height = 25, .weight = 9429, .description = COMPOUND_STRING( @@ -7417,17 +8828,26 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 4, .trainerScale = 447, .trainerOffset = 9, - FRONT_PIC(MetagrossMega, 64, 64), + .frontPic = gMonFrontPic_MetagrossMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_MetagrossMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 4, - BACK_PIC(MetagrossMega, 64, 56), + .backPic = gMonBackPic_MetagrossMega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(MetagrossMega), - ICON(MetagrossMega, 0), + .palette = gMonPalette_MetagrossMega, + .shinyPalette = gMonShinyPalette_MetagrossMega, + .iconSprite = gMonIcon_MetagrossMega, + .iconPalIndex = 0, + FOOTPRINT(Metagross) .isMegaEvolution = TRUE, + .levelUpLearnset = sMetagrossLevelUpLearnset, + .teachableLearnset = sMetagrossTeachableLearnset, + .formSpeciesIdTable = sMetagrossFormSpeciesIdTable, + .formChangeTable = sMetagrossFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_BELDUM @@ -7441,19 +8861,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 100, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 217, + #endif .evYield_Defense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_STURDY }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, - .isLegendary = TRUE, .speciesName = _("Regirock"), .cryId = CRY_REGIROCK, .natDexNum = NATIONAL_DEX_REGIROCK, @@ -7469,17 +8894,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 2, .trainerScale = 309, .trainerOffset = 1, - FRONT_PIC(Regirock, 64, 64), + .frontPic = gMonFrontPic_Regirock, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Regirock, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Regirock, 64, 56), + .backPic = gMonBackPic_Regirock, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Regirock), - ICON(Regirock, 2), - .footprint = gMonFootprint_Regirock, - LEARNSETS(Regirock), + .palette = gMonPalette_Regirock, + .shinyPalette = gMonShinyPalette_Regirock, + .iconSprite = gMonIcon_Regirock, + .iconPalIndex = 2, + FOOTPRINT(Regirock) + .isLegendary = TRUE, + .levelUpLearnset = sRegirockLevelUpLearnset, + .teachableLearnset = sRegirockTeachableLearnset, }, #endif //P_FAMILY_REGIROCK @@ -7492,18 +8923,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 100, .baseSpDefense = 200, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 216, + #endif .evYield_SpDefense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_BLUE, - .isLegendary = TRUE, .speciesName = _("Regice"), .cryId = CRY_REGICE, .natDexNum = NATIONAL_DEX_REGICE, @@ -7519,17 +8955,23 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 301, .trainerOffset = 2, - FRONT_PIC(Regice, 64, 64), + .frontPic = gMonFrontPic_Regice, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Regice, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Regice, 64, 48), + .backPic = gMonBackPic_Regice, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Regice), - ICON(Regice, 0), - .footprint = gMonFootprint_Regice, - LEARNSETS(Regice), + .palette = gMonPalette_Regice, + .shinyPalette = gMonShinyPalette_Regice, + .iconSprite = gMonIcon_Regice, + .iconPalIndex = 0, + FOOTPRINT(Regice) + .isLegendary = TRUE, + .levelUpLearnset = sRegiceLevelUpLearnset, + .teachableLearnset = sRegiceTeachableLearnset, }, #endif //P_FAMILY_REGICE @@ -7542,19 +8984,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 50, .baseSpAttack = 75, .baseSpDefense = 150, - .types = { TYPE_STEEL, TYPE_STEEL }, + .types = MON_TYPES(TYPE_STEEL), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 215, + #endif .evYield_Defense = 2, .evYield_SpDefense = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL }, .bodyColor = BODY_COLOR_GRAY, - .isLegendary = TRUE, .speciesName = _("Registeel"), .cryId = CRY_REGISTEEL, .natDexNum = NATIONAL_DEX_REGISTEEL, @@ -7570,52 +9017,56 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 359, .trainerOffset = 6, - FRONT_PIC(Registeel, 64, 56), + .frontPic = gMonFrontPic_Registeel, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Registeel, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Registeel, 64, 48), + .backPic = gMonBackPic_Registeel, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Registeel), - ICON(Registeel, 2), - .footprint = gMonFootprint_Registeel, - LEARNSETS(Registeel), + .palette = gMonPalette_Registeel, + .shinyPalette = gMonShinyPalette_Registeel, + .iconSprite = gMonIcon_Registeel, + .iconPalIndex = 2, + FOOTPRINT(Registeel) + .isLegendary = TRUE, + .levelUpLearnset = sRegisteelLevelUpLearnset, + .teachableLearnset = sRegisteelTeachableLearnset, }, #endif //P_FAMILY_REGISTEEL #if P_FAMILY_LATIAS -#define LATIAS_MISC_INFO \ - .types = { TYPE_DRAGON, TYPE_PSYCHIC }, \ - .catchRate = 3, \ - .evYield_SpDefense = 3, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 120, \ - .friendship = 90, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .speciesName = _("Latias"), \ - .natDexNum = NATIONAL_DEX_LATIAS, \ - .categoryName = _("Eon"), \ - .footprint = gMonFootprint_Latias, \ - LEARNSETS(Latias), \ - .formSpeciesIdTable = sLatiasFormSpeciesIdTable, \ - .formChangeTable = sLatiasFormChangeTable, \ - .isLegendary = TRUE - [SPECIES_LATIAS] = { - LATIAS_MISC_INFO, .baseHP = 80, .baseAttack = 80, .baseDefense = 90, .baseSpeed = 110, .baseSpAttack = 110, .baseSpDefense = 130, + .types = MON_TYPES(TYPE_DRAGON, TYPE_PSYCHIC), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + #else + .expYield = 211, + #endif + .evYield_SpDefense = 3, + .genderRatio = MON_FEMALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Latias"), .cryId = CRY_LATIAS, + .natDexNum = NATIONAL_DEX_LATIAS, + .categoryName = _("Eon"), .height = 14, .weight = 400, .description = COMPOUND_STRING( @@ -7627,32 +9078,52 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Latias, 64, 48), + .frontPic = gMonFrontPic_Latias, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Latias, .frontAnimId = ANIM_ZIGZAG_SLOW, .enemyMonElevation = 12, - BACK_PIC(Latias, 56, 64), + .backPic = gMonBackPic_Latias, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Latias), - ICON(Latias, 0), + .palette = gMonPalette_Latias, + .shinyPalette = gMonShinyPalette_Latias, + .iconSprite = gMonIcon_Latias, + .iconPalIndex = 0, + FOOTPRINT(Latias) + .isLegendary = TRUE, + .levelUpLearnset = sLatiasLevelUpLearnset, + .teachableLearnset = sLatiasTeachableLearnset, + .formSpeciesIdTable = sLatiasFormSpeciesIdTable, + .formChangeTable = sLatiasFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_LATIAS_MEGA] = { - LATIAS_MISC_INFO, .baseHP = 80, .baseAttack = 100, .baseDefense = 120, .baseSpeed = 110, .baseSpAttack = 140, .baseSpDefense = 150, - .expYield = 315, + .types = MON_TYPES(TYPE_DRAGON, TYPE_PSYCHIC), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 350 : 315, + .evYield_SpDefense = 3, + .genderRatio = MON_FEMALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_LEVITATE, ABILITY_LEVITATE, ABILITY_LEVITATE }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Latias"), .cryId = CRY_LATIAS_MEGA, + .natDexNum = NATIONAL_DEX_LATIAS, + .categoryName = _("Eon"), .height = 18, .weight = 520, .description = COMPOUND_STRING( @@ -7664,53 +9135,61 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(LatiasMega, 64, 64), + .frontPic = gMonFrontPic_LatiasMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_LatiasMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(LatiasMega, 64, 64), + .backPic = gMonBackPic_LatiasMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(LatiasMega), - ICON(LatiasMega, 2), + .palette = gMonPalette_LatiasMega, + .shinyPalette = gMonShinyPalette_LatiasMega, + .iconSprite = gMonIcon_LatiasMega, + .iconPalIndex = 2, + FOOTPRINT(Latias) + .isLegendary = TRUE, .isMegaEvolution = TRUE, + .levelUpLearnset = sLatiasLevelUpLearnset, + .teachableLearnset = sLatiasTeachableLearnset, + .formSpeciesIdTable = sLatiasFormSpeciesIdTable, + .formChangeTable = sLatiasFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_LATIAS #if P_FAMILY_LATIOS -#define LATIOS_MISC_INFO \ - .types = { TYPE_DRAGON, TYPE_PSYCHIC }, \ - .catchRate = 3, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_MALE, \ - .eggCycles = 120, \ - .friendship = 90, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .isLegendary = TRUE, \ - .speciesName = _("Latios"), \ - .natDexNum = NATIONAL_DEX_LATIOS, \ - .categoryName = _("Eon"), \ - .footprint = gMonFootprint_Latios, \ - LEARNSETS(Latios), \ - .formSpeciesIdTable = sLatiosFormSpeciesIdTable, \ - .formChangeTable = sLatiosFormChangeTable - [SPECIES_LATIOS] = { - LATIOS_MISC_INFO, .baseHP = 80, .baseAttack = 90, .baseDefense = 80, .baseSpeed = 110, .baseSpAttack = 130, .baseSpDefense = 110, + .types = MON_TYPES(TYPE_DRAGON, TYPE_PSYCHIC), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + #else + .expYield = 211, + #endif + .evYield_SpAttack = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Latios"), .cryId = CRY_LATIOS, + .natDexNum = NATIONAL_DEX_LATIOS, + .categoryName = _("Eon"), .height = 20, .weight = 600, .description = COMPOUND_STRING( @@ -7722,32 +9201,52 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 294, .trainerOffset = 3, - FRONT_PIC(Latios, 64, 64), + .frontPic = gMonFrontPic_Latios, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Latios, .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, .enemyMonElevation = 6, - BACK_PIC(Latios, 56, 64), + .backPic = gMonBackPic_Latios, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Latios), - ICON(Latios, 0), + .palette = gMonPalette_Latios, + .shinyPalette = gMonShinyPalette_Latios, + .iconSprite = gMonIcon_Latios, + .iconPalIndex = 0, + FOOTPRINT(Latios) + .isLegendary = TRUE, + .levelUpLearnset = sLatiosLevelUpLearnset, + .teachableLearnset = sLatiosTeachableLearnset, + .formSpeciesIdTable = sLatiosFormSpeciesIdTable, + .formChangeTable = sLatiosFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_LATIOS_MEGA] = { - LATIOS_MISC_INFO, .baseHP = 80, .baseAttack = 130, .baseDefense = 100, .baseSpeed = 110, .baseSpAttack = 160, .baseSpDefense = 120, - .expYield = 315, + .types = MON_TYPES(TYPE_DRAGON, TYPE_PSYCHIC), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 350 : 315, + .evYield_SpAttack = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_LEVITATE, ABILITY_LEVITATE, ABILITY_LEVITATE }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Latios"), .cryId = CRY_LATIOS_MEGA, + .natDexNum = NATIONAL_DEX_LATIOS, + .categoryName = _("Eon"), .height = 23, .weight = 700, .description = COMPOUND_STRING( @@ -7759,53 +9258,61 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 294, .trainerOffset = 3, - FRONT_PIC(LatiosMega, 64, 64), + .frontPic = gMonFrontPic_LatiosMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_LatiosMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(LatiosMega, 64, 64), + .backPic = gMonBackPic_LatiosMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(LatiosMega), - ICON(LatiosMega, 2), + .palette = gMonPalette_LatiosMega, + .shinyPalette = gMonShinyPalette_LatiosMega, + .iconSprite = gMonIcon_LatiosMega, + .iconPalIndex = 2, + FOOTPRINT(Latios) + .isLegendary = TRUE, .isMegaEvolution = TRUE, + .levelUpLearnset = sLatiosLevelUpLearnset, + .teachableLearnset = sLatiosTeachableLearnset, + .formSpeciesIdTable = sLatiosFormSpeciesIdTable, + .formChangeTable = sLatiosFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_LATIOS #if P_FAMILY_KYOGRE -#define KYOGRE_MISC_INFO \ - .types = { TYPE_WATER, TYPE_WATER }, \ - .catchRate = 3, \ - .expYield = 302, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .bodyColor = BODY_COLOR_BLUE, \ - .isLegendary = TRUE, \ - .speciesName = _("Kyogre"), \ - .natDexNum = NATIONAL_DEX_KYOGRE, \ - .categoryName = _("Sea Basin"), \ - .footprint = gMonFootprint_Kyogre, \ - LEARNSETS(Kyogre), \ - .formSpeciesIdTable = sKyogreFormSpeciesIdTable, \ - .formChangeTable = sKyogreFormChangeTable - [SPECIES_KYOGRE] = { - KYOGRE_MISC_INFO, .baseHP = 100, .baseAttack = 100, .baseDefense = 90, .baseSpeed = 90, .baseSpAttack = 150, .baseSpDefense = 140, - .abilities = { ABILITY_DRIZZLE, ABILITY_NONE }, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 335, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 302, + #else + .expYield = 218, + #endif + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_DRIZZLE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Kyogre"), .cryId = CRY_KYOGRE, + .natDexNum = NATIONAL_DEX_KYOGRE, + .categoryName = _("Sea Basin"), .height = 45, .weight = 3520, .description = COMPOUND_STRING( @@ -7817,29 +9324,51 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 614, .trainerOffset = 13, - FRONT_PIC(Kyogre, 64, 64), + .frontPic = gMonFrontPic_Kyogre, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Kyogre, .frontAnimId = ANIM_SWING_CONCAVE_FAST_SHORT, .frontAnimDelay = 60, - BACK_PIC(Kyogre, 64, 32), + .backPic = gMonBackPic_Kyogre, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 18, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Kyogre), - ICON(Kyogre, 2), + .palette = gMonPalette_Kyogre, + .shinyPalette = gMonShinyPalette_Kyogre, + .iconSprite = gMonIcon_Kyogre, + .iconPalIndex = 2, + FOOTPRINT(Kyogre) + .isLegendary = TRUE, + .levelUpLearnset = sKyogreLevelUpLearnset, + .teachableLearnset = sKyogreTeachableLearnset, + .formSpeciesIdTable = sKyogreFormSpeciesIdTable, + .formChangeTable = sKyogreFormChangeTable, }, #if P_PRIMAL_REVERSIONS [SPECIES_KYOGRE_PRIMAL] = { - KYOGRE_MISC_INFO, .baseHP = 100, .baseAttack = 150, .baseDefense = 90, .baseSpeed = 90, .baseSpAttack = 180, .baseSpDefense = 160, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 385 : 347, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRIMORDIAL_SEA, ABILITY_PRIMORDIAL_SEA }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Kyogre"), .cryId = CRY_KYOGRE_PRIMAL, + .natDexNum = NATIONAL_DEX_KYOGRE, + .categoryName = _("Sea Basin"), .height = 98, .weight = 4300, .description = COMPOUND_STRING( @@ -7851,52 +9380,60 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 515, .trainerOffset = 14, - FRONT_PIC(KyogrePrimal, 64, 64), + .frontPic = gMonFrontPic_KyogrePrimal, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_KyogrePrimal, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(KyogrePrimal, 64, 32), + .backPic = gMonBackPic_KyogrePrimal, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 18, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(KyogrePrimal), - ICON(KyogrePrimal, 0), + .palette = gMonPalette_KyogrePrimal, + .shinyPalette = gMonShinyPalette_KyogrePrimal, + .iconSprite = gMonIcon_KyogrePrimal, + .iconPalIndex = 0, + FOOTPRINT(Kyogre) + .isLegendary = TRUE, .isPrimalReversion = TRUE, + .levelUpLearnset = sKyogreLevelUpLearnset, + .teachableLearnset = sKyogreTeachableLearnset, + .formSpeciesIdTable = sKyogreFormSpeciesIdTable, + .formChangeTable = sKyogreFormChangeTable, }, #endif //P_PRIMAL_REVERSIONS #endif //P_FAMILY_KYOGRE #if P_FAMILY_GROUDON -#define GROUDON_MISC_INFO \ - .catchRate = 3, \ - .expYield = 302, \ - .evYield_Attack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .bodyColor = BODY_COLOR_RED, \ - .isLegendary = TRUE, \ - .speciesName = _("Groudon"), \ - .cryId = CRY_GROUDON, \ - .natDexNum = NATIONAL_DEX_GROUDON, \ - .categoryName = _("Continent"), \ - .footprint = gMonFootprint_Groudon, \ - LEARNSETS(Groudon), \ - .formSpeciesIdTable = sGroudonFormSpeciesIdTable, \ - .formChangeTable = sGroudonFormChangeTable - [SPECIES_GROUDON] = { - GROUDON_MISC_INFO, .baseHP = 100, .baseAttack = 150, .baseDefense = 140, .baseSpeed = 90, .baseSpAttack = 100, .baseSpDefense = 90, - .types = { TYPE_GROUND, TYPE_GROUND }, - .abilities = { ABILITY_DROUGHT, ABILITY_NONE }, + .types = MON_TYPES(TYPE_GROUND), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 335, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 302, + #else + .expYield = 218, + #endif + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_DROUGHT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Groudon"), + .cryId = CRY_GROUDON, + .natDexNum = NATIONAL_DEX_GROUDON, + .categoryName = _("Continent"), .height = 35, .weight = 9500, .description = COMPOUND_STRING( @@ -7908,29 +9445,51 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 515, .trainerOffset = 14, - FRONT_PIC(Groudon, 64, 64), + .frontPic = gMonFrontPic_Groudon, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Groudon, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Groudon, 64, 48), + .backPic = gMonBackPic_Groudon, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Groudon), - ICON(Groudon, 0), + .palette = gMonPalette_Groudon, + .shinyPalette = gMonShinyPalette_Groudon, + .iconSprite = gMonIcon_Groudon, + .iconPalIndex = 0, + FOOTPRINT(Groudon) + .isLegendary = TRUE, + .levelUpLearnset = sGroudonLevelUpLearnset, + .teachableLearnset = sGroudonTeachableLearnset, + .formSpeciesIdTable = sGroudonFormSpeciesIdTable, + .formChangeTable = sGroudonFormChangeTable, }, #if P_PRIMAL_REVERSIONS [SPECIES_GROUDON_PRIMAL] = { - GROUDON_MISC_INFO, .baseHP = 100, .baseAttack = 180, .baseDefense = 160, .baseSpeed = 90, .baseSpAttack = 150, .baseSpDefense = 90, - .types = { TYPE_GROUND, TYPE_FIRE }, + .types = MON_TYPES(TYPE_GROUND, TYPE_FIRE), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 385 : 347, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_DESOLATE_LAND, ABILITY_DESOLATE_LAND }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Groudon"), + .cryId = CRY_GROUDON, + .natDexNum = NATIONAL_DEX_GROUDON, + .categoryName = _("Continent"), .height = 50, .weight = 9997, .description = COMPOUND_STRING( @@ -7942,7 +9501,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 515, .trainerOffset = 14, - FRONT_PIC(GroudonPrimal, 64, 64), + .frontPic = gMonFrontPic_GroudonPrimal, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_GroudonPrimal, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, @@ -7950,46 +9510,52 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(GroudonPrimal), - ICON(GroudonPrimal, 0), + .palette = gMonPalette_GroudonPrimal, + .shinyPalette = gMonShinyPalette_GroudonPrimal, + .iconSprite = gMonIcon_GroudonPrimal, + .iconPalIndex = 0, + FOOTPRINT(Groudon) + .isLegendary = TRUE, .isPrimalReversion = TRUE, + .levelUpLearnset = sGroudonLevelUpLearnset, + .teachableLearnset = sGroudonTeachableLearnset, + .formSpeciesIdTable = sGroudonFormSpeciesIdTable, + .formChangeTable = sGroudonFormChangeTable, }, #endif //P_PRIMAL_REVERSIONS #endif //P_FAMILY_GROUDON #if P_FAMILY_RAYQUAZA -#define RAYQUAZA_MISC_INFO \ - .types = { TYPE_DRAGON, TYPE_FLYING }, \ - .catchRate = 45, \ - .expYield = 306, \ - .evYield_Attack = 2, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Rayquaza"), \ - .cryId = CRY_RAYQUAZA, \ - .natDexNum = NATIONAL_DEX_RAYQUAZA, \ - .categoryName = _("Sky High"), \ - .footprint = gMonFootprint_Rayquaza, \ - LEARNSETS(Rayquaza), \ - .formSpeciesIdTable = sRayquazaFormSpeciesIdTable, \ - .formChangeTable = sRayquazaFormChangeTable, \ - .isLegendary = TRUE - [SPECIES_RAYQUAZA] = { - RAYQUAZA_MISC_INFO, .baseHP = 105, .baseAttack = 150, .baseDefense = 90, .baseSpeed = 95, .baseSpAttack = 150, .baseSpDefense = 90, - .abilities = { ABILITY_AIR_LOCK, ABILITY_NONE }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FLYING), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 340, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 306, + #else + .expYield = 220, + #endif + .evYield_Attack = 2, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_AIR_LOCK, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Rayquaza"), + .cryId = CRY_RAYQUAZA, + .natDexNum = NATIONAL_DEX_RAYQUAZA, + .categoryName = _("Sky High"), .height = 70, .weight = 2065, .description = COMPOUND_STRING( @@ -8001,30 +9567,54 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 448, .trainerOffset = 12, - FRONT_PIC(Rayquaza, 64, 64), + .frontPic = gMonFrontPic_Rayquaza, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Rayquaza, .frontAnimId = ANIM_H_SHAKE, .frontAnimDelay = 60, .enemyMonElevation = 6, - BACK_PIC(Rayquaza, 64, 64), + .backPic = gMonBackPic_Rayquaza, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Rayquaza), - ICON(Rayquaza, 1), + .palette = gMonPalette_Rayquaza, + .shinyPalette = gMonShinyPalette_Rayquaza, + .iconSprite = gMonIcon_Rayquaza, + .iconPalIndex = 1, + FOOTPRINT(Rayquaza) + .isLegendary = TRUE, + .levelUpLearnset = sRayquazaLevelUpLearnset, + .teachableLearnset = sRayquazaTeachableLearnset, + .formSpeciesIdTable = sRayquazaFormSpeciesIdTable, + .formChangeTable = sRayquazaFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_RAYQUAZA_MEGA] = { - RAYQUAZA_MISC_INFO, .baseHP = 105, .baseAttack = 180, .baseDefense = 100, .baseSpeed = 115, .baseSpAttack = 180, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FLYING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 390 : 351, + .evYield_Attack = 2, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_DELTA_STREAM, ABILITY_DELTA_STREAM, ABILITY_DELTA_STREAM }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Rayquaza"), + .cryId = CRY_RAYQUAZA, + .natDexNum = NATIONAL_DEX_RAYQUAZA, + .categoryName = _("Sky High"), .height = 108, .weight = 3920, .description = COMPOUND_STRING( @@ -8036,17 +9626,27 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 0, .trainerScale = 448, .trainerOffset = 12, - FRONT_PIC(RayquazaMega, 64, 64), + .frontPic = gMonFrontPic_RayquazaMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_RayquazaMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 4, - BACK_PIC(RayquazaMega, 64, 64), + .backPic = gMonBackPic_RayquazaMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, - PALETTES(RayquazaMega), - ICON(RayquazaMega, 1), + .palette = gMonPalette_RayquazaMega, + .shinyPalette = gMonShinyPalette_RayquazaMega, + .iconSprite = gMonIcon_RayquazaMega, + .iconPalIndex = 1, + FOOTPRINT(Rayquaza) + .isLegendary = TRUE, .isMegaEvolution = TRUE, + .levelUpLearnset = sRayquazaLevelUpLearnset, + .teachableLearnset = sRayquazaTeachableLearnset, + .formSpeciesIdTable = sRayquazaFormSpeciesIdTable, + .formChangeTable = sRayquazaFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_RAYQUAZA @@ -8060,9 +9660,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .baseSpeed = 100, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_STEEL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_STEEL, TYPE_PSYCHIC), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 215, + #endif .evYield_HP = 3, .itemCommon = ITEM_STAR_PIECE, .itemRare = ITEM_STAR_PIECE, @@ -8070,10 +9676,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, - .isMythical = TRUE, .speciesName = _("Jirachi"), .cryId = CRY_JIRACHI, .natDexNum = NATIONAL_DEX_JIRACHI, @@ -8089,139 +9694,243 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = -8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Jirachi, 56, 48), + .frontPic = gMonFrontPic_Jirachi, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Jirachi, .frontAnimId = ANIM_RISING_WOBBLE, .enemyMonElevation = 14, - BACK_PIC(Jirachi, 64, 56), + .backPic = gMonBackPic_Jirachi, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Jirachi), - ICON(Jirachi, 0), - .footprint = gMonFootprint_Jirachi, - LEARNSETS(Jirachi), + .palette = gMonPalette_Jirachi, + .shinyPalette = gMonShinyPalette_Jirachi, + .iconSprite = gMonIcon_Jirachi, + .iconPalIndex = 0, + FOOTPRINT(Jirachi) + .isMythical = TRUE, + .levelUpLearnset = sJirachiLevelUpLearnset, + .teachableLearnset = sJirachiTeachableLearnset, }, #endif //P_FAMILY_JIRACHI #if P_FAMILY_DEOXYS -#define DEOXYS_MISC_INFO \ - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, \ - .catchRate = 3, \ - .expYield = 270, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ - .abilities = { ABILITY_PRESSURE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_RED, \ - .isMythical = TRUE, \ - .speciesName = _("Deoxys"), \ - .cryId = CRY_DEOXYS, \ - .natDexNum = NATIONAL_DEX_DEOXYS, \ - .categoryName = _("DNA"), \ - .height = 17, \ - .weight = 608, \ - .description = gDeoxysNormalPokedexText, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 290, \ - .trainerOffset = 2, \ - .footprint = gMonFootprint_Deoxys, \ - .formSpeciesIdTable = sDeoxysFormSpeciesIdTable +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define DEOXYS_EXP_YIELD 300 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define DEOXYS_EXP_YIELD 270 +#else + #define DEOXYS_EXP_YIELD 215 +#endif [SPECIES_DEOXYS_NORMAL] = { - DEOXYS_MISC_INFO, .baseHP = 50, .baseAttack = 150, .baseDefense = 50, .baseSpeed = 150, .baseSpAttack = 150, .baseSpDefense = 50, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 3, + .expYield = DEOXYS_EXP_YIELD, .evYield_Attack = 1, .evYield_Speed = 1, .evYield_SpAttack = 1, - FRONT_PIC(DeoxysNormal, 64, 64), + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Deoxys"), + .cryId = CRY_DEOXYS, + .natDexNum = NATIONAL_DEX_DEOXYS, + .categoryName = _("DNA"), + .height = 17, + .weight = 608, + .description = gDeoxysNormalPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 2, + .frontPic = gMonFrontPic_DeoxysNormal, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DeoxysNormal, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(DeoxysNormal, 64, 56), + .backPic = gMonBackPic_DeoxysNormal, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(DeoxysNormal), - ICON(DeoxysNormal, 0), - LEARNSETS(DeoxysNormal), + .palette = gMonPalette_DeoxysNormal, + .shinyPalette = gMonShinyPalette_DeoxysNormal, + .iconSprite = gMonIcon_DeoxysNormal, + .iconPalIndex = 0, + FOOTPRINT(Deoxys) + .isMythical = TRUE, + .levelUpLearnset = sDeoxysNormalLevelUpLearnset, + .teachableLearnset = sDeoxysNormalTeachableLearnset, + .formSpeciesIdTable = sDeoxysFormSpeciesIdTable, + .formChangeTable = sDeoxysNormalFormChangeTable, }, [SPECIES_DEOXYS_ATTACK] = { - DEOXYS_MISC_INFO, .baseHP = 50, .baseAttack = 180, .baseDefense = 20, .baseSpeed = 150, .baseSpAttack = 180, .baseSpDefense = 20, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 3, + .expYield = DEOXYS_EXP_YIELD, .evYield_Attack = 2, .evYield_SpAttack = 1, - FRONT_PIC(DeoxysAttack, 64, 64), + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Deoxys"), + .cryId = CRY_DEOXYS, + .natDexNum = NATIONAL_DEX_DEOXYS, + .categoryName = _("DNA"), + .height = 17, + .weight = 608, + .description = gDeoxysNormalPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 2, + .frontPic = gMonFrontPic_DeoxysAttack, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DeoxysAttack, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(DeoxysAttack, 64, 64), + .backPic = gMonBackPic_DeoxysAttack, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(DeoxysAttack), - ICON(DeoxysAttack, 0), - LEARNSETS(DeoxysAttack), + .palette = gMonPalette_DeoxysAttack, + .shinyPalette = gMonShinyPalette_DeoxysAttack, + .iconSprite = gMonIcon_DeoxysAttack, + .iconPalIndex = 0, + FOOTPRINT(Deoxys) + .isMythical = TRUE, + .levelUpLearnset = sDeoxysAttackLevelUpLearnset, + .teachableLearnset = sDeoxysAttackTeachableLearnset, + .formSpeciesIdTable = sDeoxysFormSpeciesIdTable, + .formChangeTable = sDeoxysAttackFormChangeTable, }, [SPECIES_DEOXYS_DEFENSE] = { - DEOXYS_MISC_INFO, .baseHP = 50, .baseAttack = 70, .baseDefense = 160, .baseSpeed = 90, .baseSpAttack = 70, .baseSpDefense = 160, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 3, + .expYield = DEOXYS_EXP_YIELD, .evYield_Defense = 2, .evYield_SpDefense = 1, - FRONT_PIC(DeoxysDefense, 56, 64), + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Deoxys"), + .cryId = CRY_DEOXYS, + .natDexNum = NATIONAL_DEX_DEOXYS, + .categoryName = _("DNA"), + .height = 17, + .weight = 608, + .description = gDeoxysNormalPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 2, + .frontPic = gMonFrontPic_DeoxysDefense, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DeoxysDefense, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(DeoxysDefense, 64, 56), + .backPic = gMonBackPic_DeoxysDefense, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(DeoxysDefense), - ICON(DeoxysDefense, 0), - LEARNSETS(DeoxysDefense), + .palette = gMonPalette_DeoxysDefense, + .shinyPalette = gMonShinyPalette_DeoxysDefense, + .iconSprite = gMonIcon_DeoxysDefense, + .iconPalIndex = 0, + FOOTPRINT(Deoxys) + .isMythical = TRUE, + .levelUpLearnset = sDeoxysDefenseLevelUpLearnset, + .teachableLearnset = sDeoxysDefenseTeachableLearnset, + .formSpeciesIdTable = sDeoxysFormSpeciesIdTable, + .formChangeTable = sDeoxysDefenseFormChangeTable, }, [SPECIES_DEOXYS_SPEED] = { - DEOXYS_MISC_INFO, .baseHP = 50, .baseAttack = 95, .baseDefense = 90, .baseSpeed = 180, .baseSpAttack = 95, .baseSpDefense = 90, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 3, + .expYield = DEOXYS_EXP_YIELD, .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, - FRONT_PIC(DeoxysSpeed, 64, 64), + .speciesName = _("Deoxys"), + .cryId = CRY_DEOXYS, + .natDexNum = NATIONAL_DEX_DEOXYS, + .categoryName = _("DNA"), + .height = 17, + .weight = 608, + .description = gDeoxysNormalPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 2, + .frontPic = gMonFrontPic_DeoxysSpeed, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_DeoxysSpeed, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(DeoxysSpeed, 64, 64), + .backPic = gMonBackPic_DeoxysSpeed, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(DeoxysSpeed), - ICON(DeoxysSpeed, 0), - LEARNSETS(DeoxysSpeed), + .palette = gMonPalette_DeoxysSpeed, + .shinyPalette = gMonShinyPalette_DeoxysSpeed, + .iconSprite = gMonIcon_DeoxysSpeed, + .iconPalIndex = 0, + FOOTPRINT(Deoxys) + .isMythical = TRUE, + .levelUpLearnset = sDeoxysSpeedLevelUpLearnset, + .teachableLearnset = sDeoxysSpeedTeachableLearnset, + .formSpeciesIdTable = sDeoxysFormSpeciesIdTable, + .formChangeTable = sDeoxysSpeedFormChangeTable, }, #endif //P_FAMILY_DEOXYS diff --git a/src/data/pokemon/species_info/gen_4.h b/src/data/pokemon/species_info/gen_4_families.h similarity index 53% rename from src/data/pokemon/species_info/gen_4.h rename to src/data/pokemon/species_info/gen_4_families.h index fd2f008cd..8cdd112e7 100644 --- a/src/data/pokemon/species_info/gen_4.h +++ b/src/data/pokemon/species_info/gen_4_families.h @@ -12,7 +12,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 31, .baseSpAttack = 45, .baseSpDefense = 55, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 64, .evYield_Attack = 1, @@ -20,7 +20,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Turtwig"), @@ -38,17 +38,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 20, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Turtwig, 40, 48), + .frontPic = gMonFrontPic_Turtwig, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Turtwig, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Turtwig, 48, 56), + .backPic = gMonBackPic_Turtwig, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Turtwig), - ICON(Turtwig, 1), - .footprint = gMonFootprint_Turtwig, - LEARNSETS(Turtwig), + .palette = gMonPalette_Turtwig, + .shinyPalette = gMonShinyPalette_Turtwig, + .iconSprite = gMonIcon_Turtwig, + .iconPalIndex = 1, + FOOTPRINT(Turtwig) + .levelUpLearnset = sTurtwigLevelUpLearnset, + .teachableLearnset = sTurtwigTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_GROTLE}), }, @@ -60,16 +65,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 36, .baseSpAttack = 55, .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 141, .evYield_Attack = 1, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Grotle"), @@ -87,17 +92,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Grotle, 56, 56), + .frontPic = gMonFrontPic_Grotle, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Grotle, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Grotle, 64, 48), + .backPic = gMonBackPic_Grotle, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Grotle), - ICON(Grotle, 1), - .footprint = gMonFootprint_Grotle, - LEARNSETS(Grotle), + .palette = gMonPalette_Grotle, + .shinyPalette = gMonShinyPalette_Grotle, + .iconSprite = gMonIcon_Grotle, + .iconPalIndex = 1, + FOOTPRINT(Grotle) + .levelUpLearnset = sGrotleLevelUpLearnset, + .teachableLearnset = sGrotleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_TORTERRA}), }, @@ -109,16 +119,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 56, .baseSpAttack = 75, .baseSpDefense = 85, - .types = { TYPE_GRASS, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GRASS, TYPE_GROUND), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 263, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 236, + #else + .expYield = 208, + #endif .evYield_Attack = 2, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -137,17 +153,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(Torterra, 64, 64), + .frontPic = gMonFrontPic_Torterra, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Torterra, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Torterra, 64, 56), + .backPic = gMonBackPic_Torterra, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, - PALETTES(Torterra), - ICON(Torterra, 1), - .footprint = gMonFootprint_Torterra, - LEARNSETS(Torterra), + .palette = gMonPalette_Torterra, + .shinyPalette = gMonShinyPalette_Torterra, + .iconSprite = gMonIcon_Torterra, + .iconPalIndex = 1, + FOOTPRINT(Torterra) + .levelUpLearnset = sTorterraLevelUpLearnset, + .teachableLearnset = sTorterraTeachableLearnset, }, #endif //P_FAMILY_TURTWIG @@ -160,15 +181,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 61, .baseSpAttack = 58, .baseSpDefense = 44, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 65, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -187,17 +208,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chimchar, 32, 48), + .frontPic = gMonFrontPic_Chimchar, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Chimchar, .frontAnimId = ANIM_V_JUMPS_BIG, - BACK_PIC(Chimchar, 56, 56), + .backPic = gMonBackPic_Chimchar, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Chimchar), - ICON(Chimchar, 1), - .footprint = gMonFootprint_Chimchar, - LEARNSETS(Chimchar), + .palette = gMonPalette_Chimchar, + .shinyPalette = gMonShinyPalette_Chimchar, + .iconSprite = gMonIcon_Chimchar, + .iconPalIndex = 1, + FOOTPRINT(Chimchar) + .levelUpLearnset = sChimcharLevelUpLearnset, + .teachableLearnset = sChimcharTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_MONFERNO}), }, @@ -209,7 +235,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 81, .baseSpAttack = 78, .baseSpDefense = 52, - .types = { TYPE_FIRE, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FIGHTING), .catchRate = 45, .expYield = 142, .evYield_Speed = 1, @@ -218,7 +244,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -237,17 +263,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Monferno, 56, 56), + .frontPic = gMonFrontPic_Monferno, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Monferno, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Monferno, 64, 64), + .backPic = gMonBackPic_Monferno, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Monferno), - ICON(Monferno, 0), - .footprint = gMonFootprint_Monferno, - LEARNSETS(Monferno), + .palette = gMonPalette_Monferno, + .shinyPalette = gMonShinyPalette_Monferno, + .iconSprite = gMonIcon_Monferno, + .iconPalIndex = 0, + FOOTPRINT(Monferno) + .levelUpLearnset = sMonfernoLevelUpLearnset, + .teachableLearnset = sMonfernoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_INFERNAPE}), }, @@ -259,9 +290,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 108, .baseSpAttack = 104, .baseSpDefense = 71, - .types = { TYPE_FIRE, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FIGHTING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 267, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 240, + #else + .expYield = 209, + #endif .evYield_Attack = 1, .evYield_Speed = 1, .evYield_SpAttack = 1, @@ -269,7 +306,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Infernape"), @@ -287,17 +324,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Infernape, 64, 64), + .frontPic = gMonFrontPic_Infernape, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Infernape, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Infernape, 64, 64), + .backPic = gMonBackPic_Infernape, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Infernape), - ICON(Infernape, 0), - .footprint = gMonFootprint_Infernape, - LEARNSETS(Infernape), + .palette = gMonPalette_Infernape, + .shinyPalette = gMonShinyPalette_Infernape, + .iconSprite = gMonIcon_Infernape, + .iconPalIndex = 0, + FOOTPRINT(Infernape) + .levelUpLearnset = sInfernapeLevelUpLearnset, + .teachableLearnset = sInfernapeTeachableLearnset, }, #endif //P_FAMILY_CHIMCHAR @@ -310,20 +352,20 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 40, .baseSpAttack = 61, .baseSpDefense = 56, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, - .expYield = 63, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 63 : 66, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, - #if P_UPDATED_ABILITIES >= GEN_9 - .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE }, - #else - .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), + #if P_UPDATED_ABILITIES >= GEN_9 + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE }, + #else + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT }, + #endif .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Piplup"), .cryId = CRY_PIPLUP, @@ -340,17 +382,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Piplup, 24, 40), + .frontPic = gMonFrontPic_Piplup, + .frontPicSize = MON_COORDS_SIZE(24, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Piplup, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Piplup, 40, 48), + .backPic = gMonBackPic_Piplup, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Piplup), - ICON(Piplup, 0), - .footprint = gMonFootprint_Piplup, - LEARNSETS(Piplup), + .palette = gMonPalette_Piplup, + .shinyPalette = gMonShinyPalette_Piplup, + .iconSprite = gMonIcon_Piplup, + .iconPalIndex = 0, + FOOTPRINT(Piplup) + .levelUpLearnset = sPiplupLevelUpLearnset, + .teachableLearnset = sPiplupTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_PRINPLUP}), }, @@ -362,20 +409,20 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 50, .baseSpAttack = 81, .baseSpDefense = 76, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 143, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, - #if P_UPDATED_ABILITIES >= GEN_9 - .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE }, - #else - .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), + #if P_UPDATED_ABILITIES >= GEN_9 + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE }, + #else + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT }, + #endif .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Prinplup"), .cryId = CRY_PRINPLUP, @@ -392,17 +439,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 10, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Prinplup, 48, 56), + .frontPic = gMonFrontPic_Prinplup, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Prinplup, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Prinplup, 48, 56), + .backPic = gMonBackPic_Prinplup, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Prinplup), - ICON(Prinplup, 0), - .footprint = gMonFootprint_Prinplup, - LEARNSETS(Prinplup), + .palette = gMonPalette_Prinplup, + .shinyPalette = gMonShinyPalette_Prinplup, + .iconSprite = gMonIcon_Prinplup, + .iconPalIndex = 0, + FOOTPRINT(Prinplup) + .levelUpLearnset = sPrinplupLevelUpLearnset, + .teachableLearnset = sPrinplupTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_EMPOLEON}), }, @@ -414,20 +466,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 60, .baseSpAttack = 111, .baseSpDefense = 101, - .types = { TYPE_WATER, TYPE_STEEL }, + .types = MON_TYPES(TYPE_WATER, TYPE_STEEL), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 265, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 239, + #else + .expYield = 210, + #endif .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, - #if P_UPDATED_ABILITIES >= GEN_9 - .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE }, - #else - .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), + #if P_UPDATED_ABILITIES >= GEN_9 + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE }, + #else + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT }, + #endif .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Empoleon"), .cryId = CRY_EMPOLEON, @@ -444,17 +502,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 290, .trainerOffset = 1, - FRONT_PIC(Empoleon, 64, 64), + .frontPic = gMonFrontPic_Empoleon, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Empoleon, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Empoleon, 64, 64), + .backPic = gMonBackPic_Empoleon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Empoleon), - ICON(Empoleon, 0), - .footprint = gMonFootprint_Empoleon, - LEARNSETS(Empoleon), + .palette = gMonPalette_Empoleon, + .shinyPalette = gMonShinyPalette_Empoleon, + .iconSprite = gMonIcon_Empoleon, + .iconPalIndex = 0, + FOOTPRINT(Empoleon) + .levelUpLearnset = sEmpoleonLevelUpLearnset, + .teachableLearnset = sEmpoleonTeachableLearnset, }, #endif //P_FAMILY_PIPLUP @@ -467,15 +530,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 60, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 255, - .expYield = 49, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 49 : 56, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Starly"), @@ -493,19 +556,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Starly, 40, 40), - FRONT_PIC_FEMALE(Starly, 40, 40), + .frontPic = gMonFrontPic_Starly, + .frontPicFemale = gMonFrontPic_StarlyF, + .frontPicSize = MON_COORDS_SIZE(40, 40), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Starly, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Starly, 56, 48), - BACK_PIC_FEMALE(Starly, 56, 48), + .backPic = gMonBackPic_Starly, + .backPicFemale = gMonBackPic_StarlyF, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Starly), - ICON(Starly, 0), - .footprint = gMonFootprint_Starly, - LEARNSETS(Starly), + .palette = gMonPalette_Starly, + .shinyPalette = gMonShinyPalette_Starly, + .iconSprite = gMonIcon_Starly, + .iconPalIndex = 0, + FOOTPRINT(Starly) + .levelUpLearnset = sStarlyLevelUpLearnset, + .teachableLearnset = sStarlyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_STARAVIA}), }, @@ -517,15 +587,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 80, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 120, - .expYield = 119, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 119 : 113, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Staravia"), @@ -543,19 +613,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Staravia, 40, 48), - FRONT_PIC_FEMALE(Staravia, 40, 48), + .frontPic = gMonFrontPic_Staravia, + .frontPicFemale = gMonFrontPic_StaraviaF, + .frontPicSize = MON_COORDS_SIZE(40, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Staravia, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Staravia, 64, 64), - BACK_PIC_FEMALE(Staravia, 64, 64), + .backPic = gMonBackPic_Staravia, + .backPicFemale = gMonBackPic_StaraviaF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Staravia), - ICON(Staravia, 0), - .footprint = gMonFootprint_Staravia, - LEARNSETS(Staravia), + .palette = gMonPalette_Staravia, + .shinyPalette = gMonShinyPalette_Staravia, + .iconSprite = gMonIcon_Staravia, + .iconPalIndex = 0, + FOOTPRINT(Staravia) + .levelUpLearnset = sStaraviaLevelUpLearnset, + .teachableLearnset = sStaraviaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_STARAPTOR}), }, @@ -567,15 +644,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 100, .baseSpAttack = 50, .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 60 : 50, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 243, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 218, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 214, + #else + .expYield = 172, + #endif .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Staraptor"), @@ -593,18 +678,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Staraptor, 56, 64), - FRONT_PIC_FEMALE(Staraptor, 56, 64), + .frontPic = gMonFrontPic_Staraptor, + .frontPicFemale = gMonFrontPic_StaraptorF, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Staraptor, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Staraptor, 64, 64), + .backPic = gMonBackPic_Staraptor, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Staraptor), - ICON(Staraptor, 0), - .footprint = gMonFootprint_Staraptor, - LEARNSETS(Staraptor), + .palette = gMonPalette_Staraptor, + .shinyPalette = gMonShinyPalette_Staraptor, + .iconSprite = gMonIcon_Staraptor, + .iconPalIndex = 0, + FOOTPRINT(Staraptor) + .levelUpLearnset = sStaraptorLevelUpLearnset, + .teachableLearnset = sStaraptorTeachableLearnset, }, #endif //P_FAMILY_STARLY @@ -617,15 +708,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 31, .baseSpAttack = 35, .baseSpDefense = 40, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, - .expYield = 50, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 50 : 58, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_SIMPLE, ABILITY_UNAWARE, ABILITY_MOODY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Bidoof"), @@ -643,19 +734,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bidoof, 40, 40), - FRONT_PIC_FEMALE(Bidoof, 40, 40), + .frontPic = gMonFrontPic_Bidoof, + .frontPicFemale = gMonFrontPic_BidoofF, + .frontPicSize = MON_COORDS_SIZE(40, 40), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Bidoof, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Bidoof, 64, 40), - BACK_PIC_FEMALE(Bidoof, 64, 40), + .backPic = gMonBackPic_Bidoof, + .backPicFemale = gMonBackPic_BidoofF, + .backPicSize = MON_COORDS_SIZE(64, 40), + .backPicSizeFemale = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Bidoof), - ICON(Bidoof, 2), - .footprint = gMonFootprint_Bidoof, - LEARNSETS(Bidoof), + .palette = gMonPalette_Bidoof, + .shinyPalette = gMonShinyPalette_Bidoof, + .iconSprite = gMonIcon_Bidoof, + .iconPalIndex = 2, + FOOTPRINT(Bidoof) + .levelUpLearnset = sBidoofLevelUpLearnset, + .teachableLearnset = sBidoofTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_BIBAREL}), }, @@ -667,15 +765,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 71, .baseSpAttack = 55, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_WATER }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_WATER), .catchRate = 127, - .expYield = 144, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 144 : 116, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_SIMPLE, ABILITY_UNAWARE, ABILITY_MOODY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Bibarel"), @@ -693,18 +791,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 8, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Bibarel, 56, 48), - FRONT_PIC_FEMALE(Bibarel, 56, 48), + .frontPic = gMonFrontPic_Bibarel, + .frontPicFemale = gMonFrontPic_BibarelF, + .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Bibarel, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Bibarel, 64, 56), + .backPic = gMonBackPic_Bibarel, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Bibarel), - ICON(Bibarel, 2), - .footprint = gMonFootprint_Bibarel, - LEARNSETS(Bibarel), + .palette = gMonPalette_Bibarel, + .shinyPalette = gMonShinyPalette_Bibarel, + .iconSprite = gMonIcon_Bibarel, + .iconPalIndex = 2, + FOOTPRINT(Bibarel) + .levelUpLearnset = sBibarelLevelUpLearnset, + .teachableLearnset = sBibarelTeachableLearnset, }, #endif //P_FAMILY_BIDOOF @@ -717,16 +821,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 25, .baseSpAttack = 25, .baseSpDefense = 41, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 255, - .expYield = 39, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 39 : 54, .evYield_Defense = 1, .itemRare = ITEM_METRONOME, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_RUN_AWAY }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Kricketot"), @@ -744,19 +848,27 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kricketot, 48, 48), - FRONT_PIC_FEMALE(Kricketot, 48, 48), + .frontPic = gMonFrontPic_Kricketot, + .frontPicFemale = gMonFrontPic_KricketotF, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Kricketot, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Kricketot, 48, 56), - BACK_PIC_FEMALE(Kricketot, 48, 56), + .backPic = gMonBackPic_Kricketot, + .backPicFemale = gMonBackPic_KricketotF, + .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicSizeFemale = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Kricketot), - ICON(Kricketot, 2), - .footprint = gMonFootprint_Kricketot, - LEARNSETS(Kricketot), + .palette = gMonPalette_Kricketot, + .shinyPalette = gMonShinyPalette_Kricketot, + .iconSprite = gMonIcon_Kricketot, + .iconPalIndex = 2, + FOOTPRINT(Kricketot) + .tmIlliterate = TRUE, + .levelUpLearnset = sKricketotLevelUpLearnset, + .teachableLearnset = sKricketotTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_KRICKETUNE}), }, @@ -768,16 +880,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 65, .baseSpAttack = 55, .baseSpDefense = 51, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 45, - .expYield = 134, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 134 : 159, .evYield_Attack = 2, .itemRare = ITEM_METRONOME, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Kricketune"), @@ -795,19 +907,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 8, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Kricketune, 56, 56), - FRONT_PIC_FEMALE(Kricketune, 56, 56), + .frontPic = gMonFrontPic_Kricketune, + .frontPicFemale = gMonFrontPic_KricketuneF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Kricketune, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Kricketune, 56, 64), - BACK_PIC_FEMALE(Kricketune, 56, 64), + .backPic = gMonBackPic_Kricketune, + .backPicFemale = gMonBackPic_KricketuneF, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Kricketune), - ICON(Kricketune, 2), - .footprint = gMonFootprint_Kricketune, - LEARNSETS(Kricketune), + .palette = gMonPalette_Kricketune, + .shinyPalette = gMonShinyPalette_Kricketune, + .iconSprite = gMonIcon_Kricketune, + .iconPalIndex = 2, + FOOTPRINT(Kricketune) + .levelUpLearnset = sKricketuneLevelUpLearnset, + .teachableLearnset = sKricketuneTeachableLearnset, }, #endif //P_FAMILY_KRICKETOT @@ -820,15 +939,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 45, .baseSpAttack = 40, .baseSpDefense = 34, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 235, - .expYield = 53, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 53 : 60, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RIVALRY, ABILITY_INTIMIDATE, ABILITY_GUTS }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Shinx"), @@ -846,19 +965,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shinx, 48, 40), - FRONT_PIC_FEMALE(Shinx, 48, 40), + .frontPic = gMonFrontPic_Shinx, + .frontPicFemale = gMonFrontPic_ShinxF, + .frontPicSize = MON_COORDS_SIZE(48, 40), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Shinx, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Shinx, 64, 48), - BACK_PIC_FEMALE(Shinx, 64, 48), + .backPic = gMonBackPic_Shinx, + .backPicFemale = gMonBackPic_ShinxF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Shinx), - ICON(Shinx, 0), - .footprint = gMonFootprint_Shinx, - LEARNSETS(Shinx), + .palette = gMonPalette_Shinx, + .shinyPalette = gMonShinyPalette_Shinx, + .iconSprite = gMonIcon_Shinx, + .iconPalIndex = 0, + FOOTPRINT(Shinx) + .levelUpLearnset = sShinxLevelUpLearnset, + .teachableLearnset = sShinxTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_LUXIO}), }, @@ -870,15 +996,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 60, .baseSpAttack = 60, .baseSpDefense = 49, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 120, - .expYield = 127, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 127 : 117, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 100, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RIVALRY, ABILITY_INTIMIDATE, ABILITY_GUTS }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Luxio"), @@ -896,19 +1022,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Luxio, 48, 48), - FRONT_PIC_FEMALE(Luxio, 48, 48), + .frontPic = gMonFrontPic_Luxio, + .frontPicFemale = gMonFrontPic_LuxioF, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Luxio, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Luxio, 64, 64), - BACK_PIC_FEMALE(Luxio, 64, 64), + .backPic = gMonBackPic_Luxio, + .backPicFemale = gMonBackPic_LuxioF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Luxio), - ICON(Luxio, 0), - .footprint = gMonFootprint_Luxio, - LEARNSETS(Luxio), + .palette = gMonPalette_Luxio, + .shinyPalette = gMonShinyPalette_Luxio, + .iconSprite = gMonIcon_Luxio, + .iconPalIndex = 0, + FOOTPRINT(Luxio) + .levelUpLearnset = sLuxioLevelUpLearnset, + .teachableLearnset = sLuxioTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_LUXRAY}), }, @@ -920,15 +1053,21 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 70, .baseSpAttack = 95, .baseSpDefense = 79, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 262, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 235, + #else + .expYield = 194, + #endif .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RIVALRY, ABILITY_INTIMIDATE, ABILITY_GUTS }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Luxray"), @@ -946,19 +1085,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Luxray, 64, 64), - FRONT_PIC_FEMALE(Luxray, 64, 64), + .frontPic = gMonFrontPic_Luxray, + .frontPicFemale = gMonFrontPic_LuxrayF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Luxray, .frontAnimId = ANIM_GLOW_YELLOW, - BACK_PIC(Luxray, 64, 64), - BACK_PIC_FEMALE(Luxray, 64, 64), + .backPic = gMonBackPic_Luxray, + .backPicFemale = gMonBackPic_LuxrayF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Luxray), - ICON(Luxray, 0), - .footprint = gMonFootprint_Luxray, - LEARNSETS(Luxray), + .palette = gMonPalette_Luxray, + .shinyPalette = gMonShinyPalette_Luxray, + .iconSprite = gMonIcon_Luxray, + .iconPalIndex = 0, + FOOTPRINT(Luxray) + .levelUpLearnset = sLuxrayLevelUpLearnset, + .teachableLearnset = sLuxrayTeachableLearnset, }, #endif //P_FAMILY_SHINX @@ -971,15 +1117,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 58, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 45, - .expYield = 70, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 70 : 99, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_MOLD_BREAKER, ABILITY_NONE, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Cranidos"), @@ -997,17 +1143,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cranidos, 48, 48), + .frontPic = gMonFrontPic_Cranidos, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Cranidos, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Cranidos, 64, 56), + .backPic = gMonBackPic_Cranidos, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Cranidos), - ICON(Cranidos, 0), - .footprint = gMonFootprint_Cranidos, - LEARNSETS(Cranidos), + .palette = gMonPalette_Cranidos, + .shinyPalette = gMonShinyPalette_Cranidos, + .iconSprite = gMonIcon_Cranidos, + .iconPalIndex = 0, + FOOTPRINT(Cranidos) + .levelUpLearnset = sCranidosLevelUpLearnset, + .teachableLearnset = sCranidosTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_RAMPARDOS}), }, @@ -1019,15 +1170,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 58, .baseSpAttack = 65, .baseSpDefense = 50, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 45, - .expYield = 173, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 173 : 199, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_MOLD_BREAKER, ABILITY_NONE, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Rampardos"), @@ -1045,17 +1196,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Rampardos, 64, 64), + .frontPic = gMonFrontPic_Rampardos, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Rampardos, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Rampardos, 64, 64), + .backPic = gMonBackPic_Rampardos, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Rampardos), - ICON(Rampardos, 0), - .footprint = gMonFootprint_Rampardos, - LEARNSETS(Rampardos), + .palette = gMonPalette_Rampardos, + .shinyPalette = gMonShinyPalette_Rampardos, + .iconSprite = gMonIcon_Rampardos, + .iconPalIndex = 0, + FOOTPRINT(Rampardos) + .levelUpLearnset = sRampardosLevelUpLearnset, + .teachableLearnset = sRampardosTeachableLearnset, }, #endif //P_FAMILY_CRANIDOS @@ -1068,15 +1224,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 30, .baseSpAttack = 42, .baseSpDefense = 88, - .types = { TYPE_ROCK, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ROCK, TYPE_STEEL), .catchRate = 45, - .expYield = 70, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 70 : 99, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_SOUNDPROOF }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Shieldon"), @@ -1094,17 +1250,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shieldon, 40, 40), + .frontPic = gMonFrontPic_Shieldon, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Shieldon, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Shieldon, 56, 48), + .backPic = gMonBackPic_Shieldon, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Shieldon), - ICON(Shieldon, 1), - .footprint = gMonFootprint_Shieldon, - LEARNSETS(Shieldon), + .palette = gMonPalette_Shieldon, + .shinyPalette = gMonShinyPalette_Shieldon, + .iconSprite = gMonIcon_Shieldon, + .iconPalIndex = 1, + FOOTPRINT(Shieldon) + .levelUpLearnset = sShieldonLevelUpLearnset, + .teachableLearnset = sShieldonTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_BASTIODON}), }, @@ -1116,15 +1277,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 30, .baseSpAttack = 47, .baseSpDefense = 138, - .types = { TYPE_ROCK, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ROCK, TYPE_STEEL), .catchRate = 45, - .expYield = 173, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 173 : 199, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_SOUNDPROOF }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Bastiodon"), @@ -1142,265 +1303,421 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bastiodon, 64, 56), + .frontPic = gMonFrontPic_Bastiodon, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Bastiodon, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Bastiodon, 64, 56), + .backPic = gMonBackPic_Bastiodon, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Bastiodon), - ICON(Bastiodon, 1), - .footprint = gMonFootprint_Bastiodon, - LEARNSETS(Bastiodon), + .palette = gMonPalette_Bastiodon, + .shinyPalette = gMonShinyPalette_Bastiodon, + .iconSprite = gMonIcon_Bastiodon, + .iconPalIndex = 1, + FOOTPRINT(Bastiodon) + .levelUpLearnset = sBastiodonLevelUpLearnset, + .teachableLearnset = sBastiodonTeachableLearnset, }, #endif //P_FAMILY_SHIELDON #if P_FAMILY_BURMY -#define BURMY_MISC_INFO \ - .baseHP = 40, \ - .baseAttack = 29, \ - .baseDefense = 45, \ - .baseSpeed = 36, \ - .baseSpAttack = 29, \ - .baseSpDefense = 45, \ - .types = { TYPE_BUG, TYPE_BUG }, \ - .catchRate = 120, \ - .expYield = 45, \ - .evYield_SpDefense = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_OVERCOAT }, \ - .speciesName = _("Burmy"), \ - .cryId = CRY_BURMY, \ - .natDexNum = NATIONAL_DEX_BURMY, \ - .categoryName = _("Bagworm"), \ - .height = 2, \ - .weight = 34, \ - .pokemonScale = 682, \ - .pokemonOffset = 24, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontAnimFrames = sAnims_Burmy, \ - .frontAnimId = ANIM_V_STRETCH, \ - .enemyMonElevation = 10, \ - .backAnimId = BACK_ANIM_H_SHAKE, \ - .footprint = gMonFootprint_Burmy, \ - LEARNSETS(Burmy), \ - .formSpeciesIdTable = sBurmyFormSpeciesIdTable, \ - .formChangeTable = sBurmyFormChangeTable - [SPECIES_BURMY_PLANT_CLOAK] = { - BURMY_MISC_INFO, + .baseHP = 40, + .baseAttack = 29, + .baseDefense = 45, + .baseSpeed = 36, + .baseSpAttack = 29, + .baseSpDefense = 45, + .types = MON_TYPES(TYPE_BUG), + .catchRate = 120, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 45 : 61, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Burmy"), + .cryId = CRY_BURMY, + .natDexNum = NATIONAL_DEX_BURMY, + .categoryName = _("Bagworm"), + .height = 2, + .weight = 34, .description = COMPOUND_STRING( "If its cloak is even slightly damaged, it\n" "will immediately repair it with whatever is\n" "near at hand. The Pokémon within the cloak\n" "is scrawny and vulnerable to the cold."), - FRONT_PIC(BurmyPlantCloak, 32, 56), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_BurmyPlantCloak, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 13, - BACK_PIC(BurmyPlantCloak, 40, 56), + .frontAnimFrames = sAnims_Burmy, + .frontAnimId = ANIM_V_STRETCH, + .enemyMonElevation = 10, + .backPic = gMonBackPic_BurmyPlantCloak, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 6, - PALETTES(BurmyPlantCloak), - ICON(BurmyPlantCloak, 1), + .backAnimId = BACK_ANIM_H_SHAKE, + .palette = gMonPalette_BurmyPlantCloak, + .shinyPalette = gMonShinyPalette_BurmyPlantCloak, + .iconSprite = gMonIcon_BurmyPlantCloak, + .iconPalIndex = 1, + FOOTPRINT(Burmy) + .tmIlliterate = TRUE, + .levelUpLearnset = sBurmyLevelUpLearnset, + .teachableLearnset = sBurmyTeachableLearnset, + .formSpeciesIdTable = sBurmyFormSpeciesIdTable, + .formChangeTable = sBurmyFormChangeTable, .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 20, SPECIES_WORMADAM_PLANT_CLOAK}, - {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM}), + {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM_PLANT_CLOAK}), }, [SPECIES_BURMY_SANDY_CLOAK] = { - BURMY_MISC_INFO, + .baseHP = 40, + .baseAttack = 29, + .baseDefense = 45, + .baseSpeed = 36, + .baseSpAttack = 29, + .baseSpDefense = 45, + .types = MON_TYPES(TYPE_BUG), + .catchRate = 120, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 45 : 61, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Burmy"), + .cryId = CRY_BURMY, + .natDexNum = NATIONAL_DEX_BURMY, + .categoryName = _("Bagworm"), + .height = 2, + .weight = 34, .description = COMPOUND_STRING( "It weaves a cloak together with sand, mud,\n" "and silk it spits out. This earthen cloak\n" "is ruined by wind and rain, so the Pokémon\n" "hides away in caves and other such places."), - FRONT_PIC(BurmySandyCloak, 32, 56), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_BurmySandyCloak, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 12, - BACK_PIC(BurmySandyCloak, 32, 56), + .frontAnimFrames = sAnims_Burmy, + .frontAnimId = ANIM_V_STRETCH, + .enemyMonElevation = 10, + .backPic = gMonBackPic_BurmySandyCloak, + .backPicSize = MON_COORDS_SIZE(32, 56), .backPicYOffset = 7, - PALETTES(BurmySandyCloak), - ICON(BurmySandyCloak, 1), + .backAnimId = BACK_ANIM_H_SHAKE, + .palette = gMonPalette_BurmySandyCloak, + .shinyPalette = gMonShinyPalette_BurmySandyCloak, + .iconSprite = gMonIcon_BurmySandyCloak, + .iconPalIndex = 1, + FOOTPRINT(Burmy) + .tmIlliterate = TRUE, + .levelUpLearnset = sBurmyLevelUpLearnset, + .teachableLearnset = sBurmyTeachableLearnset, + .formSpeciesIdTable = sBurmyFormSpeciesIdTable, + .formChangeTable = sBurmyFormChangeTable, .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 20, SPECIES_WORMADAM_SANDY_CLOAK}, - {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM}), + {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM_SANDY_CLOAK}), }, [SPECIES_BURMY_TRASH_CLOAK] = { - BURMY_MISC_INFO, + .baseHP = 40, + .baseAttack = 29, + .baseDefense = 45, + .baseSpeed = 36, + .baseSpAttack = 29, + .baseSpDefense = 45, + .types = MON_TYPES(TYPE_BUG), + .catchRate = 120, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 45 : 61, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Burmy"), + .cryId = CRY_BURMY, + .natDexNum = NATIONAL_DEX_BURMY, + .categoryName = _("Bagworm"), + .height = 2, + .weight = 34, .description = COMPOUND_STRING( "When confronted by a lack of other\n" "materials, Burmy will create its cloak\n" "using dust and refuse. The cloak seems to\n" "be more comfortable than one would think."), - FRONT_PIC(BurmyTrashCloak, 32, 56), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_BurmyTrashCloak, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 8, - BACK_PIC(BurmyTrashCloak, 40, 64), + .frontAnimFrames = sAnims_Burmy, + .frontAnimId = ANIM_V_STRETCH, + .enemyMonElevation = 10, + .backPic = gMonBackPic_BurmyTrashCloak, + .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 0, - PALETTES(BurmyTrashCloak), - ICON(BurmyTrashCloak, 0), + .backAnimId = BACK_ANIM_H_SHAKE, + .palette = gMonPalette_BurmyTrashCloak, + .shinyPalette = gMonShinyPalette_BurmyTrashCloak, + .iconSprite = gMonIcon_BurmyTrashCloak, + .iconPalIndex = 0, + FOOTPRINT(Burmy) + .tmIlliterate = TRUE, + .levelUpLearnset = sBurmyLevelUpLearnset, + .teachableLearnset = sBurmyTeachableLearnset, + .formSpeciesIdTable = sBurmyFormSpeciesIdTable, + .formChangeTable = sBurmyFormChangeTable, .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 20, SPECIES_WORMADAM_TRASH_CLOAK}, - {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM}), + {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM_TRASH_CLOAK}), }, -#define WORMADAM_MISC_INFO \ - .catchRate = 45, \ - .expYield = 148, \ - .itemRare = ITEM_SILVER_POWDER, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .abilities = { ABILITY_ANTICIPATION, ABILITY_NONE, ABILITY_OVERCOAT }, \ - .speciesName = _("Wormadam"), \ - .cryId = CRY_WORMADAM, \ - .natDexNum = NATIONAL_DEX_WORMADAM, \ - .categoryName = _("Bagworm"), \ - .height = 5, \ - .weight = 65, \ - .pokemonScale = 432, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontPicYOffset = 10, \ - .frontAnimFrames = sAnims_Wormadam, \ - .frontAnimId = ANIM_SWING_CONVEX_FAST_SHORT, \ - .enemyMonElevation = 8, \ - .backPicYOffset = 2, \ - .backAnimId = BACK_ANIM_V_SHAKE, \ - .footprint = gMonFootprint_Wormadam, \ - .formSpeciesIdTable = sWormadamFormSpeciesIdTable - [SPECIES_WORMADAM_PLANT_CLOAK] = { - WORMADAM_MISC_INFO, .baseHP = 60, .baseAttack = 59, .baseDefense = 85, .baseSpeed = 36, .baseSpAttack = 79, .baseSpDefense = 105, - .types = { TYPE_BUG, TYPE_GRASS }, + .types = MON_TYPES(TYPE_BUG, TYPE_GRASS), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 148 : 159, .evYield_SpDefense = 2, + .itemRare = ITEM_SILVER_POWDER, + .genderRatio = MON_FEMALE, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_ANTICIPATION, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Wormadam"), + .cryId = CRY_WORMADAM, + .natDexNum = NATIONAL_DEX_WORMADAM, + .categoryName = _("Bagworm"), + .height = 5, + .weight = 65, .description = COMPOUND_STRING( "Its appearance changes depending\n" "on where Burmy evolved. The materials\n" "on hand become a part of its body.\n" "The cloak is never shed."), - FRONT_PIC(WormadamPlantCloak, 48, 56), - BACK_PIC(WormadamPlantCloak, 56, 64), - PALETTES(WormadamPlantCloak), - ICON(WormadamPlantCloak, 1), - LEARNSETS(WormadamPlantCloak), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_WormadamPlantCloak, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Wormadam, + .frontAnimId = ANIM_SWING_CONVEX_FAST_SHORT, + .enemyMonElevation = 8, + .backPic = gMonBackPic_WormadamPlantCloak, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_SHAKE, + .palette = gMonPalette_WormadamPlantCloak, + .shinyPalette = gMonShinyPalette_WormadamPlantCloak, + .iconSprite = gMonIcon_WormadamPlantCloak, + .iconPalIndex = 1, + FOOTPRINT(Wormadam) + .levelUpLearnset = sWormadamPlantCloakLevelUpLearnset, + .teachableLearnset = sWormadamPlantCloakTeachableLearnset, + .formSpeciesIdTable = sWormadamFormSpeciesIdTable, }, [SPECIES_WORMADAM_SANDY_CLOAK] = { - WORMADAM_MISC_INFO, .baseHP = 60, .baseAttack = 79, .baseDefense = 105, .baseSpeed = 36, .baseSpAttack = 59, .baseSpDefense = 85, - .types = { TYPE_BUG, TYPE_GROUND }, + .types = MON_TYPES(TYPE_BUG, TYPE_GROUND), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 148 : 159, .evYield_Defense = 2, + .itemRare = ITEM_SILVER_POWDER, + .genderRatio = MON_FEMALE, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_ANTICIPATION, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Wormadam"), + .cryId = CRY_WORMADAM, + .natDexNum = NATIONAL_DEX_WORMADAM, + .categoryName = _("Bagworm"), + .height = 5, + .weight = 65, .description = COMPOUND_STRING( "Its earthen skin is reasonably hard, it has\n" "no problem repelling a Starly's pecking.\n" "It is said that a Wormadam that evolves\n" "on a cold day will have a thicker cloak."), - FRONT_PIC(WormadamSandyCloak, 40, 56), - BACK_PIC(WormadamSandyCloak, 56, 64), - PALETTES(WormadamSandyCloak), - ICON(WormadamSandyCloak, 1), - LEARNSETS(WormadamSandyCloak), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_WormadamSandyCloak, + .frontPicSize = MON_COORDS_SIZE(40, 56), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Wormadam, + .frontAnimId = ANIM_SWING_CONVEX_FAST_SHORT, + .enemyMonElevation = 8, + .backPic = gMonBackPic_WormadamSandyCloak, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_SHAKE, + .palette = gMonPalette_WormadamSandyCloak, + .shinyPalette = gMonShinyPalette_WormadamSandyCloak, + .iconSprite = gMonIcon_WormadamSandyCloak, + .iconPalIndex = 1, + FOOTPRINT(Wormadam) + .levelUpLearnset = sWormadamSandyCloakLevelUpLearnset, + .teachableLearnset = sWormadamSandyCloakTeachableLearnset, + .formSpeciesIdTable = sWormadamFormSpeciesIdTable, }, [SPECIES_WORMADAM_TRASH_CLOAK] = { - WORMADAM_MISC_INFO, .baseHP = 60, .baseAttack = 69, .baseDefense = 95, .baseSpeed = 36, .baseSpAttack = 69, .baseSpDefense = 95, - .types = { TYPE_BUG, TYPE_STEEL }, + .types = MON_TYPES(TYPE_BUG, TYPE_STEEL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 148 : 159, .evYield_Defense = 1, .evYield_SpDefense = 1, + .itemRare = ITEM_SILVER_POWDER, + .genderRatio = MON_FEMALE, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_ANTICIPATION, ABILITY_NONE, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Wormadam"), + .cryId = CRY_WORMADAM, + .natDexNum = NATIONAL_DEX_WORMADAM, + .categoryName = _("Bagworm"), + .height = 5, + .weight = 65, .description = COMPOUND_STRING( "Its body, composed of refuse, blends in to\n" "the scenery enough to be inconspicuous.\n" "This seems to be the perfect way for it to\n" "evade the detection of predators."), - FRONT_PIC(WormadamTrashCloak, 48, 56), - BACK_PIC(WormadamTrashCloak, 64, 64), - PALETTES(WormadamTrashCloak), - ICON(WormadamTrashCloak, 0), - LEARNSETS(WormadamTrashCloak), - }, - - [SPECIES_MOTHIM] = - { - .baseHP = 70, - .baseAttack = 94, - .baseDefense = 50, - .baseSpeed = 66, - .baseSpAttack = 94, - .baseSpDefense = 50, - .types = { TYPE_BUG, TYPE_FLYING }, - .catchRate = 45, - .expYield = 148, - .evYield_Attack = 1, - .evYield_SpAttack = 1, - .itemRare = ITEM_SILVER_POWDER, - .genderRatio = MON_MALE, - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_TINTED_LENS }, - .bodyColor = BODY_COLOR_YELLOW, - .speciesName = _("Mothim"), - .cryId = CRY_MOTHIM, - .natDexNum = NATIONAL_DEX_MOTHIM, - .categoryName = _("Moth"), - .height = 9, - .weight = 233, - .description = COMPOUND_STRING( - "It does not keep a nest. While it\n" - "loves floral honey, it won't gather\n" - "any itself. Instead, it plots to steal\n" - "honey collected by Combee."), - .pokemonScale = 338, - .pokemonOffset = 8, + .pokemonScale = 432, + .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mothim, 64, 64), - .frontPicYOffset = 12, - .frontAnimFrames = sAnims_Mothim, - .frontAnimId = ANIM_H_SLIDE_WOBBLE, - .enemyMonElevation = 10, - BACK_PIC(Mothim, 64, 56), - .backPicYOffset = 8, - .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Mothim), - ICON(Mothim, 0), - .footprint = gMonFootprint_Mothim, - LEARNSETS(Mothim), + .frontPic = gMonFrontPic_WormadamTrashCloak, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Wormadam, + .frontAnimId = ANIM_SWING_CONVEX_FAST_SHORT, + .enemyMonElevation = 8, + .backPic = gMonBackPic_WormadamTrashCloak, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_SHAKE, + .palette = gMonPalette_WormadamTrashCloak, + .shinyPalette = gMonShinyPalette_WormadamTrashCloak, + .iconSprite = gMonIcon_WormadamTrashCloak, + .iconPalIndex = 0, + FOOTPRINT(Wormadam) + .levelUpLearnset = sWormadamTrashCloakLevelUpLearnset, + .teachableLearnset = sWormadamTrashCloakTeachableLearnset, + .formSpeciesIdTable = sWormadamFormSpeciesIdTable, }, + +#define MOTHIM_SPECIES_INFO \ + { \ + .baseHP = 70, \ + .baseAttack = 94, \ + .baseDefense = 50, \ + .baseSpeed = 66, \ + .baseSpAttack = 94, \ + .baseSpDefense = 50, \ + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), \ + .catchRate = 45, \ + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 148 : 159, \ + .evYield_Attack = 1, \ + .evYield_SpAttack = 1, \ + .itemRare = ITEM_SILVER_POWDER, \ + .genderRatio = MON_MALE, \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), \ + .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_TINTED_LENS }, \ + .bodyColor = BODY_COLOR_YELLOW, \ + .speciesName = _("Mothim"), \ + .cryId = CRY_MOTHIM, \ + .natDexNum = NATIONAL_DEX_MOTHIM, \ + .categoryName = _("Moth"), \ + .height = 9, \ + .weight = 233, \ + .description = gMothimPokedexText, \ + .pokemonScale = 338, \ + .pokemonOffset = 8, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPic = gMonFrontPic_Mothim, \ + .frontPicSize = MON_COORDS_SIZE(64, 64), \ + .frontPicYOffset = 12, \ + .frontAnimFrames = sAnims_Mothim, \ + .frontAnimId = ANIM_H_SLIDE_WOBBLE, \ + .enemyMonElevation = 10, \ + .backPic = gMonBackPic_Mothim, \ + .backPicSize = MON_COORDS_SIZE(64, 56), \ + .backPicYOffset = 8, \ + .backAnimId = BACK_ANIM_H_SHAKE, \ + .palette = gMonPalette_Mothim, \ + .shinyPalette = gMonShinyPalette_Mothim, \ + .iconSprite = gMonIcon_Mothim, \ + .iconPalIndex = 0, \ + FOOTPRINT(Mothim) \ + .levelUpLearnset = sMothimLevelUpLearnset, \ + .teachableLearnset = sMothimTeachableLearnset, \ + .formSpeciesIdTable = sMothimFormSpeciesIdTable, \ + } + + [SPECIES_MOTHIM_PLANT_CLOAK] = MOTHIM_SPECIES_INFO, + [SPECIES_MOTHIM_SANDY_CLOAK] = MOTHIM_SPECIES_INFO, + [SPECIES_MOTHIM_TRASH_CLOAK] = MOTHIM_SPECIES_INFO, #endif //P_FAMILY_BURMY #if P_FAMILY_COMBEE @@ -1412,16 +1729,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 70, .baseSpAttack = 30, .baseSpDefense = 42, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 120, - .expYield = 49, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 49 : 63, .evYield_Speed = 1, .itemRare = ITEM_HONEY, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_HONEY_GATHER, ABILITY_NONE, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Combee"), @@ -1439,19 +1756,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Combee, 64, 40), + .frontPic = gMonFrontPic_Combee, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Combee, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 15, - BACK_PIC(Combee, 64, 48), + .backPic = gMonBackPic_Combee, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 22, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Combee), - PALETTE_FEMALE(Combee), - ICON(Combee, 0), - .footprint = gMonFootprint_Combee, - LEARNSETS(Combee), + .palette = gMonPalette_Combee, + .paletteFemale = gMonPalette_CombeeF, + .shinyPalette = gMonShinyPalette_Combee, + .shinyPaletteFemale = gMonShinyPalette_CombeeF, + .iconSprite = gMonIcon_Combee, + .iconPalIndex = 0, + FOOTPRINT(Combee) + .tmIlliterate = TRUE, + .levelUpLearnset = sCombeeLevelUpLearnset, + .teachableLearnset = sCombeeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 21, SPECIES_VESPIQUEN}), }, @@ -1463,9 +1787,9 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 40, .baseSpAttack = 80, .baseSpDefense = 102, - .types = { TYPE_BUG, TYPE_FLYING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), .catchRate = 45, - .expYield = 166, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 188, .evYield_Defense = 1, .evYield_SpDefense = 1, .itemRare = ITEM_POISON_BARB, @@ -1473,7 +1797,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Vespiquen"), @@ -1491,18 +1815,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vespiquen, 48, 56), + .frontPic = gMonFrontPic_Vespiquen, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Vespiquen, .frontAnimId = ANIM_LUNGE_GROW, .enemyMonElevation = 4, - BACK_PIC(Vespiquen, 64, 64), + .backPic = gMonBackPic_Vespiquen, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - PALETTES(Vespiquen), - ICON(Vespiquen, 0), - .footprint = gMonFootprint_Vespiquen, - LEARNSETS(Vespiquen), + .palette = gMonPalette_Vespiquen, + .shinyPalette = gMonShinyPalette_Vespiquen, + .iconSprite = gMonIcon_Vespiquen, + .iconPalIndex = 0, + FOOTPRINT(Vespiquen) + .levelUpLearnset = sVespiquenLevelUpLearnset, + .teachableLearnset = sVespiquenTeachableLearnset, }, #endif //P_FAMILY_COMBEE @@ -1515,15 +1844,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 95, .baseSpAttack = 45, .baseSpDefense = 90, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 200, - .expYield = 142, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 142 : 120, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 10, .friendship = 100, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_RUN_AWAY, ABILITY_PICKUP, ABILITY_VOLT_ABSORB }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Pachirisu"), @@ -1541,18 +1870,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pachirisu, 48, 56), - FRONT_PIC_FEMALE(Pachirisu, 48, 56), + .frontPic = gMonFrontPic_Pachirisu, + .frontPicFemale = gMonFrontPic_PachirisuF, + .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Pachirisu, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Pachirisu, 64, 64), + .backPic = gMonBackPic_Pachirisu, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Pachirisu), - ICON(Pachirisu, 0), - .footprint = gMonFootprint_Pachirisu, - LEARNSETS(Pachirisu), + .palette = gMonPalette_Pachirisu, + .shinyPalette = gMonShinyPalette_Pachirisu, + .iconSprite = gMonIcon_Pachirisu, + .iconPalIndex = 0, + FOOTPRINT(Pachirisu) + .levelUpLearnset = sPachirisuLevelUpLearnset, + .teachableLearnset = sPachirisuTeachableLearnset, }, #endif //P_FAMILY_PACHIRISU @@ -1565,15 +1900,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 85, .baseSpAttack = 60, .baseSpDefense = 30, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 190, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 75, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Buizel"), @@ -1591,18 +1926,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Buizel, 56, 48), + .frontPic = gMonFrontPic_Buizel, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Buizel, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Buizel, 64, 48), - BACK_PIC_FEMALE(Buizel, 64, 48), + .backPic = gMonBackPic_Buizel, + .backPicFemale = gMonBackPic_BuizelF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Buizel), - ICON(Buizel, 0), - .footprint = gMonFootprint_Buizel, - LEARNSETS(Buizel), + .palette = gMonPalette_Buizel, + .shinyPalette = gMonShinyPalette_Buizel, + .iconSprite = gMonIcon_Buizel, + .iconPalIndex = 0, + FOOTPRINT(Buizel) + .levelUpLearnset = sBuizelLevelUpLearnset, + .teachableLearnset = sBuizelTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_FLOATZEL}), }, @@ -1614,15 +1955,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 115, .baseSpAttack = 85, .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 75, - .expYield = 173, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 173 : 178, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Floatzel"), @@ -1640,18 +1981,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Floatzel, 64, 64), + .frontPic = gMonFrontPic_Floatzel, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Floatzel, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Floatzel, 64, 64), - BACK_PIC_FEMALE(Floatzel, 64, 64), + .backPic = gMonBackPic_Floatzel, + .backPicFemale = gMonBackPic_FloatzelF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Floatzel), - ICON(Floatzel, 0), - .footprint = gMonFootprint_Floatzel, - LEARNSETS(Floatzel), + .palette = gMonPalette_Floatzel, + .shinyPalette = gMonShinyPalette_Floatzel, + .iconSprite = gMonIcon_Floatzel, + .iconPalIndex = 0, + FOOTPRINT(Floatzel) + .levelUpLearnset = sFloatzelLevelUpLearnset, + .teachableLearnset = sFloatzelTeachableLearnset, }, #endif //P_FAMILY_BUIZEL @@ -1664,17 +2011,17 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 35, .baseSpAttack = 62, .baseSpDefense = 53, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 190, - .expYield = 55, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 55 : 68, .evYield_SpAttack = 1, .itemRare = ITEM_MIRACLE_SEED, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, - .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Cherubi"), .cryId = CRY_CHERUBI, @@ -1691,228 +2038,349 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cherubi, 40, 32), + .frontPic = gMonFrontPic_Cherubi, + .frontPicSize = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Cherubi, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cherubi, 48, 40), + .backPic = gMonBackPic_Cherubi, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Cherubi), - ICON(Cherubi, 1), - .footprint = gMonFootprint_Cherubi, - LEARNSETS(Cherubi), + .palette = gMonPalette_Cherubi, + .shinyPalette = gMonShinyPalette_Cherubi, + .iconSprite = gMonIcon_Cherubi, + .iconPalIndex = 1, + FOOTPRINT(Cherubi) + .levelUpLearnset = sCherubiLevelUpLearnset, + .teachableLearnset = sCherubiTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_CHERRIM_OVERCAST}), }, -#define CHERRIM_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 60, \ - .baseDefense = 70, \ - .baseSpeed = 85, \ - .baseSpAttack = 87, \ - .baseSpDefense = 78, \ - .types = { TYPE_GRASS, TYPE_GRASS }, \ - .catchRate = 75, \ - .expYield = 158, \ - .evYield_SpAttack = 2, \ - .itemRare = ITEM_MIRACLE_SEED, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, \ - .abilities = { ABILITY_FLOWER_GIFT, ABILITY_NONE }, \ - .speciesName = _("Cherrim"), \ - .cryId = CRY_CHERRIM, \ - .natDexNum = NATIONAL_DEX_CHERRIM, \ - .categoryName = _("Blossom"), \ - .height = 5, \ - .weight = 93, \ - .pokemonScale = 432, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Cherrim, \ - LEARNSETS(Cherrim), \ - .formSpeciesIdTable = sCherrimFormSpeciesIdTable, \ - .formChangeTable = sCherrimFormChangeTable - [SPECIES_CHERRIM_OVERCAST] = { - CHERRIM_MISC_INFO, + .baseHP = 70, + .baseAttack = 60, + .baseDefense = 70, + .baseSpeed = 85, + .baseSpAttack = 87, + .baseSpDefense = 78, + .types = MON_TYPES(TYPE_GRASS), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 133, + .evYield_SpAttack = 2, + .itemRare = ITEM_MIRACLE_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), + .abilities = { ABILITY_FLOWER_GIFT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Cherrim"), + .cryId = CRY_CHERRIM, + .natDexNum = NATIONAL_DEX_CHERRIM, + .categoryName = _("Blossom"), + .height = 5, + .weight = 93, .description = COMPOUND_STRING( "It's motionless, save for the occasional\n" "quiver. A rich array of Pokémon can be\n" "found gathered around it, drawn by the\n" "scent exuded from Cherrim's folded petals."), - FRONT_PIC(CherrimOvercast, 32, 48), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CherrimOvercast, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_CherrimOvercast, .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, - BACK_PIC(CherrimOvercast, 40, 56), + .backPic = gMonBackPic_CherrimOvercast, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(CherrimOvercast), - ICON(CherrimOvercast, 0), + .palette = gMonPalette_CherrimOvercast, + .shinyPalette = gMonShinyPalette_CherrimOvercast, + .iconSprite = gMonIcon_CherrimOvercast, + .iconPalIndex = 0, + FOOTPRINT(Cherrim) + .levelUpLearnset = sCherrimLevelUpLearnset, + .teachableLearnset = sCherrimTeachableLearnset, + .formSpeciesIdTable = sCherrimFormSpeciesIdTable, + .formChangeTable = sCherrimFormChangeTable, }, [SPECIES_CHERRIM_SUNSHINE] = { - CHERRIM_MISC_INFO, + .baseHP = 70, + .baseAttack = 60, + .baseDefense = 70, + .baseSpeed = 85, + .baseSpAttack = 87, + .baseSpDefense = 78, + .types = MON_TYPES(TYPE_GRASS), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 133, + .evYield_SpAttack = 2, + .itemRare = ITEM_MIRACLE_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS), + .abilities = { ABILITY_FLOWER_GIFT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Cherrim"), + .cryId = CRY_CHERRIM, + .natDexNum = NATIONAL_DEX_CHERRIM, + .categoryName = _("Blossom"), + .height = 5, + .weight = 93, .description = COMPOUND_STRING( "Cherrim takes this form on sunny days.\n" "Its faint scent entices bug Pokémon to it.\n" "It immediately closes its petals and\n" "becomes immobile once the sun hides."), - FRONT_PIC(CherrimSunshine, 48, 40), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CherrimSunshine, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_CherrimSunshine, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(CherrimSunshine, 64, 56), + .backPic = gMonBackPic_CherrimSunshine, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(CherrimSunshine), - ICON(CherrimSunshine, 1), + .palette = gMonPalette_CherrimSunshine, + .shinyPalette = gMonShinyPalette_CherrimSunshine, + .iconSprite = gMonIcon_CherrimSunshine, + .iconPalIndex = 1, + FOOTPRINT(Cherrim) + .levelUpLearnset = sCherrimLevelUpLearnset, + .teachableLearnset = sCherrimTeachableLearnset, + .formSpeciesIdTable = sCherrimFormSpeciesIdTable, + .formChangeTable = sCherrimFormChangeTable, }, #endif //P_FAMILY_CHERUBI #if P_FAMILY_SHELLOS -#define SHELLOS_MISC_INFO \ - .baseHP = 76, \ - .baseAttack = 48, \ - .baseDefense = 48, \ - .baseSpeed = 34, \ - .baseSpAttack = 57, \ - .baseSpDefense = 62, \ - .types = { TYPE_WATER, TYPE_WATER }, \ - .catchRate = 190, \ - .expYield = 65, \ - .evYield_HP = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_STICKY_HOLD, ABILITY_STORM_DRAIN, ABILITY_SAND_FORCE }, \ - .speciesName = _("Shellos"), \ - .cryId = CRY_SHELLOS, \ - .natDexNum = NATIONAL_DEX_SHELLOS, \ - .categoryName = _("Sea Slug"), \ - .height = 3, \ - .weight = 63, \ - .pokemonScale = 530, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontAnimFrames = sAnims_Shellos, \ - .frontAnimId = ANIM_V_STRETCH, \ - .backPicYOffset = 8, \ - .backAnimId = BACK_ANIM_H_SPRING, \ - .footprint = gMonFootprint_Shellos, \ - LEARNSETS(Shellos), \ - .formSpeciesIdTable = sShellosFormSpeciesIdTable - [SPECIES_SHELLOS_WEST_SEA] = { - SHELLOS_MISC_INFO, + .baseHP = 76, + .baseAttack = 48, + .baseDefense = 48, + .baseSpeed = 34, + .baseSpAttack = 57, + .baseSpDefense = 62, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 73, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_STICKY_HOLD, ABILITY_STORM_DRAIN, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Shellos"), + .cryId = CRY_SHELLOS, + .natDexNum = NATIONAL_DEX_SHELLOS, + .categoryName = _("Sea Slug"), + .height = 3, + .weight = 63, .description = COMPOUND_STRING( "It oozes a purple fluid to deter enemies.\n" "While harmless, the fluid is awfully sticky.\n" "Apparently, there are more West Sea\n" "Shellos now than there were in the past."), - FRONT_PIC(ShellosWestSea, 40, 40), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ShellosWestSea, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, - BACK_PIC(ShellosWestSea, 40, 56), - PALETTES(ShellosWestSea), - ICON(ShellosWestSea, 0), + .frontAnimFrames = sAnims_Shellos, + .frontAnimId = ANIM_V_STRETCH, + .backPic = gMonBackPic_ShellosWestSea, + .backPicSize = MON_COORDS_SIZE(40, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_H_SPRING, + .palette = gMonPalette_ShellosWestSea, + .shinyPalette = gMonShinyPalette_ShellosWestSea, + .iconSprite = gMonIcon_ShellosWestSea, + .iconPalIndex = 0, + FOOTPRINT(Shellos) + .levelUpLearnset = sShellosLevelUpLearnset, + .teachableLearnset = sShellosTeachableLearnset, + .formSpeciesIdTable = sShellosFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_GASTRODON_WEST_SEA}), }, [SPECIES_SHELLOS_EAST_SEA] = { - SHELLOS_MISC_INFO, + .baseHP = 76, + .baseAttack = 48, + .baseDefense = 48, + .baseSpeed = 34, + .baseSpAttack = 57, + .baseSpDefense = 62, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 190, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 65 : 73, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_STICKY_HOLD, ABILITY_STORM_DRAIN, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Shellos"), + .cryId = CRY_SHELLOS, + .natDexNum = NATIONAL_DEX_SHELLOS, + .categoryName = _("Sea Slug"), + .height = 3, + .weight = 63, .description = COMPOUND_STRING( "It's capable of spending a limited amount\n" "of time on land until their skin dries out.\n" "One theory suggests that living in cold\n" "seas causes Shellos to take on this form."), - FRONT_PIC(ShellosEastSea, 40, 40), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ShellosEastSea, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, - BACK_PIC(ShellosEastSea, 56, 48), - PALETTES(ShellosEastSea), - ICON(ShellosEastSea, 0), + .frontAnimFrames = sAnims_Shellos, + .frontAnimId = ANIM_V_STRETCH, + .backPic = gMonBackPic_ShellosEastSea, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_H_SPRING, + .palette = gMonPalette_ShellosEastSea, + .shinyPalette = gMonShinyPalette_ShellosEastSea, + .iconSprite = gMonIcon_ShellosEastSea, + .iconPalIndex = 0, + FOOTPRINT(Shellos) + .levelUpLearnset = sShellosLevelUpLearnset, + .teachableLearnset = sShellosTeachableLearnset, + .formSpeciesIdTable = sShellosFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_GASTRODON_EAST_SEA}), }, -#define GASTRODON_MISC_INFO \ - .baseHP = 111, \ - .baseAttack = 83, \ - .baseDefense = 68, \ - .baseSpeed = 39, \ - .baseSpAttack = 92, \ - .baseSpDefense = 82, \ - .types = { TYPE_WATER, TYPE_GROUND }, \ - .catchRate = 75, \ - .expYield = 166, \ - .evYield_HP = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_STICKY_HOLD, ABILITY_STORM_DRAIN, ABILITY_SAND_FORCE }, \ - .speciesName = _("Gastrodon"), \ - .cryId = CRY_GASTRODON, \ - .natDexNum = NATIONAL_DEX_GASTRODON, \ - .categoryName = _("Sea Slug"), \ - .height = 9, \ - .weight = 299, \ - .pokemonScale = 338, \ - .pokemonOffset = 8, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontPicYOffset = 8, \ - .frontAnimFrames = sAnims_Gastrodon, \ - .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, \ - .backPicYOffset = 3, \ - .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, \ - .footprint = gMonFootprint_Gastrodon, \ - LEARNSETS(Gastrodon), \ - .formSpeciesIdTable = sGastrodonFormSpeciesIdTable - [SPECIES_GASTRODON_WEST_SEA] = { - GASTRODON_MISC_INFO, + .baseHP = 111, + .baseAttack = 83, + .baseDefense = 68, + .baseSpeed = 39, + .baseSpAttack = 92, + .baseSpDefense = 82, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 176, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_STICKY_HOLD, ABILITY_STORM_DRAIN, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Gastrodon"), + .cryId = CRY_GASTRODON, + .natDexNum = NATIONAL_DEX_GASTRODON, + .categoryName = _("Sea Slug"), + .height = 9, + .weight = 299, .description = COMPOUND_STRING( "It appears on shallow-water beaches to\n" "eat sand for nourishment. Should one\n" "Gastrodon encounter another of a\n" "different color, a fierce battle will ensue."), - FRONT_PIC(GastrodonWestSea, 48, 48), - BACK_PIC(GastrodonWestSea, 56, 64), - PALETTES(GastrodonWestSea), - ICON(GastrodonWestSea, 0), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_GastrodonWestSea, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Gastrodon, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + .backPic = gMonBackPic_GastrodonWestSea, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + .palette = gMonPalette_GastrodonWestSea, + .shinyPalette = gMonShinyPalette_GastrodonWestSea, + .iconSprite = gMonIcon_GastrodonWestSea, + .iconPalIndex = 0, + FOOTPRINT(Gastrodon) + .levelUpLearnset = sGastrodonLevelUpLearnset, + .teachableLearnset = sGastrodonTeachableLearnset, + .formSpeciesIdTable = sGastrodonFormSpeciesIdTable, }, [SPECIES_GASTRODON_EAST_SEA] = { - GASTRODON_MISC_INFO, + .baseHP = 111, + .baseAttack = 83, + .baseDefense = 68, + .baseSpeed = 39, + .baseSpAttack = 92, + .baseSpDefense = 82, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), + .catchRate = 75, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 166 : 176, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_STICKY_HOLD, ABILITY_STORM_DRAIN, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Gastrodon"), + .cryId = CRY_GASTRODON, + .natDexNum = NATIONAL_DEX_GASTRODON, + .categoryName = _("Sea Slug"), + .height = 9, + .weight = 299, .description = COMPOUND_STRING( "Found more often on land than in the sea.\n" "They normally live in rocky seashores, but\n" "when cloudy or rainy, they can sometimes\n" "be found on mountains, far from the sea."), - FRONT_PIC(GastrodonEastSea, 56, 48), - BACK_PIC(GastrodonEastSea, 56, 64), - PALETTES(GastrodonEastSea), - ICON(GastrodonEastSea, 0), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_GastrodonEastSea, + .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Gastrodon, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + .backPic = gMonBackPic_GastrodonEastSea, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + .palette = gMonPalette_GastrodonEastSea, + .shinyPalette = gMonShinyPalette_GastrodonEastSea, + .iconSprite = gMonIcon_GastrodonEastSea, + .iconPalIndex = 0, + FOOTPRINT(Gastrodon) + .levelUpLearnset = sGastrodonLevelUpLearnset, + .teachableLearnset = sGastrodonTeachableLearnset, + .formSpeciesIdTable = sGastrodonFormSpeciesIdTable, }, #endif //P_FAMILY_SHELLOS @@ -1925,15 +2393,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 70, .baseSpAttack = 60, .baseSpDefense = 44, - .types = { TYPE_GHOST, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GHOST, TYPE_FLYING), .catchRate = 125, - .expYield = 70, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 70 : 127, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_AFTERMATH, ABILITY_UNBURDEN, ABILITY_FLARE_BOOST }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Drifloon"), @@ -1951,18 +2419,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Drifloon, 32, 56), + .frontPic = gMonFrontPic_Drifloon, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Drifloon, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 5, - BACK_PIC(Drifloon, 40, 64), + .backPic = gMonBackPic_Drifloon, + .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Drifloon), - ICON(Drifloon, 2), - .footprint = gMonFootprint_Drifloon, - LEARNSETS(Drifloon), + .palette = gMonPalette_Drifloon, + .shinyPalette = gMonShinyPalette_Drifloon, + .iconSprite = gMonIcon_Drifloon, + .iconPalIndex = 2, + FOOTPRINT(Drifloon) + .levelUpLearnset = sDrifloonLevelUpLearnset, + .teachableLearnset = sDrifloonTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_DRIFBLIM}), }, @@ -1974,15 +2447,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 80, .baseSpAttack = 90, .baseSpDefense = 54, - .types = { TYPE_GHOST, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GHOST, TYPE_FLYING), .catchRate = 60, - .expYield = 174, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 174 : 204, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_AFTERMATH, ABILITY_UNBURDEN, ABILITY_FLARE_BOOST }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Drifblim"), @@ -2000,18 +2473,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Drifblim, 56, 56), + .frontPic = gMonFrontPic_Drifblim, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Drifblim, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 7, - BACK_PIC(Drifblim, 64, 64), + .backPic = gMonBackPic_Drifblim, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Drifblim), - ICON(Drifblim, 2), - .footprint = gMonFootprint_Drifblim, - LEARNSETS(Drifblim), + .palette = gMonPalette_Drifblim, + .shinyPalette = gMonShinyPalette_Drifblim, + .iconSprite = gMonIcon_Drifblim, + .iconPalIndex = 2, + FOOTPRINT(Drifblim) + .levelUpLearnset = sDrifblimLevelUpLearnset, + .teachableLearnset = sDrifblimTeachableLearnset, }, #endif //P_FAMILY_DRIFLOON @@ -2024,15 +2502,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 85, .baseSpAttack = 44, .baseSpDefense = 56, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 190, - .expYield = 70, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 70 : 84, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 0, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_RUN_AWAY, ABILITY_KLUTZ, ABILITY_LIMBER }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Buneary"), @@ -2050,50 +2528,48 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Buneary, 32, 64), + .frontPic = gMonFrontPic_Buneary, + .frontPicSize = MON_COORDS_SIZE(32, 64), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Buneary, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Buneary, 64, 64), + .backPic = gMonBackPic_Buneary, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Buneary), - ICON(Buneary, 2), - .footprint = gMonFootprint_Buneary, - LEARNSETS(Buneary), + .palette = gMonPalette_Buneary, + .shinyPalette = gMonShinyPalette_Buneary, + .iconSprite = gMonIcon_Buneary, + .iconPalIndex = 2, + FOOTPRINT(Buneary) + .levelUpLearnset = sBunearyLevelUpLearnset, + .teachableLearnset = sBunearyTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_LOPUNNY}), }, -#define LOPUNNY_MISC_INFO \ - .catchRate = 60, \ - .evYield_Speed = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = 140, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Lopunny"), \ - .natDexNum = NATIONAL_DEX_LOPUNNY, \ - .categoryName = _("Rabbit"), \ - .footprint = gMonFootprint_Lopunny, \ - LEARNSETS(Lopunny), \ - .formSpeciesIdTable = sLopunnyFormSpeciesIdTable, \ - .formChangeTable = sLopunnyFormChangeTable - [SPECIES_LOPUNNY] = { - LOPUNNY_MISC_INFO, .baseHP = 65, .baseAttack = 76, .baseDefense = 84, .baseSpeed = 105, .baseSpAttack = 54, .baseSpDefense = 96, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .expYield = 168, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 168 : 178, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 140, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_CUTE_CHARM, ABILITY_KLUTZ, ABILITY_LIMBER }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Lopunny"), .cryId = CRY_LOPUNNY, + .natDexNum = NATIONAL_DEX_LOPUNNY, + .categoryName = _("Rabbit"), .height = 12, .weight = 333, .description = COMPOUND_STRING( @@ -2105,31 +2581,50 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lopunny, 56, 56), + .frontPic = gMonFrontPic_Lopunny, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Lopunny, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Lopunny, 64, 56), + .backPic = gMonBackPic_Lopunny, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Lopunny), - ICON(Lopunny, 2), + .palette = gMonPalette_Lopunny, + .shinyPalette = gMonShinyPalette_Lopunny, + .iconSprite = gMonIcon_Lopunny, + .iconPalIndex = 2, + FOOTPRINT(Lopunny) + .levelUpLearnset = sLopunnyLevelUpLearnset, + .teachableLearnset = sLopunnyTeachableLearnset, + .formSpeciesIdTable = sLopunnyFormSpeciesIdTable, + .formChangeTable = sLopunnyFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_LOPUNNY_MEGA] = { - LOPUNNY_MISC_INFO, .baseHP = 65, .baseAttack = 136, .baseDefense = 94, .baseSpeed = 135, .baseSpAttack = 54, .baseSpDefense = 96, - .types = { TYPE_NORMAL, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FIGHTING), + .catchRate = 60, .expYield = 203, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 140, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_SCRAPPY, ABILITY_SCRAPPY, ABILITY_SCRAPPY }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Lopunny"), .cryId = CRY_LOPUNNY_MEGA, + .natDexNum = NATIONAL_DEX_LOPUNNY, + .categoryName = _("Rabbit"), .height = 13, .weight = 283, .description = COMPOUND_STRING( @@ -2141,16 +2636,25 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(LopunnyMega, 56, 64), + .frontPic = gMonFrontPic_LopunnyMega, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_LopunnyMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(LopunnyMega, 64, 64), + .backPic = gMonBackPic_LopunnyMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(LopunnyMega), - ICON(LopunnyMega, 2), + .palette = gMonPalette_LopunnyMega, + .shinyPalette = gMonShinyPalette_LopunnyMega, + .iconSprite = gMonIcon_LopunnyMega, + .iconPalIndex = 2, + FOOTPRINT(Lopunny) .isMegaEvolution = TRUE, + .levelUpLearnset = sLopunnyLevelUpLearnset, + .teachableLearnset = sLopunnyTeachableLearnset, + .formSpeciesIdTable = sLopunnyFormSpeciesIdTable, + .formChangeTable = sLopunnyFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_BUNEARY @@ -2164,15 +2668,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 85, .baseSpAttack = 42, .baseSpDefense = 37, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 190, - .expYield = 62, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 62 : 71, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_LIMBER, ABILITY_OWN_TEMPO, ABILITY_KEEN_EYE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Glameow"), @@ -2190,17 +2694,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Glameow, 56, 56), + .frontPic = gMonFrontPic_Glameow, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Glameow, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Glameow, 64, 56), + .backPic = gMonBackPic_Glameow, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Glameow), - ICON(Glameow, 0), - .footprint = gMonFootprint_Glameow, - LEARNSETS(Glameow), + .palette = gMonPalette_Glameow, + .shinyPalette = gMonShinyPalette_Glameow, + .iconSprite = gMonIcon_Glameow, + .iconPalIndex = 0, + FOOTPRINT(Glameow) + .levelUpLearnset = sGlameowLevelUpLearnset, + .teachableLearnset = sGlameowTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_PURUGLY}), }, @@ -2212,15 +2721,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 112, .baseSpAttack = 64, .baseSpDefense = 59, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 75, - .expYield = 158, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 158 : 183, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_OWN_TEMPO, ABILITY_DEFIANT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Purugly"), @@ -2238,17 +2747,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Purugly, 64, 56), + .frontPic = gMonFrontPic_Purugly, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Purugly, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Purugly, 64, 48), + .backPic = gMonBackPic_Purugly, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Purugly), - ICON(Purugly, 0), - .footprint = gMonFootprint_Purugly, - LEARNSETS(Purugly), + .palette = gMonPalette_Purugly, + .shinyPalette = gMonShinyPalette_Purugly, + .iconSprite = gMonIcon_Purugly, + .iconPalIndex = 0, + FOOTPRINT(Purugly) + .levelUpLearnset = sPuruglyLevelUpLearnset, + .teachableLearnset = sPuruglyTeachableLearnset, }, #endif //P_FAMILY_GLAMEOW @@ -2261,15 +2775,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 74, .baseSpAttack = 41, .baseSpDefense = 41, - .types = { TYPE_POISON, TYPE_DARK }, + .types = MON_TYPES(TYPE_POISON, TYPE_DARK), .catchRate = 225, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 79, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STENCH, ABILITY_AFTERMATH, ABILITY_KEEN_EYE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Stunky"), @@ -2287,17 +2801,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Stunky, 56, 48), + .frontPic = gMonFrontPic_Stunky, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Stunky, .frontAnimId = ANIM_TIP_MOVE_FORWARD, - BACK_PIC(Stunky, 64, 64), + .backPic = gMonBackPic_Stunky, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Stunky), - ICON(Stunky, 2), - .footprint = gMonFootprint_Stunky, - LEARNSETS(Stunky), + .palette = gMonPalette_Stunky, + .shinyPalette = gMonShinyPalette_Stunky, + .iconSprite = gMonIcon_Stunky, + .iconPalIndex = 2, + FOOTPRINT(Stunky) + .levelUpLearnset = sStunkyLevelUpLearnset, + .teachableLearnset = sStunkyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_SKUNTANK}), }, @@ -2309,15 +2828,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 84, .baseSpAttack = 71, .baseSpDefense = 61, - .types = { TYPE_POISON, TYPE_DARK }, + .types = MON_TYPES(TYPE_POISON, TYPE_DARK), .catchRate = 60, - .expYield = 168, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 168 : 209, .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STENCH, ABILITY_AFTERMATH, ABILITY_KEEN_EYE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Skuntank"), @@ -2335,17 +2854,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 9, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Skuntank, 64, 56), + .frontPic = gMonFrontPic_Skuntank, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Skuntank, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Skuntank, 64, 64), + .backPic = gMonBackPic_Skuntank, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Skuntank), - ICON(Skuntank, 2), - .footprint = gMonFootprint_Skuntank, - LEARNSETS(Skuntank), + .palette = gMonPalette_Skuntank, + .shinyPalette = gMonShinyPalette_Skuntank, + .iconSprite = gMonIcon_Skuntank, + .iconPalIndex = 2, + FOOTPRINT(Skuntank) + .levelUpLearnset = sSkuntankLevelUpLearnset, + .teachableLearnset = sSkuntankTeachableLearnset, }, #endif //P_FAMILY_STUNKY @@ -2358,16 +2882,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 23, .baseSpAttack = 24, .baseSpDefense = 86, - .types = { TYPE_STEEL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_STEEL, TYPE_PSYCHIC), .catchRate = 255, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 72, .evYield_Defense = 1, .itemRare = ITEM_METAL_COAT, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_LEVITATE, ABILITY_HEATPROOF, ABILITY_HEAVY_METAL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Bronzor"), @@ -2385,18 +2909,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bronzor, 32, 40), + .frontPic = gMonFrontPic_Bronzor, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Bronzor, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 9, - BACK_PIC(Bronzor, 40, 48), + .backPic = gMonBackPic_Bronzor, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Bronzor), - ICON(Bronzor, 0), - .footprint = gMonFootprint_Bronzor, - LEARNSETS(Bronzor), + .palette = gMonPalette_Bronzor, + .shinyPalette = gMonShinyPalette_Bronzor, + .iconSprite = gMonIcon_Bronzor, + .iconPalIndex = 0, + FOOTPRINT(Bronzor) + .levelUpLearnset = sBronzorLevelUpLearnset, + .teachableLearnset = sBronzorTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_BRONZONG}), }, @@ -2408,9 +2937,9 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 33, .baseSpAttack = 79, .baseSpDefense = 116, - .types = { TYPE_STEEL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_STEEL, TYPE_PSYCHIC), .catchRate = 90, - .expYield = 175, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 188, .evYield_Defense = 1, .evYield_SpDefense = 1, .itemRare = ITEM_METAL_COAT, @@ -2418,7 +2947,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_LEVITATE, ABILITY_HEATPROOF, ABILITY_HEAVY_METAL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Bronzong"), @@ -2436,18 +2965,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bronzong, 56, 56), + .frontPic = gMonFrontPic_Bronzong, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Bronzong, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .enemyMonElevation = 7, - BACK_PIC(Bronzong, 64, 56), + .backPic = gMonBackPic_Bronzong, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Bronzong), - ICON(Bronzong, 0), - .footprint = gMonFootprint_Bronzong, - LEARNSETS(Bronzong), + .palette = gMonPalette_Bronzong, + .shinyPalette = gMonShinyPalette_Bronzong, + .iconSprite = gMonIcon_Bronzong, + .iconPalIndex = 0, + FOOTPRINT(Bronzong) + .levelUpLearnset = sBronzongLevelUpLearnset, + .teachableLearnset = sBronzongTeachableLearnset, }, #endif //P_FAMILY_BRONZOR @@ -2460,16 +2994,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 91, .baseSpAttack = 92, .baseSpDefense = 42, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 30, - .expYield = 144, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 144 : 107, .evYield_Attack = 1, .itemRare = ITEM_METRONOME, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Chatot"), @@ -2487,17 +3021,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chatot, 40, 48), + .frontPic = gMonFrontPic_Chatot, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Chatot, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Chatot, 48, 48), + .backPic = gMonBackPic_Chatot, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Chatot), - ICON(Chatot, 0), - .footprint = gMonFootprint_Chatot, - LEARNSETS(Chatot), + .palette = gMonPalette_Chatot, + .shinyPalette = gMonShinyPalette_Chatot, + .iconSprite = gMonIcon_Chatot, + .iconPalIndex = 0, + FOOTPRINT(Chatot) + .levelUpLearnset = sChatotLevelUpLearnset, + .teachableLearnset = sChatotTeachableLearnset, }, #endif //P_FAMILY_CHATOT @@ -2510,16 +3049,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 35, .baseSpAttack = 92, .baseSpDefense = 108, - .types = { TYPE_GHOST, TYPE_DARK }, + .types = MON_TYPES(TYPE_GHOST, TYPE_DARK), .catchRate = 100, - .expYield = 170, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 170 : 168, .evYield_Defense = 1, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Spiritomb"), @@ -2537,17 +3076,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Spiritomb, 56, 56), + .frontPic = gMonFrontPic_Spiritomb, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Spiritomb, .frontAnimId = ANIM_GROW_IN_STAGES, - BACK_PIC(Spiritomb, 64, 56), + .backPic = gMonBackPic_Spiritomb, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Spiritomb), - ICON(Spiritomb, 5), - .footprint = gMonFootprint_Spiritomb, - LEARNSETS(Spiritomb), + .palette = gMonPalette_Spiritomb, + .shinyPalette = gMonShinyPalette_Spiritomb, + .iconSprite = gMonIcon_Spiritomb, + .iconPalIndex = 5, + FOOTPRINT(Spiritomb) + .levelUpLearnset = sSpiritombLevelUpLearnset, + .teachableLearnset = sSpiritombTeachableLearnset, }, #endif //P_FAMILY_SPIRITOMB @@ -2560,15 +3104,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 42, .baseSpAttack = 40, .baseSpDefense = 45, - .types = { TYPE_DRAGON, TYPE_GROUND }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), .catchRate = 45, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 67, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_ROUGH_SKIN }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Gible"), @@ -2586,19 +3130,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gible, 48, 48), - FRONT_PIC_FEMALE(Gible, 48, 48), + .frontPic = gMonFrontPic_Gible, + .frontPicFemale = gMonFrontPic_GibleF, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Gible, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Gible, 56, 48), - BACK_PIC_FEMALE(Gible, 56, 48), + .backPic = gMonBackPic_Gible, + .backPicFemale = gMonBackPic_GibleF, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Gible), - ICON(Gible, 0), - .footprint = gMonFootprint_Gible, - LEARNSETS(Gible), + .palette = gMonPalette_Gible, + .shinyPalette = gMonShinyPalette_Gible, + .iconSprite = gMonIcon_Gible, + .iconPalIndex = 0, + FOOTPRINT(Gible) + .levelUpLearnset = sGibleLevelUpLearnset, + .teachableLearnset = sGibleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_GABITE}), }, @@ -2610,7 +3161,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 82, .baseSpAttack = 50, .baseSpDefense = 55, - .types = { TYPE_DRAGON, TYPE_GROUND }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), .catchRate = 45, .expYield = 144, .evYield_Attack = 2, @@ -2618,7 +3169,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_ROUGH_SKIN }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Gabite"), @@ -2636,103 +3187,145 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Gabite, 64, 64), - FRONT_PIC_FEMALE(Gabite, 64, 64), + .frontPic = gMonFrontPic_Gabite, + .frontPicFemale = gMonFrontPic_GabiteF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Gabite, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Gabite, 64, 64), - BACK_PIC_FEMALE(Gabite, 64, 64), + .backPic = gMonBackPic_Gabite, + .backPicFemale = gMonBackPic_GabiteF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Gabite), - ICON(Gabite, 0), - .footprint = gMonFootprint_Gabite, - LEARNSETS(Gabite), + .palette = gMonPalette_Gabite, + .shinyPalette = gMonShinyPalette_Gabite, + .iconSprite = gMonIcon_Gabite, + .iconPalIndex = 0, + FOOTPRINT(Gabite) + .levelUpLearnset = sGabiteLevelUpLearnset, + .teachableLearnset = sGabiteTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 48, SPECIES_GARCHOMP}), }, -#define GARCHOMP_MISC_INFO \ - .types = { TYPE_DRAGON, TYPE_GROUND }, \ - .catchRate = 45, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Garchomp"), \ - .natDexNum = NATIONAL_DEX_GARCHOMP, \ - .categoryName = _("Mach"), \ - .height = 19, \ - .weight = 950, \ - .pokemonScale = 256, \ - .pokemonOffset = 1, \ - .trainerScale = 326, \ - .trainerOffset = 4, \ - .footprint = gMonFootprint_Garchomp, \ - LEARNSETS(Garchomp), \ - .formSpeciesIdTable = sGarchompFormSpeciesIdTable, \ - .formChangeTable = sGarchompFormChangeTable - [SPECIES_GARCHOMP] = { - GARCHOMP_MISC_INFO, .baseHP = 108, .baseAttack = 130, .baseDefense = 95, .baseSpeed = 102, .baseSpAttack = 80, .baseSpDefense = 85, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 218, + #endif + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_ROUGH_SKIN }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Garchomp"), .cryId = CRY_GARCHOMP, + .natDexNum = NATIONAL_DEX_GARCHOMP, + .categoryName = _("Mach"), + .height = 19, + .weight = 950, .description = COMPOUND_STRING( "When it folds up its body and extends its\n" "wings, it looks like a jet plane. It is\n" "covered in fine scales that reduce drag,\n" "enabling it to fly at high speeds."), - FRONT_PIC(Garchomp, 64, 64), - FRONT_PIC_FEMALE(Garchomp, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_Garchomp, + .frontPicFemale = gMonFrontPic_GarchompF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Garchomp, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Garchomp, 64, 56), + .backPic = gMonBackPic_Garchomp, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Garchomp), - ICON(Garchomp, 0), + .palette = gMonPalette_Garchomp, + .shinyPalette = gMonShinyPalette_Garchomp, + .iconSprite = gMonIcon_Garchomp, + .iconPalIndex = 0, + FOOTPRINT(Garchomp) + .levelUpLearnset = sGarchompLevelUpLearnset, + .teachableLearnset = sGarchompTeachableLearnset, + .formSpeciesIdTable = sGarchompFormSpeciesIdTable, + .formChangeTable = sGarchompFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_GARCHOMP_MEGA] = { - GARCHOMP_MISC_INFO, .baseHP = 108, .baseAttack = 170, .baseDefense = 115, .baseSpeed = 92, .baseSpAttack = 120, .baseSpDefense = 95, - .expYield = 315, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 350 : 315, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_SAND_FORCE, ABILITY_SAND_FORCE, ABILITY_SAND_FORCE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Garchomp"), .cryId = CRY_GARCHOMP_MEGA, + .natDexNum = NATIONAL_DEX_GARCHOMP, + .categoryName = _("Mach"), + .height = 19, + .weight = 950, .description = COMPOUND_STRING( "Excess energy melted its arms and wings\n" "into giant scythes, sending it mad with\n" "rage. It swings its scythes wildly and\n" "slices the ground to pieces."), - FRONT_PIC(GarchompMega, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_GarchompMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_GarchompMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GarchompMega, 64, 56), + .backPic = gMonBackPic_GarchompMega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(GarchompMega), - ICON(GarchompMega, 0), + .palette = gMonPalette_GarchompMega, + .shinyPalette = gMonShinyPalette_GarchompMega, + .iconSprite = gMonIcon_GarchompMega, + .iconPalIndex = 0, + FOOTPRINT(Garchomp) .isMegaEvolution = TRUE, + .levelUpLearnset = sGarchompLevelUpLearnset, + .teachableLearnset = sGarchompTeachableLearnset, + .formSpeciesIdTable = sGarchompFormSpeciesIdTable, + .formChangeTable = sGarchompFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_GIBLE @@ -2746,15 +3339,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 60, .baseSpAttack = 35, .baseSpDefense = 40, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 75, - .expYield = 57, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 57 : 72, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_STEADFAST, ABILITY_INNER_FOCUS, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Riolu"), @@ -2772,51 +3365,49 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Riolu, 48, 48), + .frontPic = gMonFrontPic_Riolu, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Riolu, .frontAnimId = ANIM_RAPID_H_HOPS, - BACK_PIC(Riolu, 64, 64), + .backPic = gMonBackPic_Riolu, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Riolu), - ICON(Riolu, 2), - .footprint = gMonFootprint_Riolu, - LEARNSETS(Riolu), + .palette = gMonPalette_Riolu, + .shinyPalette = gMonShinyPalette_Riolu, + .iconSprite = gMonIcon_Riolu, + .iconPalIndex = 2, + FOOTPRINT(Riolu) + .levelUpLearnset = sRioluLevelUpLearnset, + .teachableLearnset = sRioluTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP_DAY, 0, SPECIES_LUCARIO}), }, -#define LUCARIO_MISC_INFO \ - .types = { TYPE_FIGHTING, TYPE_STEEL }, \ - .catchRate = 45, \ - .evYield_Attack = 1, \ - .evYield_SpAttack = 1, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Lucario"), \ - .natDexNum = NATIONAL_DEX_LUCARIO, \ - .categoryName = _("Aura"), \ - .footprint = gMonFootprint_Lucario, \ - LEARNSETS(Lucario), \ - .formSpeciesIdTable = sLucarioFormSpeciesIdTable, \ - .formChangeTable = sLucarioFormChangeTable - [SPECIES_LUCARIO] = { - LUCARIO_MISC_INFO, .baseHP = 70, .baseAttack = 110, .baseDefense = 70, .baseSpeed = 90, .baseSpAttack = 115, .baseSpDefense = 70, - .expYield = 184, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_STEEL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 204, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_STEADFAST, ABILITY_INNER_FOCUS, ABILITY_JUSTIFIED }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Lucario"), .cryId = CRY_LUCARIO, + .natDexNum = NATIONAL_DEX_LUCARIO, + .categoryName = _("Aura"), .height = 12, .weight = 540, .description = COMPOUND_STRING( @@ -2828,30 +3419,51 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lucario, 48, 56), + .frontPic = gMonFrontPic_Lucario, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Lucario, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Lucario, 64, 64), + .backPic = gMonBackPic_Lucario, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Lucario), - ICON(Lucario, 2), + .palette = gMonPalette_Lucario, + .shinyPalette = gMonShinyPalette_Lucario, + .iconSprite = gMonIcon_Lucario, + .iconPalIndex = 2, + FOOTPRINT(Lucario) + .levelUpLearnset = sLucarioLevelUpLearnset, + .teachableLearnset = sLucarioTeachableLearnset, + .formSpeciesIdTable = sLucarioFormSpeciesIdTable, + .formChangeTable = sLucarioFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_LUCARIO_MEGA] = { - LUCARIO_MISC_INFO, .baseHP = 70, .baseAttack = 145, .baseDefense = 88, .baseSpeed = 112, .baseSpAttack = 140, .baseSpDefense = 70, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_STEEL), + .catchRate = 45, .expYield = 219, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_ADAPTABILITY, ABILITY_ADAPTABILITY, ABILITY_ADAPTABILITY }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Lucario"), .cryId = CRY_LUCARIO_MEGA, + .natDexNum = NATIONAL_DEX_LUCARIO, + .categoryName = _("Aura"), .height = 13, .weight = 575, .description = COMPOUND_STRING( @@ -2863,16 +3475,25 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(LucarioMega, 48, 64), + .frontPic = gMonFrontPic_LucarioMega, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_LucarioMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(LucarioMega, 64, 64), + .backPic = gMonBackPic_LucarioMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(LucarioMega), - ICON(LucarioMega, 2), + .palette = gMonPalette_LucarioMega, + .shinyPalette = gMonShinyPalette_LucarioMega, + .iconSprite = gMonIcon_LucarioMega, + .iconPalIndex = 2, + FOOTPRINT(Lucario) .isMegaEvolution = TRUE, + .levelUpLearnset = sLucarioLevelUpLearnset, + .teachableLearnset = sLucarioTeachableLearnset, + .formSpeciesIdTable = sLucarioFormSpeciesIdTable, + .formChangeTable = sLucarioFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_RIOLU @@ -2886,15 +3507,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 32, .baseSpAttack = 38, .baseSpDefense = 42, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 140, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 95, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_STREAM, ABILITY_NONE, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Hippopotas"), @@ -2912,21 +3533,28 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 11, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Hippopotas, 64, 40), + .frontPic = gMonFrontPic_Hippopotas, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Hippopotas, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Hippopotas, 64, 40), + .backPic = gMonBackPic_Hippopotas, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Hippopotas), - PALETTE_FEMALE(Hippopotas), - ICON(Hippopotas, 1), + .palette = gMonPalette_Hippopotas, + .paletteFemale = gMonPalette_HippopotasF, + .shinyPalette = gMonShinyPalette_Hippopotas, + .shinyPaletteFemale = gMonShinyPalette_HippopotasF, + .iconSprite = gMonIcon_Hippopotas, + .iconPalIndex = 1, #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE - ICON_FEMALE(Hippopotas, 1), + .iconSpriteFemale = gMonIcon_HippopotasF, + .iconPalIndexFemale = 1, #endif - .footprint = gMonFootprint_Hippopotas, - LEARNSETS(Hippopotas), + FOOTPRINT(Hippopotas) + .levelUpLearnset = sHippopotasLevelUpLearnset, + .teachableLearnset = sHippopotasTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_HIPPOWDON}), }, @@ -2938,15 +3566,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 47, .baseSpAttack = 68, .baseSpDefense = 72, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 60, - .expYield = 184, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 184 : 198, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_STREAM, ABILITY_NONE, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Hippowdon"), @@ -2964,21 +3592,28 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 2, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Hippowdon, 64, 56), + .frontPic = gMonFrontPic_Hippowdon, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Hippowdon, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Hippowdon, 64, 56), + .backPic = gMonBackPic_Hippowdon, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Hippowdon), - PALETTE_FEMALE(Hippowdon), - ICON(Hippowdon, 1), + .palette = gMonPalette_Hippowdon, + .paletteFemale = gMonPalette_HippowdonF, + .shinyPalette = gMonShinyPalette_Hippowdon, + .shinyPaletteFemale = gMonShinyPalette_HippowdonF, + .iconSprite = gMonIcon_Hippowdon, + .iconPalIndex = 1, #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE - ICON_FEMALE(Hippowdon, 1), + .iconSpriteFemale = gMonIcon_HippowdonF, + .iconPalIndexFemale = 1, #endif - .footprint = gMonFootprint_Hippowdon, - LEARNSETS(Hippowdon), + FOOTPRINT(Hippowdon) + .levelUpLearnset = sHippowdonLevelUpLearnset, + .teachableLearnset = sHippowdonTeachableLearnset, }, #endif //P_FAMILY_HIPPOPOTAS @@ -2991,16 +3626,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 65, .baseSpAttack = 30, .baseSpDefense = 55, - .types = { TYPE_POISON, TYPE_BUG }, + .types = MON_TYPES(TYPE_POISON, TYPE_BUG), .catchRate = 120, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 114, .evYield_Defense = 1, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_WATER_3), .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_SNIPER, ABILITY_KEEN_EYE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Skorupi"), @@ -3018,17 +3653,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Skorupi, 48, 48), + .frontPic = gMonFrontPic_Skorupi, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Skorupi, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Skorupi, 64, 56), + .backPic = gMonBackPic_Skorupi, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Skorupi), - ICON(Skorupi, 0), - .footprint = gMonFootprint_Skorupi, - LEARNSETS(Skorupi), + .palette = gMonPalette_Skorupi, + .shinyPalette = gMonShinyPalette_Skorupi, + .iconSprite = gMonIcon_Skorupi, + .iconPalIndex = 0, + FOOTPRINT(Skorupi) + .levelUpLearnset = sSkorupiLevelUpLearnset, + .teachableLearnset = sSkorupiTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_DRAPION}), }, @@ -3040,16 +3680,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 95, .baseSpAttack = 60, .baseSpDefense = 75, - .types = { TYPE_POISON, TYPE_DARK }, + .types = MON_TYPES(TYPE_POISON, TYPE_DARK), .catchRate = 45, - .expYield = 175, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 175 : 204, .evYield_Defense = 2, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_WATER_3), .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_SNIPER, ABILITY_KEEN_EYE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Drapion"), @@ -3067,17 +3707,22 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 5, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Drapion, 64, 56), + .frontPic = gMonFrontPic_Drapion, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Drapion, .frontAnimId = ANIM_V_JUMPS_BIG, - BACK_PIC(Drapion, 64, 56), + .backPic = gMonBackPic_Drapion, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Drapion), - ICON(Drapion, 2), - .footprint = gMonFootprint_Drapion, - LEARNSETS(Drapion), + .palette = gMonPalette_Drapion, + .shinyPalette = gMonShinyPalette_Drapion, + .iconSprite = gMonIcon_Drapion, + .iconPalIndex = 2, + FOOTPRINT(Drapion) + .levelUpLearnset = sDrapionLevelUpLearnset, + .teachableLearnset = sDrapionTeachableLearnset, }, #endif //P_FAMILY_SKORUPI @@ -3090,16 +3735,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 50, .baseSpAttack = 61, .baseSpDefense = 40, - .types = { TYPE_POISON, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_POISON, TYPE_FIGHTING), .catchRate = 140, - .expYield = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 60 : 83, .evYield_Attack = 1, .itemRare = ITEM_BLACK_SLUDGE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 10, .friendship = 100, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_ANTICIPATION, ABILITY_DRY_SKIN, ABILITY_POISON_TOUCH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Croagunk"), @@ -3117,19 +3762,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Croagunk, 40, 48), - FRONT_PIC_FEMALE(Croagunk, 40, 48), + .frontPic = gMonFrontPic_Croagunk, + .frontPicFemale = gMonFrontPic_CroagunkF, + .frontPicSize = MON_COORDS_SIZE(40, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Croagunk, .frontAnimId = ANIM_RAPID_H_HOPS, - BACK_PIC(Croagunk, 56, 56), - BACK_PIC_FEMALE(Croagunk, 56, 56), + .backPic = gMonBackPic_Croagunk, + .backPicFemale = gMonBackPic_CroagunkF, + .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_GROW, - PALETTES(Croagunk), - ICON(Croagunk, 0), - .footprint = gMonFootprint_Croagunk, - LEARNSETS(Croagunk), + .palette = gMonPalette_Croagunk, + .shinyPalette = gMonShinyPalette_Croagunk, + .iconSprite = gMonIcon_Croagunk, + .iconPalIndex = 0, + FOOTPRINT(Croagunk) + .levelUpLearnset = sCroagunkLevelUpLearnset, + .teachableLearnset = sCroagunkTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_TOXICROAK}), }, @@ -3141,16 +3793,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 85, .baseSpAttack = 86, .baseSpDefense = 65, - .types = { TYPE_POISON, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_POISON, TYPE_FIGHTING), .catchRate = 75, - .expYield = 172, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 172 : 181, .evYield_Attack = 2, .itemRare = ITEM_BLACK_SLUDGE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_ANTICIPATION, ABILITY_DRY_SKIN, ABILITY_POISON_TOUCH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Toxicroak"), @@ -3168,19 +3820,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Toxicroak, 56, 56), - FRONT_PIC_FEMALE(Toxicroak, 56, 56), + .frontPic = gMonFrontPic_Toxicroak, + .frontPicFemale = gMonFrontPic_ToxicroakF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Toxicroak, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Toxicroak, 56, 56), - BACK_PIC_FEMALE(Toxicroak, 56, 56), + .backPic = gMonBackPic_Toxicroak, + .backPicFemale = gMonBackPic_ToxicroakF, + .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Toxicroak), - ICON(Toxicroak, 0), - .footprint = gMonFootprint_Toxicroak, - LEARNSETS(Toxicroak), + .palette = gMonPalette_Toxicroak, + .shinyPalette = gMonShinyPalette_Toxicroak, + .iconSprite = gMonIcon_Toxicroak, + .iconPalIndex = 0, + FOOTPRINT(Toxicroak) + .levelUpLearnset = sToxicroakLevelUpLearnset, + .teachableLearnset = sToxicroakTeachableLearnset, }, #endif //P_FAMILY_CROAGUNK @@ -3193,16 +3852,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 46, .baseSpAttack = 90, .baseSpDefense = 72, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 200, - .expYield = 159, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 159 : 164, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Carnivine"), .cryId = CRY_CARNIVINE, @@ -3219,18 +3878,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Carnivine, 64, 48), + .frontPic = gMonFrontPic_Carnivine, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Carnivine, .frontAnimId = ANIM_FIGURE_8, .enemyMonElevation = 8, - BACK_PIC(Carnivine, 64, 56), + .backPic = gMonBackPic_Carnivine, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Carnivine), - ICON(Carnivine, 1), - .footprint = gMonFootprint_Carnivine, - LEARNSETS(Carnivine), + .palette = gMonPalette_Carnivine, + .shinyPalette = gMonShinyPalette_Carnivine, + .iconSprite = gMonIcon_Carnivine, + .iconPalIndex = 1, + FOOTPRINT(Carnivine) + .levelUpLearnset = sCarnivineLevelUpLearnset, + .teachableLearnset = sCarnivineTeachableLearnset, }, #endif //P_FAMILY_CARNIVINE @@ -3243,15 +3907,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 66, .baseSpAttack = 49, .baseSpDefense = 61, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 190, - .expYield = 66, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 66 : 90, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_STORM_DRAIN, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Finneon"), @@ -3269,19 +3933,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Finneon, 32, 40), - FRONT_PIC_FEMALE(Finneon, 32, 40), + .frontPic = gMonFrontPic_Finneon, + .frontPicFemale = gMonFrontPic_FinneonF, + .frontPicSize = MON_COORDS_SIZE(32, 40), + .frontPicSizeFemale = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Finneon, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, - BACK_PIC(Finneon, 56, 40), - BACK_PIC_FEMALE(Finneon, 56, 40), + .backPic = gMonBackPic_Finneon, + .backPicFemale = gMonBackPic_FinneonF, + .backPicSize = MON_COORDS_SIZE(56, 40), + .backPicSizeFemale = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Finneon), - ICON(Finneon, 0), - .footprint = gMonFootprint_Finneon, - LEARNSETS(Finneon), + .palette = gMonPalette_Finneon, + .shinyPalette = gMonShinyPalette_Finneon, + .iconSprite = gMonIcon_Finneon, + .iconPalIndex = 0, + FOOTPRINT(Finneon) + .levelUpLearnset = sFinneonLevelUpLearnset, + .teachableLearnset = sFinneonTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_LUMINEON}), }, @@ -3293,15 +3964,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 91, .baseSpAttack = 69, .baseSpDefense = 86, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 75, - .expYield = 161, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 161 : 156, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_STORM_DRAIN, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Lumineon"), @@ -3319,19 +3990,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lumineon, 56, 56), - FRONT_PIC_FEMALE(Lumineon, 56, 56), + .frontPic = gMonFrontPic_Lumineon, + .frontPicFemale = gMonFrontPic_LumineonF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Lumineon, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Lumineon, 56, 64), - BACK_PIC_FEMALE(Lumineon, 56, 64), + .backPic = gMonBackPic_Lumineon, + .backPicFemale = gMonBackPic_LumineonF, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Lumineon), - ICON(Lumineon, 0), - .footprint = gMonFootprint_Lumineon, - LEARNSETS(Lumineon), + .palette = gMonPalette_Lumineon, + .shinyPalette = gMonShinyPalette_Lumineon, + .iconSprite = gMonIcon_Lumineon, + .iconPalIndex = 0, + FOOTPRINT(Lumineon) + .levelUpLearnset = sLumineonLevelUpLearnset, + .teachableLearnset = sLumineonTeachableLearnset, }, #endif //P_FAMILY_FINNEON @@ -3344,16 +4022,16 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 40, .baseSpAttack = 62, .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_ICE }, + .types = MON_TYPES(TYPE_GRASS, TYPE_ICE), .catchRate = 120, - .expYield = 67, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 67 : 131, .evYield_Attack = 1, .itemRare = ITEM_NEVER_MELT_ICE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_SNOW_WARNING, ABILITY_NONE, ABILITY_SOUNDPROOF }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Snover"), @@ -3371,54 +4049,54 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Snover, 64, 48), - FRONT_PIC_FEMALE(Snover, 64, 48), + .frontPic = gMonFrontPic_Snover, + .frontPicFemale = gMonFrontPic_SnoverF, + .frontPicSize = MON_COORDS_SIZE(64, 48), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Snover, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Snover, 64, 56), - BACK_PIC_FEMALE(Snover, 64, 56), + .backPic = gMonBackPic_Snover, + .backPicFemale = gMonBackPic_SnoverF, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Snover), - ICON(Snover, 1), - .footprint = gMonFootprint_Snover, - LEARNSETS(Snover), + .palette = gMonPalette_Snover, + .shinyPalette = gMonShinyPalette_Snover, + .iconSprite = gMonIcon_Snover, + .iconPalIndex = 1, + FOOTPRINT(Snover) + .levelUpLearnset = sSnoverLevelUpLearnset, + .teachableLearnset = sSnoverTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_ABOMASNOW}), }, -#define ABOMASNOW_MISC_INFO \ - .types = { TYPE_GRASS, TYPE_ICE }, \ - .catchRate = 60, \ - .evYield_Attack = 1, \ - .evYield_SpAttack = 1, \ - .itemRare = ITEM_NEVER_MELT_ICE, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS },\ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Abomasnow"), \ - .natDexNum = NATIONAL_DEX_ABOMASNOW, \ - .categoryName = _("Frost Tree"), \ - .footprint = gMonFootprint_Abomasnow, \ - LEARNSETS(Abomasnow), \ - .formSpeciesIdTable = sAbomasnowFormSpeciesIdTable, \ - .formChangeTable = sAbomasnowFormChangeTable - [SPECIES_ABOMASNOW] = { - ABOMASNOW_MISC_INFO, .baseHP = 90, .baseAttack = 92, .baseDefense = 75, .baseSpeed = 60, .baseSpAttack = 92, .baseSpDefense = 85, - .expYield = 173, + .types = MON_TYPES(TYPE_GRASS, TYPE_ICE), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 173 : 214, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .itemRare = ITEM_NEVER_MELT_ICE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_SNOW_WARNING, ABILITY_NONE, ABILITY_SOUNDPROOF }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Abomasnow"), .cryId = CRY_ABOMASNOW, + .natDexNum = NATIONAL_DEX_ABOMASNOW, + .categoryName = _("Frost Tree"), .height = 22, .weight = 1355, .description = COMPOUND_STRING( @@ -3430,31 +4108,54 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(Abomasnow, 64, 64), - FRONT_PIC_FEMALE(Abomasnow, 64, 64), + .frontPic = gMonFrontPic_Abomasnow, + .frontPicFemale = gMonFrontPic_AbomasnowF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Abomasnow, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Abomasnow, 64, 56), + .backPic = gMonBackPic_Abomasnow, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Abomasnow), - ICON(Abomasnow, 1), + .palette = gMonPalette_Abomasnow, + .shinyPalette = gMonShinyPalette_Abomasnow, + .iconSprite = gMonIcon_Abomasnow, + .iconPalIndex = 1, + FOOTPRINT(Abomasnow) + .levelUpLearnset = sAbomasnowLevelUpLearnset, + .teachableLearnset = sAbomasnowTeachableLearnset, + .formSpeciesIdTable = sAbomasnowFormSpeciesIdTable, + .formChangeTable = sAbomasnowFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_ABOMASNOW_MEGA] = { - ABOMASNOW_MISC_INFO, .baseHP = 90, .baseAttack = 132, .baseDefense = 105, .baseSpeed = 30, .baseSpAttack = 132, .baseSpDefense = 105, + .types = MON_TYPES(TYPE_GRASS, TYPE_ICE), + .catchRate = 60, .expYield = 208, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .itemRare = ITEM_NEVER_MELT_ICE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS), .abilities = { ABILITY_SNOW_WARNING, ABILITY_SNOW_WARNING, ABILITY_SNOW_WARNING }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Abomasnow"), .cryId = CRY_ABOMASNOW_MEGA, + .natDexNum = NATIONAL_DEX_ABOMASNOW, + .categoryName = _("Frost Tree"), .height = 27, .weight = 1850, .description = COMPOUND_STRING( @@ -3466,194 +4167,374 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(AbomasnowMega, 64, 64), + .frontPic = gMonFrontPic_AbomasnowMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_AbomasnowMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(AbomasnowMega, 64, 64), + .backPic = gMonBackPic_AbomasnowMega, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(AbomasnowMega), - ICON(AbomasnowMega, 1), + .palette = gMonPalette_AbomasnowMega, + .shinyPalette = gMonShinyPalette_AbomasnowMega, + .iconSprite = gMonIcon_AbomasnowMega, + .iconPalIndex = 1, + FOOTPRINT(Abomasnow) .isMegaEvolution = TRUE, + .levelUpLearnset = sAbomasnowLevelUpLearnset, + .teachableLearnset = sAbomasnowTeachableLearnset, + .formSpeciesIdTable = sAbomasnowFormSpeciesIdTable, + .formChangeTable = sAbomasnowFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_SNOVER #if P_FAMILY_ROTOM -#define ROTOM_MISC_INFO \ - .catchRate = 45, \ - .evYield_Speed = 1, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_RED, \ - .speciesName = _("Rotom"), \ - .cryId = CRY_ROTOM, \ - .natDexNum = NATIONAL_DEX_ROTOM, \ - .categoryName = _("Plasma"), \ - .height = 3, \ - .weight = 3, \ - .pokemonScale = 530, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Rotom, \ - LEARNSETS(Rotom), \ - .formSpeciesIdTable = sRotomFormSpeciesIdTable, \ - .formChangeTable = sRotomFormChangeTable - [SPECIES_ROTOM] = { - ROTOM_MISC_INFO, .baseHP = 50, .baseAttack = 50, .baseDefense = 77, .baseSpeed = 91, .baseSpAttack = 95, .baseSpDefense = 77, - .types = { TYPE_ELECTRIC, TYPE_GHOST }, - .expYield = 154, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_GHOST), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_5) ? 154 : 132, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Rotom"), + .cryId = CRY_ROTOM, + .natDexNum = NATIONAL_DEX_ROTOM, + .categoryName = _("Plasma"), + .height = 3, + .weight = 3, .description = COMPOUND_STRING( "Its body is composed of plasma and loves\n" "to surprise others. One boy's invention led\n" "to the development of many machines that\n" "can use of Rotom's unique capabilities."), - FRONT_PIC(Rotom, 56, 48), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Rotom, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Rotom, .frontAnimId = ANIM_GLOW_YELLOW, .enemyMonElevation = 10, - BACK_PIC(Rotom, 56, 56), + .backPic = gMonBackPic_Rotom, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Rotom), - ICON(Rotom, 0), + .palette = gMonPalette_Rotom, + .shinyPalette = gMonShinyPalette_Rotom, + .iconSprite = gMonIcon_Rotom, + .iconPalIndex = 0, + FOOTPRINT(Rotom) + .levelUpLearnset = sRotomLevelUpLearnset, + .teachableLearnset = sRotomTeachableLearnset, + .formSpeciesIdTable = sRotomFormSpeciesIdTable, + .formChangeTable = sRotomFormChangeTable, }, -#define ROTOM_APPLIANCE_INFO(form) \ - .baseHP = 50, \ - .baseAttack = 65, \ - .baseDefense = 107, \ - .baseSpeed = 86, \ - .baseSpAttack = 105, \ - .baseSpDefense = 107, \ - .expYield = 182 +#if P_UPDATED_EXP_YIELDS >= GEN_7 + #define ROTOM_APPLIANCE_EXP_YIELD 182 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define ROTOM_APPLIANCE_EXP_YIELD 154 +#else + #define ROTOM_APPLIANCE_EXP_YIELD 132 +#endif [SPECIES_ROTOM_HEAT] = { - ROTOM_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_FIRE }, - ROTOM_APPLIANCE_INFO(Heat), + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 107, + .baseSpeed = 86, + .baseSpAttack = 105, + .baseSpDefense = 107, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FIRE), + .catchRate = 45, + .expYield = ROTOM_APPLIANCE_EXP_YIELD, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Rotom"), + .cryId = CRY_ROTOM, + .natDexNum = NATIONAL_DEX_ROTOM, + .categoryName = _("Plasma"), + .height = 3, + .weight = 3, .description = COMPOUND_STRING( "If the convection microwave oven is not\n" "working properly, then the Rotom inhabiting\n" "it will become lethargic. It will gleefully\n" "burn your favorite outfit in mischief."), - FRONT_PIC(RotomHeat, 56, 48), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_RotomHeat, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_RotomHeat, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 6, - BACK_PIC(RotomHeat, 64, 40), + .backPic = gMonBackPic_RotomHeat, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(RotomHeat), - ICON(RotomHeat, 0), + .palette = gMonPalette_RotomHeat, + .shinyPalette = gMonShinyPalette_RotomHeat, + .iconSprite = gMonIcon_RotomHeat, + .iconPalIndex = 0, + FOOTPRINT(Rotom) + .levelUpLearnset = sRotomLevelUpLearnset, + .teachableLearnset = sRotomTeachableLearnset, + .formSpeciesIdTable = sRotomFormSpeciesIdTable, + .formChangeTable = sRotomFormChangeTable, }, [SPECIES_ROTOM_WASH] = { - ROTOM_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_WATER }, + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 107, + .baseSpeed = 86, + .baseSpAttack = 105, + .baseSpDefense = 107, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_WATER), + .catchRate = 45, + .expYield = ROTOM_APPLIANCE_EXP_YIELD, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, - ROTOM_APPLIANCE_INFO(Wash), + .speciesName = _("Rotom"), + .cryId = CRY_ROTOM, + .natDexNum = NATIONAL_DEX_ROTOM, + .categoryName = _("Plasma"), + .height = 3, + .weight = 3, .description = COMPOUND_STRING( "It enjoys coming up with water-based\n" "pranks. The model of washing machine that\n" "Rotom can inspirit has been discontinued,\n" "so they are now traded at high prices."), - FRONT_PIC(RotomWash, 64, 56), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_RotomWash, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_RotomWash, .frontAnimId = ANIM_V_JUMPS_SMALL, .enemyMonElevation = 6, - BACK_PIC(RotomWash, 64, 48), + .backPic = gMonBackPic_RotomWash, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(RotomWash), - ICON(RotomWash, 0), + .palette = gMonPalette_RotomWash, + .shinyPalette = gMonShinyPalette_RotomWash, + .iconSprite = gMonIcon_RotomWash, + .iconPalIndex = 0, + FOOTPRINT(Rotom) + .levelUpLearnset = sRotomLevelUpLearnset, + .teachableLearnset = sRotomTeachableLearnset, + .formSpeciesIdTable = sRotomFormSpeciesIdTable, + .formChangeTable = sRotomFormChangeTable, }, [SPECIES_ROTOM_FROST] = { - ROTOM_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_ICE }, - ROTOM_APPLIANCE_INFO(Frost), + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 107, + .baseSpeed = 86, + .baseSpAttack = 105, + .baseSpDefense = 107, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_ICE), + .catchRate = 45, + .expYield = ROTOM_APPLIANCE_EXP_YIELD, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Rotom"), + .cryId = CRY_ROTOM, + .natDexNum = NATIONAL_DEX_ROTOM, + .categoryName = _("Plasma"), + .height = 3, + .weight = 3, .description = COMPOUND_STRING( "In this form, Rotom likes to play freezing\n" "cold pranks. You may find it's turned the\n" "bath you just filled to solid ice!\n" "It battles by spewing cold air."), - FRONT_PIC(RotomFrost, 64, 64), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_RotomFrost, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_RotomFrost, .frontAnimId = ANIM_H_STRETCH, .enemyMonElevation = 6, - BACK_PIC(RotomFrost, 64, 56), + .backPic = gMonBackPic_RotomFrost, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(RotomFrost), - ICON(RotomFrost, 5), + .palette = gMonPalette_RotomFrost, + .shinyPalette = gMonShinyPalette_RotomFrost, + .iconSprite = gMonIcon_RotomFrost, + .iconPalIndex = 5, + FOOTPRINT(Rotom) + .levelUpLearnset = sRotomLevelUpLearnset, + .teachableLearnset = sRotomTeachableLearnset, + .formSpeciesIdTable = sRotomFormSpeciesIdTable, + .formChangeTable = sRotomFormChangeTable, }, [SPECIES_ROTOM_FAN] = { - ROTOM_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_FLYING }, - ROTOM_APPLIANCE_INFO(Fan), + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 107, + .baseSpeed = 86, + .baseSpAttack = 105, + .baseSpDefense = 107, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FLYING), + .catchRate = 45, + .expYield = ROTOM_APPLIANCE_EXP_YIELD, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Rotom"), + .cryId = CRY_ROTOM, + .natDexNum = NATIONAL_DEX_ROTOM, + .categoryName = _("Plasma"), + .height = 3, + .weight = 3, .description = COMPOUND_STRING( "The first appliance developed that Rotom\n" "coud inspirit was the electric fan. It uses\n" "its power over wind in its pranks, happily\n" "blowing any important documents it finds."), - FRONT_PIC(RotomFan, 64, 56), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_RotomFan, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_RotomFan, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .frontAnimDelay = 7, .enemyMonElevation = 6, - BACK_PIC(RotomFan, 64, 48), + .backPic = gMonBackPic_RotomFan, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(RotomFan), - ICON(RotomFan, 0), + .palette = gMonPalette_RotomFan, + .shinyPalette = gMonShinyPalette_RotomFan, + .iconSprite = gMonIcon_RotomFan, + .iconPalIndex = 0, + FOOTPRINT(Rotom) + .levelUpLearnset = sRotomLevelUpLearnset, + .teachableLearnset = sRotomTeachableLearnset, + .formSpeciesIdTable = sRotomFormSpeciesIdTable, + .formChangeTable = sRotomFormChangeTable, }, [SPECIES_ROTOM_MOW] = { - ROTOM_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_GRASS }, - ROTOM_APPLIANCE_INFO(Mow), + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 107, + .baseSpeed = 86, + .baseSpAttack = 105, + .baseSpDefense = 107, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_GRASS), + .catchRate = 45, + .expYield = ROTOM_APPLIANCE_EXP_YIELD, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Rotom"), + .cryId = CRY_ROTOM, + .natDexNum = NATIONAL_DEX_ROTOM, + .categoryName = _("Plasma"), + .height = 3, + .weight = 3, .description = COMPOUND_STRING( "The lawn mower is an appliance that led to\n" "the development of the Rotom Dex. It will\n" "mow down grass and flowers, then swagger\n" "around with pride at its accomplishments."), - FRONT_PIC(RotomMow, 56, 64), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_RotomMow, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_RotomMow, .frontAnimId = ANIM_TIP_MOVE_FORWARD, .enemyMonElevation = 6, - BACK_PIC(RotomMow, 56, 48), + .backPic = gMonBackPic_RotomMow, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(RotomMow), - ICON(RotomMow, 0), + .palette = gMonPalette_RotomMow, + .shinyPalette = gMonShinyPalette_RotomMow, + .iconSprite = gMonIcon_RotomMow, + .iconPalIndex = 0, + FOOTPRINT(Rotom) + .levelUpLearnset = sRotomLevelUpLearnset, + .teachableLearnset = sRotomTeachableLearnset, + .formSpeciesIdTable = sRotomFormSpeciesIdTable, + .formChangeTable = sRotomFormChangeTable, }, #endif //P_FAMILY_ROTOM @@ -3666,19 +4547,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 95, .baseSpAttack = 75, .baseSpDefense = 130, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 210, + #endif .evYield_Defense = 2, .evYield_SpDefense = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 140, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, - .isLegendary = TRUE, .speciesName = _("Uxie"), .cryId = CRY_UXIE, .natDexNum = NATIONAL_DEX_UXIE, @@ -3694,18 +4580,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Uxie, 56, 56), + .frontPic = gMonFrontPic_Uxie, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Uxie, .frontAnimId = ANIM_SWING_CONCAVE, .enemyMonElevation = 6, - BACK_PIC(Uxie, 56, 48), + .backPic = gMonBackPic_Uxie, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Uxie), - ICON(Uxie, 0), - .footprint = gMonFootprint_Uxie, - LEARNSETS(Uxie), + .palette = gMonPalette_Uxie, + .shinyPalette = gMonShinyPalette_Uxie, + .iconSprite = gMonIcon_Uxie, + .iconPalIndex = 0, + FOOTPRINT(Uxie) + .isLegendary = TRUE, + .levelUpLearnset = sUxieLevelUpLearnset, + .teachableLearnset = sUxieTeachableLearnset, }, #endif //P_FAMILY_UXIE @@ -3718,9 +4610,15 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 80, .baseSpAttack = 105, .baseSpDefense = 105, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 210, + #endif .evYield_Attack = 1, .evYield_SpAttack = 1, .evYield_SpDefense = 1, @@ -3728,10 +4626,9 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .eggCycles = 80, .friendship = 140, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PINK, - .isLegendary = TRUE, .speciesName = _("Mesprit"), .cryId = CRY_MESPRIT, .natDexNum = NATIONAL_DEX_MESPRIT, @@ -3747,18 +4644,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mesprit, 48, 56), + .frontPic = gMonFrontPic_Mesprit, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Mesprit, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 6, - BACK_PIC(Mesprit, 64, 48), + .backPic = gMonBackPic_Mesprit, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Mesprit), - ICON(Mesprit, 0), - .footprint = gMonFootprint_Mesprit, - LEARNSETS(Mesprit), + .palette = gMonPalette_Mesprit, + .shinyPalette = gMonShinyPalette_Mesprit, + .iconSprite = gMonIcon_Mesprit, + .iconPalIndex = 0, + FOOTPRINT(Mesprit) + .isLegendary = TRUE, + .levelUpLearnset = sMespritLevelUpLearnset, + .teachableLearnset = sMespritTeachableLearnset, }, #endif //P_FAMILY_MESPRIT @@ -3771,19 +4674,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 115, .baseSpAttack = 125, .baseSpDefense = 70, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 290, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 261, + #else + .expYield = 210, + #endif .evYield_Attack = 2, .evYield_SpAttack = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 140, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isLegendary = TRUE, .speciesName = _("Azelf"), .cryId = CRY_AZELF, .natDexNum = NATIONAL_DEX_AZELF, @@ -3799,53 +4707,59 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Azelf, 48, 64), + .frontPic = gMonFrontPic_Azelf, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Azelf, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 6, - BACK_PIC(Azelf, 64, 56), + .backPic = gMonBackPic_Azelf, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Azelf), - ICON(Azelf, 0), - .footprint = gMonFootprint_Azelf, - LEARNSETS(Azelf), + .palette = gMonPalette_Azelf, + .shinyPalette = gMonShinyPalette_Azelf, + .iconSprite = gMonIcon_Azelf, + .iconPalIndex = 0, + FOOTPRINT(Azelf) + .isLegendary = TRUE, + .levelUpLearnset = sAzelfLevelUpLearnset, + .teachableLearnset = sAzelfTeachableLearnset, }, #endif //P_FAMILY_AZELF #if P_FAMILY_DIALGA -#define DIALGA_MISC_INFO \ - .types = { TYPE_STEEL, TYPE_DRAGON }, \ - .catchRate = 3, \ - .expYield = 306, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Dialga"), \ - .cryId = CRY_DIALGA, \ - .natDexNum = NATIONAL_DEX_DIALGA, \ - .categoryName = _("Temporal"), \ - .footprint = gMonFootprint_Dialga, \ - LEARNSETS(Dialga), \ - .formSpeciesIdTable = sDialgaFormSpeciesIdTable, \ - .formChangeTable = sDialgaFormChangeTable, \ - .isLegendary = TRUE +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define DIALGA_EXP_YIELD 340 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define DIALGA_EXP_YIELD 306 +#else + #define DIALGA_EXP_YIELD 220 +#endif [SPECIES_DIALGA] = { - DIALGA_MISC_INFO, .baseHP = 100, .baseAttack = 120, .baseDefense = 120, .baseSpeed = 90, .baseSpAttack = 150, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_STEEL, TYPE_DRAGON), + .catchRate = 3, + .expYield = DIALGA_EXP_YIELD, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Dialga"), + .cryId = CRY_DIALGA, + .natDexNum = NATIONAL_DEX_DIALGA, + .categoryName = _("Temporal"), .height = 54, .weight = 6830, .description = COMPOUND_STRING( @@ -3857,26 +4771,50 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 721, .trainerOffset = 19, - FRONT_PIC(Dialga, 64, 64), + .frontPic = gMonFrontPic_Dialga, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Dialga, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Dialga, 64, 64), + .backPic = gMonBackPic_Dialga, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Dialga), - ICON(Dialga, 2), + .palette = gMonPalette_Dialga, + .shinyPalette = gMonShinyPalette_Dialga, + .iconSprite = gMonIcon_Dialga, + .iconPalIndex = 2, + FOOTPRINT(Dialga) + .isLegendary = TRUE, + .levelUpLearnset = sDialgaLevelUpLearnset, + .teachableLearnset = sDialgaTeachableLearnset, + .formSpeciesIdTable = sDialgaFormSpeciesIdTable, + .formChangeTable = sDialgaFormChangeTable, }, [SPECIES_DIALGA_ORIGIN] = { - DIALGA_MISC_INFO, .baseHP = 100, .baseAttack = 100, .baseDefense = 120, .baseSpeed = 90, .baseSpAttack = 150, .baseSpDefense = 120, + .types = MON_TYPES(TYPE_STEEL, TYPE_DRAGON), + .catchRate = 3, + .expYield = DIALGA_EXP_YIELD, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Dialga"), + .cryId = CRY_DIALGA, + .natDexNum = NATIONAL_DEX_DIALGA, + .categoryName = _("Temporal"), .height = 70, .weight = 8500, .description = COMPOUND_STRING( @@ -3888,50 +4826,60 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 721, .trainerOffset = 19, - FRONT_PIC(DialgaOrigin, 64, 64), + .frontPic = gMonFrontPic_DialgaOrigin, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DialgaOrigin, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DialgaOrigin, 64, 64), + .backPic = gMonBackPic_DialgaOrigin, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DialgaOrigin), - ICON(DialgaOrigin, 0), + .palette = gMonPalette_DialgaOrigin, + .shinyPalette = gMonShinyPalette_DialgaOrigin, + .iconSprite = gMonIcon_DialgaOrigin, + .iconPalIndex = 0, + FOOTPRINT(Dialga) + .isLegendary = TRUE, + .levelUpLearnset = sDialgaLevelUpLearnset, + .teachableLearnset = sDialgaTeachableLearnset, + .formSpeciesIdTable = sDialgaFormSpeciesIdTable, + .formChangeTable = sDialgaFormChangeTable, }, #endif //P_FAMILY_DIALGA #if P_FAMILY_PALKIA -#define PALKIA_MISC_INFO \ - .types = { TYPE_WATER, TYPE_DRAGON }, \ - .catchRate = 3, \ - .expYield = 306, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Palkia"), \ - .cryId = CRY_PALKIA, \ - .natDexNum = NATIONAL_DEX_PALKIA, \ - .categoryName = _("Spatial"), \ - .footprint = gMonFootprint_Palkia, \ - LEARNSETS(Palkia), \ - .formSpeciesIdTable = sPalkiaFormSpeciesIdTable, \ - .formChangeTable = sPalkiaFormChangeTable, \ - .isLegendary = TRUE +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define PALKIA_EXP_YIELD 340 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define PALKIA_EXP_YIELD 306 +#else + #define PALKIA_EXP_YIELD 220 +#endif [SPECIES_PALKIA] = { - PALKIA_MISC_INFO, .baseHP = 90, .baseAttack = 120, .baseDefense = 100, .baseSpeed = 100, .baseSpAttack = 150, .baseSpDefense = 120, + .types = MON_TYPES(TYPE_WATER, TYPE_DRAGON), + .catchRate = 3, + .expYield = PALKIA_EXP_YIELD, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Palkia"), + .cryId = CRY_PALKIA, + .natDexNum = NATIONAL_DEX_PALKIA, + .categoryName = _("Spatial"), .height = 42, .weight = 3360, .description = COMPOUND_STRING( @@ -3943,26 +4891,50 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 650, .trainerOffset = 16, - FRONT_PIC(Palkia, 64, 64), + .frontPic = gMonFrontPic_Palkia, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Palkia, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Palkia, 64, 64), + .backPic = gMonBackPic_Palkia, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Palkia), - ICON(Palkia, 2), + .palette = gMonPalette_Palkia, + .shinyPalette = gMonShinyPalette_Palkia, + .iconSprite = gMonIcon_Palkia, + .iconPalIndex = 2, + FOOTPRINT(Palkia) + .isLegendary = TRUE, + .levelUpLearnset = sPalkiaLevelUpLearnset, + .teachableLearnset = sPalkiaTeachableLearnset, + .formSpeciesIdTable = sPalkiaFormSpeciesIdTable, + .formChangeTable = sPalkiaFormChangeTable, }, [SPECIES_PALKIA_ORIGIN] = { - PALKIA_MISC_INFO, .baseHP = 90, .baseAttack = 100, .baseDefense = 100, .baseSpeed = 120, .baseSpAttack = 150, .baseSpDefense = 120, + .types = MON_TYPES(TYPE_WATER, TYPE_DRAGON), + .catchRate = 3, + .expYield = PALKIA_EXP_YIELD, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Palkia"), + .cryId = CRY_PALKIA, + .natDexNum = NATIONAL_DEX_PALKIA, + .categoryName = _("Spatial"), .height = 63, .weight = 6600, .description = COMPOUND_STRING( @@ -3974,15 +4946,25 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 650, .trainerOffset = 16, - FRONT_PIC(PalkiaOrigin, 64, 64), + .frontPic = gMonFrontPic_PalkiaOrigin, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_PalkiaOrigin, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(PalkiaOrigin, 64, 64), + .backPic = gMonBackPic_PalkiaOrigin, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PalkiaOrigin), - ICON(PalkiaOrigin, 2), + .palette = gMonPalette_PalkiaOrigin, + .shinyPalette = gMonShinyPalette_PalkiaOrigin, + .iconSprite = gMonIcon_PalkiaOrigin, + .iconPalIndex = 2, + FOOTPRINT(Palkia) + .isLegendary = TRUE, + .levelUpLearnset = sPalkiaLevelUpLearnset, + .teachableLearnset = sPalkiaTeachableLearnset, + .formSpeciesIdTable = sPalkiaFormSpeciesIdTable, + .formChangeTable = sPalkiaFormChangeTable, }, #endif //P_FAMILY_PALKIA @@ -3995,18 +4977,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 77, .baseSpAttack = 130, .baseSpDefense = 106, - .types = { TYPE_FIRE, TYPE_STEEL }, + .types = MON_TYPES(TYPE_FIRE, TYPE_STEEL), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 215, + #endif .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 10, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_FLAME_BODY }, .bodyColor = BODY_COLOR_BROWN, - .isLegendary = TRUE, .speciesName = _("Heatran"), .cryId = CRY_HEATRAN, .natDexNum = NATIONAL_DEX_HEATRAN, @@ -4022,17 +5009,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 1, .trainerScale = 290, .trainerOffset = 1, - FRONT_PIC(Heatran, 64, 56), + .frontPic = gMonFrontPic_Heatran, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Heatran, .frontAnimId = ANIM_GLOW_ORANGE, - BACK_PIC(Heatran, 64, 40), + .backPic = gMonBackPic_Heatran, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Heatran), - ICON(Heatran, 0), - .footprint = gMonFootprint_Heatran, - LEARNSETS(Heatran), + .palette = gMonPalette_Heatran, + .shinyPalette = gMonShinyPalette_Heatran, + .iconSprite = gMonIcon_Heatran, + .iconPalIndex = 0, + FOOTPRINT(Heatran) + .isLegendary = TRUE, + .levelUpLearnset = sHeatranLevelUpLearnset, + .teachableLearnset = sHeatranTeachableLearnset, }, #endif //P_FAMILY_HEATRAN @@ -4045,18 +5038,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 100, .baseSpAttack = 80, .baseSpDefense = 110, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 335, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 302, + #else + .expYield = 220, + #endif .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_SLOW_START, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SLOW_START, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isLegendary = TRUE, .speciesName = _("Regigigas"), .cryId = CRY_REGIGIGAS, .natDexNum = NATIONAL_DEX_REGIGIGAS, @@ -4072,52 +5070,58 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 2, .trainerScale = 610, .trainerOffset = 17, - FRONT_PIC(Regigigas, 64, 64), + .frontPic = gMonFrontPic_Regigigas, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Regigigas, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Regigigas, 64, 40), + .backPic = gMonBackPic_Regigigas, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Regigigas), - ICON(Regigigas, 0), - .footprint = gMonFootprint_Regigigas, - LEARNSETS(Regigigas), + .palette = gMonPalette_Regigigas, + .shinyPalette = gMonShinyPalette_Regigigas, + .iconSprite = gMonIcon_Regigigas, + .iconPalIndex = 0, + FOOTPRINT(Regigigas) + .isLegendary = TRUE, + .levelUpLearnset = sRegigigasLevelUpLearnset, + .teachableLearnset = sRegigigasTeachableLearnset, }, #endif //P_FAMILY_REGIGIGAS #if P_FAMILY_GIRATINA -#define GIRATINA_MISC_INFO \ - .types = { TYPE_GHOST, TYPE_DRAGON }, \ - .catchRate = 3, \ - .expYield = 306, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Giratina"), \ - .cryId = CRY_GIRATINA, \ - .natDexNum = NATIONAL_DEX_GIRATINA, \ - .categoryName = _("Renegade"), \ - .footprint = gMonFootprint_Giratina, \ - LEARNSETS(Giratina), \ - .formSpeciesIdTable = sGiratinaFormSpeciesIdTable, \ - .formChangeTable = sGiratinaFormChangeTable, \ - .isLegendary = TRUE +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define GIRATINA_EXP_YIELD 340 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define GIRATINA_EXP_YIELD 306 +#else + #define GIRATINA_EXP_YIELD 220 +#endif [SPECIES_GIRATINA_ALTERED] = { - GIRATINA_MISC_INFO, .baseHP = 150, .baseAttack = 100, .baseDefense = 120, .baseSpeed = 90, .baseSpAttack = 100, .baseSpDefense = 120, + .types = MON_TYPES(TYPE_GHOST, TYPE_DRAGON), + .catchRate = 3, + .expYield = GIRATINA_EXP_YIELD, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Giratina"), + .cryId = CRY_GIRATINA, + .natDexNum = NATIONAL_DEX_GIRATINA, + .categoryName = _("Renegade"), .height = 45, .weight = 7500, .description = COMPOUND_STRING( @@ -4129,27 +5133,50 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 614, .trainerOffset = 13, - FRONT_PIC(GiratinaAltered, 64, 64), + .frontPic = gMonFrontPic_GiratinaAltered, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_GiratinaAltered, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(GiratinaAltered, 64, 64), + .backPic = gMonBackPic_GiratinaAltered, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(GiratinaAltered), - ICON(GiratinaAltered, 0), + .palette = gMonPalette_GiratinaAltered, + .shinyPalette = gMonShinyPalette_GiratinaAltered, + .iconSprite = gMonIcon_GiratinaAltered, + .iconPalIndex = 0, + FOOTPRINT(Giratina) + .isLegendary = TRUE, + .levelUpLearnset = sGiratinaLevelUpLearnset, + .teachableLearnset = sGiratinaTeachableLearnset, + .formSpeciesIdTable = sGiratinaFormSpeciesIdTable, + .formChangeTable = sGiratinaFormChangeTable, }, [SPECIES_GIRATINA_ORIGIN] = { - GIRATINA_MISC_INFO, .baseHP = 150, .baseAttack = 120, .baseDefense = 100, .baseSpeed = 90, .baseSpAttack = 120, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_GHOST, TYPE_DRAGON), + .catchRate = 3, + .expYield = GIRATINA_EXP_YIELD, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Giratina"), + .cryId = CRY_GIRATINA, + .natDexNum = NATIONAL_DEX_GIRATINA, + .categoryName = _("Renegade"), .height = 69, .weight = 6500, .description = COMPOUND_STRING( @@ -4161,16 +5188,26 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 0, .trainerScale = 614, .trainerOffset = 13, - FRONT_PIC(GiratinaOrigin, 64, 64), + .frontPic = gMonFrontPic_GiratinaOrigin, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_GiratinaOrigin, .frontAnimId = ANIM_LUNGE_GROW, .enemyMonElevation = 7, - BACK_PIC(GiratinaOrigin, 64, 56), + .backPic = gMonBackPic_GiratinaOrigin, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(GiratinaOrigin), - ICON(GiratinaOrigin, 0), + .palette = gMonPalette_GiratinaOrigin, + .shinyPalette = gMonShinyPalette_GiratinaOrigin, + .iconSprite = gMonIcon_GiratinaOrigin, + .iconPalIndex = 0, + FOOTPRINT(Giratina) + .isLegendary = TRUE, + .levelUpLearnset = sGiratinaLevelUpLearnset, + .teachableLearnset = sGiratinaTeachableLearnset, + .formSpeciesIdTable = sGiratinaFormSpeciesIdTable, + .formChangeTable = sGiratinaFormChangeTable, }, #endif //P_FAMILY_GIRATINA @@ -4183,18 +5220,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 85, .baseSpAttack = 75, .baseSpDefense = P_UPDATED_STATS >= GEN_9 ? 120 : 130, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 210, + #endif .evYield_SpDefense = 3, .genderRatio = MON_FEMALE, .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, - .isLegendary = TRUE, .speciesName = _("Cresselia"), .cryId = CRY_CRESSELIA, .natDexNum = NATIONAL_DEX_CRESSELIA, @@ -4210,18 +5252,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Cresselia, 64, 64), + .frontPic = gMonFrontPic_Cresselia, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Cresselia, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 3, - BACK_PIC(Cresselia, 56, 64), + .backPic = gMonBackPic_Cresselia, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Cresselia), - ICON(Cresselia, 0), - .footprint = gMonFootprint_Cresselia, - LEARNSETS(Cresselia), + .palette = gMonPalette_Cresselia, + .shinyPalette = gMonShinyPalette_Cresselia, + .iconSprite = gMonIcon_Cresselia, + .iconPalIndex = 0, + FOOTPRINT(Cresselia) + .isLegendary = TRUE, + .levelUpLearnset = sCresseliaLevelUpLearnset, + .teachableLearnset = sCresseliaTeachableLearnset, }, #endif //P_FAMILY_CRESSELIA @@ -4234,18 +5282,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 80, .baseSpAttack = 80, .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 30, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 240, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 216, + #else + .expYield = 165, + #endif .evYield_HP = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY }, - .abilities = { ABILITY_HYDRATION, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FAIRY), + .abilities = { ABILITY_HYDRATION, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isMythical = TRUE, .speciesName = _("Phione"), .cryId = CRY_PHIONE, .natDexNum = NATIONAL_DEX_PHIONE, @@ -4261,18 +5314,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Phione, 56, 40), + .frontPic = gMonFrontPic_Phione, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Phione, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(Phione, 64, 48), + .backPic = gMonBackPic_Phione, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Phione), - ICON(Phione, 0), - .footprint = gMonFootprint_Phione, - LEARNSETS(Phione), + .palette = gMonPalette_Phione, + .shinyPalette = gMonShinyPalette_Phione, + .iconSprite = gMonIcon_Phione, + .iconPalIndex = 0, + FOOTPRINT(Phione) + .isMythical = TRUE, + .levelUpLearnset = sPhioneLevelUpLearnset, + .teachableLearnset = sPhioneTeachableLearnset, }, [SPECIES_MANAPHY] = @@ -4283,18 +5342,23 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 100, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 215, + #endif .evYield_HP = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY }, - .abilities = { ABILITY_HYDRATION, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FAIRY), + .abilities = { ABILITY_HYDRATION, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isMythical = TRUE, .speciesName = _("Manaphy"), .cryId = CRY_MANAPHY, .natDexNum = NATIONAL_DEX_MANAPHY, @@ -4310,18 +5374,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Manaphy, 64, 40), + .frontPic = gMonFrontPic_Manaphy, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Manaphy, .frontAnimId = ANIM_SWING_CONVEX, .enemyMonElevation = 10, - BACK_PIC(Manaphy, 64, 56), + .backPic = gMonBackPic_Manaphy, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Manaphy), - ICON(Manaphy, 0), - .footprint = gMonFootprint_Manaphy, - LEARNSETS(Manaphy), + .palette = gMonPalette_Manaphy, + .shinyPalette = gMonShinyPalette_Manaphy, + .iconSprite = gMonIcon_Manaphy, + .iconPalIndex = 0, + FOOTPRINT(Manaphy) + .isMythical = TRUE, + .levelUpLearnset = sManaphyLevelUpLearnset, + .teachableLearnset = sManaphyTeachableLearnset, }, #endif //P_FAMILY_MANAPHY @@ -4334,19 +5404,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .baseSpeed = 125, .baseSpAttack = 135, .baseSpDefense = 90, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 .expYield = 270, + #else + .expYield = 210, + #endif .evYield_Speed = 1, .evYield_SpAttack = 2, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BAD_DREAMS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BAD_DREAMS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, - .isMythical = TRUE, .speciesName = _("Darkrai"), .cryId = CRY_DARKRAI, .natDexNum = NATIONAL_DEX_DARKRAI, @@ -4362,54 +5437,61 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Darkrai, 64, 64), + .frontPic = gMonFrontPic_Darkrai, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Darkrai, .frontAnimId = ANIM_GLOW_BLACK, .enemyMonElevation = 4, - BACK_PIC(Darkrai, 64, 64), + .backPic = gMonBackPic_Darkrai, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Darkrai), - ICON(Darkrai, 0), - .footprint = gMonFootprint_Darkrai, - LEARNSETS(Darkrai), + .palette = gMonPalette_Darkrai, + .shinyPalette = gMonShinyPalette_Darkrai, + .iconSprite = gMonIcon_Darkrai, + .iconPalIndex = 0, + FOOTPRINT(Darkrai) + .isMythical = TRUE, + .levelUpLearnset = sDarkraiLevelUpLearnset, + .teachableLearnset = sDarkraiTeachableLearnset, }, #endif //P_FAMILY_DARKRAI #if P_FAMILY_SHAYMIN -#define SHAYMIN_MISC_INFO \ - .catchRate = 45, \ - .expYield = 270, \ - .evYield_HP = 3, \ - .itemCommon = ITEM_LUM_BERRY, \ - .itemRare = ITEM_LUM_BERRY, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 100, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Shaymin"), \ - .natDexNum = NATIONAL_DEX_SHAYMIN, \ - .categoryName = _("Gratitude"), \ - .footprint = gMonFootprint_Shaymin, \ - .formSpeciesIdTable = sShayminFormSpeciesIdTable, \ - .formChangeTable = sShayminFormChangeTable, \ - .isMythical = TRUE +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define SHAYMIN_EXP_YIELD 300 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define SHAYMIN_EXP_YIELD 270 +#else + #define SHAYMIN_EXP_YIELD 64 +#endif [SPECIES_SHAYMIN_LAND] = { - SHAYMIN_MISC_INFO, .baseHP = 100, .baseAttack = 100, .baseDefense = 100, .baseSpeed = 100, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_GRASS, TYPE_GRASS }, - .abilities = { ABILITY_NATURAL_CURE, ABILITY_NONE }, + .types = MON_TYPES(TYPE_GRASS), + .catchRate = 45, + .expYield = SHAYMIN_EXP_YIELD, + .evYield_HP = 3, + .itemCommon = ITEM_LUM_BERRY, + .itemRare = ITEM_LUM_BERRY, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_NATURAL_CURE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Shaymin"), .cryId = CRY_SHAYMIN_LAND, + .natDexNum = NATIONAL_DEX_SHAYMIN, + .categoryName = _("Gratitude"), .height = 2, .weight = 21, .description = COMPOUND_STRING( @@ -4421,31 +5503,57 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(ShayminLand, 40, 32), + .frontPic = gMonFrontPic_ShayminLand, + .frontPicSize = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_ShayminLand, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ShayminLand, 56, 40), + .backPic = gMonBackPic_ShayminLand, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(ShayminLand), - ICON(ShayminLand, 1), - LEARNSETS(ShayminLand), + .palette = gMonPalette_ShayminLand, + .shinyPalette = gMonShinyPalette_ShayminLand, + .iconSprite = gMonIcon_ShayminLand, + .iconPalIndex = 1, + FOOTPRINT(Shaymin) + .isMythical = TRUE, + .levelUpLearnset = sShayminLandLevelUpLearnset, + .teachableLearnset = sShayminLandTeachableLearnset, + .formSpeciesIdTable = sShayminFormSpeciesIdTable, + .formChangeTable = sShayminFormChangeTable, }, [SPECIES_SHAYMIN_SKY] = { - SHAYMIN_MISC_INFO, .baseHP = 100, .baseAttack = 103, .baseDefense = 75, .baseSpeed = 127, .baseSpAttack = 120, .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_FLYING }, - .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FLYING), + .catchRate = 45, + .expYield = SHAYMIN_EXP_YIELD, + #if P_UPDATED_EVS >= GEN_5 + .evYield_Speed = 3, + #else + .evYield_HP = 3, + #endif + .itemCommon = ITEM_LUM_BERRY, + .itemRare = ITEM_LUM_BERRY, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, + .speciesName = _("Shaymin"), .cryId = CRY_SHAYMIN_SKY, + .natDexNum = NATIONAL_DEX_SHAYMIN, + .categoryName = _("Gratitude"), .height = 4, .weight = 52, .description = COMPOUND_STRING( @@ -4457,84 +5565,106 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(ShayminSky, 56, 56), + .frontPic = gMonFrontPic_ShayminSky, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_ShayminSky, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(ShayminSky, 56, 64), + .backPic = gMonBackPic_ShayminSky, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(ShayminSky), - ICON(ShayminSky, 1), - LEARNSETS(ShayminSky), + .palette = gMonPalette_ShayminSky, + .shinyPalette = gMonShinyPalette_ShayminSky, + .iconSprite = gMonIcon_ShayminSky, + .iconPalIndex = 1, + FOOTPRINT(Shaymin) + .isMythical = TRUE, + .levelUpLearnset = sShayminSkyLevelUpLearnset, + .teachableLearnset = sShayminSkyTeachableLearnset, + .formSpeciesIdTable = sShayminFormSpeciesIdTable, + .formChangeTable = sShayminFormChangeTable, }, #endif //P_FAMILY_SHAYMIN #if P_FAMILY_ARCEUS -#define ARCEUS_SPECIES_INFO(type, typeName) \ - { \ - .baseHP = 120, \ - .baseAttack = 120, \ - .baseDefense = 120, \ - .baseSpeed = 120, \ - .baseSpAttack = 120, \ - .baseSpDefense = 120, \ - .types = { type, type }, \ - .catchRate = 3, \ - .expYield = 324, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_MULTITYPE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Arceus"), \ - .cryId = CRY_ARCEUS, \ - .natDexNum = NATIONAL_DEX_ARCEUS, \ - .categoryName = _("Alpha"), \ - .height = 32, \ - .weight = 3200, \ - .description = gArceusPokedexText, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 495, \ - .trainerOffset = 10, \ - FRONT_PIC(Arceus, 64, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Arceus, \ - .frontAnimId = ANIM_GROW_VIBRATE, \ - BACK_PIC(Arceus, 64, 64), \ - .backPicYOffset = 3, \ - .backAnimId = BACK_ANIM_GROW_STUTTER, \ - PALETTES(Arceus ##typeName), \ - ICON(Arceus, 1), \ - .footprint = gMonFootprint_Arceus, \ - LEARNSETS(Arceus), \ - .formSpeciesIdTable = sArceusFormSpeciesIdTable, \ - .formChangeTable = sArceusFormChangeTable, \ - .isMythical = TRUE, \ +#if P_UPDATED_EXP_YIELDS >= GEN_8 + #define ARCEUS_EXP_YIELD 360 +#elif P_UPDATED_EXP_YIELDS >= GEN_5 + #define ARCEUS_EXP_YIELD 324 +#else + #define ARCEUS_EXP_YIELD 255 +#endif + +#define ARCEUS_SPECIES_INFO(type, typeName) \ + { \ + .baseHP = 120, \ + .baseAttack = 120, \ + .baseDefense = 120, \ + .baseSpeed = 120, \ + .baseSpAttack = 120, \ + .baseSpDefense = 120, \ + .types = MON_TYPES(type), \ + .catchRate = 3, \ + .expYield = ARCEUS_EXP_YIELD, \ + .evYield_HP = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), \ + .abilities = { ABILITY_MULTITYPE, ABILITY_NONE, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_WHITE, \ + .speciesName = _("Arceus"), \ + .cryId = CRY_ARCEUS, \ + .natDexNum = NATIONAL_DEX_ARCEUS, \ + .categoryName = _("Alpha"), \ + .height = 32, \ + .weight = 3200, \ + .description = gArceusPokedexText, \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 495, \ + .trainerOffset = 10, \ + .frontPic = gMonFrontPic_Arceus, \ + .frontPicSize = MON_COORDS_SIZE(64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Arceus, \ + .frontAnimId = ANIM_GROW_VIBRATE, \ + .backPic = gMonBackPic_Arceus, \ + .backPicSize = MON_COORDS_SIZE(64, 64), \ + .backPicYOffset = 3, \ + .backAnimId = BACK_ANIM_GROW_STUTTER, \ + .palette = gMonPalette_Arceus ##typeName, \ + .shinyPalette = gMonShinyPalette_Arceus ##typeName, \ + .iconSprite = gMonIcon_Arceus, \ + .iconPalIndex = 1, \ + FOOTPRINT(Arceus) \ + .levelUpLearnset = sArceusLevelUpLearnset, \ + .teachableLearnset = sArceusTeachableLearnset, \ + .formSpeciesIdTable = sArceusFormSpeciesIdTable, \ + .formChangeTable = sArceusFormChangeTable, \ + .isMythical = TRUE, \ } - [SPECIES_ARCEUS_NORMAL] = ARCEUS_SPECIES_INFO(TYPE_NORMAL, Normal), + [SPECIES_ARCEUS_NORMAL] = ARCEUS_SPECIES_INFO(TYPE_NORMAL, Normal), [SPECIES_ARCEUS_FIGHTING] = ARCEUS_SPECIES_INFO(TYPE_FIGHTING, Fighting), - [SPECIES_ARCEUS_FLYING] = ARCEUS_SPECIES_INFO(TYPE_FLYING, Flying), - [SPECIES_ARCEUS_POISON] = ARCEUS_SPECIES_INFO(TYPE_POISON, Poison), - [SPECIES_ARCEUS_GROUND] = ARCEUS_SPECIES_INFO(TYPE_GROUND, Ground), - [SPECIES_ARCEUS_ROCK] = ARCEUS_SPECIES_INFO(TYPE_ROCK, Rock), - [SPECIES_ARCEUS_BUG] = ARCEUS_SPECIES_INFO(TYPE_BUG, Bug), - [SPECIES_ARCEUS_GHOST] = ARCEUS_SPECIES_INFO(TYPE_GHOST, Ghost), - [SPECIES_ARCEUS_STEEL] = ARCEUS_SPECIES_INFO(TYPE_STEEL, Steel), - [SPECIES_ARCEUS_FIRE] = ARCEUS_SPECIES_INFO(TYPE_FIRE, Fire), - [SPECIES_ARCEUS_WATER] = ARCEUS_SPECIES_INFO(TYPE_WATER, Water), - [SPECIES_ARCEUS_GRASS] = ARCEUS_SPECIES_INFO(TYPE_GRASS, Grass), + [SPECIES_ARCEUS_FLYING] = ARCEUS_SPECIES_INFO(TYPE_FLYING, Flying), + [SPECIES_ARCEUS_POISON] = ARCEUS_SPECIES_INFO(TYPE_POISON, Poison), + [SPECIES_ARCEUS_GROUND] = ARCEUS_SPECIES_INFO(TYPE_GROUND, Ground), + [SPECIES_ARCEUS_ROCK] = ARCEUS_SPECIES_INFO(TYPE_ROCK, Rock), + [SPECIES_ARCEUS_BUG] = ARCEUS_SPECIES_INFO(TYPE_BUG, Bug), + [SPECIES_ARCEUS_GHOST] = ARCEUS_SPECIES_INFO(TYPE_GHOST, Ghost), + [SPECIES_ARCEUS_STEEL] = ARCEUS_SPECIES_INFO(TYPE_STEEL, Steel), + [SPECIES_ARCEUS_FIRE] = ARCEUS_SPECIES_INFO(TYPE_FIRE, Fire), + [SPECIES_ARCEUS_WATER] = ARCEUS_SPECIES_INFO(TYPE_WATER, Water), + [SPECIES_ARCEUS_GRASS] = ARCEUS_SPECIES_INFO(TYPE_GRASS, Grass), [SPECIES_ARCEUS_ELECTRIC] = ARCEUS_SPECIES_INFO(TYPE_ELECTRIC, Electric), - [SPECIES_ARCEUS_PSYCHIC] = ARCEUS_SPECIES_INFO(TYPE_PSYCHIC, Psychic), - [SPECIES_ARCEUS_ICE] = ARCEUS_SPECIES_INFO(TYPE_ICE, Ice), - [SPECIES_ARCEUS_DRAGON] = ARCEUS_SPECIES_INFO(TYPE_DRAGON, Dragon), - [SPECIES_ARCEUS_DARK] = ARCEUS_SPECIES_INFO(TYPE_DARK, Dark), - [SPECIES_ARCEUS_FAIRY] = ARCEUS_SPECIES_INFO(TYPE_FAIRY, Fairy), + [SPECIES_ARCEUS_PSYCHIC] = ARCEUS_SPECIES_INFO(TYPE_PSYCHIC, Psychic), + [SPECIES_ARCEUS_ICE] = ARCEUS_SPECIES_INFO(TYPE_ICE, Ice), + [SPECIES_ARCEUS_DRAGON] = ARCEUS_SPECIES_INFO(TYPE_DRAGON, Dragon), + [SPECIES_ARCEUS_DARK] = ARCEUS_SPECIES_INFO(TYPE_DARK, Dark), + [SPECIES_ARCEUS_FAIRY] = ARCEUS_SPECIES_INFO(TYPE_FAIRY, Fairy), #endif //P_FAMILY_ARCEUS #ifdef __INTELLISENSE__ diff --git a/src/data/pokemon/species_info/gen_5.h b/src/data/pokemon/species_info/gen_5_families.h similarity index 60% rename from src/data/pokemon/species_info/gen_5.h rename to src/data/pokemon/species_info/gen_5_families.h index 15ff00fcf..4b1fea026 100644 --- a/src/data/pokemon/species_info/gen_5.h +++ b/src/data/pokemon/species_info/gen_5_families.h @@ -12,18 +12,17 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 100, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_FIRE }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FIRE), .catchRate = 3, - .expYield = 270, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_HP = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_VICTORY_STAR, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_VICTORY_STAR, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, - .isMythical = TRUE, .speciesName = _("Victini"), .cryId = CRY_VICTINI, .natDexNum = NATIONAL_DEX_VICTINI, @@ -39,17 +38,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Victini, 48, 56), + .frontPic = gMonFrontPic_Victini, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Victini, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Victini, 40, 64), + .backPic = gMonBackPic_Victini, + .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Victini), - ICON(Victini, 0), - .footprint = gMonFootprint_Victini, - LEARNSETS(Victini), + .palette = gMonPalette_Victini, + .shinyPalette = gMonShinyPalette_Victini, + .iconSprite = gMonIcon_Victini, + .iconPalIndex = 0, + FOOTPRINT(Victini) + .isMythical = TRUE, + .levelUpLearnset = sVictiniLevelUpLearnset, + .teachableLearnset = sVictiniTeachableLearnset, }, #endif //P_FAMILY_VICTINI @@ -62,7 +67,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 63, .baseSpAttack = 45, .baseSpDefense = 55, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 62, .evYield_Speed = 1, @@ -70,7 +75,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Snivy"), @@ -88,17 +93,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Snivy, 48, 40), + .frontPic = gMonFrontPic_Snivy, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Snivy, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Snivy, 56, 48), + .backPic = gMonBackPic_Snivy, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Snivy), - ICON(Snivy, 1), - .footprint = gMonFootprint_Snivy, - LEARNSETS(Snivy), + .palette = gMonPalette_Snivy, + .shinyPalette = gMonShinyPalette_Snivy, + .iconSprite = gMonIcon_Snivy, + .iconPalIndex = 1, + FOOTPRINT(Snivy) + .levelUpLearnset = sSnivyLevelUpLearnset, + .teachableLearnset = sSnivyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_SERVINE}), }, @@ -110,7 +120,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 83, .baseSpAttack = 60, .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 145, .evYield_Speed = 2, @@ -118,7 +128,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Servine"), @@ -136,17 +146,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 9, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Servine, 48, 56), + .frontPic = gMonFrontPic_Servine, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Servine, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Servine, 48, 64), + .backPic = gMonBackPic_Servine, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Servine), - ICON(Servine, 1), - .footprint = gMonFootprint_Servine, - LEARNSETS(Servine), + .palette = gMonPalette_Servine, + .shinyPalette = gMonShinyPalette_Servine, + .iconSprite = gMonIcon_Servine, + .iconPalIndex = 1, + FOOTPRINT(Servine) + .levelUpLearnset = sServineLevelUpLearnset, + .teachableLearnset = sServineTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SERPERIOR}), }, @@ -158,15 +173,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 113, .baseSpAttack = 75, .baseSpDefense = 95, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, - .expYield = 238, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 264 : 238, .evYield_Speed = 3, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Serperior"), @@ -184,17 +199,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 0, .trainerScale = 405, .trainerOffset = 8, - FRONT_PIC(Serperior, 64, 56), + .frontPic = gMonFrontPic_Serperior, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Serperior, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Serperior, 64, 64), + .backPic = gMonBackPic_Serperior, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Serperior), - ICON(Serperior, 1), - .footprint = gMonFootprint_Serperior, - LEARNSETS(Serperior), + .palette = gMonPalette_Serperior, + .shinyPalette = gMonShinyPalette_Serperior, + .iconSprite = gMonIcon_Serperior, + .iconPalIndex = 1, + FOOTPRINT(Serperior) + .levelUpLearnset = sSerperiorLevelUpLearnset, + .teachableLearnset = sSerperiorTeachableLearnset, }, #endif //P_FAMILY_SNIVY @@ -207,7 +227,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 45, .baseSpAttack = 45, .baseSpDefense = 45, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 62, .evYield_HP = 1, @@ -215,7 +235,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_THICK_FAT }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Tepig"), @@ -233,17 +253,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tepig, 40, 48), + .frontPic = gMonFrontPic_Tepig, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Tepig, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Tepig, 48, 56), + .backPic = gMonBackPic_Tepig, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Tepig), - ICON(Tepig, 0), - .footprint = gMonFootprint_Tepig, - LEARNSETS(Tepig), + .palette = gMonPalette_Tepig, + .shinyPalette = gMonShinyPalette_Tepig, + .iconSprite = gMonIcon_Tepig, + .iconPalIndex = 0, + FOOTPRINT(Tepig) + .levelUpLearnset = sTepigLevelUpLearnset, + .teachableLearnset = sTepigTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_PIGNITE}), }, @@ -255,7 +280,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 55, .baseSpAttack = 70, .baseSpDefense = 55, - .types = { TYPE_FIRE, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FIGHTING), .catchRate = 45, .expYield = 146, .evYield_Attack = 2, @@ -263,7 +288,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_THICK_FAT }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Pignite"), @@ -281,17 +306,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 8, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Pignite, 56, 56), + .frontPic = gMonFrontPic_Pignite, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Pignite, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Pignite, 64, 64), + .backPic = gMonBackPic_Pignite, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Pignite), - ICON(Pignite, 0), - .footprint = gMonFootprint_Pignite, - LEARNSETS(Pignite), + .palette = gMonPalette_Pignite, + .shinyPalette = gMonShinyPalette_Pignite, + .iconSprite = gMonIcon_Pignite, + .iconPalIndex = 0, + FOOTPRINT(Pignite) + .levelUpLearnset = sPigniteLevelUpLearnset, + .teachableLearnset = sPigniteTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_EMBOAR}), }, @@ -303,15 +333,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 100, .baseSpDefense = 65, - .types = { TYPE_FIRE, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FIGHTING), .catchRate = 45, - .expYield = 238, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 264 : 238, .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, @@ -330,17 +360,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Emboar, 64, 64), + .frontPic = gMonFrontPic_Emboar, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Emboar, .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, - BACK_PIC(Emboar, 64, 64), + .backPic = gMonBackPic_Emboar, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Emboar), - ICON(Emboar, 0), - .footprint = gMonFootprint_Emboar, - LEARNSETS(Emboar), + .palette = gMonPalette_Emboar, + .shinyPalette = gMonShinyPalette_Emboar, + .iconSprite = gMonIcon_Emboar, + .iconPalIndex = 0, + FOOTPRINT(Emboar) + .levelUpLearnset = sEmboarLevelUpLearnset, + .teachableLearnset = sEmboarTeachableLearnset, }, #endif //P_FAMILY_TEPIG @@ -353,7 +388,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 45, .baseSpAttack = 63, .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 62, .evYield_SpAttack = 1, @@ -361,7 +396,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHELL_ARMOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Oshawott"), @@ -379,17 +414,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Oshawott, 32, 40), + .frontPic = gMonFrontPic_Oshawott, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Oshawott, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Oshawott, 40, 48), + .backPic = gMonBackPic_Oshawott, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 14, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Oshawott), - ICON(Oshawott, 0), - .footprint = gMonFootprint_Oshawott, - LEARNSETS(Oshawott), + .palette = gMonPalette_Oshawott, + .shinyPalette = gMonShinyPalette_Oshawott, + .iconSprite = gMonIcon_Oshawott, + .iconPalIndex = 0, + FOOTPRINT(Oshawott) + .levelUpLearnset = sOshawottLevelUpLearnset, + .teachableLearnset = sOshawottTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_DEWOTT}), }, @@ -401,7 +441,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 83, .baseSpDefense = 60, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 145, .evYield_SpAttack = 2, @@ -409,7 +449,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHELL_ARMOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Dewott"), @@ -427,102 +467,132 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 9, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Dewott, 40, 56), + .frontPic = gMonFrontPic_Dewott, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Dewott, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Dewott, 56, 64), + .backPic = gMonBackPic_Dewott, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Dewott), - ICON(Dewott, 0), - .footprint = gMonFootprint_Dewott, - LEARNSETS(Dewott), + .palette = gMonPalette_Dewott, + .shinyPalette = gMonShinyPalette_Dewott, + .iconSprite = gMonIcon_Dewott, + .iconPalIndex = 0, + FOOTPRINT(Dewott) + .levelUpLearnset = sDewottLevelUpLearnset, + .teachableLearnset = sDewottTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SAMUROTT}, {EVO_NONE, 0, SPECIES_SAMUROTT_HISUIAN}), }, -#define SAMUROTT_MISC_INFO \ - .catchRate = 45, \ - .expYield = 238, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Samurott"), \ - .cryId = CRY_SAMUROTT, \ - .natDexNum = NATIONAL_DEX_SAMUROTT, \ - .categoryName = _("Formidable"), \ - .height = 15, \ - .pokemonScale = 268, \ - .pokemonOffset = 2, \ - .trainerScale = 271, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Samurott, \ - .formSpeciesIdTable = sSamurottFormSpeciesIdTable - [SPECIES_SAMUROTT] = { - SAMUROTT_MISC_INFO, .baseHP = 95, .baseAttack = 100, .baseDefense = 85, .baseSpeed = 70, .baseSpAttack = 108, .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 264 : 238, .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHELL_ARMOR }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Samurott"), + .cryId = CRY_SAMUROTT, + .natDexNum = NATIONAL_DEX_SAMUROTT, + .categoryName = _("Formidable"), + .height = 15, .weight = 946, .description = COMPOUND_STRING( "One swing of the seamitars attached\n" "to its armor can fell an opponent.\n" "A simple glare from one of them is\n" "enough to intimidate most enemies."), - FRONT_PIC(Samurott, 64, 64), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Samurott, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Samurott, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Samurott, 64, 56), + .backPic = gMonBackPic_Samurott, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Samurott), - ICON(Samurott, 2), - LEARNSETS(Samurott), + .palette = gMonPalette_Samurott, + .shinyPalette = gMonShinyPalette_Samurott, + .iconSprite = gMonIcon_Samurott, + .iconPalIndex = 2, + FOOTPRINT(Samurott) + .levelUpLearnset = sSamurottLevelUpLearnset, + .teachableLearnset = sSamurottTeachableLearnset, + .formSpeciesIdTable = sSamurottFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_SAMUROTT_HISUIAN] = { - SAMUROTT_MISC_INFO, .baseHP = 90, .baseAttack = 108, .baseDefense = 80, .baseSpeed = 85, .baseSpAttack = 100, .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_DARK }, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 264 : 238, .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHARPNESS }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Samurott"), + .cryId = CRY_SAMUROTT, + .natDexNum = NATIONAL_DEX_SAMUROTT, + .categoryName = _("Formidable"), + .height = 15, .weight = 582, .description = COMPOUND_STRING( "Hard of heart and deft of blade,\n" "this rare form of Samurott is a\n" "product of the Pokémon's evolution in the\n" "region of Hisui."), - FRONT_PIC(SamurottHisuian, 64, 64), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + .frontPic = gMonFrontPic_SamurottHisuian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_SamurottHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SamurottHisuian, 64, 64), + .backPic = gMonBackPic_SamurottHisuian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SamurottHisuian), - ICON(SamurottHisuian, 0), - LEARNSETS(SamurottHisuian), + .palette = gMonPalette_SamurottHisuian, + .shinyPalette = gMonShinyPalette_SamurottHisuian, + .iconSprite = gMonIcon_SamurottHisuian, + .iconPalIndex = 0, + FOOTPRINT(Samurott) .isHisuianForm = TRUE, + .levelUpLearnset = sSamurottHisuianLevelUpLearnset, + .teachableLearnset = sSamurottHisuianTeachableLearnset, + .formSpeciesIdTable = sSamurottFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_OSHAWOTT @@ -536,7 +606,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 42, .baseSpAttack = 35, .baseSpDefense = 39, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 51, .evYield_Attack = 1, @@ -544,7 +614,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_KEEN_EYE, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Patrat"), @@ -562,17 +632,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Patrat, 48, 40), + .frontPic = gMonFrontPic_Patrat, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Patrat, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Patrat, 64, 40), + .backPic = gMonBackPic_Patrat, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Patrat), - ICON(Patrat, 2), - .footprint = gMonFootprint_Patrat, - LEARNSETS(Patrat), + .palette = gMonPalette_Patrat, + .shinyPalette = gMonShinyPalette_Patrat, + .iconSprite = gMonIcon_Patrat, + .iconPalIndex = 2, + FOOTPRINT(Patrat) + .levelUpLearnset = sPatratLevelUpLearnset, + .teachableLearnset = sPatratTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_WATCHOG}), }, @@ -584,7 +659,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 77, .baseSpAttack = 60, .baseSpDefense = 69, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 147, .evYield_Attack = 2, @@ -592,7 +667,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_ILLUMINATE, ABILITY_KEEN_EYE, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Watchog"), @@ -610,17 +685,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Watchog, 32, 64), + .frontPic = gMonFrontPic_Watchog, + .frontPicSize = MON_COORDS_SIZE(32, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Watchog, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Watchog, 56, 64), + .backPic = gMonBackPic_Watchog, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Watchog), - ICON(Watchog, 2), - .footprint = gMonFootprint_Watchog, - LEARNSETS(Watchog), + .palette = gMonPalette_Watchog, + .shinyPalette = gMonShinyPalette_Watchog, + .iconSprite = gMonIcon_Watchog, + .iconPalIndex = 2, + FOOTPRINT(Watchog) + .levelUpLearnset = sWatchogLevelUpLearnset, + .teachableLearnset = sWatchogTeachableLearnset, }, #endif //P_FAMILY_PATRAT @@ -633,7 +713,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 55, .baseSpAttack = 25, .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 55, .evYield_Attack = 1, @@ -641,7 +721,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_PICKUP, ABILITY_RUN_AWAY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Lillipup"), @@ -659,17 +739,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lillipup, 32, 40), + .frontPic = gMonFrontPic_Lillipup, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Lillipup, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Lillipup, 48, 48), + .backPic = gMonBackPic_Lillipup, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Lillipup), - ICON(Lillipup, 2), - .footprint = gMonFootprint_Lillipup, - LEARNSETS(Lillipup), + .palette = gMonPalette_Lillipup, + .shinyPalette = gMonShinyPalette_Lillipup, + .iconSprite = gMonIcon_Lillipup, + .iconPalIndex = 2, + FOOTPRINT(Lillipup) + .levelUpLearnset = sLillipupLevelUpLearnset, + .teachableLearnset = sLillipupTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_HERDIER}), }, @@ -681,7 +766,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 35, .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 120, .expYield = 130, .evYield_Attack = 2, @@ -689,7 +774,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_SAND_RUSH, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Herdier"), @@ -707,17 +792,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 9, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Herdier, 48, 48), + .frontPic = gMonFrontPic_Herdier, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Herdier, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Herdier, 48, 56), + .backPic = gMonBackPic_Herdier, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Herdier), - ICON(Herdier, 2), - .footprint = gMonFootprint_Herdier, - LEARNSETS(Herdier), + .palette = gMonPalette_Herdier, + .shinyPalette = gMonShinyPalette_Herdier, + .iconSprite = gMonIcon_Herdier, + .iconPalIndex = 2, + FOOTPRINT(Herdier) + .levelUpLearnset = sHerdierLevelUpLearnset, + .teachableLearnset = sHerdierTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_STOUTLAND}), }, @@ -729,15 +819,21 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 80, .baseSpAttack = 45, .baseSpDefense = 90, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 250, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 225, + #else + .expYield = 221, + #endif .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_SAND_RUSH, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Stoutland"), @@ -755,17 +851,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Stoutland, 64, 64), + .frontPic = gMonFrontPic_Stoutland, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Stoutland, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Stoutland, 64, 64), + .backPic = gMonBackPic_Stoutland, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Stoutland), - ICON(Stoutland, 2), - .footprint = gMonFootprint_Stoutland, - LEARNSETS(Stoutland), + .palette = gMonPalette_Stoutland, + .shinyPalette = gMonShinyPalette_Stoutland, + .iconSprite = gMonIcon_Stoutland, + .iconPalIndex = 2, + FOOTPRINT(Stoutland) + .levelUpLearnset = sStoutlandLevelUpLearnset, + .teachableLearnset = sStoutlandTeachableLearnset, }, #endif //P_FAMILY_LILLIPUP @@ -778,7 +879,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 66, .baseSpAttack = 50, .baseSpDefense = 37, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 255, .expYield = 56, .evYield_Speed = 1, @@ -786,7 +887,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_LIMBER, ABILITY_UNBURDEN, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Purrloin"), @@ -804,17 +905,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Purrloin, 48, 48), + .frontPic = gMonFrontPic_Purrloin, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Purrloin, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Purrloin, 56, 48), + .backPic = gMonBackPic_Purrloin, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Purrloin), - ICON(Purrloin, 0), - .footprint = gMonFootprint_Purrloin, - LEARNSETS(Purrloin), + .palette = gMonPalette_Purrloin, + .shinyPalette = gMonShinyPalette_Purrloin, + .iconSprite = gMonIcon_Purrloin, + .iconPalIndex = 0, + FOOTPRINT(Purrloin) + .levelUpLearnset = sPurrloinLevelUpLearnset, + .teachableLearnset = sPurrloinTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_LIEPARD}), }, @@ -826,7 +932,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 106, .baseSpAttack = 88, .baseSpDefense = 50, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 90, .expYield = 156, .evYield_Speed = 2, @@ -834,7 +940,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_LIMBER, ABILITY_UNBURDEN, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Liepard"), @@ -852,17 +958,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Liepard, 64, 64), + .frontPic = gMonFrontPic_Liepard, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Liepard, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Liepard, 56, 48), + .backPic = gMonBackPic_Liepard, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Liepard), - ICON(Liepard, 0), - .footprint = gMonFootprint_Liepard, - LEARNSETS(Liepard), + .palette = gMonPalette_Liepard, + .shinyPalette = gMonShinyPalette_Liepard, + .iconSprite = gMonIcon_Liepard, + .iconPalIndex = 0, + FOOTPRINT(Liepard) + .levelUpLearnset = sLiepardLevelUpLearnset, + .teachableLearnset = sLiepardTeachableLearnset, }, #endif //P_FAMILY_PURRLOIN @@ -875,7 +986,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 64, .baseSpAttack = 53, .baseSpDefense = 48, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 190, .expYield = 63, .evYield_Speed = 1, @@ -883,7 +994,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_OVERGROW }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Pansage"), @@ -901,17 +1012,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pansage, 40, 48), + .frontPic = gMonFrontPic_Pansage, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Pansage, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Pansage, 48, 48), + .backPic = gMonBackPic_Pansage, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Pansage), - ICON(Pansage, 1), - .footprint = gMonFootprint_Pansage, - LEARNSETS(Pansage), + .palette = gMonPalette_Pansage, + .shinyPalette = gMonShinyPalette_Pansage, + .iconSprite = gMonIcon_Pansage, + .iconPalIndex = 1, + FOOTPRINT(Pansage) + .levelUpLearnset = sPansageLevelUpLearnset, + .teachableLearnset = sPansageTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SIMISAGE}), }, @@ -923,7 +1039,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 101, .baseSpAttack = 98, .baseSpDefense = 63, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 75, .expYield = 174, .evYield_Speed = 2, @@ -931,7 +1047,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_OVERGROW }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Simisage"), @@ -949,17 +1065,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Simisage, 64, 64), + .frontPic = gMonFrontPic_Simisage, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Simisage, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Simisage, 56, 64), + .backPic = gMonBackPic_Simisage, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Simisage), - ICON(Simisage, 1), - .footprint = gMonFootprint_Simisage, - LEARNSETS(Simisage), + .palette = gMonPalette_Simisage, + .shinyPalette = gMonShinyPalette_Simisage, + .iconSprite = gMonIcon_Simisage, + .iconPalIndex = 1, + FOOTPRINT(Simisage) + .levelUpLearnset = sSimisageLevelUpLearnset, + .teachableLearnset = sSimisageTeachableLearnset, }, #endif //P_FAMILY_PANSAGE @@ -972,7 +1093,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 64, .baseSpAttack = 53, .baseSpDefense = 48, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 190, .expYield = 63, .evYield_Speed = 1, @@ -980,7 +1101,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_BLAZE }, .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, @@ -999,17 +1120,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pansear, 48, 48), + .frontPic = gMonFrontPic_Pansear, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Pansear, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Pansear, 48, 56), + .backPic = gMonBackPic_Pansear, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Pansear), - ICON(Pansear, 2), - .footprint = gMonFootprint_Pansear, - LEARNSETS(Pansear), + .palette = gMonPalette_Pansear, + .shinyPalette = gMonShinyPalette_Pansear, + .iconSprite = gMonIcon_Pansear, + .iconPalIndex = 2, + FOOTPRINT(Pansear) + .levelUpLearnset = sPansearLevelUpLearnset, + .teachableLearnset = sPansearTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_SIMISEAR}), }, @@ -1021,7 +1147,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 101, .baseSpAttack = 98, .baseSpDefense = 63, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 75, .expYield = 174, .evYield_Speed = 2, @@ -1029,7 +1155,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_BLAZE }, .bodyColor = BODY_COLOR_RED, .noFlip = TRUE, @@ -1048,17 +1174,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Simisear, 56, 56), + .frontPic = gMonFrontPic_Simisear, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Simisear, .frontAnimId = ANIM_SWING_CONCAVE_FAST, - BACK_PIC(Simisear, 64, 56), + .backPic = gMonBackPic_Simisear, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Simisear), - ICON(Simisear, 2), - .footprint = gMonFootprint_Simisear, - LEARNSETS(Simisear), + .palette = gMonPalette_Simisear, + .shinyPalette = gMonShinyPalette_Simisear, + .iconSprite = gMonIcon_Simisear, + .iconPalIndex = 2, + FOOTPRINT(Simisear) + .levelUpLearnset = sSimisearLevelUpLearnset, + .teachableLearnset = sSimisearTeachableLearnset, }, #endif //P_FAMILY_PANSEAR @@ -1071,7 +1202,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 64, .baseSpAttack = 53, .baseSpDefense = 48, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 190, .expYield = 63, .evYield_Speed = 1, @@ -1079,7 +1210,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_TORRENT }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Panpour"), @@ -1097,17 +1228,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Panpour, 48, 48), + .frontPic = gMonFrontPic_Panpour, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Panpour, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Panpour, 48, 48), + .backPic = gMonBackPic_Panpour, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Panpour), - ICON(Panpour, 2), - .footprint = gMonFootprint_Panpour, - LEARNSETS(Panpour), + .palette = gMonPalette_Panpour, + .shinyPalette = gMonShinyPalette_Panpour, + .iconSprite = gMonIcon_Panpour, + .iconPalIndex = 2, + FOOTPRINT(Panpour) + .levelUpLearnset = sPanpourLevelUpLearnset, + .teachableLearnset = sPanpourTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_SIMIPOUR}), }, @@ -1119,7 +1255,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 101, .baseSpAttack = 98, .baseSpDefense = 63, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 75, .expYield = 174, .evYield_Speed = 2, @@ -1127,7 +1263,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_TORRENT }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Simipour"), @@ -1145,17 +1281,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Simipour, 56, 56), + .frontPic = gMonFrontPic_Simipour, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Simipour, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Simipour, 64, 56), + .backPic = gMonBackPic_Simipour, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Simipour), - ICON(Simipour, 2), - .footprint = gMonFootprint_Simipour, - LEARNSETS(Simipour), + .palette = gMonPalette_Simipour, + .shinyPalette = gMonShinyPalette_Simipour, + .iconSprite = gMonIcon_Simipour, + .iconPalIndex = 2, + FOOTPRINT(Simipour) + .levelUpLearnset = sSimipourLevelUpLearnset, + .teachableLearnset = sSimipourTeachableLearnset, }, #endif //P_FAMILY_PANPOUR @@ -1168,7 +1309,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 24, .baseSpAttack = 67, .baseSpDefense = 55, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 190, .expYield = 58, .evYield_HP = 1, @@ -1176,7 +1317,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FOREWARN, ABILITY_SYNCHRONIZE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Munna"), @@ -1194,18 +1335,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Munna, 32, 32), + .frontPic = gMonFrontPic_Munna, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Munna, .frontAnimId = ANIM_RISING_WOBBLE, .enemyMonElevation = 7, - BACK_PIC(Munna, 48, 32), + .backPic = gMonBackPic_Munna, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 16, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Munna), - ICON(Munna, 0), - .footprint = gMonFootprint_Munna, - LEARNSETS(Munna), + .palette = gMonPalette_Munna, + .shinyPalette = gMonShinyPalette_Munna, + .iconSprite = gMonIcon_Munna, + .iconPalIndex = 0, + FOOTPRINT(Munna) + .levelUpLearnset = sMunnaLevelUpLearnset, + .teachableLearnset = sMunnaTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_MUSHARNA}), }, @@ -1217,7 +1363,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 29, .baseSpAttack = 107, .baseSpDefense = 95, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 75, .expYield = 170, .evYield_HP = 2, @@ -1225,7 +1371,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FOREWARN, ABILITY_SYNCHRONIZE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Musharna"), @@ -1243,18 +1389,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Musharna, 64, 64), + .frontPic = gMonFrontPic_Musharna, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Musharna, .frontAnimId = ANIM_ROTATE_TO_SIDES_TWICE, .enemyMonElevation = 5, - BACK_PIC(Musharna, 64, 64), + .backPic = gMonBackPic_Musharna, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, .backAnimId = BACK_ANIM_GROW, - PALETTES(Musharna), - ICON(Musharna, 0), - .footprint = gMonFootprint_Musharna, - LEARNSETS(Musharna), + .palette = gMonPalette_Musharna, + .shinyPalette = gMonShinyPalette_Musharna, + .iconSprite = gMonIcon_Musharna, + .iconPalIndex = 0, + FOOTPRINT(Musharna) + .levelUpLearnset = sMusharnaLevelUpLearnset, + .teachableLearnset = sMusharnaTeachableLearnset, }, #endif //P_FAMILY_MUNNA @@ -1267,7 +1418,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 43, .baseSpAttack = 36, .baseSpDefense = 30, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 255, .expYield = 53, .evYield_Attack = 1, @@ -1275,7 +1426,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_BIG_PECKS, ABILITY_SUPER_LUCK, ABILITY_RIVALRY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Pidove"), @@ -1293,17 +1444,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pidove, 40, 40), + .frontPic = gMonFrontPic_Pidove, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Pidove, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Pidove, 48, 40), + .backPic = gMonBackPic_Pidove, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Pidove), - ICON(Pidove, 0), - .footprint = gMonFootprint_Pidove, - LEARNSETS(Pidove), + .palette = gMonPalette_Pidove, + .shinyPalette = gMonShinyPalette_Pidove, + .iconSprite = gMonIcon_Pidove, + .iconPalIndex = 0, + FOOTPRINT(Pidove) + .levelUpLearnset = sPidoveLevelUpLearnset, + .teachableLearnset = sPidoveTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 21, SPECIES_TRANQUILL}), }, @@ -1315,7 +1471,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 50, .baseSpDefense = 42, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 120, .expYield = 125, .evYield_Attack = 2, @@ -1323,7 +1479,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_BIG_PECKS, ABILITY_SUPER_LUCK, ABILITY_RIVALRY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Tranquill"), @@ -1341,17 +1497,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tranquill, 40, 56), + .frontPic = gMonFrontPic_Tranquill, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Tranquill, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Tranquill, 56, 48), + .backPic = gMonBackPic_Tranquill, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Tranquill), - ICON(Tranquill, 0), - .footprint = gMonFootprint_Tranquill, - LEARNSETS(Tranquill), + .palette = gMonPalette_Tranquill, + .shinyPalette = gMonShinyPalette_Tranquill, + .iconSprite = gMonIcon_Tranquill, + .iconPalIndex = 0, + FOOTPRINT(Tranquill) + .levelUpLearnset = sTranquillLevelUpLearnset, + .teachableLearnset = sTranquillTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_UNFEZANT}), }, @@ -1363,15 +1524,21 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 93, .baseSpAttack = 65, .baseSpDefense = 55, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 244, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 220, + #else + .expYield = 215, + #endif .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_BIG_PECKS, ABILITY_SUPER_LUCK, ABILITY_RIVALRY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Unfezant"), @@ -1389,21 +1556,30 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Unfezant, 56, 64), - FRONT_PIC_FEMALE(Unfezant, 56, 64), + .frontPic = gMonFrontPic_Unfezant, + .frontPicFemale = gMonFrontPic_UnfezantF, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Unfezant, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Unfezant, 64, 64), - BACK_PIC_FEMALE(Unfezant, 64, 64), + .backPic = gMonBackPic_Unfezant, + .backPicFemale = gMonBackPic_UnfezantF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Unfezant), - PALETTE_FEMALE(Unfezant), - ICON(Unfezant, 1), - ICON_FEMALE(Unfezant, 1), - .footprint = gMonFootprint_Unfezant, - LEARNSETS(Unfezant), + .palette = gMonPalette_Unfezant, + .paletteFemale = gMonPalette_UnfezantF, + .shinyPalette = gMonShinyPalette_Unfezant, + .shinyPaletteFemale = gMonShinyPalette_UnfezantF, + .iconSprite = gMonIcon_Unfezant, + .iconSpriteFemale = gMonIcon_UnfezantF, + .iconPalIndex = 1, + .iconPalIndexFemale = 1, + FOOTPRINT(Unfezant) + .levelUpLearnset = sUnfezantLevelUpLearnset, + .teachableLearnset = sUnfezantTeachableLearnset, }, #endif //P_FAMILY_PIDOVE @@ -1416,7 +1592,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 76, .baseSpAttack = 50, .baseSpDefense = 32, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 190, .expYield = 59, .evYield_Speed = 1, @@ -1424,7 +1600,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_LIGHTNING_ROD, ABILITY_MOTOR_DRIVE, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Blitzle"), @@ -1442,17 +1618,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 8, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Blitzle, 40, 56), + .frontPic = gMonFrontPic_Blitzle, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Blitzle, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Blitzle, 56, 56), + .backPic = gMonBackPic_Blitzle, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Blitzle), - ICON(Blitzle, 2), - .footprint = gMonFootprint_Blitzle, - LEARNSETS(Blitzle), + .palette = gMonPalette_Blitzle, + .shinyPalette = gMonShinyPalette_Blitzle, + .iconSprite = gMonIcon_Blitzle, + .iconPalIndex = 2, + FOOTPRINT(Blitzle) + .levelUpLearnset = sBlitzleLevelUpLearnset, + .teachableLearnset = sBlitzleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 27, SPECIES_ZEBSTRIKA}), }, @@ -1464,7 +1645,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 116, .baseSpAttack = 80, .baseSpDefense = 63, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 75, .expYield = 174, .evYield_Speed = 2, @@ -1472,7 +1653,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_LIGHTNING_ROD, ABILITY_MOTOR_DRIVE, ABILITY_SAP_SIPPER }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Zebstrika"), @@ -1490,17 +1671,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Zebstrika, 64, 64), + .frontPic = gMonFrontPic_Zebstrika, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Zebstrika, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Zebstrika, 64, 64), + .backPic = gMonBackPic_Zebstrika, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Zebstrika), - ICON(Zebstrika, 2), - .footprint = gMonFootprint_Zebstrika, - LEARNSETS(Zebstrika), + .palette = gMonPalette_Zebstrika, + .shinyPalette = gMonShinyPalette_Zebstrika, + .iconSprite = gMonIcon_Zebstrika, + .iconPalIndex = 2, + FOOTPRINT(Zebstrika) + .levelUpLearnset = sZebstrikaLevelUpLearnset, + .teachableLearnset = sZebstrikaTeachableLearnset, }, #endif //P_FAMILY_BLITZLE @@ -1513,7 +1699,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 15, .baseSpAttack = 25, .baseSpDefense = 25, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 255, .expYield = 56, .evYield_Defense = 1, @@ -1523,7 +1709,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STURDY, ABILITY_WEAK_ARMOR, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Roggenrola"), @@ -1541,17 +1727,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Roggenrola, 24, 40), + .frontPic = gMonFrontPic_Roggenrola, + .frontPicSize = MON_COORDS_SIZE(24, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Roggenrola, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Roggenrola, 40, 48), + .backPic = gMonBackPic_Roggenrola, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Roggenrola), - ICON(Roggenrola, 2), - .footprint = gMonFootprint_Roggenrola, - LEARNSETS(Roggenrola), + .palette = gMonPalette_Roggenrola, + .shinyPalette = gMonShinyPalette_Roggenrola, + .iconSprite = gMonIcon_Roggenrola, + .iconPalIndex = 2, + FOOTPRINT(Roggenrola) + .levelUpLearnset = sRoggenrolaLevelUpLearnset, + .teachableLearnset = sRoggenrolaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_BOLDORE}), }, @@ -1563,7 +1754,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 20, .baseSpAttack = 50, .baseSpDefense = 40, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 120, .expYield = 137, .evYield_Attack = 1, @@ -1574,7 +1765,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STURDY, ABILITY_WEAK_ARMOR, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Boldore"), @@ -1592,17 +1783,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Boldore, 56, 48), + .frontPic = gMonFrontPic_Boldore, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Boldore, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Boldore, 64, 40), + .backPic = gMonBackPic_Boldore, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 16, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Boldore), - ICON(Boldore, 0), - .footprint = gMonFootprint_Boldore, - LEARNSETS(Boldore), + .palette = gMonPalette_Boldore, + .shinyPalette = gMonShinyPalette_Boldore, + .iconSprite = gMonIcon_Boldore, + .iconPalIndex = 0, + FOOTPRINT(Boldore) + .levelUpLearnset = sBoldoreLevelUpLearnset, + .teachableLearnset = sBoldoreTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GIGALITH}, {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GIGALITH}), }, @@ -1615,9 +1811,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 25, .baseSpAttack = 60, .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 80 : 70, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 258, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 232, + #else + .expYield = 227, + #endif .evYield_Attack = 3, .itemCommon = ITEM_EVERSTONE, .itemRare = ITEM_HARD_STONE, @@ -1625,7 +1827,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STURDY, ABILITY_SAND_STREAM, ABILITY_SAND_FORCE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Gigalith"), @@ -1643,17 +1845,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 0, .trainerScale = 290, .trainerOffset = 1, - FRONT_PIC(Gigalith, 64, 64), + .frontPic = gMonFrontPic_Gigalith, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Gigalith, .frontAnimId = ANIM_ROTATE_UP_SLAM_DOWN, - BACK_PIC(Gigalith, 56, 64), + .backPic = gMonBackPic_Gigalith, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Gigalith), - ICON(Gigalith, 0), - .footprint = gMonFootprint_Gigalith, - LEARNSETS(Gigalith), + .palette = gMonPalette_Gigalith, + .shinyPalette = gMonShinyPalette_Gigalith, + .iconSprite = gMonIcon_Gigalith, + .iconPalIndex = 0, + FOOTPRINT(Gigalith) + .levelUpLearnset = sGigalithLevelUpLearnset, + .teachableLearnset = sGigalithTeachableLearnset, }, #endif //P_FAMILY_ROGGENROLA @@ -1666,15 +1873,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 72, .baseSpAttack = 55, .baseSpDefense = 43, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), .catchRate = 190, - .expYield = 65, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_7) ? 65 : 63, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FLYING), .abilities = { ABILITY_UNAWARE, ABILITY_KLUTZ, ABILITY_SIMPLE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Woobat"), @@ -1692,18 +1899,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Woobat, 64, 32), + .frontPic = gMonFrontPic_Woobat, + .frontPicSize = MON_COORDS_SIZE(64, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Woobat, .frontAnimId = ANIM_FOUR_PETAL, .enemyMonElevation = 19, - BACK_PIC(Woobat, 64, 32), + .backPic = gMonBackPic_Woobat, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Woobat), - ICON(Woobat, 0), - .footprint = gMonFootprint_Woobat, - LEARNSETS(Woobat), + .palette = gMonPalette_Woobat, + .shinyPalette = gMonShinyPalette_Woobat, + .iconSprite = gMonIcon_Woobat, + .iconPalIndex = 0, + FOOTPRINT(Woobat) + .levelUpLearnset = sWoobatLevelUpLearnset, + .teachableLearnset = sWoobatTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_SWOOBAT}), }, @@ -1715,7 +1927,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 114, .baseSpAttack = 77, .baseSpDefense = 55, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), .catchRate = 45, .expYield = 149, .evYield_Speed = 2, @@ -1723,7 +1935,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FLYING), .abilities = { ABILITY_UNAWARE, ABILITY_KLUTZ, ABILITY_SIMPLE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Swoobat"), @@ -1741,18 +1953,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Swoobat, 64, 64), + .frontPic = gMonFrontPic_Swoobat, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Swoobat, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, .enemyMonElevation = 10, - BACK_PIC(Swoobat, 64, 64), + .backPic = gMonBackPic_Swoobat, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Swoobat), - ICON(Swoobat, 0), - .footprint = gMonFootprint_Swoobat, - LEARNSETS(Swoobat), + .palette = gMonPalette_Swoobat, + .shinyPalette = gMonShinyPalette_Swoobat, + .iconSprite = gMonIcon_Swoobat, + .iconPalIndex = 0, + FOOTPRINT(Swoobat) + .levelUpLearnset = sSwoobatLevelUpLearnset, + .teachableLearnset = sSwoobatTeachableLearnset, }, #endif //P_FAMILY_WOOBAT @@ -1765,7 +1982,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 68, .baseSpAttack = 30, .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 120, .expYield = 66, .evYield_Attack = 1, @@ -1773,7 +1990,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_RUSH, ABILITY_SAND_FORCE, ABILITY_MOLD_BREAKER }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -1792,17 +2009,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Drilbur, 48, 48), + .frontPic = gMonFrontPic_Drilbur, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Drilbur, .frontAnimId = ANIM_SWING_CONCAVE_FAST_SHORT, - BACK_PIC(Drilbur, 64, 40), + .backPic = gMonBackPic_Drilbur, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Drilbur), - ICON(Drilbur, 0), - .footprint = gMonFootprint_Drilbur, - LEARNSETS(Drilbur), + .palette = gMonPalette_Drilbur, + .shinyPalette = gMonShinyPalette_Drilbur, + .iconSprite = gMonIcon_Drilbur, + .iconPalIndex = 0, + FOOTPRINT(Drilbur) + .levelUpLearnset = sDrilburLevelUpLearnset, + .teachableLearnset = sDrilburTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_EXCADRILL}), }, @@ -1814,7 +2036,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 88, .baseSpAttack = 50, .baseSpDefense = 65, - .types = { TYPE_GROUND, TYPE_STEEL }, + .types = MON_TYPES(TYPE_GROUND, TYPE_STEEL), .catchRate = 60, .expYield = 178, .evYield_Attack = 2, @@ -1822,7 +2044,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_RUSH, ABILITY_SAND_FORCE, ABILITY_MOLD_BREAKER }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -1841,53 +2063,51 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Excadrill, 64, 64), + .frontPic = gMonFrontPic_Excadrill, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Excadrill, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Excadrill, 64, 64), + .backPic = gMonBackPic_Excadrill, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Excadrill), - ICON(Excadrill, 0), - .footprint = gMonFootprint_Excadrill, - LEARNSETS(Excadrill), + .palette = gMonPalette_Excadrill, + .shinyPalette = gMonShinyPalette_Excadrill, + .iconSprite = gMonIcon_Excadrill, + .iconPalIndex = 0, + FOOTPRINT(Excadrill) + .levelUpLearnset = sExcadrillLevelUpLearnset, + .teachableLearnset = sExcadrillTeachableLearnset, }, #endif //P_FAMILY_DRILBUR -#define AUDINO_MISC_INFO \ - .catchRate = 255, \ - .evYield_HP = 2, \ - .itemCommon = ITEM_ORAN_BERRY, \ - .itemRare = ITEM_SITRUS_BERRY, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, \ - .speciesName = _("Audino"), \ - .natDexNum = NATIONAL_DEX_AUDINO, \ - .categoryName = _("Hearing"), \ - .footprint = gMonFootprint_Audino, \ - LEARNSETS(Audino), \ - .formSpeciesIdTable = sAudinoFormSpeciesIdTable, \ - .formChangeTable = sAudinoFormChangeTable - #if P_FAMILY_AUDINO [SPECIES_AUDINO] = { - AUDINO_MISC_INFO, .baseHP = 103, .baseAttack = 60, .baseDefense = 86, .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 86, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 255, .expYield = 390, + .evYield_HP = 2, + .itemCommon = ITEM_ORAN_BERRY, + .itemRare = ITEM_SITRUS_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_HEALER, ABILITY_REGENERATOR, ABILITY_KLUTZ }, .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Audino"), .cryId = CRY_AUDINO, + .natDexNum = NATIONAL_DEX_AUDINO, + .categoryName = _("Hearing"), .height = 11, .weight = 310, .description = COMPOUND_STRING( @@ -1899,32 +2119,52 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Audino, 40, 48), + .frontPic = gMonFrontPic_Audino, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Audino, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Audino, 56, 56), + .backPic = gMonBackPic_Audino, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Audino), - ICON(Audino, 1), + .palette = gMonPalette_Audino, + .shinyPalette = gMonShinyPalette_Audino, + .iconSprite = gMonIcon_Audino, + .iconPalIndex = 1, + FOOTPRINT(Audino) + .levelUpLearnset = sAudinoLevelUpLearnset, + .teachableLearnset = sAudinoTeachableLearnset, + .formSpeciesIdTable = sAudinoFormSpeciesIdTable, + .formChangeTable = sAudinoFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_AUDINO_MEGA] = { - AUDINO_MISC_INFO, .baseHP = 103, .baseAttack = 60, .baseDefense = 126, .baseSpeed = 50, .baseSpAttack = 80, .baseSpDefense = 126, - .types = { TYPE_NORMAL, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FAIRY), + .catchRate = 255, .expYield = 425, + .evYield_HP = 2, + .itemCommon = ITEM_ORAN_BERRY, + .itemRare = ITEM_SITRUS_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_HEALER, ABILITY_HEALER, ABILITY_HEALER }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Audino"), .cryId = CRY_AUDINO_MEGA, + .natDexNum = NATIONAL_DEX_AUDINO, + .categoryName = _("Hearing"), .height = 15, .weight = 320, .description = COMPOUND_STRING( @@ -1936,16 +2176,25 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(AudinoMega, 48, 64), + .frontPic = gMonFrontPic_AudinoMega, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_AudinoMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(AudinoMega, 56, 64), + .backPic = gMonBackPic_AudinoMega, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(AudinoMega), - ICON(AudinoMega, 1), + .palette = gMonPalette_AudinoMega, + .shinyPalette = gMonShinyPalette_AudinoMega, + .iconSprite = gMonIcon_AudinoMega, + .iconPalIndex = 1, + FOOTPRINT(Audino) .isMegaEvolution = TRUE, + .levelUpLearnset = sAudinoLevelUpLearnset, + .teachableLearnset = sAudinoTeachableLearnset, + .formSpeciesIdTable = sAudinoFormSpeciesIdTable, + .formChangeTable = sAudinoFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_AUDINO @@ -1959,7 +2208,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 35, .baseSpAttack = 25, .baseSpDefense = 35, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 180, .expYield = 61, .evYield_Attack = 1, @@ -1967,7 +2216,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_GUTS, ABILITY_SHEER_FORCE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Timburr"), @@ -1985,17 +2234,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Timburr, 48, 40), + .frontPic = gMonFrontPic_Timburr, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Timburr, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Timburr, 64, 40), + .backPic = gMonBackPic_Timburr, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Timburr), - ICON(Timburr, 1), - .footprint = gMonFootprint_Timburr, - LEARNSETS(Timburr), + .palette = gMonPalette_Timburr, + .shinyPalette = gMonShinyPalette_Timburr, + .iconSprite = gMonIcon_Timburr, + .iconPalIndex = 1, + FOOTPRINT(Timburr) + .levelUpLearnset = sTimburrLevelUpLearnset, + .teachableLearnset = sTimburrTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_GURDURR}), }, @@ -2007,7 +2261,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 40, .baseSpAttack = 40, .baseSpDefense = 50, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 90, .expYield = 142, .evYield_Attack = 2, @@ -2015,7 +2269,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_GUTS, ABILITY_SHEER_FORCE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Gurdurr"), @@ -2033,17 +2287,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gurdurr, 64, 64), + .frontPic = gMonFrontPic_Gurdurr, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Gurdurr, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Gurdurr, 64, 48), + .backPic = gMonBackPic_Gurdurr, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Gurdurr), - ICON(Gurdurr, 1), - .footprint = gMonFootprint_Gurdurr, - LEARNSETS(Gurdurr), + .palette = gMonPalette_Gurdurr, + .shinyPalette = gMonShinyPalette_Gurdurr, + .iconSprite = gMonIcon_Gurdurr, + .iconPalIndex = 1, + FOOTPRINT(Gurdurr) + .levelUpLearnset = sGurdurrLevelUpLearnset, + .teachableLearnset = sGurdurrTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_CONKELDURR}, {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_CONKELDURR}), }, @@ -2056,15 +2315,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 45, .baseSpAttack = 55, .baseSpDefense = 65, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, - .expYield = 227, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 253 : 227, .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_GUTS, ABILITY_SHEER_FORCE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Conkeldurr"), @@ -2082,17 +2341,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Conkeldurr, 64, 56), + .frontPic = gMonFrontPic_Conkeldurr, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Conkeldurr, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Conkeldurr, 64, 56), + .backPic = gMonBackPic_Conkeldurr, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Conkeldurr), - ICON(Conkeldurr, 1), - .footprint = gMonFootprint_Conkeldurr, - LEARNSETS(Conkeldurr), + .palette = gMonPalette_Conkeldurr, + .shinyPalette = gMonShinyPalette_Conkeldurr, + .iconSprite = gMonIcon_Conkeldurr, + .iconPalIndex = 1, + FOOTPRINT(Conkeldurr) + .levelUpLearnset = sConkeldurrLevelUpLearnset, + .teachableLearnset = sConkeldurrTeachableLearnset, }, #endif //P_FAMILY_TIMBURR @@ -2105,7 +2369,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 64, .baseSpAttack = 50, .baseSpDefense = 40, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 255, .expYield = 59, .evYield_Speed = 1, @@ -2113,7 +2377,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_HYDRATION, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Tympole"), @@ -2131,17 +2395,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tympole, 40, 40), + .frontPic = gMonFrontPic_Tympole, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Tympole, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Tympole, 40, 32), + .backPic = gMonBackPic_Tympole, + .backPicSize = MON_COORDS_SIZE(40, 32), .backPicYOffset = 17, .backAnimId = BACK_ANIM_H_SPRING, - PALETTES(Tympole), - ICON(Tympole, 2), - .footprint = gMonFootprint_Tympole, - LEARNSETS(Tympole), + .palette = gMonPalette_Tympole, + .shinyPalette = gMonShinyPalette_Tympole, + .iconSprite = gMonIcon_Tympole, + .iconPalIndex = 2, + FOOTPRINT(Tympole) + .levelUpLearnset = sTympoleLevelUpLearnset, + .teachableLearnset = sTympoleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_PALPITOAD}), }, @@ -2153,7 +2422,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 69, .baseSpAttack = 65, .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_GROUND }, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), .catchRate = 120, .expYield = 134, .evYield_HP = 2, @@ -2161,7 +2430,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_HYDRATION, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Palpitoad"), @@ -2179,17 +2448,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 10, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Palpitoad, 40, 48), + .frontPic = gMonFrontPic_Palpitoad, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Palpitoad, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Palpitoad, 56, 40), + .backPic = gMonBackPic_Palpitoad, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Palpitoad), - ICON(Palpitoad, 2), - .footprint = gMonFootprint_Palpitoad, - LEARNSETS(Palpitoad), + .palette = gMonPalette_Palpitoad, + .shinyPalette = gMonShinyPalette_Palpitoad, + .iconSprite = gMonIcon_Palpitoad, + .iconPalIndex = 2, + FOOTPRINT(Palpitoad) + .levelUpLearnset = sPalpitoadLevelUpLearnset, + .teachableLearnset = sPalpitoadTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SEISMITOAD}), }, @@ -2201,15 +2475,21 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 74, .baseSpAttack = 85, .baseSpDefense = 75, - .types = { TYPE_WATER, TYPE_GROUND }, + .types = MON_TYPES(TYPE_WATER, TYPE_GROUND), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 255, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 229, + #else + .expYield = 225, + #endif .evYield_HP = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_POISON_TOUCH, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Seismitoad"), @@ -2227,17 +2507,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Seismitoad, 64, 64), + .frontPic = gMonFrontPic_Seismitoad, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Seismitoad, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Seismitoad, 64, 40), + .backPic = gMonBackPic_Seismitoad, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Seismitoad), - ICON(Seismitoad, 0), - .footprint = gMonFootprint_Seismitoad, - LEARNSETS(Seismitoad), + .palette = gMonPalette_Seismitoad, + .shinyPalette = gMonShinyPalette_Seismitoad, + .iconSprite = gMonIcon_Seismitoad, + .iconPalIndex = 0, + FOOTPRINT(Seismitoad) + .levelUpLearnset = sSeismitoadLevelUpLearnset, + .teachableLearnset = sSeismitoadTeachableLearnset, }, #endif //P_FAMILY_TYMPOLE @@ -2250,7 +2535,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 45, .baseSpAttack = 30, .baseSpDefense = 85, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, .expYield = 163, .evYield_HP = 2, @@ -2259,7 +2544,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_GUTS, ABILITY_INNER_FOCUS, ABILITY_MOLD_BREAKER }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Throh"), @@ -2277,17 +2562,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Throh, 64, 48), + .frontPic = gMonFrontPic_Throh, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Throh, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Throh, 64, 48), + .backPic = gMonBackPic_Throh, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Throh), - ICON(Throh, 0), - .footprint = gMonFootprint_Throh, - LEARNSETS(Throh), + .palette = gMonPalette_Throh, + .shinyPalette = gMonShinyPalette_Throh, + .iconSprite = gMonIcon_Throh, + .iconPalIndex = 0, + FOOTPRINT(Throh) + .levelUpLearnset = sThrohLevelUpLearnset, + .teachableLearnset = sThrohTeachableLearnset, }, #endif //P_FAMILY_THROH @@ -2300,7 +2590,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 85, .baseSpAttack = 30, .baseSpDefense = 75, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, .expYield = 163, .evYield_Attack = 2, @@ -2309,7 +2599,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_STURDY, ABILITY_INNER_FOCUS, ABILITY_MOLD_BREAKER }, .bodyColor = BODY_COLOR_BLUE, .noFlip = TRUE, @@ -2328,17 +2618,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 4, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Sawk, 56, 56), + .frontPic = gMonFrontPic_Sawk, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Sawk, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Sawk, 64, 40), + .backPic = gMonBackPic_Sawk, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Sawk), - ICON(Sawk, 0), - .footprint = gMonFootprint_Sawk, - LEARNSETS(Sawk), + .palette = gMonPalette_Sawk, + .shinyPalette = gMonShinyPalette_Sawk, + .iconSprite = gMonIcon_Sawk, + .iconPalIndex = 0, + FOOTPRINT(Sawk) + .levelUpLearnset = sSawkLevelUpLearnset, + .teachableLearnset = sSawkTeachableLearnset, }, #endif //P_FAMILY_SAWK @@ -2351,7 +2646,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 42, .baseSpAttack = 40, .baseSpDefense = 60, - .types = { TYPE_BUG, TYPE_GRASS }, + .types = MON_TYPES(TYPE_BUG, TYPE_GRASS), .catchRate = 255, .expYield = 62, .evYield_Defense = 1, @@ -2360,7 +2655,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_CHLOROPHYLL, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Sewaddle"), @@ -2378,17 +2673,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sewaddle, 40, 40), + .frontPic = gMonFrontPic_Sewaddle, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Sewaddle, .frontAnimId = ANIM_CIRCLE_INTO_BG, - BACK_PIC(Sewaddle, 40, 48), + .backPic = gMonBackPic_Sewaddle, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Sewaddle), - ICON(Sewaddle, 1), - .footprint = gMonFootprint_Sewaddle, - LEARNSETS(Sewaddle), + .palette = gMonPalette_Sewaddle, + .shinyPalette = gMonShinyPalette_Sewaddle, + .iconSprite = gMonIcon_Sewaddle, + .iconPalIndex = 1, + FOOTPRINT(Sewaddle) + .levelUpLearnset = sSewaddleLevelUpLearnset, + .teachableLearnset = sSewaddleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_SWADLOON}), }, @@ -2400,7 +2700,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 42, .baseSpAttack = 50, .baseSpDefense = 80, - .types = { TYPE_BUG, TYPE_GRASS }, + .types = MON_TYPES(TYPE_BUG, TYPE_GRASS), .catchRate = 120, .expYield = 133, .evYield_Defense = 2, @@ -2409,7 +2709,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_LEAF_GUARD, ABILITY_CHLOROPHYLL, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Swadloon"), @@ -2427,17 +2727,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Swadloon, 56, 48), + .frontPic = gMonFrontPic_Swadloon, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Swadloon, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Swadloon, 48, 48), + .backPic = gMonBackPic_Swadloon, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Swadloon), - ICON(Swadloon, 1), - .footprint = gMonFootprint_Swadloon, - LEARNSETS(Swadloon), + .palette = gMonPalette_Swadloon, + .shinyPalette = gMonShinyPalette_Swadloon, + .iconSprite = gMonIcon_Swadloon, + .iconPalIndex = 1, + FOOTPRINT(Swadloon) + .levelUpLearnset = sSwadloonLevelUpLearnset, + .teachableLearnset = sSwadloonTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_LEAVANNY}), }, @@ -2449,16 +2754,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 92, .baseSpAttack = 70, .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 80 : 70, - .types = { TYPE_BUG, TYPE_GRASS }, + .types = MON_TYPES(TYPE_BUG, TYPE_GRASS), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 250, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 225, + #else + .expYield = 221, + #endif .evYield_Attack = 3, .itemRare = ITEM_MENTAL_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_CHLOROPHYLL, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Leavanny"), @@ -2476,17 +2787,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Leavanny, 48, 64), + .frontPic = gMonFrontPic_Leavanny, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Leavanny, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Leavanny, 56, 64), + .backPic = gMonBackPic_Leavanny, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Leavanny), - ICON(Leavanny, 1), - .footprint = gMonFootprint_Leavanny, - LEARNSETS(Leavanny), + .palette = gMonPalette_Leavanny, + .shinyPalette = gMonShinyPalette_Leavanny, + .iconSprite = gMonIcon_Leavanny, + .iconPalIndex = 1, + FOOTPRINT(Leavanny) + .levelUpLearnset = sLeavannyLevelUpLearnset, + .teachableLearnset = sLeavannyTeachableLearnset, }, #endif //P_FAMILY_SEWADDLE @@ -2499,7 +2815,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 57, .baseSpAttack = 30, .baseSpDefense = 39, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 255, .expYield = 52, .evYield_Defense = 1, @@ -2508,12 +2824,12 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST }, - #else - .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST }, + #else + .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET }, + #endif .bodyColor = BODY_COLOR_RED, .speciesName = _("Venipede"), .cryId = CRY_VENIPEDE, @@ -2530,17 +2846,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 16, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Venipede, 48, 32), + .frontPic = gMonFrontPic_Venipede, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Venipede, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Venipede, 64, 40), + .backPic = gMonBackPic_Venipede, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Venipede), - ICON(Venipede, 1), - .footprint = gMonFootprint_Venipede, - LEARNSETS(Venipede), + .palette = gMonPalette_Venipede, + .shinyPalette = gMonShinyPalette_Venipede, + .iconSprite = gMonIcon_Venipede, + .iconPalIndex = 1, + FOOTPRINT(Venipede) + .levelUpLearnset = sVenipedeLevelUpLearnset, + .teachableLearnset = sVenipedeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_WHIRLIPEDE}), }, @@ -2552,7 +2873,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 47, .baseSpAttack = 40, .baseSpDefense = 79, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 120, .expYield = 126, .evYield_Defense = 2, @@ -2561,12 +2882,12 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST }, - #else - .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST }, + #else + .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET }, + #endif .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Whirlipede"), .cryId = CRY_WHIRLIPEDE, @@ -2583,17 +2904,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Whirlipede, 56, 40), + .frontPic = gMonFrontPic_Whirlipede, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Whirlipede, .frontAnimId = ANIM_TIP_MOVE_FORWARD, - BACK_PIC(Whirlipede, 64, 40), + .backPic = gMonBackPic_Whirlipede, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Whirlipede), - ICON(Whirlipede, 2), - .footprint = gMonFootprint_Whirlipede, - LEARNSETS(Whirlipede), + .palette = gMonPalette_Whirlipede, + .shinyPalette = gMonShinyPalette_Whirlipede, + .iconSprite = gMonIcon_Whirlipede, + .iconPalIndex = 2, + FOOTPRINT(Whirlipede) + .levelUpLearnset = sWhirlipedeLevelUpLearnset, + .teachableLearnset = sWhirlipedeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_SCOLIPEDE}), }, @@ -2605,21 +2931,27 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 112, .baseSpAttack = 55, .baseSpDefense = 69, - .types = { TYPE_BUG, TYPE_POISON }, + .types = MON_TYPES(TYPE_BUG, TYPE_POISON), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 243, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 218, + #else + .expYield = 214, + #endif .evYield_Speed = 3, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST }, - #else - .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST }, + #else + .abilities = { ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET }, + #endif .bodyColor = BODY_COLOR_RED, .speciesName = _("Scolipede"), .cryId = CRY_SCOLIPEDE, @@ -2636,17 +2968,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 423, .trainerOffset = 8, - FRONT_PIC(Scolipede, 64, 64), + .frontPic = gMonFrontPic_Scolipede, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Scolipede, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Scolipede, 64, 64), + .backPic = gMonBackPic_Scolipede, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Scolipede), - ICON(Scolipede, 2), - .footprint = gMonFootprint_Scolipede, - LEARNSETS(Scolipede), + .palette = gMonPalette_Scolipede, + .shinyPalette = gMonShinyPalette_Scolipede, + .iconSprite = gMonIcon_Scolipede, + .iconPalIndex = 2, + FOOTPRINT(Scolipede) + .levelUpLearnset = sScolipedeLevelUpLearnset, + .teachableLearnset = sScolipedeTeachableLearnset, }, #endif //P_FAMILY_VENIPEDE @@ -2674,7 +3011,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_FAIRY), .abilities = { ABILITY_PRANKSTER, ABILITY_INFILTRATOR, ABILITY_CHLOROPHYLL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Cottonee"), @@ -2692,17 +3029,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cottonee, 48, 32), + .frontPic = gMonFrontPic_Cottonee, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 18, .frontAnimFrames = sAnims_Cottonee, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cottonee, 64, 32), + .backPic = gMonBackPic_Cottonee, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 18, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Cottonee), - ICON(Cottonee, 1), - .footprint = gMonFootprint_Cottonee, - LEARNSETS(Cottonee), + .palette = gMonPalette_Cottonee, + .shinyPalette = gMonShinyPalette_Cottonee, + .iconSprite = gMonIcon_Cottonee, + .iconPalIndex = 1, + FOOTPRINT(Cottonee) + .levelUpLearnset = sCottoneeLevelUpLearnset, + .teachableLearnset = sCottoneeTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_WHIMSICOTT}), }, @@ -2723,7 +3065,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_FAIRY), .abilities = { ABILITY_PRANKSTER, ABILITY_INFILTRATOR, ABILITY_CHLOROPHYLL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Whimsicott"), @@ -2741,17 +3083,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Whimsicott, 56, 56), + .frontPic = gMonFrontPic_Whimsicott, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Whimsicott, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Whimsicott, 64, 48), + .backPic = gMonBackPic_Whimsicott, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Whimsicott), - ICON(Whimsicott, 1), - .footprint = gMonFootprint_Whimsicott, - LEARNSETS(Whimsicott), + .palette = gMonPalette_Whimsicott, + .shinyPalette = gMonShinyPalette_Whimsicott, + .iconSprite = gMonIcon_Whimsicott, + .iconPalIndex = 1, + FOOTPRINT(Whimsicott) + .levelUpLearnset = sWhimsicottLevelUpLearnset, + .teachableLearnset = sWhimsicottTeachableLearnset, }, #endif //P_FAMILY_COTTONEE @@ -2764,7 +3111,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 30, .baseSpAttack = 70, .baseSpDefense = 50, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 190, .expYield = 56, .evYield_SpAttack = 1, @@ -2773,7 +3120,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_OWN_TEMPO, ABILITY_LEAF_GUARD }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Petilil"), @@ -2791,51 +3138,51 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Petilil, 32, 48), + .frontPic = gMonFrontPic_Petilil, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Petilil, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .enemyMonElevation = 7, - BACK_PIC(Petilil, 40, 56), + .backPic = gMonBackPic_Petilil, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Petilil), - ICON(Petilil, 1), - .footprint = gMonFootprint_Petilil, - LEARNSETS(Petilil), + .palette = gMonPalette_Petilil, + .shinyPalette = gMonShinyPalette_Petilil, + .iconSprite = gMonIcon_Petilil, + .iconPalIndex = 1, + FOOTPRINT(Petilil) + .levelUpLearnset = sPetililLevelUpLearnset, + .teachableLearnset = sPetililTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_LILLIGANT}, {EVO_NONE, 0, SPECIES_LILLIGANT_HISUIAN}), }, -#define LILLIGANT_MISC_INFO \ - .catchRate = 75, \ - .expYield = 168, \ - .itemRare = ITEM_ABSORB_BULB, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .noFlip = TRUE, \ - .speciesName = _("Lilligant"), \ - .cryId = CRY_LILLIGANT, \ - .natDexNum = NATIONAL_DEX_LILLIGANT, \ - .footprint = gMonFootprint_Lilligant, \ - .formSpeciesIdTable = sLilligantFormSpeciesIdTable - [SPECIES_LILLIGANT] = { - LILLIGANT_MISC_INFO, .baseHP = 70, .baseAttack = 60, .baseDefense = 75, .baseSpeed = 90, .baseSpAttack = 110, .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), + .catchRate = 75, + .expYield = 168, .evYield_SpAttack = 2, + .itemRare = ITEM_ABSORB_BULB, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_OWN_TEMPO, ABILITY_LEAF_GUARD }, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Lilligant"), + .cryId = CRY_LILLIGANT, + .natDexNum = NATIONAL_DEX_LILLIGANT, .categoryName = _("Flowering"), .height = 11, .weight = 163, @@ -2848,32 +3195,51 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lilligant, 56, 64), + .frontPic = gMonFrontPic_Lilligant, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Lilligant, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Lilligant, 64, 56), + .backPic = gMonBackPic_Lilligant, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Lilligant), - ICON(Lilligant, 1), - LEARNSETS(Lilligant), + .palette = gMonPalette_Lilligant, + .shinyPalette = gMonShinyPalette_Lilligant, + .iconSprite = gMonIcon_Lilligant, + .iconPalIndex = 1, + FOOTPRINT(Lilligant) + .levelUpLearnset = sLilligantLevelUpLearnset, + .teachableLearnset = sLilligantTeachableLearnset, + .formSpeciesIdTable = sLilligantFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_LILLIGANT_HISUIAN] = { - LILLIGANT_MISC_INFO, .baseHP = 70, .baseAttack = 105, .baseDefense = 75, .baseSpeed = 105, .baseSpAttack = 50, .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FIGHTING), + .catchRate = 75, + .expYield = 168, .evYield_Attack = 1, .evYield_Speed = 1, + .itemRare = ITEM_ABSORB_BULB, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_HUSTLE, ABILITY_LEAF_GUARD }, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Lilligant"), + .cryId = CRY_LILLIGANT, + .natDexNum = NATIONAL_DEX_LILLIGANT, .categoryName = _("Spinning"), .height = 12, .weight = 192, @@ -2886,194 +3252,302 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(LilligantHisuian, 56, 64), + .frontPic = gMonFrontPic_LilligantHisuian, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_LilligantHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(LilligantHisuian, 56, 56), + .backPic = gMonBackPic_LilligantHisuian, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(LilligantHisuian), - ICON(LilligantHisuian, 1), - LEARNSETS(LilligantHisuian), + .palette = gMonPalette_LilligantHisuian, + .shinyPalette = gMonShinyPalette_LilligantHisuian, + .iconSprite = gMonIcon_LilligantHisuian, + .iconPalIndex = 1, + FOOTPRINT(Lilligant) .isHisuianForm = TRUE, + .levelUpLearnset = sLilligantHisuianLevelUpLearnset, + .teachableLearnset = sLilligantHisuianTeachableLearnset, + .formSpeciesIdTable = sLilligantFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_PETILIL #if P_FAMILY_BASCULIN -#define BASCULIN_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 92, \ - .baseDefense = 65, \ - .baseSpeed = 98, \ - .baseSpAttack = 80, \ - .baseSpDefense = 55, \ - .types = { TYPE_WATER, TYPE_WATER }, \ - .catchRate = 190, \ - .expYield = 161, \ - .evYield_Speed = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Basculin"), \ - .cryId = CRY_BASCULIN, \ - .natDexNum = NATIONAL_DEX_BASCULIN, \ - .height = 10, \ - .weight = 180, \ - .pokemonScale = 316, \ - .pokemonOffset = 7, \ - .trainerScale = 257, \ - .trainerOffset = 0, \ - .enemyMonElevation = 6, \ - .footprint = gMonFootprint_Basculin, \ - .formSpeciesIdTable = sBasculinFormSpeciesIdTable - [SPECIES_BASCULIN_RED_STRIPED] = { - BASCULIN_MISC_INFO, + .baseHP = 70, + .baseAttack = 92, + .baseDefense = 65, + .baseSpeed = 98, + .baseSpAttack = 80, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 190, + .expYield = 161, + .evYield_Speed = 2, .itemRare = ITEM_DEEP_SEA_TOOTH, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_RECKLESS, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Basculin"), + .cryId = CRY_BASCULIN, + .natDexNum = NATIONAL_DEX_BASCULIN, .categoryName = _("Hostile"), + .height = 10, + .weight = 180, .description = COMPOUND_STRING( "It used to be a common food source. The\n" "meat of red Basculin is on the fatty side\n" "and it's more popular with the youth.\n" "Its temperament is vicious and aggressive."), - FRONT_PIC(BasculinRedStriped, 56, 40), + .pokemonScale = 316, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_BasculinRedStriped, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Basculin, .frontAnimId = ANIM_TIP_MOVE_FORWARD, - BACK_PIC(BasculinRedStriped, 64, 48), + .enemyMonElevation = 6, + .backPic = gMonBackPic_BasculinRedStriped, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 16, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(BasculinRedStriped), - ICON(BasculinRedStriped, 1), - LEARNSETS(Basculin), + .palette = gMonPalette_BasculinRedStriped, + .shinyPalette = gMonShinyPalette_BasculinRedStriped, + .iconSprite = gMonIcon_BasculinRedStriped, + .iconPalIndex = 1, + FOOTPRINT(Basculin) + .levelUpLearnset = sBasculinLevelUpLearnset, + .teachableLearnset = sBasculinTeachableLearnset, + .formSpeciesIdTable = sBasculinFormSpeciesIdTable, }, [SPECIES_BASCULIN_BLUE_STRIPED] = { - BASCULIN_MISC_INFO, + .baseHP = 70, + .baseAttack = 92, + .baseDefense = 65, + .baseSpeed = 98, + .baseSpAttack = 80, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 190, + .expYield = 161, + .evYield_Speed = 2, .itemRare = ITEM_DEEP_SEA_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_ROCK_HEAD, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Basculin"), + .cryId = CRY_BASCULIN, + .natDexNum = NATIONAL_DEX_BASCULIN, .categoryName = _("Hostile"), + .height = 10, + .weight = 180, .description = COMPOUND_STRING( "They form schools with others of the same\n" "color. The greatest foe of a school of blue\n" "Basculin is a school of red Basculin.\n" "Its flavor is light and inoffensive."), - FRONT_PIC(BasculinBlueStriped, 56, 40), + .pokemonScale = 316, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_BasculinBlueStriped, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Basculin, .frontAnimId = ANIM_TIP_MOVE_FORWARD, - BACK_PIC(BasculinBlueStriped, 64, 48), + .enemyMonElevation = 6, + .backPic = gMonBackPic_BasculinBlueStriped, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 16, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(BasculinBlueStriped), - ICON(BasculinBlueStriped, 0), - LEARNSETS(Basculin), + .palette = gMonPalette_BasculinBlueStriped, + .shinyPalette = gMonShinyPalette_BasculinBlueStriped, + .iconSprite = gMonIcon_BasculinBlueStriped, + .iconPalIndex = 0, + FOOTPRINT(Basculin) + .levelUpLearnset = sBasculinLevelUpLearnset, + .teachableLearnset = sBasculinTeachableLearnset, + .formSpeciesIdTable = sBasculinFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_BASCULIN_WHITE_STRIPED] = { - BASCULIN_MISC_INFO, + .baseHP = 70, + .baseAttack = 92, + .baseDefense = 65, + .baseSpeed = 98, + .baseSpAttack = 80, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 190, + .expYield = 161, + .evYield_Speed = 2, .itemRare = ITEM_DEEP_SEA_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_RATTLED, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Basculin"), + .cryId = CRY_BASCULIN, + .natDexNum = NATIONAL_DEX_BASCULIN, .categoryName = _("Mellow"), + .height = 10, + .weight = 180, .description = COMPOUND_STRING( "While this ancient form of Basculin shares\n" "a vast array of qualities with other forms,\n" "it differs in several respects, including\n" "demeanor, being much gentler than others."), - FRONT_PIC(BasculinWhiteStriped, 48, 40), + .pokemonScale = 316, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_BasculinWhiteStriped, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Basculin, .frontAnimId = ANIM_TIP_MOVE_FORWARD, - BACK_PIC(BasculinWhiteStriped, 64, 40), + .enemyMonElevation = 6, + .backPic = gMonBackPic_BasculinWhiteStriped, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 16, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(BasculinWhiteStriped), - ICON(BasculinWhiteStriped, 0), - LEARNSETS(BasculinWhiteStriped), - .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_BASCULEGION_MALE}, - {EVO_NONE, 0, SPECIES_BASCULEGION_FEMALE}), + .palette = gMonPalette_BasculinWhiteStriped, + .shinyPalette = gMonShinyPalette_BasculinWhiteStriped, + .iconSprite = gMonIcon_BasculinWhiteStriped, + .iconPalIndex = 0, + FOOTPRINT(Basculin) + .levelUpLearnset = sBasculinWhiteStripedLevelUpLearnset, + .teachableLearnset = sBasculinWhiteStripedTeachableLearnset, + .formSpeciesIdTable = sBasculinFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_LEVEL_RECOIL_DAMAGE_MALE, 294, SPECIES_BASCULEGION_MALE}, + {EVO_LEVEL_RECOIL_DAMAGE_FEMALE, 294, SPECIES_BASCULEGION_FEMALE}), }, -#define BASCULEGION_MISC_INFO \ - .types = { TYPE_WATER, TYPE_GHOST }, \ - .catchRate = 45, \ - .expYield = 265, \ - .evYield_HP = 3, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, \ - .abilities = { ABILITY_SWIFT_SWIM, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Bsculegion"), \ - .cryId = CRY_BASCULEGION, \ - .natDexNum = NATIONAL_DEX_BASCULEGION, \ - .categoryName = _("Big Fish"), \ - .height = 30, \ - .weight = 1100, \ - .pokemonScale = 275, \ - .pokemonOffset = 7, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontAnimFrames = sAnims_Basculegion, \ - .frontPicYOffset = 0, \ - .enemyMonElevation = 5, \ - .backPicYOffset = 0, \ - LEARNSETS(Basculegion), \ - .formSpeciesIdTable = sBasculegionFormSpeciesIdTable - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.footprint = gMonFootprint_Basculegion, - [SPECIES_BASCULEGION_MALE] = { - BASCULEGION_MISC_INFO, .baseHP = 120, .baseAttack = 112, .baseDefense = 65, .baseSpeed = 78, .baseSpAttack = 80, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_WATER, TYPE_GHOST), + .catchRate = 45, + .expYield = 265, + .evYield_HP = 3, .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_SWIFT_SWIM, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Bsculegion"), + .cryId = CRY_BASCULEGION, + .natDexNum = NATIONAL_DEX_BASCULEGION, + .categoryName = _("Big Fish"), + .height = 30, + .weight = 1100, .description = COMPOUND_STRING( "Clads itself in the souls of comrades that\n" "perished before fulfilling their goals of\n" "journeying upstream. No other species in\n" "all Hisui's rivers is Basculegion's equal."), - FRONT_PIC(BasculegionMale, 64, 64), - BACK_PIC(BasculegionMale, 64, 64), - PALETTES(BasculegionMale), - ICON(BasculegionMale, 1), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_BasculegionMale, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Basculegion, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 5, + .backPic = gMonBackPic_BasculegionMale, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_BasculegionMale, + .shinyPalette = gMonShinyPalette_BasculegionMale, + .iconSprite = gMonIcon_BasculegionMale, + .iconPalIndex = 1, + //FOOTPRINT(Basculegion), + .levelUpLearnset = sBasculegionLevelUpLearnset, + .teachableLearnset = sBasculegionTeachableLearnset, + .formSpeciesIdTable = sBasculegionFormSpeciesIdTable, }, [SPECIES_BASCULEGION_FEMALE] = { - BASCULEGION_MISC_INFO, .baseHP = 120, .baseAttack = 92, .baseDefense = 65, .baseSpeed = 78, .baseSpAttack = 100, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_WATER, TYPE_GHOST), + .catchRate = 45, + .expYield = 265, + .evYield_HP = 3, .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_SWIFT_SWIM, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Bsculegion"), + .cryId = CRY_BASCULEGION, + .natDexNum = NATIONAL_DEX_BASCULEGION, + .categoryName = _("Big Fish"), + .height = 30, + .weight = 1100, .description = COMPOUND_STRING( "The souls of its comrades cloak its\n" "body and propel it effortlessly\n" "through even raging rapids."), - FRONT_PIC(BasculegionFemale, 64, 64), - BACK_PIC(BasculegionFemale, 64, 64), - PALETTES(BasculegionFemale), - ICON(BasculegionFemale, 0), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_BasculegionFemale, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Basculegion, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 5, + .backPic = gMonBackPic_BasculegionFemale, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_BasculegionFemale, + .shinyPalette = gMonShinyPalette_BasculegionFemale, + .iconSprite = gMonIcon_BasculegionFemale, + .iconPalIndex = 0, + //FOOTPRINT(Basculegion), + .levelUpLearnset = sBasculegionLevelUpLearnset, + .teachableLearnset = sBasculegionTeachableLearnset, + .formSpeciesIdTable = sBasculegionFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_BASCULIN @@ -3087,7 +3561,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_GROUND, TYPE_DARK }, + .types = MON_TYPES(TYPE_GROUND, TYPE_DARK), .catchRate = 180, .expYield = 58, .evYield_Attack = 1, @@ -3096,7 +3570,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_MOXIE, ABILITY_ANGER_POINT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Sandile"), @@ -3114,17 +3588,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sandile, 48, 32), + .frontPic = gMonFrontPic_Sandile, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 18, .frontAnimFrames = sAnims_Sandile, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sandile, 64, 32), + .backPic = gMonBackPic_Sandile, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 18, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Sandile), - ICON(Sandile, 1), - .footprint = gMonFootprint_Sandile, - LEARNSETS(Sandile), + .palette = gMonPalette_Sandile, + .shinyPalette = gMonShinyPalette_Sandile, + .iconSprite = gMonIcon_Sandile, + .iconPalIndex = 1, + FOOTPRINT(Sandile) + .levelUpLearnset = sSandileLevelUpLearnset, + .teachableLearnset = sSandileTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 29, SPECIES_KROKOROK}), }, @@ -3136,7 +3615,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 74, .baseSpAttack = 45, .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_DARK }, + .types = MON_TYPES(TYPE_GROUND, TYPE_DARK), .catchRate = 90, .expYield = 123, .evYield_Attack = 2, @@ -3145,7 +3624,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_MOXIE, ABILITY_ANGER_POINT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Krokorok"), @@ -3163,17 +3642,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Krokorok, 64, 56), + .frontPic = gMonFrontPic_Krokorok, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Krokorok, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Krokorok, 56, 64), + .backPic = gMonBackPic_Krokorok, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Krokorok), - ICON(Krokorok, 1), - .footprint = gMonFootprint_Krokorok, - LEARNSETS(Krokorok), + .palette = gMonPalette_Krokorok, + .shinyPalette = gMonShinyPalette_Krokorok, + .iconSprite = gMonIcon_Krokorok, + .iconPalIndex = 1, + FOOTPRINT(Krokorok) + .levelUpLearnset = sKrokorokLevelUpLearnset, + .teachableLearnset = sKrokorokTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_KROOKODILE}), }, @@ -3185,16 +3669,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 92, .baseSpAttack = 65, .baseSpDefense = 70, - .types = { TYPE_GROUND, TYPE_DARK }, + .types = MON_TYPES(TYPE_GROUND, TYPE_DARK), .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 260, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 234, + #else + .expYield = 229, + #endif .evYield_Attack = 3, .itemCommon = ITEM_BLACK_GLASSES, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_MOXIE, ABILITY_ANGER_POINT }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Krookodile"), @@ -3212,49 +3702,49 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Krookodile, 64, 64), + .frontPic = gMonFrontPic_Krookodile, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Krookodile, .frontAnimId = ANIM_SWING_CONCAVE_FAST_SHORT, - BACK_PIC(Krookodile, 64, 56), + .backPic = gMonBackPic_Krookodile, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Krookodile), - ICON(Krookodile, 0), - .footprint = gMonFootprint_Krookodile, - LEARNSETS(Krookodile), + .palette = gMonPalette_Krookodile, + .shinyPalette = gMonShinyPalette_Krookodile, + .iconSprite = gMonIcon_Krookodile, + .iconPalIndex = 0, + FOOTPRINT(Krookodile) + .levelUpLearnset = sKrookodileLevelUpLearnset, + .teachableLearnset = sKrookodileTeachableLearnset, }, #endif //P_FAMILY_SANDILE #if P_FAMILY_DARUMAKA -#define DARUMAKA_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 90, \ - .baseDefense = 45, \ - .baseSpeed = 50, \ - .baseSpAttack = 15, \ - .baseSpDefense = 45, \ - .catchRate = 120, \ - .expYield = 63, \ - .evYield_Attack = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_HUSTLE, ABILITY_NONE, ABILITY_INNER_FOCUS }, \ - .speciesName = _("Darumaka"), \ - .cryId = CRY_DARUMAKA, \ - .natDexNum = NATIONAL_DEX_DARUMAKA, \ - .categoryName = _("Zen Charm"), \ - .footprint = gMonFootprint_Darumaka, \ - .formSpeciesIdTable = sDarumakaFormSpeciesIdTable - [SPECIES_DARUMAKA] = { - DARUMAKA_MISC_INFO, - .types = { TYPE_FIRE, TYPE_FIRE }, + .baseHP = 70, + .baseAttack = 90, + .baseDefense = 45, + .baseSpeed = 50, + .baseSpAttack = 15, + .baseSpDefense = 45, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 120, + .expYield = 63, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_HUSTLE, ABILITY_NONE, ABILITY_INNER_FOCUS }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Darumaka"), + .cryId = CRY_DARUMAKA, + .natDexNum = NATIONAL_DEX_DARUMAKA, + .categoryName = _("Zen Charm"), .height = 6, .weight = 375, .description = COMPOUND_STRING( @@ -3266,116 +3756,157 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Darumaka, 40, 40), + .frontPic = gMonFrontPic_Darumaka, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Darumaka, .frontAnimId = ANIM_SWING_CONCAVE, - BACK_PIC(Darumaka, 56, 48), + .backPic = gMonBackPic_Darumaka, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Darumaka), - ICON(Darumaka, 0), - LEARNSETS(Darumaka), + .palette = gMonPalette_Darumaka, + .shinyPalette = gMonShinyPalette_Darumaka, + .iconSprite = gMonIcon_Darumaka, + .iconPalIndex = 0, + FOOTPRINT(Darumaka) + .levelUpLearnset = sDarumakaLevelUpLearnset, + .teachableLearnset = sDarumakaTeachableLearnset, + .formSpeciesIdTable = sDarumakaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_DARMANITAN_STANDARD_MODE}), }, -#define DARMANITAN_MISC_INFO \ - .catchRate = 60, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .speciesName = _("Darmanitan"), \ - .cryId = CRY_DARMANITAN, \ - .natDexNum = NATIONAL_DEX_DARMANITAN, \ - .footprint = gMonFootprint_Darmanitan, \ - .formSpeciesIdTable = sDarmanitanFormSpeciesIdTable - -#define DARMANITAN_STANDARD_MISC_INFO \ - .baseHP = 105, \ - .baseAttack = 140, \ - .baseDefense = 55, \ - .baseSpeed = 95, \ - .baseSpAttack = 30, \ - .baseSpDefense = 55, \ - .expYield = 168, \ - .evYield_Attack = 2, \ - DARMANITAN_MISC_INFO - -#define DARMANITAN_ZEN_MODE_MISC_INFO \ - .expYield = 189, \ - .evYield_SpAttack = 2, \ - .categoryName = _("Blazing"), \ - DARMANITAN_MISC_INFO - -#define DARMANITAN_UNOVAN_MISC_INFO \ - .abilities = { ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_ZEN_MODE },\ - .height = 13, \ - .weight = 929, \ - .pokemonScale = 272, \ - .pokemonOffset = 3, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - LEARNSETS(Darmanitan), \ - .formChangeTable = sDarmanitanFormChangeTable - [SPECIES_DARMANITAN_STANDARD_MODE] = { - DARMANITAN_STANDARD_MISC_INFO, - DARMANITAN_UNOVAN_MISC_INFO, - .types = { TYPE_FIRE, TYPE_FIRE }, + .baseHP = 105, + .baseAttack = 140, + .baseDefense = 55, + .baseSpeed = 95, + .baseSpAttack = 30, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 60, + .expYield = 168, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_ZEN_MODE }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Darmanitan"), + .cryId = CRY_DARMANITAN, + .natDexNum = NATIONAL_DEX_DARMANITAN, .categoryName = _("Blazing"), + .height = 13, + .weight = 929, .description = COMPOUND_STRING( "When one is injured in a fierce battle,\n" "it transforms into a stone statue.\n" "Then it meditates and sharpens its\n" "mind and fights on mentally."), - FRONT_PIC(DarmanitanStandardMode, 56, 64), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_DarmanitanStandardMode, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_DarmanitanStandardMode, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(DarmanitanStandardMode, 64, 64), + .backPic = gMonBackPic_DarmanitanStandardMode, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(DarmanitanStandardMode), - ICON(DarmanitanStandardMode, 0), + .palette = gMonPalette_DarmanitanStandardMode, + .shinyPalette = gMonShinyPalette_DarmanitanStandardMode, + .iconSprite = gMonIcon_DarmanitanStandardMode, + .iconPalIndex = 0, + FOOTPRINT(Darmanitan) + .levelUpLearnset = sDarmanitanLevelUpLearnset, + .teachableLearnset = sDarmanitanTeachableLearnset, + .formSpeciesIdTable = sDarmanitanFormSpeciesIdTable, + .formChangeTable = sDarmanitanFormChangeTable, }, [SPECIES_DARMANITAN_ZEN_MODE] = { - DARMANITAN_ZEN_MODE_MISC_INFO, - DARMANITAN_UNOVAN_MISC_INFO, .baseHP = 105, .baseAttack = 30, .baseDefense = 105, .baseSpeed = 55, .baseSpAttack = 140, .baseSpDefense = 105, - .types = { TYPE_FIRE, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_FIRE, TYPE_PSYCHIC), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_7) ? 189 : 168, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_ZEN_MODE }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Darmanitan"), + .cryId = CRY_DARMANITAN, + .natDexNum = NATIONAL_DEX_DARMANITAN, + .categoryName = _("Blazing"), + .height = 13, + .weight = 929, .description = COMPOUND_STRING( "When wounded, it stops moving. It\n" "goes as still as stone to meditate,\n" "sharpening its mind and spirit."), - FRONT_PIC(DarmanitanZenMode, 40, 40), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_DarmanitanZenMode, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_DarmanitanZenMode, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(DarmanitanZenMode, 56, 48), + .backPic = gMonBackPic_DarmanitanZenMode, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(DarmanitanZenMode), - ICON(DarmanitanZenMode, 0), + .palette = gMonPalette_DarmanitanZenMode, + .shinyPalette = gMonShinyPalette_DarmanitanZenMode, + .iconSprite = gMonIcon_DarmanitanZenMode, + .iconPalIndex = 0, + FOOTPRINT(Darmanitan) + .levelUpLearnset = sDarmanitanLevelUpLearnset, + .teachableLearnset = sDarmanitanTeachableLearnset, + .formSpeciesIdTable = sDarmanitanFormSpeciesIdTable, + .formChangeTable = sDarmanitanFormChangeTable, }, #if P_GALARIAN_FORMS [SPECIES_DARUMAKA_GALARIAN] = { - DARUMAKA_MISC_INFO, - .types = { TYPE_ICE, TYPE_ICE }, + .baseHP = 70, + .baseAttack = 90, + .baseDefense = 45, + .baseSpeed = 50, + .baseSpAttack = 15, + .baseSpDefense = 45, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 120, + .expYield = 63, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_HUSTLE, ABILITY_NONE, ABILITY_INNER_FOCUS }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Darumaka"), + .cryId = CRY_DARUMAKA, + .natDexNum = NATIONAL_DEX_DARUMAKA, + .categoryName = _("Zen Charm"), .height = 7, .weight = 400, .description = COMPOUND_STRING( @@ -3387,80 +3918,135 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(DarumakaGalarian, 40, 40), + .frontPic = gMonFrontPic_DarumakaGalarian, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_DarumakaGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DarumakaGalarian, 56, 48), + .backPic = gMonBackPic_DarumakaGalarian, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DarumakaGalarian), - ICON(DarumakaGalarian, 0), - LEARNSETS(DarumakaGalarian), + .palette = gMonPalette_DarumakaGalarian, + .shinyPalette = gMonShinyPalette_DarumakaGalarian, + .iconSprite = gMonIcon_DarumakaGalarian, + .iconPalIndex = 0, + FOOTPRINT(Darumaka) .isGalarianForm = TRUE, + .levelUpLearnset = sDarumakaGalarianLevelUpLearnset, + .teachableLearnset = sDarumakaGalarianTeachableLearnset, + .formSpeciesIdTable = sDarumakaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE}), }, -#define DARMANITAN_GALARIAN_MISC_INFO \ - .abilities = { ABILITY_GORILLA_TACTICS, ABILITY_NONE, ABILITY_ZEN_MODE },\ - .bodyColor = BODY_COLOR_WHITE, \ - .height = 17, \ - .weight = 1200, \ - .pokemonScale = 272, \ - .pokemonOffset = 3, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - LEARNSETS(DarmanitanGalarian), \ - .formChangeTable = sDarmanitanGalarianFormChangeTable, \ - .isGalarianForm = TRUE - [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE] = { - DARMANITAN_GALARIAN_MISC_INFO, - DARMANITAN_STANDARD_MISC_INFO, - .types = { TYPE_ICE, TYPE_ICE }, + .baseHP = 105, + .baseAttack = 140, + .baseDefense = 55, + .baseSpeed = 95, + .baseSpAttack = 30, + .baseSpDefense = 55, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 60, + .expYield = 168, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_GORILLA_TACTICS, ABILITY_NONE, ABILITY_ZEN_MODE }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Darmanitan"), + .cryId = CRY_DARMANITAN, + .natDexNum = NATIONAL_DEX_DARMANITAN, .categoryName = _("Zen Charm"), + .height = 17, + .weight = 1200, .description = COMPOUND_STRING( "On days when blizzards blow\n" "through, it comes down to where people\n" "live. It stashes food in the snowball on\n" "its head, taking it home for later."), - FRONT_PIC(DarmanitanGalarianStandardMode, 56, 64), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_DarmanitanGalarianStandardMode, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DarmanitanGalarianStandardMode, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DarmanitanGalarianStandardMode, 56, 64), + .backPic = gMonBackPic_DarmanitanGalarianStandardMode, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DarmanitanGalarianStandardMode), - ICON(DarmanitanGalarianStandardMode, 0), + .palette = gMonPalette_DarmanitanGalarianStandardMode, + .shinyPalette = gMonShinyPalette_DarmanitanGalarianStandardMode, + .iconSprite = gMonIcon_DarmanitanGalarianStandardMode, + .iconPalIndex = 0, + FOOTPRINT(Darmanitan) + .isGalarianForm = TRUE, + .levelUpLearnset = sDarmanitanGalarianLevelUpLearnset, + .teachableLearnset = sDarmanitanGalarianTeachableLearnset, + .formSpeciesIdTable = sDarmanitanFormSpeciesIdTable, + .formChangeTable = sDarmanitanGalarianFormChangeTable, }, [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE] = { - DARMANITAN_GALARIAN_MISC_INFO, - DARMANITAN_ZEN_MODE_MISC_INFO, .baseHP = 105, .baseAttack = 160, .baseDefense = 55, .baseSpeed = 135, .baseSpAttack = 30, .baseSpDefense = 55, - .types = { TYPE_ICE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_ICE, TYPE_FIRE), + .catchRate = 60, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_7) ? 189 : 168, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_GORILLA_TACTICS, ABILITY_NONE, ABILITY_ZEN_MODE }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Darmanitan"), + .cryId = CRY_DARMANITAN, + .natDexNum = NATIONAL_DEX_DARMANITAN, + .categoryName = _("Blazing"), + .height = 17, + .weight = 1200, .description = COMPOUND_STRING( "Darmanitan takes this form when\n" "enraged. It won't stop spewing flames\n" "until its rage has settled, even if\n" "its body starts to melt."), - FRONT_PIC(DarmanitanGalarianZenMode, 48, 64), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_DarmanitanGalarianZenMode, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_DarmanitanGalarianZenMode, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DarmanitanGalarianZenMode, 64, 64), + .backPic = gMonBackPic_DarmanitanGalarianZenMode, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DarmanitanGalarianZenMode), - ICON(DarmanitanGalarianZenMode, 0), + .palette = gMonPalette_DarmanitanGalarianZenMode, + .shinyPalette = gMonShinyPalette_DarmanitanGalarianZenMode, + .iconSprite = gMonIcon_DarmanitanGalarianZenMode, + .iconPalIndex = 0, + FOOTPRINT(Darmanitan) + .isGalarianForm = TRUE, + .levelUpLearnset = sDarmanitanGalarianLevelUpLearnset, + .teachableLearnset = sDarmanitanGalarianTeachableLearnset, + .formSpeciesIdTable = sDarmanitanFormSpeciesIdTable, + .formChangeTable = sDarmanitanGalarianFormChangeTable, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_DARUMAKA @@ -3474,7 +4060,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 106, .baseSpDefense = 67, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 255, .expYield = 161, .evYield_SpAttack = 2, @@ -3483,7 +4069,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_WATER_ABSORB, ABILITY_CHLOROPHYLL, ABILITY_STORM_DRAIN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Maractus"), @@ -3501,17 +4087,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 6, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Maractus, 56, 64), + .frontPic = gMonFrontPic_Maractus, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Maractus, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Maractus, 64, 64), + .backPic = gMonBackPic_Maractus, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Maractus), - ICON(Maractus, 1), - .footprint = gMonFootprint_Maractus, - LEARNSETS(Maractus), + .palette = gMonPalette_Maractus, + .shinyPalette = gMonShinyPalette_Maractus, + .iconSprite = gMonIcon_Maractus, + .iconPalIndex = 1, + FOOTPRINT(Maractus) + .levelUpLearnset = sMaractusLevelUpLearnset, + .teachableLearnset = sMaractusTeachableLearnset, }, #endif //P_FAMILY_MARACTUS @@ -3524,7 +4115,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 55, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_BUG, TYPE_ROCK }, + .types = MON_TYPES(TYPE_BUG, TYPE_ROCK), .catchRate = 190, .expYield = 65, .evYield_Defense = 1, @@ -3533,7 +4124,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_MINERAL), .abilities = { ABILITY_STURDY, ABILITY_SHELL_ARMOR, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Dwebble"), @@ -3551,17 +4142,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dwebble, 40, 40), + .frontPic = gMonFrontPic_Dwebble, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Dwebble, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dwebble, 56, 32), + .backPic = gMonBackPic_Dwebble, + .backPicSize = MON_COORDS_SIZE(56, 32), .backPicYOffset = 17, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Dwebble), - ICON(Dwebble, 0), - .footprint = gMonFootprint_Dwebble, - LEARNSETS(Dwebble), + .palette = gMonPalette_Dwebble, + .shinyPalette = gMonShinyPalette_Dwebble, + .iconSprite = gMonIcon_Dwebble, + .iconPalIndex = 0, + FOOTPRINT(Dwebble) + .levelUpLearnset = sDwebbleLevelUpLearnset, + .teachableLearnset = sDwebbleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_CRUSTLE}), }, @@ -3573,16 +4169,16 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 45, .baseSpAttack = 65, .baseSpDefense = 75, - .types = { TYPE_BUG, TYPE_ROCK }, + .types = MON_TYPES(TYPE_BUG, TYPE_ROCK), .catchRate = 75, - .expYield = 170, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_7) ? 170 : 166, .evYield_Defense = 2, .itemRare = ITEM_HARD_STONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_MINERAL), .abilities = { ABILITY_STURDY, ABILITY_SHELL_ARMOR, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Crustle"), @@ -3600,17 +4196,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Crustle, 64, 64), + .frontPic = gMonFrontPic_Crustle, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Crustle, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Crustle, 64, 56), + .backPic = gMonBackPic_Crustle, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Crustle), - ICON(Crustle, 2), - .footprint = gMonFootprint_Crustle, - LEARNSETS(Crustle), + .palette = gMonPalette_Crustle, + .shinyPalette = gMonShinyPalette_Crustle, + .iconSprite = gMonIcon_Crustle, + .iconPalIndex = 2, + FOOTPRINT(Crustle) + .levelUpLearnset = sCrustleLevelUpLearnset, + .teachableLearnset = sCrustleTeachableLearnset, }, #endif //P_FAMILY_DWEBBLE @@ -3623,7 +4224,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 48, .baseSpAttack = 35, .baseSpDefense = 70, - .types = { TYPE_DARK, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FIGHTING), .catchRate = 180, .expYield = 70, .evYield_Attack = 1, @@ -3632,7 +4233,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = 35, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_DRAGON), .abilities = { ABILITY_SHED_SKIN, ABILITY_MOXIE, ABILITY_INTIMIDATE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Scraggy"), @@ -3650,17 +4251,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Scraggy, 40, 48), + .frontPic = gMonFrontPic_Scraggy, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Scraggy, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Scraggy, 48, 56), + .backPic = gMonBackPic_Scraggy, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Scraggy), - ICON(Scraggy, 2), - .footprint = gMonFootprint_Scraggy, - LEARNSETS(Scraggy), + .palette = gMonPalette_Scraggy, + .shinyPalette = gMonShinyPalette_Scraggy, + .iconSprite = gMonIcon_Scraggy, + .iconPalIndex = 2, + FOOTPRINT(Scraggy) + .levelUpLearnset = sScraggyLevelUpLearnset, + .teachableLearnset = sScraggyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 39, SPECIES_SCRAFTY}), }, @@ -3672,7 +4278,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 58, .baseSpAttack = 45, .baseSpDefense = 115, - .types = { TYPE_DARK, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FIGHTING), .catchRate = 90, .expYield = 171, .evYield_Defense = 1, @@ -3682,7 +4288,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_DRAGON), .abilities = { ABILITY_SHED_SKIN, ABILITY_MOXIE, ABILITY_INTIMIDATE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Scrafty"), @@ -3700,17 +4306,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Scrafty, 48, 56), + .frontPic = gMonFrontPic_Scrafty, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Scrafty, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Scrafty, 48, 64), + .backPic = gMonBackPic_Scrafty, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_GROW, - PALETTES(Scrafty), - ICON(Scrafty, 0), - .footprint = gMonFootprint_Scrafty, - LEARNSETS(Scrafty), + .palette = gMonPalette_Scrafty, + .shinyPalette = gMonShinyPalette_Scrafty, + .iconSprite = gMonIcon_Scrafty, + .iconPalIndex = 0, + FOOTPRINT(Scrafty) + .levelUpLearnset = sScraftyLevelUpLearnset, + .teachableLearnset = sScraftyTeachableLearnset, }, #endif //P_FAMILY_SCRAGGY @@ -3723,7 +4334,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 97, .baseSpAttack = 103, .baseSpDefense = 80, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), .catchRate = 45, .expYield = 172, .evYield_SpAttack = 2, @@ -3731,7 +4342,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_WONDER_SKIN, ABILITY_MAGIC_GUARD, ABILITY_TINTED_LENS }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Sigilyph"), @@ -3749,73 +4360,80 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Sigilyph, 64, 64), + .frontPic = gMonFrontPic_Sigilyph, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Sigilyph, .frontAnimId = ANIM_FIGURE_8, .enemyMonElevation = 7, - BACK_PIC(Sigilyph, 64, 64), + .backPic = gMonBackPic_Sigilyph, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Sigilyph), - ICON(Sigilyph, 0), - .footprint = gMonFootprint_Sigilyph, - LEARNSETS(Sigilyph), + .palette = gMonPalette_Sigilyph, + .shinyPalette = gMonShinyPalette_Sigilyph, + .iconSprite = gMonIcon_Sigilyph, + .iconPalIndex = 0, + FOOTPRINT(Sigilyph) + .levelUpLearnset = sSigilyphLevelUpLearnset, + .teachableLearnset = sSigilyphTeachableLearnset, }, #endif //P_FAMILY_SIGILYPH #if P_FAMILY_YAMASK -#define YAMASK_MISC_INFO \ - .catchRate = 190, \ - .expYield = 61, \ - .evYield_Defense = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Yamask"), \ - .cryId = CRY_YAMASK, \ - .natDexNum = NATIONAL_DEX_YAMASK, \ - .categoryName = _("Spirit"), \ - .height = 5, \ - .weight = 15, \ - .pokemonScale = 432, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Yamask, \ - .formSpeciesIdTable = sYamaskFormSpeciesIdTable - [SPECIES_YAMASK] = { - YAMASK_MISC_INFO, .baseHP = 38, .baseAttack = 30, .baseDefense = 85, .baseSpeed = 30, .baseSpAttack = 55, .baseSpDefense = 65, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 190, + .expYield = 61, + .evYield_Defense = 1, .itemRare = ITEM_SPELL_TAG, - .abilities = { ABILITY_MUMMY, ABILITY_NONE }, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_MUMMY, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Yamask"), + .cryId = CRY_YAMASK, + .natDexNum = NATIONAL_DEX_YAMASK, + .categoryName = _("Spirit"), + .height = 5, + .weight = 15, .description = COMPOUND_STRING( "These Pokémon arose from the spirits\n" "of people interred in graves in past ages.\n" "Each of them carries a mask that used\n" "to be its face when it was human."), - FRONT_PIC(Yamask, 48, 40), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Yamask, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Yamask, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 10, - BACK_PIC(Yamask, 40, 40), + .backPic = gMonBackPic_Yamask, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Yamask), - ICON(Yamask, 0), - LEARNSETS(Yamask), + .palette = gMonPalette_Yamask, + .shinyPalette = gMonShinyPalette_Yamask, + .iconSprite = gMonIcon_Yamask, + .iconPalIndex = 0, + FOOTPRINT(Yamask) + .levelUpLearnset = sYamaskLevelUpLearnset, + .teachableLearnset = sYamaskTeachableLearnset, + .formSpeciesIdTable = sYamaskFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_COFAGRIGUS}), }, @@ -3827,7 +4445,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 30, .baseSpAttack = 95, .baseSpDefense = 105, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 90, .expYield = 169, .evYield_Defense = 2, @@ -3836,8 +4454,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_MUMMY, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_MUMMY, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Cofagrigus"), .cryId = CRY_COFAGRIGUS, @@ -3854,48 +4472,78 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 0, .trainerScale = 290, .trainerOffset = 1, - FRONT_PIC(Cofagrigus, 64, 64), + .frontPic = gMonFrontPic_Cofagrigus, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cofagrigus, .frontAnimId = ANIM_GLOW_BLACK, - BACK_PIC(Cofagrigus, 56, 56), + .backPic = gMonBackPic_Cofagrigus, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Cofagrigus), - ICON(Cofagrigus, 0), - .footprint = gMonFootprint_Cofagrigus, - LEARNSETS(Cofagrigus), + .palette = gMonPalette_Cofagrigus, + .shinyPalette = gMonShinyPalette_Cofagrigus, + .iconSprite = gMonIcon_Cofagrigus, + .iconPalIndex = 0, + FOOTPRINT(Cofagrigus) + .levelUpLearnset = sCofagrigusLevelUpLearnset, + .teachableLearnset = sCofagrigusTeachableLearnset, }, #if P_GALARIAN_FORMS [SPECIES_YAMASK_GALARIAN] = { - YAMASK_MISC_INFO, .baseHP = 38, .baseAttack = 55, .baseDefense = 85, .baseSpeed = 30, .baseSpAttack = 30, .baseSpDefense = 65, - .types = { TYPE_GROUND, TYPE_GHOST }, - .abilities = { ABILITY_WANDERING_SPIRIT, ABILITY_NONE }, + .types = MON_TYPES(TYPE_GROUND, TYPE_GHOST), + .catchRate = 190, + .expYield = 61, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_WANDERING_SPIRIT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Yamask"), + .cryId = CRY_YAMASK, + .natDexNum = NATIONAL_DEX_YAMASK, + .categoryName = _("Spirit"), + .height = 5, + .weight = 15, .description = COMPOUND_STRING( "A clay slab with cursed engravings\n" "took possession of a Yamask. The\n" "slab is said to be absorbing the\n" "Yamask's dark power."), - FRONT_PIC(YamaskGalarian, 48, 40), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_YamaskGalarian, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_YamaskGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 4, - BACK_PIC(YamaskGalarian, 40, 40), + .backPic = gMonBackPic_YamaskGalarian, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(YamaskGalarian), - ICON(YamaskGalarian, 2), - LEARNSETS(YamaskGalarian), + .palette = gMonPalette_YamaskGalarian, + .shinyPalette = gMonShinyPalette_YamaskGalarian, + .iconSprite = gMonIcon_YamaskGalarian, + .iconPalIndex = 2, + FOOTPRINT(Yamask) .isGalarianForm = TRUE, + .levelUpLearnset = sYamaskGalarianLevelUpLearnset, + .teachableLearnset = sYamaskGalarianTeachableLearnset, + .formSpeciesIdTable = sYamaskFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_SCRIPT_TRIGGER_DMG, 49, SPECIES_RUNERIGUS}), }, @@ -3907,7 +4555,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 30, .baseSpAttack = 50, .baseSpDefense = 105, - .types = { TYPE_GROUND, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GROUND, TYPE_GHOST), .catchRate = 90, .expYield = 169, .evYield_Defense = 2, @@ -3915,8 +4563,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_WANDERING_SPIRIT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_WANDERING_SPIRIT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Runerigus"), .cryId = CRY_RUNERIGUS, @@ -3932,18 +4580,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Runerigus, 64, 64), + .frontPic = gMonFrontPic_Runerigus, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Runerigus, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(Runerigus, 64, 48), + .backPic = gMonBackPic_Runerigus, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Runerigus), - ICON(Runerigus, 2), - .footprint = gMonFootprint_Runerigus, - LEARNSETS(Runerigus), + .palette = gMonPalette_Runerigus, + .shinyPalette = gMonShinyPalette_Runerigus, + .iconSprite = gMonIcon_Runerigus, + .iconPalIndex = 2, + FOOTPRINT(Runerigus) + .levelUpLearnset = sRunerigusLevelUpLearnset, + .teachableLearnset = sRunerigusTeachableLearnset, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_YAMASK @@ -3957,7 +4610,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 22, .baseSpAttack = 53, .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_ROCK }, + .types = MON_TYPES(TYPE_WATER, TYPE_ROCK), .catchRate = 45, .expYield = 71, .evYield_Defense = 1, @@ -3965,7 +4618,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_SOLID_ROCK, ABILITY_STURDY, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Tirtouga"), @@ -3983,17 +4636,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tirtouga, 56, 40), + .frontPic = gMonFrontPic_Tirtouga, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Tirtouga, .frontAnimId = ANIM_RISING_WOBBLE, - BACK_PIC(Tirtouga, 64, 32), + .backPic = gMonBackPic_Tirtouga, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Tirtouga), - ICON(Tirtouga, 2), - .footprint = gMonFootprint_Tirtouga, - LEARNSETS(Tirtouga), + .palette = gMonPalette_Tirtouga, + .shinyPalette = gMonShinyPalette_Tirtouga, + .iconSprite = gMonIcon_Tirtouga, + .iconPalIndex = 2, + FOOTPRINT(Tirtouga) + .levelUpLearnset = sTirtougaLevelUpLearnset, + .teachableLearnset = sTirtougaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_CARRACOSTA}), }, @@ -4005,7 +4663,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 32, .baseSpAttack = 83, .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_ROCK }, + .types = MON_TYPES(TYPE_WATER, TYPE_ROCK), .catchRate = 45, .expYield = 173, .evYield_Defense = 2, @@ -4013,7 +4671,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), .abilities = { ABILITY_SOLID_ROCK, ABILITY_STURDY, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Carracosta"), @@ -4031,17 +4689,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Carracosta, 64, 56), + .frontPic = gMonFrontPic_Carracosta, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Carracosta, .frontAnimId = ANIM_H_SHAKE_SLOW, - BACK_PIC(Carracosta, 64, 40), + .backPic = gMonBackPic_Carracosta, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Carracosta), - ICON(Carracosta, 2), - .footprint = gMonFootprint_Carracosta, - LEARNSETS(Carracosta), + .palette = gMonPalette_Carracosta, + .shinyPalette = gMonShinyPalette_Carracosta, + .iconSprite = gMonIcon_Carracosta, + .iconPalIndex = 2, + FOOTPRINT(Carracosta) + .levelUpLearnset = sCarracostaLevelUpLearnset, + .teachableLearnset = sCarracostaTeachableLearnset, }, #endif //P_FAMILY_TIRTOUGA @@ -4054,7 +4717,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 70, .baseSpAttack = 74, .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_ROCK, TYPE_FLYING), .catchRate = 45, .expYield = 71, .evYield_Attack = 1, @@ -4062,8 +4725,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_3 }, - .abilities = { ABILITY_DEFEATIST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_WATER_3), + .abilities = { ABILITY_DEFEATIST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Archen"), .cryId = CRY_ARCHEN, @@ -4080,17 +4743,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Archen, 56, 40), + .frontPic = gMonFrontPic_Archen, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Archen, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Archen, 64, 32), + .backPic = gMonBackPic_Archen, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Archen), - ICON(Archen, 0), - .footprint = gMonFootprint_Archen, - LEARNSETS(Archen), + .palette = gMonPalette_Archen, + .shinyPalette = gMonShinyPalette_Archen, + .iconSprite = gMonIcon_Archen, + .iconPalIndex = 0, + FOOTPRINT(Archen) + .levelUpLearnset = sArchenLevelUpLearnset, + .teachableLearnset = sArchenTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_ARCHEOPS}), }, @@ -4102,7 +4770,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 110, .baseSpAttack = 112, .baseSpDefense = 65, - .types = { TYPE_ROCK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_ROCK, TYPE_FLYING), .catchRate = 45, .expYield = 177, .evYield_Attack = 2, @@ -4110,8 +4778,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_3 }, - .abilities = { ABILITY_DEFEATIST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_WATER_3), + .abilities = { ABILITY_DEFEATIST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Archeops"), .cryId = CRY_ARCHEOPS, @@ -4128,18 +4796,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Archeops, 64, 64), + .frontPic = gMonFrontPic_Archeops, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Archeops, .frontAnimId = ANIM_RISING_WOBBLE, .enemyMonElevation = 11, - BACK_PIC(Archeops, 64, 40), + .backPic = gMonBackPic_Archeops, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Archeops), - ICON(Archeops, 0), - .footprint = gMonFootprint_Archeops, - LEARNSETS(Archeops), + .palette = gMonPalette_Archeops, + .shinyPalette = gMonShinyPalette_Archeops, + .iconSprite = gMonIcon_Archeops, + .iconPalIndex = 0, + FOOTPRINT(Archeops) + .levelUpLearnset = sArcheopsLevelUpLearnset, + .teachableLearnset = sArcheopsTeachableLearnset, }, #endif //P_FAMILY_ARCHEN @@ -4152,7 +4825,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 40, .baseSpDefense = 62, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 190, .expYield = 66, .evYield_Speed = 1, @@ -4161,7 +4834,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STENCH, ABILITY_STICKY_HOLD, ABILITY_AFTERMATH }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Trubbish"), @@ -4179,53 +4852,51 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Trubbish, 48, 40), + .frontPic = gMonFrontPic_Trubbish, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Trubbish, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Trubbish, 48, 48), + .backPic = gMonBackPic_Trubbish, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Trubbish), - ICON(Trubbish, 1), - .footprint = gMonFootprint_Trubbish, - LEARNSETS(Trubbish), + .palette = gMonPalette_Trubbish, + .shinyPalette = gMonShinyPalette_Trubbish, + .iconSprite = gMonIcon_Trubbish, + .iconPalIndex = 1, + FOOTPRINT(Trubbish) + .levelUpLearnset = sTrubbishLevelUpLearnset, + .teachableLearnset = sTrubbishTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_GARBODOR}), }, -#define GARBODOR_MISC_INFO \ - .baseHP = 80, \ - .baseAttack = 95, \ - .baseDefense = 82, \ - .baseSpeed = 75, \ - .baseSpAttack = 60, \ - .baseSpDefense = 82, \ - .types = { TYPE_POISON, TYPE_POISON }, \ - .catchRate = 60, \ - .expYield = 166, \ - .evYield_Attack = 2, \ - .itemCommon = ITEM_SILK_SCARF, \ - .itemRare = ITEM_BLACK_SLUDGE, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, \ - .abilities = { ABILITY_STENCH, ABILITY_WEAK_ARMOR, ABILITY_AFTERMATH }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .noFlip = TRUE, \ - .speciesName = _("Garbodor"), \ - .cryId = CRY_GARBODOR, \ - .natDexNum = NATIONAL_DEX_GARBODOR, \ - .categoryName = _("Trash Heap"), \ - .footprint = gMonFootprint_Garbodor, \ - LEARNSETS(Garbodor), \ - .formSpeciesIdTable = sGarbodorFormSpeciesIdTable, \ - .formChangeTable = sGarbodorFormChangeTable - [SPECIES_GARBODOR] = { - GARBODOR_MISC_INFO, + .baseHP = 80, + .baseAttack = 95, + .baseDefense = 82, + .baseSpeed = 75, + .baseSpAttack = 60, + .baseSpDefense = 82, + .types = MON_TYPES(TYPE_POISON), + .catchRate = 60, + .expYield = 166, + .evYield_Attack = 2, + .itemCommon = ITEM_SILK_SCARF, + .itemRare = ITEM_BLACK_SLUDGE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_STENCH, ABILITY_WEAK_ARMOR, ABILITY_AFTERMATH }, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Garbodor"), + .cryId = CRY_GARBODOR, + .natDexNum = NATIONAL_DEX_GARBODOR, + .categoryName = _("Trash Heap"), .height = 19, .weight = 1073, .description = COMPOUND_STRING( @@ -4237,21 +4908,53 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - FRONT_PIC(Garbodor, 64, 64), + .frontPic = gMonFrontPic_Garbodor, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Garbodor, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Garbodor, 64, 64), + .backPic = gMonBackPic_Garbodor, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Garbodor), - ICON(Garbodor, 1), + .palette = gMonPalette_Garbodor, + .shinyPalette = gMonShinyPalette_Garbodor, + .iconSprite = gMonIcon_Garbodor, + .iconPalIndex = 1, + FOOTPRINT(Garbodor) + .levelUpLearnset = sGarbodorLevelUpLearnset, + .teachableLearnset = sGarbodorTeachableLearnset, + .formSpeciesIdTable = sGarbodorFormSpeciesIdTable, + .formChangeTable = sGarbodorFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_GARBODOR_GIGANTAMAX] = { - GARBODOR_MISC_INFO, + .baseHP = 80, + .baseAttack = 95, + .baseDefense = 82, + .baseSpeed = 75, + .baseSpAttack = 60, + .baseSpDefense = 82, + .types = MON_TYPES(TYPE_POISON), + .catchRate = 60, + .expYield = 166, + .evYield_Attack = 2, + .itemCommon = ITEM_SILK_SCARF, + .itemRare = ITEM_BLACK_SLUDGE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_STENCH, ABILITY_WEAK_ARMOR, ABILITY_AFTERMATH }, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Garbodor"), + .cryId = CRY_GARBODOR, + .natDexNum = NATIONAL_DEX_GARBODOR, + .categoryName = _("Trash Heap"), .height = 210, .weight = 0, .description = COMPOUND_STRING( @@ -4263,183 +4966,245 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - FRONT_PIC(GarbodorGigantamax, 64, 64), + .frontPic = gMonFrontPic_GarbodorGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_GarbodorGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GarbodorGigantamax, 64, 64), + .backPic = gMonBackPic_GarbodorGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GarbodorGigantamax), - ICON(GarbodorGigantamax, 0), + .palette = gMonPalette_GarbodorGigantamax, + .shinyPalette = gMonShinyPalette_GarbodorGigantamax, + .iconSprite = gMonIcon_GarbodorGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Garbodor) .isGigantamax = TRUE, + .levelUpLearnset = sGarbodorLevelUpLearnset, + .teachableLearnset = sGarbodorTeachableLearnset, + .formSpeciesIdTable = sGarbodorFormSpeciesIdTable, + .formChangeTable = sGarbodorFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_TRUBBISH #if P_FAMILY_ZORUA -#define ZORUA_MISC_INFO \ - .catchRate = 75, \ - .expYield = 66, \ - .evYield_SpAttack = 1, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_ILLUSION, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Zorua"), \ - .cryId = CRY_ZORUA, \ - .natDexNum = NATIONAL_DEX_ZORUA, \ - .height = 7, \ - .weight = 125, \ - .pokemonScale = 365, \ - .pokemonOffset = 12, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Zorua, \ - .formSpeciesIdTable = sZoruaFormSpeciesIdTable - -#define ZOROARK_MISC_INFO \ - .catchRate = 45, \ - .expYield = 179, \ - .evYield_SpAttack = 2, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_ILLUSION, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Zoroark"), \ - .cryId = CRY_ZOROARK, \ - .natDexNum = NATIONAL_DEX_ZOROARK, \ - .height = 16, \ - .pokemonScale = 259, \ - .pokemonOffset = 1, \ - .trainerScale = 296, \ - .trainerOffset = 1, \ - .footprint = gMonFootprint_Zoroark, \ - .formSpeciesIdTable = sZoroarkFormSpeciesIdTable - [SPECIES_ZORUA] = { - ZORUA_MISC_INFO, .baseHP = 40, .baseAttack = 65, .baseDefense = 40, .baseSpeed = 65, .baseSpAttack = 80, .baseSpDefense = 40, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), + .catchRate = 75, + .expYield = 66, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_ILLUSION, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Zorua"), + .cryId = CRY_ZORUA, + .natDexNum = NATIONAL_DEX_ZORUA, .categoryName = _("Tricky Fox"), + .height = 7, + .weight = 125, .description = COMPOUND_STRING( "To protect themselves from danger, they\n" "hide their true identities by transforming\n" "into people and Pokémon. Apparently, it\n" "often transforms into a silent child."), - FRONT_PIC(Zorua, 40, 48), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Zorua, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Zorua, .frontAnimId = ANIM_CIRCULAR_VIBRATE, - BACK_PIC(Zorua, 64, 56), + .backPic = gMonBackPic_Zorua, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Zorua), - ICON(Zorua, 0), - LEARNSETS(Zorua), + .palette = gMonPalette_Zorua, + .shinyPalette = gMonShinyPalette_Zorua, + .iconSprite = gMonIcon_Zorua, + .iconPalIndex = 0, + FOOTPRINT(Zorua) + .levelUpLearnset = sZoruaLevelUpLearnset, + .teachableLearnset = sZoruaTeachableLearnset, + .formSpeciesIdTable = sZoruaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ZOROARK}), }, [SPECIES_ZOROARK] = { - ZOROARK_MISC_INFO, .baseHP = 60, .baseAttack = 105, .baseDefense = 60, .baseSpeed = 105, .baseSpAttack = 120, .baseSpDefense = 60, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), + .catchRate = 45, + .expYield = 179, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_ILLUSION, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Zoroark"), + .cryId = CRY_ZOROARK, + .natDexNum = NATIONAL_DEX_ZOROARK, .categoryName = _("Illusion Fox"), + .height = 16, .weight = 811, .description = COMPOUND_STRING( "Bonds between these Pokémon are very\n" "strong. It protects the safety of its\n" "pack by tricking its opponents. They\n" "defend their lair with illusory scenery."), - FRONT_PIC(Zoroark, 64, 64), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_Zoroark, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Zoroark, .frontAnimId = ANIM_FLICKER_INCREASING, - BACK_PIC(Zoroark, 64, 56), + .backPic = gMonBackPic_Zoroark, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Zoroark), - ICON(Zoroark, 0), - LEARNSETS(Zoroark), + .palette = gMonPalette_Zoroark, + .shinyPalette = gMonShinyPalette_Zoroark, + .iconSprite = gMonIcon_Zoroark, + .iconPalIndex = 0, + FOOTPRINT(Zoroark) + .levelUpLearnset = sZoroarkLevelUpLearnset, + .teachableLearnset = sZoroarkTeachableLearnset, + .formSpeciesIdTable = sZoroarkFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_ZORUA_HISUIAN] = { - ZORUA_MISC_INFO, .baseHP = 35, .baseAttack = 60, .baseDefense = 40, .baseSpeed = 70, .baseSpAttack = 85, .baseSpDefense = 40, - .types = { TYPE_NORMAL, TYPE_GHOST }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GHOST), + .catchRate = 75, + .expYield = 66, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_ILLUSION, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Zorua"), + .cryId = CRY_ZORUA, + .natDexNum = NATIONAL_DEX_ZORUA, .categoryName = _("Spiteful Fox"), + .height = 7, + .weight = 125, .description = COMPOUND_STRING( "Derives power from resentment,\n" "which rises as energy atop its head and\n" "takes on the forms of foes. In this\n" "way, Zorua vents lingering malice."), - FRONT_PIC(ZoruaHisuian, 48, 64), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ZoruaHisuian, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_ZoruaHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZoruaHisuian, 56, 64), + .backPic = gMonBackPic_ZoruaHisuian, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZoruaHisuian), - ICON(ZoruaHisuian, 0), - LEARNSETS(ZoruaHisuian), + .palette = gMonPalette_ZoruaHisuian, + .shinyPalette = gMonShinyPalette_ZoruaHisuian, + .iconSprite = gMonIcon_ZoruaHisuian, + .iconPalIndex = 0, + FOOTPRINT(Zorua) .isHisuianForm = TRUE, + .levelUpLearnset = sZoruaHisuianLevelUpLearnset, + .teachableLearnset = sZoruaHisuianTeachableLearnset, + .formSpeciesIdTable = sZoruaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ZOROARK_HISUIAN}), }, [SPECIES_ZOROARK_HISUIAN] = { - ZOROARK_MISC_INFO, .baseHP = 55, .baseAttack = 100, .baseDefense = 60, .baseSpeed = 110, .baseSpAttack = 125, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_GHOST }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GHOST), + .catchRate = 45, + .expYield = 179, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_ILLUSION, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Zoroark"), + .cryId = CRY_ZOROARK, + .natDexNum = NATIONAL_DEX_ZOROARK, .categoryName = _("Baneful Fox"), + .height = 16, .weight = 730, .description = COMPOUND_STRING( "Heedless of its own safety,\n" "Zoroark attacks its nemeses with a bitter\n" "energy so intense, it lacerates\n" "Zoroark's own body."), - FRONT_PIC(ZoroarkHisuian, 64, 64), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_ZoroarkHisuian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_ZoroarkHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZoroarkHisuian, 64, 64), + .backPic = gMonBackPic_ZoroarkHisuian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZoroarkHisuian), - ICON(ZoroarkHisuian, 0), - LEARNSETS(ZoroarkHisuian), + .palette = gMonPalette_ZoroarkHisuian, + .shinyPalette = gMonShinyPalette_ZoroarkHisuian, + .iconSprite = gMonIcon_ZoroarkHisuian, + .iconPalIndex = 0, + FOOTPRINT(Zoroark) .isHisuianForm = TRUE, + .levelUpLearnset = sZoroarkHisuianLevelUpLearnset, + .teachableLearnset = sZoroarkHisuianTeachableLearnset, + .formSpeciesIdTable = sZoroarkFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_ZORUA @@ -4453,7 +5218,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 75, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 60, .evYield_Speed = 1, @@ -4461,7 +5226,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_CUTE_CHARM, ABILITY_TECHNICIAN, ABILITY_SKILL_LINK }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Minccino"), @@ -4479,17 +5244,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Minccino, 56, 48), + .frontPic = gMonFrontPic_Minccino, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Minccino, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Minccino, 56, 56), + .backPic = gMonBackPic_Minccino, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Minccino), - ICON(Minccino, 0), - .footprint = gMonFootprint_Minccino, - LEARNSETS(Minccino), + .palette = gMonPalette_Minccino, + .shinyPalette = gMonShinyPalette_Minccino, + .iconSprite = gMonIcon_Minccino, + .iconPalIndex = 0, + FOOTPRINT(Minccino) + .levelUpLearnset = sMinccinoLevelUpLearnset, + .teachableLearnset = sMinccinoTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_SHINY_STONE, SPECIES_CINCCINO}), }, @@ -4501,7 +5271,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 115, .baseSpAttack = 65, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 60, .expYield = 165, .evYield_Speed = 2, @@ -4509,7 +5279,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_CUTE_CHARM, ABILITY_TECHNICIAN, ABILITY_SKILL_LINK }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -4528,17 +5298,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cinccino, 56, 56), + .frontPic = gMonFrontPic_Cinccino, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Cinccino, .frontAnimId = ANIM_V_SLIDE, - BACK_PIC(Cinccino, 64, 56), + .backPic = gMonBackPic_Cinccino, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Cinccino), - ICON(Cinccino, 0), - .footprint = gMonFootprint_Cinccino, - LEARNSETS(Cinccino), + .palette = gMonPalette_Cinccino, + .shinyPalette = gMonShinyPalette_Cinccino, + .iconSprite = gMonIcon_Cinccino, + .iconPalIndex = 0, + FOOTPRINT(Cinccino) + .levelUpLearnset = sCinccinoLevelUpLearnset, + .teachableLearnset = sCinccinoTeachableLearnset, }, #endif //P_FAMILY_MINCCINO @@ -4551,7 +5326,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 45, .baseSpAttack = 55, .baseSpDefense = 65, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 200, .expYield = 58, .evYield_SpDefense = 1, @@ -4559,7 +5334,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Gothita"), @@ -4577,17 +5352,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gothita, 40, 40), + .frontPic = gMonFrontPic_Gothita, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Gothita, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Gothita, 48, 48), + .backPic = gMonBackPic_Gothita, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Gothita), - ICON(Gothita, 2), - .footprint = gMonFootprint_Gothita, - LEARNSETS(Gothita), + .palette = gMonPalette_Gothita, + .shinyPalette = gMonShinyPalette_Gothita, + .iconSprite = gMonIcon_Gothita, + .iconPalIndex = 2, + FOOTPRINT(Gothita) + .levelUpLearnset = sGothitaLevelUpLearnset, + .teachableLearnset = sGothitaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_GOTHORITA}), }, @@ -4599,7 +5379,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 55, .baseSpAttack = 75, .baseSpDefense = 85, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 100, .expYield = 137, .evYield_SpDefense = 2, @@ -4607,7 +5387,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Gothorita"), @@ -4625,17 +5405,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gothorita, 48, 56), + .frontPic = gMonFrontPic_Gothorita, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Gothorita, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Gothorita, 64, 56), + .backPic = gMonBackPic_Gothorita, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Gothorita), - ICON(Gothorita, 2), - .footprint = gMonFootprint_Gothorita, - LEARNSETS(Gothorita), + .palette = gMonPalette_Gothorita, + .shinyPalette = gMonShinyPalette_Gothorita, + .iconSprite = gMonIcon_Gothorita, + .iconPalIndex = 2, + FOOTPRINT(Gothorita) + .levelUpLearnset = sGothoritaLevelUpLearnset, + .teachableLearnset = sGothoritaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 41, SPECIES_GOTHITELLE}), }, @@ -4647,15 +5432,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 95, .baseSpDefense = 110, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 50, - .expYield = 221, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 245 : 221, .evYield_SpDefense = 3, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Gothitelle"), @@ -4673,17 +5458,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Gothitelle, 48, 64), + .frontPic = gMonFrontPic_Gothitelle, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Gothitelle, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Gothitelle, 64, 64), + .backPic = gMonBackPic_Gothitelle, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Gothitelle), - ICON(Gothitelle, 2), - .footprint = gMonFootprint_Gothitelle, - LEARNSETS(Gothitelle), + .palette = gMonPalette_Gothitelle, + .shinyPalette = gMonShinyPalette_Gothitelle, + .iconSprite = gMonIcon_Gothitelle, + .iconPalIndex = 2, + FOOTPRINT(Gothitelle) + .levelUpLearnset = sGothitelleLevelUpLearnset, + .teachableLearnset = sGothitelleTeachableLearnset, }, #endif //P_FAMILY_GOTHITA @@ -4696,7 +5486,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 20, .baseSpAttack = 105, .baseSpDefense = 50, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 200, .expYield = 58, .evYield_SpAttack = 1, @@ -4704,7 +5494,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_OVERCOAT, ABILITY_MAGIC_GUARD, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -4723,18 +5513,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Solosis, 32, 32), + .frontPic = gMonFrontPic_Solosis, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Solosis, .frontAnimId = ANIM_TWIST, .enemyMonElevation = 14, - BACK_PIC(Solosis, 48, 32), + .backPic = gMonBackPic_Solosis, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 19, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Solosis), - ICON(Solosis, 1), - .footprint = gMonFootprint_Solosis, - LEARNSETS(Solosis), + .palette = gMonPalette_Solosis, + .shinyPalette = gMonShinyPalette_Solosis, + .iconSprite = gMonIcon_Solosis, + .iconPalIndex = 1, + FOOTPRINT(Solosis) + .levelUpLearnset = sSolosisLevelUpLearnset, + .teachableLearnset = sSolosisTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_DUOSION}), }, @@ -4746,7 +5541,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 30, .baseSpAttack = 125, .baseSpDefense = 60, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 100, .expYield = 130, .evYield_SpAttack = 2, @@ -4754,7 +5549,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_OVERCOAT, ABILITY_MAGIC_GUARD, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Duosion"), @@ -4772,18 +5567,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Duosion, 40, 48), + .frontPic = gMonFrontPic_Duosion, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Duosion, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .enemyMonElevation = 7, - BACK_PIC(Duosion, 56, 48), + .backPic = gMonBackPic_Duosion, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_GROW, - PALETTES(Duosion), - ICON(Duosion, 1), - .footprint = gMonFootprint_Duosion, - LEARNSETS(Duosion), + .palette = gMonPalette_Duosion, + .shinyPalette = gMonShinyPalette_Duosion, + .iconSprite = gMonIcon_Duosion, + .iconPalIndex = 1, + FOOTPRINT(Duosion) + .levelUpLearnset = sDuosionLevelUpLearnset, + .teachableLearnset = sDuosionTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 41, SPECIES_REUNICLUS}), }, @@ -4795,15 +5595,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 30, .baseSpAttack = 125, .baseSpDefense = 85, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 50, - .expYield = 221, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 245 : 221, .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_OVERCOAT, ABILITY_MAGIC_GUARD, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Reuniclus"), @@ -4821,18 +5621,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Reuniclus, 64, 48), + .frontPic = gMonFrontPic_Reuniclus, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Reuniclus, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 8, - BACK_PIC(Reuniclus, 64, 48), + .backPic = gMonBackPic_Reuniclus, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Reuniclus), - ICON(Reuniclus, 1), - .footprint = gMonFootprint_Reuniclus, - LEARNSETS(Reuniclus), + .palette = gMonPalette_Reuniclus, + .shinyPalette = gMonShinyPalette_Reuniclus, + .iconSprite = gMonIcon_Reuniclus, + .iconPalIndex = 1, + FOOTPRINT(Reuniclus) + .levelUpLearnset = sReuniclusLevelUpLearnset, + .teachableLearnset = sReuniclusTeachableLearnset, }, #endif //P_FAMILY_SOLOSIS @@ -4845,7 +5650,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 55, .baseSpAttack = 44, .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_FLYING }, + .types = MON_TYPES(TYPE_WATER, TYPE_FLYING), .catchRate = 190, .expYield = 61, .evYield_HP = 1, @@ -4853,7 +5658,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_BIG_PECKS, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Ducklett"), @@ -4871,17 +5676,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ducklett, 32, 40), + .frontPic = gMonFrontPic_Ducklett, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Ducklett, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Ducklett, 48, 48), + .backPic = gMonBackPic_Ducklett, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Ducklett), - ICON(Ducklett, 0), - .footprint = gMonFootprint_Ducklett, - LEARNSETS(Ducklett), + .palette = gMonPalette_Ducklett, + .shinyPalette = gMonShinyPalette_Ducklett, + .iconSprite = gMonIcon_Ducklett, + .iconPalIndex = 0, + FOOTPRINT(Ducklett) + .levelUpLearnset = sDucklettLevelUpLearnset, + .teachableLearnset = sDucklettTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_SWANNA}), }, @@ -4893,7 +5703,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 98, .baseSpAttack = 87, .baseSpDefense = 63, - .types = { TYPE_WATER, TYPE_FLYING }, + .types = MON_TYPES(TYPE_WATER, TYPE_FLYING), .catchRate = 45, .expYield = 166, .evYield_Speed = 2, @@ -4901,7 +5711,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_BIG_PECKS, ABILITY_HYDRATION }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Swanna"), @@ -4919,17 +5729,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Swanna, 56, 64), + .frontPic = gMonFrontPic_Swanna, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Swanna, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Swanna, 64, 64), + .backPic = gMonBackPic_Swanna, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Swanna), - ICON(Swanna, 2), - .footprint = gMonFootprint_Swanna, - LEARNSETS(Swanna), + .palette = gMonPalette_Swanna, + .shinyPalette = gMonShinyPalette_Swanna, + .iconSprite = gMonIcon_Swanna, + .iconPalIndex = 2, + FOOTPRINT(Swanna) + .levelUpLearnset = sSwannaLevelUpLearnset, + .teachableLearnset = sSwannaTeachableLearnset, }, #endif //P_FAMILY_DUCKLETT @@ -4942,7 +5757,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 44, .baseSpAttack = 65, .baseSpDefense = 60, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 255, .expYield = 61, .evYield_SpAttack = 1, @@ -4951,7 +5766,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_ICE_BODY, ABILITY_SNOW_CLOAK, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Vanillite"), @@ -4969,17 +5784,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vanillite, 32, 40), + .frontPic = gMonFrontPic_Vanillite, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Vanillite, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Vanillite, 40, 48), + .backPic = gMonBackPic_Vanillite, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Vanillite), - ICON(Vanillite, 0), - .footprint = gMonFootprint_Vanillite, - LEARNSETS(Vanillite), + .palette = gMonPalette_Vanillite, + .shinyPalette = gMonShinyPalette_Vanillite, + .iconSprite = gMonIcon_Vanillite, + .iconPalIndex = 0, + FOOTPRINT(Vanillite) + .levelUpLearnset = sVanilliteLevelUpLearnset, + .teachableLearnset = sVanilliteTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_VANILLISH}), }, @@ -4991,7 +5811,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 59, .baseSpAttack = 80, .baseSpDefense = 75, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 120, .expYield = 138, .evYield_SpAttack = 2, @@ -5000,7 +5820,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_ICE_BODY, ABILITY_SNOW_CLOAK, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Vanillish"), @@ -5018,17 +5838,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vanillish, 32, 56), + .frontPic = gMonFrontPic_Vanillish, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Vanillish, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Vanillish, 48, 56), + .backPic = gMonBackPic_Vanillish, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Vanillish), - ICON(Vanillish, 2), - .footprint = gMonFootprint_Vanillish, - LEARNSETS(Vanillish), + .palette = gMonPalette_Vanillish, + .shinyPalette = gMonShinyPalette_Vanillish, + .iconSprite = gMonIcon_Vanillish, + .iconPalIndex = 2, + FOOTPRINT(Vanillish) + .levelUpLearnset = sVanillishLevelUpLearnset, + .teachableLearnset = sVanillishTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 47, SPECIES_VANILLUXE}), }, @@ -5040,16 +5865,16 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 79, .baseSpAttack = 110, .baseSpDefense = 95, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 45, - .expYield = 241, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 268 : 241, .evYield_SpAttack = 3, .itemCommon = ITEM_NEVER_MELT_ICE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_ICE_BODY, ABILITY_SNOW_WARNING, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Vanilluxe"), @@ -5067,203 +5892,452 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vanilluxe, 56, 56), + .frontPic = gMonFrontPic_Vanilluxe, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Vanilluxe, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Vanilluxe, 64, 64), + .backPic = gMonBackPic_Vanilluxe, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Vanilluxe), - ICON(Vanilluxe, 2), - .footprint = gMonFootprint_Vanilluxe, - LEARNSETS(Vanilluxe), + .palette = gMonPalette_Vanilluxe, + .shinyPalette = gMonShinyPalette_Vanilluxe, + .iconSprite = gMonIcon_Vanilluxe, + .iconPalIndex = 2, + FOOTPRINT(Vanilluxe) + .levelUpLearnset = sVanilluxeLevelUpLearnset, + .teachableLearnset = sVanilluxeTeachableLearnset, }, #endif //P_FAMILY_VANILLITE #if P_FAMILY_DEERLING -#define DEERLING_MISC_INFO \ - .baseHP = 60, \ - .baseAttack = 60, \ - .baseDefense = 50, \ - .baseSpeed = 75, \ - .baseSpAttack = 40, \ - .baseSpDefense = 50, \ - .types = { TYPE_NORMAL, TYPE_GRASS }, \ - .catchRate = 190, \ - .expYield = 67, \ - .evYield_Speed = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, \ - .speciesName = _("Deerling"), \ - .cryId = CRY_DEERLING, \ - .natDexNum = NATIONAL_DEX_DEERLING, \ - .categoryName = _("Season"), \ - .height = 6, \ - .weight = 195, \ - .pokemonScale = 422, \ - .pokemonOffset = 14, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Deerling, 32, 48), \ - .frontPicYOffset = 11, \ - .frontAnimFrames = sAnims_Deerling, \ - .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, \ - BACK_PIC(Deerling, 48, 56), \ - .backPicYOffset = 9, \ - .backAnimId = BACK_ANIM_H_SLIDE, \ - .footprint = gMonFootprint_Deerling, \ - LEARNSETS(Deerling), \ - .formSpeciesIdTable = sDeerlingFormSpeciesIdTable - [SPECIES_DEERLING_SPRING] = { - DEERLING_MISC_INFO, + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 50, + .baseSpeed = 75, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GRASS), + .catchRate = 190, + .expYield = 67, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Deerling"), + .cryId = CRY_DEERLING, + .natDexNum = NATIONAL_DEX_DEERLING, + .categoryName = _("Season"), + .height = 6, + .weight = 195, .description = COMPOUND_STRING( "Deerling have different scents\n" "depending on the season. In early\n" "spring, these Pokémon give off a\n" "delicate, sweet, and calming scent."), - PALETTES(DeerlingSpring), - ICON(DeerlingSpring, 1), + .pokemonScale = 422, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Deerling, + .frontPicSize = MON_COORDS_SIZE(32, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Deerling, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_Deerling, + .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + .palette = gMonPalette_DeerlingSpring, + .shinyPalette = gMonShinyPalette_DeerlingSpring, + .iconSprite = gMonIcon_DeerlingSpring, + .iconPalIndex = 1, + FOOTPRINT(Deerling) + .levelUpLearnset = sDeerlingLevelUpLearnset, + .teachableLearnset = sDeerlingTeachableLearnset, + .formSpeciesIdTable = sDeerlingFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_SAWSBUCK_SPRING}), }, + [SPECIES_DEERLING_SUMMER] = { - DEERLING_MISC_INFO, + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 50, + .baseSpeed = 75, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GRASS), + .catchRate = 190, + .expYield = 67, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Deerling"), + .cryId = CRY_DEERLING, + .natDexNum = NATIONAL_DEX_DEERLING, + .categoryName = _("Season"), + .height = 6, + .weight = 195, .description = COMPOUND_STRING( "To prevent Deerling from entering\n" "their fields, many farmers will have\n" "several Lycanroc stand guard, as\n" "they are its natural enemy."), - PALETTES(DeerlingSummer), - ICON(DeerlingSummer, 1), + .pokemonScale = 422, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Deerling, + .frontPicSize = MON_COORDS_SIZE(32, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Deerling, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_Deerling, + .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + .palette = gMonPalette_DeerlingSummer, + .shinyPalette = gMonShinyPalette_DeerlingSummer, + .iconSprite = gMonIcon_DeerlingSummer, + .iconPalIndex = 1, + FOOTPRINT(Deerling) + .levelUpLearnset = sDeerlingLevelUpLearnset, + .teachableLearnset = sDeerlingTeachableLearnset, + .formSpeciesIdTable = sDeerlingFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_SAWSBUCK_SUMMER}), }, + [SPECIES_DEERLING_AUTUMN] = { - DEERLING_MISC_INFO, + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 50, + .baseSpeed = 75, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GRASS), + .catchRate = 190, + .expYield = 67, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Deerling"), + .cryId = CRY_DEERLING, + .natDexNum = NATIONAL_DEX_DEERLING, + .categoryName = _("Season"), + .height = 6, + .weight = 195, .description = COMPOUND_STRING( "Deerling have different scents\n" "depending on the season. In this form,\n" "Deerling have a softly sweet scent\n" "that lingers in the nose."), - PALETTES(DeerlingAutumn), - ICON(DeerlingAutumn, 0), + .pokemonScale = 422, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Deerling, + .frontPicSize = MON_COORDS_SIZE(32, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Deerling, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_Deerling, + .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + .palette = gMonPalette_DeerlingAutumn, + .shinyPalette = gMonShinyPalette_DeerlingAutumn, + .iconSprite = gMonIcon_DeerlingAutumn, + .iconPalIndex = 0, + FOOTPRINT(Deerling) + .levelUpLearnset = sDeerlingLevelUpLearnset, + .teachableLearnset = sDeerlingTeachableLearnset, + .formSpeciesIdTable = sDeerlingFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_SAWSBUCK_AUTUMN}), }, + [SPECIES_DEERLING_WINTER] = { - DEERLING_MISC_INFO, + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 50, + .baseSpeed = 75, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GRASS), + .catchRate = 190, + .expYield = 67, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Deerling"), + .cryId = CRY_DEERLING, + .natDexNum = NATIONAL_DEX_DEERLING, + .categoryName = _("Season"), + .height = 6, + .weight = 195, .description = COMPOUND_STRING( "Deerling's scent changes with the\n" "seasons, but when the Pokémon is in\n" "its Winter Form, it has hardly any\n" "scent at all."), - PALETTES(DeerlingWinter), - ICON(DeerlingWinter, 2), + .pokemonScale = 422, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Deerling, + .frontPicSize = MON_COORDS_SIZE(32, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Deerling, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_Deerling, + .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + .palette = gMonPalette_DeerlingWinter, + .shinyPalette = gMonShinyPalette_DeerlingWinter, + .iconSprite = gMonIcon_DeerlingWinter, + .iconPalIndex = 2, + FOOTPRINT(Deerling) + .levelUpLearnset = sDeerlingLevelUpLearnset, + .teachableLearnset = sDeerlingTeachableLearnset, + .formSpeciesIdTable = sDeerlingFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_SAWSBUCK_WINTER}), }, -#define SAWSBUCK_MISC_INFO \ - .baseHP = 80, \ - .baseAttack = 100, \ - .baseDefense = 70, \ - .baseSpeed = 95, \ - .baseSpAttack = 60, \ - .baseSpDefense = 70, \ - .types = { TYPE_NORMAL, TYPE_GRASS }, \ - .catchRate = 75, \ - .expYield = 166, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Sawsbuck"), \ - .cryId = CRY_SAWSBUCK, \ - .natDexNum = NATIONAL_DEX_SAWSBUCK, \ - .categoryName = _("Season"), \ - .height = 19, \ - .weight = 925, \ - .pokemonScale = 256, \ - .pokemonOffset = 1, \ - .trainerScale = 326, \ - .trainerOffset = 4, \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Sawsbuck, \ - .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, \ - .backPicYOffset = 5, \ - .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, \ - .footprint = gMonFootprint_Sawsbuck, \ - LEARNSETS(Sawsbuck), \ - .formSpeciesIdTable = sSawsbuckFormSpeciesIdTable - [SPECIES_SAWSBUCK_SPRING] = { - SAWSBUCK_MISC_INFO, + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 95, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GRASS), + .catchRate = 75, + .expYield = 166, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Sawsbuck"), + .cryId = CRY_SAWSBUCK, + .natDexNum = NATIONAL_DEX_SAWSBUCK, + .categoryName = _("Season"), + .height = 19, + .weight = 925, .description = COMPOUND_STRING( "Some people call Sawsbuck the harbingers\n" "of spring because the plants growing on\n" "its horns change according to the season.\n" "The leader possesses magnificent horns."), - FRONT_PIC(SawsbuckSpring, 56, 64), - BACK_PIC(SawsbuckSpring, 48, 64), - PALETTES(SawsbuckSpring), - ICON(SawsbuckSpring, 1), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_SawsbuckSpring, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Sawsbuck, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_SawsbuckSpring, + .backPicSize = MON_COORDS_SIZE(48, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + .palette = gMonPalette_SawsbuckSpring, + .shinyPalette = gMonShinyPalette_SawsbuckSpring, + .iconSprite = gMonIcon_SawsbuckSpring, + .iconPalIndex = 1, + FOOTPRINT(Sawsbuck) + .levelUpLearnset = sSawsbuckLevelUpLearnset, + .teachableLearnset = sSawsbuckTeachableLearnset, + .formSpeciesIdTable = sSawsbuckFormSpeciesIdTable, }, [SPECIES_SAWSBUCK_SUMMER] = { - SAWSBUCK_MISC_INFO, + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 95, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GRASS), + .catchRate = 75, + .expYield = 166, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Sawsbuck"), + .cryId = CRY_SAWSBUCK, + .natDexNum = NATIONAL_DEX_SAWSBUCK, + .categoryName = _("Season"), + .height = 19, + .weight = 925, .description = COMPOUND_STRING( "The thicker and larger the\n" "branches and leaves on its antlers, the\n" "more majestic the Sawsbuck is thought\n" "to be."), - FRONT_PIC(SawsbuckSummer, 64, 64), - BACK_PIC(SawsbuckSummer, 64, 64), - PALETTES(SawsbuckSummer), - ICON(SawsbuckSummer, 1), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_SawsbuckSummer, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Sawsbuck, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_SawsbuckSummer, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + .palette = gMonPalette_SawsbuckSummer, + .shinyPalette = gMonShinyPalette_SawsbuckSummer, + .iconSprite = gMonIcon_SawsbuckSummer, + .iconPalIndex = 1, + FOOTPRINT(Sawsbuck) + .levelUpLearnset = sSawsbuckLevelUpLearnset, + .teachableLearnset = sSawsbuckTeachableLearnset, + .formSpeciesIdTable = sSawsbuckFormSpeciesIdTable, }, [SPECIES_SAWSBUCK_AUTUMN] = { - SAWSBUCK_MISC_INFO, + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 95, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GRASS), + .catchRate = 75, + .expYield = 166, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Sawsbuck"), + .cryId = CRY_SAWSBUCK, + .natDexNum = NATIONAL_DEX_SAWSBUCK, + .categoryName = _("Season"), + .height = 19, + .weight = 925, .description = COMPOUND_STRING( "Sawsbuck in their Autumn Form are\n" "known for having very short\n" "tempers. The males fight each other\n" "incessantly."), - FRONT_PIC(SawsbuckAutumn, 64, 64), - BACK_PIC(SawsbuckAutumn, 64, 64), - PALETTES(SawsbuckAutumn), - ICON(SawsbuckAutumn, 1), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_SawsbuckAutumn, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Sawsbuck, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_SawsbuckAutumn, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + .palette = gMonPalette_SawsbuckAutumn, + .shinyPalette = gMonShinyPalette_SawsbuckAutumn, + .iconSprite = gMonIcon_SawsbuckAutumn, + .iconPalIndex = 1, + FOOTPRINT(Sawsbuck) + .levelUpLearnset = sSawsbuckLevelUpLearnset, + .teachableLearnset = sSawsbuckTeachableLearnset, + .formSpeciesIdTable = sSawsbuckFormSpeciesIdTable, }, [SPECIES_SAWSBUCK_WINTER] = { - SAWSBUCK_MISC_INFO, + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 95, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GRASS), + .catchRate = 75, + .expYield = 166, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Sawsbuck"), + .cryId = CRY_SAWSBUCK, + .natDexNum = NATIONAL_DEX_SAWSBUCK, + .categoryName = _("Season"), + .height = 19, + .weight = 925, .description = COMPOUND_STRING( "Though there are many enthusiasts\n" "for Sawsbuck as a species, this\n" "seasonal form in particular is not\n" "very popular."), - FRONT_PIC(SawsbuckWinter, 56, 64), - BACK_PIC(SawsbuckWinter, 48, 64), - PALETTES(SawsbuckWinter), - ICON(SawsbuckWinter, 1), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_SawsbuckWinter, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Sawsbuck, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_SawsbuckWinter, + .backPicSize = MON_COORDS_SIZE(48, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + .palette = gMonPalette_SawsbuckWinter, + .shinyPalette = gMonShinyPalette_SawsbuckWinter, + .iconSprite = gMonIcon_SawsbuckWinter, + .iconPalIndex = 1, + FOOTPRINT(Sawsbuck) + .levelUpLearnset = sSawsbuckLevelUpLearnset, + .teachableLearnset = sSawsbuckTeachableLearnset, + .formSpeciesIdTable = sSawsbuckFormSpeciesIdTable, }, #endif //P_FAMILY_DEERLING @@ -5277,7 +6351,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 103, .baseSpAttack = 75, .baseSpDefense = 60, - .types = { TYPE_ELECTRIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FLYING), .catchRate = 200, .expYield = 150, .evYield_Speed = 2, @@ -5285,7 +6359,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STATIC, ABILITY_NONE, ABILITY_MOTOR_DRIVE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Emolga"), @@ -5303,18 +6377,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Emolga, 64, 48), + .frontPic = gMonFrontPic_Emolga, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Emolga, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .enemyMonElevation = 19, - BACK_PIC(Emolga, 56, 40), + .backPic = gMonBackPic_Emolga, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 16, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Emolga), - ICON(Emolga, 2), - .footprint = gMonFootprint_Emolga, - LEARNSETS(Emolga), + .palette = gMonPalette_Emolga, + .shinyPalette = gMonShinyPalette_Emolga, + .iconSprite = gMonIcon_Emolga, + .iconPalIndex = 2, + FOOTPRINT(Emolga) + .levelUpLearnset = sEmolgaLevelUpLearnset, + .teachableLearnset = sEmolgaTeachableLearnset, }, #endif //P_FAMILY_EMOLGA @@ -5327,7 +6406,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 40, .baseSpDefense = 45, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 200, .expYield = 63, .evYield_Attack = 1, @@ -5335,7 +6414,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_SHED_SKIN, ABILITY_NO_GUARD }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Karrablast"), @@ -5353,17 +6432,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Karrablast, 40, 48), + .frontPic = gMonFrontPic_Karrablast, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Karrablast, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Karrablast, 48, 48), + .backPic = gMonBackPic_Karrablast, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 14, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Karrablast), - ICON(Karrablast, 0), - .footprint = gMonFootprint_Karrablast, - LEARNSETS(Karrablast), + .palette = gMonPalette_Karrablast, + .shinyPalette = gMonShinyPalette_Karrablast, + .iconSprite = gMonIcon_Karrablast, + .iconPalIndex = 0, + FOOTPRINT(Karrablast) + .levelUpLearnset = sKarrablastLevelUpLearnset, + .teachableLearnset = sKarrablastTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE_SPECIFIC_MON, SPECIES_SHELMET, SPECIES_ESCAVALIER}), }, @@ -5375,7 +6459,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 20, .baseSpAttack = 60, .baseSpDefense = 105, - .types = { TYPE_BUG, TYPE_STEEL }, + .types = MON_TYPES(TYPE_BUG, TYPE_STEEL), .catchRate = 75, .expYield = 173, .evYield_Attack = 2, @@ -5383,7 +6467,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_SHELL_ARMOR, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Escavalier"), @@ -5401,17 +6485,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Escavalier, 64, 64), + .frontPic = gMonFrontPic_Escavalier, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Escavalier, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Escavalier, 64, 56), + .backPic = gMonBackPic_Escavalier, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Escavalier), - ICON(Escavalier, 0), - .footprint = gMonFootprint_Escavalier, - LEARNSETS(Escavalier), + .palette = gMonPalette_Escavalier, + .shinyPalette = gMonShinyPalette_Escavalier, + .iconSprite = gMonIcon_Escavalier, + .iconPalIndex = 0, + FOOTPRINT(Escavalier) + .levelUpLearnset = sEscavalierLevelUpLearnset, + .teachableLearnset = sEscavalierTeachableLearnset, }, #endif //P_FAMILY_KARRABLAST @@ -5424,7 +6513,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 15, .baseSpAttack = 55, .baseSpDefense = 55, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 190, .expYield = 59, .evYield_HP = 1, @@ -5434,7 +6523,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_EFFECT_SPORE, ABILITY_NONE, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Foongus"), @@ -5452,17 +6541,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Foongus, 32, 32), + .frontPic = gMonFrontPic_Foongus, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Foongus, .frontAnimId = ANIM_SWING_CONCAVE_FAST, - BACK_PIC(Foongus, 48, 40), + .backPic = gMonBackPic_Foongus, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Foongus), - ICON(Foongus, 0), - .footprint = gMonFootprint_Foongus, - LEARNSETS(Foongus), + .palette = gMonPalette_Foongus, + .shinyPalette = gMonShinyPalette_Foongus, + .iconSprite = gMonIcon_Foongus, + .iconPalIndex = 0, + FOOTPRINT(Foongus) + .levelUpLearnset = sFoongusLevelUpLearnset, + .teachableLearnset = sFoongusTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 39, SPECIES_AMOONGUSS}), }, @@ -5474,7 +6568,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 30, .baseSpAttack = 85, .baseSpDefense = 80, - .types = { TYPE_GRASS, TYPE_POISON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_POISON), .catchRate = 75, .expYield = 162, .evYield_HP = 2, @@ -5484,7 +6578,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_EFFECT_SPORE, ABILITY_NONE, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_WHITE, .noFlip = TRUE, @@ -5503,17 +6597,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Amoonguss, 56, 56), + .frontPic = gMonFrontPic_Amoonguss, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Amoonguss, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Amoonguss, 64, 48), + .backPic = gMonBackPic_Amoonguss, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Amoonguss), - ICON(Amoonguss, 1), - .footprint = gMonFootprint_Amoonguss, - LEARNSETS(Amoonguss), + .palette = gMonPalette_Amoonguss, + .shinyPalette = gMonShinyPalette_Amoonguss, + .iconSprite = gMonIcon_Amoonguss, + .iconPalIndex = 1, + FOOTPRINT(Amoonguss) + .levelUpLearnset = sAmoongussLevelUpLearnset, + .teachableLearnset = sAmoongussTeachableLearnset, }, #endif //P_FAMILY_FOONGUS @@ -5526,7 +6625,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 40, .baseSpAttack = 65, .baseSpDefense = 85, - .types = { TYPE_WATER, TYPE_GHOST }, + .types = MON_TYPES(TYPE_WATER, TYPE_GHOST), .catchRate = 190, .expYield = 67, .evYield_SpDefense = 1, @@ -5534,7 +6633,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_WATER_ABSORB, ABILITY_CURSED_BODY, ABILITY_DAMP }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Frillish"), @@ -5552,21 +6651,30 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Frillish, 56, 56), - FRONT_PIC_FEMALE(Frillish, 56, 56), + .frontPic = gMonFrontPic_Frillish, + .frontPicFemale = gMonFrontPic_FrillishF, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Frillish, .frontAnimId = ANIM_RISING_WOBBLE, - BACK_PIC(Frillish, 40, 56), - BACK_PIC_FEMALE(Frillish, 40, 56), + .backPic = gMonBackPic_Frillish, + .backPicFemale = gMonBackPic_FrillishF, + .backPicSize = MON_COORDS_SIZE(40, 56), + .backPicSizeFemale = MON_COORDS_SIZE(40, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Frillish), - PALETTE_FEMALE(Frillish), - ICON(Frillish, 0), - ICON_FEMALE(Frillish, 1), - .footprint = gMonFootprint_Frillish, - LEARNSETS(Frillish), + .palette = gMonPalette_Frillish, + .paletteFemale = gMonPalette_FrillishF, + .shinyPalette = gMonShinyPalette_Frillish, + .shinyPaletteFemale = gMonShinyPalette_FrillishF, + .iconSprite = gMonIcon_Frillish, + .iconSpriteFemale = gMonIcon_FrillishF, + .iconPalIndex = 0, + .iconPalIndexFemale = 1, + FOOTPRINT(Frillish) + .levelUpLearnset = sFrillishLevelUpLearnset, + .teachableLearnset = sFrillishTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_JELLICENT}), }, @@ -5578,7 +6686,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 85, .baseSpDefense = 105, - .types = { TYPE_WATER, TYPE_GHOST }, + .types = MON_TYPES(TYPE_WATER, TYPE_GHOST), .catchRate = 60, .expYield = 168, .evYield_SpDefense = 2, @@ -5586,7 +6694,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_WATER_ABSORB, ABILITY_CURSED_BODY, ABILITY_DAMP }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Jellicent"), @@ -5604,21 +6712,30 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(Jellicent, 64, 64), - FRONT_PIC_FEMALE(Jellicent, 64, 64), + .frontPic = gMonFrontPic_Jellicent, + .frontPicFemale = gMonFrontPic_JellicentF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Jellicent, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Jellicent, 64, 48), - BACK_PIC_FEMALE(Jellicent, 64, 48), + .backPic = gMonBackPic_Jellicent, + .backPicFemale = gMonBackPic_JellicentF, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Jellicent), - PALETTE_FEMALE(Jellicent), - ICON(Jellicent, 0), - ICON_FEMALE(Jellicent, 1), - .footprint = gMonFootprint_Jellicent, - LEARNSETS(Jellicent), + .palette = gMonPalette_Jellicent, + .paletteFemale = gMonPalette_JellicentF, + .shinyPalette = gMonShinyPalette_Jellicent, + .shinyPaletteFemale = gMonShinyPalette_JellicentF, + .iconSprite = gMonIcon_Jellicent, + .iconSpriteFemale = gMonIcon_JellicentF, + .iconPalIndex = 0, + .iconPalIndexFemale = 1, + FOOTPRINT(Jellicent) + .levelUpLearnset = sJellicentLevelUpLearnset, + .teachableLearnset = sJellicentTeachableLearnset, }, #endif //P_FAMILY_FRILLISH @@ -5631,7 +6748,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 40, .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 75, .expYield = 165, .evYield_HP = 2, @@ -5639,7 +6756,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_2), .abilities = { ABILITY_HEALER, ABILITY_HYDRATION, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Alomomola"), @@ -5657,17 +6774,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Alomomola, 32, 64), + .frontPic = gMonFrontPic_Alomomola, + .frontPicSize = MON_COORDS_SIZE(32, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Alomomola, .frontAnimId = ANIM_SWING_CONCAVE, - BACK_PIC(Alomomola, 48, 64), + .backPic = gMonBackPic_Alomomola, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Alomomola), - ICON(Alomomola, 0), - .footprint = gMonFootprint_Alomomola, - LEARNSETS(Alomomola), + .palette = gMonPalette_Alomomola, + .shinyPalette = gMonShinyPalette_Alomomola, + .iconSprite = gMonIcon_Alomomola, + .iconPalIndex = 0, + FOOTPRINT(Alomomola) + .levelUpLearnset = sAlomomolaLevelUpLearnset, + .teachableLearnset = sAlomomolaTeachableLearnset, }, #endif //P_FAMILY_ALOMOMOLA @@ -5680,7 +6802,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 57, .baseSpDefense = 50, - .types = { TYPE_BUG, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_BUG, TYPE_ELECTRIC), .catchRate = 190, .expYield = 64, .evYield_Speed = 1, @@ -5688,7 +6810,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_COMPOUND_EYES, ABILITY_UNNERVE, ABILITY_SWARM }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Joltik"), @@ -5706,17 +6828,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Joltik, 32, 32), + .frontPic = gMonFrontPic_Joltik, + .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Joltik, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Joltik, 48, 32), + .backPic = gMonBackPic_Joltik, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 19, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Joltik), - ICON(Joltik, 0), - .footprint = gMonFootprint_Joltik, - LEARNSETS(Joltik), + .palette = gMonPalette_Joltik, + .shinyPalette = gMonShinyPalette_Joltik, + .iconSprite = gMonIcon_Joltik, + .iconPalIndex = 0, + FOOTPRINT(Joltik) + .levelUpLearnset = sJoltikLevelUpLearnset, + .teachableLearnset = sJoltikTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_GALVANTULA}), }, @@ -5728,7 +6855,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 108, .baseSpAttack = 97, .baseSpDefense = 60, - .types = { TYPE_BUG, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_BUG, TYPE_ELECTRIC), .catchRate = 75, .expYield = 165, .evYield_Speed = 2, @@ -5736,7 +6863,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_COMPOUND_EYES, ABILITY_UNNERVE, ABILITY_SWARM }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Galvantula"), @@ -5754,17 +6881,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 10, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Galvantula, 56, 48), + .frontPic = gMonFrontPic_Galvantula, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Galvantula, .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, - BACK_PIC(Galvantula, 64, 40), + .backPic = gMonBackPic_Galvantula, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 18, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Galvantula), - ICON(Galvantula, 2), - .footprint = gMonFootprint_Galvantula, - LEARNSETS(Galvantula), + .palette = gMonPalette_Galvantula, + .shinyPalette = gMonShinyPalette_Galvantula, + .iconSprite = gMonIcon_Galvantula, + .iconPalIndex = 2, + FOOTPRINT(Galvantula) + .levelUpLearnset = sGalvantulaLevelUpLearnset, + .teachableLearnset = sGalvantulaTeachableLearnset, }, #endif //P_FAMILY_JOLTIK @@ -5777,7 +6909,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 10, .baseSpAttack = 24, .baseSpDefense = 86, - .types = { TYPE_GRASS, TYPE_STEEL }, + .types = MON_TYPES(TYPE_GRASS, TYPE_STEEL), .catchRate = 255, .expYield = 61, .evYield_Defense = 1, @@ -5786,8 +6918,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_IRON_BARBS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_MINERAL), + .abilities = { ABILITY_IRON_BARBS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Ferroseed"), .cryId = CRY_FERROSEED, @@ -5804,17 +6936,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ferroseed, 32, 40), + .frontPic = gMonFrontPic_Ferroseed, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Ferroseed, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Ferroseed, 48, 40), + .backPic = gMonBackPic_Ferroseed, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 15, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Ferroseed), - ICON(Ferroseed, 1), - .footprint = gMonFootprint_Ferroseed, - LEARNSETS(Ferroseed), + .palette = gMonPalette_Ferroseed, + .shinyPalette = gMonShinyPalette_Ferroseed, + .iconSprite = gMonIcon_Ferroseed, + .iconPalIndex = 1, + FOOTPRINT(Ferroseed) + .levelUpLearnset = sFerroseedLevelUpLearnset, + .teachableLearnset = sFerroseedTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_FERROTHORN}), }, @@ -5826,7 +6963,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 20, .baseSpAttack = 54, .baseSpDefense = 116, - .types = { TYPE_GRASS, TYPE_STEEL }, + .types = MON_TYPES(TYPE_GRASS, TYPE_STEEL), .catchRate = 90, .expYield = 171, .evYield_Defense = 2, @@ -5835,7 +6972,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_MINERAL), .abilities = { ABILITY_IRON_BARBS, ABILITY_NONE, ABILITY_ANTICIPATION }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Ferrothorn"), @@ -5853,18 +6990,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Ferrothorn, 64, 64), + .frontPic = gMonFrontPic_Ferrothorn, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Ferrothorn, .frontAnimId = ANIM_V_SHAKE, .enemyMonElevation = 10, - BACK_PIC(Ferrothorn, 64, 40), + .backPic = gMonBackPic_Ferrothorn, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Ferrothorn), - ICON(Ferrothorn, 1), - .footprint = gMonFootprint_Ferrothorn, - LEARNSETS(Ferrothorn), + .palette = gMonPalette_Ferrothorn, + .shinyPalette = gMonShinyPalette_Ferrothorn, + .iconSprite = gMonIcon_Ferrothorn, + .iconPalIndex = 1, + FOOTPRINT(Ferrothorn) + .levelUpLearnset = sFerrothornLevelUpLearnset, + .teachableLearnset = sFerrothornTeachableLearnset, }, #endif //P_FAMILY_FERROSEED @@ -5877,7 +7019,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 30, .baseSpAttack = 45, .baseSpDefense = 60, - .types = { TYPE_STEEL, TYPE_STEEL }, + .types = MON_TYPES(TYPE_STEEL), .catchRate = 130, .expYield = 60, .evYield_Defense = 1, @@ -5885,7 +7027,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_PLUS, ABILITY_MINUS, ABILITY_CLEAR_BODY }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -5904,18 +7046,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Klink, 48, 40), + .frontPic = gMonFrontPic_Klink, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Klink, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .enemyMonElevation = 12, - BACK_PIC(Klink, 64, 64), + .backPic = gMonBackPic_Klink, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 17, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Klink), - ICON(Klink, 0), - .footprint = gMonFootprint_Klink, - LEARNSETS(Klink), + .palette = gMonPalette_Klink, + .shinyPalette = gMonShinyPalette_Klink, + .iconSprite = gMonIcon_Klink, + .iconPalIndex = 0, + FOOTPRINT(Klink) + .levelUpLearnset = sKlinkLevelUpLearnset, + .teachableLearnset = sKlinkTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_KLANG}), }, @@ -5927,7 +7074,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 50, .baseSpAttack = 70, .baseSpDefense = 85, - .types = { TYPE_STEEL, TYPE_STEEL }, + .types = MON_TYPES(TYPE_STEEL), .catchRate = 60, .expYield = 154, .evYield_Defense = 2, @@ -5935,7 +7082,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_PLUS, ABILITY_MINUS, ABILITY_CLEAR_BODY }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -5954,18 +7101,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Klang, 64, 56), + .frontPic = gMonFrontPic_Klang, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Klang, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .enemyMonElevation = 8, - BACK_PIC(Klang, 64, 64), + .backPic = gMonBackPic_Klang, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Klang), - ICON(Klang, 0), - .footprint = gMonFootprint_Klang, - LEARNSETS(Klang), + .palette = gMonPalette_Klang, + .shinyPalette = gMonShinyPalette_Klang, + .iconSprite = gMonIcon_Klang, + .iconPalIndex = 0, + FOOTPRINT(Klang) + .levelUpLearnset = sKlangLevelUpLearnset, + .teachableLearnset = sKlangTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 49, SPECIES_KLINKLANG}), }, @@ -5977,15 +7129,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 90, .baseSpAttack = 70, .baseSpDefense = 85, - .types = { TYPE_STEEL, TYPE_STEEL }, + .types = MON_TYPES(TYPE_STEEL), .catchRate = 30, - .expYield = 234, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 260 : 234, .evYield_Defense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_PLUS, ABILITY_MINUS, ABILITY_CLEAR_BODY }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -6004,18 +7156,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Klinklang, 64, 64), + .frontPic = gMonFrontPic_Klinklang, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Klinklang, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .enemyMonElevation = 4, - BACK_PIC(Klinklang, 64, 64), + .backPic = gMonBackPic_Klinklang, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - PALETTES(Klinklang), - ICON(Klinklang, 0), - .footprint = gMonFootprint_Klinklang, - LEARNSETS(Klinklang), + .palette = gMonPalette_Klinklang, + .shinyPalette = gMonShinyPalette_Klinklang, + .iconSprite = gMonIcon_Klinklang, + .iconPalIndex = 0, + FOOTPRINT(Klinklang) + .levelUpLearnset = sKlinklangLevelUpLearnset, + .teachableLearnset = sKlinklangTeachableLearnset, }, #endif //P_FAMILY_KLINK @@ -6028,7 +7185,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 45, .baseSpDefense = 40, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 190, .expYield = 55, .evYield_Speed = 1, @@ -6036,8 +7193,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Tynamo"), .cryId = CRY_TYNAMO, @@ -6054,18 +7211,24 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tynamo, 40, 24), + .frontPic = gMonFrontPic_Tynamo, + .frontPicSize = MON_COORDS_SIZE(40, 24), .frontPicYOffset = 22, .frontAnimFrames = sAnims_Tynamo, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .enemyMonElevation = 16, - BACK_PIC(Tynamo, 64, 24), + .backPic = gMonBackPic_Tynamo, + .backPicSize = MON_COORDS_SIZE(64, 24), .backPicYOffset = 21, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Tynamo), - ICON(Tynamo, 0), - .footprint = gMonFootprint_Tynamo, - LEARNSETS(Tynamo), + .palette = gMonPalette_Tynamo, + .shinyPalette = gMonShinyPalette_Tynamo, + .iconSprite = gMonIcon_Tynamo, + .iconPalIndex = 0, + FOOTPRINT(Tynamo) + .tmIlliterate = TRUE, + .levelUpLearnset = sTynamoLevelUpLearnset, + .teachableLearnset = sTynamoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 39, SPECIES_EELEKTRIK}), }, @@ -6077,7 +7240,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 40, .baseSpAttack = 75, .baseSpDefense = 70, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 60, .expYield = 142, .evYield_Attack = 2, @@ -6085,8 +7248,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Eelektrik"), .cryId = CRY_EELEKTRIK, @@ -6103,18 +7266,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Eelektrik, 48, 64), + .frontPic = gMonFrontPic_Eelektrik, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Eelektrik, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(Eelektrik, 56, 64), + .backPic = gMonBackPic_Eelektrik, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Eelektrik), - ICON(Eelektrik, 0), - .footprint = gMonFootprint_Eelektrik, - LEARNSETS(Eelektrik), + .palette = gMonPalette_Eelektrik, + .shinyPalette = gMonShinyPalette_Eelektrik, + .iconSprite = gMonIcon_Eelektrik, + .iconPalIndex = 0, + FOOTPRINT(Eelektrik) + .levelUpLearnset = sEelektrikLevelUpLearnset, + .teachableLearnset = sEelektrikTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_EELEKTROSS}), }, @@ -6126,16 +7294,16 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 50, .baseSpAttack = 105, .baseSpDefense = 80, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 30, - .expYield = 232, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 258 : 232, .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Eelektross"), .cryId = CRY_EELEKTROSS, @@ -6152,18 +7320,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 365, .trainerOffset = 7, - FRONT_PIC(Eelektross, 64, 56), + .frontPic = gMonFrontPic_Eelektross, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Eelektross, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW, .enemyMonElevation = 8, - BACK_PIC(Eelektross, 64, 64), + .backPic = gMonBackPic_Eelektross, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Eelektross), - ICON(Eelektross, 0), - .footprint = gMonFootprint_Eelektross, - LEARNSETS(Eelektross), + .palette = gMonPalette_Eelektross, + .shinyPalette = gMonShinyPalette_Eelektross, + .iconSprite = gMonIcon_Eelektross, + .iconPalIndex = 0, + FOOTPRINT(Eelektross) + .levelUpLearnset = sEelektrossLevelUpLearnset, + .teachableLearnset = sEelektrossTeachableLearnset, }, #endif //P_FAMILY_TYNAMO @@ -6176,7 +7349,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 30, .baseSpAttack = 85, .baseSpDefense = 55, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 255, .expYield = 67, .evYield_SpAttack = 1, @@ -6184,7 +7357,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_TELEPATHY, ABILITY_SYNCHRONIZE, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Elgyem"), @@ -6202,17 +7375,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Elgyem, 32, 48), + .frontPic = gMonFrontPic_Elgyem, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Elgyem, .frontAnimId = ANIM_RISING_WOBBLE, - BACK_PIC(Elgyem, 48, 56), + .backPic = gMonBackPic_Elgyem, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Elgyem), - ICON(Elgyem, 0), - .footprint = gMonFootprint_Elgyem, - LEARNSETS(Elgyem), + .palette = gMonPalette_Elgyem, + .shinyPalette = gMonShinyPalette_Elgyem, + .iconSprite = gMonIcon_Elgyem, + .iconPalIndex = 0, + FOOTPRINT(Elgyem) + .levelUpLearnset = sElgyemLevelUpLearnset, + .teachableLearnset = sElgyemTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_BEHEEYEM}), }, @@ -6224,7 +7402,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 40, .baseSpAttack = 125, .baseSpDefense = 95, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 90, .expYield = 170, .evYield_SpAttack = 2, @@ -6232,7 +7410,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_TELEPATHY, ABILITY_SYNCHRONIZE, ABILITY_ANALYTIC }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Beheeyem"), @@ -6250,17 +7428,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Beheeyem, 48, 56), + .frontPic = gMonFrontPic_Beheeyem, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Beheeyem, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Beheeyem, 64, 64), + .backPic = gMonBackPic_Beheeyem, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Beheeyem), - ICON(Beheeyem, 2), - .footprint = gMonFootprint_Beheeyem, - LEARNSETS(Beheeyem), + .palette = gMonPalette_Beheeyem, + .shinyPalette = gMonShinyPalette_Beheeyem, + .iconSprite = gMonIcon_Beheeyem, + .iconPalIndex = 2, + FOOTPRINT(Beheeyem) + .levelUpLearnset = sBeheeyemLevelUpLearnset, + .teachableLearnset = sBeheeyemTeachableLearnset, }, #endif //P_FAMILY_ELGYEM @@ -6273,7 +7456,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 20, .baseSpAttack = 65, .baseSpDefense = 55, - .types = { TYPE_GHOST, TYPE_FIRE }, + .types = MON_TYPES(TYPE_GHOST, TYPE_FIRE), .catchRate = 190, .expYield = 55, .evYield_SpAttack = 1, @@ -6281,12 +7464,12 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR }, - #else - .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR }, + #else + .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG }, + #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = TRUE, .speciesName = _("Litwick"), @@ -6304,17 +7487,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Litwick, 32, 40), + .frontPic = gMonFrontPic_Litwick, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Litwick, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Litwick, 40, 40), + .backPic = gMonBackPic_Litwick, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Litwick), - ICON(Litwick, 2), - .footprint = gMonFootprint_Litwick, - LEARNSETS(Litwick), + .palette = gMonPalette_Litwick, + .shinyPalette = gMonShinyPalette_Litwick, + .iconSprite = gMonIcon_Litwick, + .iconPalIndex = 2, + FOOTPRINT(Litwick) + .levelUpLearnset = sLitwickLevelUpLearnset, + .teachableLearnset = sLitwickTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 41, SPECIES_LAMPENT}), }, @@ -6326,7 +7514,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 55, .baseSpAttack = 95, .baseSpDefense = 60, - .types = { TYPE_GHOST, TYPE_FIRE }, + .types = MON_TYPES(TYPE_GHOST, TYPE_FIRE), .catchRate = 90, .expYield = 130, .evYield_SpAttack = 2, @@ -6334,12 +7522,12 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR }, - #else - .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR }, + #else + .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG }, + #endif .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Lampent"), .cryId = CRY_LAMPENT, @@ -6356,18 +7544,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lampent, 56, 48), + .frontPic = gMonFrontPic_Lampent, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Lampent, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 6, - BACK_PIC(Lampent, 56, 48), + .backPic = gMonBackPic_Lampent, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Lampent), - ICON(Lampent, 2), - .footprint = gMonFootprint_Lampent, - LEARNSETS(Lampent), + .palette = gMonPalette_Lampent, + .shinyPalette = gMonShinyPalette_Lampent, + .iconSprite = gMonIcon_Lampent, + .iconPalIndex = 2, + FOOTPRINT(Lampent) + .levelUpLearnset = sLampentLevelUpLearnset, + .teachableLearnset = sLampentTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_DUSK_STONE, SPECIES_CHANDELURE}), }, @@ -6379,20 +7572,20 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 80, .baseSpAttack = 145, .baseSpDefense = 90, - .types = { TYPE_GHOST, TYPE_FIRE }, + .types = MON_TYPES(TYPE_GHOST, TYPE_FIRE), .catchRate = 45, - .expYield = 234, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 260 : 234, .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR }, - #else - .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG }, - #endif + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR }, + #else + .abilities = { ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG }, + #endif .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Chandelure"), .cryId = CRY_CHANDELURE, @@ -6409,18 +7602,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Chandelure, 64, 64), + .frontPic = gMonFrontPic_Chandelure, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Chandelure, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 6, - BACK_PIC(Chandelure, 64, 64), + .backPic = gMonBackPic_Chandelure, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Chandelure), - ICON(Chandelure, 2), - .footprint = gMonFootprint_Chandelure, - LEARNSETS(Chandelure), + .palette = gMonPalette_Chandelure, + .shinyPalette = gMonShinyPalette_Chandelure, + .iconSprite = gMonIcon_Chandelure, + .iconPalIndex = 2, + FOOTPRINT(Chandelure) + .levelUpLearnset = sChandelureLevelUpLearnset, + .teachableLearnset = sChandelureTeachableLearnset, }, #endif //P_FAMILY_LITWICK @@ -6433,7 +7631,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 57, .baseSpAttack = 30, .baseSpDefense = 40, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 75, .expYield = 64, .evYield_Attack = 1, @@ -6441,7 +7639,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_RIVALRY, ABILITY_MOLD_BREAKER, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Axew"), @@ -6459,17 +7657,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Axew, 40, 48), + .frontPic = gMonFrontPic_Axew, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Axew, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Axew, 48, 56), + .backPic = gMonBackPic_Axew, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Axew), - ICON(Axew, 1), - .footprint = gMonFootprint_Axew, - LEARNSETS(Axew), + .palette = gMonPalette_Axew, + .shinyPalette = gMonShinyPalette_Axew, + .iconSprite = gMonIcon_Axew, + .iconPalIndex = 1, + FOOTPRINT(Axew) + .levelUpLearnset = sAxewLevelUpLearnset, + .teachableLearnset = sAxewTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_FRAXURE}), }, @@ -6481,7 +7684,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 67, .baseSpAttack = 40, .baseSpDefense = 50, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 60, .expYield = 144, .evYield_Attack = 2, @@ -6489,7 +7692,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_RIVALRY, ABILITY_MOLD_BREAKER, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Fraxure"), @@ -6507,17 +7710,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Fraxure, 56, 56), + .frontPic = gMonFrontPic_Fraxure, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Fraxure, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Fraxure, 64, 48), + .backPic = gMonBackPic_Fraxure, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Fraxure), - ICON(Fraxure, 1), - .footprint = gMonFootprint_Fraxure, - LEARNSETS(Fraxure), + .palette = gMonPalette_Fraxure, + .shinyPalette = gMonShinyPalette_Fraxure, + .iconSprite = gMonIcon_Fraxure, + .iconPalIndex = 1, + FOOTPRINT(Fraxure) + .levelUpLearnset = sFraxureLevelUpLearnset, + .teachableLearnset = sFraxureTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 48, SPECIES_HAXORUS}), }, @@ -6529,15 +7737,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 97, .baseSpAttack = 60, .baseSpDefense = 70, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 45, - .expYield = 243, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 270 : 243, .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_RIVALRY, ABILITY_MOLD_BREAKER, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Haxorus"), @@ -6555,17 +7763,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Haxorus, 64, 64), + .frontPic = gMonFrontPic_Haxorus, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Haxorus, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Haxorus, 64, 56), + .backPic = gMonBackPic_Haxorus, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Haxorus), - ICON(Haxorus, 2), - .footprint = gMonFootprint_Haxorus, - LEARNSETS(Haxorus), + .palette = gMonPalette_Haxorus, + .shinyPalette = gMonShinyPalette_Haxorus, + .iconSprite = gMonIcon_Haxorus, + .iconPalIndex = 2, + FOOTPRINT(Haxorus) + .levelUpLearnset = sHaxorusLevelUpLearnset, + .teachableLearnset = sHaxorusTeachableLearnset, }, #endif //P_FAMILY_AXEW @@ -6578,7 +7791,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 40, .baseSpAttack = 60, .baseSpDefense = 40, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 120, .expYield = 61, .evYield_Attack = 1, @@ -6586,7 +7799,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SNOW_CLOAK, ABILITY_SLUSH_RUSH, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Cubchoo"), @@ -6604,17 +7817,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cubchoo, 32, 40), + .frontPic = gMonFrontPic_Cubchoo, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Cubchoo, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cubchoo, 40, 40), + .backPic = gMonBackPic_Cubchoo, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Cubchoo), - ICON(Cubchoo, 0), - .footprint = gMonFootprint_Cubchoo, - LEARNSETS(Cubchoo), + .palette = gMonPalette_Cubchoo, + .shinyPalette = gMonShinyPalette_Cubchoo, + .iconSprite = gMonIcon_Cubchoo, + .iconPalIndex = 0, + FOOTPRINT(Cubchoo) + .levelUpLearnset = sCubchooLevelUpLearnset, + .teachableLearnset = sCubchooTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_BEARTIC}), }, @@ -6626,15 +7844,15 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 50, .baseSpAttack = 70, .baseSpDefense = 80, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 60, - .expYield = 177, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_7) ? 177 : 170, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SNOW_CLOAK, ABILITY_SLUSH_RUSH, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Beartic"), @@ -6652,45 +7870,45 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 399, .trainerOffset = 4, - FRONT_PIC(Beartic, 64, 64), + .frontPic = gMonFrontPic_Beartic, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Beartic, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Beartic, 64, 64), + .backPic = gMonBackPic_Beartic, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Beartic), - ICON(Beartic, 0), - .footprint = gMonFootprint_Beartic, - LEARNSETS(Beartic), + .palette = gMonPalette_Beartic, + .shinyPalette = gMonShinyPalette_Beartic, + .iconSprite = gMonIcon_Beartic, + .iconPalIndex = 0, + FOOTPRINT(Beartic) + .levelUpLearnset = sBearticLevelUpLearnset, + .teachableLearnset = sBearticTeachableLearnset, }, #endif //P_FAMILY_CUBCHOO #if P_FAMILY_CRYOGONAL [SPECIES_CRYOGONAL] = { + .baseHP = P_UPDATED_STATS >= GEN_7 ? 80 : 70, .baseAttack = 50, + .baseDefense = P_UPDATED_STATS >= GEN_7 ? 50 : 30, .baseSpeed = 105, .baseSpAttack = 95, .baseSpDefense = 135, - #if P_UPDATED_STATS >= GEN_7 - .baseHP = 80, - .baseDefense = 50, - #else - .baseHP = 70, - .baseDefense = 30, - #endif - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 25, - .expYield = 180, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_7) ? 180 : 170, .evYield_SpDefense = 2, .itemRare = ITEM_NEVER_MELT_ICE, .genderRatio = MON_GENDERLESS, .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Cryogonal"), .cryId = CRY_CRYOGONAL, @@ -6707,18 +7925,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cryogonal, 56, 64), + .frontPic = gMonFrontPic_Cryogonal, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cryogonal, .frontAnimId = ANIM_SHRINK_GROW, .enemyMonElevation = 3, - BACK_PIC(Cryogonal, 56, 64), + .backPic = gMonBackPic_Cryogonal, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Cryogonal), - ICON(Cryogonal, 0), - .footprint = gMonFootprint_Cryogonal, - LEARNSETS(Cryogonal), + .palette = gMonPalette_Cryogonal, + .shinyPalette = gMonShinyPalette_Cryogonal, + .iconSprite = gMonIcon_Cryogonal, + .iconPalIndex = 0, + FOOTPRINT(Cryogonal) + .levelUpLearnset = sCryogonalLevelUpLearnset, + .teachableLearnset = sCryogonalTeachableLearnset, }, #endif //P_FAMILY_CRYOGONAL @@ -6731,7 +7954,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 25, .baseSpAttack = 40, .baseSpDefense = 65, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 200, .expYield = 61, .evYield_Defense = 1, @@ -6739,7 +7962,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_HYDRATION, ABILITY_SHELL_ARMOR, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Shelmet"), @@ -6757,17 +7980,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shelmet, 40, 40), + .frontPic = gMonFrontPic_Shelmet, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Shelmet, .frontAnimId = ANIM_TWIST, - BACK_PIC(Shelmet, 64, 32), + .backPic = gMonBackPic_Shelmet, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 19, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Shelmet), - ICON(Shelmet, 1), - .footprint = gMonFootprint_Shelmet, - LEARNSETS(Shelmet), + .palette = gMonPalette_Shelmet, + .shinyPalette = gMonShinyPalette_Shelmet, + .iconSprite = gMonIcon_Shelmet, + .iconPalIndex = 1, + FOOTPRINT(Shelmet) + .levelUpLearnset = sShelmetLevelUpLearnset, + .teachableLearnset = sShelmetTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE_SPECIFIC_MON, SPECIES_KARRABLAST, SPECIES_ACCELGOR}), }, @@ -6779,7 +8007,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 145, .baseSpAttack = 100, .baseSpDefense = 60, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 75, .expYield = 173, .evYield_Speed = 2, @@ -6787,7 +8015,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_HYDRATION, ABILITY_STICKY_HOLD, ABILITY_UNBURDEN }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Accelgor"), @@ -6805,104 +8033,133 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 9, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Accelgor, 64, 56), + .frontPic = gMonFrontPic_Accelgor, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Accelgor, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Accelgor, 64, 64), + .backPic = gMonBackPic_Accelgor, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_H_SPRING_REPEATED, - PALETTES(Accelgor), - ICON(Accelgor, 1), - .footprint = gMonFootprint_Accelgor, - LEARNSETS(Accelgor), + .palette = gMonPalette_Accelgor, + .shinyPalette = gMonShinyPalette_Accelgor, + .iconSprite = gMonIcon_Accelgor, + .iconPalIndex = 1, + FOOTPRINT(Accelgor) + .levelUpLearnset = sAccelgorLevelUpLearnset, + .teachableLearnset = sAccelgorTeachableLearnset, }, #endif //P_FAMILY_SHELMET #if P_FAMILY_STUNFISK -#define STUNFISK_MISC_INFO \ - .catchRate = 75, \ - .expYield = 165, \ - .evYield_HP = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS }, \ - .speciesName = _("Stunfisk"), \ - .cryId = CRY_STUNFISK, \ - .natDexNum = NATIONAL_DEX_STUNFISK, \ - .categoryName = _("Trap"), \ - .height = 7, \ - .pokemonScale = 365, \ - .pokemonOffset = 14, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Stunfisk, \ - .formSpeciesIdTable = sStunfiskFormSpeciesIdTable - [SPECIES_STUNFISK] = { - STUNFISK_MISC_INFO, .baseHP = 109, .baseAttack = 66, .baseDefense = 84, .baseSpeed = 32, .baseSpAttack = 81, .baseSpDefense = 99, - .types = { TYPE_GROUND, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_GROUND, TYPE_ELECTRIC), + .catchRate = 75, + .expYield = 165, + .evYield_HP = 2, .itemRare = ITEM_SOFT_SAND, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_STATIC, ABILITY_LIMBER, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Stunfisk"), + .cryId = CRY_STUNFISK, + .natDexNum = NATIONAL_DEX_STUNFISK, + .categoryName = _("Trap"), + .height = 7, .weight = 110, .description = COMPOUND_STRING( "It conceals itself in the mud of the\n" "seashore. Then it waits. When prey touch\n" "it, it delivers a jolt of electricity.\n" "It smiles when transmitting electricity."), - FRONT_PIC(Stunfisk, 56, 48), + .pokemonScale = 365, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Stunfisk, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Stunfisk, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Stunfisk, 64, 24), + .backPic = gMonBackPic_Stunfisk, + .backPicSize = MON_COORDS_SIZE(64, 24), .backPicYOffset = 22, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Stunfisk), - ICON(Stunfisk, 2), - LEARNSETS(Stunfisk), + .palette = gMonPalette_Stunfisk, + .shinyPalette = gMonShinyPalette_Stunfisk, + .iconSprite = gMonIcon_Stunfisk, + .iconPalIndex = 2, + FOOTPRINT(Stunfisk) + .levelUpLearnset = sStunfiskLevelUpLearnset, + .teachableLearnset = sStunfiskTeachableLearnset, + .formSpeciesIdTable = sStunfiskFormSpeciesIdTable, }, #if P_GALARIAN_FORMS [SPECIES_STUNFISK_GALARIAN] = { - STUNFISK_MISC_INFO, .baseHP = 109, .baseAttack = 81, .baseDefense = 99, .baseSpeed = 32, .baseSpAttack = 66, .baseSpDefense = 84, - .types = { TYPE_GROUND, TYPE_STEEL }, + .types = MON_TYPES(TYPE_GROUND, TYPE_STEEL), + .catchRate = 75, + .expYield = 165, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .abilities = { ABILITY_MIMICRY, ABILITY_NONE }, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_MIMICRY, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Stunfisk"), + .cryId = CRY_STUNFISK, + .natDexNum = NATIONAL_DEX_STUNFISK, + .categoryName = _("Trap"), + .height = 7, .weight = 205, .description = COMPOUND_STRING( "Its conspicuous lips lure prey in\n" "as it lies in wait in the mud. When\n" "prey gets close, Stunfisk clamps its\n" "jagged steel fins down on them."), - FRONT_PIC(StunfiskGalarian, 48, 40), + .pokemonScale = 365, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_StunfiskGalarian, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_StunfiskGalarian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(StunfiskGalarian, 64, 24), + .backPic = gMonBackPic_StunfiskGalarian, + .backPicSize = MON_COORDS_SIZE(64, 24), .backPicYOffset = 23, //.backAnimId = BACK_ANIM_NONE, - PALETTES(StunfiskGalarian), - ICON(StunfiskGalarian, 1), - LEARNSETS(StunfiskGalarian), + .palette = gMonPalette_StunfiskGalarian, + .shinyPalette = gMonShinyPalette_StunfiskGalarian, + .iconSprite = gMonIcon_StunfiskGalarian, + .iconPalIndex = 1, + FOOTPRINT(Stunfisk) .isGalarianForm = TRUE, + .levelUpLearnset = sStunfiskGalarianLevelUpLearnset, + .teachableLearnset = sStunfiskGalarianTeachableLearnset, + .formSpeciesIdTable = sStunfiskFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_STUNFISK @@ -6916,7 +8173,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 55, .baseSpDefense = 50, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 180, .expYield = 70, .evYield_Attack = 1, @@ -6924,7 +8181,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_INNER_FOCUS, ABILITY_REGENERATOR, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Mienfoo"), @@ -6942,17 +8199,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mienfoo, 40, 48), + .frontPic = gMonFrontPic_Mienfoo, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Mienfoo, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Mienfoo, 56, 40), + .backPic = gMonBackPic_Mienfoo, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Mienfoo), - ICON(Mienfoo, 1), - .footprint = gMonFootprint_Mienfoo, - LEARNSETS(Mienfoo), + .palette = gMonPalette_Mienfoo, + .shinyPalette = gMonShinyPalette_Mienfoo, + .iconSprite = gMonIcon_Mienfoo, + .iconPalIndex = 1, + FOOTPRINT(Mienfoo) + .levelUpLearnset = sMienfooLevelUpLearnset, + .teachableLearnset = sMienfooTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 50, SPECIES_MIENSHAO}), }, @@ -6964,7 +8226,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 105, .baseSpAttack = 95, .baseSpDefense = 60, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, .expYield = 179, .evYield_Attack = 2, @@ -6972,7 +8234,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_INNER_FOCUS, ABILITY_REGENERATOR, ABILITY_RECKLESS }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Mienshao"), @@ -6990,17 +8252,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Mienshao, 64, 56), + .frontPic = gMonFrontPic_Mienshao, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Mienshao, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Mienshao, 56, 56), + .backPic = gMonBackPic_Mienshao, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Mienshao), - ICON(Mienshao, 2), - .footprint = gMonFootprint_Mienshao, - LEARNSETS(Mienshao), + .palette = gMonPalette_Mienshao, + .shinyPalette = gMonShinyPalette_Mienshao, + .iconSprite = gMonIcon_Mienshao, + .iconPalIndex = 2, + FOOTPRINT(Mienshao) + .levelUpLearnset = sMienshaoLevelUpLearnset, + .teachableLearnset = sMienshaoTeachableLearnset, }, #endif //P_FAMILY_MIENFOO @@ -7013,7 +8280,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 48, .baseSpAttack = 60, .baseSpDefense = 90, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 45, .expYield = 170, .evYield_Attack = 2, @@ -7022,7 +8289,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON, EGG_GROUP_MONSTER), .abilities = { ABILITY_ROUGH_SKIN, ABILITY_SHEER_FORCE, ABILITY_MOLD_BREAKER }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Druddigon"), @@ -7040,17 +8307,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Druddigon, 64, 64), + .frontPic = gMonFrontPic_Druddigon, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Druddigon, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW, - BACK_PIC(Druddigon, 64, 56), + .backPic = gMonBackPic_Druddigon, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Druddigon), - ICON(Druddigon, 0), - .footprint = gMonFootprint_Druddigon, - LEARNSETS(Druddigon), + .palette = gMonPalette_Druddigon, + .shinyPalette = gMonShinyPalette_Druddigon, + .iconSprite = gMonIcon_Druddigon, + .iconPalIndex = 0, + FOOTPRINT(Druddigon) + .levelUpLearnset = sDruddigonLevelUpLearnset, + .teachableLearnset = sDruddigonTeachableLearnset, }, #endif //P_FAMILY_DRUDDIGON @@ -7063,7 +8335,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 35, .baseSpAttack = 35, .baseSpDefense = 50, - .types = { TYPE_GROUND, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GROUND, TYPE_GHOST), .catchRate = 190, .expYield = 61, .evYield_Attack = 1, @@ -7072,7 +8344,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_IRON_FIST, ABILITY_KLUTZ, ABILITY_NO_GUARD }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -7091,17 +8363,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Golett, 56, 56), + .frontPic = gMonFrontPic_Golett, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Golett, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Golett, 64, 56), + .backPic = gMonBackPic_Golett, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Golett), - ICON(Golett, 0), - .footprint = gMonFootprint_Golett, - LEARNSETS(Golett), + .palette = gMonPalette_Golett, + .shinyPalette = gMonShinyPalette_Golett, + .iconSprite = gMonIcon_Golett, + .iconPalIndex = 0, + FOOTPRINT(Golett) + .levelUpLearnset = sGolettLevelUpLearnset, + .teachableLearnset = sGolettTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 43, SPECIES_GOLURK}), }, @@ -7113,7 +8390,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 55, .baseSpAttack = 55, .baseSpDefense = 80, - .types = { TYPE_GROUND, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GROUND, TYPE_GHOST), .catchRate = 90, .expYield = 169, .evYield_Attack = 2, @@ -7122,7 +8399,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_IRON_FIST, ABILITY_KLUTZ, ABILITY_NO_GUARD }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -7141,17 +8418,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 300, .trainerOffset = 0, - FRONT_PIC(Golurk, 64, 64), + .frontPic = gMonFrontPic_Golurk, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Golurk, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Golurk, 64, 56), + .backPic = gMonBackPic_Golurk, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Golurk), - ICON(Golurk, 0), - .footprint = gMonFootprint_Golurk, - LEARNSETS(Golurk), + .palette = gMonPalette_Golurk, + .shinyPalette = gMonShinyPalette_Golurk, + .iconSprite = gMonIcon_Golurk, + .iconPalIndex = 0, + FOOTPRINT(Golurk) + .levelUpLearnset = sGolurkLevelUpLearnset, + .teachableLearnset = sGolurkTeachableLearnset, }, #endif //P_FAMILY_GOLETT @@ -7164,7 +8446,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_DARK, TYPE_STEEL }, + .types = MON_TYPES(TYPE_DARK, TYPE_STEEL), .catchRate = 120, .expYield = 68, .evYield_Attack = 1, @@ -7172,7 +8454,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_DEFIANT, ABILITY_INNER_FOCUS, ABILITY_PRESSURE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Pawniard"), @@ -7190,17 +8472,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pawniard, 56, 48), + .frontPic = gMonFrontPic_Pawniard, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Pawniard, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Pawniard, 64, 48), + .backPic = gMonBackPic_Pawniard, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Pawniard), - ICON(Pawniard, 0), - .footprint = gMonFootprint_Pawniard, - LEARNSETS(Pawniard), + .palette = gMonPalette_Pawniard, + .shinyPalette = gMonShinyPalette_Pawniard, + .iconSprite = gMonIcon_Pawniard, + .iconPalIndex = 0, + FOOTPRINT(Pawniard) + .levelUpLearnset = sPawniardLevelUpLearnset, + .teachableLearnset = sPawniardTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 52, SPECIES_BISHARP}), }, @@ -7212,7 +8499,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 70, .baseSpAttack = 60, .baseSpDefense = 70, - .types = { TYPE_DARK, TYPE_STEEL }, + .types = MON_TYPES(TYPE_DARK, TYPE_STEEL), .catchRate = 45, .expYield = 172, .evYield_Attack = 2, @@ -7220,7 +8507,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_DEFIANT, ABILITY_INNER_FOCUS, ABILITY_PRESSURE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Bisharp"), @@ -7238,17 +8525,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Bisharp, 48, 64), + .frontPic = gMonFrontPic_Bisharp, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Bisharp, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Bisharp, 64, 64), + .backPic = gMonBackPic_Bisharp, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Bisharp), - ICON(Bisharp, 0), - .footprint = gMonFootprint_Bisharp, - LEARNSETS(Bisharp), + .palette = gMonPalette_Bisharp, + .shinyPalette = gMonShinyPalette_Bisharp, + .iconSprite = gMonIcon_Bisharp, + .iconPalIndex = 0, + FOOTPRINT(Bisharp) + .levelUpLearnset = sBisharpLevelUpLearnset, + .teachableLearnset = sBisharpTeachableLearnset, .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_KINGAMBIT}), }, @@ -7261,7 +8553,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 85, - .types = { TYPE_DARK, TYPE_STEEL }, + .types = MON_TYPES(TYPE_DARK, TYPE_STEEL), .catchRate = 25, .expYield = 275, .evYield_Attack = 3, @@ -7269,7 +8561,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_DEFIANT, ABILITY_SUPREME_OVERLORD, ABILITY_PRESSURE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Kingambit"), @@ -7287,17 +8579,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kingambit, 64, 64), + .frontPic = gMonFrontPic_Kingambit, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Kingambit, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Kingambit, 64, 64), + .backPic = gMonBackPic_Kingambit, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Kingambit), - ICON(Kingambit, 3), - //.footprint = gMonFootprint_Kingambit, - LEARNSETS(Kingambit), + .palette = gMonPalette_Kingambit, + .shinyPalette = gMonShinyPalette_Kingambit, + .iconSprite = gMonIcon_Kingambit, + .iconPalIndex = 0, + //FOOTPRINT(Kingambit) + .levelUpLearnset = sKingambitLevelUpLearnset, + .teachableLearnset = sKingambitTeachableLearnset, }, #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_PAWNIARD @@ -7311,7 +8608,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 55, .baseSpAttack = 40, .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, .expYield = 172, .evYield_Attack = 2, @@ -7319,7 +8616,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RECKLESS, ABILITY_SAP_SIPPER, ABILITY_SOUNDPROOF }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Bouffalant"), @@ -7337,17 +8634,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Bouffalant, 64, 56), + .frontPic = gMonFrontPic_Bouffalant, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Bouffalant, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Bouffalant, 64, 56), + .backPic = gMonBackPic_Bouffalant, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Bouffalant), - ICON(Bouffalant, 2), - .footprint = gMonFootprint_Bouffalant, - LEARNSETS(Bouffalant), + .palette = gMonPalette_Bouffalant, + .shinyPalette = gMonShinyPalette_Bouffalant, + .iconSprite = gMonIcon_Bouffalant, + .iconPalIndex = 2, + FOOTPRINT(Bouffalant) + .levelUpLearnset = sBouffalantLevelUpLearnset, + .teachableLearnset = sBouffalantTeachableLearnset, }, #endif //P_FAMILY_BOUFFALANT @@ -7360,7 +8662,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 37, .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 190, .expYield = 70, .evYield_Attack = 1, @@ -7368,7 +8670,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_HUSTLE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Rufflet"), @@ -7386,48 +8688,48 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Rufflet, 32, 48), + .frontPic = gMonFrontPic_Rufflet, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Rufflet, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Rufflet, 48, 56), + .backPic = gMonBackPic_Rufflet, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Rufflet), - ICON(Rufflet, 2), - .footprint = gMonFootprint_Rufflet, - LEARNSETS(Rufflet), + .palette = gMonPalette_Rufflet, + .shinyPalette = gMonShinyPalette_Rufflet, + .iconSprite = gMonIcon_Rufflet, + .iconPalIndex = 2, + FOOTPRINT(Rufflet) + .levelUpLearnset = sRuffletLevelUpLearnset, + .teachableLearnset = sRuffletTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 54, SPECIES_BRAVIARY}, {EVO_NONE, 0, SPECIES_BRAVIARY_HISUIAN}), }, -#define BRAVIARY_MISC_INFO \ - .catchRate = 60, \ - .expYield = 179, \ - .genderRatio = MON_MALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, \ - .speciesName = _("Braviary"), \ - .cryId = CRY_BRAVIARY, \ - .natDexNum = NATIONAL_DEX_BRAVIARY, \ - .footprint = gMonFootprint_Braviary, \ - .formSpeciesIdTable = sBraviaryFormSpeciesIdTable - [SPECIES_BRAVIARY] = { - BRAVIARY_MISC_INFO, .baseHP = 100, .baseAttack = 123, .baseDefense = 75, .baseSpeed = 80, .baseSpAttack = 57, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), + .catchRate = 60, + .expYield = 179, .evYield_Attack = 2, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_DEFIANT }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Braviary"), + .cryId = CRY_BRAVIARY, + .natDexNum = NATIONAL_DEX_BRAVIARY, .categoryName = _("Valiant"), .height = 15, .weight = 410, @@ -7440,33 +8742,49 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Braviary, 64, 64), + .frontPic = gMonFrontPic_Braviary, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Braviary, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 6, - BACK_PIC(Braviary, 64, 48), + .backPic = gMonBackPic_Braviary, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Braviary), - ICON(Braviary, 0), - LEARNSETS(Braviary), + .palette = gMonPalette_Braviary, + .shinyPalette = gMonShinyPalette_Braviary, + .iconSprite = gMonIcon_Braviary, + .iconPalIndex = 0, + FOOTPRINT(Braviary) + .levelUpLearnset = sBraviaryLevelUpLearnset, + .teachableLearnset = sBraviaryTeachableLearnset, + .formSpeciesIdTable = sBraviaryFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_BRAVIARY_HISUIAN] = { - BRAVIARY_MISC_INFO, .baseHP = 110, .baseAttack = 83, .baseDefense = 70, .baseSpeed = 65, .baseSpAttack = 112, .baseSpDefense = 70, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), + .catchRate = 60, + .expYield = 179, .evYield_SpAttack = 2, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_TINTED_LENS }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Braviary"), + .cryId = CRY_BRAVIARY, + .natDexNum = NATIONAL_DEX_BRAVIARY, .categoryName = _("Battle Cry"), .height = 17, .weight = 434, @@ -7478,18 +8796,25 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(BraviaryHisuian, 64, 64), + .frontPic = gMonFrontPic_BraviaryHisuian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_BraviaryHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 3, - BACK_PIC(BraviaryHisuian, 64, 56), + .backPic = gMonBackPic_BraviaryHisuian, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(BraviaryHisuian), - ICON(BraviaryHisuian, 2), - LEARNSETS(BraviaryHisuian), + .palette = gMonPalette_BraviaryHisuian, + .shinyPalette = gMonShinyPalette_BraviaryHisuian, + .iconSprite = gMonIcon_BraviaryHisuian, + .iconPalIndex = 2, + FOOTPRINT(Braviary) .isHisuianForm = TRUE, + .levelUpLearnset = sBraviaryHisuianLevelUpLearnset, + .teachableLearnset = sBraviaryHisuianTeachableLearnset, + .formSpeciesIdTable = sBraviaryFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_RUFFLET @@ -7503,7 +8828,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 45, .baseSpDefense = 65, - .types = { TYPE_DARK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FLYING), .catchRate = 190, .expYield = 74, .evYield_Defense = 1, @@ -7511,7 +8836,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_BIG_PECKS, ABILITY_OVERCOAT, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Vullaby"), @@ -7529,17 +8854,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Vullaby, 56, 56), + .frontPic = gMonFrontPic_Vullaby, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Vullaby, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Vullaby, 64, 48), + .backPic = gMonBackPic_Vullaby, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 14, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Vullaby), - ICON(Vullaby, 0), - .footprint = gMonFootprint_Vullaby, - LEARNSETS(Vullaby), + .palette = gMonPalette_Vullaby, + .shinyPalette = gMonShinyPalette_Vullaby, + .iconSprite = gMonIcon_Vullaby, + .iconPalIndex = 0, + FOOTPRINT(Vullaby) + .levelUpLearnset = sVullabyLevelUpLearnset, + .teachableLearnset = sVullabyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 54, SPECIES_MANDIBUZZ}), }, @@ -7551,7 +8881,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 80, .baseSpAttack = 55, .baseSpDefense = 95, - .types = { TYPE_DARK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FLYING), .catchRate = 60, .expYield = 179, .evYield_SpAttack = 2, @@ -7559,7 +8889,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_BIG_PECKS, ABILITY_OVERCOAT, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Mandibuzz"), @@ -7577,17 +8907,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mandibuzz, 48, 64), + .frontPic = gMonFrontPic_Mandibuzz, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Mandibuzz, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Mandibuzz, 64, 48), + .backPic = gMonBackPic_Mandibuzz, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Mandibuzz), - ICON(Mandibuzz, 1), - .footprint = gMonFootprint_Mandibuzz, - LEARNSETS(Mandibuzz), + .palette = gMonPalette_Mandibuzz, + .shinyPalette = gMonShinyPalette_Mandibuzz, + .iconSprite = gMonIcon_Mandibuzz, + .iconPalIndex = 1, + FOOTPRINT(Mandibuzz) + .levelUpLearnset = sMandibuzzLevelUpLearnset, + .teachableLearnset = sMandibuzzTeachableLearnset, }, #endif //P_FAMILY_VULLABY @@ -7600,7 +8935,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 65, .baseSpAttack = 105, .baseSpDefense = 66, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 90, .expYield = 169, .evYield_SpAttack = 2, @@ -7608,7 +8943,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_GLUTTONY, ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Heatmor"), @@ -7626,17 +8961,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Heatmor, 64, 56), + .frontPic = gMonFrontPic_Heatmor, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Heatmor, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Heatmor, 64, 24), + .backPic = gMonBackPic_Heatmor, + .backPicSize = MON_COORDS_SIZE(64, 24), .backPicYOffset = 21, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Heatmor), - ICON(Heatmor, 2), - .footprint = gMonFootprint_Heatmor, - LEARNSETS(Heatmor), + .palette = gMonPalette_Heatmor, + .shinyPalette = gMonShinyPalette_Heatmor, + .iconSprite = gMonIcon_Heatmor, + .iconPalIndex = 2, + FOOTPRINT(Heatmor) + .levelUpLearnset = sHeatmorLevelUpLearnset, + .teachableLearnset = sHeatmorTeachableLearnset, }, #endif //P_FAMILY_HEATMOR @@ -7649,7 +8989,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 109, .baseSpAttack = 48, .baseSpDefense = 48, - .types = { TYPE_BUG, TYPE_STEEL }, + .types = MON_TYPES(TYPE_BUG, TYPE_STEEL), .catchRate = 90, .expYield = 169, .evYield_Defense = 2, @@ -7657,7 +8997,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_HUSTLE, ABILITY_TRUANT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Durant"), @@ -7675,17 +9015,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Durant, 48, 32), + .frontPic = gMonFrontPic_Durant, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Durant, .frontAnimId = ANIM_RAPID_H_HOPS, - BACK_PIC(Durant, 64, 32), + .backPic = gMonBackPic_Durant, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 17, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Durant), - ICON(Durant, 0), - .footprint = gMonFootprint_Durant, - LEARNSETS(Durant), + .palette = gMonPalette_Durant, + .shinyPalette = gMonShinyPalette_Durant, + .iconSprite = gMonIcon_Durant, + .iconPalIndex = 0, + FOOTPRINT(Durant) + .levelUpLearnset = sDurantLevelUpLearnset, + .teachableLearnset = sDurantTeachableLearnset, }, #endif //P_FAMILY_DURANT @@ -7698,7 +9043,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 38, .baseSpAttack = 45, .baseSpDefense = 50, - .types = { TYPE_DARK, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DARK, TYPE_DRAGON), .catchRate = 45, .expYield = 60, .evYield_Attack = 1, @@ -7706,8 +9051,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, - .abilities = { ABILITY_HUSTLE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), + .abilities = { ABILITY_HUSTLE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Deino"), .cryId = CRY_DEINO, @@ -7724,17 +9069,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Deino, 40, 48), + .frontPic = gMonFrontPic_Deino, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Deino, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Deino, 48, 48), + .backPic = gMonBackPic_Deino, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 14, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Deino), - ICON(Deino, 2), - .footprint = gMonFootprint_Deino, - LEARNSETS(Deino), + .palette = gMonPalette_Deino, + .shinyPalette = gMonShinyPalette_Deino, + .iconSprite = gMonIcon_Deino, + .iconPalIndex = 2, + FOOTPRINT(Deino) + .levelUpLearnset = sDeinoLevelUpLearnset, + .teachableLearnset = sDeinoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 50, SPECIES_ZWEILOUS}), }, @@ -7746,7 +9096,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 58, .baseSpAttack = 65, .baseSpDefense = 70, - .types = { TYPE_DARK, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DARK, TYPE_DRAGON), .catchRate = 45, .expYield = 147, .evYield_Attack = 2, @@ -7754,8 +9104,8 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, - .abilities = { ABILITY_HUSTLE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), + .abilities = { ABILITY_HUSTLE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Zweilous"), .cryId = CRY_ZWEILOUS, @@ -7772,17 +9122,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Zweilous, 64, 56), + .frontPic = gMonFrontPic_Zweilous, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Zweilous, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Zweilous, 64, 56), + .backPic = gMonBackPic_Zweilous, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Zweilous), - ICON(Zweilous, 2), - .footprint = gMonFootprint_Zweilous, - LEARNSETS(Zweilous), + .palette = gMonPalette_Zweilous, + .shinyPalette = gMonShinyPalette_Zweilous, + .iconSprite = gMonIcon_Zweilous, + .iconPalIndex = 2, + FOOTPRINT(Zweilous) + .levelUpLearnset = sZweilousLevelUpLearnset, + .teachableLearnset = sZweilousTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 64, SPECIES_HYDREIGON}), }, @@ -7794,16 +9149,16 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 98, .baseSpAttack = 125, .baseSpDefense = 90, - .types = { TYPE_DARK, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DARK, TYPE_DRAGON), .catchRate = 45, - .expYield = 270, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Hydreigon"), .cryId = CRY_HYDREIGON, @@ -7820,18 +9175,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Hydreigon, 64, 64), + .frontPic = gMonFrontPic_Hydreigon, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Hydreigon, .frontAnimId = ANIM_RISING_WOBBLE, .enemyMonElevation = 3, - BACK_PIC(Hydreigon, 64, 56), + .backPic = gMonBackPic_Hydreigon, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 11, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Hydreigon), - ICON(Hydreigon, 2), - .footprint = gMonFootprint_Hydreigon, - LEARNSETS(Hydreigon), + .palette = gMonPalette_Hydreigon, + .shinyPalette = gMonShinyPalette_Hydreigon, + .iconSprite = gMonIcon_Hydreigon, + .iconPalIndex = 2, + FOOTPRINT(Hydreigon) + .levelUpLearnset = sHydreigonLevelUpLearnset, + .teachableLearnset = sHydreigonTeachableLearnset, }, #endif //P_FAMILY_DEINO @@ -7844,7 +9204,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 60, .baseSpAttack = 50, .baseSpDefense = 55, - .types = { TYPE_BUG, TYPE_FIRE }, + .types = MON_TYPES(TYPE_BUG, TYPE_FIRE), .catchRate = 45, .expYield = 72, .evYield_Attack = 1, @@ -7852,7 +9212,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_SWARM }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Larvesta"), @@ -7870,17 +9230,22 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Larvesta, 40, 48), + .frontPic = gMonFrontPic_Larvesta, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Larvesta, .frontAnimId = ANIM_GLOW_ORANGE, - BACK_PIC(Larvesta, 64, 48), + .backPic = gMonBackPic_Larvesta, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Larvesta), - ICON(Larvesta, 0), - .footprint = gMonFootprint_Larvesta, - LEARNSETS(Larvesta), + .palette = gMonPalette_Larvesta, + .shinyPalette = gMonShinyPalette_Larvesta, + .iconSprite = gMonIcon_Larvesta, + .iconPalIndex = 0, + FOOTPRINT(Larvesta) + .levelUpLearnset = sLarvestaLevelUpLearnset, + .teachableLearnset = sLarvestaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 59, SPECIES_VOLCARONA}), }, @@ -7892,9 +9257,9 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 100, .baseSpAttack = 135, .baseSpDefense = 105, - .types = { TYPE_BUG, TYPE_FIRE }, + .types = MON_TYPES(TYPE_BUG, TYPE_FIRE), .catchRate = 15, - .expYield = 248, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 275 : 248, .evYield_SpAttack = 3, .itemCommon = ITEM_SILVER_POWDER, .itemRare = ITEM_SILVER_POWDER, @@ -7902,7 +9267,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_SWARM }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Volcarona"), @@ -7920,18 +9285,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Volcarona, 64, 56), + .frontPic = gMonFrontPic_Volcarona, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Volcarona, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 6, - BACK_PIC(Volcarona, 64, 64), + .backPic = gMonBackPic_Volcarona, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Volcarona), - ICON(Volcarona, 0), - .footprint = gMonFootprint_Volcarona, - LEARNSETS(Volcarona), + .palette = gMonPalette_Volcarona, + .shinyPalette = gMonShinyPalette_Volcarona, + .iconSprite = gMonIcon_Volcarona, + .iconPalIndex = 0, + FOOTPRINT(Volcarona) + .levelUpLearnset = sVolcaronaLevelUpLearnset, + .teachableLearnset = sVolcaronaTeachableLearnset, }, #endif //P_FAMILY_LARVESTA @@ -7944,18 +9314,17 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 108, .baseSpAttack = 90, .baseSpDefense = 72, - .types = { TYPE_STEEL, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_STEEL, TYPE_FIGHTING), .catchRate = 3, - .expYield = 261, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, .evYield_Defense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isLegendary = TRUE, .speciesName = _("Cobalion"), .cryId = CRY_COBALION, .natDexNum = NATIONAL_DEX_COBALION, @@ -7971,17 +9340,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 0, .trainerScale = 365, .trainerOffset = 7, - FRONT_PIC(Cobalion, 48, 64), + .frontPic = gMonFrontPic_Cobalion, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cobalion, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Cobalion, 48, 64), + .backPic = gMonBackPic_Cobalion, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Cobalion), - ICON(Cobalion, 0), - .footprint = gMonFootprint_Cobalion, - LEARNSETS(Cobalion), + .palette = gMonPalette_Cobalion, + .shinyPalette = gMonShinyPalette_Cobalion, + .iconSprite = gMonIcon_Cobalion, + .iconPalIndex = 0, + FOOTPRINT(Cobalion) + .isLegendary = TRUE, + .levelUpLearnset = sCobalionLevelUpLearnset, + .teachableLearnset = sCobalionTeachableLearnset, }, #endif //P_FAMILY_COBALION @@ -7994,18 +9369,17 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 108, .baseSpAttack = 72, .baseSpDefense = 90, - .types = { TYPE_ROCK, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_ROCK, TYPE_FIGHTING), .catchRate = 3, - .expYield = 261, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, - .isLegendary = TRUE, .speciesName = _("Terrakion"), .cryId = CRY_TERRAKION, .natDexNum = NATIONAL_DEX_TERRAKION, @@ -8021,17 +9395,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 336, .trainerOffset = 4, - FRONT_PIC(Terrakion, 64, 56), + .frontPic = gMonFrontPic_Terrakion, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Terrakion, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Terrakion, 64, 48), + .backPic = gMonBackPic_Terrakion, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Terrakion), - ICON(Terrakion, 2), - .footprint = gMonFootprint_Terrakion, - LEARNSETS(Terrakion), + .palette = gMonPalette_Terrakion, + .shinyPalette = gMonShinyPalette_Terrakion, + .iconSprite = gMonIcon_Terrakion, + .iconPalIndex = 2, + FOOTPRINT(Terrakion) + .isLegendary = TRUE, + .levelUpLearnset = sTerrakionLevelUpLearnset, + .teachableLearnset = sTerrakionTeachableLearnset, }, #endif //P_FAMILY_TERRAKION @@ -8044,18 +9424,17 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 108, .baseSpAttack = 90, .baseSpDefense = 129, - .types = { TYPE_GRASS, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FIGHTING), .catchRate = 3, - .expYield = 261, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, .evYield_SpDefense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, - .isLegendary = TRUE, .speciesName = _("Virizion"), .cryId = CRY_VIRIZION, .natDexNum = NATIONAL_DEX_VIRIZION, @@ -8071,54 +9450,52 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 344, .trainerOffset = 4, - FRONT_PIC(Virizion, 48, 64), + .frontPic = gMonFrontPic_Virizion, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Virizion, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Virizion, 64, 56), + .backPic = gMonBackPic_Virizion, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Virizion), - ICON(Virizion, 1), - .footprint = gMonFootprint_Virizion, - LEARNSETS(Virizion), + .palette = gMonPalette_Virizion, + .shinyPalette = gMonShinyPalette_Virizion, + .iconSprite = gMonIcon_Virizion, + .iconPalIndex = 1, + FOOTPRINT(Virizion) + .isLegendary = TRUE, + .levelUpLearnset = sVirizionLevelUpLearnset, + .teachableLearnset = sVirizionTeachableLearnset, }, #endif //P_FAMILY_VIRIZION #if P_FAMILY_TORNADUS -#define TORNADUS_MISC_INFO \ - .types = { TYPE_FLYING, TYPE_FLYING }, \ - .catchRate = 3, \ - .expYield = 261, \ - .evYield_Attack = 3, \ - .genderRatio = MON_MALE, \ - .eggCycles = 120, \ - .friendship = 90, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .isLegendary = TRUE, \ - .speciesName = _("Tornadus"), \ - .natDexNum = NATIONAL_DEX_TORNADUS, \ - .categoryName = _("Cyclone"), \ - .weight = 630, \ - .footprint = gMonFootprint_Tornadus, \ - LEARNSETS(Tornadus), \ - .formSpeciesIdTable = sTornadusFormSpeciesIdTable, \ - .formChangeTable = sTornadusFormChangeTable - [SPECIES_TORNADUS_INCARNATE] = { - TORNADUS_MISC_INFO, .baseHP = 79, .baseAttack = 115, .baseDefense = 70, .baseSpeed = 111, .baseSpAttack = 125, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_FLYING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, + .evYield_Attack = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRANKSTER, ABILITY_NONE, ABILITY_DEFIANT }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Tornadus"), .cryId = CRY_TORNADUS_INCARNATE, + .natDexNum = NATIONAL_DEX_TORNADUS, + .categoryName = _("Cyclone"), .height = 15, + .weight = 630, .description = COMPOUND_STRING( "Tornadus expels massive energy from\n" "its tail, causing severe storms.\n" @@ -8128,30 +9505,53 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(TornadusIncarnate, 64, 64), + .frontPic = gMonFrontPic_TornadusIncarnate, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_TornadusIncarnate, .frontAnimId = ANIM_FIGURE_8, .enemyMonElevation = 7, - BACK_PIC(TornadusIncarnate, 64, 64), + .backPic = gMonBackPic_TornadusIncarnate, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(TornadusIncarnate), - ICON(TornadusIncarnate, 1), + .palette = gMonPalette_TornadusIncarnate, + .shinyPalette = gMonShinyPalette_TornadusIncarnate, + .iconSprite = gMonIcon_TornadusIncarnate, + .iconPalIndex = 1, + FOOTPRINT(Tornadus) + .isLegendary = TRUE, + .levelUpLearnset = sTornadusLevelUpLearnset, + .teachableLearnset = sTornadusTeachableLearnset, + .formSpeciesIdTable = sTornadusFormSpeciesIdTable, + .formChangeTable = sTornadusFormChangeTable, }, [SPECIES_TORNADUS_THERIAN] = { - TORNADUS_MISC_INFO, .baseHP = 79, .baseAttack = 100, .baseDefense = 80, .baseSpeed = 121, .baseSpAttack = 110, .baseSpDefense = 90, + .types = MON_TYPES(TYPE_FLYING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, + .evYield_Attack = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_REGENERATOR, ABILITY_NONE, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Tornadus"), .cryId = CRY_TORNADUS_THERIAN, + .natDexNum = NATIONAL_DEX_TORNADUS, + .categoryName = _("Cyclone"), .height = 14, + .weight = 630, .description = COMPOUND_STRING( "An example of what is known as a\n" "“form change”. Tornadus has been\n" @@ -8161,52 +9561,54 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(TornadusTherian, 64, 64), + .frontPic = gMonFrontPic_TornadusTherian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_TornadusTherian, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(TornadusTherian, 56, 64), + .backPic = gMonBackPic_TornadusTherian, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(TornadusTherian), - ICON(TornadusTherian, 1), + .palette = gMonPalette_TornadusTherian, + .shinyPalette = gMonShinyPalette_TornadusTherian, + .iconSprite = gMonIcon_TornadusTherian, + .iconPalIndex = 1, + FOOTPRINT(Tornadus) + .isLegendary = TRUE, + .levelUpLearnset = sTornadusLevelUpLearnset, + .teachableLearnset = sTornadusTeachableLearnset, + .formSpeciesIdTable = sTornadusFormSpeciesIdTable, + .formChangeTable = sTornadusFormChangeTable, }, #endif //P_FAMILY_TORNADUS #if P_FAMILY_THUNDURUS -#define THUNDURUS_MISC_INFO \ - .types = { TYPE_ELECTRIC, TYPE_FLYING }, \ - .catchRate = 3, \ - .expYield = 261, \ - .genderRatio = MON_MALE, \ - .eggCycles = 120, \ - .friendship = 90, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .isLegendary = TRUE, \ - .speciesName = _("Thundurus"), \ - .natDexNum = NATIONAL_DEX_THUNDURUS, \ - .categoryName = _("Bolt Strike"), \ - .weight = 610, \ - .footprint = gMonFootprint_Thundurus, \ - LEARNSETS(Thundurus), \ - .formSpeciesIdTable = sThundurusFormSpeciesIdTable, \ - .formChangeTable = sThundurusFormChangeTable - [SPECIES_THUNDURUS_INCARNATE] = { - THUNDURUS_MISC_INFO, .baseHP = 79, .baseAttack = 115, .baseDefense = 70, .baseSpeed = 111, .baseSpAttack = 125, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FLYING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, .evYield_Attack = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PRANKSTER, ABILITY_NONE, ABILITY_DEFIANT }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Thundurus"), .cryId = CRY_THUNDURUS_INCARNATE, + .natDexNum = NATIONAL_DEX_THUNDURUS, + .categoryName = _("Bolt Strike"), .height = 15, + .weight = 610, .description = COMPOUND_STRING( "The spikes on its tail discharge immense\n" "bolts of lightning. Countless charred\n" @@ -8216,31 +9618,53 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(ThundurusIncarnate, 64, 64), + .frontPic = gMonFrontPic_ThundurusIncarnate, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_ThundurusIncarnate, .frontAnimId = ANIM_FIGURE_8, .enemyMonElevation = 7, - BACK_PIC(ThundurusIncarnate, 64, 64), + .backPic = gMonBackPic_ThundurusIncarnate, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(ThundurusIncarnate), - ICON(ThundurusIncarnate, 0), + .palette = gMonPalette_ThundurusIncarnate, + .shinyPalette = gMonShinyPalette_ThundurusIncarnate, + .iconSprite = gMonIcon_ThundurusIncarnate, + .iconPalIndex = 0, + FOOTPRINT(Thundurus) + .isLegendary = TRUE, + .levelUpLearnset = sThundurusLevelUpLearnset, + .teachableLearnset = sThundurusTeachableLearnset, + .formSpeciesIdTable = sThundurusFormSpeciesIdTable, + .formChangeTable = sThundurusFormChangeTable, }, [SPECIES_THUNDURUS_THERIAN] = { - THUNDURUS_MISC_INFO, .baseHP = 79, .baseAttack = 105, .baseDefense = 70, .baseSpeed = 101, .baseSpAttack = 145, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FLYING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, .evYield_SpAttack = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_VOLT_ABSORB, ABILITY_NONE, ABILITY_VOLT_ABSORB }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Thundurus"), .cryId = CRY_THUNDURUS_THERIAN, + .natDexNum = NATIONAL_DEX_THUNDURUS, + .categoryName = _("Bolt Strike"), .height = 30, + .weight = 610, .description = COMPOUND_STRING( "It pulverizes foes into\n" "nothingness with showers of devastatingly\n" @@ -8250,16 +9674,26 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(ThundurusTherian, 64, 64), + .frontPic = gMonFrontPic_ThundurusTherian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_ThundurusTherian, .frontAnimId = ANIM_RISING_WOBBLE, .enemyMonElevation = 7, - BACK_PIC(ThundurusTherian, 64, 64), + .backPic = gMonBackPic_ThundurusTherian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(ThundurusTherian), - ICON(ThundurusTherian, 0), + .palette = gMonPalette_ThundurusTherian, + .shinyPalette = gMonShinyPalette_ThundurusTherian, + .iconSprite = gMonIcon_ThundurusTherian, + .iconPalIndex = 0, + FOOTPRINT(Thundurus) + .isLegendary = TRUE, + .levelUpLearnset = sThundurusLevelUpLearnset, + .teachableLearnset = sThundurusTeachableLearnset, + .formSpeciesIdTable = sThundurusFormSpeciesIdTable, + .formChangeTable = sThundurusFormChangeTable, }, #endif //P_FAMILY_THUNDURUS @@ -8272,18 +9706,17 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 90, .baseSpAttack = 150, .baseSpDefense = 120, - .types = { TYPE_DRAGON, TYPE_FIRE }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FIRE), .catchRate = 3, - .expYield = 306, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_TURBOBLAZE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TURBOBLAZE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isLegendary = TRUE, .speciesName = _("Reshiram"), .cryId = CRY_RESHIRAM, .natDexNum = NATIONAL_DEX_RESHIRAM, @@ -8299,17 +9732,23 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 0, .trainerScale = 445, .trainerOffset = 8, - FRONT_PIC(Reshiram, 64, 64), + .frontPic = gMonFrontPic_Reshiram, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Reshiram, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Reshiram, 64, 64), + .backPic = gMonBackPic_Reshiram, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Reshiram), - ICON(Reshiram, 0), - .footprint = gMonFootprint_Reshiram, - LEARNSETS(Reshiram), + .palette = gMonPalette_Reshiram, + .shinyPalette = gMonShinyPalette_Reshiram, + .iconSprite = gMonIcon_Reshiram, + .iconPalIndex = 0, + FOOTPRINT(Reshiram) + .isLegendary = TRUE, + .levelUpLearnset = sReshiramLevelUpLearnset, + .teachableLearnset = sReshiramTeachableLearnset, }, #endif //P_FAMILY_RESHIRAM @@ -8322,18 +9761,17 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .baseSpeed = 90, .baseSpAttack = 120, .baseSpDefense = 100, - .types = { TYPE_DRAGON, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_ELECTRIC), .catchRate = 3, - .expYield = 306, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_TERAVOLT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TERAVOLT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, - .isLegendary = TRUE, .speciesName = _("Zekrom"), .cryId = CRY_ZEKROM, .natDexNum = NATIONAL_DEX_ZEKROM, @@ -8349,54 +9787,52 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 412, .trainerOffset = 10, - FRONT_PIC(Zekrom, 64, 64), + .frontPic = gMonFrontPic_Zekrom, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Zekrom, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Zekrom, 64, 64), + .backPic = gMonBackPic_Zekrom, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(Zekrom), - ICON(Zekrom, 2), - .footprint = gMonFootprint_Zekrom, - LEARNSETS(Zekrom), + .palette = gMonPalette_Zekrom, + .shinyPalette = gMonShinyPalette_Zekrom, + .iconSprite = gMonIcon_Zekrom, + .iconPalIndex = 2, + FOOTPRINT(Zekrom) + .isLegendary = TRUE, + .levelUpLearnset = sZekromLevelUpLearnset, + .teachableLearnset = sZekromTeachableLearnset, }, #endif //P_FAMILY_ZEKROM #if P_FAMILY_LANDORUS -#define LANDORUS_MISC_INFO \ - .types = { TYPE_GROUND, TYPE_FLYING }, \ - .catchRate = 3, \ - .expYield = 270, \ - .genderRatio = MON_MALE, \ - .eggCycles = 120, \ - .friendship = 90, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .isLegendary = TRUE, \ - .speciesName = _("Landorus"), \ - .natDexNum = NATIONAL_DEX_LANDORUS, \ - .categoryName = _("Abundance"), \ - .weight = 680, \ - .footprint = gMonFootprint_Landorus, \ - LEARNSETS(Landorus), \ - .formSpeciesIdTable = sLandorusFormSpeciesIdTable, \ - .formChangeTable = sLandorusFormChangeTable - [SPECIES_LANDORUS_INCARNATE] = { - LANDORUS_MISC_INFO, .baseHP = 89, .baseAttack = 125, .baseDefense = 90, .baseSpeed = 101, .baseSpAttack = 115, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GROUND, TYPE_FLYING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_SpAttack = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_SAND_FORCE, ABILITY_NONE, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Landorus"), .cryId = CRY_LANDORUS_INCARNATE, + .natDexNum = NATIONAL_DEX_LANDORUS, + .categoryName = _("Abundance"), .height = 15, + .weight = 680, .description = COMPOUND_STRING( "The energy that comes pouring from its tail\n" "increases the nutrition in the soil, making\n" @@ -8406,31 +9842,53 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(LandorusIncarnate, 64, 64), + .frontPic = gMonFrontPic_LandorusIncarnate, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_LandorusIncarnate, .frontAnimId = ANIM_FIGURE_8, .enemyMonElevation = 7, - BACK_PIC(LandorusIncarnate, 64, 64), + .backPic = gMonBackPic_LandorusIncarnate, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(LandorusIncarnate), - ICON(LandorusIncarnate, 0), + .palette = gMonPalette_LandorusIncarnate, + .shinyPalette = gMonShinyPalette_LandorusIncarnate, + .iconSprite = gMonIcon_LandorusIncarnate, + .iconPalIndex = 0, + FOOTPRINT(Landorus) + .isLegendary = TRUE, + .levelUpLearnset = sLandorusLevelUpLearnset, + .teachableLearnset = sLandorusTeachableLearnset, + .formSpeciesIdTable = sLandorusFormSpeciesIdTable, + .formChangeTable = sLandorusFormChangeTable, }, [SPECIES_LANDORUS_THERIAN] = { - LANDORUS_MISC_INFO, .baseHP = 89, .baseAttack = 145, .baseDefense = 90, .baseSpeed = 91, .baseSpAttack = 105, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GROUND, TYPE_FLYING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_Attack = 3, - .abilities = { ABILITY_INTIMIDATE, ABILITY_NONE }, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Landorus"), .cryId = CRY_LANDORUS_THERIAN, + .natDexNum = NATIONAL_DEX_LANDORUS, + .categoryName = _("Abundance"), .height = 13, + .weight = 680, .description = COMPOUND_STRING( "Landorus soars through the sky in\n" "this form, bestowing plentiful\n" @@ -8440,53 +9898,57 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(LandorusTherian, 64, 64), + .frontPic = gMonFrontPic_LandorusTherian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_LandorusTherian, .frontAnimId = ANIM_CIRCULAR_VIBRATE, - BACK_PIC(LandorusTherian, 64, 56), + .backPic = gMonBackPic_LandorusTherian, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(LandorusTherian), - ICON(LandorusTherian, 0), + .palette = gMonPalette_LandorusTherian, + .shinyPalette = gMonShinyPalette_LandorusTherian, + .iconSprite = gMonIcon_LandorusTherian, + .iconPalIndex = 0, + FOOTPRINT(Landorus) + .isLegendary = TRUE, + .levelUpLearnset = sLandorusLevelUpLearnset, + .teachableLearnset = sLandorusTeachableLearnset, + .formSpeciesIdTable = sLandorusFormSpeciesIdTable, + .formChangeTable = sLandorusFormChangeTable, }, #endif //P_FAMILY_LANDORUS #if P_FAMILY_KYUREM -#define KYUREM_MISC_INFO \ - .types = { TYPE_DRAGON, TYPE_ICE }, \ - .catchRate = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .noFlip = TRUE, \ - .speciesName = _("Kyurem"), \ - .natDexNum = NATIONAL_DEX_KYUREM, \ - .categoryName = _("Boundary"), \ - .weight = 3250, \ - .footprint = gMonFootprint_Kyurem, \ - .formSpeciesIdTable = sKyuremFormSpeciesIdTable, \ - .isLegendary = TRUE - [SPECIES_KYUREM] = { - KYUREM_MISC_INFO, .baseHP = 125, .baseAttack = 130, .baseDefense = 90, .baseSpeed = 95, .baseSpAttack = 130, .baseSpDefense = 90, - .expYield = 297, + .types = MON_TYPES(TYPE_DRAGON, TYPE_ICE), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 330 : 297, .evYield_HP = 1, .evYield_Attack = 1, .evYield_SpAttack = 1, - .abilities = { ABILITY_PRESSURE, ABILITY_NONE }, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Kyurem"), .cryId = CRY_KYUREM, + .natDexNum = NATIONAL_DEX_KYUREM, + .categoryName = _("Boundary"), .height = 30, + .weight = 3250, .description = COMPOUND_STRING( "This legendary ice Pokémon waits for a\n" "hero to fill in the missing parts of its\n" @@ -8496,33 +9958,59 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 356, .trainerOffset = 0, - FRONT_PIC(Kyurem, 64, 64), + .frontPic = gMonFrontPic_Kyurem, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Kyurem, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Kyurem, 64, 40), + .backPic = gMonBackPic_Kyurem, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Kyurem), - ICON(Kyurem, 0), - LEARNSETS(Kyurem), + .palette = gMonPalette_Kyurem, + .shinyPalette = gMonShinyPalette_Kyurem, + .iconSprite = gMonIcon_Kyurem, + .iconPalIndex = 0, + FOOTPRINT(Kyurem) + .isLegendary = TRUE, + .levelUpLearnset = sKyuremLevelUpLearnset, + .teachableLearnset = sKyuremTeachableLearnset, + .formSpeciesIdTable = sKyuremFormSpeciesIdTable, }, #if P_FUSION_FORMS [SPECIES_KYUREM_WHITE] = { - KYUREM_MISC_INFO, .baseHP = 125, .baseAttack = 120, .baseDefense = 90, .baseSpeed = 95, .baseSpAttack = 170, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_DRAGON, TYPE_ICE), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 350, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 315, + #else + .expYield = 297, + #endif .evYield_SpAttack = 3, - .abilities = { ABILITY_TURBOBLAZE, ABILITY_NONE }, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TURBOBLAZE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Kyurem"), .cryId = CRY_KYUREM_WHITE, + .natDexNum = NATIONAL_DEX_KYUREM, + .categoryName = _("Boundary"), .height = 36, + .weight = 3250, .description = COMPOUND_STRING( "The sameness of Reshiram's and\n" "Kyurem's genes allowed Kyurem to\n" @@ -8532,34 +10020,59 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 356, .trainerOffset = 0, - FRONT_PIC(KyuremWhite, 64, 64), + .frontPic = gMonFrontPic_KyuremWhite, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_KyuremWhite, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(KyuremWhite, 64, 64), + .backPic = gMonBackPic_KyuremWhite, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(KyuremWhite), - ICON(KyuremWhite, 0), + .palette = gMonPalette_KyuremWhite, + .shinyPalette = gMonShinyPalette_KyuremWhite, + .iconSprite = gMonIcon_KyuremWhite, + .iconPalIndex = 0, + FOOTPRINT(Kyurem) + .isLegendary = TRUE, + .cannotBeTraded = TRUE, .levelUpLearnset = sKyuremWhiteLevelUpLearnset, .teachableLearnset = sKyuremTeachableLearnset, - .cannotBeTraded = TRUE, + .formSpeciesIdTable = sKyuremFormSpeciesIdTable, }, [SPECIES_KYUREM_BLACK] = { - KYUREM_MISC_INFO, .baseHP = 125, .baseAttack = 170, .baseDefense = 100, .baseSpeed = 95, .baseSpAttack = 120, .baseSpDefense = 90, + .types = MON_TYPES(TYPE_DRAGON, TYPE_ICE), + .catchRate = 3, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 350, + #elif P_UPDATED_EXP_YIELDS >= GEN_7 .expYield = 315, + #else + .expYield = 297, + #endif .evYield_Attack = 3, - .abilities = { ABILITY_TERAVOLT, ABILITY_NONE }, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TERAVOLT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Kyurem"), .cryId = CRY_KYUREM_BLACK, + .natDexNum = NATIONAL_DEX_KYUREM, + .categoryName = _("Boundary"), .height = 33, + .weight = 3250, .description = COMPOUND_STRING( "The sameness of Zekrom's and\n" "Kyurem's genes allowed Kyurem to absorb\n" @@ -8569,233 +10082,317 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 356, .trainerOffset = 0, - FRONT_PIC(KyuremBlack, 64, 64), + .frontPic = gMonFrontPic_KyuremBlack, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_KyuremBlack, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(KyuremBlack, 64, 64), + .backPic = gMonBackPic_KyuremBlack, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, - PALETTES(KyuremBlack), - ICON(KyuremBlack, 0), + .palette = gMonPalette_KyuremBlack, + .shinyPalette = gMonShinyPalette_KyuremBlack, + .iconSprite = gMonIcon_KyuremBlack, + .iconPalIndex = 0, + FOOTPRINT(Kyurem) + .isLegendary = TRUE, + .cannotBeTraded = TRUE, .levelUpLearnset = sKyuremBlackLevelUpLearnset, .teachableLearnset = sKyuremTeachableLearnset, - .cannotBeTraded = TRUE, + .formSpeciesIdTable = sKyuremFormSpeciesIdTable, }, #endif //P_FUSION_FORMS #endif //P_FAMILY_KYUREM #if P_FAMILY_KELDEO -#define KELDEO_MISC_INFO \ - .baseHP = 91, \ - .baseAttack = 72, \ - .baseDefense = 90, \ - .baseSpeed = 108, \ - .baseSpAttack = 129, \ - .baseSpDefense = 90, \ - .types = { TYPE_WATER, TYPE_FIGHTING }, \ - .catchRate = 3, \ - .expYield = 261, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 80, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .isMythical = TRUE, \ - .speciesName = _("Keldeo"), \ - .cryId = CRY_KELDEO, \ - .natDexNum = NATIONAL_DEX_KELDEO, \ - .categoryName = _("Colt"), \ - .height = 14, \ - .weight = 485, \ - .pokemonScale = 265, \ - .pokemonOffset = 2, \ - .trainerScale = 262, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Keldeo, \ - LEARNSETS(Keldeo), \ - .formSpeciesIdTable = sKeldeoFormSpeciesIdTable, \ - .formChangeTable = sKeldeoFormChangeTable - [SPECIES_KELDEO_ORDINARY] = { - KELDEO_MISC_INFO, + .baseHP = 91, + .baseAttack = 72, + .baseDefense = 90, + .baseSpeed = 108, + .baseSpAttack = 129, + .baseSpDefense = 90, + .types = MON_TYPES(TYPE_WATER, TYPE_FIGHTING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Keldeo"), + .cryId = CRY_KELDEO, + .natDexNum = NATIONAL_DEX_KELDEO, + .categoryName = _("Colt"), + .height = 14, + .weight = 485, .description = COMPOUND_STRING( "When it is resolute, its body fills with\n" "power and it becomes swifter. It crosses\n" "the world, running over the surfaces of\n" "oceans and rivers."), - FRONT_PIC(KeldeoOrdinary, 56, 56), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + .frontPic = gMonFrontPic_KeldeoOrdinary, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_KeldeoOrdinary, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(KeldeoOrdinary, 56, 64), + .backPic = gMonBackPic_KeldeoOrdinary, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(KeldeoOrdinary), - ICON(KeldeoOrdinary, 0), + .palette = gMonPalette_KeldeoOrdinary, + .shinyPalette = gMonShinyPalette_KeldeoOrdinary, + .iconSprite = gMonIcon_KeldeoOrdinary, + .iconPalIndex = 0, + FOOTPRINT(Keldeo) + .isMythical = TRUE, + .levelUpLearnset = sKeldeoLevelUpLearnset, + .teachableLearnset = sKeldeoTeachableLearnset, + .formSpeciesIdTable = sKeldeoFormSpeciesIdTable, + .formChangeTable = sKeldeoFormChangeTable, }, [SPECIES_KELDEO_RESOLUTE] = { - KELDEO_MISC_INFO, + .baseHP = 91, + .baseAttack = 72, + .baseDefense = 90, + .baseSpeed = 108, + .baseSpAttack = 129, + .baseSpDefense = 90, + .types = MON_TYPES(TYPE_WATER, TYPE_FIGHTING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 290 : 261, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = TRUE, + .speciesName = _("Keldeo"), + .cryId = CRY_KELDEO, + .natDexNum = NATIONAL_DEX_KELDEO, + .categoryName = _("Colt"), + .height = 14, + .weight = 485, .description = COMPOUND_STRING( "The power that lay hidden in its\n" "body now covers its horn, turning it\n" "into a sword that can slice through\n" "anything."), - FRONT_PIC(KeldeoResolute, 64, 64), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + .frontPic = gMonFrontPic_KeldeoResolute, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_KeldeoResolute, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(KeldeoResolute, 64, 64), + .backPic = gMonBackPic_KeldeoResolute, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(KeldeoResolute), - ICON(KeldeoResolute, 0), + .palette = gMonPalette_KeldeoResolute, + .shinyPalette = gMonShinyPalette_KeldeoResolute, + .iconSprite = gMonIcon_KeldeoResolute, + .iconPalIndex = 0, + FOOTPRINT(Keldeo) + .isMythical = TRUE, + .levelUpLearnset = sKeldeoLevelUpLearnset, + .teachableLearnset = sKeldeoTeachableLearnset, + .formSpeciesIdTable = sKeldeoFormSpeciesIdTable, + .formChangeTable = sKeldeoFormChangeTable, }, #endif //P_FAMILY_KELDEO #if P_FAMILY_MELOETTA -#define MELOETTA_MISC_INFO \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_Speed = 1, \ - .itemCommon = ITEM_STAR_PIECE, \ - .itemRare = ITEM_STAR_PIECE, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 100, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .noFlip = TRUE, \ - .isMythical = TRUE, \ - .speciesName = _("Meloetta"), \ - .cryId = CRY_MELOETTA, \ - .natDexNum = NATIONAL_DEX_MELOETTA, \ - .categoryName = _("Melody"), \ - .height = 6, \ - .weight = 65, \ - .pokemonScale = 422, \ - .pokemonOffset = 12, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Meloetta, \ - LEARNSETS(Meloetta), \ - .formSpeciesIdTable = sMeloettaFormSpeciesIdTable, \ - .formChangeTable = sMeloettaFormChangeTable - [SPECIES_MELOETTA_ARIA] = { - MELOETTA_MISC_INFO, .baseHP = 100, .baseAttack = 77, .baseDefense = 77, .baseSpeed = 90, .baseSpAttack = 128, .baseSpDefense = 128, - .types = { TYPE_NORMAL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_PSYCHIC), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_Speed = 1, .evYield_SpAttack = 1, .evYield_SpDefense = 1, + .itemCommon = ITEM_STAR_PIECE, + .itemRare = ITEM_STAR_PIECE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = TRUE, + .speciesName = _("Meloetta"), + .cryId = CRY_MELOETTA, + .natDexNum = NATIONAL_DEX_MELOETTA, + .categoryName = _("Melody"), + .height = 6, + .weight = 65, .description = COMPOUND_STRING( "The melodies sung by Meloetta have the\n" "power to make Pokémon that hear them\n" "happy or sad. Many famous songs have been\n" "inspired by the tunes that Meloetta plays."), - FRONT_PIC(MeloettaAria, 32, 48), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MeloettaAria, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_MeloettaAria, .frontAnimId = ANIM_GROW_VIBRATE, .enemyMonElevation = 8, - BACK_PIC(MeloettaAria, 48, 56), + .backPic = gMonBackPic_MeloettaAria, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(MeloettaAria), - ICON(MeloettaAria, 4), + .palette = gMonPalette_MeloettaAria, + .shinyPalette = gMonShinyPalette_MeloettaAria, + .iconSprite = gMonIcon_MeloettaAria, + .iconPalIndex = 4, + FOOTPRINT(Meloetta) + .isMythical = TRUE, + .levelUpLearnset = sMeloettaLevelUpLearnset, + .teachableLearnset = sMeloettaTeachableLearnset, + .formSpeciesIdTable = sMeloettaFormSpeciesIdTable, + .formChangeTable = sMeloettaFormChangeTable, }, [SPECIES_MELOETTA_PIROUETTE] = { - MELOETTA_MISC_INFO, .baseHP = 100, .baseAttack = 128, .baseDefense = 90, .baseSpeed = 128, .baseSpAttack = 77, .baseSpDefense = 77, - .types = { TYPE_NORMAL, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FIGHTING), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_Attack = 1, .evYield_Defense = 1, + .evYield_Speed = 1, + .itemCommon = ITEM_STAR_PIECE, + .itemRare = ITEM_STAR_PIECE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = TRUE, + .speciesName = _("Meloetta"), + .cryId = CRY_MELOETTA, + .natDexNum = NATIONAL_DEX_MELOETTA, + .categoryName = _("Melody"), + .height = 6, + .weight = 65, .description = COMPOUND_STRING( "Meloetta's melodies are sung with\n" "a special vocalization method that can\n" "control the feelings of those who hear it."), - FRONT_PIC(MeloettaPirouette, 40, 64), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MeloettaPirouette, + .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_MeloettaPirouette, .frontAnimId = ANIM_H_SLIDE_SLOW, .enemyMonElevation = 5, - BACK_PIC(MeloettaPirouette, 56, 64), + .backPic = gMonBackPic_MeloettaPirouette, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(MeloettaPirouette), - ICON(MeloettaPirouette, 0), + .palette = gMonPalette_MeloettaPirouette, + .shinyPalette = gMonShinyPalette_MeloettaPirouette, + .iconSprite = gMonIcon_MeloettaPirouette, + .iconPalIndex = 0, + FOOTPRINT(Meloetta) + .isMythical = TRUE, + .levelUpLearnset = sMeloettaLevelUpLearnset, + .teachableLearnset = sMeloettaTeachableLearnset, + .formSpeciesIdTable = sMeloettaFormSpeciesIdTable, + .formChangeTable = sMeloettaFormChangeTable, }, #endif //P_FAMILY_MELOETTA #if P_FAMILY_GENESECT -#define GENESECT_SPECIES_INFO(form) \ - { \ - .baseHP = 71, \ - .baseAttack = 120, \ - .baseDefense = 95, \ - .baseSpeed = 99, \ - .baseSpAttack = 120, \ - .baseSpDefense = 95, \ - .types = { TYPE_BUG, TYPE_STEEL }, \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_Attack = 1, \ - .evYield_Speed = 1, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_DOWNLOAD, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Genesect"), \ - .cryId = CRY_GENESECT, \ - .natDexNum = NATIONAL_DEX_GENESECT, \ - .categoryName = _("Paleozoic"), \ - .height = 15, \ - .weight = 825, \ - .description = gGenesectPokedexText, \ - .pokemonScale = 268, \ - .pokemonOffset = 2, \ - .trainerScale = 271, \ - .trainerOffset = 0, \ - FRONT_PIC(Genesect, 56, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Genesect, \ - .frontAnimId = ANIM_H_VIBRATE, \ - BACK_PIC(Genesect, 64, 48), \ - .backPicYOffset = 8, \ - .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, \ - PALETTES(form), \ - ICON(Genesect, 2), \ - .footprint = gMonFootprint_Genesect, \ - LEARNSETS(Genesect), \ - .formSpeciesIdTable = sGenesectFormSpeciesIdTable, \ - .formChangeTable = sGenesectFormChangeTable, \ - .isMythical = TRUE, \ +#define GENESECT_SPECIES_INFO(form) \ + { \ + .baseHP = 71, \ + .baseAttack = 120, \ + .baseDefense = 95, \ + .baseSpeed = 99, \ + .baseSpAttack = 120, \ + .baseSpDefense = 95, \ + .types = MON_TYPES(TYPE_BUG, TYPE_STEEL), \ + .catchRate = 3, \ + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, \ + .evYield_Attack = 1, \ + .evYield_Speed = 1, \ + .evYield_SpAttack = 1, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), \ + .abilities = { ABILITY_DOWNLOAD, ABILITY_NONE, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .speciesName = _("Genesect"), \ + .cryId = CRY_GENESECT, \ + .natDexNum = NATIONAL_DEX_GENESECT, \ + .categoryName = _("Paleozoic"), \ + .height = 15, \ + .weight = 825, \ + .description = gGenesectPokedexText, \ + .pokemonScale = 268, \ + .pokemonOffset = 2, \ + .trainerScale = 271, \ + .trainerOffset = 0, \ + .frontPic = gMonFrontPic_Genesect, \ + .frontPicSize = MON_COORDS_SIZE(56, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Genesect, \ + .frontAnimId = ANIM_H_VIBRATE, \ + .backPic = gMonBackPic_Genesect, \ + .backPicSize = MON_COORDS_SIZE(64, 48), \ + .backPicYOffset = 8, \ + .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, \ + .palette = gMonPalette_##form, \ + .shinyPalette = gMonShinyPalette_##form, \ + .iconSprite = gMonIcon_Genesect, \ + .iconPalIndex = 2, \ + FOOTPRINT(Genesect) \ + .levelUpLearnset = sGenesectLevelUpLearnset, \ + .teachableLearnset = sGenesectTeachableLearnset, \ + .formSpeciesIdTable = sGenesectFormSpeciesIdTable, \ + .formChangeTable = sGenesectFormChangeTable, \ + .isMythical = TRUE, \ } [SPECIES_GENESECT] = GENESECT_SPECIES_INFO(Genesect), diff --git a/src/data/pokemon/species_info/gen_6.h b/src/data/pokemon/species_info/gen_6_families.h similarity index 56% rename from src/data/pokemon/species_info/gen_6.h rename to src/data/pokemon/species_info/gen_6_families.h index 93261648d..ce1f1da22 100644 --- a/src/data/pokemon/species_info/gen_6.h +++ b/src/data/pokemon/species_info/gen_6_families.h @@ -12,7 +12,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 38, .baseSpAttack = 48, .baseSpDefense = 45, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 63, .evYield_Defense = 1, @@ -20,7 +20,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Chespin"), @@ -38,17 +38,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chespin, 40, 48), + .frontPic = gMonFrontPic_Chespin, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Chespin, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Chespin, 56, 64), + .backPic = gMonBackPic_Chespin, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Chespin), - ICON(Chespin, 1), - .footprint = gMonFootprint_Chespin, - LEARNSETS(Chespin), + .palette = gMonPalette_Chespin, + .shinyPalette = gMonShinyPalette_Chespin, + .iconSprite = gMonIcon_Chespin, + .iconPalIndex = 1, + FOOTPRINT(Chespin) + .levelUpLearnset = sChespinLevelUpLearnset, + .teachableLearnset = sChespinTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_QUILLADIN}), }, @@ -60,7 +65,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 57, .baseSpAttack = 56, .baseSpDefense = 58, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 142, .evYield_Defense = 2, @@ -68,7 +73,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Quilladin"), @@ -86,17 +91,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Quilladin, 48, 48), + .frontPic = gMonFrontPic_Quilladin, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Quilladin, .frontAnimId = ANIM_LUNGE_GROW, - BACK_PIC(Quilladin, 64, 48), + .backPic = gMonBackPic_Quilladin, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_GROW, - PALETTES(Quilladin), - ICON(Quilladin, 1), - .footprint = gMonFootprint_Quilladin, - LEARNSETS(Quilladin), + .palette = gMonPalette_Quilladin, + .shinyPalette = gMonShinyPalette_Quilladin, + .iconSprite = gMonIcon_Quilladin, + .iconPalIndex = 1, + FOOTPRINT(Quilladin) + .levelUpLearnset = sQuilladinLevelUpLearnset, + .teachableLearnset = sQuilladinTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_CHESNAUGHT}), }, @@ -108,15 +118,15 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 64, .baseSpAttack = 74, .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FIGHTING), .catchRate = 45, - .expYield = 239, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 265 : 239, .evYield_Defense = 3, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Chesnaught"), @@ -134,17 +144,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Chesnaught, 64, 64), + .frontPic = gMonFrontPic_Chesnaught, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Chesnaught, .frontAnimId = ANIM_GROW_IN_STAGES, - BACK_PIC(Chesnaught, 64, 56), + .backPic = gMonBackPic_Chesnaught, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Chesnaught), - ICON(Chesnaught, 1), - .footprint = gMonFootprint_Chesnaught, - LEARNSETS(Chesnaught), + .palette = gMonPalette_Chesnaught, + .shinyPalette = gMonShinyPalette_Chesnaught, + .iconSprite = gMonIcon_Chesnaught, + .iconPalIndex = 1, + FOOTPRINT(Chesnaught) + .levelUpLearnset = sChesnaughtLevelUpLearnset, + .teachableLearnset = sChesnaughtTeachableLearnset, }, #endif //P_FAMILY_CHESPIN @@ -157,7 +172,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 60, .baseSpAttack = 62, .baseSpDefense = 60, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 61, .evYield_SpAttack = 1, @@ -165,7 +180,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_MAGICIAN }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Fennekin"), @@ -183,17 +198,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Fennekin, 40, 48), + .frontPic = gMonFrontPic_Fennekin, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Fennekin, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Fennekin, 56, 48), + .backPic = gMonBackPic_Fennekin, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Fennekin), - ICON(Fennekin, 0), - .footprint = gMonFootprint_Fennekin, - LEARNSETS(Fennekin), + .palette = gMonPalette_Fennekin, + .shinyPalette = gMonShinyPalette_Fennekin, + .iconSprite = gMonIcon_Fennekin, + .iconPalIndex = 0, + FOOTPRINT(Fennekin) + .levelUpLearnset = sFennekinLevelUpLearnset, + .teachableLearnset = sFennekinTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_BRAIXEN}), }, @@ -205,7 +225,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 73, .baseSpAttack = 90, .baseSpDefense = 70, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 143, .evYield_SpAttack = 2, @@ -213,7 +233,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_MAGICIAN }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Braixen"), @@ -231,17 +251,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Braixen, 48, 64), + .frontPic = gMonFrontPic_Braixen, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Braixen, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Braixen, 64, 56), + .backPic = gMonBackPic_Braixen, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Braixen), - ICON(Braixen, 0), - .footprint = gMonFootprint_Braixen, - LEARNSETS(Braixen), + .palette = gMonPalette_Braixen, + .shinyPalette = gMonShinyPalette_Braixen, + .iconSprite = gMonIcon_Braixen, + .iconPalIndex = 0, + FOOTPRINT(Braixen) + .levelUpLearnset = sBraixenLevelUpLearnset, + .teachableLearnset = sBraixenTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_DELPHOX}), }, @@ -253,15 +278,15 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 104, .baseSpAttack = 114, .baseSpDefense = 100, - .types = { TYPE_FIRE, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_FIRE, TYPE_PSYCHIC), .catchRate = 45, - .expYield = 240, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 267 : 240, .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_MAGICIAN }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Delphox"), @@ -279,17 +304,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Delphox, 64, 64), + .frontPic = gMonFrontPic_Delphox, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Delphox, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Delphox, 64, 64), + .backPic = gMonBackPic_Delphox, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Delphox), - ICON(Delphox, 0), - .footprint = gMonFootprint_Delphox, - LEARNSETS(Delphox), + .palette = gMonPalette_Delphox, + .shinyPalette = gMonShinyPalette_Delphox, + .iconSprite = gMonIcon_Delphox, + .iconPalIndex = 0, + FOOTPRINT(Delphox) + .levelUpLearnset = sDelphoxLevelUpLearnset, + .teachableLearnset = sDelphoxTeachableLearnset, }, #endif //P_FAMILY_FENNEKIN @@ -302,7 +332,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 71, .baseSpAttack = 62, .baseSpDefense = 44, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 63, .evYield_Speed = 1, @@ -310,7 +340,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_PROTEAN }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Froakie"), @@ -328,17 +358,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Froakie, 40, 40), + .frontPic = gMonFrontPic_Froakie, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Froakie, .frontAnimId = ANIM_H_JUMPS, - BACK_PIC(Froakie, 56, 56), + .backPic = gMonBackPic_Froakie, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Froakie), - ICON(Froakie, 0), - .footprint = gMonFootprint_Froakie, - LEARNSETS(Froakie), + .palette = gMonPalette_Froakie, + .shinyPalette = gMonShinyPalette_Froakie, + .iconSprite = gMonIcon_Froakie, + .iconPalIndex = 0, + FOOTPRINT(Froakie) + .levelUpLearnset = sFroakieLevelUpLearnset, + .teachableLearnset = sFroakieTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_FROGADIER}), }, @@ -350,7 +385,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 97, .baseSpAttack = 83, .baseSpDefense = 56, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 142, .evYield_Speed = 2, @@ -358,7 +393,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_PROTEAN }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Frogadier"), @@ -376,110 +411,178 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Frogadier, 56, 48), + .frontPic = gMonFrontPic_Frogadier, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Frogadier, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Frogadier, 64, 56), + .backPic = gMonBackPic_Frogadier, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Frogadier), - ICON(Frogadier, 0), - .footprint = gMonFootprint_Frogadier, - LEARNSETS(Frogadier), + .palette = gMonPalette_Frogadier, + .shinyPalette = gMonShinyPalette_Frogadier, + .iconSprite = gMonIcon_Frogadier, + .iconPalIndex = 0, + FOOTPRINT(Frogadier) + .levelUpLearnset = sFrogadierLevelUpLearnset, + .teachableLearnset = sFrogadierTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_GRENINJA}), }, -#define GRENINJA_NORMAL_MISC_INFO \ - .baseHP = 72, \ - .baseAttack = 95, \ - .baseDefense = 67, \ - .baseSpeed = 122, \ - .baseSpAttack = 103, \ - .baseSpDefense = 71, \ - .expYield = 239, \ - .description = gGreninjaPokedexText,\ - FRONT_PIC(Greninja, 64, 56), \ - .frontPicYOffset = 7, \ - .frontAnimFrames = sAnims_Greninja, \ - BACK_PIC(Greninja, 64, 48), \ - .backPicYOffset = 11, \ - PALETTES(Greninja), \ - ICON(Greninja, 0) - -#define GRENINJA_MISC_INFO \ - .types = { TYPE_WATER, TYPE_DARK }, \ - .catchRate = 45, \ - .evYield_Speed = 3, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .bodyColor = BODY_COLOR_BLUE, \ - .noFlip = TRUE, \ - .speciesName = _("Greninja"), \ - .cryId = CRY_GRENINJA, \ - .natDexNum = NATIONAL_DEX_GRENINJA, \ - .categoryName = _("Ninja"), \ - .height = 15, \ - .weight = 400, \ - .pokemonScale = 268, \ - .pokemonOffset = 2, \ - .trainerScale = 271, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Greninja, \ - LEARNSETS(Greninja), \ - .formSpeciesIdTable = sGreninjaFormSpeciesIdTable - [SPECIES_GRENINJA] = { - GRENINJA_MISC_INFO, - GRENINJA_NORMAL_MISC_INFO, + .baseHP = 72, + .baseAttack = 95, + .baseDefense = 67, + .baseSpeed = 122, + .baseSpAttack = 103, + .baseSpDefense = 71, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 265 : 239, + .evYield_Speed = 3, .genderRatio = PERCENT_FEMALE(12.5), - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_PROTEAN }, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + .speciesName = _("Greninja"), + .cryId = CRY_GRENINJA, + .natDexNum = NATIONAL_DEX_GRENINJA, + .categoryName = _("Ninja"), + .height = 15, + .weight = 400, + .description = gGreninjaPokedexText, + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Greninja, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Greninja, .frontAnimId = ANIM_V_STRETCH, + .backPic = gMonBackPic_Greninja, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicYOffset = 11, .backAnimId = BACK_ANIM_JOLT_RIGHT, + .palette = gMonPalette_Greninja, + .shinyPalette = gMonShinyPalette_Greninja, + .iconSprite = gMonIcon_Greninja, + .iconPalIndex = 0, + FOOTPRINT(Greninja) + .levelUpLearnset = sGreninjaLevelUpLearnset, + .teachableLearnset = sGreninjaTeachableLearnset, + .formSpeciesIdTable = sGreninjaFormSpeciesIdTable, }, [SPECIES_GRENINJA_BATTLE_BOND] = { - GRENINJA_MISC_INFO, - GRENINJA_NORMAL_MISC_INFO, + .baseHP = 72, + .baseAttack = 95, + .baseDefense = 67, + .baseSpeed = 122, + .baseSpAttack = 103, + .baseSpDefense = 71, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 265 : 239, + .evYield_Speed = 3, .genderRatio = MON_MALE, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_BATTLE_BOND, ABILITY_NONE, ABILITY_NONE }, - .frontAnimId = ANIM_FLICKER_INCREASING, - .backAnimId = BACK_ANIM_V_STRETCH, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + .speciesName = _("Greninja"), + .cryId = CRY_GRENINJA, + .natDexNum = NATIONAL_DEX_GRENINJA, + .categoryName = _("Ninja"), + .height = 15, + .weight = 400, + .description = gGreninjaPokedexText, + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Greninja, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Greninja, + .frontAnimId = ANIM_V_STRETCH, + .backPic = gMonBackPic_Greninja, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + .palette = gMonPalette_Greninja, + .shinyPalette = gMonShinyPalette_Greninja, + .iconSprite = gMonIcon_Greninja, + .iconPalIndex = 0, + FOOTPRINT(Greninja) + .levelUpLearnset = sGreninjaLevelUpLearnset, + .teachableLearnset = sGreninjaTeachableLearnset, + .formSpeciesIdTable = sGreninjaFormSpeciesIdTable, .formChangeTable = sGreninjaBattleBondFormChangeTable, }, [SPECIES_GRENINJA_ASH] = { - GRENINJA_MISC_INFO, .baseHP = 72, .baseAttack = 145, .baseDefense = 67, .baseSpeed = 132, .baseSpAttack = 153, .baseSpDefense = 71, + .types = MON_TYPES(TYPE_WATER, TYPE_DARK), + .catchRate = 45, .expYield = 288, + .evYield_Speed = 3, .genderRatio = MON_MALE, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_BATTLE_BOND, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + .speciesName = _("Greninja"), + .cryId = CRY_GRENINJA, + .natDexNum = NATIONAL_DEX_GRENINJA, + .categoryName = _("Ninja"), + .height = 15, + .weight = 400, .description = COMPOUND_STRING( "It appears and vanishes with a ninja's\n" "grace. It toys with its enemies using swift\n" "movements, while slicing them with throwing\n" "stars made of compressed water."), - FRONT_PIC(GreninjaAsh, 64, 64), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + .frontPic = gMonFrontPic_GreninjaAsh, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_GreninjaAsh, - BACK_PIC(GreninjaAsh, 64, 48), + .frontAnimId = ANIM_V_STRETCH, + .backPic = gMonBackPic_GreninjaAsh, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, - PALETTES(GreninjaAsh), - ICON(GreninjaAsh, 0), - .frontAnimId = ANIM_FLICKER_INCREASING, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + .palette = gMonPalette_GreninjaAsh, + .shinyPalette = gMonShinyPalette_GreninjaAsh, + .iconSprite = gMonIcon_GreninjaAsh, + .iconPalIndex = 0, + FOOTPRINT(Greninja) + .levelUpLearnset = sGreninjaLevelUpLearnset, + .teachableLearnset = sGreninjaTeachableLearnset, + .formSpeciesIdTable = sGreninjaFormSpeciesIdTable, .formChangeTable = sGreninjaBattleBondFormChangeTable, }, #endif //P_FAMILY_FROAKIE @@ -493,7 +596,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 57, .baseSpAttack = 32, .baseSpDefense = 36, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 47, .evYield_Speed = 1, @@ -501,7 +604,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_CHEEK_POUCH, ABILITY_HUGE_POWER }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Bunnelby"), @@ -519,17 +622,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bunnelby, 48, 64), + .frontPic = gMonFrontPic_Bunnelby, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Bunnelby, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Bunnelby, 48, 64), + .backPic = gMonBackPic_Bunnelby, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Bunnelby), - ICON(Bunnelby, 2), - .footprint = gMonFootprint_Bunnelby, - LEARNSETS(Bunnelby), + .palette = gMonPalette_Bunnelby, + .shinyPalette = gMonShinyPalette_Bunnelby, + .iconSprite = gMonIcon_Bunnelby, + .iconPalIndex = 2, + FOOTPRINT(Bunnelby) + .levelUpLearnset = sBunnelbyLevelUpLearnset, + .teachableLearnset = sBunnelbyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_DIGGERSBY}), }, @@ -541,7 +649,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 78, .baseSpAttack = 50, .baseSpDefense = 77, - .types = { TYPE_NORMAL, TYPE_GROUND }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_GROUND), .catchRate = 127, .expYield = 148, .evYield_HP = 2, @@ -549,7 +657,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_CHEEK_POUCH, ABILITY_HUGE_POWER }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Diggersby"), @@ -567,17 +675,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Diggersby, 64, 64), + .frontPic = gMonFrontPic_Diggersby, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Diggersby, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Diggersby, 64, 64), + .backPic = gMonBackPic_Diggersby, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Diggersby), - ICON(Diggersby, 2), - .footprint = gMonFootprint_Diggersby, - LEARNSETS(Diggersby), + .palette = gMonPalette_Diggersby, + .shinyPalette = gMonShinyPalette_Diggersby, + .iconSprite = gMonIcon_Diggersby, + .iconPalIndex = 2, + FOOTPRINT(Diggersby) + .levelUpLearnset = sDiggersbyLevelUpLearnset, + .teachableLearnset = sDiggersbyTeachableLearnset, }, #endif //P_FAMILY_BUNNELBY @@ -590,7 +703,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 62, .baseSpAttack = 40, .baseSpDefense = 38, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 255, .expYield = 56, .evYield_Speed = 1, @@ -598,7 +711,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_BIG_PECKS, ABILITY_NONE, ABILITY_GALE_WINGS }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Fletchling"), @@ -616,17 +729,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Fletchling, 40, 40), + .frontPic = gMonFrontPic_Fletchling, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Fletchling, .frontAnimId = ANIM_V_JUMPS_SMALL, - BACK_PIC(Fletchling, 64, 40), + .backPic = gMonBackPic_Fletchling, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Fletchling), - ICON(Fletchling, 2), - .footprint = gMonFootprint_Fletchling, - LEARNSETS(Fletchling), + .palette = gMonPalette_Fletchling, + .shinyPalette = gMonShinyPalette_Fletchling, + .iconSprite = gMonIcon_Fletchling, + .iconPalIndex = 2, + FOOTPRINT(Fletchling) + .levelUpLearnset = sFletchlingLevelUpLearnset, + .teachableLearnset = sFletchlingTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_FLETCHINDER}), }, @@ -638,7 +756,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 84, .baseSpAttack = 56, .baseSpDefense = 52, - .types = { TYPE_FIRE, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FLYING), .catchRate = 120, .expYield = 134, .evYield_Speed = 2, @@ -646,7 +764,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_GALE_WINGS }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Flechinder"), @@ -664,18 +782,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Fletchinder, 56, 48), + .frontPic = gMonFrontPic_Fletchinder, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Fletchinder, .frontAnimId = ANIM_V_SLIDE_SLOW, .enemyMonElevation = 9, - BACK_PIC(Fletchinder, 64, 48), + .backPic = gMonBackPic_Fletchinder, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Fletchinder), - ICON(Fletchinder, 2), - .footprint = gMonFootprint_Fletchinder, - LEARNSETS(Fletchinder), + .palette = gMonPalette_Fletchinder, + .shinyPalette = gMonShinyPalette_Fletchinder, + .iconSprite = gMonIcon_Fletchinder, + .iconPalIndex = 2, + FOOTPRINT(Fletchinder) + .levelUpLearnset = sFletchinderLevelUpLearnset, + .teachableLearnset = sFletchinderTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_TALONFLAME}), }, @@ -687,7 +810,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 126, .baseSpAttack = 74, .baseSpDefense = 69, - .types = { TYPE_FIRE, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FIRE, TYPE_FLYING), .catchRate = 45, .expYield = 175, .evYield_Speed = 3, @@ -695,7 +818,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_GALE_WINGS }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Talonflame"), @@ -713,117 +836,170 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Talonflame, 64, 64), + .frontPic = gMonFrontPic_Talonflame, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Talonflame, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 7, - BACK_PIC(Talonflame, 64, 56), + .backPic = gMonBackPic_Talonflame, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Talonflame), - ICON(Talonflame, 2), - .footprint = gMonFootprint_Talonflame, - LEARNSETS(Talonflame), + .palette = gMonPalette_Talonflame, + .shinyPalette = gMonShinyPalette_Talonflame, + .iconSprite = gMonIcon_Talonflame, + .iconPalIndex = 2, + FOOTPRINT(Talonflame) + .levelUpLearnset = sTalonflameLevelUpLearnset, + .teachableLearnset = sTalonflameTeachableLearnset, }, #endif //P_FAMILY_FLETCHLING #if P_FAMILY_SCATTERBUG - [SPECIES_SCATTERBUG] = - { - .baseHP = 38, - .baseAttack = 35, - .baseDefense = 40, - .baseSpeed = 35, - .baseSpAttack = 27, - .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_BUG }, - .catchRate = 255, - .expYield = 40, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_SHIELD_DUST, ABILITY_COMPOUND_EYES, ABILITY_FRIEND_GUARD }, - .bodyColor = BODY_COLOR_BLACK, - .speciesName = _("Scatterbug"), - .cryId = CRY_SCATTERBUG, - .natDexNum = NATIONAL_DEX_SCATTERBUG, - .categoryName = _("Scatterdust"), - .height = 3, - .weight = 25, - .description = COMPOUND_STRING( - "When under attack from bird Pokémon,\n" - "it spews a poisonous black powder that\n" - "causes paralysis on contact. Scatterbug\n" - "can live in any region or climate."), - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - FRONT_PIC(Scatterbug, 32, 48), - .frontPicYOffset = 13, - .frontAnimFrames = sAnims_Scatterbug, - .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Scatterbug, 40, 56), - .backPicYOffset = 12, - .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Scatterbug), - ICON(Scatterbug, 1), - .footprint = gMonFootprint_Scatterbug, - LEARNSETS(Scatterbug), - .evolutions = EVOLUTION({EVO_LEVEL, 9, SPECIES_SPEWPA}), - }, +#define SCATTERBUG_SPECIES_INFO(evolution) \ + { \ + .baseHP = 38, \ + .baseAttack = 35, \ + .baseDefense = 40, \ + .baseSpeed = 35, \ + .baseSpAttack = 27, \ + .baseSpDefense = 25, \ + .types = MON_TYPES(TYPE_BUG), \ + .catchRate = 255, \ + .expYield = 40, \ + .evYield_Defense = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), \ + .abilities = { ABILITY_SHIELD_DUST, ABILITY_COMPOUND_EYES, ABILITY_FRIEND_GUARD }, \ + .bodyColor = BODY_COLOR_BLACK, \ + .speciesName = _("Scatterbug"), \ + .cryId = CRY_SCATTERBUG, \ + .natDexNum = NATIONAL_DEX_SCATTERBUG, \ + .categoryName = _("Scatterdust"), \ + .height = 3, \ + .weight = 25, \ + .description = gScatterbugPokedexText, \ + .pokemonScale = 530, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPic = gMonFrontPic_Scatterbug, \ + .frontPicSize = MON_COORDS_SIZE(32, 48), \ + .frontPicYOffset = 13, \ + .frontAnimFrames = sAnims_Scatterbug, \ + .frontAnimId = ANIM_V_STRETCH, \ + .backPic = gMonBackPic_Scatterbug, \ + .backPicSize = MON_COORDS_SIZE(40, 56), \ + .backPicYOffset = 12, \ + .backAnimId = BACK_ANIM_H_SLIDE, \ + .palette = gMonPalette_Scatterbug, \ + .shinyPalette = gMonShinyPalette_Scatterbug, \ + .iconSprite = gMonIcon_Scatterbug, \ + .iconPalIndex = 1, \ + FOOTPRINT(Scatterbug) \ + .tmIlliterate = TRUE, \ + .levelUpLearnset = sScatterbugLevelUpLearnset, \ + .teachableLearnset = sScatterbugTeachableLearnset, \ + .formSpeciesIdTable = sScatterbugFormSpeciesIdTable, \ + .evolutions = EVOLUTION({EVO_LEVEL, 9, SPECIES_SPEWPA_##evolution}), \ + } \ - [SPECIES_SPEWPA] = - { - .baseHP = 45, - .baseAttack = 22, - .baseDefense = 60, - .baseSpeed = 29, - .baseSpAttack = 27, - .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_BUG }, - .catchRate = 120, - .expYield = 75, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_FRIEND_GUARD }, - .bodyColor = BODY_COLOR_BLACK, - .speciesName = _("Spewpa"), - .cryId = CRY_SPEWPA, - .natDexNum = NATIONAL_DEX_SPEWPA, - .categoryName = _("Scatterdust"), - .height = 3, - .weight = 84, - .description = COMPOUND_STRING( - "It lives hidden within thicket shadows.\n" - "When predators attack, it quickly bristles\n" - "the fur covering its body in an effort to\n" - "threaten them."), - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - FRONT_PIC(Spewpa, 40, 48), - .frontPicYOffset = 11, - .frontAnimFrames = sAnims_Spewpa, - .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Spewpa, 48, 48), - .backPicYOffset = 12, - .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Spewpa), - ICON(Spewpa, 1), - .footprint = gMonFootprint_Spewpa, - LEARNSETS(Spewpa), - .evolutions = EVOLUTION({EVO_LEVEL, 12, SPECIES_VIVILLON_ICY_SNOW}), - }, + [SPECIES_SCATTERBUG_ICY_SNOW] = SCATTERBUG_SPECIES_INFO(ICY_SNOW), + [SPECIES_SCATTERBUG_POLAR] = SCATTERBUG_SPECIES_INFO(POLAR), + [SPECIES_SCATTERBUG_TUNDRA] = SCATTERBUG_SPECIES_INFO(TUNDRA), + [SPECIES_SCATTERBUG_CONTINENTAL] = SCATTERBUG_SPECIES_INFO(CONTINENTAL), + [SPECIES_SCATTERBUG_GARDEN] = SCATTERBUG_SPECIES_INFO(GARDEN), + [SPECIES_SCATTERBUG_ELEGANT] = SCATTERBUG_SPECIES_INFO(ELEGANT), + [SPECIES_SCATTERBUG_MEADOW] = SCATTERBUG_SPECIES_INFO(MEADOW), + [SPECIES_SCATTERBUG_MODERN] = SCATTERBUG_SPECIES_INFO(MODERN), + [SPECIES_SCATTERBUG_MARINE] = SCATTERBUG_SPECIES_INFO(MARINE), + [SPECIES_SCATTERBUG_ARCHIPELAGO] = SCATTERBUG_SPECIES_INFO(ARCHIPELAGO), + [SPECIES_SCATTERBUG_HIGH_PLAINS] = SCATTERBUG_SPECIES_INFO(HIGH_PLAINS), + [SPECIES_SCATTERBUG_SANDSTORM] = SCATTERBUG_SPECIES_INFO(SANDSTORM), + [SPECIES_SCATTERBUG_RIVER] = SCATTERBUG_SPECIES_INFO(RIVER), + [SPECIES_SCATTERBUG_MONSOON] = SCATTERBUG_SPECIES_INFO(MONSOON), + [SPECIES_SCATTERBUG_SAVANNA] = SCATTERBUG_SPECIES_INFO(SAVANNA), + [SPECIES_SCATTERBUG_SUN] = SCATTERBUG_SPECIES_INFO(SUN), + [SPECIES_SCATTERBUG_OCEAN] = SCATTERBUG_SPECIES_INFO(OCEAN), + [SPECIES_SCATTERBUG_JUNGLE] = SCATTERBUG_SPECIES_INFO(JUNGLE), + [SPECIES_SCATTERBUG_FANCY] = SCATTERBUG_SPECIES_INFO(FANCY), + [SPECIES_SCATTERBUG_POKE_BALL] = SCATTERBUG_SPECIES_INFO(POKE_BALL), + +#define SPEWPA_SPECIES_INFO(evolution) \ + { \ + .baseHP = 45, \ + .baseAttack = 22, \ + .baseDefense = 60, \ + .baseSpeed = 29, \ + .baseSpAttack = 27, \ + .baseSpDefense = 30, \ + .types = MON_TYPES(TYPE_BUG), \ + .catchRate = 120, \ + .expYield = 75, \ + .evYield_Defense = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), \ + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_FRIEND_GUARD }, \ + .bodyColor = BODY_COLOR_BLACK, \ + .speciesName = _("Spewpa"), \ + .cryId = CRY_SPEWPA, \ + .natDexNum = NATIONAL_DEX_SPEWPA, \ + .categoryName = _("Scatterdust"), \ + .height = 3, \ + .weight = 84, \ + .description = gSpewpaPokedexText, \ + .pokemonScale = 530, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPic = gMonFrontPic_Spewpa, \ + .frontPicSize = MON_COORDS_SIZE(40, 48), \ + .frontPicYOffset = 11, \ + .frontAnimFrames = sAnims_Spewpa, \ + .frontAnimId = ANIM_V_SHAKE, \ + .backPic = gMonBackPic_Spewpa, \ + .backPicSize = MON_COORDS_SIZE(48, 48), \ + .backPicYOffset = 12, \ + .backAnimId = BACK_ANIM_H_VIBRATE, \ + .palette = gMonPalette_Spewpa, \ + .shinyPalette = gMonShinyPalette_Spewpa, \ + .iconSprite = gMonIcon_Spewpa, \ + .iconPalIndex = 1, \ + FOOTPRINT(Spewpa) \ + .tmIlliterate = TRUE, \ + .levelUpLearnset = sSpewpaLevelUpLearnset, \ + .teachableLearnset = sSpewpaTeachableLearnset, \ + .formSpeciesIdTable = sSpewpaFormSpeciesIdTable, \ + .evolutions = EVOLUTION({EVO_LEVEL, 12, SPECIES_VIVILLON_##evolution}), \ + } + + [SPECIES_SPEWPA_ICY_SNOW] = SPEWPA_SPECIES_INFO(ICY_SNOW), + [SPECIES_SPEWPA_POLAR] = SPEWPA_SPECIES_INFO(POLAR), + [SPECIES_SPEWPA_TUNDRA] = SPEWPA_SPECIES_INFO(TUNDRA), + [SPECIES_SPEWPA_CONTINENTAL] = SPEWPA_SPECIES_INFO(CONTINENTAL), + [SPECIES_SPEWPA_GARDEN] = SPEWPA_SPECIES_INFO(GARDEN), + [SPECIES_SPEWPA_ELEGANT] = SPEWPA_SPECIES_INFO(ELEGANT), + [SPECIES_SPEWPA_MEADOW] = SPEWPA_SPECIES_INFO(MEADOW), + [SPECIES_SPEWPA_MODERN] = SPEWPA_SPECIES_INFO(MODERN), + [SPECIES_SPEWPA_MARINE] = SPEWPA_SPECIES_INFO(MARINE), + [SPECIES_SPEWPA_ARCHIPELAGO] = SPEWPA_SPECIES_INFO(ARCHIPELAGO), + [SPECIES_SPEWPA_HIGH_PLAINS] = SPEWPA_SPECIES_INFO(HIGH_PLAINS), + [SPECIES_SPEWPA_SANDSTORM] = SPEWPA_SPECIES_INFO(SANDSTORM), + [SPECIES_SPEWPA_RIVER] = SPEWPA_SPECIES_INFO(RIVER), + [SPECIES_SPEWPA_MONSOON] = SPEWPA_SPECIES_INFO(MONSOON), + [SPECIES_SPEWPA_SAVANNA] = SPEWPA_SPECIES_INFO(SAVANNA), + [SPECIES_SPEWPA_SUN] = SPEWPA_SPECIES_INFO(SUN), + [SPECIES_SPEWPA_OCEAN] = SPEWPA_SPECIES_INFO(OCEAN), + [SPECIES_SPEWPA_JUNGLE] = SPEWPA_SPECIES_INFO(JUNGLE), + [SPECIES_SPEWPA_FANCY] = SPEWPA_SPECIES_INFO(FANCY), + [SPECIES_SPEWPA_POKE_BALL] = SPEWPA_SPECIES_INFO(POKE_BALL), #define VIVILLON_MISC_INFO(form, color, iconPal) \ .baseHP = 80, \ @@ -832,9 +1008,9 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 89, \ .baseSpAttack = 90, \ .baseSpDefense = 50, \ - .types = { TYPE_BUG, TYPE_FLYING }, \ + .types = MON_TYPES(TYPE_BUG, TYPE_FLYING), \ .catchRate = 45, \ - .expYield = 185, \ + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 206 : 185, \ .evYield_HP = 1, \ .evYield_Speed = 1, \ .evYield_SpAttack = 1, \ @@ -842,7 +1018,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 15, \ .friendship = STANDARD_FRIENDSHIP, \ .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), \ .abilities = { ABILITY_SHIELD_DUST, ABILITY_COMPOUND_EYES, ABILITY_FRIEND_GUARD }, \ .bodyColor = color, \ .speciesName = _("Vivillon"), \ @@ -855,18 +1031,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 4, \ .trainerScale = 256, \ .trainerOffset = 0, \ - FRONT_PIC(Vivillon ##form, 64, 64), \ + .frontPic = gMonFrontPic_Vivillon ##form, \ + .frontPicSize = MON_COORDS_SIZE(64, 64), \ .frontPicYOffset = 0, \ .frontAnimFrames = sAnims_Vivillon, \ .frontAnimId = ANIM_ZIGZAG_SLOW, \ .enemyMonElevation = 9, \ - BACK_PIC(Vivillon ##form, 64, 64), \ + .backPic = gMonBackPic_Vivillon ##form, \ + .backPicSize = MON_COORDS_SIZE(64, 64), \ .backPicYOffset = 0, \ .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, \ - PALETTES(Vivillon ##form), \ - ICON(Vivillon ##form, iconPal), \ - .footprint = gMonFootprint_Vivillon, \ - LEARNSETS(Vivillon), \ + .palette = gMonPalette_Vivillon ##form, \ + .shinyPalette = gMonShinyPalette_Vivillon ##form, \ + .iconSprite = gMonIcon_Vivillon ##form, \ + .iconPalIndex = iconPal, \ + FOOTPRINT(Vivillon) \ + .levelUpLearnset = sVivillonLevelUpLearnset, \ + .teachableLearnset = sVivillonTeachableLearnset, \ .formSpeciesIdTable = sVivillonFormSpeciesIdTable [SPECIES_VIVILLON_ICY_SNOW] = @@ -1060,7 +1241,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 72, .baseSpAttack = 73, .baseSpDefense = 54, - .types = { TYPE_FIRE, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_FIRE, TYPE_NORMAL), .catchRate = 220, .expYield = 74, .evYield_SpAttack = 1, @@ -1068,7 +1249,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RIVALRY, ABILITY_UNNERVE, ABILITY_MOXIE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Litleo"), @@ -1086,17 +1267,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Litleo, 40, 48), + .frontPic = gMonFrontPic_Litleo, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Litleo, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Litleo, 56, 48), + .backPic = gMonBackPic_Litleo, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Litleo), - ICON(Litleo, 2), - .footprint = gMonFootprint_Litleo, - LEARNSETS(Litleo), + .palette = gMonPalette_Litleo, + .shinyPalette = gMonShinyPalette_Litleo, + .iconSprite = gMonIcon_Litleo, + .iconPalIndex = 2, + FOOTPRINT(Litleo) + .levelUpLearnset = sLitleoLevelUpLearnset, + .teachableLearnset = sLitleoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_PYROAR}), }, @@ -1108,7 +1294,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 106, .baseSpAttack = 109, .baseSpDefense = 66, - .types = { TYPE_FIRE, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_FIRE, TYPE_NORMAL), .catchRate = 65, .expYield = 177, .evYield_SpAttack = 2, @@ -1116,7 +1302,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RIVALRY, ABILITY_UNNERVE, ABILITY_MOXIE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Pyroar"), @@ -1134,20 +1320,28 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Pyroar, 64, 64), - FRONT_PIC_FEMALE(Pyroar, 64, 64), + .frontPic = gMonFrontPic_Pyroar, + .frontPicFemale = gMonFrontPic_PyroarF, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Pyroar, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Pyroar, 64, 64), - BACK_PIC_FEMALE(Pyroar, 64, 64), + .backPic = gMonBackPic_Pyroar, + .backPicFemale = gMonBackPic_PyroarF, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Pyroar), - ICON(Pyroar, 2), - ICON_FEMALE(Pyroar, 2), - .footprint = gMonFootprint_Pyroar, - LEARNSETS(Pyroar), + .palette = gMonPalette_Pyroar, + .shinyPalette = gMonShinyPalette_Pyroar, + .iconSprite = gMonIcon_Pyroar, + .iconSpriteFemale = gMonIcon_PyroarF, + .iconPalIndex = 2, + .iconPalIndexFemale = 2, + FOOTPRINT(Pyroar) + .levelUpLearnset = sPyroarLevelUpLearnset, + .teachableLearnset = sPyroarTeachableLearnset, }, #endif //P_FAMILY_LITLEO @@ -1159,7 +1353,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 42, \ .baseSpAttack = 61, \ .baseSpDefense = 79, \ - .types = { TYPE_FAIRY, TYPE_FAIRY }, \ + .types = MON_TYPES(TYPE_FAIRY), \ .catchRate = 225, \ .expYield = 61, \ .evYield_SpDefense = 1, \ @@ -1167,7 +1361,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, \ .friendship = STANDARD_FRIENDSHIP, \ .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), \ .abilities = { ABILITY_FLOWER_VEIL, ABILITY_NONE, ABILITY_SYMBIOSIS }, \ .bodyColor = BODY_COLOR_WHITE, \ .speciesName = _("Flabébé"), \ @@ -1180,18 +1374,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 24, \ .trainerScale = 256, \ .trainerOffset = 0, \ - FRONT_PIC(Flabebe, 48, 56), \ + .frontPic = gMonFrontPic_Flabebe, \ + .frontPicSize = MON_COORDS_SIZE(48, 56), \ .frontPicYOffset = 6, \ .frontAnimFrames = sAnims_Flabebe, \ .frontAnimId = ANIM_H_SLIDE_SLOW, \ .enemyMonElevation = 6, \ - BACK_PIC(Flabebe, 64, 40), \ + .backPic = gMonBackPic_Flabebe, \ + .backPicSize = MON_COORDS_SIZE(64, 40), \ .backPicYOffset = 12, \ .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, \ - PALETTES(Flabebe##Form##Flower), \ - ICON(Flabebe##Form##Flower, iconPal), \ - .footprint = gMonFootprint_Flabebe, \ - LEARNSETS(Flabebe), \ + .palette = gMonPalette_Flabebe##Form##Flower, \ + .shinyPalette = gMonShinyPalette_Flabebe##Form##Flower, \ + .iconSprite = gMonIcon_Flabebe##Form##Flower, \ + .iconPalIndex = iconPal, \ + FOOTPRINT(Flabebe) \ + .levelUpLearnset = sFlabebeLevelUpLearnset, \ + .teachableLearnset = sFlabebeTeachableLearnset, \ .formSpeciesIdTable = sFlabebeFormSpeciesIdTable, \ .evolutions = EVOLUTION({EVO_LEVEL, 19, SPECIES_FLOETTE_ ##FORM##_FLOWER}) @@ -1242,7 +1441,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = }, #define FLOETTE_MISC_INFO(form, FORM, iconPal) \ - .types = { TYPE_FAIRY, TYPE_FAIRY }, \ + .types = MON_TYPES(TYPE_FAIRY), \ .catchRate = 120, \ .evYield_SpDefense = 2, \ .genderRatio = MON_FEMALE, \ @@ -1263,9 +1462,11 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .frontAnimFrames = sAnims_Floette, \ .frontAnimId = ANIM_V_SLIDE_WOBBLE, \ .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, \ - PALETTES(Floette ##form##Flower), \ - ICON(Floette##form##Flower, iconPal), \ - .footprint = gMonFootprint_Floette, \ + .palette = gMonPalette_Floette ##form##Flower, \ + .shinyPalette = gMonShinyPalette_Floette ##form##Flower, \ + .iconSprite = gMonIcon_Floette##form##Flower, \ + .iconPalIndex = iconPal, \ + FOOTPRINT(Floette) \ .formSpeciesIdTable = sFloetteFormSpeciesIdTable #define FLOETTE_NORMAL_INFO(form, FORM, iconPal) \ @@ -1276,14 +1477,17 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpAttack = 75, \ .baseSpDefense = 98, \ .expYield = 130, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), \ .cryId = CRY_FLOETTE, \ - FRONT_PIC(Floette, 48, 64), \ + .frontPic = gMonFrontPic_Floette, \ + .frontPicSize = MON_COORDS_SIZE(48, 64), \ .frontPicYOffset = 3, \ .enemyMonElevation = 4, \ - BACK_PIC(Floette, 64, 64), \ + .backPic = gMonBackPic_Floette, \ + .backPicSize = MON_COORDS_SIZE(64, 64), \ .backPicYOffset = 2, \ - LEARNSETS(Floette), \ + .levelUpLearnset = sFloetteLevelUpLearnset, \ + .teachableLearnset = sFloetteTeachableLearnset, \ .evolutions = EVOLUTION({EVO_ITEM, ITEM_SHINY_STONE, SPECIES_FLORGES_ ##FORM##_FLOWER}),\ FLOETTE_MISC_INFO(form, FORM, iconPal) @@ -1342,19 +1546,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpAttack = 125, .baseSpDefense = 128, .expYield = 243, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .cryId = CRY_FLOETTE_ETERNAL_FLOWER, .description = COMPOUND_STRING( "The flower it's holding can no\n" "longer be found blooming anywhere. It's\n" "also thought to contain terrifying\n" "power."), - .cryId = CRY_FLOETTE_ETERNAL_FLOWER, - FRONT_PIC(FloetteEternalFlower, 64, 64), + .frontPic = gMonFrontPic_FloetteEternalFlower, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .enemyMonElevation = 4, - BACK_PIC(FloetteEternalFlower, 64, 64), + .backPic = gMonBackPic_FloetteEternalFlower, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, - LEARNSETS(FloetteEternalFlower), + .levelUpLearnset = sFloetteEternalFlowerLevelUpLearnset, + .teachableLearnset = sFloetteEternalFlowerTeachableLearnset, }, #define FLORGES_MISC_INFO(Form, iconPal) \ @@ -1364,15 +1571,15 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 75, \ .baseSpAttack = 112, \ .baseSpDefense = 154, \ - .types = { TYPE_FAIRY, TYPE_FAIRY }, \ + .types = MON_TYPES(TYPE_FAIRY), \ .catchRate = 45, \ - .expYield = 248, \ + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 276 : 248, \ .evYield_SpDefense = 3, \ .genderRatio = MON_FEMALE, \ .eggCycles = 20, \ .friendship = STANDARD_FRIENDSHIP, \ .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), \ .abilities = { ABILITY_FLOWER_VEIL, ABILITY_NONE, ABILITY_SYMBIOSIS }, \ .bodyColor = BODY_COLOR_WHITE, \ .speciesName = _("Florges"), \ @@ -1385,17 +1592,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, \ .trainerScale = 256, \ .trainerOffset = 0, \ - FRONT_PIC(Florges, 64, 64), \ + .frontPic = gMonFrontPic_Florges, \ + .frontPicSize = MON_COORDS_SIZE(64, 64), \ .frontPicYOffset = 0, \ .frontAnimFrames = sAnims_Florges, \ .frontAnimId = ANIM_V_SLIDE_SLOW, \ - BACK_PIC(Florges, 64, 48), \ + .backPic = gMonBackPic_Florges, \ + .backPicSize = MON_COORDS_SIZE(64, 48), \ .backPicYOffset = 9, \ .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, \ - PALETTES(Florges##Form##Flower), \ - ICON(Florges##Form##Flower, iconPal), \ - .footprint = gMonFootprint_Florges, \ - LEARNSETS(Florges), \ + .palette = gMonPalette_Florges##Form##Flower, \ + .shinyPalette = gMonShinyPalette_Florges##Form##Flower, \ + .iconSprite = gMonIcon_Florges##Form##Flower, \ + .iconPalIndex = iconPal, \ + FOOTPRINT(Florges) \ + .levelUpLearnset = sFlorgesLevelUpLearnset, \ + .teachableLearnset = sFlorgesTeachableLearnset, \ .formSpeciesIdTable = sFlorgesFormSpeciesIdTable [SPECIES_FLORGES_RED_FLOWER] = @@ -1453,7 +1665,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 52, .baseSpAttack = 62, .baseSpDefense = 57, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 200, .expYield = 70, .evYield_HP = 1, @@ -1461,7 +1673,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAP_SIPPER, ABILITY_NONE, ABILITY_GRASS_PELT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Skiddo"), @@ -1479,17 +1691,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Skiddo, 48, 56), + .frontPic = gMonFrontPic_Skiddo, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Skiddo, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Skiddo, 56, 48), + .backPic = gMonBackPic_Skiddo, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Skiddo), - ICON(Skiddo, 1), - .footprint = gMonFootprint_Skiddo, - LEARNSETS(Skiddo), + .palette = gMonPalette_Skiddo, + .shinyPalette = gMonShinyPalette_Skiddo, + .iconSprite = gMonIcon_Skiddo, + .iconPalIndex = 1, + FOOTPRINT(Skiddo) + .levelUpLearnset = sSkiddoLevelUpLearnset, + .teachableLearnset = sSkiddoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_GOGOAT}), }, @@ -1501,7 +1718,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 68, .baseSpAttack = 97, .baseSpDefense = 81, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 186, .evYield_HP = 2, @@ -1509,7 +1726,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAP_SIPPER, ABILITY_NONE, ABILITY_GRASS_PELT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Gogoat"), @@ -1527,17 +1744,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 0, .trainerScale = 290, .trainerOffset = 1, - FRONT_PIC(Gogoat, 56, 64), + .frontPic = gMonFrontPic_Gogoat, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Gogoat, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Gogoat, 64, 56), + .backPic = gMonBackPic_Gogoat, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, - PALETTES(Gogoat), - ICON(Gogoat, 1), - .footprint = gMonFootprint_Gogoat, - LEARNSETS(Gogoat), + .palette = gMonPalette_Gogoat, + .shinyPalette = gMonShinyPalette_Gogoat, + .iconSprite = gMonIcon_Gogoat, + .iconPalIndex = 1, + FOOTPRINT(Gogoat) + .levelUpLearnset = sGogoatLevelUpLearnset, + .teachableLearnset = sGogoatTeachableLearnset, }, #endif //P_FAMILY_SKIDDO @@ -1550,7 +1772,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 43, .baseSpAttack = 46, .baseSpDefense = 48, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 220, .expYield = 70, .evYield_Attack = 1, @@ -1559,7 +1781,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_IRON_FIST, ABILITY_MOLD_BREAKER, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Pancham"), @@ -1577,17 +1799,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pancham, 32, 48), + .frontPic = gMonFrontPic_Pancham, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Pancham, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Pancham, 48, 56), + .backPic = gMonBackPic_Pancham, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - PALETTES(Pancham), - ICON(Pancham, 1), - .footprint = gMonFootprint_Pancham, - LEARNSETS(Pancham), + .palette = gMonPalette_Pancham, + .shinyPalette = gMonShinyPalette_Pancham, + .iconSprite = gMonIcon_Pancham, + .iconPalIndex = 1, + FOOTPRINT(Pancham) + .levelUpLearnset = sPanchamLevelUpLearnset, + .teachableLearnset = sPanchamTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_DARK_TYPE_MON_IN_PARTY, 32, SPECIES_PANGORO}), }, @@ -1599,7 +1826,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 58, .baseSpAttack = 69, .baseSpDefense = 71, - .types = { TYPE_FIGHTING, TYPE_DARK }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_DARK), .catchRate = 65, .expYield = 173, .evYield_Attack = 2, @@ -1608,7 +1835,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_IRON_FIST, ABILITY_MOLD_BREAKER, ABILITY_SCRAPPY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Pangoro"), @@ -1626,158 +1853,86 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 0, .trainerScale = 365, .trainerOffset = 7, - FRONT_PIC(Pangoro, 64, 64), + .frontPic = gMonFrontPic_Pangoro, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Pangoro, .frontAnimId = ANIM_BACK_AND_LUNGE, - BACK_PIC(Pangoro, 64, 56), + .backPic = gMonBackPic_Pangoro, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Pangoro), - ICON(Pangoro, 1), - .footprint = gMonFootprint_Pangoro, - LEARNSETS(Pangoro), + .palette = gMonPalette_Pangoro, + .shinyPalette = gMonShinyPalette_Pangoro, + .iconSprite = gMonIcon_Pangoro, + .iconPalIndex = 1, + FOOTPRINT(Pangoro) + .levelUpLearnset = sPangoroLevelUpLearnset, + .teachableLearnset = sPangoroTeachableLearnset, }, #endif //P_FAMILY_PANCHAM #if P_FAMILY_FURFROU -#define FURFROU_MISC_INFO \ - .baseHP = 75, \ - .baseAttack = 80, \ - .baseDefense = 60, \ - .baseSpeed = 102, \ - .baseSpAttack = 65, \ - .baseSpDefense = 90, \ - .types = { TYPE_NORMAL, TYPE_NORMAL }, \ - .catchRate = 160, \ - .expYield = 165, \ - .evYield_Speed = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_FUR_COAT, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Furfrou"), \ - .cryId = CRY_FURFROU, \ - .natDexNum = NATIONAL_DEX_FURFROU, \ - .categoryName = _("Poodle"), \ - .height = 12, \ - .weight = 280, \ - .description = gFurfrouPokedexText, \ - .pokemonScale = 282, \ - .pokemonOffset = 4, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontAnimFrames = sAnims_Furfrou, \ - .frontAnimId = ANIM_H_SLIDE, \ - .backAnimId = BACK_ANIM_V_STRETCH, \ - .footprint = gMonFootprint_Furfrou, \ - LEARNSETS(Furfrou), \ - .formSpeciesIdTable = sFurfrouFormSpeciesIdTable +#define FURFROU_MISC_INFO(_form, _noFlip, frontWidth, frontYOffset, backWidth, backYOffset, _iconIdx) \ + { \ + .baseHP = 75, \ + .baseAttack = 80, \ + .baseDefense = 60, \ + .baseSpeed = 102, \ + .baseSpAttack = 65, \ + .baseSpDefense = 90, \ + .types = MON_TYPES(TYPE_NORMAL), \ + .catchRate = 160, \ + .expYield = 165, \ + .evYield_Speed = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), \ + .abilities = { ABILITY_FUR_COAT, ABILITY_NONE, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = _noFlip, \ + .speciesName = _("Furfrou"), \ + .cryId = CRY_FURFROU, \ + .natDexNum = NATIONAL_DEX_FURFROU, \ + .categoryName = _("Poodle"), \ + .height = 12, \ + .weight = 280, \ + .description = gFurfrouPokedexText, \ + .pokemonScale = 282, \ + .pokemonOffset = 4, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPic = gMonFrontPic_Furfrou##_form, \ + .frontPicSize = MON_COORDS_SIZE(frontWidth, 64), \ + .frontPicYOffset = frontYOffset, \ + .frontAnimFrames = sAnims_Furfrou, \ + .frontAnimId = ANIM_H_SLIDE, \ + .backPic = gMonBackPic_Furfrou##_form, \ + .backPicSize = MON_COORDS_SIZE(backWidth, 64), \ + .backPicYOffset = backYOffset, \ + .backAnimId = BACK_ANIM_V_STRETCH, \ + .palette = gMonPalette_Furfrou##_form, \ + .shinyPalette = gMonShinyPalette_Furfrou##_form, \ + .iconSprite = gMonIcon_Furfrou##_form, \ + .iconPalIndex = _iconIdx, \ + FOOTPRINT(Furfrou) \ + .levelUpLearnset = sFurfrouLevelUpLearnset, \ + .teachableLearnset = sFurfrouTeachableLearnset, \ + .formSpeciesIdTable = sFurfrouFormSpeciesIdTable, \ + } - [SPECIES_FURFROU_NATURAL] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouNatural, 48, 64), - .frontPicYOffset = 3, - BACK_PIC(FurfrouNatural, 56, 64), - .backPicYOffset = 0, - PALETTES(FurfrouNatural), - ICON(FurfrouNatural, 0), - }, - [SPECIES_FURFROU_HEART_TRIM] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouHeartTrim, 56, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouHeartTrim, 56, 64), - .backPicYOffset = 1, - PALETTES(FurfrouHeartTrim), - ICON(FurfrouHeartTrim, 0), - }, - [SPECIES_FURFROU_STAR_TRIM] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouStarTrim, 56, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouStarTrim, 64, 64), - .backPicYOffset = 1, - PALETTES(FurfrouStarTrim), - ICON(FurfrouStarTrim, 0), - }, - [SPECIES_FURFROU_DIAMOND_TRIM] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouDiamondTrim, 48, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouDiamondTrim, 56, 64), - .backPicYOffset = 1, - PALETTES(FurfrouDiamondTrim), - ICON(FurfrouDiamondTrim, 0), - }, - [SPECIES_FURFROU_DEBUTANTE_TRIM] = - { - FURFROU_MISC_INFO, - .noFlip = TRUE, - FRONT_PIC(FurfrouDebutanteTrim, 48, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouDebutanteTrim, 56, 64), - .backPicYOffset = 1, - PALETTES(FurfrouDebutanteTrim), - ICON(FurfrouDebutanteTrim, 2), - }, - [SPECIES_FURFROU_MATRON_TRIM] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouMatronTrim, 48, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouMatronTrim, 56, 64), - .backPicYOffset = 1, - PALETTES(FurfrouMatronTrim), - ICON(FurfrouMatronTrim, 2), - }, - [SPECIES_FURFROU_DANDY_TRIM] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouDandyTrim, 48, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouDandyTrim, 56, 64), - .backPicYOffset = 1, - PALETTES(FurfrouDandyTrim), - ICON(FurfrouDandyTrim, 1), - }, - [SPECIES_FURFROU_LA_REINE_TRIM] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouLaReineTrim, 48, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouLaReineTrim, 56, 64), - .backPicYOffset = 1, - PALETTES(FurfrouLaReineTrim), - ICON(FurfrouLaReineTrim, 0), - }, - [SPECIES_FURFROU_KABUKI_TRIM] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouKabukiTrim, 56, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouKabukiTrim, 56, 64), - .backPicYOffset = 1, - PALETTES(FurfrouKabukiTrim), - ICON(FurfrouKabukiTrim, 0), - }, - [SPECIES_FURFROU_PHARAOH_TRIM] = - { - FURFROU_MISC_INFO, - FRONT_PIC(FurfrouPharaohTrim, 48, 64), - .frontPicYOffset = 2, - BACK_PIC(FurfrouPharaohTrim, 56, 64), - .backPicYOffset = 1, - PALETTES(FurfrouPharaohTrim), - ICON(FurfrouPharaohTrim, 0), - }, + [SPECIES_FURFROU_NATURAL] = FURFROU_MISC_INFO(Natural, FALSE, 48, 3, 56, 0, 0), + [SPECIES_FURFROU_HEART_TRIM] = FURFROU_MISC_INFO(HeartTrim, FALSE, 56, 2, 56, 1, 0), + [SPECIES_FURFROU_STAR_TRIM] = FURFROU_MISC_INFO(StarTrim, FALSE, 56, 2, 64, 1, 0), + [SPECIES_FURFROU_DIAMOND_TRIM] = FURFROU_MISC_INFO(DiamondTrim, FALSE, 48, 2, 56, 1, 0), + [SPECIES_FURFROU_DEBUTANTE_TRIM] = FURFROU_MISC_INFO(DebutanteTrim, TRUE, 48, 2, 56, 1, 2), + [SPECIES_FURFROU_MATRON_TRIM] = FURFROU_MISC_INFO(MatronTrim, FALSE, 48, 2, 56, 1, 2), + [SPECIES_FURFROU_DANDY_TRIM] = FURFROU_MISC_INFO(DandyTrim, FALSE, 48, 2, 56, 1, 1), + [SPECIES_FURFROU_LA_REINE_TRIM] = FURFROU_MISC_INFO(LaReineTrim, FALSE, 48, 2, 56, 1, 0), + [SPECIES_FURFROU_KABUKI_TRIM] = FURFROU_MISC_INFO(KabukiTrim, FALSE, 56, 2, 56, 1, 0), + [SPECIES_FURFROU_PHARAOH_TRIM] = FURFROU_MISC_INFO(PharaohTrim, FALSE, 48, 2, 56, 1, 0), #endif //P_FAMILY_FURFROU #if P_FAMILY_ESPURR @@ -1789,7 +1944,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 68, .baseSpAttack = 63, .baseSpDefense = 60, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 190, .expYield = 71, .evYield_Speed = 1, @@ -1797,7 +1952,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_OWN_TEMPO }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Espurr"), @@ -1815,89 +1970,130 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Espurr, 32, 48), + .frontPic = gMonFrontPic_Espurr, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Espurr, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Espurr, 56, 56), + .backPic = gMonBackPic_Espurr, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Espurr), - ICON(Espurr, 2), - .footprint = gMonFootprint_Espurr, - LEARNSETS(Espurr), + .palette = gMonPalette_Espurr, + .shinyPalette = gMonShinyPalette_Espurr, + .iconSprite = gMonIcon_Espurr, + .iconPalIndex = 2, + FOOTPRINT(Espurr) + .levelUpLearnset = sEspurrLevelUpLearnset, + .teachableLearnset = sEspurrTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_MALE, 25, SPECIES_MEOWSTIC_MALE}, {EVO_LEVEL_FEMALE, 25, SPECIES_MEOWSTIC_FEMALE}), }, -#define MEOWSTIC_MISC_INFO \ - .baseHP = 74, \ - .baseAttack = 48, \ - .baseDefense = 76, \ - .baseSpeed = 104, \ - .baseSpAttack = 83, \ - .baseSpDefense = 81, \ - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, \ - .catchRate = 75, \ - .expYield = 163, \ - .evYield_Speed = 2, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .speciesName = _("Meowstic"), \ - .cryId = CRY_MEOWSTIC, \ - .natDexNum = NATIONAL_DEX_MEOWSTIC, \ - .categoryName = _("Constraint"), \ - .height = 6, \ - .weight = 85, \ - .pokemonScale = 422, \ - .pokemonOffset = 12, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontAnimFrames = sAnims_Meowstic, \ - .frontAnimId = ANIM_GROW_VIBRATE, \ - .backPicYOffset = 9, \ - .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, \ - .footprint = gMonFootprint_Meowstic, \ - .formSpeciesIdTable = sMeowsticFormSpeciesIdTable - [SPECIES_MEOWSTIC_MALE] = { - MEOWSTIC_MISC_INFO, + .baseHP = 74, + .baseAttack = 48, + .baseDefense = 76, + .baseSpeed = 104, + .baseSpAttack = 83, + .baseSpDefense = 81, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 75, + .expYield = 163, + .evYield_Speed = 2, .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Meowstic"), + .cryId = CRY_MEOWSTIC, + .natDexNum = NATIONAL_DEX_MEOWSTIC, + .categoryName = _("Constraint"), + .height = 6, + .weight = 85, .description = COMPOUND_STRING( "The defensive instinct of the\n" "males is strong. It's when they're\n" "protecting themselves or their partners\n" "that they unleash their full power."), - FRONT_PIC(MeowsticMale, 48, 64), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MeowsticMale, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 3, - BACK_PIC(MeowsticMale, 64, 64), - PALETTES(MeowsticMale), - ICON(MeowsticMale, 0), - LEARNSETS(MeowsticMale), + .frontAnimFrames = sAnims_Meowstic, + .frontAnimId = ANIM_GROW_VIBRATE, + .backPic = gMonBackPic_MeowsticMale, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + .palette = gMonPalette_MeowsticMale, + .shinyPalette = gMonShinyPalette_MeowsticMale, + .iconSprite = gMonIcon_MeowsticMale, + .iconPalIndex = 0, + FOOTPRINT(Meowstic) + .levelUpLearnset = sMeowsticMaleLevelUpLearnset, + .teachableLearnset = sMeowsticMaleTeachableLearnset, + .formSpeciesIdTable = sMeowsticFormSpeciesIdTable, }, [SPECIES_MEOWSTIC_FEMALE] = { - MEOWSTIC_MISC_INFO, + .baseHP = 74, + .baseAttack = 48, + .baseDefense = 76, + .baseSpeed = 104, + .baseSpAttack = 83, + .baseSpDefense = 81, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 75, + .expYield = 163, + .evYield_Speed = 2, .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_COMPETITIVE }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Meowstic"), + .cryId = CRY_MEOWSTIC, + .natDexNum = NATIONAL_DEX_MEOWSTIC, + .categoryName = _("Constraint"), + .height = 6, + .weight = 85, .description = COMPOUND_STRING( "Females are a bit more selfish and\n" "aggressive than males. If they\n" "don't get what they want, they will\n" "torment you with their psychic abilities."), - FRONT_PIC(MeowsticFemale, 56, 64), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MeowsticFemale, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, - BACK_PIC(MeowsticFemale, 48, 64), - PALETTES(MeowsticFemale), - ICON(MeowsticFemale, 0), - LEARNSETS(MeowsticFemale), + .frontAnimFrames = sAnims_Meowstic, + .frontAnimId = ANIM_GROW_VIBRATE, + .backPic = gMonBackPic_MeowsticFemale, + .backPicSize = MON_COORDS_SIZE(48, 64), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + .palette = gMonPalette_MeowsticFemale, + .shinyPalette = gMonShinyPalette_MeowsticFemale, + .iconSprite = gMonIcon_MeowsticFemale, + .iconPalIndex = 0, + FOOTPRINT(Meowstic) + .levelUpLearnset = sMeowsticFemaleLevelUpLearnset, + .teachableLearnset = sMeowsticFemaleTeachableLearnset, + .formSpeciesIdTable = sMeowsticFormSpeciesIdTable, }, #endif //P_FAMILY_ESPURR @@ -1910,7 +2106,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 28, .baseSpAttack = 35, .baseSpDefense = 37, - .types = { TYPE_STEEL, TYPE_GHOST }, + .types = MON_TYPES(TYPE_STEEL, TYPE_GHOST), .catchRate = 180, .expYield = 65, .evYield_Defense = 1, @@ -1918,8 +2114,8 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_NO_GUARD, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_NO_GUARD, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Honedge"), .cryId = CRY_HONEDGE, @@ -1936,18 +2132,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Honedge, 64, 56), + .frontPic = gMonFrontPic_Honedge, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Honedge, .frontAnimId = ANIM_SWING_CONVEX, .enemyMonElevation = 4, - BACK_PIC(Honedge, 48, 56), + .backPic = gMonBackPic_Honedge, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Honedge), - ICON(Honedge, 2), - .footprint = gMonFootprint_Honedge, - LEARNSETS(Honedge), + .palette = gMonPalette_Honedge, + .shinyPalette = gMonShinyPalette_Honedge, + .iconSprite = gMonIcon_Honedge, + .iconPalIndex = 2, + FOOTPRINT(Honedge) + .levelUpLearnset = sHonedgeLevelUpLearnset, + .teachableLearnset = sHonedgeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_DOUBLADE}), }, @@ -1959,7 +2160,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 35, .baseSpAttack = 45, .baseSpDefense = 49, - .types = { TYPE_STEEL, TYPE_GHOST }, + .types = MON_TYPES(TYPE_STEEL, TYPE_GHOST), .catchRate = 90, .expYield = 157, .evYield_Defense = 2, @@ -1967,8 +2168,8 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_NO_GUARD, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_NO_GUARD, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Doublade"), .cryId = CRY_DOUBLADE, @@ -1985,103 +2186,143 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Doublade, 64, 64), + .frontPic = gMonFrontPic_Doublade, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Doublade, .frontAnimId = ANIM_GROW_VIBRATE, .enemyMonElevation = 5, - BACK_PIC(Doublade, 64, 64), + .backPic = gMonBackPic_Doublade, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Doublade), - ICON(Doublade, 2), - .footprint = gMonFootprint_Doublade, - LEARNSETS(Doublade), + .palette = gMonPalette_Doublade, + .shinyPalette = gMonShinyPalette_Doublade, + .iconSprite = gMonIcon_Doublade, + .iconPalIndex = 2, + FOOTPRINT(Doublade) + .levelUpLearnset = sDoubladeLevelUpLearnset, + .teachableLearnset = sDoubladeTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_DUSK_STONE, SPECIES_AEGISLASH_SHIELD}), }, -#define AEGISLASH_MISC_INFO \ - .types = { TYPE_STEEL, TYPE_GHOST }, \ - .catchRate = 45, \ - .expYield = 234, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, \ - .abilities = { ABILITY_STANCE_CHANGE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Aegislash"), \ - .cryId = CRY_AEGISLASH, \ - .natDexNum = NATIONAL_DEX_AEGISLASH, \ - .categoryName = _("Royal Sword"), \ - .height = 17, \ - .weight = 530, \ - .pokemonScale = 259, \ - .pokemonOffset = 0, \ - .trainerScale = 290, \ - .trainerOffset = 1, \ - .footprint = gMonFootprint_Aegislash, \ - LEARNSETS(Aegislash), \ - .formSpeciesIdTable = sAegislashFormSpeciesIdTable, \ - .formChangeTable = sAegislashFormChangeTable - #define AEGISLASH_MAIN_STAT (P_UPDATED_STATS >= GEN_8 ? 140 : 150) [SPECIES_AEGISLASH_SHIELD] = { - AEGISLASH_MISC_INFO, .baseHP = 60, .baseAttack = 50, .baseDefense = AEGISLASH_MAIN_STAT, .baseSpeed = 60, .baseSpAttack = 50, .baseSpDefense = AEGISLASH_MAIN_STAT, + .types = MON_TYPES(TYPE_STEEL, TYPE_GHOST), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 250 : 234, .evYield_Defense = 2, .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_STANCE_CHANGE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Aegislash"), + .cryId = CRY_AEGISLASH, + .natDexNum = NATIONAL_DEX_AEGISLASH, + .categoryName = _("Royal Sword"), + .height = 17, + .weight = 530, .description = COMPOUND_STRING( "In this defensive stance,\n" "Aegislash uses its steel body and a force\n" "field of spectral power to reduce the\n" "damage of any attack."), - FRONT_PIC(AegislashShield, 56, 64), + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 1, + .frontPic = gMonFrontPic_AegislashShield, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_AegislashShield, .frontAnimId = ANIM_H_VIBRATE, .enemyMonElevation = 3, - BACK_PIC(AegislashShield, 64, 64), + .backPic = gMonBackPic_AegislashShield, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(AegislashShield), - ICON(AegislashShield, 2), + .palette = gMonPalette_AegislashShield, + .shinyPalette = gMonShinyPalette_AegislashShield, + .iconSprite = gMonIcon_AegislashShield, + .iconPalIndex = 2, + FOOTPRINT(Aegislash) + .levelUpLearnset = sAegislashLevelUpLearnset, + .teachableLearnset = sAegislashTeachableLearnset, + .formSpeciesIdTable = sAegislashFormSpeciesIdTable, + .formChangeTable = sAegislashFormChangeTable, }, [SPECIES_AEGISLASH_BLADE] = { - AEGISLASH_MISC_INFO, .baseHP = 60, .baseAttack = AEGISLASH_MAIN_STAT, .baseDefense = 50, .baseSpeed = 60, .baseSpAttack = AEGISLASH_MAIN_STAT, .baseSpDefense = 50, + .types = MON_TYPES(TYPE_STEEL, TYPE_GHOST), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 250 : 234, + #if P_UPDATED_EVS >= GEN_7 .evYield_Attack = 2, .evYield_SpAttack = 1, + #else + .evYield_Defense = 2, + .evYield_SpDefense = 1, + #endif + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_STANCE_CHANGE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Aegislash"), + .cryId = CRY_AEGISLASH, + .natDexNum = NATIONAL_DEX_AEGISLASH, + .categoryName = _("Royal Sword"), + .height = 17, + .weight = 530, .description = COMPOUND_STRING( "Once upon a time, a king with an\n" "Aegislash reigned over the land. His\n" "Pokémon eventually drained him of\n" "life, and his kingdom fell with him."), - FRONT_PIC(AegislashBlade, 64, 64), + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 1, + .frontPic = gMonFrontPic_AegislashBlade, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_AegislashBlade, .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, .enemyMonElevation = 3, - BACK_PIC(AegislashBlade, 64, 64), + .backPic = gMonBackPic_AegislashBlade, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(AegislashBlade), - ICON(AegislashBlade, 2), + .palette = gMonPalette_AegislashBlade, + .shinyPalette = gMonShinyPalette_AegislashBlade, + .iconSprite = gMonIcon_AegislashBlade, + .iconPalIndex = 2, + FOOTPRINT(Aegislash) + .levelUpLearnset = sAegislashLevelUpLearnset, + .teachableLearnset = sAegislashTeachableLearnset, + .formSpeciesIdTable = sAegislashFormSpeciesIdTable, + .formChangeTable = sAegislashFormChangeTable, }, #endif //P_FAMILY_HONEDGE @@ -2094,7 +2335,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 23, .baseSpAttack = 63, .baseSpDefense = 65, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 200, .expYield = 68, .evYield_HP = 1, @@ -2102,7 +2343,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_HEALER, ABILITY_NONE, ABILITY_AROMA_VEIL }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Spritzee"), @@ -2120,18 +2361,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Spritzee, 48, 48), + .frontPic = gMonFrontPic_Spritzee, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Spritzee, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 14, - BACK_PIC(Spritzee, 56, 48), + .backPic = gMonBackPic_Spritzee, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Spritzee), - ICON(Spritzee, 0), - .footprint = gMonFootprint_Spritzee, - LEARNSETS(Spritzee), + .palette = gMonPalette_Spritzee, + .shinyPalette = gMonShinyPalette_Spritzee, + .iconSprite = gMonIcon_Spritzee, + .iconPalIndex = 0, + FOOTPRINT(Spritzee) + .levelUpLearnset = sSpritzeeLevelUpLearnset, + .teachableLearnset = sSpritzeeTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_SACHET, SPECIES_AROMATISSE}, {EVO_ITEM, ITEM_SACHET, SPECIES_AROMATISSE}), }, @@ -2144,7 +2390,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 29, .baseSpAttack = 99, .baseSpDefense = 89, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 140, .expYield = 162, .evYield_HP = 2, @@ -2152,7 +2398,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_HEALER, ABILITY_NONE, ABILITY_AROMA_VEIL }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Aromatisse"), @@ -2170,17 +2416,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Aromatisse, 48, 56), + .frontPic = gMonFrontPic_Aromatisse, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Aromatisse, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Aromatisse, 64, 64), + .backPic = gMonBackPic_Aromatisse, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Aromatisse), - ICON(Aromatisse, 0), - .footprint = gMonFootprint_Aromatisse, - LEARNSETS(Aromatisse), + .palette = gMonPalette_Aromatisse, + .shinyPalette = gMonShinyPalette_Aromatisse, + .iconSprite = gMonIcon_Aromatisse, + .iconPalIndex = 0, + FOOTPRINT(Aromatisse) + .levelUpLearnset = sAromatisseLevelUpLearnset, + .teachableLearnset = sAromatisseTeachableLearnset, }, #endif //P_FAMILY_SPRITZEE @@ -2193,7 +2444,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 49, .baseSpAttack = 59, .baseSpDefense = 57, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 200, .expYield = 68, .evYield_Defense = 1, @@ -2201,7 +2452,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_UNBURDEN }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Swirlix"), @@ -2219,17 +2470,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Swirlix, 40, 40), + .frontPic = gMonFrontPic_Swirlix, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Swirlix, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, - BACK_PIC(Swirlix, 56, 40), + .backPic = gMonBackPic_Swirlix, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SPRING, - PALETTES(Swirlix), - ICON(Swirlix, 1), - .footprint = gMonFootprint_Swirlix, - LEARNSETS(Swirlix), + .palette = gMonPalette_Swirlix, + .shinyPalette = gMonShinyPalette_Swirlix, + .iconSprite = gMonIcon_Swirlix, + .iconPalIndex = 1, + FOOTPRINT(Swirlix) + .levelUpLearnset = sSwirlixLevelUpLearnset, + .teachableLearnset = sSwirlixTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_WHIPPED_DREAM, SPECIES_SLURPUFF}, {EVO_ITEM, ITEM_WHIPPED_DREAM, SPECIES_SLURPUFF}), }, @@ -2242,7 +2498,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 72, .baseSpAttack = 85, .baseSpDefense = 75, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 140, .expYield = 168, .evYield_Defense = 2, @@ -2250,7 +2506,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_UNBURDEN }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Slurpuff"), @@ -2268,17 +2524,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Slurpuff, 48, 56), + .frontPic = gMonFrontPic_Slurpuff, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Slurpuff, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Slurpuff, 64, 64), + .backPic = gMonBackPic_Slurpuff, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Slurpuff), - ICON(Slurpuff, 1), - .footprint = gMonFootprint_Slurpuff, - LEARNSETS(Slurpuff), + .palette = gMonPalette_Slurpuff, + .shinyPalette = gMonShinyPalette_Slurpuff, + .iconSprite = gMonIcon_Slurpuff, + .iconPalIndex = 1, + FOOTPRINT(Slurpuff) + .levelUpLearnset = sSlurpuffLevelUpLearnset, + .teachableLearnset = sSlurpuffTeachableLearnset, }, #endif //P_FAMILY_SWIRLIX @@ -2291,7 +2552,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 45, .baseSpAttack = 37, .baseSpDefense = 46, - .types = { TYPE_DARK, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_DARK, TYPE_PSYCHIC), .catchRate = 190, .expYield = 58, .evYield_Attack = 1, @@ -2299,7 +2560,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_2), .abilities = { ABILITY_CONTRARY, ABILITY_SUCTION_CUPS, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Inkay"), @@ -2317,18 +2578,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Inkay, 48, 48), + .frontPic = gMonFrontPic_Inkay, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Inkay, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 14, - BACK_PIC(Inkay, 56, 64), + .backPic = gMonBackPic_Inkay, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 9, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Inkay), - ICON(Inkay, 0), - .footprint = gMonFootprint_Inkay, - LEARNSETS(Inkay), + .palette = gMonPalette_Inkay, + .shinyPalette = gMonShinyPalette_Inkay, + .iconSprite = gMonIcon_Inkay, + .iconPalIndex = 0, + FOOTPRINT(Inkay) + .levelUpLearnset = sInkayLevelUpLearnset, + .teachableLearnset = sInkayTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MALAMAR}), }, @@ -2340,7 +2606,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 73, .baseSpAttack = 68, .baseSpDefense = 75, - .types = { TYPE_DARK, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_DARK, TYPE_PSYCHIC), .catchRate = 80, .expYield = 169, .evYield_Attack = 2, @@ -2348,7 +2614,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_2), .abilities = { ABILITY_CONTRARY, ABILITY_SUCTION_CUPS, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Malamar"), @@ -2366,17 +2632,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Malamar, 64, 64), + .frontPic = gMonFrontPic_Malamar, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Malamar, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Malamar, 64, 56), + .backPic = gMonBackPic_Malamar, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Malamar), - ICON(Malamar, 2), - .footprint = gMonFootprint_Malamar, - LEARNSETS(Malamar), + .palette = gMonPalette_Malamar, + .shinyPalette = gMonShinyPalette_Malamar, + .iconSprite = gMonIcon_Malamar, + .iconPalIndex = 2, + FOOTPRINT(Malamar) + .levelUpLearnset = sMalamarLevelUpLearnset, + .teachableLearnset = sMalamarTeachableLearnset, }, #endif //P_FAMILY_INKAY @@ -2389,7 +2660,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 50, .baseSpAttack = 39, .baseSpDefense = 56, - .types = { TYPE_ROCK, TYPE_WATER }, + .types = MON_TYPES(TYPE_ROCK, TYPE_WATER), .catchRate = 120, .expYield = 61, .evYield_Attack = 1, @@ -2397,7 +2668,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_TOUGH_CLAWS, ABILITY_SNIPER, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Binacle"), @@ -2415,17 +2686,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Binacle, 48, 56), + .frontPic = gMonFrontPic_Binacle, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Binacle, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Binacle, 64, 64), + .backPic = gMonBackPic_Binacle, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Binacle), - ICON(Binacle, 2), - .footprint = gMonFootprint_Binacle, - LEARNSETS(Binacle), + .palette = gMonPalette_Binacle, + .shinyPalette = gMonShinyPalette_Binacle, + .iconSprite = gMonIcon_Binacle, + .iconPalIndex = 2, + FOOTPRINT(Binacle) + .levelUpLearnset = sBinacleLevelUpLearnset, + .teachableLearnset = sBinacleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 39, SPECIES_BARBARACLE}), }, @@ -2437,7 +2713,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 68, .baseSpAttack = 54, .baseSpDefense = 86, - .types = { TYPE_ROCK, TYPE_WATER }, + .types = MON_TYPES(TYPE_ROCK, TYPE_WATER), .catchRate = 45, .expYield = 175, .evYield_Attack = 2, @@ -2445,7 +2721,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_TOUGH_CLAWS, ABILITY_SNIPER, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -2464,17 +2740,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Barbaracle, 64, 64), + .frontPic = gMonFrontPic_Barbaracle, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Barbaracle, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Barbaracle, 64, 64), + .backPic = gMonBackPic_Barbaracle, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Barbaracle), - ICON(Barbaracle, 2), - .footprint = gMonFootprint_Barbaracle, - LEARNSETS(Barbaracle), + .palette = gMonPalette_Barbaracle, + .shinyPalette = gMonShinyPalette_Barbaracle, + .iconSprite = gMonIcon_Barbaracle, + .iconPalIndex = 2, + FOOTPRINT(Barbaracle) + .levelUpLearnset = sBarbaracleLevelUpLearnset, + .teachableLearnset = sBarbaracleTeachableLearnset, }, #endif //P_FAMILY_BINACLE @@ -2487,7 +2768,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 30, .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_POISON, TYPE_WATER }, + .types = MON_TYPES(TYPE_POISON, TYPE_WATER), .catchRate = 225, .expYield = 64, .evYield_SpDefense = 1, @@ -2495,7 +2776,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_POISON_POINT, ABILITY_POISON_TOUCH, ABILITY_ADAPTABILITY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Skrelp"), @@ -2513,17 +2794,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Skrelp, 40, 48), + .frontPic = gMonFrontPic_Skrelp, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Skrelp, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, - BACK_PIC(Skrelp, 64, 64), + .backPic = gMonBackPic_Skrelp, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Skrelp), - ICON(Skrelp, 2), - .footprint = gMonFootprint_Skrelp, - LEARNSETS(Skrelp), + .palette = gMonPalette_Skrelp, + .shinyPalette = gMonShinyPalette_Skrelp, + .iconSprite = gMonIcon_Skrelp, + .iconPalIndex = 2, + FOOTPRINT(Skrelp) + .levelUpLearnset = sSkrelpLevelUpLearnset, + .teachableLearnset = sSkrelpTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 48, SPECIES_DRAGALGE}), }, @@ -2535,7 +2821,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 44, .baseSpAttack = 97, .baseSpDefense = 123, - .types = { TYPE_POISON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_POISON, TYPE_DRAGON), .catchRate = 55, .expYield = 173, .evYield_SpDefense = 2, @@ -2543,7 +2829,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON), .abilities = { ABILITY_POISON_POINT, ABILITY_POISON_TOUCH, ABILITY_ADAPTABILITY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Dragalge"), @@ -2561,17 +2847,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Dragalge, 64, 64), + .frontPic = gMonFrontPic_Dragalge, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Dragalge, .frontAnimId = ANIM_FRONT_FLIP, - BACK_PIC(Dragalge, 64, 64), + .backPic = gMonBackPic_Dragalge, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Dragalge), - ICON(Dragalge, 5), - .footprint = gMonFootprint_Dragalge, - LEARNSETS(Dragalge), + .palette = gMonPalette_Dragalge, + .shinyPalette = gMonShinyPalette_Dragalge, + .iconSprite = gMonIcon_Dragalge, + .iconPalIndex = 5, + FOOTPRINT(Dragalge) + .levelUpLearnset = sDragalgeLevelUpLearnset, + .teachableLearnset = sDragalgeTeachableLearnset, }, #endif //P_FAMILY_SKRELP @@ -2584,7 +2875,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 44, .baseSpAttack = 58, .baseSpDefense = 63, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 225, .expYield = 66, .evYield_SpAttack = 1, @@ -2592,8 +2883,8 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, - .abilities = { ABILITY_MEGA_LAUNCHER, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), + .abilities = { ABILITY_MEGA_LAUNCHER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .noFlip = TRUE, .speciesName = _("Clauncher"), @@ -2611,17 +2902,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Clauncher, 56, 40), + .frontPic = gMonFrontPic_Clauncher, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Clauncher, .frontAnimId = ANIM_TIP_MOVE_FORWARD, - BACK_PIC(Clauncher, 64, 48), + .backPic = gMonBackPic_Clauncher, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Clauncher), - ICON(Clauncher, 0), - .footprint = gMonFootprint_Clauncher, - LEARNSETS(Clauncher), + .palette = gMonPalette_Clauncher, + .shinyPalette = gMonShinyPalette_Clauncher, + .iconSprite = gMonIcon_Clauncher, + .iconPalIndex = 0, + FOOTPRINT(Clauncher) + .levelUpLearnset = sClauncherLevelUpLearnset, + .teachableLearnset = sClauncherTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_CLAWITZER}), }, @@ -2633,7 +2929,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 59, .baseSpAttack = 120, .baseSpDefense = 89, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 55, .expYield = 100, .evYield_SpAttack = 2, @@ -2641,8 +2937,8 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, - .abilities = { ABILITY_MEGA_LAUNCHER, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_3), + .abilities = { ABILITY_MEGA_LAUNCHER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .noFlip = TRUE, .speciesName = _("Clawitzer"), @@ -2660,17 +2956,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Clawitzer, 64, 64), + .frontPic = gMonFrontPic_Clawitzer, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Clawitzer, .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, - BACK_PIC(Clawitzer, 64, 48), + .backPic = gMonBackPic_Clawitzer, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(Clawitzer), - ICON(Clawitzer, 0), - .footprint = gMonFootprint_Clawitzer, - LEARNSETS(Clawitzer), + .palette = gMonPalette_Clawitzer, + .shinyPalette = gMonShinyPalette_Clawitzer, + .iconSprite = gMonIcon_Clawitzer, + .iconPalIndex = 0, + FOOTPRINT(Clawitzer) + .levelUpLearnset = sClawitzerLevelUpLearnset, + .teachableLearnset = sClawitzerTeachableLearnset, }, #endif //P_FAMILY_CLAUNCHER @@ -2683,7 +2984,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 70, .baseSpAttack = 61, .baseSpDefense = 43, - .types = { TYPE_ELECTRIC, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_NORMAL), .catchRate = 190, .expYield = 58, .evYield_Speed = 1, @@ -2691,7 +2992,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_DRY_SKIN, ABILITY_SAND_VEIL, ABILITY_SOLAR_POWER }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Helioptile"), @@ -2709,17 +3010,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Helioptile, 40, 40), + .frontPic = gMonFrontPic_Helioptile, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Helioptile, .frontAnimId = ANIM_GLOW_YELLOW, - BACK_PIC(Helioptile, 64, 48), + .backPic = gMonBackPic_Helioptile, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Helioptile), - ICON(Helioptile, 2), - .footprint = gMonFootprint_Helioptile, - LEARNSETS(Helioptile), + .palette = gMonPalette_Helioptile, + .shinyPalette = gMonShinyPalette_Helioptile, + .iconSprite = gMonIcon_Helioptile, + .iconPalIndex = 2, + FOOTPRINT(Helioptile) + .levelUpLearnset = sHelioptileLevelUpLearnset, + .teachableLearnset = sHelioptileTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_HELIOLISK}), }, @@ -2731,7 +3037,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 109, .baseSpAttack = 109, .baseSpDefense = 94, - .types = { TYPE_ELECTRIC, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_NORMAL), .catchRate = 75, .expYield = 168, .evYield_Speed = 1, @@ -2740,7 +3046,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_DRY_SKIN, ABILITY_SAND_VEIL, ABILITY_SOLAR_POWER }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Heliolisk"), @@ -2758,17 +3064,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Heliolisk, 64, 56), + .frontPic = gMonFrontPic_Heliolisk, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Heliolisk, .frontAnimId = ANIM_RAPID_H_HOPS, - BACK_PIC(Heliolisk, 56, 64), + .backPic = gMonBackPic_Heliolisk, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Heliolisk), - ICON(Heliolisk, 2), - .footprint = gMonFootprint_Heliolisk, - LEARNSETS(Heliolisk), + .palette = gMonPalette_Heliolisk, + .shinyPalette = gMonShinyPalette_Heliolisk, + .iconSprite = gMonIcon_Heliolisk, + .iconPalIndex = 2, + FOOTPRINT(Heliolisk) + .levelUpLearnset = sHelioliskLevelUpLearnset, + .teachableLearnset = sHelioliskTeachableLearnset, }, #endif //P_FAMILY_HELIOPTILE @@ -2781,7 +3092,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 48, .baseSpAttack = 45, .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_ROCK, TYPE_DRAGON), .catchRate = 45, .expYield = 72, .evYield_Attack = 1, @@ -2789,7 +3100,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_STRONG_JAW, ABILITY_NONE, ABILITY_STURDY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Tyrunt"), @@ -2807,17 +3118,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Tyrunt, 48, 48), + .frontPic = gMonFrontPic_Tyrunt, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Tyrunt, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Tyrunt, 64, 48), + .backPic = gMonBackPic_Tyrunt, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Tyrunt), - ICON(Tyrunt, 2), - .footprint = gMonFootprint_Tyrunt, - LEARNSETS(Tyrunt), + .palette = gMonPalette_Tyrunt, + .shinyPalette = gMonShinyPalette_Tyrunt, + .iconSprite = gMonIcon_Tyrunt, + .iconPalIndex = 2, + FOOTPRINT(Tyrunt) + .levelUpLearnset = sTyruntLevelUpLearnset, + .teachableLearnset = sTyruntTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_DAY, 39, SPECIES_TYRANTRUM}), }, @@ -2829,7 +3145,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 71, .baseSpAttack = 69, .baseSpDefense = 59, - .types = { TYPE_ROCK, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_ROCK, TYPE_DRAGON), .catchRate = 45, .expYield = 182, .evYield_Attack = 2, @@ -2837,7 +3153,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_STRONG_JAW, ABILITY_NONE, ABILITY_ROCK_HEAD }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Tyrantrum"), @@ -2855,17 +3171,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 10, .trainerScale = 423, .trainerOffset = 8, - FRONT_PIC(Tyrantrum, 64, 64), + .frontPic = gMonFrontPic_Tyrantrum, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Tyrantrum, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Tyrantrum, 64, 56), + .backPic = gMonBackPic_Tyrantrum, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - PALETTES(Tyrantrum), - ICON(Tyrantrum, 0), - .footprint = gMonFootprint_Tyrantrum, - LEARNSETS(Tyrantrum), + .palette = gMonPalette_Tyrantrum, + .shinyPalette = gMonShinyPalette_Tyrantrum, + .iconSprite = gMonIcon_Tyrantrum, + .iconPalIndex = 0, + FOOTPRINT(Tyrantrum) + .levelUpLearnset = sTyrantrumLevelUpLearnset, + .teachableLearnset = sTyrantrumTeachableLearnset, }, #endif //P_FAMILY_TYRUNT @@ -2878,7 +3199,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 46, .baseSpAttack = 67, .baseSpDefense = 63, - .types = { TYPE_ROCK, TYPE_ICE }, + .types = MON_TYPES(TYPE_ROCK, TYPE_ICE), .catchRate = 45, .expYield = 72, .evYield_HP = 1, @@ -2886,7 +3207,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_REFRIGERATE, ABILITY_NONE, ABILITY_SNOW_WARNING }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Amaura"), @@ -2904,17 +3225,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Amaura, 32, 56), + .frontPic = gMonFrontPic_Amaura, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Amaura, .frontAnimId = ANIM_CONCAVE_ARC_SMALL_TWICE, - BACK_PIC(Amaura, 40, 64), + .backPic = gMonBackPic_Amaura, + .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Amaura), - ICON(Amaura, 0), - .footprint = gMonFootprint_Amaura, - LEARNSETS(Amaura), + .palette = gMonPalette_Amaura, + .shinyPalette = gMonShinyPalette_Amaura, + .iconSprite = gMonIcon_Amaura, + .iconPalIndex = 0, + FOOTPRINT(Amaura) + .levelUpLearnset = sAmauraLevelUpLearnset, + .teachableLearnset = sAmauraTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 39, SPECIES_AURORUS}), }, @@ -2926,7 +3252,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 58, .baseSpAttack = 99, .baseSpDefense = 92, - .types = { TYPE_ROCK, TYPE_ICE }, + .types = MON_TYPES(TYPE_ROCK, TYPE_ICE), .catchRate = 45, .expYield = 104, .evYield_HP = 2, @@ -2934,7 +3260,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER), .abilities = { ABILITY_REFRIGERATE, ABILITY_NONE, ABILITY_SNOW_WARNING }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Aurorus"), @@ -2952,17 +3278,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Aurorus, 64, 64), + .frontPic = gMonFrontPic_Aurorus, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Aurorus, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Aurorus, 64, 64), + .backPic = gMonBackPic_Aurorus, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Aurorus), - ICON(Aurorus, 0), - .footprint = gMonFootprint_Aurorus, - LEARNSETS(Aurorus), + .palette = gMonPalette_Aurorus, + .shinyPalette = gMonShinyPalette_Aurorus, + .iconSprite = gMonIcon_Aurorus, + .iconPalIndex = 0, + FOOTPRINT(Aurorus) + .levelUpLearnset = sAurorusLevelUpLearnset, + .teachableLearnset = sAurorusTeachableLearnset, }, #endif //P_FAMILY_AMAURA @@ -2975,7 +3306,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 118, .baseSpAttack = 74, .baseSpDefense = 63, - .types = { TYPE_FIGHTING, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_FLYING), .catchRate = 100, .expYield = 175, .evYield_Attack = 2, @@ -2984,11 +3315,11 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_HUMAN_LIKE }, - #else - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, - #endif + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_HUMAN_LIKE), + #else + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), + #endif .abilities = { ABILITY_LIMBER, ABILITY_UNBURDEN, ABILITY_MOLD_BREAKER }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Hawlucha"), @@ -3006,17 +3337,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Hawlucha, 64, 56), + .frontPic = gMonFrontPic_Hawlucha, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Hawlucha, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Hawlucha, 64, 48), + .backPic = gMonBackPic_Hawlucha, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Hawlucha), - ICON(Hawlucha, 0), - .footprint = gMonFootprint_Hawlucha, - LEARNSETS(Hawlucha), + .palette = gMonPalette_Hawlucha, + .shinyPalette = gMonShinyPalette_Hawlucha, + .iconSprite = gMonIcon_Hawlucha, + .iconPalIndex = 0, + FOOTPRINT(Hawlucha) + .levelUpLearnset = sHawluchaLevelUpLearnset, + .teachableLearnset = sHawluchaTeachableLearnset, }, #endif //P_FAMILY_HAWLUCHA @@ -3029,7 +3365,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 101, .baseSpAttack = 81, .baseSpDefense = 67, - .types = { TYPE_ELECTRIC, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FAIRY), .catchRate = 180, .expYield = 151, .evYield_Speed = 2, @@ -3037,7 +3373,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_CHEEK_POUCH, ABILITY_PICKUP, ABILITY_PLUS }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Dedenne"), @@ -3055,17 +3391,22 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dedenne, 64, 40), + .frontPic = gMonFrontPic_Dedenne, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Dedenne, .frontAnimId = ANIM_GLOW_YELLOW, - BACK_PIC(Dedenne, 64, 48), + .backPic = gMonBackPic_Dedenne, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, - PALETTES(Dedenne), - ICON(Dedenne, 0), - .footprint = gMonFootprint_Dedenne, - LEARNSETS(Dedenne), + .palette = gMonPalette_Dedenne, + .shinyPalette = gMonShinyPalette_Dedenne, + .iconSprite = gMonIcon_Dedenne, + .iconPalIndex = 0, + FOOTPRINT(Dedenne) + .levelUpLearnset = sDedenneLevelUpLearnset, + .teachableLearnset = sDedenneTeachableLearnset, }, #endif //P_FAMILY_DEDENNE @@ -3078,7 +3419,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 150, - .types = { TYPE_ROCK, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_ROCK, TYPE_FAIRY), .catchRate = 60, .expYield = 100, .evYield_Defense = 1, @@ -3087,7 +3428,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_MINERAL), .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_STURDY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Carbink"), @@ -3105,18 +3446,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Carbink, 48, 48), + .frontPic = gMonFrontPic_Carbink, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Carbink, .frontAnimId = ANIM_ZIGZAG_SLOW, .enemyMonElevation = 4, - BACK_PIC(Carbink, 56, 56), + .backPic = gMonBackPic_Carbink, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_H_VIBRATE, - PALETTES(Carbink), - ICON(Carbink, 2), - .footprint = gMonFootprint_Carbink, - LEARNSETS(Carbink), + .palette = gMonPalette_Carbink, + .shinyPalette = gMonShinyPalette_Carbink, + .iconSprite = gMonIcon_Carbink, + .iconPalIndex = 2, + FOOTPRINT(Carbink) + .levelUpLearnset = sCarbinkLevelUpLearnset, + .teachableLearnset = sCarbinkTeachableLearnset, }, #endif //P_FAMILY_CARBINK @@ -3129,7 +3475,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 40, .baseSpAttack = 55, .baseSpDefense = 75, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 45, .expYield = 60, .evYield_SpDefense = 1, @@ -3138,7 +3484,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_SAP_SIPPER, ABILITY_HYDRATION, ABILITY_GOOEY }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Goomy"), @@ -3156,49 +3502,49 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Goomy, 32, 40), + .frontPic = gMonFrontPic_Goomy, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Goomy, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Goomy, 48, 56), + .backPic = gMonBackPic_Goomy, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SPRING, - PALETTES(Goomy), - ICON(Goomy, 5), - .footprint = gMonFootprint_Goomy, - LEARNSETS(Goomy), + .palette = gMonPalette_Goomy, + .shinyPalette = gMonShinyPalette_Goomy, + .iconSprite = gMonIcon_Goomy, + .iconPalIndex = 5, + FOOTPRINT(Goomy) + .levelUpLearnset = sGoomyLevelUpLearnset, + .teachableLearnset = sGoomyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_SLIGGOO}, {EVO_NONE, 0, SPECIES_SLIGGOO_HISUIAN}), }, -#define SLIGGOO_MISC_INFO \ - .catchRate = 45, \ - .expYield = 158, \ - .evYield_SpDefense = 2, \ - .itemRare = ITEM_SHED_SHELL, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Sliggoo"), \ - .cryId = CRY_SLIGGOO, \ - .natDexNum = NATIONAL_DEX_SLIGGOO, \ - .footprint = gMonFootprint_Sliggoo, \ - .formSpeciesIdTable = sSliggooFormSpeciesIdTable - [SPECIES_SLIGGOO] = { - SLIGGOO_MISC_INFO, .baseHP = 68, .baseAttack = 75, .baseDefense = 53, .baseSpeed = 60, .baseSpAttack = 83, .baseSpDefense = 113, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), + .catchRate = 45, + .expYield = 158, + .evYield_SpDefense = 2, + .itemRare = ITEM_SHED_SHELL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_SAP_SIPPER, ABILITY_HYDRATION, ABILITY_GOOEY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Sliggoo"), + .cryId = CRY_SLIGGOO, + .natDexNum = NATIONAL_DEX_SLIGGOO, .categoryName = _("Soft Tissue"), .height = 8, .weight = 175, @@ -3211,47 +3557,49 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Sliggoo, 32, 64), + .frontPic = gMonFrontPic_Sliggoo, + .frontPicSize = MON_COORDS_SIZE(32, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Sliggoo, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sliggoo, 48, 64), + .backPic = gMonBackPic_Sliggoo, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Sliggoo), - ICON(Sliggoo, 5), - LEARNSETS(Sliggoo), + .palette = gMonPalette_Sliggoo, + .shinyPalette = gMonShinyPalette_Sliggoo, + .iconSprite = gMonIcon_Sliggoo, + .iconPalIndex = 5, + FOOTPRINT(Sliggoo) + .levelUpLearnset = sSliggooLevelUpLearnset, + .teachableLearnset = sSliggooTeachableLearnset, + .formSpeciesIdTable = sSliggooFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL_RAIN, 50, SPECIES_GOODRA}, {EVO_LEVEL_FOG, 50, SPECIES_GOODRA}), }, -#define GOODRA_MISC_INFO \ - .catchRate = 45, \ - .expYield = 270, \ - .evYield_SpDefense = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = 35, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Goodra"), \ - .cryId = CRY_GOODRA, \ - .natDexNum = NATIONAL_DEX_GOODRA, \ - .footprint = gMonFootprint_Goodra, \ - .formSpeciesIdTable = sGoodraFormSpeciesIdTable - [SPECIES_GOODRA] = { - GOODRA_MISC_INFO, .baseHP = 90, .baseAttack = 100, .baseDefense = 70, .baseSpeed = 80, .baseSpAttack = 110, .baseSpDefense = 150, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_SpDefense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_SAP_SIPPER, ABILITY_HYDRATION, ABILITY_GOOEY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Goodra"), + .cryId = CRY_GOODRA, + .natDexNum = NATIONAL_DEX_GOODRA, .categoryName = _("Dragon"), .height = 20, .weight = 1505, @@ -3264,30 +3612,49 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Goodra, 64, 64), + .frontPic = gMonFrontPic_Goodra, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Goodra, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Goodra, 64, 64), + .backPic = gMonBackPic_Goodra, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Goodra), - ICON(Goodra, 5), - LEARNSETS(Goodra), + .palette = gMonPalette_Goodra, + .shinyPalette = gMonShinyPalette_Goodra, + .iconSprite = gMonIcon_Goodra, + .iconPalIndex = 5, + FOOTPRINT(Goodra) + .levelUpLearnset = sGoodraLevelUpLearnset, + .teachableLearnset = sGoodraTeachableLearnset, + .formSpeciesIdTable = sGoodraFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_SLIGGOO_HISUIAN] = { - SLIGGOO_MISC_INFO, .baseHP = 58, .baseAttack = 75, .baseDefense = 83, .baseSpeed = 40, .baseSpAttack = 83, .baseSpDefense = 113, - .types = { TYPE_DRAGON, TYPE_STEEL }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_STEEL), + .catchRate = 45, + .expYield = 158, + .evYield_SpDefense = 2, + .itemRare = ITEM_SHED_SHELL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_SAP_SIPPER, ABILITY_SHELL_ARMOR, ABILITY_GOOEY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Sliggoo"), + .cryId = CRY_SLIGGOO, + .natDexNum = NATIONAL_DEX_SLIGGOO, .categoryName = _("Snail"), .height = 7, .weight = 685, @@ -3300,32 +3667,50 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(SliggooHisuian, 48, 56), + .frontPic = gMonFrontPic_SliggooHisuian, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_SliggooHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SliggooHisuian, 64, 64), + .backPic = gMonBackPic_SliggooHisuian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SliggooHisuian), - ICON(SliggooHisuian, 2), - LEARNSETS(SliggooHisuian), + .palette = gMonPalette_SliggooHisuian, + .shinyPalette = gMonShinyPalette_SliggooHisuian, + .iconSprite = gMonIcon_SliggooHisuian, + .iconPalIndex = 2, + FOOTPRINT(Sliggoo) .isHisuianForm = TRUE, + .levelUpLearnset = sSliggooHisuianLevelUpLearnset, + .teachableLearnset = sSliggooHisuianTeachableLearnset, + .formSpeciesIdTable = sSliggooFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL_RAIN, 50, SPECIES_GOODRA_HISUIAN}, {EVO_LEVEL_FOG, 50, SPECIES_GOODRA_HISUIAN}), }, [SPECIES_GOODRA_HISUIAN] = { - GOODRA_MISC_INFO, .baseHP = 80, .baseAttack = 100, .baseDefense = 100, .baseSpeed = 60, .baseSpAttack = 110, .baseSpDefense = 150, - .types = { TYPE_DRAGON, TYPE_STEEL }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_STEEL), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_SpDefense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_SAP_SIPPER, ABILITY_SHELL_ARMOR, ABILITY_GOOEY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Goodra"), + .cryId = CRY_GOODRA, + .natDexNum = NATIONAL_DEX_GOODRA, .categoryName = _("Shell Bunker"), .height = 17, .weight = 3341, @@ -3338,17 +3723,24 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(GoodraHisuian, 56, 64), + .frontPic = gMonFrontPic_GoodraHisuian, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_GoodraHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GoodraHisuian, 64, 64), + .backPic = gMonBackPic_GoodraHisuian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GoodraHisuian), - ICON(GoodraHisuian, 2), - LEARNSETS(GoodraHisuian), + .palette = gMonPalette_GoodraHisuian, + .shinyPalette = gMonShinyPalette_GoodraHisuian, + .iconSprite = gMonIcon_GoodraHisuian, + .iconPalIndex = 2, + FOOTPRINT(Goodra) .isHisuianForm = TRUE, + .levelUpLearnset = sGoodraHisuianLevelUpLearnset, + .teachableLearnset = sGoodraHisuianTeachableLearnset, + .formSpeciesIdTable = sGoodraFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_GOOMY @@ -3362,7 +3754,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 75, .baseSpAttack = 80, .baseSpDefense = 87, - .types = { TYPE_STEEL, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_STEEL, TYPE_FAIRY), .catchRate = 75, .expYield = 165, .evYield_Defense = 1, @@ -3370,7 +3762,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_PRANKSTER, ABILITY_NONE, ABILITY_MAGICIAN }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, @@ -3389,18 +3781,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Klefki, 40, 56), + .frontPic = gMonFrontPic_Klefki, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Klefki, .frontAnimId = ANIM_FOUR_PETAL, .enemyMonElevation = 5, - BACK_PIC(Klefki, 56, 64), + .backPic = gMonBackPic_Klefki, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 8, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Klefki), - ICON(Klefki, 0), - .footprint = gMonFootprint_Klefki, - LEARNSETS(Klefki), + .palette = gMonPalette_Klefki, + .shinyPalette = gMonShinyPalette_Klefki, + .iconSprite = gMonIcon_Klefki, + .iconPalIndex = 0, + FOOTPRINT(Klefki) + .levelUpLearnset = sKlefkiLevelUpLearnset, + .teachableLearnset = sKlefkiTeachableLearnset, }, #endif //P_FAMILY_KLEFKI @@ -3413,7 +3810,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 38, .baseSpAttack = 50, .baseSpDefense = 60, - .types = { TYPE_GHOST, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), .catchRate = 120, .expYield = 62, .evYield_Attack = 1, @@ -3421,7 +3818,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_NATURAL_CURE, ABILITY_FRISK, ABILITY_HARVEST }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Phantump"), @@ -3439,18 +3836,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Phantump, 48, 48), + .frontPic = gMonFrontPic_Phantump, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Phantump, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(Phantump, 64, 56), + .backPic = gMonBackPic_Phantump, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - PALETTES(Phantump), - ICON(Phantump, 1), - .footprint = gMonFootprint_Phantump, - LEARNSETS(Phantump), + .palette = gMonPalette_Phantump, + .shinyPalette = gMonShinyPalette_Phantump, + .iconSprite = gMonIcon_Phantump, + .iconPalIndex = 1, + FOOTPRINT(Phantump) + .levelUpLearnset = sPhantumpLevelUpLearnset, + .teachableLearnset = sPhantumpTeachableLearnset, .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_TREVENANT}, {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_TREVENANT}), }, @@ -3463,7 +3865,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 56, .baseSpAttack = 65, .baseSpDefense = 82, - .types = { TYPE_GHOST, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), .catchRate = 60, .expYield = 166, .evYield_Attack = 2, @@ -3471,7 +3873,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_NATURAL_CURE, ABILITY_FRISK, ABILITY_HARVEST }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Trevenant"), @@ -3489,55 +3891,49 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Trevenant, 64, 64), + .frontPic = gMonFrontPic_Trevenant, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Trevenant, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Trevenant, 64, 64), + .backPic = gMonBackPic_Trevenant, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Trevenant), - ICON(Trevenant, 1), - .footprint = gMonFootprint_Trevenant, - LEARNSETS(Trevenant), + .palette = gMonPalette_Trevenant, + .shinyPalette = gMonShinyPalette_Trevenant, + .iconSprite = gMonIcon_Trevenant, + .iconPalIndex = 1, + FOOTPRINT(Trevenant) + .levelUpLearnset = sTrevenantLevelUpLearnset, + .teachableLearnset = sTrevenantTeachableLearnset, }, #endif //P_FAMILY_PHANTUMP #if P_FAMILY_PUMPKABOO -#define PUMPKABOO_MISC_INFO \ - .types = { TYPE_GHOST, TYPE_GRASS }, \ - .catchRate = 120, \ - .expYield = 67, \ - .evYield_Defense = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Pumpkaboo"), \ - .natDexNum = NATIONAL_DEX_PUMPKABOO, \ - .categoryName = _("Pumpkin"), \ - .frontAnimFrames = sAnims_Pumpkaboo, \ - .frontAnimId = ANIM_V_SLIDE_WOBBLE, \ - .backAnimId = BACK_ANIM_TRIANGLE_DOWN, \ - PALETTES(Pumpkaboo), \ - ICON(Pumpkaboo, 2), \ - .footprint = gMonFootprint_Pumpkaboo, \ - LEARNSETS(Pumpkaboo), \ - .formSpeciesIdTable = sPumpkabooFormSpeciesIdTable - [SPECIES_PUMPKABOO_AVERAGE] = { - PUMPKABOO_MISC_INFO, .baseHP = 49, .baseAttack = 66, .baseDefense = 70, .baseSpeed = 51, .baseSpAttack = 44, .baseSpDefense = 55, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), + .catchRate = 120, + .expYield = 67, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Pumpkaboo"), .cryId = CRY_PUMPKABOO, + .natDexNum = NATIONAL_DEX_PUMPKABOO, + .categoryName = _("Pumpkin"), .height = 4, .weight = 50, .description = COMPOUND_STRING( @@ -3549,24 +3945,50 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(PumpkabooAverage, 40, 40), + .frontPic = gMonFrontPic_PumpkabooAverage, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, - BACK_PIC(PumpkabooAverage, 56, 48), + .frontAnimFrames = sAnims_Pumpkaboo, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .backPic = gMonBackPic_PumpkabooAverage, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 13, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + .palette = gMonPalette_Pumpkaboo, + .shinyPalette = gMonShinyPalette_Pumpkaboo, + .iconSprite = gMonIcon_Pumpkaboo, + .iconPalIndex = 2, + FOOTPRINT(Pumpkaboo) + .levelUpLearnset = sPumpkabooLevelUpLearnset, + .teachableLearnset = sPumpkabooTeachableLearnset, + .formSpeciesIdTable = sPumpkabooFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOURGEIST_AVERAGE}, {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOURGEIST_AVERAGE}), }, [SPECIES_PUMPKABOO_SMALL] = { - PUMPKABOO_MISC_INFO, .baseHP = 44, .baseAttack = 66, .baseDefense = 70, .baseSpeed = 56, .baseSpAttack = 44, .baseSpDefense = 55, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), + .catchRate = 120, + .expYield = 67, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Pumpkaboo"), .cryId = CRY_PUMPKABOO, + .natDexNum = NATIONAL_DEX_PUMPKABOO, + .categoryName = _("Pumpkin"), .height = 3, .weight = 35, .description = COMPOUND_STRING( @@ -3577,24 +3999,50 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(PumpkabooSmall, 40, 40), + .frontPic = gMonFrontPic_PumpkabooSmall, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, - BACK_PIC(PumpkabooSmall, 56, 48), + .frontAnimFrames = sAnims_Pumpkaboo, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .backPic = gMonBackPic_PumpkabooSmall, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 14, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + .palette = gMonPalette_Pumpkaboo, + .shinyPalette = gMonShinyPalette_Pumpkaboo, + .iconSprite = gMonIcon_Pumpkaboo, + .iconPalIndex = 2, + FOOTPRINT(Pumpkaboo) + .levelUpLearnset = sPumpkabooLevelUpLearnset, + .teachableLearnset = sPumpkabooTeachableLearnset, + .formSpeciesIdTable = sPumpkabooFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOURGEIST_SMALL}, {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOURGEIST_SMALL}), }, [SPECIES_PUMPKABOO_LARGE] = { - PUMPKABOO_MISC_INFO, .baseHP = 54, .baseAttack = 66, .baseDefense = 70, .baseSpeed = 46, .baseSpAttack = 44, .baseSpDefense = 55, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), + .catchRate = 120, + .expYield = 67, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Pumpkaboo"), .cryId = CRY_PUMPKABOO, + .natDexNum = NATIONAL_DEX_PUMPKABOO, + .categoryName = _("Pumpkin"), .height = 5, .weight = 75, .description = COMPOUND_STRING( @@ -3605,26 +4053,52 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(PumpkabooLarge, 48, 48), + .frontPic = gMonFrontPic_PumpkabooLarge, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 12, - BACK_PIC(PumpkabooLarge, 56, 48), + .frontAnimFrames = sAnims_Pumpkaboo, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .backPic = gMonBackPic_PumpkabooLarge, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 13, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + .palette = gMonPalette_Pumpkaboo, + .shinyPalette = gMonShinyPalette_Pumpkaboo, + .iconSprite = gMonIcon_Pumpkaboo, + .iconPalIndex = 2, + FOOTPRINT(Pumpkaboo) + .levelUpLearnset = sPumpkabooLevelUpLearnset, + .teachableLearnset = sPumpkabooTeachableLearnset, + .formSpeciesIdTable = sPumpkabooFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOURGEIST_LARGE}, {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOURGEIST_LARGE}), }, [SPECIES_PUMPKABOO_SUPER] = { - PUMPKABOO_MISC_INFO, .baseHP = 59, .baseAttack = 66, .baseDefense = 70, .baseSpeed = 41, .baseSpAttack = 44, .baseSpDefense = 55, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), + .catchRate = 120, + .expYield = 67, + .evYield_Defense = 1, .itemCommon = ITEM_MIRACLE_SEED, .itemRare = ITEM_MIRACLE_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Pumpkaboo"), .cryId = CRY_PUMPKABOO_SUPER, + .natDexNum = NATIONAL_DEX_PUMPKABOO, + .categoryName = _("Pumpkin"), .height = 8, .weight = 150, .description = COMPOUND_STRING( @@ -3635,48 +4109,50 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(PumpkabooSuper, 48, 48), + .frontPic = gMonFrontPic_PumpkabooSuper, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, - BACK_PIC(PumpkabooSuper, 56, 48), + .frontAnimFrames = sAnims_Pumpkaboo, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .backPic = gMonBackPic_PumpkabooSuper, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 12, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + .palette = gMonPalette_Pumpkaboo, + .shinyPalette = gMonShinyPalette_Pumpkaboo, + .iconSprite = gMonIcon_Pumpkaboo, + .iconPalIndex = 2, + FOOTPRINT(Pumpkaboo) + .levelUpLearnset = sPumpkabooLevelUpLearnset, + .teachableLearnset = sPumpkabooTeachableLearnset, + .formSpeciesIdTable = sPumpkabooFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOURGEIST_SUPER}, {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOURGEIST_SUPER}), }, -#define GOURGEIST_MISC_INFO \ - .types = { TYPE_GHOST, TYPE_GRASS }, \ - .catchRate = 60, \ - .expYield = 173, \ - .evYield_Defense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Gourgeist"), \ - .natDexNum = NATIONAL_DEX_GOURGEIST, \ - .categoryName = _("Pumpkin"), \ - .frontAnimFrames = sAnims_Gourgeist, \ - .frontAnimId = ANIM_SHRINK_GROW, \ - .backAnimId = BACK_ANIM_V_STRETCH, \ - PALETTES(Gourgeist), \ - ICON(Gourgeist, 2), \ - .footprint = gMonFootprint_Gourgeist, \ - LEARNSETS(Gourgeist), \ - .formSpeciesIdTable = sGourgeistFormSpeciesIdTable - [SPECIES_GOURGEIST_AVERAGE] = { - GOURGEIST_MISC_INFO, .baseHP = 65, .baseAttack = 90, .baseDefense = 122, .baseSpeed = 84, .baseSpAttack = 58, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), + .catchRate = 60, + .expYield = 173, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Gourgeist"), .cryId = CRY_GOURGEIST, + .natDexNum = NATIONAL_DEX_GOURGEIST, + .categoryName = _("Pumpkin"), .height = 9, .weight = 125, .description = COMPOUND_STRING( @@ -3688,22 +4164,48 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GourgeistAverage, 64, 64), + .frontPic = gMonFrontPic_GourgeistAverage, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, - BACK_PIC(GourgeistAverage, 48, 64), + .frontAnimFrames = sAnims_Gourgeist, + .frontAnimId = ANIM_SHRINK_GROW, + .backPic = gMonBackPic_GourgeistAverage, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 3, + .backAnimId = BACK_ANIM_V_STRETCH, + .palette = gMonPalette_Gourgeist, + .shinyPalette = gMonShinyPalette_Gourgeist, + .iconSprite = gMonIcon_Gourgeist, + .iconPalIndex = 2, + FOOTPRINT(Gourgeist) + .levelUpLearnset = sGourgeistLevelUpLearnset, + .teachableLearnset = sGourgeistTeachableLearnset, + .formSpeciesIdTable = sGourgeistFormSpeciesIdTable, }, [SPECIES_GOURGEIST_SMALL] = { - GOURGEIST_MISC_INFO, .baseHP = 55, .baseAttack = 85, .baseDefense = 122, .baseSpeed = 99, .baseSpAttack = 58, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), + .catchRate = 60, + .expYield = 173, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Gourgeist"), .cryId = CRY_GOURGEIST, + .natDexNum = NATIONAL_DEX_GOURGEIST, + .categoryName = _("Pumpkin"), .height = 7, .weight = 95, .description = COMPOUND_STRING( @@ -3715,22 +4217,48 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GourgeistSmall, 56, 64), + .frontPic = gMonFrontPic_GourgeistSmall, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 5, - BACK_PIC(GourgeistSmall, 48, 56), + .frontAnimFrames = sAnims_Gourgeist, + .frontAnimId = ANIM_SHRINK_GROW, + .backPic = gMonBackPic_GourgeistSmall, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 4, + .backAnimId = BACK_ANIM_V_STRETCH, + .palette = gMonPalette_Gourgeist, + .shinyPalette = gMonShinyPalette_Gourgeist, + .iconSprite = gMonIcon_Gourgeist, + .iconPalIndex = 2, + FOOTPRINT(Gourgeist) + .levelUpLearnset = sGourgeistLevelUpLearnset, + .teachableLearnset = sGourgeistTeachableLearnset, + .formSpeciesIdTable = sGourgeistFormSpeciesIdTable, }, [SPECIES_GOURGEIST_LARGE] = { - GOURGEIST_MISC_INFO, .baseHP = 75, .baseAttack = 95, .baseDefense = 122, .baseSpeed = 69, .baseSpAttack = 58, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), + .catchRate = 60, + .expYield = 173, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Gourgeist"), .cryId = CRY_GOURGEIST, + .natDexNum = NATIONAL_DEX_GOURGEIST, + .categoryName = _("Pumpkin"), .height = 11, .weight = 140, .description = COMPOUND_STRING( @@ -3742,24 +4270,50 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GourgeistLarge, 64, 64), + .frontPic = gMonFrontPic_GourgeistLarge, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, - BACK_PIC(GourgeistLarge, 48, 64), + .frontAnimFrames = sAnims_Gourgeist, + .frontAnimId = ANIM_SHRINK_GROW, + .backPic = gMonBackPic_GourgeistLarge, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_STRETCH, + .palette = gMonPalette_Gourgeist, + .shinyPalette = gMonShinyPalette_Gourgeist, + .iconSprite = gMonIcon_Gourgeist, + .iconPalIndex = 2, + FOOTPRINT(Gourgeist) + .levelUpLearnset = sGourgeistLevelUpLearnset, + .teachableLearnset = sGourgeistTeachableLearnset, + .formSpeciesIdTable = sGourgeistFormSpeciesIdTable, }, [SPECIES_GOURGEIST_SUPER] = { - GOURGEIST_MISC_INFO, .baseHP = 85, .baseAttack = 100, .baseDefense = 122, .baseSpeed = 54, .baseSpAttack = 58, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), + .catchRate = 60, + .expYield = 173, + .evYield_Defense = 2, .itemCommon = ITEM_MIRACLE_SEED, .itemRare = ITEM_MIRACLE_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Gourgeist"), .cryId = CRY_GOURGEIST_SUPER, + .natDexNum = NATIONAL_DEX_GOURGEIST, + .categoryName = _("Pumpkin"), .height = 17, .weight = 390, .description = COMPOUND_STRING( @@ -3771,18 +4325,31 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GourgeistSuper, 64, 64), + .frontPic = gMonFrontPic_GourgeistSuper, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - BACK_PIC(GourgeistSuper, 56, 64), + .frontAnimFrames = sAnims_Gourgeist, + .frontAnimId = ANIM_SHRINK_GROW, + .backPic = gMonBackPic_GourgeistSuper, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 1, + .backAnimId = BACK_ANIM_V_STRETCH, + .palette = gMonPalette_Gourgeist, + .shinyPalette = gMonShinyPalette_Gourgeist, + .iconSprite = gMonIcon_Gourgeist, + .iconPalIndex = 2, + FOOTPRINT(Gourgeist) + .levelUpLearnset = sGourgeistLevelUpLearnset, + .teachableLearnset = sGourgeistTeachableLearnset, + .formSpeciesIdTable = sGourgeistFormSpeciesIdTable, }, #endif //P_FAMILY_PUMPKABOO #if P_FAMILY_BERGMITE #if P_UPDATED_EGG_GROUPS >= GEN_8 - #define BERGMITE_EGG_GROUPS {EGG_GROUP_MONSTER, EGG_GROUP_MINERAL } + #define BERGMITE_EGG_GROUPS MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_MINERAL) #else - #define BERGMITE_EGG_GROUPS {EGG_GROUP_MONSTER, EGG_GROUP_MONSTER } + #define BERGMITE_EGG_GROUPS MON_EGG_GROUPS(EGG_GROUP_MONSTER) #endif [SPECIES_BERGMITE] = @@ -3793,7 +4360,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 28, .baseSpAttack = 32, .baseSpDefense = 35, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 190, .expYield = 61, .evYield_Defense = 1, @@ -3819,85 +4386,103 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Bergmite, 40, 40), + .frontPic = gMonFrontPic_Bergmite, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Bergmite, .frontAnimId = ANIM_LUNGE_GROW, - BACK_PIC(Bergmite, 56, 48), + .backPic = gMonBackPic_Bergmite, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Bergmite), - ICON(Bergmite, 0), - .footprint = gMonFootprint_Bergmite, - LEARNSETS(Bergmite), + .palette = gMonPalette_Bergmite, + .shinyPalette = gMonShinyPalette_Bergmite, + .iconSprite = gMonIcon_Bergmite, + .iconPalIndex = 0, + FOOTPRINT(Bergmite) + .levelUpLearnset = sBergmiteLevelUpLearnset, + .teachableLearnset = sBergmiteTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_AVALUGG}, {EVO_NONE, 0, SPECIES_AVALUGG_HISUIAN}), }, -#define AVALUGG_MISC_INFO \ - .catchRate = 55, \ - .expYield = 180, \ - .evYield_Defense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = BERGMITE_EGG_GROUPS, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Avalugg"), \ - .cryId = CRY_AVALUGG, \ - .natDexNum = NATIONAL_DEX_AVALUGG, \ - .categoryName = _("Iceberg"), \ - .footprint = gMonFootprint_Avalugg, \ - .formSpeciesIdTable = sAvaluggFormSpeciesIdTable - [SPECIES_AVALUGG] = { - AVALUGG_MISC_INFO, .baseHP = 95, .baseAttack = 117, .baseDefense = 184, .baseSpeed = 28, .baseSpAttack = 44, .baseSpDefense = 46, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 55, + .expYield = 180, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = BERGMITE_EGG_GROUPS, .abilities = { ABILITY_OWN_TEMPO, ABILITY_ICE_BODY, ABILITY_STURDY }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Avalugg"), + .cryId = CRY_AVALUGG, + .natDexNum = NATIONAL_DEX_AVALUGG, + .categoryName = _("Iceberg"), .height = 20, .weight = 5050, .description = COMPOUND_STRING( "The way several Bergmite huddle on its\n" "back make it look like an aircraft carrier\n" "made of ice. Its cumbersome frame crushes\n" - "anything that stands in its way.") -, + "anything that stands in its way."), .pokemonScale = 261, .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Avalugg, 64, 56), + .frontPic = gMonFrontPic_Avalugg, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Avalugg, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Avalugg, 64, 40), + .backPic = gMonBackPic_Avalugg, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(Avalugg), - ICON(Avalugg, 0), - LEARNSETS(Avalugg), + .palette = gMonPalette_Avalugg, + .shinyPalette = gMonShinyPalette_Avalugg, + .iconSprite = gMonIcon_Avalugg, + .iconPalIndex = 0, + FOOTPRINT(Avalugg) + .levelUpLearnset = sAvaluggLevelUpLearnset, + .teachableLearnset = sAvaluggTeachableLearnset, + .formSpeciesIdTable = sAvaluggFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_AVALUGG_HISUIAN] = { - AVALUGG_MISC_INFO, .baseHP = 95, .baseAttack = 127, .baseDefense = 184, .baseSpeed = 38, .baseSpAttack = 34, .baseSpDefense = 36, - .types = { TYPE_ICE, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ICE, TYPE_ROCK), + .catchRate = 55, + .expYield = 180, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = BERGMITE_EGG_GROUPS, .abilities = { ABILITY_STRONG_JAW, ABILITY_ICE_BODY, ABILITY_STURDY }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Avalugg"), + .cryId = CRY_AVALUGG, + .natDexNum = NATIONAL_DEX_AVALUGG, + .categoryName = _("Iceberg"), .height = 14, .weight = 2624, .description = COMPOUND_STRING( @@ -3908,17 +4493,24 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(AvaluggHisuian, 64, 48), + .frontPic = gMonFrontPic_AvaluggHisuian, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 6, .frontAnimFrames = sAnims_AvaluggHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(AvaluggHisuian, 64, 32), + .backPic = gMonBackPic_AvaluggHisuian, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(AvaluggHisuian), - ICON(AvaluggHisuian, 5), - LEARNSETS(AvaluggHisuian), + .palette = gMonPalette_AvaluggHisuian, + .shinyPalette = gMonShinyPalette_AvaluggHisuian, + .iconSprite = gMonIcon_AvaluggHisuian, + .iconPalIndex = 5, + FOOTPRINT(Avalugg) .isHisuianForm = TRUE, + .levelUpLearnset = sAvaluggHisuianLevelUpLearnset, + .teachableLearnset = sAvaluggHisuianTeachableLearnset, + .formSpeciesIdTable = sAvaluggFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_BERGMITE @@ -3932,7 +4524,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 55, .baseSpAttack = 45, .baseSpDefense = 40, - .types = { TYPE_FLYING, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_FLYING, TYPE_DRAGON), .catchRate = 190, .expYield = 49, .evYield_Speed = 1, @@ -3940,11 +4532,11 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON }, - #else - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, - #endif + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_DRAGON), + #else + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), + #endif .abilities = { ABILITY_FRISK, ABILITY_INFILTRATOR, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Noibat"), @@ -3962,18 +4554,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Noibat, 64, 48), + .frontPic = gMonFrontPic_Noibat, + .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Noibat, .frontAnimId = ANIM_RISING_WOBBLE, .enemyMonElevation = 8, - BACK_PIC(Noibat, 56, 64), + .backPic = gMonBackPic_Noibat, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, - PALETTES(Noibat), - ICON(Noibat, 2), - .footprint = gMonFootprint_Noibat, - LEARNSETS(Noibat), + .palette = gMonPalette_Noibat, + .shinyPalette = gMonShinyPalette_Noibat, + .iconSprite = gMonIcon_Noibat, + .iconPalIndex = 2, + FOOTPRINT(Noibat) + .levelUpLearnset = sNoibatLevelUpLearnset, + .teachableLearnset = sNoibatTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 48, SPECIES_NOIVERN}), }, @@ -3985,7 +4582,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 123, .baseSpAttack = 97, .baseSpDefense = 80, - .types = { TYPE_FLYING, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_FLYING, TYPE_DRAGON), .catchRate = 45, .expYield = 187, .evYield_Speed = 2, @@ -3993,11 +4590,11 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON }, - #else - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, - #endif + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_DRAGON), + #else + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), + #endif .abilities = { ABILITY_FRISK, ABILITY_INFILTRATOR, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Noivern"), @@ -4015,69 +4612,127 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Noivern, 64, 64), + .frontPic = gMonFrontPic_Noivern, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Noivern, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Noivern, 64, 64), + .backPic = gMonBackPic_Noivern, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, - PALETTES(Noivern), - ICON(Noivern, 2), - .footprint = gMonFootprint_Noivern, - LEARNSETS(Noivern), + .palette = gMonPalette_Noivern, + .shinyPalette = gMonShinyPalette_Noivern, + .iconSprite = gMonIcon_Noivern, + .iconPalIndex = 2, + FOOTPRINT(Noivern) + .levelUpLearnset = sNoivernLevelUpLearnset, + .teachableLearnset = sNoivernTeachableLearnset, }, #endif //P_FAMILY_NOIBAT #if P_FAMILY_XERNEAS -#define XERNEAS_MISC_INFO(Form) \ - { \ - .baseHP = 126, \ - .baseAttack = 131, \ - .baseDefense = 95, \ - .baseSpeed = 99, \ - .baseSpAttack = 131, \ - .baseSpDefense = 98, \ - .types = { TYPE_FAIRY, TYPE_FAIRY }, \ - .catchRate = 45, \ - .expYield = 306, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_FAIRY_AURA, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Xerneas"), \ - .cryId = CRY_XERNEAS, \ - .natDexNum = NATIONAL_DEX_XERNEAS, \ - .categoryName = _("Life"), \ - .height = 30, \ - .weight = 2150, \ - .description = gXerneasPokedexText, \ - .pokemonScale = 275, \ - .pokemonOffset = 7, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Xerneas##Form, 64, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Xerneas, \ - .frontAnimId = ANIM_GROW_VIBRATE, \ - BACK_PIC(Xerneas##Form, 64, 64), \ - .backPicYOffset = 0, \ - .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, \ - PALETTES(Xerneas##Form), \ - ICON(Xerneas##Form, 0), \ - .footprint = gMonFootprint_Xerneas, \ - LEARNSETS(Xerneas), \ - .formSpeciesIdTable = sXerneasFormSpeciesIdTable, \ - .formChangeTable = sXerneasFormChangeTable, \ - .isLegendary = TRUE, \ - } + [SPECIES_XERNEAS_NEUTRAL] = + { + .baseHP = 126, + .baseAttack = 131, + .baseDefense = 95, + .baseSpeed = 99, + .baseSpAttack = 131, + .baseSpDefense = 98, + .types = MON_TYPES(TYPE_FAIRY), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_FAIRY_AURA, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Xerneas"), + .cryId = CRY_XERNEAS, + .natDexNum = NATIONAL_DEX_XERNEAS, + .categoryName = _("Life"), + .height = 30, + .weight = 2150, + .description = gXerneasPokedexText, + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_XerneasNeutral, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Xerneas, + .frontAnimId = ANIM_GROW_VIBRATE, + .backPic = gMonBackPic_XerneasNeutral, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + .palette = gMonPalette_XerneasNeutral, + .shinyPalette = gMonShinyPalette_XerneasNeutral, + .iconSprite = gMonIcon_XerneasNeutral, + .iconPalIndex = 0, + FOOTPRINT(Xerneas) + .isLegendary = TRUE, + .levelUpLearnset = sXerneasLevelUpLearnset, + .teachableLearnset = sXerneasTeachableLearnset, + .formSpeciesIdTable = sXerneasFormSpeciesIdTable, + .formChangeTable = sXerneasFormChangeTable, + }, - [SPECIES_XERNEAS_NEUTRAL] = XERNEAS_MISC_INFO(Neutral), - [SPECIES_XERNEAS_ACTIVE] = XERNEAS_MISC_INFO(Active), + [SPECIES_XERNEAS_ACTIVE] = + { + .baseHP = 126, + .baseAttack = 131, + .baseDefense = 95, + .baseSpeed = 99, + .baseSpAttack = 131, + .baseSpDefense = 98, + .types = MON_TYPES(TYPE_FAIRY), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_FAIRY_AURA, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Xerneas"), + .cryId = CRY_XERNEAS, + .natDexNum = NATIONAL_DEX_XERNEAS, + .categoryName = _("Life"), + .height = 30, + .weight = 2150, + .description = gXerneasPokedexText, + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_XerneasActive, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Xerneas, + .frontAnimId = ANIM_GROW_VIBRATE, + .backPic = gMonBackPic_XerneasActive, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + .palette = gMonPalette_XerneasActive, + .shinyPalette = gMonShinyPalette_XerneasActive, + .iconSprite = gMonIcon_XerneasActive, + .iconPalIndex = 0, + FOOTPRINT(Xerneas) + .isLegendary = TRUE, + .levelUpLearnset = sXerneasLevelUpLearnset, + .teachableLearnset = sXerneasTeachableLearnset, + .formSpeciesIdTable = sXerneasFormSpeciesIdTable, + .formChangeTable = sXerneasFormChangeTable, + }, #endif //P_FAMILY_XERNEAS #if P_FAMILY_YVELTAL @@ -4089,18 +4744,17 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 99, .baseSpAttack = 131, .baseSpDefense = 98, - .types = { TYPE_DARK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FLYING), .catchRate = 45, - .expYield = 306, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, .evYield_HP = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_DARK_AURA, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_DARK_AURA, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, - .isLegendary = TRUE, .speciesName = _("Yveltal"), .cryId = CRY_YVELTAL, .natDexNum = NATIONAL_DEX_YVELTAL, @@ -4116,127 +4770,258 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 0, .trainerScale = 360, .trainerOffset = 7, - FRONT_PIC(Yveltal, 64, 64), + .frontPic = gMonFrontPic_Yveltal, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Yveltal, .frontAnimId = ANIM_FRONT_FLIP, .enemyMonElevation = 5, - BACK_PIC(Yveltal, 64, 48), + .backPic = gMonBackPic_Yveltal, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Yveltal), - ICON(Yveltal, 0), - .footprint = gMonFootprint_Yveltal, - LEARNSETS(Yveltal), + .palette = gMonPalette_Yveltal, + .shinyPalette = gMonShinyPalette_Yveltal, + .iconSprite = gMonIcon_Yveltal, + .iconPalIndex = 0, + FOOTPRINT(Yveltal) + .isLegendary = TRUE, + .levelUpLearnset = sYveltalLevelUpLearnset, + .teachableLearnset = sYveltalTeachableLearnset, }, #endif //P_FAMILY_YVELTAL #if P_FAMILY_ZYGARDE -#define ZYGARDE_MISC_INFO(ability) \ - .types = { TYPE_DRAGON, TYPE_GROUND }, \ - .catchRate = 3, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ability, ABILITY_NONE }, \ - .noFlip = TRUE, \ - .speciesName = _("Zygarde"), \ - .natDexNum = NATIONAL_DEX_ZYGARDE, \ - .categoryName = _("Order"), \ - .footprint = gMonFootprint_Zygarde, \ - LEARNSETS(Zygarde), \ - .formSpeciesIdTable = sZygardeFormSpeciesIdTable, \ - .isLegendary = TRUE + [SPECIES_ZYGARDE_50_AURA_BREAK] = + { + .baseHP = 108, + .baseAttack = 100, + .baseDefense = 121, + .baseSpeed = 95, + .baseSpAttack = 81, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_AURA_BREAK, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Zygarde"), + .cryId = CRY_ZYGARDE_50, + .natDexNum = NATIONAL_DEX_ZYGARDE, + .categoryName = _("Order"), + .height = 50, + .weight = 3050, + .description = gZygarde50PokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + .frontPic = gMonFrontPic_Zygarde50, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Zygarde50, + .frontAnimId = ANIM_TIP_MOVE_FORWARD, + .backPic = gMonBackPic_Zygarde50, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_V_STRETCH, + .palette = gMonPalette_Zygarde50, + .shinyPalette = gMonShinyPalette_Zygarde50, + .iconSprite = gMonIcon_Zygarde50, + .iconPalIndex = 1, + FOOTPRINT(Zygarde) + .isLegendary = TRUE, + .levelUpLearnset = sZygardeLevelUpLearnset, + .teachableLearnset = sZygardeTeachableLearnset, + .formSpeciesIdTable = sZygardeFormSpeciesIdTable, + .formChangeTable = sZygarde50AuraBreakFormChangeTable, + }, + [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = + { + .baseHP = 108, + .baseAttack = 100, + .baseDefense = 121, + .baseSpeed = 95, + .baseSpAttack = 81, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_POWER_CONSTRUCT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Zygarde"), + .cryId = CRY_ZYGARDE_50, + .natDexNum = NATIONAL_DEX_ZYGARDE, + .categoryName = _("Order"), + .height = 50, + .weight = 3050, + .description = gZygarde50PokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + .frontPic = gMonFrontPic_Zygarde50, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Zygarde50, + .frontAnimId = ANIM_TIP_MOVE_FORWARD, + .backPic = gMonBackPic_Zygarde50, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, + .palette = gMonPalette_Zygarde50, + .shinyPalette = gMonShinyPalette_Zygarde50, + .iconSprite = gMonIcon_Zygarde50, + .iconPalIndex = 1, + FOOTPRINT(Zygarde) + .isLegendary = TRUE, + .levelUpLearnset = sZygardeLevelUpLearnset, + .teachableLearnset = sZygardeTeachableLearnset, + .formSpeciesIdTable = sZygardeFormSpeciesIdTable, + .formChangeTable = sZygarde50PowerConstructFormChangeTable, + }, + [SPECIES_ZYGARDE_10_AURA_BREAK] = + { + .baseHP = 54, + .baseAttack = 100, + .baseDefense = 71, + .baseSpeed = 115, + .baseSpAttack = 61, + .baseSpDefense = 85, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 243 : 219, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_AURA_BREAK, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = TRUE, + .speciesName = _("Zygarde"), + .cryId = CRY_ZYGARDE_10, + .natDexNum = NATIONAL_DEX_ZYGARDE, + .categoryName = _("Order"), + .height = 12, + .weight = 335, + .description = gZygarde10PokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + .frontPic = gMonFrontPic_Zygarde10, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Zygarde10, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,, + .backPic = gMonBackPic_Zygarde10, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + .palette = gMonPalette_Zygarde10, + .shinyPalette = gMonShinyPalette_Zygarde10, + .iconSprite = gMonIcon_Zygarde10, + .iconPalIndex = 1, + FOOTPRINT(Zygarde) + .isLegendary = TRUE, + .levelUpLearnset = sZygardeLevelUpLearnset, + .teachableLearnset = sZygardeTeachableLearnset, + .formSpeciesIdTable = sZygardeFormSpeciesIdTable, + .formChangeTable = sZygarde10AuraBreakFormChangeTable, + }, -#define ZYGARDE_50_SPECIES_INFO(ability) \ - { \ - .baseHP = 108, \ - .baseAttack = 100, \ - .baseDefense = 121, \ - .baseSpeed = 95, \ - .baseSpAttack = 81, \ - .baseSpDefense = 95, \ - .expYield = 270, \ - .bodyColor = BODY_COLOR_GREEN, \ - .cryId = CRY_ZYGARDE_50, \ - .height = 50, \ - .weight = 3050, \ - .description = gZygarde50PokedexText, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 721, \ - .trainerOffset = 19, \ - FRONT_PIC(Zygarde50, 64, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Zygarde50, \ - .frontAnimId = ANIM_TIP_MOVE_FORWARD, \ - BACK_PIC(Zygarde50, 64, 64), \ - .backPicYOffset = 4, \ - .backAnimId = (ability == ABILITY_POWER_CONSTRUCT \ - ? BACK_ANIM_SHAKE_GLOW_GREEN \ - : BACK_ANIM_V_STRETCH), \ - PALETTES(Zygarde50), \ - ICON(Zygarde50, 1), \ - .formChangeTable = (ability == ABILITY_POWER_CONSTRUCT \ - ? sZygarde50PowerConstructFormChangeTable \ - : sZygarde50AuraBreakFormChangeTable), \ - ZYGARDE_MISC_INFO(ability), \ - } + [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = + { + .baseHP = 54, + .baseAttack = 100, + .baseDefense = 71, + .baseSpeed = 115, + .baseSpAttack = 61, + .baseSpDefense = 85, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 243 : 219, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_POWER_CONSTRUCT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = TRUE, + .speciesName = _("Zygarde"), + .cryId = CRY_ZYGARDE_10, + .natDexNum = NATIONAL_DEX_ZYGARDE, + .categoryName = _("Order"), + .height = 12, + .weight = 335, + .description = gZygarde10PokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + .frontPic = gMonFrontPic_Zygarde10, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Zygarde10, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,, + .backPic = gMonBackPic_Zygarde10, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, + .palette = gMonPalette_Zygarde10, + .shinyPalette = gMonShinyPalette_Zygarde10, + .iconSprite = gMonIcon_Zygarde10, + .iconPalIndex = 1, + FOOTPRINT(Zygarde) + .isLegendary = TRUE, + .levelUpLearnset = sZygardeLevelUpLearnset, + .teachableLearnset = sZygardeTeachableLearnset, + .formSpeciesIdTable = sZygardeFormSpeciesIdTable, + .formChangeTable = sZygarde10PowerConstructFormChangeTable, + }, -#define ZYGARDE_10_SPECIES_INFO(ability) \ - { \ - .baseHP = 54, \ - .baseAttack = 100, \ - .baseDefense = 71, \ - .baseSpeed = 115, \ - .baseSpAttack = 61, \ - .baseSpDefense = 85, \ - .expYield = 219, \ - .bodyColor = BODY_COLOR_BLACK, \ - .cryId = CRY_ZYGARDE_10, \ - .height = 12, \ - .weight = 335, \ - .description = gZygarde10PokedexText, \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 721, \ - .trainerOffset = 19, \ - FRONT_PIC(Zygarde10, 56, 64), \ - .frontPicYOffset = 2, \ - .frontAnimFrames = sAnims_Zygarde10, \ - BACK_PIC(Zygarde10, 64, 56), \ - .backPicYOffset = 8, \ - .backAnimId = (ability == ABILITY_POWER_CONSTRUCT \ - ? BACK_ANIM_SHAKE_GLOW_GREEN \ - : BACK_ANIM_JOLT_RIGHT), \ - PALETTES(Zygarde10), \ - ICON(Zygarde10, 1), \ - .formChangeTable = (ability == ABILITY_POWER_CONSTRUCT \ - ? sZygarde10PowerConstructFormChangeTable \ - : sZygarde10AuraBreakFormChangeTable), \ - ZYGARDE_MISC_INFO(ability), \ - } - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - - [SPECIES_ZYGARDE_50_AURA_BREAK] = ZYGARDE_50_SPECIES_INFO(ABILITY_AURA_BREAK), - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = ZYGARDE_50_SPECIES_INFO(ABILITY_POWER_CONSTRUCT), - [SPECIES_ZYGARDE_10_AURA_BREAK] = ZYGARDE_10_SPECIES_INFO(ABILITY_AURA_BREAK), - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = ZYGARDE_10_SPECIES_INFO(ABILITY_POWER_CONSTRUCT), [SPECIES_ZYGARDE_COMPLETE] = { - ZYGARDE_MISC_INFO(ABILITY_POWER_CONSTRUCT), .baseHP = 216, .baseAttack = 100, .baseDefense = 121, .baseSpeed = 85, .baseSpAttack = 91, .baseSpDefense = 95, - .expYield = 319, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GROUND), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 354 : 319, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_POWER_CONSTRUCT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, + .noFlip = TRUE, + .speciesName = _("Zygarde"), .cryId = CRY_ZYGARDE_COMPLETE, + .natDexNum = NATIONAL_DEX_ZYGARDE, + .categoryName = _("Order"), .height = 45, .weight = 6100, .description = COMPOUND_STRING( @@ -4248,52 +5033,53 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 0, .trainerScale = 721, .trainerOffset = 19, - FRONT_PIC(ZygardeComplete, 64, 64), + .frontPic = gMonFrontPic_ZygardeComplete, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_ZygardeComplete, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(ZygardeComplete, 64, 64), + .backPic = gMonBackPic_ZygardeComplete, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, - PALETTES(ZygardeComplete), - ICON(ZygardeComplete, 1), + .palette = gMonPalette_ZygardeComplete, + .shinyPalette = gMonShinyPalette_ZygardeComplete, + .iconSprite = gMonIcon_ZygardeComplete, + .iconPalIndex = 1, + FOOTPRINT(Zygarde) + .isLegendary = TRUE, + .levelUpLearnset = sZygardeLevelUpLearnset, + .teachableLearnset = sZygardeTeachableLearnset, + .formSpeciesIdTable = sZygardeFormSpeciesIdTable, .formChangeTable = sZygardeCompleteFormChangeTable, }, #endif //P_FAMILY_ZYGARDE #if P_FAMILY_DIANCIE -#define DIANCE_MISC_INFO \ - .types = { TYPE_ROCK, TYPE_FAIRY }, \ - .catchRate = 3, \ - .evYield_Defense = 1, \ - .evYield_SpDefense = 2, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .bodyColor = BODY_COLOR_PINK, \ - .speciesName = _("Diancie"), \ - .natDexNum = NATIONAL_DEX_DIANCIE, \ - .categoryName = _("Jewel"), \ - .footprint = gMonFootprint_Diancie, \ - LEARNSETS(Diancie), \ - .formSpeciesIdTable = sDiancieFormSpeciesIdTable, \ - .formChangeTable = sDiancieFormChangeTable, \ - .isMythical = TRUE - [SPECIES_DIANCIE] = { - DIANCE_MISC_INFO, .baseHP = 50, .baseAttack = 100, .baseDefense = 150, .baseSpeed = 50, .baseSpAttack = 100, .baseSpDefense = 150, - .expYield = 270, - .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE }, + .types = MON_TYPES(TYPE_ROCK, TYPE_FAIRY), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_Defense = 1, + .evYield_SpDefense = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Diancie"), .cryId = CRY_DIANCIE, + .natDexNum = NATIONAL_DEX_DIANCIE, + .categoryName = _("Jewel"), .height = 7, .weight = 88, .description = COMPOUND_STRING( @@ -4305,30 +5091,52 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Diancie, 40, 64), + .frontPic = gMonFrontPic_Diancie, + .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Diancie, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Diancie, 64, 64), + .backPic = gMonBackPic_Diancie, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - PALETTES(Diancie), - ICON(Diancie, 1), + .palette = gMonPalette_Diancie, + .shinyPalette = gMonShinyPalette_Diancie, + .iconSprite = gMonIcon_Diancie, + .iconPalIndex = 1, + FOOTPRINT(Diancie) + .isMythical = TRUE, + .levelUpLearnset = sDiancieLevelUpLearnset, + .teachableLearnset = sDiancieTeachableLearnset, + .formSpeciesIdTable = sDiancieFormSpeciesIdTable, + .formChangeTable = sDiancieFormChangeTable, }, #if P_MEGA_EVOLUTIONS [SPECIES_DIANCIE_MEGA] = { - DIANCE_MISC_INFO, .baseHP = 50, .baseAttack = 160, .baseDefense = 110, .baseSpeed = 110, .baseSpAttack = 160, .baseSpDefense = 110, + .types = MON_TYPES(TYPE_ROCK, TYPE_FAIRY), + .catchRate = 3, .expYield = 315, + .evYield_Defense = 1, + .evYield_SpDefense = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Diancie"), .cryId = CRY_DIANCIE_MEGA, + .natDexNum = NATIONAL_DEX_DIANCIE, + .categoryName = _("Jewel"), .height = 11, .weight = 278, .description = COMPOUND_STRING( @@ -4340,50 +5148,53 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(DiancieMega, 64, 64), + .frontPic = gMonFrontPic_DiancieMega, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DiancieMega, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DiancieMega, 64, 56), + .backPic = gMonBackPic_DiancieMega, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DiancieMega), - ICON(DiancieMega, 0), + .palette = gMonPalette_DiancieMega, + .shinyPalette = gMonShinyPalette_DiancieMega, + .iconSprite = gMonIcon_DiancieMega, + .iconPalIndex = 0, + FOOTPRINT(Diancie) + .isMythical = TRUE, .isMegaEvolution = TRUE, + .levelUpLearnset = sDiancieLevelUpLearnset, + .teachableLearnset = sDiancieTeachableLearnset, + .formSpeciesIdTable = sDiancieFormSpeciesIdTable, + .formChangeTable = sDiancieFormChangeTable, }, #endif //P_MEGA_EVOLUTIONS #endif //P_FAMILY_DIANCIE #if P_FAMILY_HOOPA -#define HOOPA_MISC_INFO \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_MAGICIAN, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Hoopa"), \ - .natDexNum = NATIONAL_DEX_HOOPA, \ - .footprint = gMonFootprint_Hoopa, \ - .formSpeciesIdTable = sHoopaFormSpeciesIdTable, \ - .formChangeTable = sHoopaFormChangeTable, \ - .isMythical = TRUE - [SPECIES_HOOPA_CONFINED] = { - HOOPA_MISC_INFO, .baseHP = 80, .baseAttack = 110, .baseDefense = 60, .baseSpeed = 70, .baseSpAttack = 150, .baseSpDefense = 130, - .types = { TYPE_PSYCHIC, TYPE_GHOST }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_GHOST), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, .friendship = 100, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_MAGICIAN, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Hoopa"), .cryId = CRY_HOOPA_CONFINED, + .natDexNum = NATIONAL_DEX_HOOPA, .categoryName = _("Mischief"), .height = 5, .weight = 90, @@ -4396,31 +5207,50 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(HoopaConfined, 48, 48), + .frontPic = gMonFrontPic_HoopaConfined, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_HoopaConfined, .frontAnimId = ANIM_ZIGZAG_SLOW, .enemyMonElevation = 13, - BACK_PIC(HoopaConfined, 64, 56), + .backPic = gMonBackPic_HoopaConfined, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(HoopaConfined), - ICON(HoopaConfined, 0), - LEARNSETS(HoopaConfined), + .palette = gMonPalette_HoopaConfined, + .shinyPalette = gMonShinyPalette_HoopaConfined, + .iconSprite = gMonIcon_HoopaConfined, + .iconPalIndex = 0, + FOOTPRINT(Hoopa) + .isMythical = TRUE, + .levelUpLearnset = sHoopaConfinedLevelUpLearnset, + .teachableLearnset = sHoopaConfinedTeachableLearnset, + .formSpeciesIdTable = sHoopaFormSpeciesIdTable, + .formChangeTable = sHoopaFormChangeTable, }, [SPECIES_HOOPA_UNBOUND] = { - HOOPA_MISC_INFO, .baseHP = 80, .baseAttack = 160, .baseDefense = 60, .baseSpeed = 80, .baseSpAttack = 170, .baseSpDefense = 130, - .types = { TYPE_PSYCHIC, TYPE_DARK }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_DARK), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, .friendship = P_UPDATED_FRIENDSHIP >= GEN_8 ? STANDARD_FRIENDSHIP : 100, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_MAGICIAN, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Hoopa"), .cryId = CRY_HOOPA_UNBOUND, + .natDexNum = NATIONAL_DEX_HOOPA, .categoryName = _("Djinn"), .height = 65, .weight = 490, @@ -4433,17 +5263,26 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(HoopaUnbound, 64, 64), + .frontPic = gMonFrontPic_HoopaUnbound, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_HoopaUnbound, .frontAnimId = ANIM_GROW_IN_STAGES, .enemyMonElevation = 3, - BACK_PIC(HoopaUnbound, 64, 64), + .backPic = gMonBackPic_HoopaUnbound, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - PALETTES(HoopaUnbound), - ICON(HoopaUnbound, 0), - LEARNSETS(HoopaUnbound), + .palette = gMonPalette_HoopaUnbound, + .shinyPalette = gMonShinyPalette_HoopaUnbound, + .iconSprite = gMonIcon_HoopaUnbound, + .iconPalIndex = 0, + FOOTPRINT(Hoopa) + .isMythical = TRUE, + .levelUpLearnset = sHoopaUnboundLevelUpLearnset, + .teachableLearnset = sHoopaUnboundTeachableLearnset, + .formSpeciesIdTable = sHoopaFormSpeciesIdTable, + .formChangeTable = sHoopaFormChangeTable, }, #endif //P_FAMILY_HOOPA @@ -4456,18 +5295,17 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .baseSpeed = 70, .baseSpAttack = 130, .baseSpDefense = 90, - .types = { TYPE_FIRE, TYPE_WATER }, + .types = MON_TYPES(TYPE_FIRE, TYPE_WATER), .catchRate = 3, - .expYield = 270, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_WATER_ABSORB, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_WATER_ABSORB, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, - .isMythical = TRUE, .speciesName = _("Volcanion"), .cryId = CRY_VOLCANION, .natDexNum = NATIONAL_DEX_VOLCANION, @@ -4483,17 +5321,23 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 0, .trainerScale = 290, .trainerOffset = 1, - FRONT_PIC(Volcanion, 64, 64), + .frontPic = gMonFrontPic_Volcanion, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Volcanion, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Volcanion, 64, 64), + .backPic = gMonBackPic_Volcanion, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, - PALETTES(Volcanion), - ICON(Volcanion, 0), - .footprint = gMonFootprint_Volcanion, - LEARNSETS(Volcanion), + .palette = gMonPalette_Volcanion, + .shinyPalette = gMonShinyPalette_Volcanion, + .iconSprite = gMonIcon_Volcanion, + .iconPalIndex = 0, + FOOTPRINT(Volcanion) + .isMythical = TRUE, + .levelUpLearnset = sVolcanionLevelUpLearnset, + .teachableLearnset = sVolcanionTeachableLearnset, }, #endif //P_FAMILY_VOLCANION diff --git a/src/data/pokemon/species_info/gen_7.h b/src/data/pokemon/species_info/gen_7_families.h similarity index 54% rename from src/data/pokemon/species_info/gen_7.h rename to src/data/pokemon/species_info/gen_7_families.h index e53c8b3dc..8a498fff4 100644 --- a/src/data/pokemon/species_info/gen_7.h +++ b/src/data/pokemon/species_info/gen_7_families.h @@ -12,7 +12,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 42, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_GRASS, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FLYING), .catchRate = 45, .expYield = 64, .evYield_HP = 1, @@ -20,7 +20,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LONG_REACH }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Rowlet"), @@ -38,17 +38,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Rowlet, 31, 37), + .frontPic = gMonFrontPic_Rowlet, + .frontPicSize = MON_COORDS_SIZE(31, 37), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Rowlet, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Rowlet, 43, 36), + .backPic = gMonBackPic_Rowlet, + .backPicSize = MON_COORDS_SIZE(43, 36), .backPicYOffset = 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, - PALETTES(Rowlet), - ICON(Rowlet, 0), - .footprint = gMonFootprint_Rowlet, - LEARNSETS(Rowlet), + .palette = gMonPalette_Rowlet, + .shinyPalette = gMonShinyPalette_Rowlet, + .iconSprite = gMonIcon_Rowlet, + .iconPalIndex = 0, + FOOTPRINT(Rowlet) + .levelUpLearnset = sRowletLevelUpLearnset, + .teachableLearnset = sRowletTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_DARTRIX}), }, @@ -60,7 +65,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 52, .baseSpAttack = 70, .baseSpDefense = 70, - .types = { TYPE_GRASS, TYPE_FLYING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FLYING), .catchRate = 45, .expYield = 147, .evYield_HP = 2, @@ -68,7 +73,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LONG_REACH }, .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, @@ -87,101 +92,132 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dartrix, 34, 47), + .frontPic = gMonFrontPic_Dartrix, + .frontPicSize = MON_COORDS_SIZE(34, 47), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Dartrix, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Dartrix, 56, 54), + .backPic = gMonBackPic_Dartrix, + .backPicSize = MON_COORDS_SIZE(56, 54), .backPicYOffset = 4, .backAnimId = BACK_ANIM_V_STRETCH, - PALETTES(Dartrix), - ICON(Dartrix, 1), - .footprint = gMonFootprint_Dartrix, - LEARNSETS(Dartrix), + .palette = gMonPalette_Dartrix, + .shinyPalette = gMonShinyPalette_Dartrix, + .iconSprite = gMonIcon_Dartrix, + .iconPalIndex = 1, + FOOTPRINT(Dartrix) + .levelUpLearnset = sDartrixLevelUpLearnset, + .teachableLearnset = sDartrixTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_DECIDUEYE}, {EVO_NONE, 0, SPECIES_DECIDUEYE_HISUIAN}), }, -#define DECIDUEYE_MISC_INFO \ - .catchRate = 45, \ - .expYield = 239, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Decidueye"), \ - .cryId = CRY_DECIDUEYE, \ - .natDexNum = NATIONAL_DEX_DECIDUEYE, \ - .categoryName = _("Arrow Quill"), \ - .height = 16, \ - .pokemonScale = 259, \ - .pokemonOffset = 1, \ - .trainerScale = 296, \ - .trainerOffset = 1, \ - .footprint = gMonFootprint_Decidueye, \ - .formSpeciesIdTable = sDecidueyeFormSpeciesIdTable - [SPECIES_DECIDUEYE] = { - DECIDUEYE_MISC_INFO, .baseHP = 78, .baseAttack = 107, .baseDefense = 75, .baseSpeed = 70, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_GRASS, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GRASS, TYPE_GHOST), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 265 : 239, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LONG_REACH }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Decidueye"), + .cryId = CRY_DECIDUEYE, + .natDexNum = NATIONAL_DEX_DECIDUEYE, + .categoryName = _("Arrow Quill"), + .height = 16, .weight = 366, .description = COMPOUND_STRING( "Decidueye is cool and cautious.\n" "It fires arrow quills from its wings with\n" "such precision, they can pierce a pebble\n" "at distances of over a hundred yards."), - FRONT_PIC(Decidueye, 45, 64), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_Decidueye, + .frontPicSize = MON_COORDS_SIZE(45, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Decidueye, .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, - BACK_PIC(Decidueye, 46, 62), + .backPic = gMonBackPic_Decidueye, + .backPicSize = MON_COORDS_SIZE(46, 62), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Decidueye), - ICON(Decidueye, 1), - LEARNSETS(Decidueye), + .palette = gMonPalette_Decidueye, + .shinyPalette = gMonShinyPalette_Decidueye, + .iconSprite = gMonIcon_Decidueye, + .iconPalIndex = 1, + FOOTPRINT(Decidueye) + .levelUpLearnset = sDecidueyeLevelUpLearnset, + .teachableLearnset = sDecidueyeTeachableLearnset, + .formSpeciesIdTable = sDecidueyeFormSpeciesIdTable, }, #if P_HISUIAN_FORMS [SPECIES_DECIDUEYE_HISUIAN] = { - DECIDUEYE_MISC_INFO, .baseHP = 88, .baseAttack = 112, .baseDefense = 80, .baseSpeed = 60, .baseSpAttack = 95, .baseSpDefense = 95, - .types = { TYPE_GRASS, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FIGHTING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 265 : 239, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SCRAPPY }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Decidueye"), + .cryId = CRY_DECIDUEYE, + .natDexNum = NATIONAL_DEX_DECIDUEYE, + .categoryName = _("Arrow Quill"), + .height = 16, .weight = 370, .description = COMPOUND_STRING( "The air stored inside the rachises\n" "of Decidueye's feathers insulates\n" "the Pokémon against Hisui's extreme\n" "cold."), - FRONT_PIC(DecidueyeHisuian, 64, 64), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_DecidueyeHisuian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DecidueyeHisuian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DecidueyeHisuian, 64, 64), + .backPic = gMonBackPic_DecidueyeHisuian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DecidueyeHisuian), - ICON(DecidueyeHisuian, 0), - LEARNSETS(DecidueyeHisuian), + .palette = gMonPalette_DecidueyeHisuian, + .shinyPalette = gMonShinyPalette_DecidueyeHisuian, + .iconSprite = gMonIcon_DecidueyeHisuian, + .iconPalIndex = 0, + FOOTPRINT(Decidueye) .isHisuianForm = TRUE, + .levelUpLearnset = sDecidueyeHisuianLevelUpLearnset, + .teachableLearnset = sDecidueyeHisuianTeachableLearnset, + .formSpeciesIdTable = sDecidueyeFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS #endif //P_FAMILY_ROWLET @@ -195,7 +231,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 70, .baseSpAttack = 60, .baseSpDefense = 40, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 64, .evYield_Speed = 1, @@ -203,7 +239,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_INTIMIDATE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Litten"), @@ -221,17 +257,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Litten, 48, 40), + .frontPic = gMonFrontPic_Litten, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Litten, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Litten, 64, 48), + .backPic = gMonBackPic_Litten, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Litten), - ICON(Litten, 0), - .footprint = gMonFootprint_Litten, - LEARNSETS(Litten), + .palette = gMonPalette_Litten, + .shinyPalette = gMonShinyPalette_Litten, + .iconSprite = gMonIcon_Litten, + .iconPalIndex = 0, + FOOTPRINT(Litten) + .levelUpLearnset = sLittenLevelUpLearnset, + .teachableLearnset = sLittenTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_TORRACAT}), }, @@ -243,7 +284,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 90, .baseSpAttack = 80, .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 147, .evYield_Speed = 2, @@ -251,7 +292,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_INTIMIDATE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Torracat"), @@ -269,17 +310,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Torracat, 56, 64), + .frontPic = gMonFrontPic_Torracat, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Torracat, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Torracat, 64, 56), + .backPic = gMonBackPic_Torracat, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Torracat), - ICON(Torracat, 0), - .footprint = gMonFootprint_Torracat, - LEARNSETS(Torracat), + .palette = gMonPalette_Torracat, + .shinyPalette = gMonShinyPalette_Torracat, + .iconSprite = gMonIcon_Torracat, + .iconPalIndex = 0, + FOOTPRINT(Torracat) + .levelUpLearnset = sTorracatLevelUpLearnset, + .teachableLearnset = sTorracatTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_INCINEROAR}), }, @@ -291,15 +337,15 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 60, .baseSpAttack = 80, .baseSpDefense = 90, - .types = { TYPE_FIRE, TYPE_DARK }, + .types = MON_TYPES(TYPE_FIRE, TYPE_DARK), .catchRate = 45, - .expYield = 239, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 265 : 239, .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_INTIMIDATE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Incineroar"), @@ -317,17 +363,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Incineroar, 64, 64), + .frontPic = gMonFrontPic_Incineroar, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Incineroar, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Incineroar, 64, 56), + .backPic = gMonBackPic_Incineroar, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Incineroar), - ICON(Incineroar, 0), - .footprint = gMonFootprint_Incineroar, - LEARNSETS(Incineroar), + .palette = gMonPalette_Incineroar, + .shinyPalette = gMonShinyPalette_Incineroar, + .iconSprite = gMonIcon_Incineroar, + .iconPalIndex = 0, + FOOTPRINT(Incineroar) + .levelUpLearnset = sIncineroarLevelUpLearnset, + .teachableLearnset = sIncineroarTeachableLearnset, }, #endif //P_FAMILY_LITTEN @@ -340,7 +391,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 40, .baseSpAttack = 66, .baseSpDefense = 56, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 64, .evYield_SpAttack = 1, @@ -348,7 +399,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_LIQUID_VOICE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Popplio"), @@ -366,17 +417,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Popplio, 40, 48), + .frontPic = gMonFrontPic_Popplio, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Popplio, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Popplio, 48, 48), + .backPic = gMonBackPic_Popplio, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Popplio), - ICON(Popplio, 0), - .footprint = gMonFootprint_Popplio, - LEARNSETS(Popplio), + .palette = gMonPalette_Popplio, + .shinyPalette = gMonShinyPalette_Popplio, + .iconSprite = gMonIcon_Popplio, + .iconPalIndex = 0, + FOOTPRINT(Popplio) + .levelUpLearnset = sPopplioLevelUpLearnset, + .teachableLearnset = sPopplioTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_BRIONNE}), }, @@ -388,7 +444,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 50, .baseSpAttack = 91, .baseSpDefense = 81, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 147, .evYield_SpAttack = 2, @@ -396,7 +452,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_LIQUID_VOICE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Brionne"), @@ -414,17 +470,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Brionne, 48, 56), + .frontPic = gMonFrontPic_Brionne, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Brionne, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Brionne, 48, 56), + .backPic = gMonBackPic_Brionne, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Brionne), - ICON(Brionne, 0), - .footprint = gMonFootprint_Brionne, - LEARNSETS(Brionne), + .palette = gMonPalette_Brionne, + .shinyPalette = gMonShinyPalette_Brionne, + .iconSprite = gMonIcon_Brionne, + .iconPalIndex = 0, + FOOTPRINT(Brionne) + .levelUpLearnset = sBrionneLevelUpLearnset, + .teachableLearnset = sBrionneTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_PRIMARINA}), }, @@ -436,15 +497,15 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 60, .baseSpAttack = 126, .baseSpDefense = 116, - .types = { TYPE_WATER, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_WATER, TYPE_FAIRY), .catchRate = 45, - .expYield = 239, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 265 : 239, .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_LIQUID_VOICE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Primarina"), @@ -462,17 +523,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Primarina, 64, 64), + .frontPic = gMonFrontPic_Primarina, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Primarina, .frontAnimId = ANIM_SHAKE_GLOW_BLUE_SLOW, - BACK_PIC(Primarina, 64, 64), + .backPic = gMonBackPic_Primarina, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Primarina), - ICON(Primarina, 0), - .footprint = gMonFootprint_Primarina, - LEARNSETS(Primarina), + .palette = gMonPalette_Primarina, + .shinyPalette = gMonShinyPalette_Primarina, + .iconSprite = gMonIcon_Primarina, + .iconPalIndex = 0, + FOOTPRINT(Primarina) + .levelUpLearnset = sPrimarinaLevelUpLearnset, + .teachableLearnset = sPrimarinaTeachableLearnset, }, #endif //P_FAMILY_POPPLIO @@ -485,7 +551,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 65, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 255, .expYield = 53, .evYield_Attack = 1, @@ -494,7 +560,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_SKILL_LINK, ABILITY_PICKUP }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Pikipek"), @@ -512,17 +578,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pikipek, 29, 40), + .frontPic = gMonFrontPic_Pikipek, + .frontPicSize = MON_COORDS_SIZE(29, 40), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Pikipek, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Pikipek, 48, 48), + .backPic = gMonBackPic_Pikipek, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW, - PALETTES(Pikipek), - ICON(Pikipek, 2), - .footprint = gMonFootprint_Pikipek, - LEARNSETS(Pikipek), + .palette = gMonPalette_Pikipek, + .shinyPalette = gMonShinyPalette_Pikipek, + .iconSprite = gMonIcon_Pikipek, + .iconPalIndex = 2, + FOOTPRINT(Pikipek) + .levelUpLearnset = sPikipekLevelUpLearnset, + .teachableLearnset = sPikipekTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_TRUMBEAK}), }, @@ -534,7 +605,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 75, .baseSpAttack = 40, .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 120, .expYield = 124, .evYield_Attack = 2, @@ -543,7 +614,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_SKILL_LINK, ABILITY_PICKUP }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Trumbeak"), @@ -561,17 +632,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Trumbeak, 44, 53), + .frontPic = gMonFrontPic_Trumbeak, + .frontPicSize = MON_COORDS_SIZE(44, 53), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Trumbeak, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Trumbeak, 56, 56), + .backPic = gMonBackPic_Trumbeak, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(Trumbeak), - ICON(Trumbeak, 0), - .footprint = gMonFootprint_Trumbeak, - LEARNSETS(Trumbeak), + .palette = gMonPalette_Trumbeak, + .shinyPalette = gMonShinyPalette_Trumbeak, + .iconSprite = gMonIcon_Trumbeak, + .iconPalIndex = 0, + FOOTPRINT(Trumbeak) + .levelUpLearnset = sTrumbeakLevelUpLearnset, + .teachableLearnset = sTrumbeakTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_TOUCANNON}), }, @@ -583,16 +659,16 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 60, .baseSpAttack = 75, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), .catchRate = 45, - .expYield = 218, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 243 : 218, .evYield_Attack = 3, .itemRare = ITEM_RAWST_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_SKILL_LINK, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Toucannon"), @@ -610,17 +686,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Toucannon, 59, 59), + .frontPic = gMonFrontPic_Toucannon, + .frontPicSize = MON_COORDS_SIZE(59, 59), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Toucannon, .frontAnimId = ANIM_SHAKE_GLOW_RED_SLOW, - BACK_PIC(Toucannon, 64, 56), + .backPic = gMonBackPic_Toucannon, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(Toucannon), - ICON(Toucannon, 0), - .footprint = gMonFootprint_Toucannon, - LEARNSETS(Toucannon), + .palette = gMonPalette_Toucannon, + .shinyPalette = gMonShinyPalette_Toucannon, + .iconSprite = gMonIcon_Toucannon, + .iconPalIndex = 0, + FOOTPRINT(Toucannon) + .levelUpLearnset = sToucannonLevelUpLearnset, + .teachableLearnset = sToucannonTeachableLearnset, }, #endif //P_FAMILY_PIKIPEK @@ -633,7 +714,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 45, .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 51, .evYield_Attack = 1, @@ -642,7 +723,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STAKEOUT, ABILITY_STRONG_JAW, ABILITY_ADAPTABILITY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Yungoos"), @@ -660,17 +741,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Yungoos, 64, 40), + .frontPic = gMonFrontPic_Yungoos, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Yungoos, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Yungoos, 48, 40), + .backPic = gMonBackPic_Yungoos, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Yungoos), - ICON(Yungoos, 2), - .footprint = gMonFootprint_Yungoos, - LEARNSETS(Yungoos), + .palette = gMonPalette_Yungoos, + .shinyPalette = gMonShinyPalette_Yungoos, + .iconSprite = gMonIcon_Yungoos, + .iconPalIndex = 2, + FOOTPRINT(Yungoos) + .levelUpLearnset = sYungoosLevelUpLearnset, + .teachableLearnset = sYungoosTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_DAY, 20, SPECIES_GUMSHOOS}), }, @@ -682,7 +768,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 45, .baseSpAttack = 55, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 127, .expYield = 146, .evYield_Attack = 2, @@ -691,7 +777,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STAKEOUT, ABILITY_STRONG_JAW, ABILITY_ADAPTABILITY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Gumshoos"), @@ -700,26 +786,79 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .categoryName = _("Stakeout"), .height = 7, .weight = 142, - .description = COMPOUND_STRING( - "When it finds a trace of its prey, it\n" - "patiently stakes out the location...\n" - "but as it's diurnal, it's always snoozing\n" - "by nightfall."), + .description = gGumshoosPokedexText, .pokemonScale = 365, .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gumshoos, 56, 56), + .frontPic = gMonFrontPic_Gumshoos, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Gumshoos, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Gumshoos, 48, 56), + .backPic = gMonBackPic_Gumshoos, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Gumshoos), - ICON(Gumshoos, 2), - .footprint = gMonFootprint_Gumshoos, - LEARNSETS(Gumshoos), + .palette = gMonPalette_Gumshoos, + .shinyPalette = gMonShinyPalette_Gumshoos, + .iconSprite = gMonIcon_Gumshoos, + .iconPalIndex = 2, + FOOTPRINT(Gumshoos) + .levelUpLearnset = sGumshoosLevelUpLearnset, + .teachableLearnset = sGumshoosTeachableLearnset, + .formSpeciesIdTable = sGumshoosFormSpeciesIdTable, + }, + + [SPECIES_GUMSHOOS_TOTEM] = + { + .baseHP = 88, + .baseAttack = 110, + .baseDefense = 60, + .baseSpeed = 45, + .baseSpAttack = 55, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 127, + .expYield = 146, + .evYield_Attack = 2, + .itemRare = ITEM_PECHA_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_ADAPTABILITY, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Gumshoos"), + .cryId = CRY_GUMSHOOS, + .natDexNum = NATIONAL_DEX_GUMSHOOS, + .categoryName = _("Stakeout"), + .height = 14, + .weight = 600, + .description = gGumshoosPokedexText, + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Gumshoos, + .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Gumshoos, + .frontAnimId = ANIM_H_SHAKE, + .backPic = gMonBackPic_Gumshoos, + .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Gumshoos, + .shinyPalette = gMonShinyPalette_Gumshoos, + .iconSprite = gMonIcon_Gumshoos, + .iconPalIndex = 2, + FOOTPRINT(Gumshoos) + .isTotem = TRUE, + .levelUpLearnset = sGumshoosLevelUpLearnset, + .teachableLearnset = sGumshoosTeachableLearnset, + .formSpeciesIdTable = sGumshoosFormSpeciesIdTable, }, #endif //P_FAMILY_YUNGOOS @@ -732,7 +871,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 46, .baseSpAttack = 55, .baseSpDefense = 45, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 255, .expYield = 60, .evYield_Attack = 1, @@ -740,8 +879,8 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_SWARM, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Grubbin"), .cryId = CRY_GRUBBIN, @@ -758,17 +897,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Grubbin, 48, 32), + .frontPic = gMonFrontPic_Grubbin, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Grubbin, .frontAnimId = ANIM_H_SLIDE, - BACK_PIC(Grubbin, 64, 32), + .backPic = gMonBackPic_Grubbin, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Grubbin), - ICON(Grubbin, 0), - .footprint = gMonFootprint_Grubbin, - LEARNSETS(Grubbin), + .palette = gMonPalette_Grubbin, + .shinyPalette = gMonShinyPalette_Grubbin, + .iconSprite = gMonIcon_Grubbin, + .iconPalIndex = 0, + FOOTPRINT(Grubbin) + .levelUpLearnset = sGrubbinLevelUpLearnset, + .teachableLearnset = sGrubbinTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_CHARJABUG}), }, @@ -780,7 +924,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 36, .baseSpAttack = 55, .baseSpDefense = 75, - .types = { TYPE_BUG, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_BUG, TYPE_ELECTRIC), .catchRate = 120, .expYield = 140, .evYield_Defense = 2, @@ -789,8 +933,8 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_BATTERY, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_BATTERY, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Charjabug"), .cryId = CRY_CHARJABUG, @@ -807,19 +951,25 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Charjabug, 40, 40), + .frontPic = gMonFrontPic_Charjabug, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Charjabug, .frontAnimId = ANIM_SHAKE_FLASH_YELLOW_SLOW, - BACK_PIC(Charjabug, 64, 40), + .backPic = gMonBackPic_Charjabug, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Charjabug), - ICON(Charjabug, 1), - .footprint = gMonFootprint_Charjabug, - LEARNSETS(Charjabug), + .palette = gMonPalette_Charjabug, + .shinyPalette = gMonShinyPalette_Charjabug, + .iconSprite = gMonIcon_Charjabug, + .iconPalIndex = 1, + FOOTPRINT(Charjabug) + .levelUpLearnset = sCharjabugLevelUpLearnset, + .teachableLearnset = sCharjabugTeachableLearnset, .evolutions = EVOLUTION({EVO_MAPSEC, MAPSEC_NEW_MAUVILLE, SPECIES_VIKAVOLT}, - {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_VIKAVOLT}), + {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_VIKAVOLT}, + {EVO_NONE, 0, SPECIES_VIKAVOLT_TOTEM}), }, [SPECIES_VIKAVOLT] = @@ -830,16 +980,16 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 43, .baseSpAttack = 145, .baseSpDefense = 75, - .types = { TYPE_BUG, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_BUG, TYPE_ELECTRIC), .catchRate = 45, - .expYield = 225, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 250 : 225, .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Vikavolt"), .cryId = CRY_VIKAVOLT, @@ -847,27 +997,80 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .categoryName = _("Stag Beetle"), .height = 15, .weight = 450, - .description = COMPOUND_STRING( - "It concentrates electrical energy within\n" - "its large jaws and uses it to zap its foes.\n" - "It overwhelms bird Pokémon with shocking\n" - "beams of electrical energy."), + .description = gVikavoltPokedexText, .pokemonScale = 268, .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Vikavolt, 64, 56), + .frontPic = gMonFrontPic_Vikavolt, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Vikavolt, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, .enemyMonElevation = 8, - BACK_PIC(Vikavolt, 64, 56), + .backPic = gMonBackPic_Vikavolt, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Vikavolt), - ICON(Vikavolt, 0), - .footprint = gMonFootprint_Vikavolt, - LEARNSETS(Vikavolt), + .palette = gMonPalette_Vikavolt, + .shinyPalette = gMonShinyPalette_Vikavolt, + .iconSprite = gMonIcon_Vikavolt, + .iconPalIndex = 0, + FOOTPRINT(Vikavolt) + .levelUpLearnset = sVikavoltLevelUpLearnset, + .teachableLearnset = sVikavoltTeachableLearnset, + .formSpeciesIdTable = sVikavoltFormSpeciesIdTable, + }, + + [SPECIES_VIKAVOLT_TOTEM] = + { + .baseHP = 77, + .baseAttack = 70, + .baseDefense = 90, + .baseSpeed = 43, + .baseSpAttack = 145, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_BUG, TYPE_ELECTRIC), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 250 : 225, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Vikavolt"), + .cryId = CRY_VIKAVOLT, + .natDexNum = NATIONAL_DEX_VIKAVOLT, + .categoryName = _("Stag Beetle"), + .height = 26, + .weight = 1475, + .description = gVikavoltPokedexText, + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Vikavolt, + .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Vikavolt, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, + .enemyMonElevation = 8, + .backPic = gMonBackPic_Vikavolt, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Vikavolt, + .shinyPalette = gMonShinyPalette_Vikavolt, + .iconSprite = gMonIcon_Vikavolt, + .iconPalIndex = 0, + FOOTPRINT(Vikavolt) + .isTotem = TRUE, + .levelUpLearnset = sVikavoltLevelUpLearnset, + .teachableLearnset = sVikavoltTeachableLearnset, + .formSpeciesIdTable = sVikavoltFormSpeciesIdTable, }, #endif //P_FAMILY_GRUBBIN @@ -880,7 +1083,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 63, .baseSpAttack = 42, .baseSpDefense = 47, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 225, .expYield = 68, .evYield_Attack = 1, @@ -889,7 +1092,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_IRON_FIST, ABILITY_ANGER_POINT }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Crabrawler"), @@ -907,17 +1110,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Crabrawler, 64, 56), + .frontPic = gMonFrontPic_Crabrawler, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Crabrawler, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Crabrawler, 64, 48), + .backPic = gMonBackPic_Crabrawler, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Crabrawler), - ICON(Crabrawler, 2), - .footprint = gMonFootprint_Crabrawler, - LEARNSETS(Crabrawler), + .palette = gMonPalette_Crabrawler, + .shinyPalette = gMonShinyPalette_Crabrawler, + .iconSprite = gMonIcon_Crabrawler, + .iconPalIndex = 2, + FOOTPRINT(Crabrawler) + .levelUpLearnset = sCrabrawlerLevelUpLearnset, + .teachableLearnset = sCrabrawlerTeachableLearnset, .evolutions = EVOLUTION({EVO_SPECIFIC_MAP, MAPSEC_SEAFOAM_ISLANDS, SPECIES_CRABOMINABLE}, {EVO_ITEM, ITEM_ICE_STONE, SPECIES_CRABOMINABLE}), }, @@ -930,7 +1138,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 43, .baseSpAttack = 62, .baseSpDefense = 67, - .types = { TYPE_FIGHTING, TYPE_ICE }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_ICE), .catchRate = 60, .expYield = 167, .evYield_Attack = 2, @@ -939,7 +1147,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_HYPER_CUTTER, ABILITY_IRON_FIST, ABILITY_ANGER_POINT }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Crabminabl"), @@ -957,133 +1165,244 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 290, .trainerOffset = 1, - FRONT_PIC(Crabominable, 64, 64), + .frontPic = gMonFrontPic_Crabominable, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Crabominable, .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, - BACK_PIC(Crabominable, 64, 64), + .backPic = gMonBackPic_Crabominable, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Crabominable), - ICON(Crabominable, 2), - .footprint = gMonFootprint_Crabominable, - LEARNSETS(Crabominable), + .palette = gMonPalette_Crabominable, + .shinyPalette = gMonShinyPalette_Crabominable, + .iconSprite = gMonIcon_Crabominable, + .iconPalIndex = 2, + FOOTPRINT(Crabominable) + .levelUpLearnset = sCrabominableLevelUpLearnset, + .teachableLearnset = sCrabominableTeachableLearnset, }, #endif //P_FAMILY_CRABRAWLER #if P_FAMILY_ORICORIO -#define ORICORIO_MISC_INFO \ - .baseHP = 75, \ - .baseAttack = 70, \ - .baseDefense = 70, \ - .baseSpeed = 93, \ - .baseSpAttack = 98, \ - .baseSpDefense = 70, \ - .catchRate = 45, \ - .expYield = 167, \ - .evYield_SpAttack = 2, \ - .itemRare = ITEM_HONEY, \ - .genderRatio = PERCENT_FEMALE(75), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, \ - .abilities = { ABILITY_DANCER, ABILITY_NONE }, \ - .speciesName = _("Oricorio"), \ - .natDexNum = NATIONAL_DEX_ORICORIO, \ - .categoryName = _("Dancing"), \ - .height = 6, \ - .weight = 34, \ - .pokemonScale = 422, \ - .pokemonOffset = 12, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontAnimFrames = sAnims_Oricorio, \ - .backPicYOffset = 0, \ - .footprint = gMonFootprint_Oricorio, \ - LEARNSETS(Oricorio), \ - .formSpeciesIdTable = sOricorioFormSpeciesIdTable, \ - .formChangeTable = sOricorioFormChangeTable - //.backAnimId = BACK_ANIM_NONE, \ - [SPECIES_ORICORIO_BAILE] = { - ORICORIO_MISC_INFO, - .types = { TYPE_FIRE, TYPE_FLYING }, + .baseHP = 75, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 93, + .baseSpAttack = 98, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_FIRE, TYPE_FLYING), + .catchRate = 45, + .expYield = 167, + .evYield_SpAttack = 2, + .itemRare = ITEM_HONEY, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), + .abilities = { ABILITY_DANCER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Oricorio"), .cryId = CRY_ORICORIO_BAILE, + .natDexNum = NATIONAL_DEX_ORICORIO, + .categoryName = _("Dancing"), + .height = 6, + .weight = 34, .description = COMPOUND_STRING( "It wins the hearts of its enemies\n" "with its passionate dancing and then\n" "uses the opening it creates to\n" "burn them up with blazing flames."), - FRONT_PIC(OricorioBaile, 56, 64), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_OricorioBaile, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Oricorio, .frontAnimId = ANIM_CONCAVE_ARC_SMALL, - BACK_PIC(OricorioBaile, 64, 64), + .backPic = gMonBackPic_OricorioBaile, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(OricorioBaile), - ICON(OricorioBaile, 0), + .palette = gMonPalette_OricorioBaile, + .shinyPalette = gMonShinyPalette_OricorioBaile, + .iconSprite = gMonIcon_OricorioBaile, + .iconPalIndex = 0, + FOOTPRINT(Oricorio) + .levelUpLearnset = sOricorioLevelUpLearnset, + .teachableLearnset = sOricorioTeachableLearnset, + .formSpeciesIdTable = sOricorioFormSpeciesIdTable, + .formChangeTable = sOricorioFormChangeTable, }, [SPECIES_ORICORIO_POM_POM] = { - ORICORIO_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_FLYING }, + .baseHP = 75, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 93, + .baseSpAttack = 98, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FLYING), + .catchRate = 45, + .expYield = 167, + .evYield_SpAttack = 2, + .itemRare = ITEM_HONEY, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), + .abilities = { ABILITY_DANCER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Oricorio"), .cryId = CRY_ORICORIO_POM_POM, + .natDexNum = NATIONAL_DEX_ORICORIO, + .categoryName = _("Dancing"), + .height = 6, + .weight = 34, .description = COMPOUND_STRING( "This form of Oricorio has sipped\n" "yellow nectar. It uses nimble steps to\n" "approach opponents, then knocks\n" "them out with electric punches."), - FRONT_PIC(OricorioPomPom, 56, 56), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_OricorioPomPom, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Oricorio, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(OricorioPomPom, 64, 64), + .backPic = gMonBackPic_OricorioPomPom, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(OricorioPomPom), - ICON(OricorioPomPom, 1), + .palette = gMonPalette_OricorioPomPom, + .shinyPalette = gMonShinyPalette_OricorioPomPom, + .iconSprite = gMonIcon_OricorioPomPom, + .iconPalIndex = 1, + FOOTPRINT(Oricorio) + .levelUpLearnset = sOricorioLevelUpLearnset, + .teachableLearnset = sOricorioTeachableLearnset, + .formSpeciesIdTable = sOricorioFormSpeciesIdTable, + .formChangeTable = sOricorioFormChangeTable, }, [SPECIES_ORICORIO_PAU] = { - ORICORIO_MISC_INFO, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .baseHP = 75, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 93, + .baseSpAttack = 98, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FLYING), + .catchRate = 45, + .expYield = 167, + .evYield_SpAttack = 2, + .itemRare = ITEM_HONEY, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), + .abilities = { ABILITY_DANCER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Oricorio"), .cryId = CRY_ORICORIO_PAU, + .natDexNum = NATIONAL_DEX_ORICORIO, + .categoryName = _("Dancing"), + .height = 6, + .weight = 34, .description = COMPOUND_STRING( "This form of Oricorio has sipped\n" "pink nectar. It elevates its mind with\n" "the gentle steps of its dance, then\n" "unleashes its psychic energy."), - FRONT_PIC(OricorioPau, 56, 64), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_OricorioPau, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Oricorio, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(OricorioPau, 64, 64), + .backPic = gMonBackPic_OricorioPau, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(OricorioPau), - ICON(OricorioPau, 1), + .palette = gMonPalette_OricorioPau, + .shinyPalette = gMonShinyPalette_OricorioPau, + .iconSprite = gMonIcon_OricorioPau, + .iconPalIndex = 1, + FOOTPRINT(Oricorio) + .levelUpLearnset = sOricorioLevelUpLearnset, + .teachableLearnset = sOricorioTeachableLearnset, + .formSpeciesIdTable = sOricorioFormSpeciesIdTable, + .formChangeTable = sOricorioFormChangeTable, }, [SPECIES_ORICORIO_SENSU] = { - ORICORIO_MISC_INFO, - .types = { TYPE_GHOST, TYPE_FLYING }, + .baseHP = 75, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 93, + .baseSpAttack = 98, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_GHOST, TYPE_FLYING), + .catchRate = 45, + .expYield = 167, + .evYield_SpAttack = 2, + .itemRare = ITEM_HONEY, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), + .abilities = { ABILITY_DANCER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Oricorio"), .cryId = CRY_ORICORIO_SENSU, + .natDexNum = NATIONAL_DEX_ORICORIO, + .categoryName = _("Dancing"), + .height = 6, + .weight = 34, .description = COMPOUND_STRING( "It charms its opponents with its\n" "refined dancing. When they let their\n" "guard down, it places a curse on\n" "them that will bring on their demise."), - FRONT_PIC(OricorioSensu, 64, 56), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_OricorioSensu, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Oricorio, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(OricorioSensu, 64, 64), + .backPic = gMonBackPic_OricorioSensu, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(OricorioSensu), - ICON(OricorioSensu, 0), + .palette = gMonPalette_OricorioSensu, + .shinyPalette = gMonShinyPalette_OricorioSensu, + .iconSprite = gMonIcon_OricorioSensu, + .iconPalIndex = 0, + FOOTPRINT(Oricorio) + .levelUpLearnset = sOricorioLevelUpLearnset, + .teachableLearnset = sOricorioTeachableLearnset, + .formSpeciesIdTable = sOricorioFormSpeciesIdTable, + .formChangeTable = sOricorioFormChangeTable, }, #endif //P_FAMILY_ORICORIO @@ -1096,7 +1415,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 84, .baseSpAttack = 55, .baseSpDefense = 40, - .types = { TYPE_BUG, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_BUG, TYPE_FAIRY), .catchRate = 190, .expYield = 61, .evYield_Speed = 1, @@ -1105,7 +1424,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_FAIRY), .abilities = { ABILITY_HONEY_GATHER, ABILITY_SHIELD_DUST, ABILITY_SWEET_VEIL }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Cutiefly"), @@ -1123,19 +1442,25 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cutiefly, 33, 35), + .frontPic = gMonFrontPic_Cutiefly, + .frontPicSize = MON_COORDS_SIZE(33, 35), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Cutiefly, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 10, - BACK_PIC(Cutiefly, 56, 48), + .backPic = gMonBackPic_Cutiefly, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - PALETTES(Cutiefly), - ICON(Cutiefly, 2), - .footprint = gMonFootprint_Cutiefly, - LEARNSETS(Cutiefly), - .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_RIBOMBEE}), + .palette = gMonPalette_Cutiefly, + .shinyPalette = gMonShinyPalette_Cutiefly, + .iconSprite = gMonIcon_Cutiefly, + .iconPalIndex = 2, + FOOTPRINT(Cutiefly) + .levelUpLearnset = sCutieflyLevelUpLearnset, + .teachableLearnset = sCutieflyTeachableLearnset, + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_RIBOMBEE}, + {EVO_NONE, 0, SPECIES_RIBOMBEE_TOTEM}), }, [SPECIES_RIBOMBEE] = @@ -1146,7 +1471,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 124, .baseSpAttack = 95, .baseSpDefense = 70, - .types = { TYPE_BUG, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_BUG, TYPE_FAIRY), .catchRate = 75, .expYield = 162, .evYield_Speed = 2, @@ -1155,7 +1480,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_FAIRY), .abilities = { ABILITY_HONEY_GATHER, ABILITY_SHIELD_DUST, ABILITY_SWEET_VEIL }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Ribombee"), @@ -1164,235 +1489,370 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .categoryName = _("Bee Fly"), .height = 2, .weight = 5, - .description = COMPOUND_STRING( - "Ribombee rolls up pollen into puffs.\n" - "It makes many different varieties, some\n" - "used as food and others used in battle.\n" - "They are sometimes sold as supplements."), + .description = gRibombeePokedexText, .pokemonScale = 682, .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ribombee, 32, 47), + .frontPic = gMonFrontPic_Ribombee, + .frontPicSize = MON_COORDS_SIZE(32, 47), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Ribombee, .frontAnimId = ANIM_CONVEX_DOUBLE_ARC_TWICE, .enemyMonElevation = 6, - BACK_PIC(Ribombee, 56, 48), + .backPic = gMonBackPic_Ribombee, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, - PALETTES(Ribombee), - ICON(Ribombee, 2), - .footprint = gMonFootprint_Ribombee, - LEARNSETS(Ribombee), + .palette = gMonPalette_Ribombee, + .shinyPalette = gMonShinyPalette_Ribombee, + .iconSprite = gMonIcon_Ribombee, + .iconPalIndex = 2, + FOOTPRINT(Ribombee) + .levelUpLearnset = sRibombeeLevelUpLearnset, + .teachableLearnset = sRibombeeTeachableLearnset, + .formSpeciesIdTable = sRibombeeFormSpeciesIdTable, + }, + + [SPECIES_RIBOMBEE_TOTEM] = + { + .baseHP = 60, + .baseAttack = 55, + .baseDefense = 60, + .baseSpeed = 124, + .baseSpAttack = 95, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_BUG, TYPE_FAIRY), + .catchRate = 75, + .expYield = 162, + .evYield_Speed = 2, + .itemRare = ITEM_HONEY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_FAIRY), + .abilities = { ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Ribombee"), + .cryId = CRY_RIBOMBEE, + .natDexNum = NATIONAL_DEX_RIBOMBEE, + .categoryName = _("Bee Fly"), + .height = 4, + .weight = 20, + .description = gRibombeePokedexText, + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Ribombee, + .frontPicSize = MON_COORDS_SIZE(32, 47), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Ribombee, + .frontAnimId = ANIM_CONVEX_DOUBLE_ARC_TWICE, + .enemyMonElevation = 6, + .backPic = gMonBackPic_Ribombee, + .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + .palette = gMonPalette_Ribombee, + .shinyPalette = gMonShinyPalette_Ribombee, + .iconSprite = gMonIcon_Ribombee, + .iconPalIndex = 2, + FOOTPRINT(Ribombee) + .isTotem = TRUE, + .levelUpLearnset = sRibombeeLevelUpLearnset, + .teachableLearnset = sRibombeeTeachableLearnset, + .formSpeciesIdTable = sRibombeeFormSpeciesIdTable, }, #endif //P_FAMILY_CUTIEFLY #if P_FAMILY_ROCKRUFF -#define ROCKRUFF_MISC_INFO \ - .baseHP = 45, \ - .baseAttack = 65, \ - .baseDefense = 40, \ - .baseSpeed = 60, \ - .baseSpAttack = 30, \ - .baseSpDefense = 40, \ - .types = { TYPE_ROCK, TYPE_ROCK }, \ - .catchRate = 190, \ - .expYield = 56, \ - .evYield_Attack = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_BROWN, \ - .speciesName = _("Rockruff"), \ - .cryId = CRY_ROCKRUFF, \ - .natDexNum = NATIONAL_DEX_ROCKRUFF, \ - .categoryName = _("Puppy"), \ - .height = 5, \ - .weight = 92, \ - .description = gRockruffPokedexText, \ - .pokemonScale = 432, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontPicYOffset = 11, \ - .frontAnimFrames = sAnims_Rockruff, \ - .frontAnimId = ANIM_V_STRETCH, \ - .backPicYOffset = 7, \ - PALETTES(Rockruff), \ - ICON(Rockruff, 2), \ - .footprint = gMonFootprint_Rockruff, \ - LEARNSETS(Rockruff), \ - .formSpeciesIdTable = sRockruffFormSpeciesIdTable - [SPECIES_ROCKRUFF] = { - ROCKRUFF_MISC_INFO, + .baseHP = 45, + .baseAttack = 65, + .baseDefense = 40, + .baseSpeed = 60, + .baseSpAttack = 30, + .baseSpDefense = 40, + .types = MON_TYPES(TYPE_ROCK), + .catchRate = 190, + .expYield = 56, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_KEEN_EYE, ABILITY_VITAL_SPIRIT, ABILITY_STEADFAST }, - FRONT_PIC(Rockruff, 37, 39), - BACK_PIC(Rockruff, 64, 56), + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Rockruff"), + .cryId = CRY_ROCKRUFF, + .natDexNum = NATIONAL_DEX_ROCKRUFF, + .categoryName = _("Puppy"), + .height = 5, + .weight = 92, + .description = gRockruffPokedexText, + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Rockruff, + .frontPicSize = MON_COORDS_SIZE(37, 39), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Rockruff, + .frontAnimId = ANIM_V_STRETCH, + .backPic = gMonBackPic_Rockruff, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_STRETCH, + .palette = gMonPalette_Rockruff, + .shinyPalette = gMonShinyPalette_Rockruff, + .iconSprite = gMonIcon_Rockruff, + .iconPalIndex = 2, + FOOTPRINT(Rockruff) + .levelUpLearnset = sRockruffLevelUpLearnset, + .teachableLearnset = sRockruffTeachableLearnset, + .formSpeciesIdTable = sRockruffFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL_DAY, 25, SPECIES_LYCANROC_MIDDAY}, {EVO_LEVEL_NIGHT, 25, SPECIES_LYCANROC_MIDNIGHT}), }, [SPECIES_ROCKRUFF_OWN_TEMPO] = { - ROCKRUFF_MISC_INFO, + .baseHP = 45, + .baseAttack = 65, + .baseDefense = 40, + .baseSpeed = 60, + .baseSpAttack = 30, + .baseSpDefense = 40, + .types = MON_TYPES(TYPE_ROCK), + .catchRate = 190, + .expYield = 56, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OWN_TEMPO, ABILITY_NONE, ABILITY_NONE }, - FRONT_PIC(Rockruff, 40, 48), - BACK_PIC(Rockruff, 64, 56), + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Rockruff"), + .cryId = CRY_ROCKRUFF, + .natDexNum = NATIONAL_DEX_ROCKRUFF, + .categoryName = _("Puppy"), + .height = 5, + .weight = 92, + .description = gRockruffPokedexText, + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Rockruff, + .frontPicSize = MON_COORDS_SIZE(40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Rockruff, + .frontAnimId = ANIM_V_STRETCH, + .backPic = gMonBackPic_Rockruff, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Rockruff, + .shinyPalette = gMonShinyPalette_Rockruff, + .iconSprite = gMonIcon_Rockruff, + .iconPalIndex = 2, + FOOTPRINT(Rockruff) + .levelUpLearnset = sRockruffLevelUpLearnset, + .teachableLearnset = sRockruffTeachableLearnset, + .formSpeciesIdTable = sRockruffFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL_DUSK, 25, SPECIES_LYCANROC_DUSK}), }, -#define LYCANROC_MISC_INFO \ - .types = { TYPE_ROCK, TYPE_ROCK }, \ - .catchRate = 90, \ - .expYield = 170, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .speciesName = _("Lycanroc"), \ - .natDexNum = NATIONAL_DEX_LYCANROC, \ - .categoryName = _("Wolf"), \ - .weight = 250, \ - .pokemonScale = 366, \ - .pokemonOffset = 7, \ - .trainerScale = 257, \ - .trainerOffset = 0, \ - BACK_PIC(LycanrocMidday, 64, 56), \ - .footprint = gMonFootprint_Lycanroc, \ - .formSpeciesIdTable = sLycanrocFormSpeciesIdTable - [SPECIES_LYCANROC_MIDDAY] = { - LYCANROC_MISC_INFO, .baseHP = 75, .baseAttack = 115, .baseDefense = 65, .baseSpeed = 112, .baseSpAttack = 55, .baseSpDefense = 65, + .types = MON_TYPES(TYPE_ROCK), + .catchRate = 90, + .expYield = 170, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_KEEN_EYE, ABILITY_SAND_RUSH, ABILITY_STEADFAST }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Lycanroc"), .cryId = CRY_LYCANROC_MIDDAY, + .natDexNum = NATIONAL_DEX_LYCANROC, + .categoryName = _("Wolf"), .height = 8, + .weight = 250, .description = COMPOUND_STRING( "It has a calm and collected\n" "demeanor. It swiftly closes in on its prey,\n" "then slices them with the rocks in\n" "its mane."), - FRONT_PIC(LycanrocMidday, 57, 53), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_LycanrocMidday, + .frontPicSize = MON_COORDS_SIZE(57, 53), .frontPicYOffset = 5, .frontAnimFrames = sAnims_LycanrocMidday, .frontAnimId = ANIM_V_SHAKE, + .backPic = gMonBackPic_LycanrocMidday, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(LycanrocMidday), - ICON(LycanrocMidday, 2), - LEARNSETS(LycanrocMidday), + .palette = gMonPalette_LycanrocMidday, + .shinyPalette = gMonShinyPalette_LycanrocMidday, + .iconSprite = gMonIcon_LycanrocMidday, + .iconPalIndex = 2, + FOOTPRINT(Lycanroc) + .levelUpLearnset = sLycanrocMiddayLevelUpLearnset, + .teachableLearnset = sLycanrocMiddayTeachableLearnset, + .formSpeciesIdTable = sLycanrocFormSpeciesIdTable, }, [SPECIES_LYCANROC_MIDNIGHT] = { - LYCANROC_MISC_INFO, .baseHP = 85, .baseAttack = 115, .baseDefense = 75, .baseSpeed = 82, .baseSpAttack = 55, .baseSpDefense = 75, + .types = MON_TYPES(TYPE_ROCK), + .catchRate = 90, + .expYield = 170, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_KEEN_EYE, ABILITY_VITAL_SPIRIT, ABILITY_NO_GUARD }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Lycanroc"), .cryId = CRY_LYCANROC_MIDNIGHT, + .natDexNum = NATIONAL_DEX_LYCANROC, + .categoryName = _("Wolf"), .height = 11, + .weight = 250, .description = COMPOUND_STRING( "This Pokémon uses its rocky mane\n" "to slash any who approach. It will\n" "even disobey its Trainer if it dislikes\n" "the orders it was given."), - FRONT_PIC(LycanrocMidnight, 56, 61), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_LycanrocMidnight, + .frontPicSize = MON_COORDS_SIZE(56, 61), .frontPicYOffset = 0, .frontAnimFrames = sAnims_LycanrocMidnight, .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_SLOW, + .backPic = gMonBackPic_LycanrocMidnight, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(LycanrocMidnight), - ICON(LycanrocMidnight, 0), - LEARNSETS(LycanrocMidnight), + .palette = gMonPalette_LycanrocMidnight, + .shinyPalette = gMonShinyPalette_LycanrocMidnight, + .iconSprite = gMonIcon_LycanrocMidnight, + .iconPalIndex = 0, + FOOTPRINT(Lycanroc) + .levelUpLearnset = sLycanrocMidnightLevelUpLearnset, + .teachableLearnset = sLycanrocMidnightTeachableLearnset, + .formSpeciesIdTable = sLycanrocFormSpeciesIdTable, }, [SPECIES_LYCANROC_DUSK] = { - LYCANROC_MISC_INFO, .baseHP = 75, .baseAttack = 117, .baseDefense = 65, .baseSpeed = 110, .baseSpAttack = 55, .baseSpDefense = 65, - .abilities = { ABILITY_TOUGH_CLAWS, ABILITY_NONE }, + .types = MON_TYPES(TYPE_ROCK), + .catchRate = 90, + .expYield = 170, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_TOUGH_CLAWS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("Lycanroc"), .cryId = CRY_LYCANROC_DUSK, + .natDexNum = NATIONAL_DEX_LYCANROC, + .categoryName = _("Wolf"), .height = 8, + .weight = 250, .description = COMPOUND_STRING( "These Pokémon have both calm and\n" "ferocious qualities. It's said that\n" "this form of Lycanroc is the most\n" "troublesome to raise."), - FRONT_PIC(LycanrocDusk, 57, 58), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_LycanrocDusk, + .frontPicSize = MON_COORDS_SIZE(57, 58), .frontPicYOffset = 6, .frontAnimFrames = sAnims_LycanrocDusk, .frontAnimId = ANIM_V_SHAKE, - .backPicYOffset = 5, + .backPic = gMonBackPic_LycanrocDusk, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE, - PALETTES(LycanrocDusk), - ICON(LycanrocDusk, 0), - LEARNSETS(LycanrocDusk), + .palette = gMonPalette_LycanrocDusk, + .shinyPalette = gMonShinyPalette_LycanrocDusk, + .iconSprite = gMonIcon_LycanrocDusk, + .iconPalIndex = 0, + FOOTPRINT(Lycanroc) + .levelUpLearnset = sLycanrocDuskLevelUpLearnset, + .teachableLearnset = sLycanrocDuskTeachableLearnset, + .formSpeciesIdTable = sLycanrocFormSpeciesIdTable, }, #endif //P_FAMILY_ROCKRUFF #if P_FAMILY_WISHIWASHI -#define WISHIWASHI_MISC_INFO \ - .types = { TYPE_WATER, TYPE_WATER }, \ - .catchRate = 60, \ - .expYield = 61, \ - .evYield_HP = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_FAST, \ - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, \ - .abilities = { ABILITY_SCHOOLING, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Wishiwashi"), \ - .natDexNum = NATIONAL_DEX_WISHIWASHI, \ - .categoryName = _("Small Fry"), \ - .pokemonScale = 682, \ - .pokemonOffset = 24, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Wishiwashi, \ - LEARNSETS(Wishiwashi), \ - .formSpeciesIdTable = sWishiwashiFormSpeciesIdTable, \ - .formChangeTable = sWishiwashiFormChangeTable - [SPECIES_WISHIWASHI_SOLO] = { - WISHIWASHI_MISC_INFO, .baseHP = 45, .baseAttack = 20, .baseDefense = 20, .baseSpeed = 40, .baseSpAttack = 25, .baseSpDefense = 25, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 60, + .expYield = 61, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_SCHOOLING, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Wishiwashi"), .cryId = CRY_WISHIWASHI_SOLO, + .natDexNum = NATIONAL_DEX_WISHIWASHI, + .categoryName = _("Small Fry"), .height = 2, .weight = 3, .description = COMPOUND_STRING( @@ -1400,28 +1860,54 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = "weak. It's by gathering up into\n" "schools that they're able to confront\n" "opponents."), - FRONT_PIC(WishiwashiSolo, 40, 24), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_WishiwashiSolo, + .frontPicSize = MON_COORDS_SIZE(40, 24), .frontPicYOffset = 20, .frontAnimFrames = sAnims_WishiwashiSolo, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .enemyMonElevation = 12, - BACK_PIC(WishiwashiSolo, 56, 32), + .backPic = gMonBackPic_WishiwashiSolo, + .backPicSize = MON_COORDS_SIZE(56, 32), .backPicYOffset = 18, //.backAnimId = BACK_ANIM_NONE, - PALETTES(WishiwashiSolo), - ICON(WishiwashiSolo, 2), + .palette = gMonPalette_WishiwashiSolo, + .shinyPalette = gMonShinyPalette_WishiwashiSolo, + .iconSprite = gMonIcon_WishiwashiSolo, + .iconPalIndex = 2, + FOOTPRINT(Wishiwashi) + .levelUpLearnset = sWishiwashiLevelUpLearnset, + .teachableLearnset = sWishiwashiTeachableLearnset, + .formSpeciesIdTable = sWishiwashiFormSpeciesIdTable, + .formChangeTable = sWishiwashiFormChangeTable, }, [SPECIES_WISHIWASHI_SCHOOL] = { - WISHIWASHI_MISC_INFO, .baseHP = 45, .baseAttack = 140, .baseDefense = 130, .baseSpeed = 30, .baseSpAttack = 140, .baseSpDefense = 135, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 60, + .expYield = 217, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_SCHOOLING, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Wishiwashi"), .cryId = CRY_WISHIWASHI_SCHOOL, + .natDexNum = NATIONAL_DEX_WISHIWASHI, + .categoryName = _("Small Fry"), .height = 82, .weight = 786, .description = COMPOUND_STRING( @@ -1429,15 +1915,28 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = "get into formation. But if they get\n" "wounded in battle, they'll scatter\n" "and become solitary again."), - FRONT_PIC(WishiwashiSchool, 64, 64), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_WishiwashiSchool, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_WishiwashiSchool, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, //Todo - BACK_PIC(WishiwashiSchool, 64, 56), + .backPic = gMonBackPic_WishiwashiSchool, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(WishiwashiSchool), - ICON(WishiwashiSchool, 0), + .palette = gMonPalette_WishiwashiSchool, + .shinyPalette = gMonShinyPalette_WishiwashiSchool, + .iconSprite = gMonIcon_WishiwashiSchool, + .iconPalIndex = 0, + FOOTPRINT(Wishiwashi) + .levelUpLearnset = sWishiwashiLevelUpLearnset, + .teachableLearnset = sWishiwashiTeachableLearnset, + .formSpeciesIdTable = sWishiwashiFormSpeciesIdTable, + .formChangeTable = sWishiwashiFormChangeTable, }, #endif //P_FAMILY_WISHIWASHI @@ -1450,7 +1949,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 45, .baseSpAttack = 43, .baseSpDefense = 52, - .types = { TYPE_POISON, TYPE_WATER }, + .types = MON_TYPES(TYPE_POISON, TYPE_WATER), .catchRate = 190, .expYield = 61, .evYield_Defense = 1, @@ -1459,7 +1958,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_MERCILESS, ABILITY_LIMBER, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Mareanie"), @@ -1477,17 +1976,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mareanie, 48, 40), + .frontPic = gMonFrontPic_Mareanie, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Mareanie, .frontAnimId = ANIM_GLOW_PURPLE, - BACK_PIC(Mareanie, 64, 48), + .backPic = gMonBackPic_Mareanie, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Mareanie), - ICON(Mareanie, 2), - .footprint = gMonFootprint_Mareanie, - LEARNSETS(Mareanie), + .palette = gMonPalette_Mareanie, + .shinyPalette = gMonShinyPalette_Mareanie, + .iconSprite = gMonIcon_Mareanie, + .iconPalIndex = 2, + FOOTPRINT(Mareanie) + .levelUpLearnset = sMareanieLevelUpLearnset, + .teachableLearnset = sMareanieTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_TOXAPEX}), }, @@ -1499,7 +2003,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 35, .baseSpAttack = 53, .baseSpDefense = 142, - .types = { TYPE_POISON, TYPE_WATER }, + .types = MON_TYPES(TYPE_POISON, TYPE_WATER), .catchRate = 75, .expYield = 173, .evYield_Defense = 2, @@ -1508,7 +2012,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_MERCILESS, ABILITY_LIMBER, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Toxapex"), @@ -1526,17 +2030,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Toxapex, 64, 64), + .frontPic = gMonFrontPic_Toxapex, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Toxapex, .frontAnimId = ANIM_SHAKE_GLOW_PURPLE_SLOW, - BACK_PIC(Toxapex, 64, 56), + .backPic = gMonBackPic_Toxapex, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Toxapex), - ICON(Toxapex, 0), - .footprint = gMonFootprint_Toxapex, - LEARNSETS(Toxapex), + .palette = gMonPalette_Toxapex, + .shinyPalette = gMonShinyPalette_Toxapex, + .iconSprite = gMonIcon_Toxapex, + .iconPalIndex = 0, + FOOTPRINT(Toxapex) + .levelUpLearnset = sToxapexLevelUpLearnset, + .teachableLearnset = sToxapexTeachableLearnset, }, #endif //P_FAMILY_MAREANIE @@ -1549,7 +2058,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 45, .baseSpAttack = 45, .baseSpDefense = 55, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 190, .expYield = 77, .evYield_Attack = 1, @@ -1558,7 +2067,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OWN_TEMPO, ABILITY_STAMINA, ABILITY_INNER_FOCUS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Mudbray"), @@ -1576,17 +2085,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Mudbray, 48, 56), + .frontPic = gMonFrontPic_Mudbray, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Mudbray, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Mudbray, 64, 56), + .backPic = gMonBackPic_Mudbray, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Mudbray), - ICON(Mudbray, 2), - .footprint = gMonFootprint_Mudbray, - LEARNSETS(Mudbray), + .palette = gMonPalette_Mudbray, + .shinyPalette = gMonShinyPalette_Mudbray, + .iconSprite = gMonIcon_Mudbray, + .iconPalIndex = 2, + FOOTPRINT(Mudbray) + .levelUpLearnset = sMudbrayLevelUpLearnset, + .teachableLearnset = sMudbrayTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MUDSDALE}), }, @@ -1598,7 +2112,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 35, .baseSpAttack = 55, .baseSpDefense = 85, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 60, .expYield = 175, .evYield_Attack = 2, @@ -1607,7 +2121,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_OWN_TEMPO, ABILITY_STAMINA, ABILITY_INNER_FOCUS }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Mudsdale"), @@ -1625,17 +2139,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 10, .trainerScale = 423, .trainerOffset = 8, - FRONT_PIC(Mudsdale, 64, 64), + .frontPic = gMonFrontPic_Mudsdale, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Mudsdale, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Mudsdale, 64, 56), + .backPic = gMonBackPic_Mudsdale, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Mudsdale), - ICON(Mudsdale, 0), - .footprint = gMonFootprint_Mudsdale, - LEARNSETS(Mudsdale), + .palette = gMonPalette_Mudsdale, + .shinyPalette = gMonShinyPalette_Mudsdale, + .iconSprite = gMonIcon_Mudsdale, + .iconPalIndex = 0, + FOOTPRINT(Mudsdale) + .levelUpLearnset = sMudsdaleLevelUpLearnset, + .teachableLearnset = sMudsdaleTeachableLearnset, }, #endif //P_FAMILY_MUDBRAY @@ -1648,7 +2167,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 27, .baseSpAttack = 40, .baseSpDefense = 72, - .types = { TYPE_WATER, TYPE_BUG }, + .types = MON_TYPES(TYPE_WATER, TYPE_BUG), .catchRate = 200, .expYield = 54, .evYield_SpDefense = 1, @@ -1657,7 +2176,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_BUG), .abilities = { ABILITY_WATER_BUBBLE, ABILITY_NONE, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dewpider"), @@ -1675,18 +2194,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dewpider, 32, 48), + .frontPic = gMonFrontPic_Dewpider, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Dewpider, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Dewpider, 40, 48), + .backPic = gMonBackPic_Dewpider, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dewpider), - ICON(Dewpider, 0), - .footprint = gMonFootprint_Dewpider, - LEARNSETS(Dewpider), - .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_ARAQUANID}), + .palette = gMonPalette_Dewpider, + .shinyPalette = gMonShinyPalette_Dewpider, + .iconSprite = gMonIcon_Dewpider, + .iconPalIndex = 0, + FOOTPRINT(Dewpider) + .levelUpLearnset = sDewpiderLevelUpLearnset, + .teachableLearnset = sDewpiderTeachableLearnset, + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_ARAQUANID}, + {EVO_NONE, 0, SPECIES_ARAQUANID_TOTEM}), }, [SPECIES_ARAQUANID] = @@ -1697,7 +2222,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 42, .baseSpAttack = 50, .baseSpDefense = 132, - .types = { TYPE_WATER, TYPE_BUG }, + .types = MON_TYPES(TYPE_WATER, TYPE_BUG), .catchRate = 100, .expYield = 159, .evYield_SpDefense = 2, @@ -1706,7 +2231,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_BUG), .abilities = { ABILITY_WATER_BUBBLE, ABILITY_NONE, ABILITY_WATER_ABSORB }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Araquanid"), @@ -1715,26 +2240,79 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .categoryName = _("Water Bubble"), .height = 18, .weight = 820, - .description = COMPOUND_STRING( - "Despite what its appearance suggests,\n" - "it cares for others. If it finds vulnerable,\n" - "weak Pokémon, it protectively brings\n" - "them into its water bubble."), + .description = gAraquanidPokedexText, .pokemonScale = 267, .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Araquanid, 64, 64), + .frontPic = gMonFrontPic_Araquanid, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Araquanid, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Araquanid, 64, 48), + .backPic = gMonBackPic_Araquanid, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Araquanid), - ICON(Araquanid, 2), - .footprint = gMonFootprint_Araquanid, - LEARNSETS(Araquanid), + .palette = gMonPalette_Araquanid, + .shinyPalette = gMonShinyPalette_Araquanid, + .iconSprite = gMonIcon_Araquanid, + .iconPalIndex = 2, + FOOTPRINT(Araquanid) + .levelUpLearnset = sAraquanidLevelUpLearnset, + .teachableLearnset = sAraquanidTeachableLearnset, + .formSpeciesIdTable = sAraquanidFormSpeciesIdTable, + }, + + [SPECIES_ARAQUANID_TOTEM] = + { + .baseHP = 68, + .baseAttack = 70, + .baseDefense = 92, + .baseSpeed = 42, + .baseSpAttack = 50, + .baseSpDefense = 132, + .types = MON_TYPES(TYPE_WATER, TYPE_BUG), + .catchRate = 100, + .expYield = 159, + .evYield_SpDefense = 2, + .itemRare = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_BUG), + .abilities = { ABILITY_WATER_BUBBLE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Araquanid"), + .cryId = CRY_ARAQUANID, + .natDexNum = NATIONAL_DEX_ARAQUANID, + .categoryName = _("Water Bubble"), + .height = 31, + .weight = 2175, + .description = gAraquanidPokedexText, + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + .frontPic = gMonFrontPic_Araquanid, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Araquanid, + .frontAnimId = ANIM_H_SHAKE, + .backPic = gMonBackPic_Araquanid, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Araquanid, + .shinyPalette = gMonShinyPalette_Araquanid, + .iconSprite = gMonIcon_Araquanid, + .iconPalIndex = 2, + FOOTPRINT(Araquanid) + .isTotem = TRUE, + .levelUpLearnset = sAraquanidLevelUpLearnset, + .teachableLearnset = sAraquanidTeachableLearnset, + .formSpeciesIdTable = sAraquanidFormSpeciesIdTable, }, #endif //P_FAMILY_DEWPIDER @@ -1747,7 +2325,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 35, .baseSpAttack = 50, .baseSpDefense = 35, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 190, .expYield = 50, .evYield_Attack = 1, @@ -1756,7 +2334,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_LEAF_GUARD, ABILITY_NONE, ABILITY_CONTRARY }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Fomantis"), @@ -1774,18 +2352,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Fomantis, 40, 48), + .frontPic = gMonFrontPic_Fomantis, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Fomantis, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - BACK_PIC(Fomantis, 40, 56), + .backPic = gMonBackPic_Fomantis, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Fomantis), - ICON(Fomantis, 1), - .footprint = gMonFootprint_Fomantis, - LEARNSETS(Fomantis), - .evolutions = EVOLUTION({EVO_LEVEL_DAY, 34, SPECIES_LURANTIS}), + .palette = gMonPalette_Fomantis, + .shinyPalette = gMonShinyPalette_Fomantis, + .iconSprite = gMonIcon_Fomantis, + .iconPalIndex = 1, + FOOTPRINT(Fomantis) + .levelUpLearnset = sFomantisLevelUpLearnset, + .teachableLearnset = sFomantisTeachableLearnset, + .evolutions = EVOLUTION({EVO_LEVEL_DAY, 34, SPECIES_LURANTIS}, + {EVO_NONE, 0, SPECIES_LURANTIS_TOTEM}), }, [SPECIES_LURANTIS] = @@ -1796,7 +2380,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 45, .baseSpAttack = 80, .baseSpDefense = 90, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 75, .expYield = 168, .evYield_Attack = 2, @@ -1805,7 +2389,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_LEAF_GUARD, ABILITY_NONE, ABILITY_CONTRARY }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Lurantis"), @@ -1814,26 +2398,79 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .categoryName = _("Bloom Sickle"), .height = 9, .weight = 185, - .description = COMPOUND_STRING( - "It requires a lot of effort to maintain\n" - "Lurantis's vivid coloring, but some\n" - "collectors enjoy this work and treat it\n" - "as their hobby."), + .description = gLurantisPokedexText, .pokemonScale = 338, .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lurantis, 48, 64), + .frontPic = gMonFrontPic_Lurantis, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Lurantis, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Lurantis, 56, 64), + .backPic = gMonBackPic_Lurantis, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Lurantis), - ICON(Lurantis, 1), - .footprint = gMonFootprint_Lurantis, - LEARNSETS(Lurantis), + .palette = gMonPalette_Lurantis, + .shinyPalette = gMonShinyPalette_Lurantis, + .iconSprite = gMonIcon_Lurantis, + .iconPalIndex = 1, + FOOTPRINT(Lurantis) + .levelUpLearnset = sLurantisLevelUpLearnset, + .teachableLearnset = sLurantisTeachableLearnset, + .formSpeciesIdTable = sLurantisFormSpeciesIdTable, + }, + + [SPECIES_LURANTIS_TOTEM] = + { + .baseHP = 70, + .baseAttack = 105, + .baseDefense = 90, + .baseSpeed = 45, + .baseSpAttack = 80, + .baseSpDefense = 90, + .types = MON_TYPES(TYPE_GRASS), + .catchRate = 75, + .expYield = 168, + .evYield_Attack = 2, + .itemRare = ITEM_MIRACLE_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), + .abilities = { ABILITY_LEAF_GUARD, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Lurantis"), + .cryId = CRY_LURANTIS, + .natDexNum = NATIONAL_DEX_LURANTIS, + .categoryName = _("Bloom Sickle"), + .height = 15, + .weight = 580, + .description = gLurantisPokedexText, + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Lurantis, + .frontPicSize = MON_COORDS_SIZE(48, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Lurantis, + .frontAnimId = ANIM_GROW_VIBRATE, + .backPic = gMonBackPic_Lurantis, + .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Lurantis, + .shinyPalette = gMonShinyPalette_Lurantis, + .iconSprite = gMonIcon_Lurantis, + .iconPalIndex = 1, + FOOTPRINT(Lurantis) + .isTotem = TRUE, + .levelUpLearnset = sLurantisLevelUpLearnset, + .teachableLearnset = sLurantisTeachableLearnset, + .formSpeciesIdTable = sLurantisFormSpeciesIdTable, }, #endif //P_FAMILY_FOMANTIS @@ -1846,7 +2483,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 15, .baseSpAttack = 65, .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FAIRY), .catchRate = 190, .expYield = 57, .evYield_SpDefense = 1, @@ -1856,7 +2493,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_ILLUMINATE, ABILITY_EFFECT_SPORE, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Morelull"), @@ -1874,17 +2511,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Morelull, 24, 48), + .frontPic = gMonFrontPic_Morelull, + .frontPicSize = MON_COORDS_SIZE(24, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Morelull, .frontAnimId = ANIM_SHAKE_FLASH_YELLOW, - BACK_PIC(Morelull, 40, 48), + .backPic = gMonBackPic_Morelull, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Morelull), - ICON(Morelull, 0), - .footprint = gMonFootprint_Morelull, - LEARNSETS(Morelull), + .palette = gMonPalette_Morelull, + .shinyPalette = gMonShinyPalette_Morelull, + .iconSprite = gMonIcon_Morelull, + .iconPalIndex = 0, + FOOTPRINT(Morelull) + .levelUpLearnset = sMorelullLevelUpLearnset, + .teachableLearnset = sMorelullTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_SHIINOTIC}), }, @@ -1896,7 +2538,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 30, .baseSpAttack = 90, .baseSpDefense = 100, - .types = { TYPE_GRASS, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FAIRY), .catchRate = 75, .expYield = 142, .evYield_SpDefense = 2, @@ -1906,7 +2548,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_ILLUMINATE, ABILITY_EFFECT_SPORE, ABILITY_RAIN_DISH }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Shiinotic"), @@ -1924,17 +2566,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Shiinotic, 56, 56), + .frontPic = gMonFrontPic_Shiinotic, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Shiinotic, .frontAnimId = ANIM_SHAKE_GLOW_WHITE_SLOW, - BACK_PIC(Shiinotic, 64, 48), + .backPic = gMonBackPic_Shiinotic, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Shiinotic), - ICON(Shiinotic, 1), - .footprint = gMonFootprint_Shiinotic, - LEARNSETS(Shiinotic), + .palette = gMonPalette_Shiinotic, + .shinyPalette = gMonShinyPalette_Shiinotic, + .iconSprite = gMonIcon_Shiinotic, + .iconPalIndex = 1, + FOOTPRINT(Shiinotic) + .levelUpLearnset = sShiinoticLevelUpLearnset, + .teachableLearnset = sShiinoticTeachableLearnset, }, #endif //P_FAMILY_MORELULL @@ -1947,7 +2594,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 77, .baseSpAttack = 71, .baseSpDefense = 40, - .types = { TYPE_POISON, TYPE_FIRE }, + .types = MON_TYPES(TYPE_POISON, TYPE_FIRE), .catchRate = 120, .expYield = 64, .evYield_Speed = 1, @@ -1956,7 +2603,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_CORROSION, ABILITY_NONE, ABILITY_OBLIVIOUS }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Salandit"), @@ -1974,18 +2621,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Salandit, 56, 40), + .frontPic = gMonFrontPic_Salandit, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Salandit, .frontAnimId = ANIM_GLOW_RED, - BACK_PIC(Salandit, 56, 40), + .backPic = gMonBackPic_Salandit, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Salandit), - ICON(Salandit, 2), - .footprint = gMonFootprint_Salandit, - LEARNSETS(Salandit), - .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 33, SPECIES_SALAZZLE}), + .palette = gMonPalette_Salandit, + .shinyPalette = gMonShinyPalette_Salandit, + .iconSprite = gMonIcon_Salandit, + .iconPalIndex = 2, + FOOTPRINT(Salandit) + .levelUpLearnset = sSalanditLevelUpLearnset, + .teachableLearnset = sSalanditTeachableLearnset, + .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 33, SPECIES_SALAZZLE}, + {EVO_NONE, 0, SPECIES_SALAZZLE_TOTEM}), }, [SPECIES_SALAZZLE] = @@ -1996,7 +2649,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 117, .baseSpAttack = 111, .baseSpDefense = 60, - .types = { TYPE_POISON, TYPE_FIRE }, + .types = MON_TYPES(TYPE_POISON, TYPE_FIRE), .catchRate = 45, .expYield = 168, .evYield_Speed = 2, @@ -2005,7 +2658,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_CORROSION, ABILITY_NONE, ABILITY_OBLIVIOUS }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Salazzle"), @@ -2014,26 +2667,79 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .categoryName = _("Toxic Lizard"), .height = 12, .weight = 222, - .description = COMPOUND_STRING( - "For some reason, only females have\n" - "been found. It creates a reverse harem of\n" - "male Salandit to live with. Its poisonous\n" - "gas is filled with pheromones."), + .description = gSalazzlePokedexText, .pokemonScale = 282, .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Salazzle, 64, 64), + .frontPic = gMonFrontPic_Salazzle, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Salazzle, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Salazzle, 48, 64), + .backPic = gMonBackPic_Salazzle, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Salazzle), - ICON(Salazzle, 0), - .footprint = gMonFootprint_Salazzle, - LEARNSETS(Salazzle), + .palette = gMonPalette_Salazzle, + .shinyPalette = gMonShinyPalette_Salazzle, + .iconSprite = gMonIcon_Salazzle, + .iconPalIndex = 0, + FOOTPRINT(Salazzle) + .levelUpLearnset = sSalazzleLevelUpLearnset, + .teachableLearnset = sSalazzleTeachableLearnset, + .formSpeciesIdTable = sSalanditFormSpeciesIdTable, + }, + + [SPECIES_SALAZZLE_TOTEM] = + { + .baseHP = 68, + .baseAttack = 64, + .baseDefense = 60, + .baseSpeed = 117, + .baseSpAttack = 111, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_POISON, TYPE_FIRE), + .catchRate = 45, + .expYield = 168, + .evYield_Speed = 2, + .itemRare = ITEM_SMOKE_BALL, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), + .abilities = { ABILITY_CORROSION, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Salazzle"), + .cryId = CRY_SALAZZLE, + .natDexNum = NATIONAL_DEX_SALAZZLE, + .categoryName = _("Toxic Lizard"), + .height = 21, + .weight = 810, + .description = gSalazzlePokedexText, + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Salazzle, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Salazzle, + .frontAnimId = ANIM_GROW_VIBRATE, + .backPic = gMonBackPic_Salazzle, + .backPicSize = MON_COORDS_SIZE(48, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Salazzle, + .shinyPalette = gMonShinyPalette_Salazzle, + .iconSprite = gMonIcon_Salazzle, + .iconPalIndex = 0, + FOOTPRINT(Salazzle) + .isTotem = TRUE, + .levelUpLearnset = sSalazzleLevelUpLearnset, + .teachableLearnset = sSalazzleTeachableLearnset, + .formSpeciesIdTable = sSalanditFormSpeciesIdTable, }, #endif //P_FAMILY_SALANDIT @@ -2046,7 +2752,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 50, .baseSpAttack = 45, .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FIGHTING), .catchRate = 140, .expYield = 68, .evYield_Attack = 1, @@ -2054,7 +2760,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FLUFFY, ABILITY_KLUTZ, ABILITY_CUTE_CHARM }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Stufful"), @@ -2072,17 +2778,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Stufful, 48, 48), + .frontPic = gMonFrontPic_Stufful, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Stufful, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Stufful, 56, 40), + .backPic = gMonBackPic_Stufful, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Stufful), - ICON(Stufful, 0), - .footprint = gMonFootprint_Stufful, - LEARNSETS(Stufful), + .palette = gMonPalette_Stufful, + .shinyPalette = gMonShinyPalette_Stufful, + .iconSprite = gMonIcon_Stufful, + .iconPalIndex = 0, + FOOTPRINT(Stufful) + .levelUpLearnset = sStuffulLevelUpLearnset, + .teachableLearnset = sStuffulTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 27, SPECIES_BEWEAR}), }, @@ -2094,7 +2805,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 60, .baseSpAttack = 55, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FIGHTING), .catchRate = 70, .expYield = 175, .evYield_Attack = 2, @@ -2102,7 +2813,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FLUFFY, ABILITY_KLUTZ, ABILITY_UNNERVE }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Bewear"), @@ -2120,17 +2831,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 365, .trainerOffset = 7, - FRONT_PIC(Bewear, 56, 64), + .frontPic = gMonFrontPic_Bewear, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Bewear, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(Bewear, 64, 64), + .backPic = gMonBackPic_Bewear, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Bewear), - ICON(Bewear, 0), - .footprint = gMonFootprint_Bewear, - LEARNSETS(Bewear), + .palette = gMonPalette_Bewear, + .shinyPalette = gMonShinyPalette_Bewear, + .iconSprite = gMonIcon_Bewear, + .iconPalIndex = 0, + FOOTPRINT(Bewear) + .levelUpLearnset = sBewearLevelUpLearnset, + .teachableLearnset = sBewearTeachableLearnset, }, #endif //P_FAMILY_STUFFUL @@ -2143,7 +2859,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 32, .baseSpAttack = 30, .baseSpDefense = 38, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 235, .expYield = 42, .evYield_HP = 1, @@ -2152,7 +2868,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_LEAF_GUARD, ABILITY_OBLIVIOUS, ABILITY_SWEET_VEIL }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Bounsweet"), @@ -2170,17 +2886,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bounsweet, 32, 40), + .frontPic = gMonFrontPic_Bounsweet, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Bounsweet, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Bounsweet, 48, 40), + .backPic = gMonBackPic_Bounsweet, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Bounsweet), - ICON(Bounsweet, 1), - .footprint = gMonFootprint_Bounsweet, - LEARNSETS(Bounsweet), + .palette = gMonPalette_Bounsweet, + .shinyPalette = gMonShinyPalette_Bounsweet, + .iconSprite = gMonIcon_Bounsweet, + .iconPalIndex = 1, + FOOTPRINT(Bounsweet) + .levelUpLearnset = sBounsweetLevelUpLearnset, + .teachableLearnset = sBounsweetTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_STEENEE}), }, @@ -2192,7 +2913,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 62, .baseSpAttack = 40, .baseSpDefense = 48, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 120, .expYield = 102, .evYield_Speed = 2, @@ -2201,7 +2922,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_LEAF_GUARD, ABILITY_OBLIVIOUS, ABILITY_SWEET_VEIL }, .bodyColor = BODY_COLOR_PURPLE, .noFlip = TRUE, @@ -2220,17 +2941,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Steenee, 48, 56), + .frontPic = gMonFrontPic_Steenee, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Steenee, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Steenee, 56, 56), + .backPic = gMonBackPic_Steenee, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Steenee), - ICON(Steenee, 1), - .footprint = gMonFootprint_Steenee, - LEARNSETS(Steenee), + .palette = gMonPalette_Steenee, + .shinyPalette = gMonShinyPalette_Steenee, + .iconSprite = gMonIcon_Steenee, + .iconPalIndex = 1, + FOOTPRINT(Steenee) + .levelUpLearnset = sSteeneeLevelUpLearnset, + .teachableLearnset = sSteeneeTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_STOMP, SPECIES_TSAREENA}), }, @@ -2242,16 +2968,16 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 72, .baseSpAttack = 50, .baseSpDefense = 98, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, - .expYield = 230, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 255 : 230, .evYield_Attack = 3, .itemCommon = ITEM_GRASSY_SEED, .genderRatio = MON_FEMALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_LEAF_GUARD, ABILITY_QUEENLY_MAJESTY, ABILITY_SWEET_VEIL }, .bodyColor = BODY_COLOR_PURPLE, .noFlip = TRUE, @@ -2270,17 +2996,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tsareena, 56, 64), + .frontPic = gMonFrontPic_Tsareena, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Tsareena, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Tsareena, 56, 56), + .backPic = gMonBackPic_Tsareena, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Tsareena), - ICON(Tsareena, 1), - .footprint = gMonFootprint_Tsareena, - LEARNSETS(Tsareena), + .palette = gMonPalette_Tsareena, + .shinyPalette = gMonShinyPalette_Tsareena, + .iconSprite = gMonIcon_Tsareena, + .iconPalIndex = 1, + FOOTPRINT(Tsareena) + .levelUpLearnset = sTsareenaLevelUpLearnset, + .teachableLearnset = sTsareenaTeachableLearnset, }, #endif //P_FAMILY_BOUNSWEET @@ -2293,7 +3024,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 100, .baseSpAttack = 82, .baseSpDefense = 110, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 60, .expYield = 170, .evYield_SpDefense = 2, @@ -2302,7 +3033,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_FLOWER_VEIL, ABILITY_TRIAGE, ABILITY_NATURAL_CURE }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, @@ -2321,18 +3052,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Comfey, 48, 48), + .frontPic = gMonFrontPic_Comfey, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Comfey, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 8, - BACK_PIC(Comfey, 64, 56), + .backPic = gMonBackPic_Comfey, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Comfey), - ICON(Comfey, 1), - .footprint = gMonFootprint_Comfey, - LEARNSETS(Comfey), + .palette = gMonPalette_Comfey, + .shinyPalette = gMonShinyPalette_Comfey, + .iconSprite = gMonIcon_Comfey, + .iconPalIndex = 1, + FOOTPRINT(Comfey) + .levelUpLearnset = sComfeyLevelUpLearnset, + .teachableLearnset = sComfeyTeachableLearnset, }, #endif //P_FAMILY_COMFEY @@ -2345,7 +3081,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 60, .baseSpAttack = 90, .baseSpDefense = 110, - .types = { TYPE_NORMAL, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_PSYCHIC), .catchRate = 45, .expYield = 172, .evYield_SpDefense = 2, @@ -2353,7 +3089,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INNER_FOCUS, ABILITY_TELEPATHY, ABILITY_SYMBIOSIS }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Oranguru"), @@ -2371,17 +3107,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Oranguru, 56, 56), + .frontPic = gMonFrontPic_Oranguru, + .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Oranguru, .frontAnimId = ANIM_SHRINK_GROW_SLOW, - BACK_PIC(Oranguru, 64, 48), + .backPic = gMonBackPic_Oranguru, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 12, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Oranguru), - ICON(Oranguru, 0), - .footprint = gMonFootprint_Oranguru, - LEARNSETS(Oranguru), + .palette = gMonPalette_Oranguru, + .shinyPalette = gMonShinyPalette_Oranguru, + .iconSprite = gMonIcon_Oranguru, + .iconPalIndex = 0, + FOOTPRINT(Oranguru) + .levelUpLearnset = sOranguruLevelUpLearnset, + .teachableLearnset = sOranguruTeachableLearnset, }, #endif //P_FAMILY_ORANGURU @@ -2394,7 +3135,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 80, .baseSpAttack = 40, .baseSpDefense = 60, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, .expYield = 172, .evYield_Attack = 2, @@ -2402,7 +3143,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RECEIVER, ABILITY_NONE, ABILITY_DEFIANT }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Passimian"), @@ -2420,17 +3161,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Passimian, 57, 60), + .frontPic = gMonFrontPic_Passimian, + .frontPicSize = MON_COORDS_SIZE(57, 60), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Passimian, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(Passimian, 51, 52), + .backPic = gMonBackPic_Passimian, + .backPicSize = MON_COORDS_SIZE(51, 52), .backPicYOffset = 7, .backAnimId = BACK_ANIM_H_SHAKE, - PALETTES(Passimian), - ICON(Passimian, 1), - .footprint = gMonFootprint_Passimian, - LEARNSETS(Passimian), + .palette = gMonPalette_Passimian, + .shinyPalette = gMonShinyPalette_Passimian, + .iconSprite = gMonIcon_Passimian, + .iconPalIndex = 1, + FOOTPRINT(Passimian) + .levelUpLearnset = sPassimianLevelUpLearnset, + .teachableLearnset = sPassimianTeachableLearnset, }, #endif //P_FAMILY_PASSIMIAN @@ -2443,7 +3189,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 80, .baseSpAttack = 20, .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_WATER }, + .types = MON_TYPES(TYPE_BUG, TYPE_WATER), .catchRate = 90, .expYield = 46, .evYield_Speed = 1, @@ -2451,8 +3197,8 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_WATER_3 }, - .abilities = { ABILITY_WIMP_OUT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_WATER_3), + .abilities = { ABILITY_WIMP_OUT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Wimpod"), .cryId = CRY_WIMPOD, @@ -2469,17 +3215,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wimpod, 40, 40), + .frontPic = gMonFrontPic_Wimpod, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Wimpod, .frontAnimId = ANIM_V_SHAKE_H_SLIDE_FAST, - BACK_PIC(Wimpod, 64, 48), + .backPic = gMonBackPic_Wimpod, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Wimpod), - ICON(Wimpod, 2), - .footprint = gMonFootprint_Wimpod, - LEARNSETS(Wimpod), + .palette = gMonPalette_Wimpod, + .shinyPalette = gMonShinyPalette_Wimpod, + .iconSprite = gMonIcon_Wimpod, + .iconPalIndex = 2, + FOOTPRINT(Wimpod) + .levelUpLearnset = sWimpodLevelUpLearnset, + .teachableLearnset = sWimpodTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_GOLISOPOD}), }, @@ -2491,7 +3242,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 40, .baseSpAttack = 60, .baseSpDefense = 90, - .types = { TYPE_BUG, TYPE_WATER }, + .types = MON_TYPES(TYPE_BUG, TYPE_WATER), .catchRate = 45, .expYield = 186, .evYield_Defense = 2, @@ -2499,8 +3250,8 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_WATER_3 }, - .abilities = { ABILITY_EMERGENCY_EXIT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_WATER_3), + .abilities = { ABILITY_EMERGENCY_EXIT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Golisopod"), .cryId = CRY_GOLISOPOD, @@ -2517,17 +3268,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Golisopod, 64, 64), + .frontPic = gMonFrontPic_Golisopod, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Golisopod, .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, - BACK_PIC(Golisopod, 64, 48), + .backPic = gMonBackPic_Golisopod, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Golisopod), - ICON(Golisopod, 2), - .footprint = gMonFootprint_Golisopod, - LEARNSETS(Golisopod), + .palette = gMonPalette_Golisopod, + .shinyPalette = gMonShinyPalette_Golisopod, + .iconSprite = gMonIcon_Golisopod, + .iconPalIndex = 2, + FOOTPRINT(Golisopod) + .levelUpLearnset = sGolisopodLevelUpLearnset, + .teachableLearnset = sGolisopodTeachableLearnset, }, #endif //P_FAMILY_WIMPOD @@ -2540,7 +3296,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 15, .baseSpAttack = 70, .baseSpDefense = 45, - .types = { TYPE_GHOST, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GHOST, TYPE_GROUND), .catchRate = 140, .expYield = 64, .evYield_Defense = 1, @@ -2549,7 +3305,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_WATER_COMPACTION, ABILITY_NONE, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Sandygast"), @@ -2567,17 +3323,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sandygast, 48, 48), + .frontPic = gMonFrontPic_Sandygast, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Sandygast, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - BACK_PIC(Sandygast, 40, 48), + .backPic = gMonBackPic_Sandygast, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Sandygast), - ICON(Sandygast, 1), - .footprint = gMonFootprint_Sandygast, - LEARNSETS(Sandygast), + .palette = gMonPalette_Sandygast, + .shinyPalette = gMonShinyPalette_Sandygast, + .iconSprite = gMonIcon_Sandygast, + .iconPalIndex = 1, + FOOTPRINT(Sandygast) + .levelUpLearnset = sSandygastLevelUpLearnset, + .teachableLearnset = sSandygastTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_PALOSSAND}), }, @@ -2589,7 +3350,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 35, .baseSpAttack = 100, .baseSpDefense = 75, - .types = { TYPE_GHOST, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GHOST, TYPE_GROUND), .catchRate = 60, .expYield = 168, .evYield_Defense = 2, @@ -2598,7 +3359,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_WATER_COMPACTION, ABILITY_NONE, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Palossand"), @@ -2616,17 +3377,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Palossand, 64, 64), + .frontPic = gMonFrontPic_Palossand, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Palossand, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Palossand, 64, 64), + .backPic = gMonBackPic_Palossand, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Palossand), - ICON(Palossand, 2), - .footprint = gMonFootprint_Palossand, - LEARNSETS(Palossand), + .palette = gMonPalette_Palossand, + .shinyPalette = gMonShinyPalette_Palossand, + .iconSprite = gMonIcon_Palossand, + .iconPalIndex = 2, + FOOTPRINT(Palossand) + .levelUpLearnset = sPalossandLevelUpLearnset, + .teachableLearnset = sPalossandTeachableLearnset, }, #endif //P_FAMILY_SANDYGAST @@ -2639,7 +3405,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 5, .baseSpAttack = 30, .baseSpDefense = 130, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 60, .expYield = 144, .evYield_SpDefense = 2, @@ -2647,7 +3413,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_INNARDS_OUT, ABILITY_NONE, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Pyukumuku"), @@ -2665,17 +3431,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pyukumuku, 40, 40), + .frontPic = gMonFrontPic_Pyukumuku, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Pyukumuku, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Pyukumuku, 48, 32), + .backPic = gMonBackPic_Pyukumuku, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Pyukumuku), - ICON(Pyukumuku, 0), - .footprint = gMonFootprint_Pyukumuku, - LEARNSETS(Pyukumuku), + .palette = gMonPalette_Pyukumuku, + .shinyPalette = gMonShinyPalette_Pyukumuku, + .iconSprite = gMonIcon_Pyukumuku, + .iconPalIndex = 0, + FOOTPRINT(Pyukumuku) + .levelUpLearnset = sPyukumukuLevelUpLearnset, + .teachableLearnset = sPyukumukuTeachableLearnset, }, #endif //P_FAMILY_PYUKUMUKU @@ -2688,7 +3459,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 59, .baseSpAttack = 95, .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 3, .expYield = 107, .evYield_HP = 2, @@ -2696,10 +3467,9 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, - .isLegendary = TRUE, .speciesName = _("Type: Null"), .cryId = CRY_TYPE_NULL, .natDexNum = NATIONAL_DEX_TYPE_NULL, @@ -2715,115 +3485,127 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - FRONT_PIC(TypeNull, 64, 64), + .frontPic = gMonFrontPic_TypeNull, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_TypeNull, .frontAnimId = ANIM_H_SHAKE, - BACK_PIC(TypeNull, 56, 64), + .backPic = gMonBackPic_TypeNull, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(TypeNull), - ICON(TypeNull, 0), - .footprint = gMonFootprint_Type_Null, - LEARNSETS(TypeNull), + .palette = gMonPalette_TypeNull, + .shinyPalette = gMonShinyPalette_TypeNull, + .iconSprite = gMonIcon_TypeNull, + .iconPalIndex = 0, + FOOTPRINT(Type_Null) + .isLegendary = TRUE, + .levelUpLearnset = sTypeNullLevelUpLearnset, + .teachableLearnset = sTypeNullTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_SILVALLY_NORMAL}), }, -#define SILVALLY_SPECIES_INFO(type, palette) \ - { \ - .baseHP = 95, \ - .baseAttack = 95, \ - .baseDefense = 95, \ - .baseSpeed = 95, \ - .baseSpAttack = 95, \ - .baseSpDefense = 95, \ - .types = { type, type }, \ - .catchRate = 3, \ - .expYield = 257, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_RKS_SYSTEM, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .isLegendary = TRUE, \ - .speciesName = _("Silvally"), \ - .cryId = CRY_SILVALLY, \ - .natDexNum = NATIONAL_DEX_SILVALLY, \ - .categoryName = _("Synthetic"), \ - .height = 23, \ - .weight = 1005, \ - .description = (type == TYPE_NORMAL \ - ? gSilvallyNormalPokedexText \ - : gSilvallyMemoryPokedexText), \ - .pokemonScale = 256, \ - .pokemonOffset = 0, \ - .trainerScale = 342, \ - .trainerOffset = 7, \ - FRONT_PIC(Silvally, 64, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Silvally, \ - .frontAnimId = ANIM_V_SHAKE, \ - BACK_PIC(Silvally, 56, 64), \ - .backPicYOffset = 0, \ - PALETTES(palette), \ - ICON(Silvally, 0), \ - .footprint = gMonFootprint_Silvally, \ - LEARNSETS(Silvally), \ - .formSpeciesIdTable = sSilvallyFormSpeciesIdTable, \ - .formChangeTable = sSilvallyFormChangeTable, \ - } - //.backAnimId = BACK_ANIM_NONE, +#define SILVALLY_SPECIES_INFO(type, _palette) \ + { \ + .baseHP = 95, \ + .baseAttack = 95, \ + .baseDefense = 95, \ + .baseSpeed = 95, \ + .baseSpAttack = 95, \ + .baseSpDefense = 95, \ + .types = MON_TYPES(type), \ + .catchRate = 3, \ + .expYield = 257, \ + .evYield_HP = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), \ + .abilities = { ABILITY_RKS_SYSTEM, ABILITY_NONE, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_GRAY, \ + .isLegendary = TRUE, \ + .speciesName = _("Silvally"), \ + .cryId = CRY_SILVALLY, \ + .natDexNum = NATIONAL_DEX_SILVALLY, \ + .categoryName = _("Synthetic"), \ + .height = 23, \ + .weight = 1005, \ + .description = (type == TYPE_NORMAL \ + ? gSilvallyNormalPokedexText \ + : gSilvallyMemoryPokedexText), \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 342, \ + .trainerOffset = 7, \ + .frontPic = gMonFrontPic_Silvally, \ + .frontPicSize = MON_COORDS_SIZE(64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Silvally, \ + .frontAnimId = ANIM_V_SHAKE, \ + .backPic = gMonBackPic_Silvally, \ + .backPicSize = MON_COORDS_SIZE(56, 64), \ + .backPicYOffset = 0, \ + /*.backAnimId = BACK_ANIM_NONE,*/ \ + .palette = gMonPalette_Silvally##_palette, \ + .shinyPalette = gMonShinyPalette_Silvally##_palette, \ + .iconSprite = gMonIcon_Silvally, \ + .iconPalIndex = 0, \ + FOOTPRINT(Silvally) \ + .levelUpLearnset = sSilvallyLevelUpLearnset, \ + .teachableLearnset = sSilvallyTeachableLearnset, \ + .formSpeciesIdTable = sSilvallyFormSpeciesIdTable, \ + .formChangeTable = sSilvallyFormChangeTable, \ + } - [SPECIES_SILVALLY_NORMAL] = SILVALLY_SPECIES_INFO(TYPE_NORMAL, SilvallyNormal), - [SPECIES_SILVALLY_FIGHTING] = SILVALLY_SPECIES_INFO(TYPE_FIGHTING, SilvallyFighting), - [SPECIES_SILVALLY_FLYING] = SILVALLY_SPECIES_INFO(TYPE_FLYING, SilvallyFlying), - [SPECIES_SILVALLY_POISON] = SILVALLY_SPECIES_INFO(TYPE_POISON, SilvallyPoison), - [SPECIES_SILVALLY_GROUND] = SILVALLY_SPECIES_INFO(TYPE_GROUND, SilvallyGround), - [SPECIES_SILVALLY_ROCK] = SILVALLY_SPECIES_INFO(TYPE_ROCK, SilvallyRock), - [SPECIES_SILVALLY_BUG] = SILVALLY_SPECIES_INFO(TYPE_BUG, SilvallyBug), - [SPECIES_SILVALLY_GHOST] = SILVALLY_SPECIES_INFO(TYPE_GHOST, SilvallyGhost), - [SPECIES_SILVALLY_STEEL] = SILVALLY_SPECIES_INFO(TYPE_STEEL, SilvallySteel), - [SPECIES_SILVALLY_FIRE] = SILVALLY_SPECIES_INFO(TYPE_FIRE, SilvallyFire), - [SPECIES_SILVALLY_WATER] = SILVALLY_SPECIES_INFO(TYPE_WATER, SilvallyWater), - [SPECIES_SILVALLY_GRASS] = SILVALLY_SPECIES_INFO(TYPE_GRASS, SilvallyGrass), - [SPECIES_SILVALLY_ELECTRIC] = SILVALLY_SPECIES_INFO(TYPE_ELECTRIC, SilvallyElectric), - [SPECIES_SILVALLY_PSYCHIC] = SILVALLY_SPECIES_INFO(TYPE_PSYCHIC, SilvallyPsychic), - [SPECIES_SILVALLY_ICE] = SILVALLY_SPECIES_INFO(TYPE_ICE, SilvallyIce), - [SPECIES_SILVALLY_DRAGON] = SILVALLY_SPECIES_INFO(TYPE_DRAGON, SilvallyDragon), - [SPECIES_SILVALLY_DARK] = SILVALLY_SPECIES_INFO(TYPE_DARK, SilvallyDark), - [SPECIES_SILVALLY_FAIRY] = SILVALLY_SPECIES_INFO(TYPE_FAIRY, SilvallyFairy), + [SPECIES_SILVALLY_NORMAL] = SILVALLY_SPECIES_INFO(TYPE_NORMAL, Normal), + [SPECIES_SILVALLY_FIGHTING] = SILVALLY_SPECIES_INFO(TYPE_FIGHTING, Fighting), + [SPECIES_SILVALLY_FLYING] = SILVALLY_SPECIES_INFO(TYPE_FLYING, Flying), + [SPECIES_SILVALLY_POISON] = SILVALLY_SPECIES_INFO(TYPE_POISON, Poison), + [SPECIES_SILVALLY_GROUND] = SILVALLY_SPECIES_INFO(TYPE_GROUND, Ground), + [SPECIES_SILVALLY_ROCK] = SILVALLY_SPECIES_INFO(TYPE_ROCK, Rock), + [SPECIES_SILVALLY_BUG] = SILVALLY_SPECIES_INFO(TYPE_BUG, Bug), + [SPECIES_SILVALLY_GHOST] = SILVALLY_SPECIES_INFO(TYPE_GHOST, Ghost), + [SPECIES_SILVALLY_STEEL] = SILVALLY_SPECIES_INFO(TYPE_STEEL, Steel), + [SPECIES_SILVALLY_FIRE] = SILVALLY_SPECIES_INFO(TYPE_FIRE, Fire), + [SPECIES_SILVALLY_WATER] = SILVALLY_SPECIES_INFO(TYPE_WATER, Water), + [SPECIES_SILVALLY_GRASS] = SILVALLY_SPECIES_INFO(TYPE_GRASS, Grass), + [SPECIES_SILVALLY_ELECTRIC] = SILVALLY_SPECIES_INFO(TYPE_ELECTRIC, Electric), + [SPECIES_SILVALLY_PSYCHIC] = SILVALLY_SPECIES_INFO(TYPE_PSYCHIC, Psychic), + [SPECIES_SILVALLY_ICE] = SILVALLY_SPECIES_INFO(TYPE_ICE, Ice), + [SPECIES_SILVALLY_DRAGON] = SILVALLY_SPECIES_INFO(TYPE_DRAGON, Dragon), + [SPECIES_SILVALLY_DARK] = SILVALLY_SPECIES_INFO(TYPE_DARK, Dark), + [SPECIES_SILVALLY_FAIRY] = SILVALLY_SPECIES_INFO(TYPE_FAIRY, Fairy), #endif //P_FAMILY_TYPE_NULL #if P_FAMILY_MINIOR -#define MINIOR_MISC_INFO(color) \ - .types = { TYPE_ROCK, TYPE_FLYING }, \ - .catchRate = 30, \ - .expYield = 154, \ - .evYield_Defense = 1, \ - .evYield_SpDefense = 1, \ - .itemRare = ITEM_STAR_PIECE, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, \ - .abilities = { ABILITY_SHIELDS_DOWN, ABILITY_NONE }, \ - .bodyColor = color, \ - .noFlip = TRUE, \ - .speciesName = _("Minior"), \ - .cryId = CRY_MINIOR, \ - .natDexNum = NATIONAL_DEX_MINIOR, \ - .categoryName = _("Meteor"), \ - .height = 3, \ - .pokemonScale = 530, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Minior, \ - LEARNSETS(Minior), \ +#define MINIOR_MISC_INFO(color) \ + .types = MON_TYPES(TYPE_ROCK, TYPE_FLYING), \ + .catchRate = 30, \ + .expYield = 154, \ + .evYield_Defense = 1, \ + .evYield_SpDefense = 1, \ + .itemRare = ITEM_STAR_PIECE, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), \ + .abilities = { ABILITY_SHIELDS_DOWN, ABILITY_NONE, ABILITY_NONE }, \ + .bodyColor = color, \ + .noFlip = TRUE, \ + .speciesName = _("Minior"), \ + .cryId = CRY_MINIOR, \ + .natDexNum = NATIONAL_DEX_MINIOR, \ + .categoryName = _("Meteor"), \ + .height = 3, \ + .pokemonScale = 530, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FOOTPRINT(Minior) \ + .levelUpLearnset = sMiniorLevelUpLearnset, \ + .teachableLearnset = sMiniorTeachableLearnset, \ .formSpeciesIdTable = sMiniorFormSpeciesIdTable #define MINIOR_METEOR_SPECIES_INFO(Form) \ @@ -2835,19 +3617,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpAttack = 60, \ .baseSpDefense = 100, \ .weight = 400, \ - FRONT_PIC(MiniorMeteor, 48, 40), \ + .frontPic = gMonFrontPic_MiniorMeteor, \ + .frontPicSize = MON_COORDS_SIZE(48, 40), \ .frontPicYOffset = 14, \ .frontAnimFrames = sAnims_MiniorMeteor, \ .frontAnimId = ANIM_TUMBLING_FRONT_FLIP_TWICE, \ .enemyMonElevation = 17, \ - BACK_PIC(MiniorMeteor, 56, 40), \ + .backPic = gMonBackPic_MiniorMeteor, \ + .backPicSize = MON_COORDS_SIZE(56, 40), \ .backPicYOffset = 14, \ - PALETTES(MiniorMeteor), \ - ICON(MiniorMeteor, 0), \ + /*.backAnimId = BACK_ANIM_NONE,*/ \ + .palette = gMonPalette_MiniorMeteor, \ + .shinyPalette = gMonShinyPalette_MiniorMeteor, \ + .iconSprite = gMonIcon_MiniorMeteor, \ + .iconPalIndex = 0, \ .formChangeTable = sMinior ##Form##FormChangeTable, \ MINIOR_MISC_INFO(BODY_COLOR_BROWN), \ } - //.backAnimId = BACK_ANIM_NONE, #define MINIOR_CORE_SPECIES_INFO(Form, color, iconPal) \ { \ @@ -2859,20 +3645,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpDefense = 60, \ .weight = 3, \ .description = gMiniorCorePokedexText, \ - FRONT_PIC(MiniorCore, 48, 40), \ + .frontPic = gMonFrontPic_MiniorCore, \ + .frontPicSize = MON_COORDS_SIZE(48, 40), \ .frontPicYOffset = 16, \ .frontAnimFrames = sAnims_MiniorMeteor, \ .frontAnimId = ANIM_TUMBLING_FRONT_FLIP_TWICE, \ .enemyMonElevation = 17, \ - BACK_PIC(MiniorCore, 56, 40), \ + .backPic = gMonBackPic_MiniorCore, \ + .backPicSize = MON_COORDS_SIZE(56, 40), \ .backPicYOffset = 15, \ + /*.backAnimId = BACK_ANIM_NONE,*/ \ .palette = gMonPalette_MiniorCore##Form, \ .shinyPalette = gMonShinyPalette_MiniorCore, \ - ICON(MiniorCore##Form, iconPal), \ + .iconSprite = gMonIcon_MiniorCore##Form, \ + .iconPalIndex = iconPal, \ .formChangeTable = sMinior ##Form##FormChangeTable, \ MINIOR_MISC_INFO(color), \ } - //.backAnimId = BACK_ANIM_NONE, [SPECIES_MINIOR_METEOR_RED] = MINIOR_METEOR_SPECIES_INFO(Red), [SPECIES_MINIOR_METEOR_ORANGE] = MINIOR_METEOR_SPECIES_INFO(Orange), @@ -2899,7 +3688,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 65, .baseSpAttack = 75, .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 45, .expYield = 168, .evYield_Attack = 2, @@ -2907,8 +3696,8 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, - .abilities = { ABILITY_COMATOSE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), + .abilities = { ABILITY_COMATOSE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Komala"), .cryId = CRY_KOMALA, @@ -2925,17 +3714,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Komala, 48, 40), + .frontPic = gMonFrontPic_Komala, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Komala, .frontAnimId = ANIM_H_DIP, - BACK_PIC(Komala, 64, 48), + .backPic = gMonBackPic_Komala, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Komala), - ICON(Komala, 2), - .footprint = gMonFootprint_Komala, - LEARNSETS(Komala), + .palette = gMonPalette_Komala, + .shinyPalette = gMonShinyPalette_Komala, + .iconSprite = gMonIcon_Komala, + .iconPalIndex = 2, + FOOTPRINT(Komala) + .levelUpLearnset = sKomalaLevelUpLearnset, + .teachableLearnset = sKomalaTeachableLearnset, }, #endif //P_FAMILY_KOMALA @@ -2948,7 +3742,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 36, .baseSpAttack = 91, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_FIRE, TYPE_DRAGON), .catchRate = 70, .expYield = 170, .evYield_Defense = 2, @@ -2957,8 +3751,8 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, - .abilities = { ABILITY_SHELL_ARMOR, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), + .abilities = { ABILITY_SHELL_ARMOR, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Turtonator"), .cryId = CRY_TURTONATOR, @@ -2975,17 +3769,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Turtonator, 64, 64), + .frontPic = gMonFrontPic_Turtonator, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Turtonator, .frontAnimId = ANIM_SHAKE_GLOW_RED, - BACK_PIC(Turtonator, 64, 56), + .backPic = gMonBackPic_Turtonator, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Turtonator), - ICON(Turtonator, 0), - .footprint = gMonFootprint_Turtonator, - LEARNSETS(Turtonator), + .palette = gMonPalette_Turtonator, + .shinyPalette = gMonShinyPalette_Turtonator, + .iconSprite = gMonIcon_Turtonator, + .iconPalIndex = 0, + FOOTPRINT(Turtonator) + .levelUpLearnset = sTurtonatorLevelUpLearnset, + .teachableLearnset = sTurtonatorTeachableLearnset, }, #endif //P_FAMILY_TURTONATOR @@ -2998,7 +3797,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 96, .baseSpAttack = 40, .baseSpDefense = 73, - .types = { TYPE_ELECTRIC, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_STEEL), .catchRate = 180, .expYield = 152, .evYield_Attack = 2, @@ -3007,7 +3806,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_IRON_BARBS, ABILITY_LIGHTNING_ROD, ABILITY_STURDY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Togedemaru"), @@ -3016,100 +3815,287 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .categoryName = _("Roly-Poly"), .height = 3, .weight = 33, - .description = COMPOUND_STRING( - "The spiny fur on its back is normally\n" - "at rest. When this Pokémon becomes\n" - "agitated, its fur stands on end and stabs\n" - "into its attackers."), + .description = gTogedemaruPokedexText, .pokemonScale = 530, .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Togedemaru, 40, 40), + .frontPic = gMonFrontPic_Togedemaru, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Togedemaru, .frontAnimId = ANIM_FLASH_YELLOW, - BACK_PIC(Togedemaru, 64, 48), + .backPic = gMonBackPic_Togedemaru, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(Togedemaru), - ICON(Togedemaru, 2), - .footprint = gMonFootprint_Togedemaru, - LEARNSETS(Togedemaru), + .palette = gMonPalette_Togedemaru, + .shinyPalette = gMonShinyPalette_Togedemaru, + .iconSprite = gMonIcon_Togedemaru, + .iconPalIndex = 2, + FOOTPRINT(Togedemaru) + .levelUpLearnset = sTogedemaruLevelUpLearnset, + .teachableLearnset = sTogedemaruTeachableLearnset, + .formSpeciesIdTable = sTogedemaruFormSpeciesIdTable, + }, + + [SPECIES_TOGEDEMARU_TOTEM] = + { + .baseHP = 65, + .baseAttack = 98, + .baseDefense = 63, + .baseSpeed = 96, + .baseSpAttack = 40, + .baseSpDefense = 73, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_STEEL), + .catchRate = 180, + .expYield = 152, + .evYield_Attack = 2, + .itemRare = ITEM_ELECTRIC_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), + .abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Togedemaru"), + .cryId = CRY_TOGEDEMARU, + .natDexNum = NATIONAL_DEX_TOGEDEMARU, + .categoryName = _("Roly-Poly"), + .height = 6, + .weight = 130, + .description = gTogedemaruPokedexText, + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Togedemaru, + .frontPicSize = MON_COORDS_SIZE(40, 40), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Togedemaru, + .frontAnimId = ANIM_FLASH_YELLOW, + .backPic = gMonBackPic_Togedemaru, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_GROW_STUTTER, + .palette = gMonPalette_Togedemaru, + .shinyPalette = gMonShinyPalette_Togedemaru, + .iconSprite = gMonIcon_Togedemaru, + .iconPalIndex = 2, + FOOTPRINT(Togedemaru) + .isTotem = TRUE, + .levelUpLearnset = sTogedemaruLevelUpLearnset, + .teachableLearnset = sTogedemaruTeachableLearnset, + .formSpeciesIdTable = sTogedemaruFormSpeciesIdTable, }, #endif //P_FAMILY_TOGEDEMARU #if P_FAMILY_MIMIKYU -#define MIMIKYU_MISC_INFO \ - .baseHP = 55, \ - .baseAttack = 90, \ - .baseDefense = 80, \ - .baseSpeed = 96, \ - .baseSpAttack = 50, \ - .baseSpDefense = 105, \ - .types = { TYPE_GHOST, TYPE_FAIRY }, \ - .catchRate = 45, \ - .expYield = 167, \ - .evYield_SpDefense = 2, \ - .itemRare = ITEM_CHESTO_BERRY, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_DISGUISE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Mimikyu"), \ - .cryId = CRY_MIMIKYU, \ - .natDexNum = NATIONAL_DEX_MIMIKYU, \ - .categoryName = _("Disguise"), \ - .height = 2, \ - .weight = 7, \ - .pokemonScale = 682, \ - .pokemonOffset = 24, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Mimikyu, \ - LEARNSETS(Mimikyu), \ - .formSpeciesIdTable = sMimikyuFormSpeciesIdTable, \ - .formChangeTable = sMimikyuFormChangeTable - [SPECIES_MIMIKYU_DISGUISED] = { - MIMIKYU_MISC_INFO, - .description = COMPOUND_STRING( - "A lonely Pokémon, it hides its terrifying\n" - "appearance beneath an old rag so it can\n" - "get closer to people and other Pokémon.\n" - "Its actual appearance is unknown."), - FRONT_PIC(MimikyuDisguised, 48, 40), + .baseHP = 55, + .baseAttack = 90, + .baseDefense = 80, + .baseSpeed = 96, + .baseSpAttack = 50, + .baseSpDefense = 105, + .types = MON_TYPES(TYPE_GHOST, TYPE_FAIRY), + .catchRate = 45, + .expYield = 167, + .evYield_SpDefense = 2, + .itemRare = ITEM_CHESTO_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_DISGUISE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Mimikyu"), + .cryId = CRY_MIMIKYU, + .natDexNum = NATIONAL_DEX_MIMIKYU, + .categoryName = _("Disguise"), + .height = 2, + .weight = 7, + .description = gMimikyuDisguisedPokedexText, + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MimikyuDisguised, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_MimikyuDisguised, .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, - BACK_PIC(MimikyuDisguised, 56, 56), + .backPic = gMonBackPic_MimikyuDisguised, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MimikyuDisguised), - ICON(MimikyuDisguised, 1), + .palette = gMonPalette_MimikyuDisguised, + .shinyPalette = gMonShinyPalette_MimikyuDisguised, + .iconSprite = gMonIcon_MimikyuDisguised, + .iconPalIndex = 1, + FOOTPRINT(Mimikyu) + .levelUpLearnset = sMimikyuLevelUpLearnset, + .teachableLearnset = sMimikyuTeachableLearnset, + .formSpeciesIdTable = sMimikyuFormSpeciesIdTable, + .formChangeTable = sMimikyuFormChangeTable, }, [SPECIES_MIMIKYU_BUSTED] = { - MIMIKYU_MISC_INFO, - .description = COMPOUND_STRING( - "After going to all the effort of\n" - "disguising itself, its neck was\n" - "broken. Whatever is inside is probably\n" - "unharmed, but it's still feeling sad."), - FRONT_PIC(MimikyuBusted, 48, 40), + .baseHP = 55, + .baseAttack = 90, + .baseDefense = 80, + .baseSpeed = 96, + .baseSpAttack = 50, + .baseSpDefense = 105, + .types = MON_TYPES(TYPE_GHOST, TYPE_FAIRY), + .catchRate = 45, + .expYield = 167, + .evYield_SpDefense = 2, + .itemRare = ITEM_CHESTO_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_DISGUISE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Mimikyu"), + .cryId = CRY_MIMIKYU, + .natDexNum = NATIONAL_DEX_MIMIKYU, + .categoryName = _("Disguise"), + .height = 2, + .weight = 7, + .description = gMimikyuBustedPokedexText, + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MimikyuBusted, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_MimikyuBusted, .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, - BACK_PIC(MimikyuBusted, 64, 40), + .backPic = gMonBackPic_MimikyuBusted, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MimikyuBusted), - ICON(MimikyuBusted, 1), + .palette = gMonPalette_MimikyuBusted, + .shinyPalette = gMonShinyPalette_MimikyuBusted, + .iconSprite = gMonIcon_MimikyuBusted, + .iconPalIndex = 1, + FOOTPRINT(Mimikyu) + .levelUpLearnset = sMimikyuLevelUpLearnset, + .teachableLearnset = sMimikyuTeachableLearnset, + .formSpeciesIdTable = sMimikyuFormSpeciesIdTable, + .formChangeTable = sMimikyuFormChangeTable, + }, + + [SPECIES_MIMIKYU_TOTEM_DISGUISED] = + { + .baseHP = 55, + .baseAttack = 90, + .baseDefense = 80, + .baseSpeed = 96, + .baseSpAttack = 50, + .baseSpDefense = 105, + .types = MON_TYPES(TYPE_GHOST, TYPE_FAIRY), + .catchRate = 45, + .expYield = 167, + .evYield_SpDefense = 2, + .itemRare = ITEM_CHESTO_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_DISGUISE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Mimikyu"), + .cryId = CRY_MIMIKYU, + .natDexNum = NATIONAL_DEX_MIMIKYU, + .categoryName = _("Disguise"), + .height = 24, + .weight = 28, + .description = gMimikyuDisguisedPokedexText, + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MimikyuDisguised, + .frontPicSize = MON_COORDS_SIZE(48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_MimikyuDisguised, + .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_MimikyuDisguised, + .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_MimikyuDisguised, + .shinyPalette = gMonShinyPalette_MimikyuDisguised, + .iconSprite = gMonIcon_MimikyuDisguised, + .iconPalIndex = 1, + FOOTPRINT(Mimikyu) + .isTotem = TRUE, + .levelUpLearnset = sMimikyuLevelUpLearnset, + .teachableLearnset = sMimikyuTeachableLearnset, + .formSpeciesIdTable = sMimikyuFormSpeciesIdTable, + .formChangeTable = sMimikyuTotemFormChangeTable, + }, + + [SPECIES_MIMIKYU_TOTEM_BUSTED] = + { + .baseHP = 55, + .baseAttack = 90, + .baseDefense = 80, + .baseSpeed = 96, + .baseSpAttack = 50, + .baseSpDefense = 105, + .types = MON_TYPES(TYPE_GHOST, TYPE_FAIRY), + .catchRate = 45, + .expYield = 167, + .evYield_SpDefense = 2, + .itemRare = ITEM_CHESTO_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_DISGUISE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Mimikyu"), + .cryId = CRY_MIMIKYU, + .natDexNum = NATIONAL_DEX_MIMIKYU, + .categoryName = _("Disguise"), + .height = 24, + .weight = 28, + .description = gMimikyuBustedPokedexText, + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MimikyuBusted, + .frontPicSize = MON_COORDS_SIZE(48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_MimikyuBusted, + .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_MimikyuBusted, + .backPicSize = MON_COORDS_SIZE(64, 40), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_MimikyuBusted, + .shinyPalette = gMonShinyPalette_MimikyuBusted, + .iconSprite = gMonIcon_MimikyuBusted, + .iconPalIndex = 1, + FOOTPRINT(Mimikyu) + .isTotem = TRUE, + .levelUpLearnset = sMimikyuLevelUpLearnset, + .teachableLearnset = sMimikyuTeachableLearnset, + .formSpeciesIdTable = sMimikyuFormSpeciesIdTable, + .formChangeTable = sMimikyuTotemFormChangeTable, }, #endif //P_FAMILY_MIMIKYU @@ -3122,7 +4108,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 92, .baseSpAttack = 70, .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_WATER, TYPE_PSYCHIC), .catchRate = 80, .expYield = 166, .evYield_Attack = 2, @@ -3131,7 +4117,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_DAZZLING, ABILITY_STRONG_JAW, ABILITY_WONDER_SKIN }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Bruxish"), @@ -3149,17 +4135,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bruxish, 56, 40), + .frontPic = gMonFrontPic_Bruxish, + .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Bruxish, .frontAnimId = ANIM_RISING_WOBBLE, - BACK_PIC(Bruxish, 64, 48), + .backPic = gMonBackPic_Bruxish, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Bruxish), - ICON(Bruxish, 0), - .footprint = gMonFootprint_Bruxish, - LEARNSETS(Bruxish), + .palette = gMonPalette_Bruxish, + .shinyPalette = gMonShinyPalette_Bruxish, + .iconSprite = gMonIcon_Bruxish, + .iconPalIndex = 0, + FOOTPRINT(Bruxish) + .levelUpLearnset = sBruxishLevelUpLearnset, + .teachableLearnset = sBruxishTeachableLearnset, }, #endif //P_FAMILY_BRUXISH @@ -3172,7 +4163,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 36, .baseSpAttack = 135, .baseSpDefense = 91, - .types = { TYPE_NORMAL, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_NORMAL, TYPE_DRAGON), .catchRate = 70, .expYield = 170, .evYield_SpAttack = 2, @@ -3181,7 +4172,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_DRAGON), .abilities = { ABILITY_BERSERK, ABILITY_SAP_SIPPER, ABILITY_CLOUD_NINE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Drampa"), @@ -3199,17 +4190,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Drampa, 64, 64), + .frontPic = gMonFrontPic_Drampa, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Drampa, .frontAnimId = ANIM_V_SHAKE_TWICE, - BACK_PIC(Drampa, 64, 56), + .backPic = gMonBackPic_Drampa, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_SLIDE, - PALETTES(Drampa), - ICON(Drampa, 0), - .footprint = gMonFootprint_Drampa, - LEARNSETS(Drampa), + .palette = gMonPalette_Drampa, + .shinyPalette = gMonShinyPalette_Drampa, + .iconSprite = gMonIcon_Drampa, + .iconPalIndex = 0, + FOOTPRINT(Drampa) + .levelUpLearnset = sDrampaLevelUpLearnset, + .teachableLearnset = sDrampaTeachableLearnset, }, #endif //P_FAMILY_DRAMPA @@ -3222,7 +4218,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 40, .baseSpAttack = 86, .baseSpDefense = 90, - .types = { TYPE_GHOST, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GHOST, TYPE_GRASS), .catchRate = 25, .expYield = 181, .evYield_Attack = 2, @@ -3230,8 +4226,8 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_STEELWORKER, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_STEELWORKER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, .speciesName = _("Dhelmise"), @@ -3249,18 +4245,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 510, .trainerOffset = 11, - FRONT_PIC(Dhelmise, 48, 64), + .frontPic = gMonFrontPic_Dhelmise, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Dhelmise, .frontAnimId = ANIM_SWING_CONVEX, .enemyMonElevation = 2, - BACK_PIC(Dhelmise, 64, 64), + .backPic = gMonBackPic_Dhelmise, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dhelmise), - ICON(Dhelmise, 1), - .footprint = gMonFootprint_Dhelmise, - LEARNSETS(Dhelmise), + .palette = gMonPalette_Dhelmise, + .shinyPalette = gMonShinyPalette_Dhelmise, + .iconSprite = gMonIcon_Dhelmise, + .iconPalIndex = 1, + FOOTPRINT(Dhelmise) + .levelUpLearnset = sDhelmiseLevelUpLearnset, + .teachableLearnset = sDhelmiseTeachableLearnset, }, #endif //P_FAMILY_DHELMISE @@ -3273,7 +4274,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 45, .baseSpAttack = 45, .baseSpDefense = 45, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 45, .expYield = 60, .evYield_Defense = 1, @@ -3282,7 +4283,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_BULLETPROOF, ABILITY_SOUNDPROOF, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Jangmo-o"), @@ -3300,17 +4301,22 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(JangmoO, 36, 43), + .frontPic = gMonFrontPic_JangmoO, + .frontPicSize = MON_COORDS_SIZE(36, 43), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Jangmo_O, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(JangmoO, 42, 56), + .backPic = gMonBackPic_JangmoO, + .backPicSize = MON_COORDS_SIZE(42, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_GROW_STUTTER, - PALETTES(JangmoO), - ICON(JangmoO, 2), - .footprint = gMonFootprint_JangmoO, - LEARNSETS(JangmoO), + .palette = gMonPalette_JangmoO, + .shinyPalette = gMonShinyPalette_JangmoO, + .iconSprite = gMonIcon_JangmoO, + .iconPalIndex = 2, + FOOTPRINT(JangmoO) + .levelUpLearnset = sJangmoOLevelUpLearnset, + .teachableLearnset = sJangmoOTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_HAKAMO_O}), }, @@ -3322,7 +4328,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 65, .baseSpAttack = 65, .baseSpDefense = 70, - .types = { TYPE_DRAGON, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FIGHTING), .catchRate = 45, .expYield = 147, .evYield_Defense = 2, @@ -3331,7 +4337,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_BULLETPROOF, ABILITY_SOUNDPROOF, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Hakamo-o"), @@ -3349,18 +4355,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(HakamoO, 53, 61), + .frontPic = gMonFrontPic_HakamoO, + .frontPicSize = MON_COORDS_SIZE(53, 61), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Hakamo_O, .frontAnimId = ANIM_H_STRETCH, - BACK_PIC(HakamoO, 49, 56), + .backPic = gMonBackPic_HakamoO, + .backPicSize = MON_COORDS_SIZE(49, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_STRETCH, - PALETTES(HakamoO), - ICON(HakamoO, 2), - .footprint = gMonFootprint_HakamoO, - LEARNSETS(HakamoO), - .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_KOMMO_O}), + .palette = gMonPalette_HakamoO, + .shinyPalette = gMonShinyPalette_HakamoO, + .iconSprite = gMonIcon_HakamoO, + .iconPalIndex = 2, + FOOTPRINT(HakamoO) + .levelUpLearnset = sHakamoOLevelUpLearnset, + .teachableLearnset = sHakamoOTeachableLearnset, + .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_KOMMO_O}, + {EVO_NONE, 0, SPECIES_KOMMO_O_TOTEM}), }, [SPECIES_KOMMO_O] = @@ -3371,16 +4383,16 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 85, .baseSpAttack = 100, .baseSpDefense = 105, - .types = { TYPE_DRAGON, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FIGHTING), .catchRate = 45, - .expYield = 270, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_Defense = 3, .itemCommon = ITEM_RAZOR_CLAW, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), .abilities = { ABILITY_BULLETPROOF, ABILITY_SOUNDPROOF, ABILITY_OVERCOAT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Kommo-o"), @@ -3389,26 +4401,79 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .categoryName = _("Scaly"), .height = 16, .weight = 782, - .description = COMPOUND_STRING( - "Its rigid scales function as offense and\n" - "defense. In the past, its scales were\n" - "processed and used to make weapons\n" - "and other valuable commodities."), + .description = gKommoOPokedexText, .pokemonScale = 259, .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(KommoO, 63, 63), + .frontPic = gMonFrontPic_KommoO, + .frontPicSize = MON_COORDS_SIZE(63, 63), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Kommo_O, .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, - BACK_PIC(KommoO, 60, 60), + .backPic = gMonBackPic_KommoO, + .backPicSize = MON_COORDS_SIZE(60, 60), .backPicYOffset = 2, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - PALETTES(KommoO), - ICON(KommoO, 2), - .footprint = gMonFootprint_KommoO, - LEARNSETS(KommoO), + .palette = gMonPalette_KommoO, + .shinyPalette = gMonShinyPalette_KommoO, + .iconSprite = gMonIcon_KommoO, + .iconPalIndex = 2, + FOOTPRINT(KommoO) + .levelUpLearnset = sKommoOLevelUpLearnset, + .teachableLearnset = sKommoOTeachableLearnset, + .formSpeciesIdTable = sKommoOFormSpeciesIdTable, + }, + + [SPECIES_KOMMO_O_TOTEM] = + { + .baseHP = 75, + .baseAttack = 110, + .baseDefense = 125, + .baseSpeed = 85, + .baseSpAttack = 100, + .baseSpDefense = 105, + .types = MON_TYPES(TYPE_DRAGON, TYPE_FIGHTING), + .catchRate = 45, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_Defense = 3, + .itemCommon = ITEM_RAZOR_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON), + .abilities = { ABILITY_OVERCOAT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Kommo-o"), + .cryId = CRY_KOMMO_O, + .natDexNum = NATIONAL_DEX_KOMMO_O, + .categoryName = _("Scaly"), + .height = 24, + .weight = 2075, + .description = gKommoOPokedexText, + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_KommoO, + .frontPicSize = MON_COORDS_SIZE(63, 63), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Kommo_O, + .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, + .backPic = gMonBackPic_KommoO, + .backPicSize = MON_COORDS_SIZE(60, 60), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + .palette = gMonPalette_KommoO, + .shinyPalette = gMonShinyPalette_KommoO, + .iconSprite = gMonIcon_KommoO, + .iconPalIndex = 2, + FOOTPRINT(KommoO) + .isTotem = TRUE, + .levelUpLearnset = sKommoOLevelUpLearnset, + .teachableLearnset = sKommoOTeachableLearnset, + .formSpeciesIdTable = sKommoOFormSpeciesIdTable, }, #endif //P_FAMILY_JANGMO_O @@ -3421,18 +4486,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 130, .baseSpAttack = 95, .baseSpDefense = 75, - .types = { TYPE_ELECTRIC, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FAIRY), .catchRate = 3, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_Speed = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_ELECTRIC_SURGE, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_YELLOW, - .isLegendary = TRUE, .speciesName = _("Tapu Koko"), .cryId = CRY_TAPU_KOKO, .natDexNum = NATIONAL_DEX_TAPU_KOKO, @@ -3448,18 +4512,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(TapuKoko, 64, 64), + .frontPic = gMonFrontPic_TapuKoko, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_TapuKoko, .frontAnimId = ANIM_TRIANGLE_DOWN_TWICE, .enemyMonElevation = 9, - BACK_PIC(TapuKoko, 64, 64), + .backPic = gMonBackPic_TapuKoko, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(TapuKoko), - ICON(TapuKoko, 0), - .footprint = gMonFootprint_Tapu_Koko, - LEARNSETS(TapuKoko), + .palette = gMonPalette_TapuKoko, + .shinyPalette = gMonShinyPalette_TapuKoko, + .iconSprite = gMonIcon_TapuKoko, + .iconPalIndex = 0, + FOOTPRINT(Tapu_Koko) + .isLegendary = TRUE, + .levelUpLearnset = sTapuKokoLevelUpLearnset, + .teachableLearnset = sTapuKokoTeachableLearnset, }, #endif //P_FAMILY_TAPU_KOKO @@ -3472,18 +4542,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 95, .baseSpAttack = 130, .baseSpDefense = 115, - .types = { TYPE_PSYCHIC, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FAIRY), .catchRate = 3, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_PSYCHIC_SURGE, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_PINK, - .isLegendary = TRUE, .speciesName = _("Tapu Lele"), .cryId = CRY_TAPU_LELE, .natDexNum = NATIONAL_DEX_TAPU_LELE, @@ -3499,18 +4568,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(TapuLele, 48, 56), + .frontPic = gMonFrontPic_TapuLele, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_TapuLele, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .enemyMonElevation = 8, - BACK_PIC(TapuLele, 56, 56), + .backPic = gMonBackPic_TapuLele, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(TapuLele), - ICON(TapuLele, 0), - .footprint = gMonFootprint_Tapu_Lele, - LEARNSETS(TapuLele), + .palette = gMonPalette_TapuLele, + .shinyPalette = gMonShinyPalette_TapuLele, + .iconSprite = gMonIcon_TapuLele, + .iconPalIndex = 0, + FOOTPRINT(Tapu_Lele) + .isLegendary = TRUE, + .levelUpLearnset = sTapuLeleLevelUpLearnset, + .teachableLearnset = sTapuLeleTeachableLearnset, }, #endif //P_FAMILY_TAPU_LELE @@ -3523,18 +4598,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 75, .baseSpAttack = 85, .baseSpDefense = 95, - .types = { TYPE_GRASS, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FAIRY), .catchRate = 3, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_GRASSY_SURGE, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_RED, - .isLegendary = TRUE, .speciesName = _("Tapu Bulu"), .cryId = CRY_TAPU_BULU, .natDexNum = NATIONAL_DEX_TAPU_BULU, @@ -3550,18 +4624,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - FRONT_PIC(TapuBulu, 56, 64), + .frontPic = gMonFrontPic_TapuBulu, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_TapuBulu, .frontAnimId = ANIM_V_SHAKE_TWICE, .enemyMonElevation = 5, - BACK_PIC(TapuBulu, 64, 64), + .backPic = gMonBackPic_TapuBulu, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(TapuBulu), - ICON(TapuBulu, 2), - .footprint = gMonFootprint_Tapu_Bulu, - LEARNSETS(TapuBulu), + .palette = gMonPalette_TapuBulu, + .shinyPalette = gMonShinyPalette_TapuBulu, + .iconSprite = gMonIcon_TapuBulu, + .iconPalIndex = 2, + FOOTPRINT(Tapu_Bulu) + .isLegendary = TRUE, + .levelUpLearnset = sTapuBuluLevelUpLearnset, + .teachableLearnset = sTapuBuluTeachableLearnset, }, #endif //P_FAMILY_TAPU_BULU @@ -3574,18 +4654,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 85, .baseSpAttack = 95, .baseSpDefense = 130, - .types = { TYPE_WATER, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_WATER, TYPE_FAIRY), .catchRate = 3, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_SpDefense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_MISTY_SURGE, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_PURPLE, - .isLegendary = TRUE, .speciesName = _("Tapu Fini"), .cryId = CRY_TAPU_FINI, .natDexNum = NATIONAL_DEX_TAPU_FINI, @@ -3601,19 +4680,25 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(TapuFini, 56, 64), + .frontPic = gMonFrontPic_TapuFini, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_TapuFini, .frontAnimId = ANIM_SHAKE_GLOW_BLUE_SLOW, .frontAnimDelay = 5, .enemyMonElevation = 6, - BACK_PIC(TapuFini, 64, 56), + .backPic = gMonBackPic_TapuFini, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(TapuFini), - ICON(TapuFini, 0), - .footprint = gMonFootprint_Tapu_Fini, - LEARNSETS(TapuFini), + .palette = gMonPalette_TapuFini, + .shinyPalette = gMonShinyPalette_TapuFini, + .iconSprite = gMonIcon_TapuFini, + .iconPalIndex = 0, + FOOTPRINT(Tapu_Fini) + .isLegendary = TRUE, + .levelUpLearnset = sTapuFiniLevelUpLearnset, + .teachableLearnset = sTapuFiniTeachableLearnset, }, #endif //P_FAMILY_TAPU_FINI @@ -3626,7 +4711,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 37, .baseSpAttack = 29, .baseSpDefense = 31, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 45, .expYield = 40, .evYield_HP = 1, @@ -3634,10 +4719,9 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_UNAWARE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_UNAWARE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isLegendary = TRUE, .speciesName = _("Cosmog"), .cryId = CRY_COSMOG, .natDexNum = NATIONAL_DEX_COSMOG, @@ -3653,18 +4737,25 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cosmog, 56, 48), + .frontPic = gMonFrontPic_Cosmog, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Cosmog, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .enemyMonElevation = 7, - BACK_PIC(Cosmog, 64, 48), + .backPic = gMonBackPic_Cosmog, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cosmog), - ICON(Cosmog, 2), - .footprint = gMonFootprint_Cosmog, - LEARNSETS(Cosmog), + .palette = gMonPalette_Cosmog, + .shinyPalette = gMonShinyPalette_Cosmog, + .iconSprite = gMonIcon_Cosmog, + .iconPalIndex = 2, + FOOTPRINT(Cosmog) + .isLegendary = TRUE, + .tmIlliterate = TRUE, + .levelUpLearnset = sCosmogLevelUpLearnset, + .teachableLearnset = sCosmogTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 43, SPECIES_COSMOEM}), }, @@ -3676,7 +4767,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 37, .baseSpAttack = 29, .baseSpDefense = 131, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 45, .expYield = 140, .evYield_Defense = 1, @@ -3685,10 +4776,9 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_STURDY, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isLegendary = TRUE, .speciesName = _("Cosmoem"), .cryId = CRY_COSMOEM, .natDexNum = NATIONAL_DEX_COSMOEM, @@ -3704,18 +4794,25 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cosmoem, 48, 48), + .frontPic = gMonFrontPic_Cosmoem, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Cosmoem, .frontAnimId = ANIM_RISING_WOBBLE, .enemyMonElevation = 3, - BACK_PIC(Cosmoem, 64, 40), + .backPic = gMonBackPic_Cosmoem, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 17, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cosmoem), - ICON(Cosmoem, 0), - .footprint = gMonFootprint_Cosmoem, - LEARNSETS(Cosmoem), + .palette = gMonPalette_Cosmoem, + .shinyPalette = gMonShinyPalette_Cosmoem, + .iconSprite = gMonIcon_Cosmoem, + .iconPalIndex = 0, + FOOTPRINT(Cosmoem) + .isLegendary = TRUE, + .tmIlliterate = TRUE, + .levelUpLearnset = sCosmoemLevelUpLearnset, + .teachableLearnset = sCosmoemTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_DAY, 53, SPECIES_SOLGALEO}, {EVO_LEVEL_NIGHT, 53, SPECIES_LUNALA}), }, @@ -3728,18 +4825,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 97, .baseSpAttack = 113, .baseSpDefense = 89, - .types = { TYPE_PSYCHIC, TYPE_STEEL }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_STEEL), .catchRate = 45, - .expYield = 306, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_FULL_METAL_BODY, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_FULL_METAL_BODY, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isLegendary = TRUE, .speciesName = _("Solgaleo"), .cryId = CRY_SOLGALEO, .natDexNum = NATIONAL_DEX_SOLGALEO, @@ -3755,17 +4851,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 405, .trainerOffset = 8, - FRONT_PIC(Solgaleo, 64, 64), + .frontPic = gMonFrontPic_Solgaleo, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Solgaleo, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Solgaleo, 64, 64), + .backPic = gMonBackPic_Solgaleo, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Solgaleo), - ICON(Solgaleo, 0), - .footprint = gMonFootprint_Solgaleo, - LEARNSETS(Solgaleo), + .palette = gMonPalette_Solgaleo, + .shinyPalette = gMonShinyPalette_Solgaleo, + .iconSprite = gMonIcon_Solgaleo, + .iconPalIndex = 0, + FOOTPRINT(Solgaleo) + .isLegendary = TRUE, + .levelUpLearnset = sSolgaleoLevelUpLearnset, + .teachableLearnset = sSolgaleoTeachableLearnset, }, [SPECIES_LUNALA] = @@ -3776,18 +4878,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 97, .baseSpAttack = 137, .baseSpDefense = 107, - .types = { TYPE_PSYCHIC, TYPE_GHOST }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_GHOST), .catchRate = 45, - .expYield = 306, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_SHADOW_SHIELD, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SHADOW_SHIELD, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, - .isLegendary = TRUE, .speciesName = _("Lunala"), .cryId = CRY_LUNALA, .natDexNum = NATIONAL_DEX_LUNALA, @@ -3803,18 +4904,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 411, .trainerOffset = 5, - FRONT_PIC(Lunala, 64, 64), + .frontPic = gMonFrontPic_Lunala, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Lunala, .frontAnimId = ANIM_CIRCULAR_VIBRATE, .enemyMonElevation = 6, - BACK_PIC(Lunala, 64, 64), + .backPic = gMonBackPic_Lunala, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Lunala), - ICON(Lunala, 2), - .footprint = gMonFootprint_Lunala, - LEARNSETS(Lunala), + .palette = gMonPalette_Lunala, + .shinyPalette = gMonShinyPalette_Lunala, + .iconSprite = gMonIcon_Lunala, + .iconPalIndex = 2, + FOOTPRINT(Lunala) + .isLegendary = TRUE, + .levelUpLearnset = sLunalaLevelUpLearnset, + .teachableLearnset = sLunalaTeachableLearnset, }, #endif //P_FAMILY_COSMOG @@ -3827,18 +4934,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 103, .baseSpAttack = 127, .baseSpDefense = 131, - .types = { TYPE_ROCK, TYPE_POISON }, + .types = MON_TYPES(TYPE_ROCK, TYPE_POISON), .catchRate = 45, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_SpDefense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isUltraBeast = TRUE, .speciesName = _("Nihilego"), .cryId = CRY_NIHILEGO, .natDexNum = NATIONAL_DEX_NIHILEGO, @@ -3854,18 +4960,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nihilego, 48, 64), + .frontPic = gMonFrontPic_Nihilego, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Nihilego, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .enemyMonElevation = 6, - BACK_PIC(Nihilego, 64, 48), + .backPic = gMonBackPic_Nihilego, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Nihilego), - ICON(Nihilego, 0), - .footprint = gMonFootprint_Nihilego, - LEARNSETS(Nihilego), + .palette = gMonPalette_Nihilego, + .shinyPalette = gMonShinyPalette_Nihilego, + .iconSprite = gMonIcon_Nihilego, + .iconPalIndex = 0, + FOOTPRINT(Nihilego) + .isUltraBeast = TRUE, + .levelUpLearnset = sNihilegoLevelUpLearnset, + .teachableLearnset = sNihilegoTeachableLearnset, }, #endif //P_FAMILY_NIHILEGO @@ -3878,19 +4990,18 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 79, .baseSpAttack = 53, .baseSpDefense = 53, - .types = { TYPE_BUG, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FIGHTING), .catchRate = 45, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_Attack = 1, .evYield_Defense = 2, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, - .isUltraBeast = TRUE, .speciesName = _("Buzzwole"), .cryId = CRY_BUZZWOLE, .natDexNum = NATIONAL_DEX_BUZZWOLE, @@ -3906,17 +5017,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 3, .trainerScale = 369, .trainerOffset = 7, - FRONT_PIC(Buzzwole, 64, 64), + .frontPic = gMonFrontPic_Buzzwole, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Buzzwole, .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, - BACK_PIC(Buzzwole, 64, 56), + .backPic = gMonBackPic_Buzzwole, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Buzzwole), - ICON(Buzzwole, 0), - .footprint = gMonFootprint_Buzzwole, - LEARNSETS(Buzzwole), + .palette = gMonPalette_Buzzwole, + .shinyPalette = gMonShinyPalette_Buzzwole, + .iconSprite = gMonIcon_Buzzwole, + .iconPalIndex = 0, + FOOTPRINT(Buzzwole) + .isUltraBeast = TRUE, + .levelUpLearnset = sBuzzwoleLevelUpLearnset, + .teachableLearnset = sBuzzwoleTeachableLearnset, }, #endif //P_FAMILY_BUZZWOLE @@ -3929,18 +5046,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 151, .baseSpAttack = 137, .baseSpDefense = 37, - .types = { TYPE_BUG, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FIGHTING), .catchRate = 45, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_Speed = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isUltraBeast = TRUE, .speciesName = _("Pheromosa"), .cryId = CRY_PHEROMOSA, .natDexNum = NATIONAL_DEX_PHEROMOSA, @@ -3956,17 +5072,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Pheromosa, 56, 64), + .frontPic = gMonFrontPic_Pheromosa, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Pheromosa, .frontAnimId = ANIM_SHRINK_GROW, - BACK_PIC(Pheromosa, 64, 64), + .backPic = gMonBackPic_Pheromosa, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Pheromosa), - ICON(Pheromosa, 2), - .footprint = gMonFootprint_Pheromosa, - LEARNSETS(Pheromosa), + .palette = gMonPalette_Pheromosa, + .shinyPalette = gMonShinyPalette_Pheromosa, + .iconSprite = gMonIcon_Pheromosa, + .iconPalIndex = 2, + FOOTPRINT(Pheromosa) + .isUltraBeast = TRUE, + .levelUpLearnset = sPheromosaLevelUpLearnset, + .teachableLearnset = sPheromosaTeachableLearnset, }, #endif //P_FAMILY_PHEROMOSA @@ -3979,18 +5101,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 83, .baseSpAttack = 173, .baseSpDefense = 71, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 45, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, - .isUltraBeast = TRUE, .speciesName = _("Xurkitree"), .cryId = CRY_XURKITREE, .natDexNum = NATIONAL_DEX_XURKITREE, @@ -4006,17 +5127,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 610, .trainerOffset = 17, - FRONT_PIC(Xurkitree, 64, 64), + .frontPic = gMonFrontPic_Xurkitree, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Xurkitree, .frontAnimId = ANIM_SHAKE_FLASH_YELLOW_FAST, - BACK_PIC(Xurkitree, 64, 64), + .backPic = gMonBackPic_Xurkitree, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Xurkitree), - ICON(Xurkitree, 0), - .footprint = gMonFootprint_Xurkitree, - LEARNSETS(Xurkitree), + .palette = gMonPalette_Xurkitree, + .shinyPalette = gMonShinyPalette_Xurkitree, + .iconSprite = gMonIcon_Xurkitree, + .iconPalIndex = 0, + FOOTPRINT(Xurkitree) + .isUltraBeast = TRUE, + .levelUpLearnset = sXurkitreeLevelUpLearnset, + .teachableLearnset = sXurkitreeTeachableLearnset, }, #endif //P_FAMILY_XURKITREE @@ -4029,9 +5156,9 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 61, .baseSpAttack = 107, .baseSpDefense = 101, - .types = { TYPE_STEEL, TYPE_FLYING }, + .types = MON_TYPES(TYPE_STEEL, TYPE_FLYING), .catchRate = 45, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_Attack = 1, .evYield_Defense = 1, .evYield_SpAttack = 1, @@ -4039,10 +5166,9 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, - .isUltraBeast = TRUE, .speciesName = _("Celesteela"), .cryId = CRY_CELESTEELA, .natDexNum = NATIONAL_DEX_CELESTEELA, @@ -4058,17 +5184,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 516, .trainerOffset = 13, - FRONT_PIC(Celesteela, 64, 64), + .frontPic = gMonFrontPic_Celesteela, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Celesteela, .frontAnimId = ANIM_GROW_STUTTER_SLOW, - BACK_PIC(Celesteela, 64, 64), + .backPic = gMonBackPic_Celesteela, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Celesteela), - ICON(Celesteela, 0), - .footprint = gMonFootprint_Celesteela, - LEARNSETS(Celesteela), + .palette = gMonPalette_Celesteela, + .shinyPalette = gMonShinyPalette_Celesteela, + .iconSprite = gMonIcon_Celesteela, + .iconPalIndex = 0, + FOOTPRINT(Celesteela) + .isUltraBeast = TRUE, + .levelUpLearnset = sCelesteelaLevelUpLearnset, + .teachableLearnset = sCelesteelaTeachableLearnset, }, #endif //P_FAMILY_CELESTEELA @@ -4081,18 +5213,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 109, .baseSpAttack = 59, .baseSpDefense = 31, - .types = { TYPE_GRASS, TYPE_STEEL }, + .types = MON_TYPES(TYPE_GRASS, TYPE_STEEL), .catchRate = 45, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isUltraBeast = TRUE, .speciesName = _("Kartana"), .cryId = CRY_KARTANA, .natDexNum = NATIONAL_DEX_KARTANA, @@ -4108,18 +5239,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kartana, 64, 64), + .frontPic = gMonFrontPic_Kartana, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Kartana, .frontAnimId = ANIM_H_VIBRATE, .enemyMonElevation = 3, - BACK_PIC(Kartana, 64, 48), + .backPic = gMonBackPic_Kartana, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Kartana), - ICON(Kartana, 0), - .footprint = gMonFootprint_Kartana, - LEARNSETS(Kartana), + .palette = gMonPalette_Kartana, + .shinyPalette = gMonShinyPalette_Kartana, + .iconSprite = gMonIcon_Kartana, + .iconPalIndex = 0, + FOOTPRINT(Kartana) + .isUltraBeast = TRUE, + .levelUpLearnset = sKartanaLevelUpLearnset, + .teachableLearnset = sKartanaTeachableLearnset, }, #endif //P_FAMILY_KARTANA @@ -4132,18 +5269,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 43, .baseSpAttack = 97, .baseSpDefense = 53, - .types = { TYPE_DARK, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DARK, TYPE_DRAGON), .catchRate = 45, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_HP = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, - .isUltraBeast = TRUE, .speciesName = _("Guzzlord"), .cryId = CRY_GUZZLORD, .natDexNum = NATIONAL_DEX_GUZZLORD, @@ -4159,57 +5295,52 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 721, .trainerOffset = 19, - FRONT_PIC(Guzzlord, 64, 64), + .frontPic = gMonFrontPic_Guzzlord, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Guzzlord, .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, - BACK_PIC(Guzzlord, 64, 56), + .backPic = gMonBackPic_Guzzlord, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Guzzlord), - ICON(Guzzlord, 0), - .footprint = gMonFootprint_Guzzlord, - LEARNSETS(Guzzlord), + .palette = gMonPalette_Guzzlord, + .shinyPalette = gMonShinyPalette_Guzzlord, + .iconSprite = gMonIcon_Guzzlord, + .iconPalIndex = 0, + FOOTPRINT(Guzzlord) + .isUltraBeast = TRUE, + .levelUpLearnset = sGuzzlordLevelUpLearnset, + .teachableLearnset = sGuzzlordTeachableLearnset, }, #endif //P_FAMILY_GUZZLORD #if P_FAMILY_NECROZMA -#define NECROZMA_MISC_INFO \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .noFlip = TRUE, \ - .speciesName = _("Necrozma"), \ - .natDexNum = NATIONAL_DEX_NECROZMA, \ - .categoryName = _("Prism"), \ - .pokemonScale = 256, \ - .pokemonOffset = 3, \ - .trainerScale = 369, \ - .trainerOffset = 7, \ - .footprint = gMonFootprint_Necrozma, \ - LEARNSETS(Necrozma), \ - .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, \ - .isLegendary = TRUE - [SPECIES_NECROZMA] = { - NECROZMA_MISC_INFO, .baseHP = 97, .baseAttack = 107, .baseDefense = 101, .baseSpeed = 79, .baseSpAttack = 127, .baseSpDefense = 89, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 255, - .expYield = 270, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_Attack = 1, .evYield_SpAttack = 2, - .abilities = { ABILITY_PRISM_ARMOR, ABILITY_NONE }, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRISM_ARMOR, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, + .noFlip = TRUE, + .speciesName = _("Necrozma"), .cryId = CRY_NECROZMA, + .natDexNum = NATIONAL_DEX_NECROZMA, + .categoryName = _("Prism"), .height = 24, .weight = 2300, .description = COMPOUND_STRING( @@ -4217,35 +5348,56 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = "life-form, apparently asleep underground,\n" "is thought to have come from another\n" "world in ancient times."), - FRONT_PIC(Necrozma, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 369, + .trainerOffset = 7, + .frontPic = gMonFrontPic_Necrozma, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Necrozma, .frontAnimId = ANIM_GROW_VIBRATE, .enemyMonElevation = 6, - BACK_PIC(Necrozma, 64, 64), + .backPic = gMonBackPic_Necrozma, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Necrozma), - ICON(Necrozma, 0), + .palette = gMonPalette_Necrozma, + .shinyPalette = gMonShinyPalette_Necrozma, + .iconSprite = gMonIcon_Necrozma, + .iconPalIndex = 0, + FOOTPRINT(Necrozma) + .isLegendary = TRUE, + .levelUpLearnset = sNecrozmaLevelUpLearnset, + .teachableLearnset = sNecrozmaTeachableLearnset, + .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, }, #if P_FUSION_FORMS [SPECIES_NECROZMA_DUSK_MANE] = { - NECROZMA_MISC_INFO, .baseHP = 97, .baseAttack = 157, .baseDefense = 127, .baseSpeed = 77, .baseSpAttack = 113, .baseSpDefense = 109, - .types = { TYPE_PSYCHIC, TYPE_STEEL }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_STEEL), .catchRate = 255, - .expYield = 306, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, .evYield_Attack = 3, - .abilities = { ABILITY_PRISM_ARMOR, ABILITY_NONE }, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRISM_ARMOR, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, + .noFlip = TRUE, + .speciesName = _("Necrozma"), .cryId = CRY_NECROZMA_DUSK_MANE, + .natDexNum = NATIONAL_DEX_NECROZMA, + .categoryName = _("Prism"), .height = 38, .weight = 4600, .description = COMPOUND_STRING( @@ -4253,35 +5405,56 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = "devouring the light of Solgaleo. It pounces\n" "on foes and then slashes them with\n" "the claws on its four limbs and back."), - FRONT_PIC(NecrozmaDuskMane, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 369, + .trainerOffset = 7, + .frontPic = gMonFrontPic_NecrozmaDuskMane, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Necrozma, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(NecrozmaDuskMane, 64, 64), + .backPic = gMonBackPic_NecrozmaDuskMane, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(NecrozmaDuskMane), - ICON(NecrozmaDuskMane, 0), + .palette = gMonPalette_NecrozmaDuskMane, + .shinyPalette = gMonShinyPalette_NecrozmaDuskMane, + .iconSprite = gMonIcon_NecrozmaDuskMane, + .iconPalIndex = 0, + FOOTPRINT(Necrozma) + .isLegendary = TRUE, .cannotBeTraded = TRUE, + .levelUpLearnset = sNecrozmaLevelUpLearnset, + .teachableLearnset = sNecrozmaTeachableLearnset, + .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, .formChangeTable = sNecrozmaDuskManeFormChangeTable, }, [SPECIES_NECROZMA_DAWN_WINGS] = { - NECROZMA_MISC_INFO, .baseHP = 97, .baseAttack = 113, .baseDefense = 109, .baseSpeed = 77, .baseSpAttack = 157, .baseSpDefense = 127, - .types = { TYPE_PSYCHIC, TYPE_GHOST }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_GHOST), .catchRate = 255, - .expYield = 306, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 340 : 306, .evYield_SpAttack = 3, - .abilities = { ABILITY_PRISM_ARMOR, ABILITY_NONE }, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRISM_ARMOR, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + .speciesName = _("Necrozma"), .cryId = CRY_NECROZMA_DAWN_WINGS, + .natDexNum = NATIONAL_DEX_NECROZMA, + .categoryName = _("Prism"), .height = 42, .weight = 3500, .description = COMPOUND_STRING( @@ -4289,39 +5462,60 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = "devouring the light of Lunala. It grasps\n" "foes in its giant claws and rips them\n" "apart with brute force."), - FRONT_PIC(NecrozmaDawnWings, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 369, + .trainerOffset = 7, + .frontPic = gMonFrontPic_NecrozmaDawnWings, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Necrozma, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 6, - BACK_PIC(NecrozmaDawnWings, 64, 64), + .backPic = gMonBackPic_NecrozmaDawnWings, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(NecrozmaDawnWings), - ICON(NecrozmaDawnWings, 0), + .palette = gMonPalette_NecrozmaDawnWings, + .shinyPalette = gMonShinyPalette_NecrozmaDawnWings, + .iconSprite = gMonIcon_NecrozmaDawnWings, + .iconPalIndex = 0, + FOOTPRINT(Necrozma) + .isLegendary = TRUE, .cannotBeTraded = TRUE, + .levelUpLearnset = sNecrozmaLevelUpLearnset, + .teachableLearnset = sNecrozmaTeachableLearnset, + .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, .formChangeTable = sNecrozmaDawnWingsFormChangeTable, }, #if P_ULTRA_BURST_FORMS [SPECIES_NECROZMA_ULTRA] = { - NECROZMA_MISC_INFO, .baseHP = 97, .baseAttack = 167, .baseDefense = 97, .baseSpeed = 129, .baseSpAttack = 167, .baseSpDefense = 97, - .types = { TYPE_PSYCHIC, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_DRAGON), .catchRate = 255, - .expYield = 339, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 377 : 339, .evYield_Attack = 1, .evYield_Speed = 1, .evYield_SpAttack = 1, - .abilities = { ABILITY_NEUROFORCE, ABILITY_NONE }, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_NEUROFORCE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, + .noFlip = TRUE, + .speciesName = _("Necrozma"), .cryId = CRY_NECROZMA_ULTRA, + .natDexNum = NATIONAL_DEX_NECROZMA, + .categoryName = _("Prism"), .height = 75, .weight = 2300, .description = COMPOUND_STRING( @@ -4329,84 +5523,142 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = "its body affects living things and\n" "nature, impacting them in various\n" "ways."), - FRONT_PIC(NecrozmaUltra, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 369, + .trainerOffset = 7, + .frontPic = gMonFrontPic_NecrozmaUltra, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Necrozma, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(NecrozmaUltra, 64, 64), + .backPic = gMonBackPic_NecrozmaUltra, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(NecrozmaUltra), - ICON(NecrozmaUltra, 2), - .cannotBeTraded = TRUE, + .palette = gMonPalette_NecrozmaUltra, + .shinyPalette = gMonShinyPalette_NecrozmaUltra, + .iconSprite = gMonIcon_NecrozmaUltra, + .iconPalIndex = 2, + FOOTPRINT(Necrozma) + .isLegendary = TRUE, .isUltraBurst = TRUE, + .cannotBeTraded = TRUE, + .levelUpLearnset = sNecrozmaLevelUpLearnset, + .teachableLearnset = sNecrozmaTeachableLearnset, + .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, }, #endif //P_ULTRA_BURST_FORMS #endif //P_FUSION_FORMS #endif //P_FAMILY_NECROZMA #if P_FAMILY_MAGEARNA -#define MAGEARNA_MISC_INFO(Form) \ - .baseHP = 80, \ - .baseAttack = 95, \ - .baseDefense = 115, \ - .baseSpeed = 65, \ - .baseSpAttack = 130, \ - .baseSpDefense = 115, \ - .types = { TYPE_STEEL, TYPE_FAIRY }, \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_SOUL_HEART, ABILITY_NONE }, \ - .speciesName = _("Magearna"), \ - .cryId = CRY_MAGEARNA, \ - .natDexNum = NATIONAL_DEX_MAGEARNA, \ - .categoryName = _("Artificial"), \ - .height = 10, \ - .weight = 805, \ - .pokemonScale = 305, \ - .pokemonOffset = 7, \ - .trainerScale = 257, \ - .trainerOffset = 0, \ - FRONT_PIC(Form, 56, 64), \ - .frontPicYOffset = 0, \ - .frontAnimFrames = sAnims_Magearna, \ - .frontAnimId = ANIM_H_SLIDE_SLOW, \ - BACK_PIC(Form, 64, 56), \ - .backPicYOffset = 4, \ - PALETTES(Form), \ - ICON(Form, 0), \ - .footprint = gMonFootprint_Magearna, \ - LEARNSETS(Magearna), \ - .formSpeciesIdTable = sMagearnaFormSpeciesIdTable, \ - .isMythical = TRUE - //.backAnimId = BACK_ANIM_NONE, - [SPECIES_MAGEARNA] = { - MAGEARNA_MISC_INFO(Magearna), + .baseHP = 80, + .baseAttack = 95, + .baseDefense = 115, + .baseSpeed = 65, + .baseSpAttack = 130, + .baseSpDefense = 115, + .types = MON_TYPES(TYPE_STEEL, TYPE_FAIRY), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SOUL_HEART, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Magearna"), + .cryId = CRY_MAGEARNA, + .natDexNum = NATIONAL_DEX_MAGEARNA, + .categoryName = _("Artificial"), + .height = 10, + .weight = 805, .description = COMPOUND_STRING( "This artificial Pokémon, constructed more\n" "than 500 years ago, can understand human\n" "speech but cannot itself speak. Its true\n" "self is its Soul-Heart, an artificial soul."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Magearna, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Magearna, + .frontAnimId = ANIM_H_SLIDE_SLOW, + .backPic = gMonBackPic_Magearna, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 4, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_Magearna, + .shinyPalette = gMonShinyPalette_Magearna, + .iconSprite = gMonIcon_Magearna, + .iconPalIndex = 0, + FOOTPRINT(Magearna) + .isMythical = TRUE, + .levelUpLearnset = sMagearnaLevelUpLearnset, + .teachableLearnset = sMagearnaTeachableLearnset, + .formSpeciesIdTable = sMagearnaFormSpeciesIdTable, }, [SPECIES_MAGEARNA_ORIGINAL_COLOR] = { - MAGEARNA_MISC_INFO(MagearnaOriginalColor), + .baseHP = 80, + .baseAttack = 95, + .baseDefense = 115, + .baseSpeed = 65, + .baseSpAttack = 130, + .baseSpDefense = 115, + .types = MON_TYPES(TYPE_STEEL, TYPE_FAIRY), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SOUL_HEART, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Magearna"), + .cryId = CRY_MAGEARNA, + .natDexNum = NATIONAL_DEX_MAGEARNA, + .categoryName = _("Artificial"), + .height = 10, + .weight = 805, .description = COMPOUND_STRING( "This is its form from almost 500\n" "years ago. Its body is nothing more\n" "than a container-its artificial heart\n" "is the actual life-form."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MagearnaOriginalColor, + .frontPicSize = MON_COORDS_SIZE(56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Magearna, + .frontAnimId = ANIM_H_SLIDE_SLOW, + .backPic = gMonBackPic_MagearnaOriginalColor, + .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicYOffset = 4, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_MagearnaOriginalColor, + .shinyPalette = gMonShinyPalette_MagearnaOriginalColor, + .iconSprite = gMonIcon_MagearnaOriginalColor, + .iconPalIndex = 0, + FOOTPRINT(Magearna) + .isMythical = TRUE, + .levelUpLearnset = sMagearnaLevelUpLearnset, + .teachableLearnset = sMagearnaTeachableLearnset, + .formSpeciesIdTable = sMagearnaFormSpeciesIdTable, }, #endif //P_FAMILY_MAGEARNA @@ -4419,17 +5671,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 125, .baseSpAttack = 90, .baseSpDefense = 90, - .types = { TYPE_FIGHTING, TYPE_GHOST }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_GHOST), .catchRate = 3, - .expYield = 270, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_Attack = 2, .evYield_Speed = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_TECHNICIAN, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TECHNICIAN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, .speciesName = _("Marshadow"), @@ -4447,18 +5699,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Marshadow, 32, 56), + .frontPic = gMonFrontPic_Marshadow, + .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Marshadow, .frontAnimId = ANIM_V_SHAKE, - BACK_PIC(Marshadow, 40, 56), + .backPic = gMonBackPic_Marshadow, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Marshadow), - ICON(Marshadow, 0), - .footprint = gMonFootprint_Marshadow, - LEARNSETS(Marshadow), + .palette = gMonPalette_Marshadow, + .shinyPalette = gMonShinyPalette_Marshadow, + .iconSprite = gMonIcon_Marshadow, + .iconPalIndex = 0, + FOOTPRINT(Marshadow) .isMythical = TRUE, + .levelUpLearnset = sMarshadowLevelUpLearnset, + .teachableLearnset = sMarshadowTeachableLearnset, }, #endif //P_FAMILY_MARSHADOW @@ -4471,18 +5728,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 73, .baseSpAttack = 73, .baseSpDefense = 67, - .types = { TYPE_POISON, TYPE_POISON }, + .types = MON_TYPES(TYPE_POISON), .catchRate = 45, - .expYield = 189, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 210 : 189, .evYield_Speed = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, - .isUltraBeast = TRUE, .speciesName = _("Poipole"), .cryId = CRY_POIPOLE, .natDexNum = NATIONAL_DEX_POIPOLE, @@ -4497,18 +5753,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Poipole, 40, 56), + .frontPic = gMonFrontPic_Poipole, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Poipole, .frontAnimId = ANIM_SHAKE_GLOW_PURPLE_SLOW, .enemyMonElevation = 9, - BACK_PIC(Poipole, 48, 56), + .backPic = gMonBackPic_Poipole, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Poipole), - ICON(Poipole, 0), - .footprint = gMonFootprint_Poipole, - LEARNSETS(Poipole), + .palette = gMonPalette_Poipole, + .shinyPalette = gMonShinyPalette_Poipole, + .iconSprite = gMonIcon_Poipole, + .iconPalIndex = 0, + FOOTPRINT(Poipole) + .isUltraBeast = TRUE, + .levelUpLearnset = sPoipoleLevelUpLearnset, + .teachableLearnset = sPoipoleTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_DRAGON_PULSE, SPECIES_NAGANADEL}), }, @@ -4520,18 +5782,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 121, .baseSpAttack = 127, .baseSpDefense = 73, - .types = { TYPE_POISON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_POISON, TYPE_DRAGON), .catchRate = 45, - .expYield = 243, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 270 : 243, .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, - .isUltraBeast = TRUE, .speciesName = _("Naganadel"), .cryId = CRY_NAGANADEL, .natDexNum = NATIONAL_DEX_NAGANADEL, @@ -4546,18 +5807,24 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 405, .trainerOffset = 8, - FRONT_PIC(Naganadel, 64, 64), + .frontPic = gMonFrontPic_Naganadel, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Naganadel, .frontAnimId = ANIM_TRIANGLE_DOWN_TWICE, .enemyMonElevation = 7, - BACK_PIC(Naganadel, 64, 56), + .backPic = gMonBackPic_Naganadel, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Naganadel), - ICON(Naganadel, 0), - .footprint = gMonFootprint_Naganadel, - LEARNSETS(Naganadel), + .palette = gMonPalette_Naganadel, + .shinyPalette = gMonShinyPalette_Naganadel, + .iconSprite = gMonIcon_Naganadel, + .iconPalIndex = 0, + FOOTPRINT(Naganadel) + .isUltraBeast = TRUE, + .levelUpLearnset = sNaganadelLevelUpLearnset, + .teachableLearnset = sNaganadelTeachableLearnset, }, #endif //P_FAMILY_POIPOLE @@ -4570,19 +5837,18 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 13, .baseSpAttack = 53, .baseSpDefense = 101, - .types = { TYPE_ROCK, TYPE_STEEL }, + .types = MON_TYPES(TYPE_ROCK, TYPE_STEEL), .catchRate = 30, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_Defense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, - .isUltraBeast = TRUE, .speciesName = _("Stakataka"), .cryId = CRY_STAKATAKA, .natDexNum = NATIONAL_DEX_STAKATAKA, @@ -4597,17 +5863,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 0, .trainerScale = 721, .trainerOffset = 19, - FRONT_PIC(Stakataka, 64, 64), + .frontPic = gMonFrontPic_Stakataka, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Stakataka, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Stakataka, 64, 48), + .backPic = gMonBackPic_Stakataka, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Stakataka), - ICON(Stakataka, 0), - .footprint = gMonFootprint_Stakataka, - LEARNSETS(Stakataka), + .palette = gMonPalette_Stakataka, + .shinyPalette = gMonShinyPalette_Stakataka, + .iconSprite = gMonIcon_Stakataka, + .iconPalIndex = 0, + FOOTPRINT(Stakataka) + .isUltraBeast = TRUE, + .levelUpLearnset = sStakatakaLevelUpLearnset, + .teachableLearnset = sStakatakaTeachableLearnset, }, #endif //P_FAMILY_STAKATAKA @@ -4620,19 +5892,18 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 107, .baseSpAttack = 151, .baseSpDefense = 79, - .types = { TYPE_FIRE, TYPE_GHOST }, + .types = MON_TYPES(TYPE_FIRE, TYPE_GHOST), .catchRate = 30, - .expYield = 257, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 285 : 257, .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .noFlip = TRUE, - .isUltraBeast = TRUE, .speciesName = _("Blacephaln"), .cryId = CRY_BLACEPHALON, .natDexNum = NATIONAL_DEX_BLACEPHALON, @@ -4647,17 +5918,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Blacephalon, 56, 64), + .frontPic = gMonFrontPic_Blacephalon, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Blacephalon, .frontAnimId = ANIM_SHAKE_GLOW_RED, - BACK_PIC(Blacephalon, 64, 48), + .backPic = gMonBackPic_Blacephalon, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Blacephalon), - ICON(Blacephalon, 0), - .footprint = gMonFootprint_Blacephalon, - LEARNSETS(Blacephalon), + .palette = gMonPalette_Blacephalon, + .shinyPalette = gMonShinyPalette_Blacephalon, + .iconSprite = gMonIcon_Blacephalon, + .iconPalIndex = 0, + FOOTPRINT(Blacephalon) + .isUltraBeast = TRUE, + .levelUpLearnset = sBlacephalonLevelUpLearnset, + .teachableLearnset = sBlacephalonTeachableLearnset, }, #endif //P_FAMILY_BLACEPHALON @@ -4670,18 +5947,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 143, .baseSpAttack = 102, .baseSpDefense = 80, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 3, - .expYield = 270, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, .evYield_Speed = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_VOLT_ABSORB, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_VOLT_ABSORB, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, - .isMythical = TRUE, .speciesName = _("Zeraora"), .cryId = CRY_ZERAORA, .natDexNum = NATIONAL_DEX_ZERAORA, @@ -4696,17 +5972,23 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Zeraora, 64, 56), + .frontPic = gMonFrontPic_Zeraora, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Zeraora, .frontAnimId = ANIM_V_STRETCH, - BACK_PIC(Zeraora, 64, 56), + .backPic = gMonBackPic_Zeraora, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Zeraora), - ICON(Zeraora, 0), - .footprint = gMonFootprint_Zeraora, - LEARNSETS(Zeraora), + .palette = gMonPalette_Zeraora, + .shinyPalette = gMonShinyPalette_Zeraora, + .iconSprite = gMonIcon_Zeraora, + .iconPalIndex = 0, + FOOTPRINT(Zeraora) + .isMythical = TRUE, + .levelUpLearnset = sZeraoraLevelUpLearnset, + .teachableLearnset = sZeraoraTeachableLearnset, }, #endif //P_FAMILY_ZERAORA @@ -4719,18 +6001,17 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .baseSpeed = 34, .baseSpAttack = 55, .baseSpDefense = 35, - .types = { TYPE_STEEL, TYPE_STEEL }, + .types = MON_TYPES(TYPE_STEEL), .catchRate = 3, - .expYield = 135, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 150 : 135, .evYield_Attack = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_MAGNET_PULL, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_MAGNET_PULL, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, - .isMythical = TRUE, .speciesName = _("Meltan"), .cryId = CRY_MELTAN, .natDexNum = NATIONAL_DEX_MELTAN, @@ -4745,76 +6026,103 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Meltan, 32, 48), + .frontPic = gMonFrontPic_Meltan, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Meltan, .frontAnimId = ANIM_GROW_STUTTER_SLOW, - BACK_PIC(Meltan, 40, 40), + .backPic = gMonBackPic_Meltan, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Meltan), - ICON(Meltan, 2), - .footprint = gMonFootprint_Meltan, - LEARNSETS(Meltan), + .palette = gMonPalette_Meltan, + .shinyPalette = gMonShinyPalette_Meltan, + .iconSprite = gMonIcon_Meltan, + .iconPalIndex = 2, + FOOTPRINT(Meltan) + .isMythical = TRUE, + .levelUpLearnset = sMeltanLevelUpLearnset, + .teachableLearnset = sMeltanTeachableLearnset, }, -#define MELMETAL_MISC_INFO \ - .baseHP = 135, \ - .baseAttack = 143, \ - .baseDefense = 143, \ - .baseSpeed = 34, \ - .baseSpAttack = 80, \ - .baseSpDefense = 65, \ - .types = { TYPE_STEEL, TYPE_STEEL }, \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_Attack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_IRON_FIST, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Melmetal"), \ - .cryId = CRY_MELMETAL, \ - .natDexNum = NATIONAL_DEX_MELMETAL, \ - .categoryName = _("Hex Nut"), \ - .pokemonScale = 257, \ - .pokemonOffset = 10, \ - .trainerScale = 423, \ - .trainerOffset = 8, \ - .footprint = gMonFootprint_Melmetal, \ - LEARNSETS(Melmetal), \ - .formSpeciesIdTable = sMelmetalFormSpeciesIdTable, \ - .formChangeTable = sMelmetalFormChangeTable, \ - .isMythical = TRUE - [SPECIES_MELMETAL] = { - MELMETAL_MISC_INFO, + .baseHP = 135, + .baseAttack = 143, + .baseDefense = 143, + .baseSpeed = 34, + .baseSpAttack = 80, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_STEEL), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_IRON_FIST, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Melmetal"), + .cryId = CRY_MELMETAL, + .natDexNum = NATIONAL_DEX_MELMETAL, + .categoryName = _("Hex Nut"), .height = 25, .weight = 800, .description = COMPOUND_STRING( "Revered long ago for its capacity to create\n" "iron from nothing, for some reason it has\n" "come back to life after 3,000 years."), - FRONT_PIC(Melmetal, 64, 56), + .pokemonScale = 257, + .pokemonOffset = 10, + .trainerScale = 423, + .trainerOffset = 8, + .frontPic = gMonFrontPic_Melmetal, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Melmetal, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Melmetal, 64, 40), + .backPic = gMonBackPic_Melmetal, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Melmetal), - ICON(Melmetal, 2), + .palette = gMonPalette_Melmetal, + .shinyPalette = gMonShinyPalette_Melmetal, + .iconSprite = gMonIcon_Melmetal, + .iconPalIndex = 2, + FOOTPRINT(Melmetal) + .isMythical = TRUE, + .levelUpLearnset = sMelmetalLevelUpLearnset, + .teachableLearnset = sMelmetalTeachableLearnset, + .formSpeciesIdTable = sMelmetalFormSpeciesIdTable, + .formChangeTable = sMelmetalFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_MELMETAL_GIGANTAMAX] = { - MELMETAL_MISC_INFO, - .isGigantamax = TRUE, + .baseHP = 135, + .baseAttack = 143, + .baseDefense = 143, + .baseSpeed = 34, + .baseSpAttack = 80, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_STEEL), + .catchRate = 3, + .expYield = (P_UPDATED_EXP_YIELDS >= GEN_8) ? 300 : 270, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_IRON_FIST, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Melmetal"), + .cryId = CRY_MELMETAL, + .natDexNum = NATIONAL_DEX_MELMETAL, + .categoryName = _("Hex Nut"), .height = 250, .weight = 0, .description = COMPOUND_STRING( @@ -4822,15 +6130,30 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = "legends about a cyclopean giant. In fact,\n" "the giant was a Melmetal that was\n" "flooded with Gigantamax energy."), - FRONT_PIC(MelmetalGigantamax, 64, 64), + .pokemonScale = 257, + .pokemonOffset = 10, + .trainerScale = 423, + .trainerOffset = 8, + .frontPic = gMonFrontPic_MelmetalGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_MelmetalGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MelmetalGigantamax, 64, 64), + .backPic = gMonBackPic_MelmetalGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MelmetalGigantamax), - ICON(MelmetalGigantamax, 0), + .palette = gMonPalette_MelmetalGigantamax, + .shinyPalette = gMonShinyPalette_MelmetalGigantamax, + .iconSprite = gMonIcon_MelmetalGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Melmetal) + .isMythical = TRUE, + .isGigantamax = TRUE, + .levelUpLearnset = sMelmetalLevelUpLearnset, + .teachableLearnset = sMelmetalTeachableLearnset, + .formSpeciesIdTable = sMelmetalFormSpeciesIdTable, + .formChangeTable = sMelmetalFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MELTAN diff --git a/src/data/pokemon/species_info/gen_8.h b/src/data/pokemon/species_info/gen_8_families.h similarity index 51% rename from src/data/pokemon/species_info/gen_8.h rename to src/data/pokemon/species_info/gen_8_families.h index 47b578eae..bb9ff9c08 100644 --- a/src/data/pokemon/species_info/gen_8.h +++ b/src/data/pokemon/species_info/gen_8_families.h @@ -12,7 +12,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 65, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 62, .evYield_Attack = 1, @@ -20,7 +20,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Grookey"), @@ -38,17 +38,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Grookey, 40, 48), + .frontPic = gMonFrontPic_Grookey, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Grookey, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Grookey, 48, 56), + .backPic = gMonBackPic_Grookey, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Grookey), - ICON(Grookey, 1), - .footprint = gMonFootprint_Grookey, - LEARNSETS(Grookey), + .palette = gMonPalette_Grookey, + .shinyPalette = gMonShinyPalette_Grookey, + .iconSprite = gMonIcon_Grookey, + .iconPalIndex = 1, + FOOTPRINT(Grookey) + .levelUpLearnset = sGrookeyLevelUpLearnset, + .teachableLearnset = sGrookeyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_THWACKEY}), }, @@ -60,7 +65,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 80, .baseSpAttack = 55, .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 147, .evYield_Attack = 2, @@ -68,7 +73,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Thwackey"), @@ -85,95 +90,131 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Thwackey, 48, 56), + .frontPic = gMonFrontPic_Thwackey, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Thwackey, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Thwackey, 56, 56), + .backPic = gMonBackPic_Thwackey, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Thwackey), - ICON(Thwackey, 1), - .footprint = gMonFootprint_Thwackey, - LEARNSETS(Thwackey), + .palette = gMonPalette_Thwackey, + .shinyPalette = gMonShinyPalette_Thwackey, + .iconSprite = gMonIcon_Thwackey, + .iconPalIndex = 1, + FOOTPRINT(Thwackey) + .levelUpLearnset = sThwackeyLevelUpLearnset, + .teachableLearnset = sThwackeyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_RILLABOOM}), }, -#define RILLABOOM_MISC_INFO \ - .baseHP = 100, \ - .baseAttack = 125, \ - .baseDefense = 90, \ - .baseSpeed = 85, \ - .baseSpAttack = 60, \ - .baseSpDefense = 70, \ - .types = { TYPE_GRASS, TYPE_GRASS }, \ - .catchRate = 45, \ - .expYield = 265, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, \ - .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Rillaboom"), \ - .cryId = CRY_RILLABOOM, \ - .natDexNum = NATIONAL_DEX_RILLABOOM, \ - .categoryName = _("Drummer"), \ - .footprint = gMonFootprint_Rillaboom, \ - LEARNSETS(Rillaboom), \ - .formSpeciesIdTable = sRillaboomFormSpeciesIdTable, \ - .formChangeTable = sRillaboomFormChangeTable - [SPECIES_RILLABOOM] = { - RILLABOOM_MISC_INFO, + .baseHP = 100, + .baseAttack = 125, + .baseDefense = 90, + .baseSpeed = 85, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_GRASS), + .catchRate = 45, + .expYield = 265, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Rillaboom"), + .cryId = CRY_RILLABOOM, + .natDexNum = NATIONAL_DEX_RILLABOOM, + .categoryName = _("Drummer"), .height = 21, .weight = 900, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 365, - .trainerOffset = 7, .description = COMPOUND_STRING( "By drumming, it taps into the power of\n" "its special tree stump. The roots of the\n" "stump follow its direction in battle."), - FRONT_PIC(Rillaboom, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + .frontPic = gMonFrontPic_Rillaboom, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Rillaboom, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Rillaboom, 64, 56), + .backPic = gMonBackPic_Rillaboom, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Rillaboom), - ICON(Rillaboom, 1), + .palette = gMonPalette_Rillaboom, + .shinyPalette = gMonShinyPalette_Rillaboom, + .iconSprite = gMonIcon_Rillaboom, + .iconPalIndex = 1, + FOOTPRINT(Rillaboom) + .levelUpLearnset = sRillaboomLevelUpLearnset, + .teachableLearnset = sRillaboomTeachableLearnset, + .formSpeciesIdTable = sRillaboomFormSpeciesIdTable, + .formChangeTable = sRillaboomFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_RILLABOOM_GIGANTAMAX] = { - RILLABOOM_MISC_INFO, + .baseHP = 100, + .baseAttack = 125, + .baseDefense = 90, + .baseSpeed = 85, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_GRASS), + .catchRate = 45, + .expYield = 265, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Rillaboom"), + .cryId = CRY_RILLABOOM, + .natDexNum = NATIONAL_DEX_RILLABOOM, + .categoryName = _("Drummer"), .height = 280, .weight = 0, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 365, - .trainerOffset = 7, .description = COMPOUND_STRING( "Rillaboom has become one with its\n" "forest of drums and continues to lay\n" "down beats that shake all of Galar."), - FRONT_PIC(RillaboomGigantamax, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + .frontPic = gMonFrontPic_RillaboomGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_RillaboomGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(RillaboomGigantamax, 64, 64), + .backPic = gMonBackPic_RillaboomGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(RillaboomGigantamax), - ICON(RillaboomGigantamax, 1), + .palette = gMonPalette_RillaboomGigantamax, + .shinyPalette = gMonShinyPalette_RillaboomGigantamax, + .iconSprite = gMonIcon_RillaboomGigantamax, + .iconPalIndex = 1, + FOOTPRINT(Rillaboom) .isGigantamax = TRUE, + .levelUpLearnset = sRillaboomLevelUpLearnset, + .teachableLearnset = sRillaboomTeachableLearnset, + .formSpeciesIdTable = sRillaboomFormSpeciesIdTable, + .formChangeTable = sRillaboomFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_GROOKEY @@ -187,7 +228,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 69, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 62, .evYield_Speed = 1, @@ -195,7 +236,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Scorbunny"), @@ -213,17 +254,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Scorbunny, 40, 56), + .frontPic = gMonFrontPic_Scorbunny, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Scorbunny, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Scorbunny, 48, 56), + .backPic = gMonBackPic_Scorbunny, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Scorbunny), - ICON(Scorbunny, 0), - .footprint = gMonFootprint_Scorbunny, - LEARNSETS(Scorbunny), + .palette = gMonPalette_Scorbunny, + .shinyPalette = gMonShinyPalette_Scorbunny, + .iconSprite = gMonIcon_Scorbunny, + .iconPalIndex = 0, + FOOTPRINT(Scorbunny) + .levelUpLearnset = sScorbunnyLevelUpLearnset, + .teachableLearnset = sScorbunnyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_RABOOT}), }, @@ -235,7 +281,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 94, .baseSpAttack = 55, .baseSpDefense = 60, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 147, .evYield_Speed = 2, @@ -243,7 +289,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Raboot"), @@ -260,50 +306,48 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Raboot, 40, 56), + .frontPic = gMonFrontPic_Raboot, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Raboot, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Raboot, 56, 56), + .backPic = gMonBackPic_Raboot, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Raboot), - ICON(Raboot, 0), - .footprint = gMonFootprint_Raboot, - LEARNSETS(Raboot), + .palette = gMonPalette_Raboot, + .shinyPalette = gMonShinyPalette_Raboot, + .iconSprite = gMonIcon_Raboot, + .iconPalIndex = 0, + FOOTPRINT(Raboot) + .levelUpLearnset = sRabootLevelUpLearnset, + .teachableLearnset = sRabootTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_CINDERACE}), }, -#define CINDERACE_MISC_INFO \ - .baseHP = 80, \ - .baseAttack = 116, \ - .baseDefense = 75, \ - .baseSpeed = 119, \ - .baseSpAttack = 65, \ - .baseSpDefense = 75, \ - .types = { TYPE_FIRE, TYPE_FIRE }, \ - .catchRate = 45, \ - .expYield = 265, \ - .evYield_Speed = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, \ - .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Cinderace"), \ - .cryId = CRY_CINDERACE, \ - .natDexNum = NATIONAL_DEX_CINDERACE, \ - .categoryName = _("Striker"), \ - .footprint = gMonFootprint_Cinderace, \ - LEARNSETS(Cinderace), \ - .formSpeciesIdTable = sCinderaceFormSpeciesIdTable, \ - .formChangeTable = sCinderaceFormChangeTable - [SPECIES_CINDERACE] = { - CINDERACE_MISC_INFO, + .baseHP = 80, + .baseAttack = 116, + .baseDefense = 75, + .baseSpeed = 119, + .baseSpAttack = 65, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 45, + .expYield = 265, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), + .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Cinderace"), + .cryId = CRY_CINDERACE, + .natDexNum = NATIONAL_DEX_CINDERACE, + .categoryName = _("Striker"), .height = 14, .weight = 330, .description = COMPOUND_STRING( @@ -315,21 +359,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Cinderace, 40, 64), + .frontPic = gMonFrontPic_Cinderace, + .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cinderace, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cinderace, 48, 56), + .backPic = gMonBackPic_Cinderace, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cinderace), - ICON(Cinderace, 0), + .palette = gMonPalette_Cinderace, + .shinyPalette = gMonShinyPalette_Cinderace, + .iconSprite = gMonIcon_Cinderace, + .iconPalIndex = 0, + FOOTPRINT(Cinderace) + .levelUpLearnset = sCinderaceLevelUpLearnset, + .teachableLearnset = sCinderaceTeachableLearnset, + .formSpeciesIdTable = sCinderaceFormSpeciesIdTable, + .formChangeTable = sCinderaceFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_CINDERACE_GIGANTAMAX] = { - CINDERACE_MISC_INFO, + .baseHP = 80, + .baseAttack = 116, + .baseDefense = 75, + .baseSpeed = 119, + .baseSpAttack = 65, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_FIRE), + .catchRate = 45, + .expYield = 265, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE), + .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Cinderace"), + .cryId = CRY_CINDERACE, + .natDexNum = NATIONAL_DEX_CINDERACE, + .categoryName = _("Striker"), .height = 270, .weight = 0, .description = COMPOUND_STRING( @@ -341,16 +414,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(CinderaceGigantamax, 64, 64), + .frontPic = gMonFrontPic_CinderaceGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_CinderaceGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CinderaceGigantamax, 64, 64), + .backPic = gMonBackPic_CinderaceGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CinderaceGigantamax), - ICON(CinderaceGigantamax, 0), + .palette = gMonPalette_CinderaceGigantamax, + .shinyPalette = gMonShinyPalette_CinderaceGigantamax, + .iconSprite = gMonIcon_CinderaceGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Cinderace) .isGigantamax = TRUE, + .levelUpLearnset = sCinderaceLevelUpLearnset, + .teachableLearnset = sCinderaceTeachableLearnset, + .formSpeciesIdTable = sCinderaceFormSpeciesIdTable, + .formChangeTable = sCinderaceFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SCORBUNNY @@ -364,7 +446,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 70, .baseSpAttack = 70, .baseSpDefense = 40, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 62, .evYield_Speed = 1, @@ -373,7 +455,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SNIPER }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Sobble"), @@ -391,17 +473,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sobble, 40, 56), + .frontPic = gMonFrontPic_Sobble, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Sobble, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sobble, 40, 56), + .backPic = gMonBackPic_Sobble, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Sobble), - ICON(Sobble, 2), - .footprint = gMonFootprint_Sobble, - LEARNSETS(Sobble), + .palette = gMonPalette_Sobble, + .shinyPalette = gMonShinyPalette_Sobble, + .iconSprite = gMonIcon_Sobble, + .iconPalIndex = 2, + FOOTPRINT(Sobble) + .levelUpLearnset = sSobbleLevelUpLearnset, + .teachableLearnset = sSobbleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_DRIZZILE}), }, @@ -413,7 +500,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 90, .baseSpAttack = 95, .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 147, .evYield_SpAttack = 2, @@ -421,7 +508,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SNIPER }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Drizzile"), @@ -438,50 +525,48 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Drizzile, 40, 48), + .frontPic = gMonFrontPic_Drizzile, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Drizzile, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Drizzile, 56, 48), + .backPic = gMonBackPic_Drizzile, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Drizzile), - ICON(Drizzile, 2), - .footprint = gMonFootprint_Drizzile, - LEARNSETS(Drizzile), + .palette = gMonPalette_Drizzile, + .shinyPalette = gMonShinyPalette_Drizzile, + .iconSprite = gMonIcon_Drizzile, + .iconPalIndex = 2, + FOOTPRINT(Drizzile) + .levelUpLearnset = sDrizzileLevelUpLearnset, + .teachableLearnset = sDrizzileTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_INTELEON}), }, -#define INTELEON_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 85, \ - .baseDefense = 65, \ - .baseSpeed = 120, \ - .baseSpAttack = 125, \ - .baseSpDefense = 65, \ - .types = { TYPE_WATER, TYPE_WATER }, \ - .catchRate = 45, \ - .expYield = 265, \ - .evYield_Speed = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SNIPER }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Inteleon"), \ - .cryId = CRY_INTELEON, \ - .natDexNum = NATIONAL_DEX_INTELEON, \ - .categoryName = _("Secret Agent"), \ - .footprint = gMonFootprint_Inteleon, \ - LEARNSETS(Inteleon), \ - .formSpeciesIdTable = sInteleonFormSpeciesIdTable, \ - .formChangeTable = sInteleonFormChangeTable - [SPECIES_INTELEON] = { - INTELEON_MISC_INFO, + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 65, + .baseSpeed = 120, + .baseSpAttack = 125, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, + .expYield = 265, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SNIPER }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Inteleon"), + .cryId = CRY_INTELEON, + .natDexNum = NATIONAL_DEX_INTELEON, + .categoryName = _("Secret Agent"), .height = 19, .weight = 452, .description = COMPOUND_STRING( @@ -493,21 +578,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - FRONT_PIC(Inteleon, 48, 64), + .frontPic = gMonFrontPic_Inteleon, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Inteleon, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Inteleon, 56, 64), + .backPic = gMonBackPic_Inteleon, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Inteleon), - ICON(Inteleon, 0), + .palette = gMonPalette_Inteleon, + .shinyPalette = gMonShinyPalette_Inteleon, + .iconSprite = gMonIcon_Inteleon, + .iconPalIndex = 0, + FOOTPRINT(Inteleon) + .levelUpLearnset = sInteleonLevelUpLearnset, + .teachableLearnset = sInteleonTeachableLearnset, + .formSpeciesIdTable = sInteleonFormSpeciesIdTable, + .formChangeTable = sInteleonFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_INTELEON_GIGANTAMAX] = { - INTELEON_MISC_INFO, + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 65, + .baseSpeed = 120, + .baseSpAttack = 125, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, + .expYield = 265, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SNIPER }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Inteleon"), + .cryId = CRY_INTELEON, + .natDexNum = NATIONAL_DEX_INTELEON, + .categoryName = _("Secret Agent"), .height = 400, .weight = 0, .description = COMPOUND_STRING( @@ -519,16 +633,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - FRONT_PIC(InteleonGigantamax, 64, 64), + .frontPic = gMonFrontPic_InteleonGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_InteleonGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(InteleonGigantamax, 64, 64), + .backPic = gMonBackPic_InteleonGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(InteleonGigantamax), - ICON(InteleonGigantamax, 0), + .palette = gMonPalette_InteleonGigantamax, + .shinyPalette = gMonShinyPalette_InteleonGigantamax, + .iconSprite = gMonIcon_InteleonGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Inteleon) .isGigantamax = TRUE, + .levelUpLearnset = sInteleonLevelUpLearnset, + .teachableLearnset = sInteleonTeachableLearnset, + .formSpeciesIdTable = sInteleonFormSpeciesIdTable, + .formChangeTable = sInteleonFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SOBBLE @@ -542,7 +665,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 25, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 55, .evYield_HP = 1, @@ -551,7 +674,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_CHEEK_POUCH, ABILITY_NONE, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Skwovet"), @@ -568,17 +691,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Skwovet, 40, 48), + .frontPic = gMonFrontPic_Skwovet, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Skwovet, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Skwovet, 64, 56), + .backPic = gMonBackPic_Skwovet, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Skwovet), - ICON(Skwovet, 2), - .footprint = gMonFootprint_Skwovet, - LEARNSETS(Skwovet), + .palette = gMonPalette_Skwovet, + .shinyPalette = gMonShinyPalette_Skwovet, + .iconSprite = gMonIcon_Skwovet, + .iconPalIndex = 2, + FOOTPRINT(Skwovet) + .levelUpLearnset = sSkwovetLevelUpLearnset, + .teachableLearnset = sSkwovetTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_GREEDENT}), }, @@ -590,7 +718,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 20, .baseSpAttack = 55, .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 90, .expYield = 161, .evYield_HP = 2, @@ -599,7 +727,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_CHEEK_POUCH, ABILITY_NONE, ABILITY_GLUTTONY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Greedent"), @@ -617,17 +745,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Greedent, 56, 64), + .frontPic = gMonFrontPic_Greedent, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Greedent, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Greedent, 64, 56), + .backPic = gMonBackPic_Greedent, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Greedent), - ICON(Greedent, 0), - .footprint = gMonFootprint_Greedent, - LEARNSETS(Greedent), + .palette = gMonPalette_Greedent, + .shinyPalette = gMonShinyPalette_Greedent, + .iconSprite = gMonIcon_Greedent, + .iconPalIndex = 0, + FOOTPRINT(Greedent) + .levelUpLearnset = sGreedentLevelUpLearnset, + .teachableLearnset = sGreedentTeachableLearnset, }, #endif //P_FAMILY_SKWOVET @@ -640,7 +773,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 57, .baseSpAttack = 33, .baseSpDefense = 35, - .types = { TYPE_FLYING, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FLYING), .catchRate = 255, .expYield = 49, .evYield_Speed = 1, @@ -648,7 +781,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_UNNERVE, ABILITY_BIG_PECKS }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Rookidee"), @@ -666,17 +799,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Rookidee, 40, 40), + .frontPic = gMonFrontPic_Rookidee, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Rookidee, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Rookidee, 64, 32), + .backPic = gMonBackPic_Rookidee, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 17, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Rookidee), - ICON(Rookidee, 0), - .footprint = gMonFootprint_Rookidee, - LEARNSETS(Rookidee), + .palette = gMonPalette_Rookidee, + .shinyPalette = gMonShinyPalette_Rookidee, + .iconSprite = gMonIcon_Rookidee, + .iconPalIndex = 0, + FOOTPRINT(Rookidee) + .levelUpLearnset = sRookideeLevelUpLearnset, + .teachableLearnset = sRookideeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_CORVISQUIRE}), }, @@ -688,7 +826,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 77, .baseSpAttack = 43, .baseSpDefense = 55, - .types = { TYPE_FLYING, TYPE_FLYING }, + .types = MON_TYPES(TYPE_FLYING), .catchRate = 120, .expYield = 128, .evYield_Speed = 2, @@ -696,7 +834,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_KEEN_EYE, ABILITY_UNNERVE, ABILITY_BIG_PECKS }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Corvisquir"), @@ -714,51 +852,49 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Corvisquire, 64, 56), + .frontPic = gMonFrontPic_Corvisquire, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Corvisquire, .frontAnimId = ANIM_CIRCLE_INTO_BG, .enemyMonElevation = 10, - BACK_PIC(Corvisquire, 56, 48), + .backPic = gMonBackPic_Corvisquire, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Corvisquire), - ICON(Corvisquire, 0), - .footprint = gMonFootprint_Corvisquire, - LEARNSETS(Corvisquire), + .palette = gMonPalette_Corvisquire, + .shinyPalette = gMonShinyPalette_Corvisquire, + .iconSprite = gMonIcon_Corvisquire, + .iconPalIndex = 0, + FOOTPRINT(Corvisquire) + .levelUpLearnset = sCorvisquireLevelUpLearnset, + .teachableLearnset = sCorvisquireTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_CORVIKNIGHT}), }, -#define CORVIKNIGHT_MISC_INFO \ - .baseHP = 98, \ - .baseAttack = 87, \ - .baseDefense = 105, \ - .baseSpeed = 67, \ - .baseSpAttack = 53, \ - .baseSpDefense = 85, \ - .types = { TYPE_FLYING, TYPE_STEEL }, \ - .catchRate = 45, \ - .expYield = 248, \ - .evYield_Defense = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, \ - .abilities = { ABILITY_PRESSURE, ABILITY_UNNERVE, ABILITY_MIRROR_ARMOR }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Corviknigh"), \ - .cryId = CRY_CORVIKNIGHT, \ - .natDexNum = NATIONAL_DEX_CORVIKNIGHT, \ - .categoryName = _("Raven"), \ - .footprint = gMonFootprint_Corviknight, \ - LEARNSETS(Corviknight), \ - .formSpeciesIdTable = sCorviknightFormSpeciesIdTable, \ - .formChangeTable = sCorviknightFormChangeTable - [SPECIES_CORVIKNIGHT] = { - CORVIKNIGHT_MISC_INFO, + .baseHP = 98, + .baseAttack = 87, + .baseDefense = 105, + .baseSpeed = 67, + .baseSpAttack = 53, + .baseSpDefense = 85, + .types = MON_TYPES(TYPE_FLYING, TYPE_STEEL), + .catchRate = 45, + .expYield = 248, + .evYield_Defense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), + .abilities = { ABILITY_PRESSURE, ABILITY_UNNERVE, ABILITY_MIRROR_ARMOR }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Corviknigh"), + .cryId = CRY_CORVIKNIGHT, + .natDexNum = NATIONAL_DEX_CORVIKNIGHT, + .categoryName = _("Raven"), .height = 22, .weight = 750, .description = COMPOUND_STRING( @@ -770,21 +906,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(Corviknight, 56, 64), + .frontPic = gMonFrontPic_Corviknight, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Corviknight, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Corviknight, 64, 64), + .backPic = gMonBackPic_Corviknight, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Corviknight), - ICON(Corviknight, 0), + .palette = gMonPalette_Corviknight, + .shinyPalette = gMonShinyPalette_Corviknight, + .iconSprite = gMonIcon_Corviknight, + .iconPalIndex = 0, + FOOTPRINT(Corviknight) + .levelUpLearnset = sCorviknightLevelUpLearnset, + .teachableLearnset = sCorviknightTeachableLearnset, + .formSpeciesIdTable = sCorviknightFormSpeciesIdTable, + .formChangeTable = sCorviknightFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_CORVIKNIGHT_GIGANTAMAX] = { - CORVIKNIGHT_MISC_INFO, + .baseHP = 98, + .baseAttack = 87, + .baseDefense = 105, + .baseSpeed = 67, + .baseSpAttack = 53, + .baseSpDefense = 85, + .types = MON_TYPES(TYPE_FLYING, TYPE_STEEL), + .catchRate = 45, + .expYield = 248, + .evYield_Defense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), + .abilities = { ABILITY_PRESSURE, ABILITY_UNNERVE, ABILITY_MIRROR_ARMOR }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Corviknigh"), + .cryId = CRY_CORVIKNIGHT, + .natDexNum = NATIONAL_DEX_CORVIKNIGHT, + .categoryName = _("Raven"), .height = 140, .weight = 0, .description = COMPOUND_STRING( @@ -796,16 +961,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(CorviknightGigantamax, 64, 64), + .frontPic = gMonFrontPic_CorviknightGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_CorviknightGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CorviknightGigantamax, 64, 64), + .backPic = gMonBackPic_CorviknightGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CorviknightGigantamax), - ICON(CorviknightGigantamax, 0), + .palette = gMonPalette_CorviknightGigantamax, + .shinyPalette = gMonShinyPalette_CorviknightGigantamax, + .iconSprite = gMonIcon_CorviknightGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Corviknight) .isGigantamax = TRUE, + .levelUpLearnset = sCorviknightLevelUpLearnset, + .teachableLearnset = sCorviknightTeachableLearnset, + .formSpeciesIdTable = sCorviknightFormSpeciesIdTable, + .formChangeTable = sCorviknightFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_ROOKIDEE @@ -819,7 +993,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 45, .baseSpAttack = 25, .baseSpDefense = 45, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 255, .expYield = 36, .evYield_SpDefense = 1, @@ -827,7 +1001,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_COMPOUND_EYES, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Blipbug"), @@ -844,17 +1018,23 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Blipbug, 32, 40), + .frontPic = gMonFrontPic_Blipbug, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Blipbug, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Blipbug, 40, 56), + .backPic = gMonBackPic_Blipbug, + .backPicSize = MON_COORDS_SIZE(40, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Blipbug), - ICON(Blipbug, 0), - .footprint = gMonFootprint_Blipbug, - LEARNSETS(Blipbug), + .palette = gMonPalette_Blipbug, + .shinyPalette = gMonShinyPalette_Blipbug, + .iconSprite = gMonIcon_Blipbug, + .iconPalIndex = 0, + FOOTPRINT(Blipbug) + .tmIlliterate = TRUE, + .levelUpLearnset = sBlipbugLevelUpLearnset, + .teachableLearnset = sBlipbugTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_DOTTLER}), }, @@ -866,7 +1046,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 30, .baseSpAttack = 50, .baseSpDefense = 90, - .types = { TYPE_BUG, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_BUG, TYPE_PSYCHIC), .catchRate = 120, .expYield = 117, .evYield_SpDefense = 2, @@ -875,7 +1055,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_COMPOUND_EYES, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Dottler"), @@ -893,51 +1073,49 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dottler, 48, 40), + .frontPic = gMonFrontPic_Dottler, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Dottler, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dottler, 56, 32), + .backPic = gMonBackPic_Dottler, + .backPicSize = MON_COORDS_SIZE(56, 32), .backPicYOffset = 17, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dottler), - ICON(Dottler, 2), - .footprint = gMonFootprint_Dottler, - LEARNSETS(Dottler), + .palette = gMonPalette_Dottler, + .shinyPalette = gMonShinyPalette_Dottler, + .iconSprite = gMonIcon_Dottler, + .iconPalIndex = 2, + FOOTPRINT(Dottler) + .levelUpLearnset = sDottlerLevelUpLearnset, + .teachableLearnset = sDottlerTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ORBEETLE}), }, -#define ORBEETLE_MISC_INFO \ - .baseHP = 60, \ - .baseAttack = 45, \ - .baseDefense = 110, \ - .baseSpeed = 90, \ - .baseSpAttack = 80, \ - .baseSpDefense = 120, \ - .types = { TYPE_BUG, TYPE_PSYCHIC }, \ - .catchRate = 45, \ - .expYield = 253, \ - .evYield_SpDefense = 3, \ - .itemRare = ITEM_PSYCHIC_SEED, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .abilities = { ABILITY_SWARM, ABILITY_FRISK, ABILITY_TELEPATHY }, \ - .bodyColor = BODY_COLOR_RED, \ - .speciesName = _("Orbeetle"), \ - .cryId = CRY_ORBEETLE, \ - .natDexNum = NATIONAL_DEX_ORBEETLE, \ - .categoryName = _("Seven Spot"), \ - .footprint = gMonFootprint_Orbeetle, \ - LEARNSETS(Orbeetle), \ - .formSpeciesIdTable = sOrbeetleFormSpeciesIdTable, \ - .formChangeTable = sOrbeetleFormChangeTable - [SPECIES_ORBEETLE] = { - ORBEETLE_MISC_INFO, + .baseHP = 60, + .baseAttack = 45, + .baseDefense = 110, + .baseSpeed = 90, + .baseSpAttack = 80, + .baseSpDefense = 120, + .types = MON_TYPES(TYPE_BUG, TYPE_PSYCHIC), + .catchRate = 45, + .expYield = 253, + .evYield_SpDefense = 3, + .itemRare = ITEM_PSYCHIC_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SWARM, ABILITY_FRISK, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Orbeetle"), + .cryId = CRY_ORBEETLE, + .natDexNum = NATIONAL_DEX_ORBEETLE, + .categoryName = _("Seven Spot"), .height = 4, .weight = 408, .description = COMPOUND_STRING( @@ -949,22 +1127,52 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Orbeetle, 48, 56), + .frontPic = gMonFrontPic_Orbeetle, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Orbeetle, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(Orbeetle, 64, 56), + .backPic = gMonBackPic_Orbeetle, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Orbeetle), - ICON(Orbeetle, 0), + .palette = gMonPalette_Orbeetle, + .shinyPalette = gMonShinyPalette_Orbeetle, + .iconSprite = gMonIcon_Orbeetle, + .iconPalIndex = 0, + FOOTPRINT(Orbeetle) + .levelUpLearnset = sOrbeetleLevelUpLearnset, + .teachableLearnset = sOrbeetleTeachableLearnset, + .formSpeciesIdTable = sOrbeetleFormSpeciesIdTable, + .formChangeTable = sOrbeetleFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_ORBEETLE_GIGANTAMAX] = { - ORBEETLE_MISC_INFO, + .baseHP = 60, + .baseAttack = 45, + .baseDefense = 110, + .baseSpeed = 90, + .baseSpAttack = 80, + .baseSpDefense = 120, + .types = MON_TYPES(TYPE_BUG, TYPE_PSYCHIC), + .catchRate = 45, + .expYield = 253, + .evYield_SpDefense = 3, + .itemRare = ITEM_PSYCHIC_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_SWARM, ABILITY_FRISK, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Orbeetle"), + .cryId = CRY_ORBEETLE, + .natDexNum = NATIONAL_DEX_ORBEETLE, + .categoryName = _("Seven Spot"), .height = 140, .weight = 0, .description = COMPOUND_STRING( @@ -976,16 +1184,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(OrbeetleGigantamax, 64, 64), + .frontPic = gMonFrontPic_OrbeetleGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_OrbeetleGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(OrbeetleGigantamax, 64, 64), + .backPic = gMonBackPic_OrbeetleGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(OrbeetleGigantamax), - ICON(OrbeetleGigantamax, 0), + .palette = gMonPalette_OrbeetleGigantamax, + .shinyPalette = gMonShinyPalette_OrbeetleGigantamax, + .iconSprite = gMonIcon_OrbeetleGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Orbeetle) .isGigantamax = TRUE, + .levelUpLearnset = sOrbeetleLevelUpLearnset, + .teachableLearnset = sOrbeetleTeachableLearnset, + .formSpeciesIdTable = sOrbeetleFormSpeciesIdTable, + .formChangeTable = sOrbeetleFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_BLIPBUG @@ -999,7 +1216,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 50, .baseSpAttack = 47, .baseSpDefense = 52, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 255, .expYield = 49, .evYield_SpDefense = 1, @@ -1007,7 +1224,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_UNBURDEN, ABILITY_STAKEOUT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Nickit"), @@ -1025,17 +1242,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nickit, 56, 48), + .frontPic = gMonFrontPic_Nickit, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Nickit, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Nickit, 64, 56), + .backPic = gMonBackPic_Nickit, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Nickit), - ICON(Nickit, 2), - .footprint = gMonFootprint_Nickit, - LEARNSETS(Nickit), + .palette = gMonPalette_Nickit, + .shinyPalette = gMonShinyPalette_Nickit, + .iconSprite = gMonIcon_Nickit, + .iconPalIndex = 2, + FOOTPRINT(Nickit) + .levelUpLearnset = sNickitLevelUpLearnset, + .teachableLearnset = sNickitTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_THIEVUL}), }, @@ -1047,7 +1269,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 90, .baseSpAttack = 87, .baseSpDefense = 92, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 127, .expYield = 159, .evYield_SpDefense = 2, @@ -1055,7 +1277,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_RUN_AWAY, ABILITY_UNBURDEN, ABILITY_STAKEOUT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Thievul"), @@ -1073,17 +1295,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Thievul, 64, 56), + .frontPic = gMonFrontPic_Thievul, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Thievul, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Thievul, 56, 64), + .backPic = gMonBackPic_Thievul, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Thievul), - ICON(Thievul, 2), - .footprint = gMonFootprint_Thievul, - LEARNSETS(Thievul), + .palette = gMonPalette_Thievul, + .shinyPalette = gMonShinyPalette_Thievul, + .iconSprite = gMonIcon_Thievul, + .iconPalIndex = 2, + FOOTPRINT(Thievul) + .levelUpLearnset = sThievulLevelUpLearnset, + .teachableLearnset = sThievulTeachableLearnset, }, #endif //P_FAMILY_NICKIT @@ -1096,7 +1323,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 10, .baseSpAttack = 40, .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 190, .expYield = 50, .evYield_SpDefense = 1, @@ -1104,7 +1331,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_COTTON_DOWN, ABILITY_REGENERATOR, ABILITY_EFFECT_SPORE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Gossifleur"), @@ -1122,17 +1349,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gossifleur, 48, 56), + .frontPic = gMonFrontPic_Gossifleur, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Gossifleur, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Gossifleur, 56, 48), + .backPic = gMonBackPic_Gossifleur, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Gossifleur), - ICON(Gossifleur, 1), - .footprint = gMonFootprint_Gossifleur, - LEARNSETS(Gossifleur), + .palette = gMonPalette_Gossifleur, + .shinyPalette = gMonShinyPalette_Gossifleur, + .iconSprite = gMonIcon_Gossifleur, + .iconPalIndex = 1, + FOOTPRINT(Gossifleur) + .levelUpLearnset = sGossifleurLevelUpLearnset, + .teachableLearnset = sGossifleurTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_ELDEGOSS}), }, @@ -1144,7 +1376,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 60, .baseSpAttack = 80, .baseSpDefense = 120, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 75, .expYield = 161, .evYield_SpDefense = 2, @@ -1152,7 +1384,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_COTTON_DOWN, ABILITY_REGENERATOR, ABILITY_EFFECT_SPORE }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Eldegoss"), @@ -1170,17 +1402,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Eldegoss, 48, 56), + .frontPic = gMonFrontPic_Eldegoss, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Eldegoss, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Eldegoss, 64, 40), + .backPic = gMonBackPic_Eldegoss, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Eldegoss), - ICON(Eldegoss, 1), - .footprint = gMonFootprint_Eldegoss, - LEARNSETS(Eldegoss), + .palette = gMonPalette_Eldegoss, + .shinyPalette = gMonShinyPalette_Eldegoss, + .iconSprite = gMonIcon_Eldegoss, + .iconPalIndex = 1, + FOOTPRINT(Eldegoss) + .levelUpLearnset = sEldegossLevelUpLearnset, + .teachableLearnset = sEldegossTeachableLearnset, }, #endif //P_FAMILY_GOSSIFLEUR @@ -1193,7 +1430,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 48, .baseSpAttack = 40, .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 122, .evYield_Defense = 1, @@ -1201,7 +1438,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FLUFFY, ABILITY_RUN_AWAY, ABILITY_BULLETPROOF }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Wooloo"), @@ -1219,17 +1456,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wooloo, 40, 40), + .frontPic = gMonFrontPic_Wooloo, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Wooloo, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Wooloo, 56, 32), + .backPic = gMonBackPic_Wooloo, + .backPicSize = MON_COORDS_SIZE(56, 32), .backPicYOffset = 18, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Wooloo), - ICON(Wooloo, 0), - .footprint = gMonFootprint_Wooloo, - LEARNSETS(Wooloo), + .palette = gMonPalette_Wooloo, + .shinyPalette = gMonShinyPalette_Wooloo, + .iconSprite = gMonIcon_Wooloo, + .iconPalIndex = 0, + FOOTPRINT(Wooloo) + .levelUpLearnset = sWoolooLevelUpLearnset, + .teachableLearnset = sWoolooTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_DUBWOOL}), }, @@ -1241,7 +1483,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 88, .baseSpAttack = 60, .baseSpDefense = 90, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 127, .expYield = 172, .evYield_Defense = 2, @@ -1249,7 +1491,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_FLUFFY, ABILITY_STEADFAST, ABILITY_BULLETPROOF }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Dubwool"), @@ -1267,17 +1509,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dubwool, 48, 56), + .frontPic = gMonFrontPic_Dubwool, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Dubwool, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dubwool, 64, 40), + .backPic = gMonBackPic_Dubwool, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dubwool), - ICON(Dubwool, 2), - .footprint = gMonFootprint_Dubwool, - LEARNSETS(Dubwool), + .palette = gMonPalette_Dubwool, + .shinyPalette = gMonShinyPalette_Dubwool, + .iconSprite = gMonIcon_Dubwool, + .iconPalIndex = 2, + FOOTPRINT(Dubwool) + .levelUpLearnset = sDubwoolLevelUpLearnset, + .teachableLearnset = sDubwoolTeachableLearnset, }, #endif //P_FAMILY_WOOLOO @@ -1290,7 +1537,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 44, .baseSpAttack = 38, .baseSpDefense = 38, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 255, .expYield = 57, .evYield_Attack = 1, @@ -1298,7 +1545,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), .abilities = { ABILITY_STRONG_JAW, ABILITY_SHELL_ARMOR, ABILITY_SWIFT_SWIM }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Chewtle"), @@ -1315,50 +1562,48 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Chewtle, 32, 48), + .frontPic = gMonFrontPic_Chewtle, + .frontPicSize = MON_COORDS_SIZE(32, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Chewtle, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Chewtle, 56, 56), + .backPic = gMonBackPic_Chewtle, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Chewtle), - ICON(Chewtle, 0), - .footprint = gMonFootprint_Chewtle, - LEARNSETS(Chewtle), + .palette = gMonPalette_Chewtle, + .shinyPalette = gMonShinyPalette_Chewtle, + .iconSprite = gMonIcon_Chewtle, + .iconPalIndex = 0, + FOOTPRINT(Chewtle) + .levelUpLearnset = sChewtleLevelUpLearnset, + .teachableLearnset = sChewtleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_DREDNAW}), }, -#define DREDNAW_MISC_INFO \ - .baseHP = 90, \ - .baseAttack = 115, \ - .baseDefense = 90, \ - .baseSpeed = 74, \ - .baseSpAttack = 48, \ - .baseSpDefense = 68, \ - .types = { TYPE_WATER, TYPE_ROCK }, \ - .catchRate = 75, \ - .expYield = 170, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, \ - .abilities = { ABILITY_STRONG_JAW, ABILITY_SHELL_ARMOR, ABILITY_SWIFT_SWIM }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Drednaw"), \ - .cryId = CRY_DREDNAW, \ - .natDexNum = NATIONAL_DEX_DREDNAW, \ - .categoryName = _("Bite"), \ - .footprint = gMonFootprint_Drednaw, \ - LEARNSETS(Drednaw), \ - .formSpeciesIdTable = sDrednawFormSpeciesIdTable, \ - .formChangeTable = sDrednawFormChangeTable - [SPECIES_DREDNAW] = { - DREDNAW_MISC_INFO, + .baseHP = 90, + .baseAttack = 115, + .baseDefense = 90, + .baseSpeed = 74, + .baseSpAttack = 48, + .baseSpDefense = 68, + .types = MON_TYPES(TYPE_WATER, TYPE_ROCK), + .catchRate = 75, + .expYield = 170, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), + .abilities = { ABILITY_STRONG_JAW, ABILITY_SHELL_ARMOR, ABILITY_SWIFT_SWIM }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Drednaw"), + .cryId = CRY_DREDNAW, + .natDexNum = NATIONAL_DEX_DREDNAW, + .categoryName = _("Bite"), .height = 10, .weight = 1155, .description = COMPOUND_STRING( @@ -1369,21 +1614,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Drednaw, 64, 56), + .frontPic = gMonFrontPic_Drednaw, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Drednaw, .frontAnimId = ANIM_GROW_VIBRATE, - BACK_PIC(Drednaw, 64, 40), + .backPic = gMonBackPic_Drednaw, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 18, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Drednaw), - ICON(Drednaw, 0), + .palette = gMonPalette_Drednaw, + .shinyPalette = gMonShinyPalette_Drednaw, + .iconSprite = gMonIcon_Drednaw, + .iconPalIndex = 0, + FOOTPRINT(Drednaw) + .levelUpLearnset = sDrednawLevelUpLearnset, + .teachableLearnset = sDrednawTeachableLearnset, + .formSpeciesIdTable = sDrednawFormSpeciesIdTable, + .formChangeTable = sDrednawFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_DREDNAW_GIGANTAMAX] = { - DREDNAW_MISC_INFO, + .baseHP = 90, + .baseAttack = 115, + .baseDefense = 90, + .baseSpeed = 74, + .baseSpAttack = 48, + .baseSpDefense = 68, + .types = MON_TYPES(TYPE_WATER, TYPE_ROCK), + .catchRate = 75, + .expYield = 170, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_WATER_1), + .abilities = { ABILITY_STRONG_JAW, ABILITY_SHELL_ARMOR, ABILITY_SWIFT_SWIM }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Drednaw"), + .cryId = CRY_DREDNAW, + .natDexNum = NATIONAL_DEX_DREDNAW, + .categoryName = _("Bite"), .height = 240, .weight = 0, .description = COMPOUND_STRING( @@ -1395,16 +1669,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(DrednawGigantamax, 64, 64), + .frontPic = gMonFrontPic_DrednawGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DrednawGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DrednawGigantamax, 64, 64), + .backPic = gMonBackPic_DrednawGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DrednawGigantamax), - ICON(DrednawGigantamax, 0), + .palette = gMonPalette_DrednawGigantamax, + .shinyPalette = gMonShinyPalette_DrednawGigantamax, + .iconSprite = gMonIcon_DrednawGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Drednaw) .isGigantamax = TRUE, + .levelUpLearnset = sDrednawLevelUpLearnset, + .teachableLearnset = sDrednawTeachableLearnset, + .formSpeciesIdTable = sDrednawFormSpeciesIdTable, + .formChangeTable = sDrednawFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CHEWTLE @@ -1418,7 +1701,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 26, .baseSpAttack = 40, .baseSpDefense = 50, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 255, .expYield = 54, .evYield_HP = 1, @@ -1426,7 +1709,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BALL_FETCH, ABILITY_NONE, ABILITY_RATTLED }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Yamper"), @@ -1444,17 +1727,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Yamper, 40, 48), + .frontPic = gMonFrontPic_Yamper, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Yamper, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Yamper, 48, 48), + .backPic = gMonBackPic_Yamper, + .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Yamper), - ICON(Yamper, 1), - .footprint = gMonFootprint_Yamper, - LEARNSETS(Yamper), + .palette = gMonPalette_Yamper, + .shinyPalette = gMonShinyPalette_Yamper, + .iconSprite = gMonIcon_Yamper, + .iconPalIndex = 1, + FOOTPRINT(Yamper) + .levelUpLearnset = sYamperLevelUpLearnset, + .teachableLearnset = sYamperTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_BOLTUND}), }, @@ -1466,7 +1754,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 121, .baseSpAttack = 90, .baseSpDefense = 60, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 45, .expYield = 172, .evYield_Speed = 2, @@ -1474,7 +1762,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STRONG_JAW, ABILITY_NONE, ABILITY_COMPETITIVE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Boltund"), @@ -1492,17 +1780,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Boltund, 48, 56), + .frontPic = gMonFrontPic_Boltund, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Boltund, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Boltund, 64, 56), + .backPic = gMonBackPic_Boltund, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Boltund), - ICON(Boltund, 1), - .footprint = gMonFootprint_Boltund, - LEARNSETS(Boltund), + .palette = gMonPalette_Boltund, + .shinyPalette = gMonShinyPalette_Boltund, + .iconSprite = gMonIcon_Boltund, + .iconPalIndex = 1, + FOOTPRINT(Boltund) + .levelUpLearnset = sBoltundLevelUpLearnset, + .teachableLearnset = sBoltundTeachableLearnset, }, #endif //P_FAMILY_YAMPER @@ -1515,7 +1808,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 30, .baseSpAttack = 40, .baseSpDefense = 50, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 255, .expYield = 48, .evYield_Defense = 1, @@ -1523,7 +1816,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STEAM_ENGINE, ABILITY_HEATPROOF, ABILITY_FLASH_FIRE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Rolycoly"), @@ -1541,17 +1834,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Rolycoly, 40, 40), + .frontPic = gMonFrontPic_Rolycoly, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Rolycoly, .frontAnimId = ANIM_H_SLIDE_SLOW, - BACK_PIC(Rolycoly, 64, 32), + .backPic = gMonBackPic_Rolycoly, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 17, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Rolycoly), - ICON(Rolycoly, 0), - .footprint = gMonFootprint_Rolycoly, - LEARNSETS(Rolycoly), + .palette = gMonPalette_Rolycoly, + .shinyPalette = gMonShinyPalette_Rolycoly, + .iconSprite = gMonIcon_Rolycoly, + .iconPalIndex = 0, + FOOTPRINT(Rolycoly) + .levelUpLearnset = sRolycolyLevelUpLearnset, + .teachableLearnset = sRolycolyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_CARKOL}), }, @@ -1563,7 +1861,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 70, - .types = { TYPE_ROCK, TYPE_FIRE }, + .types = MON_TYPES(TYPE_ROCK, TYPE_FIRE), .catchRate = 120, .expYield = 144, .evYield_Defense = 2, @@ -1571,7 +1869,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_STEAM_ENGINE, ABILITY_FLAME_BODY, ABILITY_FLASH_FIRE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Carkol"), @@ -1588,50 +1886,48 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Carkol, 48, 56), + .frontPic = gMonFrontPic_Carkol, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Carkol, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Carkol, 64, 48), + .backPic = gMonBackPic_Carkol, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Carkol), - ICON(Carkol, 0), - .footprint = gMonFootprint_Carkol, - LEARNSETS(Carkol), + .palette = gMonPalette_Carkol, + .shinyPalette = gMonShinyPalette_Carkol, + .iconSprite = gMonIcon_Carkol, + .iconPalIndex = 0, + FOOTPRINT(Carkol) + .levelUpLearnset = sCarkolLevelUpLearnset, + .teachableLearnset = sCarkolTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_COALOSSAL}), }, -#define COALOSSAL_MISC_INFO \ - .baseHP = 110, \ - .baseAttack = 80, \ - .baseDefense = 120, \ - .baseSpeed = 30, \ - .baseSpAttack = 80, \ - .baseSpDefense = 90, \ - .types = { TYPE_ROCK, TYPE_FIRE }, \ - .catchRate = 45, \ - .expYield = 255, \ - .evYield_Defense = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, \ - .abilities = { ABILITY_STEAM_ENGINE, ABILITY_FLAME_BODY, ABILITY_FLASH_FIRE }, \ - .bodyColor = BODY_COLOR_BLACK, \ - .speciesName = _("Coalossal"), \ - .cryId = CRY_COALOSSAL, \ - .natDexNum = NATIONAL_DEX_COALOSSAL, \ - .categoryName = _("Coal"), \ - .footprint = gMonFootprint_Coalossal, \ - LEARNSETS(Coalossal), \ - .formSpeciesIdTable = sCoalossalFormSpeciesIdTable, \ - .formChangeTable = sCoalossalFormChangeTable - [SPECIES_COALOSSAL] = { - COALOSSAL_MISC_INFO, + .baseHP = 110, + .baseAttack = 80, + .baseDefense = 120, + .baseSpeed = 30, + .baseSpAttack = 80, + .baseSpDefense = 90, + .types = MON_TYPES(TYPE_ROCK, TYPE_FIRE), + .catchRate = 45, + .expYield = 255, + .evYield_Defense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_STEAM_ENGINE, ABILITY_FLAME_BODY, ABILITY_FLASH_FIRE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Coalossal"), + .cryId = CRY_COALOSSAL, + .natDexNum = NATIONAL_DEX_COALOSSAL, + .categoryName = _("Coal"), .height = 28, .weight = 3105, .description = COMPOUND_STRING( @@ -1643,21 +1939,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Coalossal, 56, 64), + .frontPic = gMonFrontPic_Coalossal, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Coalossal, .frontAnimId = ANIM_GLOW_RED, - BACK_PIC(Coalossal, 64, 48), + .backPic = gMonBackPic_Coalossal, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Coalossal), - ICON(Coalossal, 0), + .palette = gMonPalette_Coalossal, + .shinyPalette = gMonShinyPalette_Coalossal, + .iconSprite = gMonIcon_Coalossal, + .iconPalIndex = 0, + FOOTPRINT(Coalossal) + .levelUpLearnset = sCoalossalLevelUpLearnset, + .teachableLearnset = sCoalossalTeachableLearnset, + .formSpeciesIdTable = sCoalossalFormSpeciesIdTable, + .formChangeTable = sCoalossalFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_COALOSSAL_GIGANTAMAX] = { - COALOSSAL_MISC_INFO, + .baseHP = 110, + .baseAttack = 80, + .baseDefense = 120, + .baseSpeed = 30, + .baseSpAttack = 80, + .baseSpDefense = 90, + .types = MON_TYPES(TYPE_ROCK, TYPE_FIRE), + .catchRate = 45, + .expYield = 255, + .evYield_Defense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_STEAM_ENGINE, ABILITY_FLAME_BODY, ABILITY_FLASH_FIRE }, + .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Coalossal"), + .cryId = CRY_COALOSSAL, + .natDexNum = NATIONAL_DEX_COALOSSAL, + .categoryName = _("Coal"), .height = 420, .weight = 0, .description = COMPOUND_STRING( @@ -1669,16 +1994,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(CoalossalGigantamax, 64, 64), + .frontPic = gMonFrontPic_CoalossalGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_CoalossalGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CoalossalGigantamax, 64, 64), + .backPic = gMonBackPic_CoalossalGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CoalossalGigantamax), - ICON(CoalossalGigantamax, 0), + .palette = gMonPalette_CoalossalGigantamax, + .shinyPalette = gMonShinyPalette_CoalossalGigantamax, + .iconSprite = gMonIcon_CoalossalGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Coalossal) .isGigantamax = TRUE, + .levelUpLearnset = sCoalossalLevelUpLearnset, + .teachableLearnset = sCoalossalTeachableLearnset, + .formSpeciesIdTable = sCoalossalFormSpeciesIdTable, + .formChangeTable = sCoalossalFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_ROLYCOLY @@ -1692,7 +2026,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 20, .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), .catchRate = 255, .expYield = 52, .evYield_Defense = 1, @@ -1700,7 +2034,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_DRAGON), .abilities = { ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_BULLETPROOF }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Applin"), @@ -1718,52 +2052,51 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Applin, 32, 40), + .frontPic = gMonFrontPic_Applin, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Applin, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Applin, 40, 48), + .backPic = gMonBackPic_Applin, + .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Applin), - ICON(Applin, 1), - .footprint = gMonFootprint_Applin, - LEARNSETS(Applin), + .palette = gMonPalette_Applin, + .shinyPalette = gMonShinyPalette_Applin, + .iconSprite = gMonIcon_Applin, + .iconPalIndex = 1, + FOOTPRINT(Applin) + .tmIlliterate = TRUE, + .levelUpLearnset = sApplinLevelUpLearnset, + .teachableLearnset = sApplinTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_TART_APPLE, SPECIES_FLAPPLE}, {EVO_ITEM, ITEM_SWEET_APPLE, SPECIES_APPLETUN}, {EVO_ITEM, ITEM_SYRUPY_APPLE, SPECIES_DIPPLIN}), }, -#define FLAPPLE_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 110, \ - .baseDefense = 80, \ - .baseSpeed = 70, \ - .baseSpAttack = 95, \ - .baseSpDefense = 60, \ - .types = { TYPE_GRASS, TYPE_DRAGON }, \ - .catchRate = 45, \ - .expYield = 170, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_ERRATIC, \ - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_DRAGON }, \ - .abilities = { ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_HUSTLE }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Flapple"), \ - .cryId = CRY_FLAPPLE, \ - .natDexNum = NATIONAL_DEX_FLAPPLE, \ - .categoryName = _("Apple Wing"), \ - .footprint = gMonFootprint_Flapple, \ - LEARNSETS(Flapple), \ - .formSpeciesIdTable = sFlappleFormSpeciesIdTable, \ - .formChangeTable = sFlappleFormChangeTable - [SPECIES_FLAPPLE] = { - FLAPPLE_MISC_INFO, + .baseHP = 70, + .baseAttack = 110, + .baseDefense = 80, + .baseSpeed = 70, + .baseSpAttack = 95, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), + .catchRate = 45, + .expYield = 170, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_DRAGON), + .abilities = { ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_HUSTLE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Flapple"), + .cryId = CRY_FLAPPLE, + .natDexNum = NATIONAL_DEX_FLAPPLE, + .categoryName = _("Apple Wing"), .height = 3, .weight = 10, .description = COMPOUND_STRING( @@ -1774,22 +2107,51 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Flapple, 56, 48), + .frontPic = gMonFrontPic_Flapple, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Flapple, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 9, - BACK_PIC(Flapple, 48, 56), + .backPic = gMonBackPic_Flapple, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Flapple), - ICON(Flapple, 1), + .palette = gMonPalette_Flapple, + .shinyPalette = gMonShinyPalette_Flapple, + .iconSprite = gMonIcon_Flapple, + .iconPalIndex = 1, + FOOTPRINT(Flapple) + .levelUpLearnset = sFlappleLevelUpLearnset, + .teachableLearnset = sFlappleTeachableLearnset, + .formSpeciesIdTable = sFlappleFormSpeciesIdTable, + .formChangeTable = sFlappleFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_FLAPPLE_GIGANTAMAX] = { - FLAPPLE_MISC_INFO, + .baseHP = 70, + .baseAttack = 110, + .baseDefense = 80, + .baseSpeed = 70, + .baseSpAttack = 95, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), + .catchRate = 45, + .expYield = 170, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_DRAGON), + .abilities = { ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_HUSTLE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Flapple"), + .cryId = CRY_FLAPPLE, + .natDexNum = NATIONAL_DEX_FLAPPLE, + .categoryName = _("Apple Wing"), .height = 240, .weight = 0, .description = COMPOUND_STRING( @@ -1801,49 +2163,51 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(FlappleGigantamax, 64, 64), + .frontPic = gMonFrontPic_FlappleGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_FlappleGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(FlappleGigantamax, 64, 64), + .backPic = gMonBackPic_FlappleGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(FlappleGigantamax), - ICON(FlappleGigantamax, 1), + .palette = gMonPalette_FlappleGigantamax, + .shinyPalette = gMonShinyPalette_FlappleGigantamax, + .iconSprite = gMonIcon_FlappleGigantamax, + .iconPalIndex = 1, + FOOTPRINT(Flapple) .isGigantamax = TRUE, + .levelUpLearnset = sFlappleLevelUpLearnset, + .teachableLearnset = sFlappleTeachableLearnset, + .formSpeciesIdTable = sFlappleFormSpeciesIdTable, + .formChangeTable = sFlappleFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS -#define APPLETUN_MISC_INFO \ - .baseHP = 110, \ - .baseAttack = 85, \ - .baseDefense = 80, \ - .baseSpeed = 30, \ - .baseSpAttack = 100, \ - .baseSpDefense = 80, \ - .types = { TYPE_GRASS, TYPE_DRAGON }, \ - .catchRate = 45, \ - .expYield = 170, \ - .evYield_HP = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_ERRATIC, \ - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_DRAGON }, \ - .abilities = { ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_THICK_FAT }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Appletun"), \ - .cryId = CRY_APPLETUN, \ - .natDexNum = NATIONAL_DEX_APPLETUN, \ - .categoryName = _("Apple Nectar"), \ - .footprint = gMonFootprint_Appletun, \ - LEARNSETS(Appletun), \ - .formSpeciesIdTable = sAppletunFormSpeciesIdTable, \ - .formChangeTable = sAppletunFormChangeTable - [SPECIES_APPLETUN] = { - APPLETUN_MISC_INFO, + .baseHP = 110, + .baseAttack = 85, + .baseDefense = 80, + .baseSpeed = 30, + .baseSpAttack = 100, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), + .catchRate = 45, + .expYield = 170, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_DRAGON), + .abilities = { ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_THICK_FAT }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Appletun"), + .cryId = CRY_APPLETUN, + .natDexNum = NATIONAL_DEX_APPLETUN, + .categoryName = _("Apple Nectar"), .height = 4, .weight = 130, .description = COMPOUND_STRING( @@ -1854,21 +2218,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Appletun, 64, 56), + .frontPic = gMonFrontPic_Appletun, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Appletun, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Appletun, 64, 56), + .backPic = gMonBackPic_Appletun, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Appletun), - ICON(Appletun, 1), + .palette = gMonPalette_Appletun, + .shinyPalette = gMonShinyPalette_Appletun, + .iconSprite = gMonIcon_Appletun, + .iconPalIndex = 1, + FOOTPRINT(Appletun) + .levelUpLearnset = sAppletunLevelUpLearnset, + .teachableLearnset = sAppletunTeachableLearnset, + .formSpeciesIdTable = sAppletunFormSpeciesIdTable, + .formChangeTable = sAppletunFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_APPLETUN_GIGANTAMAX] = { - APPLETUN_MISC_INFO, + .baseHP = 110, + .baseAttack = 85, + .baseDefense = 80, + .baseSpeed = 30, + .baseSpAttack = 100, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), + .catchRate = 45, + .expYield = 170, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_DRAGON), + .abilities = { ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_THICK_FAT }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Appletun"), + .cryId = CRY_APPLETUN, + .natDexNum = NATIONAL_DEX_APPLETUN, + .categoryName = _("Apple Nectar"), .height = 240, .weight = 0, .description = COMPOUND_STRING( @@ -1880,16 +2273,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(AppletunGigantamax, 64, 64), + .frontPic = gMonFrontPic_AppletunGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_AppletunGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(AppletunGigantamax, 64, 64), + .backPic = gMonBackPic_AppletunGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(AppletunGigantamax), - ICON(AppletunGigantamax, 1), + .palette = gMonPalette_AppletunGigantamax, + .shinyPalette = gMonShinyPalette_AppletunGigantamax, + .iconSprite = gMonIcon_AppletunGigantamax, + .iconPalIndex = 1, + FOOTPRINT(Appletun) .isGigantamax = TRUE, + .levelUpLearnset = sAppletunLevelUpLearnset, + .teachableLearnset = sAppletunTeachableLearnset, + .formSpeciesIdTable = sAppletunFormSpeciesIdTable, + .formChangeTable = sAppletunFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS @@ -1902,7 +2304,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 40, .baseSpAttack = 95, .baseSpDefense = 80, - .types = { TYPE_GRASS, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), .catchRate = 45, .expYield = 170, .evYield_Defense = 2, @@ -1910,7 +2312,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_DRAGON), .abilities = { ABILITY_SUPERSWEET_SYRUP, ABILITY_GLUTTONY, ABILITY_STICKY_HOLD }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dipplin"), @@ -1927,17 +2329,75 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dipplin, 64, 64), + .frontPic = gMonFrontPic_Dipplin, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Dipplin, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dipplin, 64, 64), + .backPic = gMonBackPic_Dipplin, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dipplin), - ICON(Dipplin, 1), - //.footprint = gMonFootprint_Dipplin, - LEARNSETS(Dipplin), + .palette = gMonPalette_Dipplin, + .shinyPalette = gMonShinyPalette_Dipplin, + .iconSprite = gMonIcon_Dipplin, + .iconPalIndex = 1, + //FOOTPRINT(Dipplin) + .levelUpLearnset = sDipplinLevelUpLearnset, + .teachableLearnset = sDipplinTeachableLearnset, + .evolutions = EVOLUTION({EVO_MOVE, MOVE_DRAGON_CHEER, SPECIES_HYDRAPPLE}), + }, + + [SPECIES_HYDRAPPLE] = + { + .baseHP = 106, + .baseAttack = 80, + .baseDefense = 110, + .baseSpeed = 44, + .baseSpAttack = 120, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GRASS, TYPE_DRAGON), + .catchRate = 10, + .expYield = 270, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_DRAGON), + .abilities = { ABILITY_SUPERSWEET_SYRUP, ABILITY_REGENERATOR, ABILITY_STICKY_HOLD }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Hydrapple"), + .cryId = CRY_HYDRAPPLE, + .natDexNum = NATIONAL_DEX_HYDRAPPLE, + .categoryName = _("Apple Hydra"), + .height = 18, + .weight = 930, + .description = COMPOUND_STRING( + "These capricious syrpents have\n" + "banded together. On the rare\n" + "occasion that their moods align,\n" + "their true power is unleashed."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Hydrapple, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Hydrapple, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_Hydrapple, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Hydrapple, + .shinyPalette = gMonShinyPalette_Hydrapple, + .iconSprite = gMonIcon_Hydrapple, + .iconPalIndex = 5, + //FOOTPRINT(Hydrapple) + .levelUpLearnset = sHydrappleLevelUpLearnset, + .teachableLearnset = sHydrappleTeachableLearnset, }, #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN @@ -1951,7 +2411,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 46, .baseSpAttack = 35, .baseSpDefense = 50, - .types = { TYPE_GROUND, TYPE_GROUND }, + .types = MON_TYPES(TYPE_GROUND), .catchRate = 255, .expYield = 63, .evYield_Defense = 1, @@ -1959,7 +2419,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_DRAGON), .abilities = { ABILITY_SAND_SPIT, ABILITY_SHED_SKIN, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Silicobra"), @@ -1976,50 +2436,48 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(Silicobra, 40, 40), + .frontPic = gMonFrontPic_Silicobra, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Silicobra, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Silicobra, 56, 48), + .backPic = gMonBackPic_Silicobra, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Silicobra), - ICON(Silicobra, 1), - .footprint = gMonFootprint_Silicobra, - LEARNSETS(Silicobra), + .palette = gMonPalette_Silicobra, + .shinyPalette = gMonShinyPalette_Silicobra, + .iconSprite = gMonIcon_Silicobra, + .iconPalIndex = 1, + FOOTPRINT(Silicobra) + .levelUpLearnset = sSilicobraLevelUpLearnset, + .teachableLearnset = sSilicobraTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SANDACONDA}), }, -#define SANDACONDA_MISC_INFO \ - .baseHP = 72, \ - .baseAttack = 107, \ - .baseDefense = 125, \ - .baseSpeed = 71, \ - .baseSpAttack = 65, \ - .baseSpDefense = 70, \ - .types = { TYPE_GROUND, TYPE_GROUND }, \ - .catchRate = 120, \ - .expYield = 179, \ - .evYield_Defense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, \ - .abilities = { ABILITY_SAND_SPIT, ABILITY_SHED_SKIN, ABILITY_SAND_VEIL }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Sandaconda"), \ - .cryId = CRY_SANDACONDA, \ - .natDexNum = NATIONAL_DEX_SANDACONDA, \ - .categoryName = _("Sand Snake"), \ - .footprint = gMonFootprint_Sandaconda, \ - LEARNSETS(Sandaconda), \ - .formSpeciesIdTable = sSandacondaFormSpeciesIdTable, \ - .formChangeTable = sSandacondaFormChangeTable - [SPECIES_SANDACONDA] = { - SANDACONDA_MISC_INFO, + .baseHP = 72, + .baseAttack = 107, + .baseDefense = 125, + .baseSpeed = 71, + .baseSpAttack = 65, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_GROUND), + .catchRate = 120, + .expYield = 179, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_DRAGON), + .abilities = { ABILITY_SAND_SPIT, ABILITY_SHED_SKIN, ABILITY_SAND_VEIL }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Sandaconda"), + .cryId = CRY_SANDACONDA, + .natDexNum = NATIONAL_DEX_SANDACONDA, + .categoryName = _("Sand Snake"), .height = 38, .weight = 655, .description = COMPOUND_STRING( @@ -2031,21 +2489,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 610, .trainerOffset = 17, - FRONT_PIC(Sandaconda, 64, 40), + .frontPic = gMonFrontPic_Sandaconda, + .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Sandaconda, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sandaconda, 64, 40), + .backPic = gMonBackPic_Sandaconda, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Sandaconda), - ICON(Sandaconda, 1), + .palette = gMonPalette_Sandaconda, + .shinyPalette = gMonShinyPalette_Sandaconda, + .iconSprite = gMonIcon_Sandaconda, + .iconPalIndex = 1, + FOOTPRINT(Sandaconda) + .levelUpLearnset = sSandacondaLevelUpLearnset, + .teachableLearnset = sSandacondaTeachableLearnset, + .formSpeciesIdTable = sSandacondaFormSpeciesIdTable, + .formChangeTable = sSandacondaFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_SANDACONDA_GIGANTAMAX] = { - SANDACONDA_MISC_INFO, + .baseHP = 72, + .baseAttack = 107, + .baseDefense = 125, + .baseSpeed = 71, + .baseSpAttack = 65, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_GROUND), + .catchRate = 120, + .expYield = 179, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_DRAGON), + .abilities = { ABILITY_SAND_SPIT, ABILITY_SHED_SKIN, ABILITY_SAND_VEIL }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Sandaconda"), + .cryId = CRY_SANDACONDA, + .natDexNum = NATIONAL_DEX_SANDACONDA, + .categoryName = _("Sand Snake"), .height = 220, .weight = 0, .description = COMPOUND_STRING( @@ -2057,108 +2544,189 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 610, .trainerOffset = 17, - FRONT_PIC(SandacondaGigantamax, 64, 64), + .frontPic = gMonFrontPic_SandacondaGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_SandacondaGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SandacondaGigantamax, 64, 64), + .backPic = gMonBackPic_SandacondaGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SandacondaGigantamax), - ICON(SandacondaGigantamax, 1), + .palette = gMonPalette_SandacondaGigantamax, + .shinyPalette = gMonShinyPalette_SandacondaGigantamax, + .iconSprite = gMonIcon_SandacondaGigantamax, + .iconPalIndex = 1, + FOOTPRINT(Sandaconda) .isGigantamax = TRUE, + .levelUpLearnset = sSandacondaLevelUpLearnset, + .teachableLearnset = sSandacondaTeachableLearnset, + .formSpeciesIdTable = sSandacondaFormSpeciesIdTable, + .formChangeTable = sSandacondaFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SILICOBRA #if P_FAMILY_CRAMORANT -#define CRAMORANT_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 85, \ - .baseDefense = 55, \ - .baseSpeed = 85, \ - .baseSpAttack = 85, \ - .baseSpDefense = 95, \ - .types = { TYPE_FLYING, TYPE_WATER }, \ - .catchRate = 45, \ - .expYield = 166, \ - .evYield_SpDefense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, \ - .abilities = { ABILITY_GULP_MISSILE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Cramorant"), \ - .cryId = CRY_CRAMORANT, \ - .natDexNum = NATIONAL_DEX_CRAMORANT, \ - .categoryName = _("Gulp"), \ - .height = 8, \ - .weight = 180, \ - .pokemonScale = 366, \ - .pokemonOffset = 7, \ - .trainerScale = 257, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Cramorant, \ - LEARNSETS(Cramorant), \ - .formSpeciesIdTable = sCramorantFormSpeciesIdTable, \ - .formChangeTable = sCramorantFormChangeTable - [SPECIES_CRAMORANT] = { - CRAMORANT_MISC_INFO, + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 55, + .baseSpeed = 85, + .baseSpAttack = 85, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_FLYING, TYPE_WATER), + .catchRate = 45, + .expYield = 166, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), + .abilities = { ABILITY_GULP_MISSILE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Cramorant"), + .cryId = CRY_CRAMORANT, + .natDexNum = NATIONAL_DEX_CRAMORANT, + .categoryName = _("Gulp"), + .height = 8, + .weight = 180, .description = COMPOUND_STRING( "It's so strong that it can knock out some\n" "opponents in a single hit, but it also may\n" "forget what it's battling midfight."), - FRONT_PIC(Cramorant, 64, 64), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Cramorant, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cramorant, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cramorant, 56, 64), + .backPic = gMonBackPic_Cramorant, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cramorant), - ICON(Cramorant, 0), + .palette = gMonPalette_Cramorant, + .shinyPalette = gMonShinyPalette_Cramorant, + .iconSprite = gMonIcon_Cramorant, + .iconPalIndex = 0, + FOOTPRINT(Cramorant) + .levelUpLearnset = sCramorantLevelUpLearnset, + .teachableLearnset = sCramorantTeachableLearnset, + .formSpeciesIdTable = sCramorantFormSpeciesIdTable, + .formChangeTable = sCramorantFormChangeTable, }, [SPECIES_CRAMORANT_GULPING] = { - CRAMORANT_MISC_INFO, + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 55, + .baseSpeed = 85, + .baseSpAttack = 85, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_FLYING, TYPE_WATER), + .catchRate = 45, + .expYield = 166, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), + .abilities = { ABILITY_GULP_MISSILE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Cramorant"), + .cryId = CRY_CRAMORANT, + .natDexNum = NATIONAL_DEX_CRAMORANT, + .categoryName = _("Gulp"), + .height = 8, + .weight = 180, .description = COMPOUND_STRING( "Cramorant's gluttony led it to try\n" "to swallow an Arrokuda whole, which\n" "in turn led to Cramorant getting an\n" "Arrokuda stuck in its throat."), - FRONT_PIC(CramorantGulping, 64, 64), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CramorantGulping, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cramorant, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CramorantGulping, 64, 64), + .backPic = gMonBackPic_CramorantGulping, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CramorantGulping), - ICON(CramorantGulping, 0), + .palette = gMonPalette_CramorantGulping, + .shinyPalette = gMonShinyPalette_CramorantGulping, + .iconSprite = gMonIcon_CramorantGulping, + .iconPalIndex = 0, + FOOTPRINT(Cramorant) + .levelUpLearnset = sCramorantLevelUpLearnset, + .teachableLearnset = sCramorantTeachableLearnset, + .formSpeciesIdTable = sCramorantFormSpeciesIdTable, + .formChangeTable = sCramorantFormChangeTable, }, [SPECIES_CRAMORANT_GORGING] = { - CRAMORANT_MISC_INFO, + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 55, + .baseSpeed = 85, + .baseSpAttack = 85, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_FLYING, TYPE_WATER), + .catchRate = 45, + .expYield = 166, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), + .abilities = { ABILITY_GULP_MISSILE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Cramorant"), + .cryId = CRY_CRAMORANT, + .natDexNum = NATIONAL_DEX_CRAMORANT, + .categoryName = _("Gulp"), + .height = 8, + .weight = 180, .description = COMPOUND_STRING( "This Cramorant has accidentally\n" "gotten a Pikachu lodged in its gullet.\n" "Cramorant is choking a little, but it\n" "isn't really bothered."), - FRONT_PIC(CramorantGorging, 64, 64), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + .frontPic = gMonFrontPic_CramorantGorging, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cramorant, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CramorantGorging, 64, 64), + .backPic = gMonBackPic_CramorantGorging, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CramorantGorging), - ICON(CramorantGorging, 0), + .palette = gMonPalette_CramorantGorging, + .shinyPalette = gMonShinyPalette_CramorantGorging, + .iconSprite = gMonIcon_CramorantGorging, + .iconPalIndex = 0, + FOOTPRINT(Cramorant) + .levelUpLearnset = sCramorantLevelUpLearnset, + .teachableLearnset = sCramorantTeachableLearnset, + .formSpeciesIdTable = sCramorantFormSpeciesIdTable, + .formChangeTable = sCramorantFormChangeTable, }, #endif //P_FAMILY_CRAMORANT @@ -2171,7 +2739,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 66, .baseSpAttack = 40, .baseSpDefense = 30, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 255, .expYield = 56, .evYield_Speed = 1, @@ -2179,7 +2747,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_PROPELLER_TAIL }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Arrokuda"), @@ -2197,17 +2765,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Arrokuda, 56, 32), + .frontPic = gMonFrontPic_Arrokuda, + .frontPicSize = MON_COORDS_SIZE(56, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Arrokuda, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Arrokuda, 48, 40), + .backPic = gMonBackPic_Arrokuda, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Arrokuda), - ICON(Arrokuda, 2), - .footprint = gMonFootprint_Arrokuda, - LEARNSETS(Arrokuda), + .palette = gMonPalette_Arrokuda, + .shinyPalette = gMonShinyPalette_Arrokuda, + .iconSprite = gMonIcon_Arrokuda, + .iconPalIndex = 2, + FOOTPRINT(Arrokuda) + .levelUpLearnset = sArrokudaLevelUpLearnset, + .teachableLearnset = sArrokudaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_BARRASKEWDA}), }, @@ -2219,7 +2792,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 136, .baseSpAttack = 60, .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 60, .expYield = 172, .evYield_Speed = 2, @@ -2227,7 +2800,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_PROPELLER_TAIL }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Barraskewd"), @@ -2245,17 +2818,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Barraskewda, 56, 48), + .frontPic = gMonFrontPic_Barraskewda, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Barraskewda, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Barraskewda, 64, 48), + .backPic = gMonBackPic_Barraskewda, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Barraskewda), - ICON(Barraskewda, 2), - .footprint = gMonFootprint_Barraskewda, - LEARNSETS(Barraskewda), + .palette = gMonPalette_Barraskewda, + .shinyPalette = gMonShinyPalette_Barraskewda, + .iconSprite = gMonIcon_Barraskewda, + .iconPalIndex = 2, + FOOTPRINT(Barraskewda) + .levelUpLearnset = sBarraskewdaLevelUpLearnset, + .teachableLearnset = sBarraskewdaTeachableLearnset, }, #endif //P_FAMILY_ARROKUDA @@ -2268,7 +2846,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 40, .baseSpAttack = 54, .baseSpDefense = 35, - .types = { TYPE_ELECTRIC, TYPE_POISON }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_POISON), .catchRate = 75, .expYield = 48, .evYield_SpAttack = 1, @@ -2276,7 +2854,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_RATTLED, ABILITY_STATIC, ABILITY_KLUTZ }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Toxel"), @@ -2294,49 +2872,49 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Toxel, 40, 48), + .frontPic = gMonFrontPic_Toxel, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Toxel, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Toxel, 48, 56), + .backPic = gMonBackPic_Toxel, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Toxel), - ICON(Toxel, 2), - .footprint = gMonFootprint_Toxel, - LEARNSETS(Toxel), + .palette = gMonPalette_Toxel, + .shinyPalette = gMonShinyPalette_Toxel, + .iconSprite = gMonIcon_Toxel, + .iconPalIndex = 2, + FOOTPRINT(Toxel) + .levelUpLearnset = sToxelLevelUpLearnset, + .teachableLearnset = sToxelTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_NATURE_AMPED, 30, SPECIES_TOXTRICITY_AMPED}, {EVO_LEVEL_NATURE_LOW_KEY, 30, SPECIES_TOXTRICITY_LOW_KEY}), }, -#define TOXTRICITY_MISC_INFO \ - .baseHP = 75, \ - .baseAttack = 98, \ - .baseDefense = 70, \ - .baseSpeed = 75, \ - .baseSpAttack = 114, \ - .baseSpDefense = 70, \ - .types = { TYPE_ELECTRIC, TYPE_POISON }, \ - .catchRate = 45, \ - .expYield = 176, \ - .evYield_SpAttack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Toxtricity"), \ - .natDexNum = NATIONAL_DEX_TOXTRICITY, \ - .categoryName = _("Punk"), \ - .formSpeciesIdTable = sToxtricityFormSpeciesIdTable, \ - .formChangeTable = sToxtricityAmpedFormChangeTable - [SPECIES_TOXTRICITY_AMPED] = { - TOXTRICITY_MISC_INFO, + .baseHP = 75, + .baseAttack = 98, + .baseDefense = 70, + .baseSpeed = 75, + .baseSpAttack = 114, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_POISON), + .catchRate = 45, + .expYield = 176, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PUNK_ROCK, ABILITY_PLUS, ABILITY_TECHNICIAN }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Toxtricity"), .cryId = CRY_TOXTRICITY_AMPED, + .natDexNum = NATIONAL_DEX_TOXTRICITY, + .categoryName = _("Punk"), .height = 16, .weight = 400, .description = COMPOUND_STRING( @@ -2348,26 +2926,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(ToxtricityAmped, 48, 64), + .frontPic = gMonFrontPic_ToxtricityAmped, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Toxtricity, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ToxtricityAmped, 56, 64), + .backPic = gMonBackPic_ToxtricityAmped, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ToxtricityAmped), - ICON(ToxtricityAmped, 2), - .footprint = gMonFootprint_Toxtricity, - LEARNSETS(ToxtricityAmped), - + .palette = gMonPalette_ToxtricityAmped, + .shinyPalette = gMonShinyPalette_ToxtricityAmped, + .iconSprite = gMonIcon_ToxtricityAmped, + .iconPalIndex = 2, + FOOTPRINT(Toxtricity) + .levelUpLearnset = sToxtricityAmpedLevelUpLearnset, + .teachableLearnset = sToxtricityAmpedTeachableLearnset, + .formSpeciesIdTable = sToxtricityFormSpeciesIdTable, + .formChangeTable = sToxtricityAmpedFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_TOXTRICITY_AMPED_GIGANTAMAX] = { - TOXTRICITY_MISC_INFO, + .baseHP = 75, + .baseAttack = 98, + .baseDefense = 70, + .baseSpeed = 75, + .baseSpAttack = 114, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_POISON), + .catchRate = 45, + .expYield = 176, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PUNK_ROCK, ABILITY_PLUS, ABILITY_TECHNICIAN }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Toxtricity"), .cryId = CRY_TOXTRICITY_AMPED, + .natDexNum = NATIONAL_DEX_TOXTRICITY, + .categoryName = _("Punk"), .height = 240, .weight = 0, .description = gToxtricityGigantamaxPokedexText, @@ -2375,26 +2977,51 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(ToxtricityGigantamax, 64, 64), + .frontPic = gMonFrontPic_ToxtricityGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_ToxtricityGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ToxtricityGigantamax, 64, 64), + .backPic = gMonBackPic_ToxtricityGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ToxtricityGigantamax), - ICON(ToxtricityGigantamax, 0), - .footprint = gMonFootprint_Toxtricity, - LEARNSETS(ToxtricityAmped), + .palette = gMonPalette_ToxtricityGigantamax, + .shinyPalette = gMonShinyPalette_ToxtricityGigantamax, + .iconSprite = gMonIcon_ToxtricityGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Toxtricity) .isGigantamax = TRUE, + .levelUpLearnset = sToxtricityAmpedLevelUpLearnset, + .teachableLearnset = sToxtricityAmpedTeachableLearnset, + .formSpeciesIdTable = sToxtricityFormSpeciesIdTable, + .formChangeTable = sToxtricityAmpedFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS [SPECIES_TOXTRICITY_LOW_KEY] = { - TOXTRICITY_MISC_INFO, + .baseHP = 75, + .baseAttack = 98, + .baseDefense = 70, + .baseSpeed = 75, + .baseSpAttack = 114, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_POISON), + .catchRate = 45, + .expYield = 176, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PUNK_ROCK, ABILITY_MINUS, ABILITY_TECHNICIAN }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Toxtricity"), .cryId = CRY_TOXTRICITY_LOW_KEY, + .natDexNum = NATIONAL_DEX_TOXTRICITY, + .categoryName = _("Punk"), .height = 16, .weight = 400, .description = COMPOUND_STRING( @@ -2405,25 +3032,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(ToxtricityLowKey, 48, 64), + .frontPic = gMonFrontPic_ToxtricityLowKey, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Toxtricity, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ToxtricityLowKey, 48, 64), + .backPic = gMonBackPic_ToxtricityLowKey, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ToxtricityLowKey), - ICON(ToxtricityLowKey, 2), - .footprint = gMonFootprint_Toxtricity, - LEARNSETS(ToxtricityLowKey), + .palette = gMonPalette_ToxtricityLowKey, + .shinyPalette = gMonShinyPalette_ToxtricityLowKey, + .iconSprite = gMonIcon_ToxtricityLowKey, + .iconPalIndex = 2, + FOOTPRINT(Toxtricity) + .levelUpLearnset = sToxtricityLowKeyLevelUpLearnset, + .teachableLearnset = sToxtricityLowKeyTeachableLearnset, + .formSpeciesIdTable = sToxtricityFormSpeciesIdTable, + .formChangeTable = sToxtricityAmpedFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX] = { - TOXTRICITY_MISC_INFO, + .baseHP = 75, + .baseAttack = 98, + .baseDefense = 70, + .baseSpeed = 75, + .baseSpAttack = 114, + .baseSpDefense = 70, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_POISON), + .catchRate = 45, + .expYield = 176, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PUNK_ROCK, ABILITY_MINUS, ABILITY_TECHNICIAN }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Toxtricity"), .cryId = CRY_TOXTRICITY_LOW_KEY, + .natDexNum = NATIONAL_DEX_TOXTRICITY, + .categoryName = _("Punk"), .height = 240, .weight = 0, .description = gToxtricityGigantamaxPokedexText, @@ -2431,18 +3083,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(ToxtricityGigantamax, 64, 64), + .frontPic = gMonFrontPic_ToxtricityGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_ToxtricityGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ToxtricityGigantamax, 64, 64), + .backPic = gMonBackPic_ToxtricityGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ToxtricityGigantamax), - ICON(ToxtricityGigantamax, 0), - .footprint = gMonFootprint_Toxtricity, - LEARNSETS(ToxtricityLowKey), + .palette = gMonPalette_ToxtricityGigantamax, + .shinyPalette = gMonShinyPalette_ToxtricityGigantamax, + .iconSprite = gMonIcon_ToxtricityGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Toxtricity) .isGigantamax = TRUE, + .levelUpLearnset = sToxtricityLowKeyLevelUpLearnset, + .teachableLearnset = sToxtricityLowKeyTeachableLearnset, + .formSpeciesIdTable = sToxtricityFormSpeciesIdTable, + .formChangeTable = sToxtricityAmpedFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_TOXEL @@ -2456,7 +3115,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 45, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_BUG }, + .types = MON_TYPES(TYPE_FIRE, TYPE_BUG), .catchRate = 190, .expYield = 61, .evYield_Attack = 1, @@ -2464,7 +3123,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE, ABILITY_FLAME_BODY }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Sizzlipede"), @@ -2481,50 +3140,48 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sizzlipede, 48, 32), + .frontPic = gMonFrontPic_Sizzlipede, + .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Sizzlipede, .frontAnimId = ANIM_H_VIBRATE, - BACK_PIC(Sizzlipede, 40, 32), + .backPic = gMonBackPic_Sizzlipede, + .backPicSize = MON_COORDS_SIZE(40, 32), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Sizzlipede), - ICON(Sizzlipede, 0), - .footprint = gMonFootprint_Sizzlipede, - LEARNSETS(Sizzlipede), + .palette = gMonPalette_Sizzlipede, + .shinyPalette = gMonShinyPalette_Sizzlipede, + .iconSprite = gMonIcon_Sizzlipede, + .iconPalIndex = 0, + FOOTPRINT(Sizzlipede) + .levelUpLearnset = sSizzlipedeLevelUpLearnset, + .teachableLearnset = sSizzlipedeTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_CENTISKORCH}), }, -#define CENTISKORCH_MISC_INFO \ - .baseHP = 100, \ - .baseAttack = 115, \ - .baseDefense = 65, \ - .baseSpeed = 65, \ - .baseSpAttack = 90, \ - .baseSpDefense = 90, \ - .types = { TYPE_FIRE, TYPE_BUG }, \ - .catchRate = 75, \ - .expYield = 184, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, \ - .abilities = { ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE, ABILITY_FLAME_BODY }, \ - .bodyColor = BODY_COLOR_RED, \ - .speciesName = _("Centiskorc"), \ - .cryId = CRY_CENTISKORCH, \ - .natDexNum = NATIONAL_DEX_CENTISKORCH, \ - .categoryName = _("Radiator"), \ - .footprint = gMonFootprint_Centiskorch, \ - LEARNSETS(Centiskorch), \ - .formSpeciesIdTable = sCentiskorchFormSpeciesIdTable, \ - .formChangeTable = sCentiskorchFormChangeTable - [SPECIES_CENTISKORCH] = { - CENTISKORCH_MISC_INFO, + .baseHP = 100, + .baseAttack = 115, + .baseDefense = 65, + .baseSpeed = 65, + .baseSpAttack = 90, + .baseSpDefense = 90, + .types = MON_TYPES(TYPE_FIRE, TYPE_BUG), + .catchRate = 75, + .expYield = 184, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE, ABILITY_FLAME_BODY }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Centiskorc"), + .cryId = CRY_CENTISKORCH, + .natDexNum = NATIONAL_DEX_CENTISKORCH, + .categoryName = _("Radiator"), .height = 30, .weight = 1200, .description = COMPOUND_STRING( @@ -2536,21 +3193,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Centiskorch, 64, 56), + .frontPic = gMonFrontPic_Centiskorch, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Centiskorch, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Centiskorch, 56, 64), + .backPic = gMonBackPic_Centiskorch, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Centiskorch), - ICON(Centiskorch, 0), + .palette = gMonPalette_Centiskorch, + .shinyPalette = gMonShinyPalette_Centiskorch, + .iconSprite = gMonIcon_Centiskorch, + .iconPalIndex = 0, + FOOTPRINT(Centiskorch) + .levelUpLearnset = sCentiskorchLevelUpLearnset, + .teachableLearnset = sCentiskorchTeachableLearnset, + .formSpeciesIdTable = sCentiskorchFormSpeciesIdTable, + .formChangeTable = sCentiskorchFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_CENTISKORCH_GIGANTAMAX] = { - CENTISKORCH_MISC_INFO, + .baseHP = 100, + .baseAttack = 115, + .baseDefense = 65, + .baseSpeed = 65, + .baseSpAttack = 90, + .baseSpDefense = 90, + .types = MON_TYPES(TYPE_FIRE, TYPE_BUG), + .catchRate = 75, + .expYield = 184, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), + .abilities = { ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE, ABILITY_FLAME_BODY }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Centiskorc"), + .cryId = CRY_CENTISKORCH, + .natDexNum = NATIONAL_DEX_CENTISKORCH, + .categoryName = _("Radiator"), .height = 750, .weight = 0, .description = COMPOUND_STRING( @@ -2562,16 +3248,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(CentiskorchGigantamax, 64, 64), + .frontPic = gMonFrontPic_CentiskorchGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_CentiskorchGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CentiskorchGigantamax, 64, 64), + .backPic = gMonBackPic_CentiskorchGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CentiskorchGigantamax), - ICON(CentiskorchGigantamax, 0), + .palette = gMonPalette_CentiskorchGigantamax, + .shinyPalette = gMonShinyPalette_CentiskorchGigantamax, + .iconSprite = gMonIcon_CentiskorchGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Centiskorch) .isGigantamax = TRUE, + .levelUpLearnset = sCentiskorchLevelUpLearnset, + .teachableLearnset = sCentiskorchTeachableLearnset, + .formSpeciesIdTable = sCentiskorchFormSpeciesIdTable, + .formChangeTable = sCentiskorchFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SIZZLIPEDE @@ -2585,7 +3280,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 32, .baseSpAttack = 50, .baseSpDefense = 50, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 180, .expYield = 62, .evYield_Attack = 1, @@ -2593,7 +3288,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_LIMBER, ABILITY_NONE, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Clobbopus"), @@ -2611,17 +3306,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Clobbopus, 48, 40), + .frontPic = gMonFrontPic_Clobbopus, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Clobbopus, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Clobbopus, 64, 40), + .backPic = gMonBackPic_Clobbopus, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Clobbopus), - ICON(Clobbopus, 0), - .footprint = gMonFootprint_Clobbopus, - LEARNSETS(Clobbopus), + .palette = gMonPalette_Clobbopus, + .shinyPalette = gMonShinyPalette_Clobbopus, + .iconSprite = gMonIcon_Clobbopus, + .iconPalIndex = 0, + FOOTPRINT(Clobbopus) + .levelUpLearnset = sClobbopusLevelUpLearnset, + .teachableLearnset = sClobbopusTeachableLearnset, .evolutions = EVOLUTION({EVO_MOVE, MOVE_TAUNT, SPECIES_GRAPPLOCT}), }, @@ -2633,7 +3333,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 42, .baseSpAttack = 70, .baseSpDefense = 80, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, .expYield = 168, .evYield_Attack = 2, @@ -2641,7 +3341,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_LIMBER, ABILITY_NONE, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Grapploct"), @@ -2658,145 +3358,240 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - FRONT_PIC(Grapploct, 48, 56), + .frontPic = gMonFrontPic_Grapploct, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Grapploct, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Grapploct, 56, 56), + .backPic = gMonBackPic_Grapploct, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Grapploct), - ICON(Grapploct, 2), - .footprint = gMonFootprint_Grapploct, - LEARNSETS(Grapploct), + .palette = gMonPalette_Grapploct, + .shinyPalette = gMonShinyPalette_Grapploct, + .iconSprite = gMonIcon_Grapploct, + .iconPalIndex = 2, + FOOTPRINT(Grapploct) + .levelUpLearnset = sGrapploctLevelUpLearnset, + .teachableLearnset = sGrapploctTeachableLearnset, }, #endif //P_FAMILY_CLOBBOPUS #if P_FAMILY_SINISTEA -#define SINISTEA_MISC_INFO \ - .baseHP = 40, \ - .baseAttack = 45, \ - .baseDefense = 45, \ - .baseSpeed = 50, \ - .baseSpAttack = 74, \ - .baseSpDefense = 54, \ - .types = { TYPE_GHOST, TYPE_GHOST }, \ - .catchRate = 120, \ - .expYield = 62, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Sinistea"), \ - .cryId = CRY_SINISTEA, \ - .natDexNum = NATIONAL_DEX_SINISTEA, \ - .categoryName = _("Black Tea"), \ - .height = 1, \ - .weight = 2, \ - .pokemonScale = 682, \ - .pokemonOffset = 24, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Sinistea, 40, 32), \ - .frontPicYOffset = 17, \ - .frontAnimFrames = sAnims_Sinistea, \ - BACK_PIC(Sinistea, 48, 32), \ - .backPicYOffset = 16, \ - PALETTES(Sinistea), \ - ICON(Sinistea, 2), \ - .footprint = gMonFootprint_Sinistea, \ - LEARNSETS(Sinistea), \ - .formSpeciesIdTable = sSinisteaFormSpeciesIdTable - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - [SPECIES_SINISTEA_PHONY] = { - SINISTEA_MISC_INFO, + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 45, + .baseSpeed = 50, + .baseSpAttack = 74, + .baseSpDefense = 54, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 120, + .expYield = 62, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Sinistea"), + .cryId = CRY_SINISTEA, + .natDexNum = NATIONAL_DEX_SINISTEA, + .categoryName = _("Black Tea"), + .height = 1, + .weight = 2, .description = COMPOUND_STRING( "This Pokémon is said to have been born\n" "when a lonely spirit possessed a cold,\n" "leftover cup of tea."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Sinistea, + .frontPicSize = MON_COORDS_SIZE(40, 32), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_Sinistea, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 9, + .backPic = gMonBackPic_Sinistea, + .backPicSize = MON_COORDS_SIZE(48, 32), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Sinistea, + .shinyPalette = gMonShinyPalette_Sinistea, + .iconSprite = gMonIcon_Sinistea, + .iconPalIndex = 2, + FOOTPRINT(Sinistea) + .levelUpLearnset = sSinisteaLevelUpLearnset, + .teachableLearnset = sSinisteaTeachableLearnset, + .formSpeciesIdTable = sSinisteaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_CRACKED_POT, SPECIES_POLTEAGEIST_PHONY}), }, [SPECIES_SINISTEA_ANTIQUE] = { - SINISTEA_MISC_INFO, + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 45, + .baseSpeed = 50, + .baseSpAttack = 74, + .baseSpDefense = 54, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 120, + .expYield = 62, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Sinistea"), + .cryId = CRY_SINISTEA, + .natDexNum = NATIONAL_DEX_SINISTEA, + .categoryName = _("Black Tea"), + .height = 1, + .weight = 2, .description = COMPOUND_STRING( "The swirl pattern in this Pokémon's\n" "body is its weakness. If it gets\n" "stirred, the swirl loses its shape, and\n" "Sinistea gets dizzy."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Sinistea, + .frontPicSize = MON_COORDS_SIZE(40, 32), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_Sinistea, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 10, + .backPic = gMonBackPic_Sinistea, + .backPicSize = MON_COORDS_SIZE(48, 32), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Sinistea, + .shinyPalette = gMonShinyPalette_Sinistea, + .iconSprite = gMonIcon_Sinistea, + .iconPalIndex = 2, + FOOTPRINT(Sinistea) + .levelUpLearnset = sSinisteaLevelUpLearnset, + .teachableLearnset = sSinisteaTeachableLearnset, + .formSpeciesIdTable = sSinisteaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_CHIPPED_POT, SPECIES_POLTEAGEIST_ANTIQUE}), }, -#define POLTEAGEIST_MISC_INFO \ - .baseHP = 60, \ - .baseAttack = 65, \ - .baseDefense = 65, \ - .baseSpeed = 70, \ - .baseSpAttack = 134, \ - .baseSpDefense = 114, \ - .types = { TYPE_GHOST, TYPE_GHOST }, \ - .catchRate = 60, \ - .expYield = 178, \ - .evYield_SpAttack = 2, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Polteageis"), \ - .cryId = CRY_POLTEAGEIST, \ - .natDexNum = NATIONAL_DEX_POLTEAGEIST, \ - .categoryName = _("Black Tea"), \ - .height = 2, \ - .weight = 4, \ - .pokemonScale = 682, \ - .pokemonOffset = 24, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Polteageist, 48, 48), \ - .frontPicYOffset = 11, \ - .frontAnimFrames = sAnims_Polteageist, \ - BACK_PIC(Polteageist, 64, 40), \ - .backPicYOffset = 13, \ - PALETTES(Polteageist), \ - ICON(Polteageist, 2), \ - .footprint = gMonFootprint_Polteageist, \ - LEARNSETS(Polteageist), \ - .formSpeciesIdTable = sPolteageistFormSpeciesIdTable - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - [SPECIES_POLTEAGEIST_PHONY] = { - POLTEAGEIST_MISC_INFO, + .baseHP = 60, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 70, + .baseSpAttack = 134, + .baseSpDefense = 114, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 60, + .expYield = 178, + .evYield_SpAttack = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Polteageis"), + .cryId = CRY_POLTEAGEIST, + .natDexNum = NATIONAL_DEX_POLTEAGEIST, + .categoryName = _("Black Tea"), + .height = 2, + .weight = 4, .description = COMPOUND_STRING( "This species lives in antique teapots.\n" "Most pots are forgeries, but on rare\n" "occasions, an authentic work is found."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Polteageist, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Polteageist, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 12, + .backPic = gMonBackPic_Polteageist, + .backPicSize = MON_COORDS_SIZE(64, 40), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Polteageist, + .shinyPalette = gMonShinyPalette_Polteageist, + .iconSprite = gMonIcon_Polteageist, + .iconPalIndex = 2, + FOOTPRINT(Polteageist) + .levelUpLearnset = sPolteageistLevelUpLearnset, + .teachableLearnset = sPolteageistTeachableLearnset, + .formSpeciesIdTable = sPolteageistFormSpeciesIdTable, }, [SPECIES_POLTEAGEIST_ANTIQUE] = { - POLTEAGEIST_MISC_INFO, + .baseHP = 60, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 70, + .baseSpAttack = 134, + .baseSpDefense = 114, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 60, + .expYield = 178, + .evYield_SpAttack = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Polteageis"), + .cryId = CRY_POLTEAGEIST, + .natDexNum = NATIONAL_DEX_POLTEAGEIST, + .categoryName = _("Black Tea"), + .height = 2, + .weight = 4, .description = COMPOUND_STRING( "Trainers Polteageist trusts will be\n" "allowed to experience its\n" "distinctive flavor and aroma firsthand by\n" "sampling just a tiny bit of its tea."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Polteageist, + .frontPicSize = MON_COORDS_SIZE(48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Polteageist, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 11, + .backPic = gMonBackPic_Polteageist, + .backPicSize = MON_COORDS_SIZE(64, 40), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Polteageist, + .shinyPalette = gMonShinyPalette_Polteageist, + .iconSprite = gMonIcon_Polteageist, + .iconPalIndex = 2, + FOOTPRINT(Polteageist) + .levelUpLearnset = sPolteageistLevelUpLearnset, + .teachableLearnset = sPolteageistTeachableLearnset, + .formSpeciesIdTable = sPolteageistFormSpeciesIdTable, }, #endif //P_FAMILY_SINISTEA @@ -2809,7 +3604,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 39, .baseSpAttack = 56, .baseSpDefense = 53, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 235, .expYield = 53, .evYield_SpAttack = 1, @@ -2817,7 +3612,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Hatenna"), @@ -2835,17 +3630,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Hatenna, 48, 48), + .frontPic = gMonFrontPic_Hatenna, + .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Hatenna, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Hatenna, 40, 40), + .backPic = gMonBackPic_Hatenna, + .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Hatenna), - ICON(Hatenna, 0), - .footprint = gMonFootprint_Hatenna, - LEARNSETS(Hatenna), + .palette = gMonPalette_Hatenna, + .shinyPalette = gMonShinyPalette_Hatenna, + .iconSprite = gMonIcon_Hatenna, + .iconPalIndex = 0, + FOOTPRINT(Hatenna) + .levelUpLearnset = sHatennaLevelUpLearnset, + .teachableLearnset = sHatennaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_HATTREM}), }, @@ -2857,7 +3657,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 49, .baseSpAttack = 86, .baseSpDefense = 73, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 120, .expYield = 130, .evYield_SpAttack = 2, @@ -2865,7 +3665,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Hattrem"), @@ -2882,50 +3682,48 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Hattrem, 56, 48), + .frontPic = gMonFrontPic_Hattrem, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Hattrem, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Hattrem, 56, 48), + .backPic = gMonBackPic_Hattrem, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Hattrem), - ICON(Hattrem, 0), - .footprint = gMonFootprint_Hattrem, - LEARNSETS(Hattrem), + .palette = gMonPalette_Hattrem, + .shinyPalette = gMonShinyPalette_Hattrem, + .iconSprite = gMonIcon_Hattrem, + .iconPalIndex = 0, + FOOTPRINT(Hattrem) + .levelUpLearnset = sHattremLevelUpLearnset, + .teachableLearnset = sHattremTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_HATTERENE}), }, -#define HATTERENE_MISC_INFO \ - .baseHP = 57, \ - .baseAttack = 90, \ - .baseDefense = 95, \ - .baseSpeed = 29, \ - .baseSpAttack = 136, \ - .baseSpDefense = 103, \ - .types = { TYPE_PSYCHIC, TYPE_FAIRY }, \ - .catchRate = 45, \ - .expYield = 255, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, \ - .abilities = { ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE }, \ - .bodyColor = BODY_COLOR_PINK, \ - .speciesName = _("Hatterene"), \ - .cryId = CRY_HATTERENE, \ - .natDexNum = NATIONAL_DEX_HATTERENE, \ - .categoryName = _("Silent"), \ - .footprint = gMonFootprint_Hatterene, \ - LEARNSETS(Hatterene), \ - .formSpeciesIdTable = sHattereneFormSpeciesIdTable, \ - .formChangeTable = sHattereneFormChangeTable - [SPECIES_HATTERENE] = { - HATTERENE_MISC_INFO, + .baseHP = 57, + .baseAttack = 90, + .baseDefense = 95, + .baseSpeed = 29, + .baseSpAttack = 136, + .baseSpDefense = 103, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FAIRY), + .catchRate = 45, + .expYield = 255, + .evYield_SpAttack = 3, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), + .abilities = { ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Hatterene"), + .cryId = CRY_HATTERENE, + .natDexNum = NATIONAL_DEX_HATTERENE, + .categoryName = _("Silent"), .height = 21, .weight = 51, .description = COMPOUND_STRING( @@ -2936,21 +3734,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 365, .trainerOffset = 7, - FRONT_PIC(Hatterene, 48, 64), + .frontPic = gMonFrontPic_Hatterene, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Hatterene, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Hatterene, 56, 64), + .backPic = gMonBackPic_Hatterene, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Hatterene), - ICON(Hatterene, 0), + .palette = gMonPalette_Hatterene, + .shinyPalette = gMonShinyPalette_Hatterene, + .iconSprite = gMonIcon_Hatterene, + .iconPalIndex = 0, + FOOTPRINT(Hatterene) + .levelUpLearnset = sHattereneLevelUpLearnset, + .teachableLearnset = sHattereneTeachableLearnset, + .formSpeciesIdTable = sHattereneFormSpeciesIdTable, + .formChangeTable = sHattereneFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_HATTERENE_GIGANTAMAX] = { - HATTERENE_MISC_INFO, + .baseHP = 57, + .baseAttack = 90, + .baseDefense = 95, + .baseSpeed = 29, + .baseSpAttack = 136, + .baseSpDefense = 103, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_FAIRY), + .catchRate = 45, + .expYield = 255, + .evYield_SpAttack = 3, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), + .abilities = { ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Hatterene"), + .cryId = CRY_HATTERENE, + .natDexNum = NATIONAL_DEX_HATTERENE, + .categoryName = _("Silent"), .height = 260, .weight = 0, .description = COMPOUND_STRING( @@ -2962,16 +3789,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 365, .trainerOffset = 7, - FRONT_PIC(HattereneGigantamax, 64, 64), + .frontPic = gMonFrontPic_HattereneGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_HattereneGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(HattereneGigantamax, 64, 64), + .backPic = gMonBackPic_HattereneGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(HattereneGigantamax), - ICON(HattereneGigantamax, 0), + .palette = gMonPalette_HattereneGigantamax, + .shinyPalette = gMonShinyPalette_HattereneGigantamax, + .iconSprite = gMonIcon_HattereneGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Hatterene) .isGigantamax = TRUE, + .levelUpLearnset = sHattereneLevelUpLearnset, + .teachableLearnset = sHattereneTeachableLearnset, + .formSpeciesIdTable = sHattereneFormSpeciesIdTable, + .formChangeTable = sHattereneFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_HATENNA @@ -2985,7 +3821,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 50, .baseSpAttack = 55, .baseSpDefense = 40, - .types = { TYPE_DARK, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_DARK, TYPE_FAIRY), .catchRate = 255, .expYield = 53, .evYield_SpAttack = 1, @@ -2993,7 +3829,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PRANKSTER, ABILITY_FRISK, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Impidimp"), @@ -3011,17 +3847,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Impidimp, 48, 40), + .frontPic = gMonFrontPic_Impidimp, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Impidimp, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Impidimp, 48, 40), + .backPic = gMonBackPic_Impidimp, + .backPicSize = MON_COORDS_SIZE(48, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Impidimp), - ICON(Impidimp, 0), - .footprint = gMonFootprint_Impidimp, - LEARNSETS(Impidimp), + .palette = gMonPalette_Impidimp, + .shinyPalette = gMonShinyPalette_Impidimp, + .iconSprite = gMonIcon_Impidimp, + .iconPalIndex = 0, + FOOTPRINT(Impidimp) + .levelUpLearnset = sImpidimpLevelUpLearnset, + .teachableLearnset = sImpidimpTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_MORGREM}), }, @@ -3033,7 +3874,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 70, .baseSpAttack = 75, .baseSpDefense = 55, - .types = { TYPE_DARK, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_DARK, TYPE_FAIRY), .catchRate = 120, .expYield = 130, .evYield_SpAttack = 2, @@ -3041,7 +3882,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_PRANKSTER, ABILITY_FRISK, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Morgrem"), @@ -3059,50 +3900,49 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - FRONT_PIC(Morgrem, 48, 56), + .frontPic = gMonFrontPic_Morgrem, + .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Morgrem, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Morgrem, 56, 48), + .backPic = gMonBackPic_Morgrem, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Morgrem), - ICON(Morgrem, 0), - .footprint = gMonFootprint_Morgrem, - LEARNSETS(Morgrem), + .palette = gMonPalette_Morgrem, + .shinyPalette = gMonShinyPalette_Morgrem, + .iconSprite = gMonIcon_Morgrem, + .iconPalIndex = 0, + FOOTPRINT(Morgrem) + .levelUpLearnset = sMorgremLevelUpLearnset, + .teachableLearnset = sMorgremTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_GRIMMSNARL}), }, -#define GRIMMSNARL_MISC_INFO \ - .baseHP = 95, \ - .baseAttack = 120, \ - .baseDefense = 65, \ - .baseSpeed = 60, \ - .baseSpAttack = 95, \ - .baseSpDefense = 75, \ - .types = { TYPE_DARK, TYPE_FAIRY }, \ - .catchRate = 45, \ - .expYield = 255, \ - .evYield_Attack = 3, \ - .genderRatio = MON_MALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE }, \ - .abilities = { ABILITY_PRANKSTER, ABILITY_FRISK, ABILITY_PICKPOCKET }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Grimmsnarl"), \ - .cryId = CRY_GRIMMSNARL, \ - .natDexNum = NATIONAL_DEX_GRIMMSNARL, \ - .categoryName = _("Bulk Up"), \ - .footprint = gMonFootprint_Grimmsnarl, \ - LEARNSETS(Grimmsnarl), \ - .formSpeciesIdTable = sGrimmsnarlFormSpeciesIdTable, \ - .formChangeTable = sGrimmsnarlFormChangeTable [SPECIES_GRIMMSNARL] = { - GRIMMSNARL_MISC_INFO, + .baseHP = 95, + .baseAttack = 120, + .baseDefense = 65, + .baseSpeed = 60, + .baseSpAttack = 95, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_DARK, TYPE_FAIRY), + .catchRate = 45, + .expYield = 255, + .evYield_Attack = 3, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE), + .abilities = { ABILITY_PRANKSTER, ABILITY_FRISK, ABILITY_PICKPOCKET }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Grimmsnarl"), + .cryId = CRY_GRIMMSNARL, + .natDexNum = NATIONAL_DEX_GRIMMSNARL, + .categoryName = _("Bulk Up"), .height = 15, .weight = 610, .description = COMPOUND_STRING( @@ -3113,21 +3953,50 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(Grimmsnarl, 64, 64), + .frontPic = gMonFrontPic_Grimmsnarl, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Grimmsnarl, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Grimmsnarl, 64, 48), + .backPic = gMonBackPic_Grimmsnarl, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Grimmsnarl), - ICON(Grimmsnarl, 0), + .palette = gMonPalette_Grimmsnarl, + .shinyPalette = gMonShinyPalette_Grimmsnarl, + .iconSprite = gMonIcon_Grimmsnarl, + .iconPalIndex = 0, + FOOTPRINT(Grimmsnarl) + .levelUpLearnset = sGrimmsnarlLevelUpLearnset, + .teachableLearnset = sGrimmsnarlTeachableLearnset, + .formSpeciesIdTable = sGrimmsnarlFormSpeciesIdTable, + .formChangeTable = sGrimmsnarlFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_GRIMMSNARL_GIGANTAMAX] = { - GRIMMSNARL_MISC_INFO, + .baseHP = 95, + .baseAttack = 120, + .baseDefense = 65, + .baseSpeed = 60, + .baseSpAttack = 95, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_DARK, TYPE_FAIRY), + .catchRate = 45, + .expYield = 255, + .evYield_Attack = 3, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE), + .abilities = { ABILITY_PRANKSTER, ABILITY_FRISK, ABILITY_PICKPOCKET }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Grimmsnarl"), + .cryId = CRY_GRIMMSNARL, + .natDexNum = NATIONAL_DEX_GRIMMSNARL, + .categoryName = _("Bulk Up"), .height = 320, .weight = 0, .description = COMPOUND_STRING( @@ -3139,16 +4008,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - FRONT_PIC(GrimmsnarlGigantamax, 64, 64), + .frontPic = gMonFrontPic_GrimmsnarlGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_GrimmsnarlGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GrimmsnarlGigantamax, 64, 64), + .backPic = gMonBackPic_GrimmsnarlGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GrimmsnarlGigantamax), - ICON(GrimmsnarlGigantamax, 0), + .palette = gMonPalette_GrimmsnarlGigantamax, + .shinyPalette = gMonShinyPalette_GrimmsnarlGigantamax, + .iconSprite = gMonIcon_GrimmsnarlGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Grimmsnarl) .isGigantamax = TRUE, + .levelUpLearnset = sGrimmsnarlLevelUpLearnset, + .teachableLearnset = sGrimmsnarlTeachableLearnset, + .formSpeciesIdTable = sGrimmsnarlFormSpeciesIdTable, + .formChangeTable = sGrimmsnarlFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_IMPIDIMP @@ -3162,7 +4040,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 34, .baseSpAttack = 50, .baseSpDefense = 61, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 200, .expYield = 54, .evYield_SpDefense = 1, @@ -3170,7 +4048,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_AROMA_VEIL }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Milcery"), @@ -3187,18 +4065,23 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Milcery, 40, 40), + .frontPic = gMonFrontPic_Milcery, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Milcery, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 10, - BACK_PIC(Milcery, 56, 48), + .backPic = gMonBackPic_Milcery, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Milcery), - ICON(Milcery, 1), - .footprint = gMonFootprint_Milcery, - LEARNSETS(Milcery), + .palette = gMonPalette_Milcery, + .shinyPalette = gMonShinyPalette_Milcery, + .iconSprite = gMonIcon_Milcery, + .iconPalIndex = 1, + FOOTPRINT(Milcery) + .levelUpLearnset = sMilceryLevelUpLearnset, + .teachableLearnset = sMilceryTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM}, {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM}, {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM}, @@ -3217,7 +4100,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 64, \ .baseSpAttack = 110, \ .baseSpDefense = 121, \ - .types = { TYPE_FAIRY, TYPE_FAIRY }, \ + .types = MON_TYPES(TYPE_FAIRY), \ .catchRate = 100, \ .expYield = 173, \ .evYield_SpDefense = 2, \ @@ -3225,40 +4108,43 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, \ .friendship = STANDARD_FRIENDSHIP, \ .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS }, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS), \ .abilities = { ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_AROMA_VEIL }, \ .bodyColor = color -#define ALCREMIE_REGULAR_SPECIES_INFO(sweet, cream, color) \ - { \ - ALCREMIE_MISC_INFO(color), \ - .speciesName = _("Alcremie"), \ - .cryId = CRY_ALCREMIE, \ - .natDexNum = NATIONAL_DEX_ALCREMIE, \ - .categoryName = _("Cream"), \ - .height = 3, \ - .weight = 5, \ - .description = gAlcremie ##cream##PokedexText, \ - .pokemonScale = 530, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Alcremie ##sweet, 40, 56), \ - .frontPicYOffset = 7, \ - .frontAnimFrames = sAnims_Alcremie, \ - BACK_PIC(Alcremie ##sweet, 48, 56), \ - .backPicYOffset = 9, \ - .palette = gMonPalette_Alcremie ##sweet##cream, \ - .shinyPalette = gMonShinyPalette_Alcremie ##sweet, \ - ICON(AlcremieStrawberryVanillaCream, 1), \ - .footprint = gMonFootprint_Alcremie, \ - LEARNSETS(Alcremie), \ - .formSpeciesIdTable = sAlcremieFormSpeciesIdTable, \ - .formChangeTable = sAlcremieFormChangeTable, \ +#define ALCREMIE_REGULAR_SPECIES_INFO(sweet, cream, color) \ + { \ + ALCREMIE_MISC_INFO(color), \ + .speciesName = _("Alcremie"), \ + .cryId = CRY_ALCREMIE, \ + .natDexNum = NATIONAL_DEX_ALCREMIE, \ + .categoryName = _("Cream"), \ + .height = 3, \ + .weight = 5, \ + .description = gAlcremie ##cream##PokedexText, \ + .pokemonScale = 530, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPic = gMonFrontPic_Alcremie ##sweet, \ + .frontPicSize = MON_COORDS_SIZE(40, 56), \ + .frontPicYOffset = 7, \ + .frontAnimFrames = sAnims_Alcremie, \ + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ \ + .backPic = gMonBackPic_Alcremie ##sweet, \ + .backPicSize = MON_COORDS_SIZE(48, 56), \ + .backPicYOffset = 9, \ + /*.backAnimId = BACK_ANIM_NONE,*/ \ + .palette = gMonPalette_Alcremie ##sweet##cream, \ + .shinyPalette = gMonShinyPalette_Alcremie ##sweet, \ + .iconSprite = gMonIcon_AlcremieStrawberryVanillaCream, /*AlcremieStrawberry##cream##*/ \ + .iconPalIndex = 1, \ + FOOTPRINT(Alcremie) \ + .levelUpLearnset = sAlcremieLevelUpLearnset, \ + .teachableLearnset = sAlcremieTeachableLearnset, \ + .formSpeciesIdTable = sAlcremieFormSpeciesIdTable, \ + .formChangeTable = sAlcremieFormChangeTable, \ } - //ICON(AlcremieStrawberry##cream##, 1), - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Strawberry, VanillaCream, BODY_COLOR_WHITE), [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Strawberry, RubyCream, BODY_COLOR_PINK), @@ -3327,7 +4213,6 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = [SPECIES_ALCREMIE_GIGANTAMAX] = { ALCREMIE_MISC_INFO(BODY_COLOR_YELLOW), - .isGigantamax = TRUE, .speciesName = _("Alcremie"), .cryId = CRY_ALCREMIE, .natDexNum = NATIONAL_DEX_ALCREMIE, @@ -3343,17 +4228,23 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(AlcremieGigantamax, 64, 64), + .frontPic = gMonFrontPic_AlcremieGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_AlcremieGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(AlcremieGigantamax, 64, 64), + .backPic = gMonBackPic_AlcremieGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(AlcremieGigantamax), - ICON(AlcremieGigantamax, 1), - .footprint = gMonFootprint_Alcremie, - LEARNSETS(Alcremie), + .palette = gMonPalette_AlcremieGigantamax, + .shinyPalette = gMonShinyPalette_AlcremieGigantamax, + .iconSprite = gMonIcon_AlcremieGigantamax, + .iconPalIndex = 1, + FOOTPRINT(Alcremie) + .isGigantamax = TRUE, + .levelUpLearnset = sAlcremieLevelUpLearnset, + .teachableLearnset = sAlcremieTeachableLearnset, .formSpeciesIdTable = sAlcremieFormSpeciesIdTable, .formChangeTable = sAlcremieFormChangeTable, }, @@ -3369,7 +4260,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 75, .baseSpAttack = 70, .baseSpDefense = 60, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 45, .expYield = 165, .evYield_Attack = 2, @@ -3378,7 +4269,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_MINERAL), .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_NONE, ABILITY_DEFIANT }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Falinks"), @@ -3394,17 +4285,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Falinks, 56, 48), + .frontPic = gMonFrontPic_Falinks, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Falinks, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Falinks, 64, 40), + .backPic = gMonBackPic_Falinks, + .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Falinks), - ICON(Falinks, 0), - .footprint = gMonFootprint_Falinks, - LEARNSETS(Falinks), + .palette = gMonPalette_Falinks, + .shinyPalette = gMonShinyPalette_Falinks, + .iconSprite = gMonIcon_Falinks, + .iconPalIndex = 0, + FOOTPRINT(Falinks) + .levelUpLearnset = sFalinksLevelUpLearnset, + .teachableLearnset = sFalinksTeachableLearnset, }, #endif //P_FAMILY_FALINKS @@ -3417,7 +4313,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 15, .baseSpAttack = 91, .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 75, .expYield = 152, .evYield_Attack = 2, @@ -3425,7 +4321,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS), .abilities = { ABILITY_LIGHTNING_ROD, ABILITY_NONE, ABILITY_ELECTRIC_SURGE }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Pincurchin"), @@ -3442,17 +4338,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pincurchin, 40, 40), + .frontPic = gMonFrontPic_Pincurchin, + .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Pincurchin, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Pincurchin, 56, 40), + .backPic = gMonBackPic_Pincurchin, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Pincurchin), - ICON(Pincurchin, 0), - .footprint = gMonFootprint_Pincurchin, - LEARNSETS(Pincurchin), + .palette = gMonPalette_Pincurchin, + .shinyPalette = gMonShinyPalette_Pincurchin, + .iconSprite = gMonIcon_Pincurchin, + .iconPalIndex = 0, + FOOTPRINT(Pincurchin) + .levelUpLearnset = sPincurchinLevelUpLearnset, + .teachableLearnset = sPincurchinTeachableLearnset, }, #endif //P_FAMILY_PINCURCHIN @@ -3465,7 +4366,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 20, .baseSpAttack = 45, .baseSpDefense = 30, - .types = { TYPE_ICE, TYPE_BUG }, + .types = MON_TYPES(TYPE_ICE, TYPE_BUG), .catchRate = 190, .expYield = 37, .evYield_SpAttack = 1, @@ -3474,7 +4375,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_ICE_SCALES }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Snom"), @@ -3492,17 +4393,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Snom, 40, 32), + .frontPic = gMonFrontPic_Snom, + .frontPicSize = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 20, .frontAnimFrames = sAnims_Snom, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Snom, 48, 32), + .backPic = gMonBackPic_Snom, + .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 17, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Snom), - ICON(Snom, 0), - .footprint = gMonFootprint_Snom, - LEARNSETS(Snom), + .palette = gMonPalette_Snom, + .shinyPalette = gMonShinyPalette_Snom, + .iconSprite = gMonIcon_Snom, + .iconPalIndex = 0, + FOOTPRINT(Snom) + .levelUpLearnset = sSnomLevelUpLearnset, + .teachableLearnset = sSnomTeachableLearnset, .evolutions = EVOLUTION({EVO_FRIENDSHIP_NIGHT, 0, SPECIES_FROSMOTH}), }, @@ -3514,7 +4420,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 65, .baseSpAttack = 125, .baseSpDefense = 90, - .types = { TYPE_ICE, TYPE_BUG }, + .types = MON_TYPES(TYPE_ICE, TYPE_BUG), .catchRate = 75, .expYield = 166, .evYield_SpAttack = 2, @@ -3522,7 +4428,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_ICE_SCALES }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Frosmoth"), @@ -3540,18 +4446,23 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Frosmoth, 64, 56), + .frontPic = gMonFrontPic_Frosmoth, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Frosmoth, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 7, - BACK_PIC(Frosmoth, 64, 64), + .backPic = gMonBackPic_Frosmoth, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Frosmoth), - ICON(Frosmoth, 0), - .footprint = gMonFootprint_Frosmoth, - LEARNSETS(Frosmoth), + .palette = gMonPalette_Frosmoth, + .shinyPalette = gMonShinyPalette_Frosmoth, + .iconSprite = gMonIcon_Frosmoth, + .iconPalIndex = 0, + FOOTPRINT(Frosmoth) + .levelUpLearnset = sFrosmothLevelUpLearnset, + .teachableLearnset = sFrosmothTeachableLearnset, }, #endif //P_FAMILY_SNOM @@ -3564,7 +4475,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 70, .baseSpAttack = 20, .baseSpDefense = 20, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 60, .expYield = 165, .evYield_Defense = 2, @@ -3572,8 +4483,8 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, - .abilities = { ABILITY_POWER_SPOT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), + .abilities = { ABILITY_POWER_SPOT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Stonjourne"), .cryId = CRY_STONJOURNER, @@ -3590,254 +4501,350 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 10, .trainerScale = 423, .trainerOffset = 8, - FRONT_PIC(Stonjourner, 48, 64), + .frontPic = gMonFrontPic_Stonjourner, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Stonjourner, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Stonjourner, 64, 56), + .backPic = gMonBackPic_Stonjourner, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Stonjourner), - ICON(Stonjourner, 2), - .footprint = gMonFootprint_Stonjourner, - LEARNSETS(Stonjourner), + .palette = gMonPalette_Stonjourner, + .shinyPalette = gMonShinyPalette_Stonjourner, + .iconSprite = gMonIcon_Stonjourner, + .iconPalIndex = 2, + FOOTPRINT(Stonjourner) + .levelUpLearnset = sStonjournerLevelUpLearnset, + .teachableLearnset = sStonjournerTeachableLearnset, }, #endif //P_FAMILY_STONJOURNER #if P_FAMILY_EISCUE -#define EISCUE_MISC_INFO \ - .types = { TYPE_ICE, TYPE_ICE }, \ - .catchRate = 60, \ - .expYield = 165, \ - .evYield_Defense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, \ - .abilities = { ABILITY_ICE_FACE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Eiscue"), \ - .natDexNum = NATIONAL_DEX_EISCUE, \ - .categoryName = _("Penguin"), \ - .height = 14, \ - .weight = 890, \ - .pokemonScale = 265, \ - .pokemonOffset = 2, \ - .trainerScale = 262, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Eiscue, \ - LEARNSETS(Eiscue), \ - .formSpeciesIdTable = sEiscueFormSpeciesIdTable, \ - .formChangeTable = sEiscueFormChangeTable - [SPECIES_EISCUE_ICE_FACE] = { - EISCUE_MISC_INFO, .baseHP = 75, .baseAttack = 80, .baseDefense = 110, .baseSpeed = 50, .baseSpAttack = 65, .baseSpDefense = 90, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 60, + .expYield = 165, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), + .abilities = { ABILITY_ICE_FACE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Eiscue"), .cryId = CRY_EISCUE_ICE_FACE, + .natDexNum = NATIONAL_DEX_EISCUE, + .categoryName = _("Penguin"), + .height = 14, + .weight = 890, .description = COMPOUND_STRING( "It drifted in on the flow of ocean waters\n" "from a frigid place. It keeps its head\n" "iced constantly to make sure it stays\n" "nice and cold."), - FRONT_PIC(EiscueIceFace, 40, 64), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + .frontPic = gMonFrontPic_EiscueIceFace, + .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Eiscue, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(EiscueIceFace, 48, 64), + .backPic = gMonBackPic_EiscueIceFace, + .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(EiscueIceFace), - ICON(EiscueIceFace, 0), + .palette = gMonPalette_EiscueIceFace, + .shinyPalette = gMonShinyPalette_EiscueIceFace, + .iconSprite = gMonIcon_EiscueIceFace, + .iconPalIndex = 0, + FOOTPRINT(Eiscue) + .levelUpLearnset = sEiscueLevelUpLearnset, + .teachableLearnset = sEiscueTeachableLearnset, + .formSpeciesIdTable = sEiscueFormSpeciesIdTable, + .formChangeTable = sEiscueFormChangeTable, }, [SPECIES_EISCUE_NOICE_FACE] = { - EISCUE_MISC_INFO, .baseHP = 75, .baseAttack = 80, .baseDefense = 70, .baseSpeed = 130, .baseSpAttack = 65, .baseSpDefense = 50, + .types = MON_TYPES(TYPE_ICE), + .catchRate = 60, + .expYield = 165, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD), + .abilities = { ABILITY_ICE_FACE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Eiscue"), .cryId = CRY_EISCUE_NOICE_FACE, + .natDexNum = NATIONAL_DEX_EISCUE, + .categoryName = _("Penguin"), + .height = 14, + .weight = 890, .description = COMPOUND_STRING( "The hair on its head connects to\n" "the surface of its brain. When this\n" "Pokémon has something on its mind,\n" "its hair chills the air around it."), - FRONT_PIC(EiscueNoiceFace, 40, 64), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + .frontPic = gMonFrontPic_EiscueNoiceFace, + .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Eiscue, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(EiscueNoiceFace, 40, 64), + .backPic = gMonBackPic_EiscueNoiceFace, + .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(EiscueNoiceFace), - ICON(EiscueNoiceFace, 0), + .palette = gMonPalette_EiscueNoiceFace, + .shinyPalette = gMonShinyPalette_EiscueNoiceFace, + .iconSprite = gMonIcon_EiscueNoiceFace, + .iconPalIndex = 0, + FOOTPRINT(Eiscue) + .levelUpLearnset = sEiscueLevelUpLearnset, + .teachableLearnset = sEiscueTeachableLearnset, + .formSpeciesIdTable = sEiscueFormSpeciesIdTable, + .formChangeTable = sEiscueFormChangeTable, }, #endif //P_FAMILY_EISCUE #if P_FAMILY_INDEEDEE -#define INDEEDEE_MISC_INFO \ - .types = { TYPE_PSYCHIC, TYPE_NORMAL }, \ - .catchRate = 30, \ - .expYield = 166, \ - .eggCycles = 40, \ - .friendship = 140, \ - .growthRate = GROWTH_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .speciesName = _("Indeedee"), \ - .natDexNum = NATIONAL_DEX_INDEEDEE, \ - .categoryName = _("Emotion"), \ - .height = 9, \ - .weight = 280, \ - .pokemonScale = 338, \ - .pokemonOffset = 8, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Indeedee, \ - .formSpeciesIdTable = sIndeedeeFormSpeciesIdTable - [SPECIES_INDEEDEE_MALE] = { - INDEEDEE_MISC_INFO, .baseHP = 60, .baseAttack = 65, .baseDefense = 55, .baseSpeed = 95, .baseSpAttack = 105, .baseSpDefense = 95, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_NORMAL), + .catchRate = 30, + .expYield = 166, .evYield_SpAttack = 2, .genderRatio = MON_MALE, + .eggCycles = 40, + .friendship = 140, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_INNER_FOCUS, ABILITY_SYNCHRONIZE, ABILITY_PSYCHIC_SURGE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Indeedee"), .cryId = CRY_INDEEDEE_MALE, + .natDexNum = NATIONAL_DEX_INDEEDEE, + .categoryName = _("Emotion"), + .height = 9, + .weight = 280, .description = COMPOUND_STRING( "It uses the horns on its head to sense the\n" "emotions of others. Males will act as\n" "valets for those they serve, looking\n" "after their every need."), - FRONT_PIC(IndeedeeMale, 40, 56), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_IndeedeeMale, + .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Indeedee, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(IndeedeeMale, 56, 56), + .backPic = gMonBackPic_IndeedeeMale, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IndeedeeMale), - ICON(IndeedeeMale, 2), - LEARNSETS(IndeedeeMale), + .palette = gMonPalette_IndeedeeMale, + .shinyPalette = gMonShinyPalette_IndeedeeMale, + .iconSprite = gMonIcon_IndeedeeMale, + .iconPalIndex = 2, + FOOTPRINT(Indeedee) + .levelUpLearnset = sIndeedeeMaleLevelUpLearnset, + .teachableLearnset = sIndeedeeMaleTeachableLearnset, + .formSpeciesIdTable = sIndeedeeFormSpeciesIdTable, }, [SPECIES_INDEEDEE_FEMALE] = { - INDEEDEE_MISC_INFO, .baseHP = 70, .baseAttack = 55, .baseDefense = 65, .baseSpeed = 85, .baseSpAttack = 95, .baseSpDefense = 105, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_NORMAL), + .catchRate = 30, + .expYield = 166, .evYield_SpDefense = 2, .genderRatio = MON_FEMALE, + .eggCycles = 40, + .friendship = 140, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_OWN_TEMPO, ABILITY_SYNCHRONIZE, ABILITY_PSYCHIC_SURGE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Indeedee"), .cryId = CRY_INDEEDEE_FEMALE, + .natDexNum = NATIONAL_DEX_INDEEDEE, + .categoryName = _("Emotion"), + .height = 9, + .weight = 280, .description = COMPOUND_STRING( "They diligently serve people and\n" "Pokémon so they can gather feelings\n" "of gratitude. The females are\n" "particularly good at babysitting."), - FRONT_PIC(IndeedeeFemale, 40, 48), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_IndeedeeFemale, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Indeedee, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(IndeedeeFemale, 64, 56), + .backPic = gMonBackPic_IndeedeeFemale, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IndeedeeFemale), - ICON(IndeedeeFemale, 2), - LEARNSETS(IndeedeeFemale), + .palette = gMonPalette_IndeedeeFemale, + .shinyPalette = gMonShinyPalette_IndeedeeFemale, + .iconSprite = gMonIcon_IndeedeeFemale, + .iconPalIndex = 2, + FOOTPRINT(Indeedee) + .levelUpLearnset = sIndeedeeFemaleLevelUpLearnset, + .teachableLearnset = sIndeedeeFemaleTeachableLearnset, + .formSpeciesIdTable = sIndeedeeFormSpeciesIdTable, }, #endif //P_FAMILY_INDEEDEE #if P_FAMILY_MORPEKO -#define MORPEKO_MISC_INFO \ - .baseHP = 58, \ - .baseAttack = 95, \ - .baseDefense = 58, \ - .baseSpeed = 97, \ - .baseSpAttack = 70, \ - .baseSpDefense = 58, \ - .types = { TYPE_ELECTRIC, TYPE_DARK }, \ - .catchRate = 180, \ - .expYield = 153, \ - .evYield_Speed = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 10, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, \ - .abilities = { ABILITY_HUNGER_SWITCH, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .speciesName = _("Morpeko"), \ - .natDexNum = NATIONAL_DEX_MORPEKO, \ - .categoryName = _("Two-Sided"), \ - .height = 3, \ - .weight = 30, \ - .pokemonScale = 530, \ - .pokemonOffset = 13, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Morpeko, \ - LEARNSETS(Morpeko), \ - .formSpeciesIdTable = sMorpekoFormSpeciesIdTable, \ - .formChangeTable = sMorpekoFormChangeTable - [SPECIES_MORPEKO_FULL_BELLY] = { - MORPEKO_MISC_INFO, + .baseHP = 58, + .baseAttack = 95, + .baseDefense = 58, + .baseSpeed = 97, + .baseSpAttack = 70, + .baseSpDefense = 58, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_DARK), + .catchRate = 180, + .expYield = 153, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), + .abilities = { ABILITY_HUNGER_SWITCH, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Morpeko"), .cryId = CRY_MORPEKO_FULL_BELLY, + .natDexNum = NATIONAL_DEX_MORPEKO, + .categoryName = _("Two-Sided"), + .height = 3, + .weight = 30, .description = COMPOUND_STRING( "As it eats the seeds stored up in its\n" "pocket-like pouches, this Pokémon is not\n" "just satisfying its constant hunger. It's\n" "also generating electricity."), - FRONT_PIC(MorpekoFullBelly, 32, 40), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MorpekoFullBelly, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Morpeko, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MorpekoFullBelly, 48, 56), + .backPic = gMonBackPic_MorpekoFullBelly, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MorpekoFullBelly), - ICON(MorpekoFullBelly, 2), + .palette = gMonPalette_MorpekoFullBelly, + .shinyPalette = gMonShinyPalette_MorpekoFullBelly, + .iconSprite = gMonIcon_MorpekoFullBelly, + .iconPalIndex = 2, + FOOTPRINT(Morpeko) + .levelUpLearnset = sMorpekoLevelUpLearnset, + .teachableLearnset = sMorpekoTeachableLearnset, + .formSpeciesIdTable = sMorpekoFormSpeciesIdTable, + .formChangeTable = sMorpekoFormChangeTable, }, [SPECIES_MORPEKO_HANGRY] = { - MORPEKO_MISC_INFO, + .baseHP = 58, + .baseAttack = 95, + .baseDefense = 58, + .baseSpeed = 97, + .baseSpAttack = 70, + .baseSpDefense = 58, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_DARK), + .catchRate = 180, + .expYield = 153, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), + .abilities = { ABILITY_HUNGER_SWITCH, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Morpeko"), .cryId = CRY_MORPEKO_HANGRY, + .natDexNum = NATIONAL_DEX_MORPEKO, + .categoryName = _("Two-Sided"), + .height = 3, + .weight = 30, .description = COMPOUND_STRING( "Intense hunger drives it to\n" "extremes of violence, and the electricity\n" "in its cheek sacs has converted into\n" "a Dark-type energy."), - FRONT_PIC(MorpekoHangry, 32, 40), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MorpekoHangry, + .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Morpeko, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(MorpekoHangry, 48, 56), + .backPic = gMonBackPic_MorpekoHangry, + .backPicSize = MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(MorpekoHangry), - ICON(MorpekoHangry, 2), + .palette = gMonPalette_MorpekoHangry, + .shinyPalette = gMonShinyPalette_MorpekoHangry, + .iconSprite = gMonIcon_MorpekoHangry, + .iconPalIndex = 2, + FOOTPRINT(Morpeko) + .levelUpLearnset = sMorpekoLevelUpLearnset, + .teachableLearnset = sMorpekoTeachableLearnset, + .formSpeciesIdTable = sMorpekoFormSpeciesIdTable, + .formChangeTable = sMorpekoFormChangeTable, }, #endif //P_FAMILY_MORPEKO @@ -3850,7 +4857,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 40, .baseSpAttack = 40, .baseSpDefense = 49, - .types = { TYPE_STEEL, TYPE_STEEL }, + .types = MON_TYPES(TYPE_STEEL), .catchRate = 190, .expYield = 66, .evYield_Attack = 1, @@ -3859,7 +4866,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_MINERAL), .abilities = { ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_HEAVY_METAL }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Cufant"), @@ -3877,51 +4884,49 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cufant, 56, 48), + .frontPic = gMonFrontPic_Cufant, + .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Cufant, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cufant, 64, 48), + .backPic = gMonBackPic_Cufant, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cufant), - ICON(Cufant, 0), - .footprint = gMonFootprint_Cufant, - LEARNSETS(Cufant), + .palette = gMonPalette_Cufant, + .shinyPalette = gMonShinyPalette_Cufant, + .iconSprite = gMonIcon_Cufant, + .iconPalIndex = 0, + FOOTPRINT(Cufant) + .levelUpLearnset = sCufantLevelUpLearnset, + .teachableLearnset = sCufantTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_COPPERAJAH}), }, -#define COPPERAJAH_MISC_INFO \ - .baseHP = 122, \ - .baseAttack = 130, \ - .baseDefense = 69, \ - .baseSpeed = 30, \ - .baseSpAttack = 80, \ - .baseSpDefense = 69, \ - .types = { TYPE_STEEL, TYPE_STEEL }, \ - .catchRate = 90, \ - .expYield = 175, \ - .evYield_Attack = 2, \ - .itemRare = ITEM_LAGGING_TAIL, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_MINERAL }, \ - .abilities = { ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_HEAVY_METAL }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Copperajah"), \ - .cryId = CRY_COPPERAJAH, \ - .natDexNum = NATIONAL_DEX_COPPERAJAH, \ - .categoryName = _("Copperderm"), \ - .footprint = gMonFootprint_Copperajah, \ - LEARNSETS(Copperajah), \ - .formSpeciesIdTable = sCopperajahFormSpeciesIdTable, \ - .formChangeTable = sCopperajahFormChangeTable - [SPECIES_COPPERAJAH] = { - COPPERAJAH_MISC_INFO, + .baseHP = 122, + .baseAttack = 130, + .baseDefense = 69, + .baseSpeed = 30, + .baseSpAttack = 80, + .baseSpDefense = 69, + .types = MON_TYPES(TYPE_STEEL), + .catchRate = 90, + .expYield = 175, + .evYield_Attack = 2, + .itemRare = ITEM_LAGGING_TAIL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_MINERAL), + .abilities = { ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_HEAVY_METAL }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Copperajah"), + .cryId = CRY_COPPERAJAH, + .natDexNum = NATIONAL_DEX_COPPERAJAH, + .categoryName = _("Copperderm"), .height = 30, .weight = 6500, .description = COMPOUND_STRING( @@ -3932,21 +4937,51 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Copperajah, 64, 56), + .frontPic = gMonFrontPic_Copperajah, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Copperajah, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Copperajah, 64, 32), + .backPic = gMonBackPic_Copperajah, + .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Copperajah), - ICON(Copperajah, 0), + .palette = gMonPalette_Copperajah, + .shinyPalette = gMonShinyPalette_Copperajah, + .iconSprite = gMonIcon_Copperajah, + .iconPalIndex = 0, + FOOTPRINT(Copperajah) + .levelUpLearnset = sCopperajahLevelUpLearnset, + .teachableLearnset = sCopperajahTeachableLearnset, + .formSpeciesIdTable = sCopperajahFormSpeciesIdTable, + .formChangeTable = sCopperajahFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_COPPERAJAH_GIGANTAMAX] = { - COPPERAJAH_MISC_INFO, + .baseHP = 122, + .baseAttack = 130, + .baseDefense = 69, + .baseSpeed = 30, + .baseSpAttack = 80, + .baseSpDefense = 69, + .types = MON_TYPES(TYPE_STEEL), + .catchRate = 90, + .expYield = 175, + .evYield_Attack = 2, + .itemRare = ITEM_LAGGING_TAIL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_MINERAL), + .abilities = { ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_HEAVY_METAL }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Copperajah"), + .cryId = CRY_COPPERAJAH, + .natDexNum = NATIONAL_DEX_COPPERAJAH, + .categoryName = _("Copperderm"), .height = 230, .weight = 0, .description = COMPOUND_STRING( @@ -3958,16 +4993,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(CopperajahGigantamax, 64, 64), + .frontPic = gMonFrontPic_CopperajahGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_CopperajahGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CopperajahGigantamax, 64, 64), + .backPic = gMonBackPic_CopperajahGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CopperajahGigantamax), - ICON(CopperajahGigantamax, 0), + .palette = gMonPalette_CopperajahGigantamax, + .shinyPalette = gMonShinyPalette_CopperajahGigantamax, + .iconSprite = gMonIcon_CopperajahGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Copperajah) .isGigantamax = TRUE, + .levelUpLearnset = sCopperajahLevelUpLearnset, + .teachableLearnset = sCopperajahTeachableLearnset, + .formSpeciesIdTable = sCopperajahFormSpeciesIdTable, + .formChangeTable = sCopperajahFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CUFANT @@ -3981,7 +5025,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 75, .baseSpAttack = 80, .baseSpDefense = 70, - .types = { TYPE_ELECTRIC, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_DRAGON), .catchRate = 45, .expYield = 177, .evYield_Attack = 2, @@ -3989,7 +5033,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_VOLT_ABSORB, ABILITY_HUSTLE, ABILITY_SAND_RUSH }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dracozolt"), @@ -4007,17 +5051,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Dracozolt, 64, 64), + .frontPic = gMonFrontPic_Dracozolt, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Dracozolt, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dracozolt, 64, 56), + .backPic = gMonBackPic_Dracozolt, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dracozolt), - ICON(Dracozolt, 1), - .footprint = gMonFootprint_Dracozolt, - LEARNSETS(Dracozolt), + .palette = gMonPalette_Dracozolt, + .shinyPalette = gMonShinyPalette_Dracozolt, + .iconSprite = gMonIcon_Dracozolt, + .iconPalIndex = 1, + FOOTPRINT(Dracozolt) + .levelUpLearnset = sDracozoltLevelUpLearnset, + .teachableLearnset = sDracozoltTeachableLearnset, }, #endif //P_FAMILY_DRACOZOLT @@ -4030,7 +5079,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 55, .baseSpAttack = 90, .baseSpDefense = 80, - .types = { TYPE_ELECTRIC, TYPE_ICE }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_ICE), .catchRate = 45, .expYield = 177, .evYield_Attack = 2, @@ -4038,7 +5087,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_VOLT_ABSORB, ABILITY_STATIC, ABILITY_SLUSH_RUSH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Arctozolt"), @@ -4055,17 +5104,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 342, .trainerOffset = 7, - FRONT_PIC(Arctozolt, 56, 64), + .frontPic = gMonFrontPic_Arctozolt, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Arctozolt, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Arctozolt, 56, 48), + .backPic = gMonBackPic_Arctozolt, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Arctozolt), - ICON(Arctozolt, 2), - .footprint = gMonFootprint_Arctozolt, - LEARNSETS(Arctozolt), + .palette = gMonPalette_Arctozolt, + .shinyPalette = gMonShinyPalette_Arctozolt, + .iconSprite = gMonIcon_Arctozolt, + .iconPalIndex = 2, + FOOTPRINT(Arctozolt) + .levelUpLearnset = sArctozoltLevelUpLearnset, + .teachableLearnset = sArctozoltTeachableLearnset, }, #endif //P_FAMILY_ARCTOZOLT @@ -4078,7 +5132,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 75, .baseSpAttack = 70, .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_WATER, TYPE_DRAGON), .catchRate = 45, .expYield = 177, .evYield_Defense = 2, @@ -4086,7 +5140,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_WATER_ABSORB, ABILITY_STRONG_JAW, ABILITY_SAND_RUSH }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dracovish"), @@ -4104,17 +5158,22 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 342, .trainerOffset = 7, - FRONT_PIC(Dracovish, 48, 64), + .frontPic = gMonFrontPic_Dracovish, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Dracovish, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dracovish, 64, 64), + .backPic = gMonBackPic_Dracovish, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dracovish), - ICON(Dracovish, 0), - .footprint = gMonFootprint_Dracovish, - LEARNSETS(Dracovish), + .palette = gMonPalette_Dracovish, + .shinyPalette = gMonShinyPalette_Dracovish, + .iconSprite = gMonIcon_Dracovish, + .iconPalIndex = 0, + FOOTPRINT(Dracovish) + .levelUpLearnset = sDracovishLevelUpLearnset, + .teachableLearnset = sDracovishTeachableLearnset, }, #endif //P_FAMILY_DRACOVISH @@ -4127,7 +5186,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 55, .baseSpAttack = 80, .baseSpDefense = 90, - .types = { TYPE_WATER, TYPE_ICE }, + .types = MON_TYPES(TYPE_WATER, TYPE_ICE), .catchRate = 45, .expYield = 177, .evYield_Defense = 2, @@ -4135,7 +5194,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_WATER_ABSORB, ABILITY_ICE_BODY, ABILITY_SLUSH_RUSH }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Arctovish"), @@ -4153,51 +5212,49 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Arctovish, 64, 64), + .frontPic = gMonFrontPic_Arctovish, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Arctovish, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Arctovish, 64, 48), + .backPic = gMonBackPic_Arctovish, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Arctovish), - ICON(Arctovish, 0), - .footprint = gMonFootprint_Arctovish, - LEARNSETS(Arctovish), + .palette = gMonPalette_Arctovish, + .shinyPalette = gMonShinyPalette_Arctovish, + .iconSprite = gMonIcon_Arctovish, + .iconPalIndex = 0, + FOOTPRINT(Arctovish) + .levelUpLearnset = sArctovishLevelUpLearnset, + .teachableLearnset = sArctovishTeachableLearnset, }, #endif //P_FAMILY_ARCTOVISH #if P_FAMILY_DURALUDON -#define DURALUDON_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 95, \ - .baseDefense = 115, \ - .baseSpeed = 85, \ - .baseSpAttack = 120, \ - .baseSpDefense = 50, \ - .types = { TYPE_STEEL, TYPE_DRAGON }, \ - .catchRate = 45, \ - .expYield = 187, \ - .evYield_SpAttack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 30, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_DRAGON }, \ - .abilities = { ABILITY_LIGHT_METAL, ABILITY_HEAVY_METAL, ABILITY_STALWART }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Duraludon"), \ - .cryId = CRY_DURALUDON, \ - .natDexNum = NATIONAL_DEX_DURALUDON, \ - .categoryName = _("Alloy"), \ - .footprint = gMonFootprint_Duraludon, \ - LEARNSETS(Duraludon), \ - .formSpeciesIdTable = sDuraludonFormSpeciesIdTable, \ - .formChangeTable = sDuraludonFormChangeTable - [SPECIES_DURALUDON] = { - DURALUDON_MISC_INFO, + .baseHP = 70, + .baseAttack = 95, + .baseDefense = 115, + .baseSpeed = 85, + .baseSpAttack = 120, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_STEEL, TYPE_DRAGON), + .catchRate = 45, + .expYield = 187, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_DRAGON), + .abilities = { ABILITY_LIGHT_METAL, ABILITY_HEAVY_METAL, ABILITY_STALWART }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Duraludon"), + .cryId = CRY_DURALUDON, + .natDexNum = NATIONAL_DEX_DURALUDON, + .categoryName = _("Alloy"), .height = 18, .weight = 400, .description = COMPOUND_STRING( @@ -4208,21 +5265,51 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(Duraludon, 56, 64), + .frontPic = gMonFrontPic_Duraludon, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Duraludon, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Duraludon, 64, 64), + .backPic = gMonBackPic_Duraludon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Duraludon), - ICON(Duraludon, 0), + .palette = gMonPalette_Duraludon, + .shinyPalette = gMonShinyPalette_Duraludon, + .iconSprite = gMonIcon_Duraludon, + .iconPalIndex = 0, + FOOTPRINT(Duraludon) + .levelUpLearnset = sDuraludonLevelUpLearnset, + .teachableLearnset = sDuraludonTeachableLearnset, + .formSpeciesIdTable = sDuraludonFormSpeciesIdTable, + .formChangeTable = sDuraludonFormChangeTable, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_METAL_ALLOY, SPECIES_ARCHALUDON}), }, #if P_GIGANTAMAX_FORMS [SPECIES_DURALUDON_GIGANTAMAX] = { - DURALUDON_MISC_INFO, + .baseHP = 70, + .baseAttack = 95, + .baseDefense = 115, + .baseSpeed = 85, + .baseSpAttack = 120, + .baseSpDefense = 50, + .types = MON_TYPES(TYPE_STEEL, TYPE_DRAGON), + .catchRate = 45, + .expYield = 187, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_DRAGON), + .abilities = { ABILITY_LIGHT_METAL, ABILITY_HEAVY_METAL, ABILITY_STALWART }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Duraludon"), + .cryId = CRY_DURALUDON, + .natDexNum = NATIONAL_DEX_DURALUDON, + .categoryName = _("Alloy"), .height = 430, .weight = 0, .description = COMPOUND_STRING( @@ -4234,18 +5321,81 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - FRONT_PIC(DuraludonGigantamax, 64, 64), + .frontPic = gMonFrontPic_DuraludonGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_DuraludonGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(DuraludonGigantamax, 64, 64), + .backPic = gMonBackPic_DuraludonGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(DuraludonGigantamax), - ICON(DuraludonGigantamax, 0), + .palette = gMonPalette_DuraludonGigantamax, + .shinyPalette = gMonShinyPalette_DuraludonGigantamax, + .iconSprite = gMonIcon_DuraludonGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Duraludon) .isGigantamax = TRUE, + .levelUpLearnset = sDuraludonLevelUpLearnset, + .teachableLearnset = sDuraludonTeachableLearnset, + .formSpeciesIdTable = sDuraludonFormSpeciesIdTable, + .formChangeTable = sDuraludonFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS + +#if P_GEN_9_CROSS_EVOS + [SPECIES_ARCHALUDON] = + { + .baseHP = 90, + .baseAttack = 105, + .baseDefense = 130, + .baseSpeed = 85, + .baseSpAttack = 125, + .baseSpDefense = 65, + .types = MON_TYPES(TYPE_STEEL, TYPE_DRAGON), + .catchRate = 10, + .expYield = 300, + .evYield_Defense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_DRAGON), + .abilities = { ABILITY_STAMINA, ABILITY_STURDY, ABILITY_STALWART }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Archaludon"), + .cryId = CRY_ARCHALUDON, + .natDexNum = NATIONAL_DEX_ARCHALUDON, + .categoryName = _("Alloy"), + .height = 20, + .weight = 600, + .description = COMPOUND_STRING( + "It gathers static electricity\n" + "from its surroundings. The beams\n" + "it launches when down on all fours\n" + "are tremendously powerful."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + .frontPic = gMonFrontPic_Archaludon, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Archaludon, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_Archaludon, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Archaludon, + .shinyPalette = gMonShinyPalette_Archaludon, + .iconSprite = gMonIcon_Archaludon, + .iconPalIndex = 0, + //FOOTPRINT(Archaludon) + .levelUpLearnset = sArchaludonLevelUpLearnset, + .teachableLearnset = sArchaludonTeachableLearnset, + }, +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY @@ -4257,7 +5407,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 82, .baseSpAttack = 40, .baseSpDefense = 30, - .types = { TYPE_DRAGON, TYPE_GHOST }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GHOST), .catchRate = 45, .expYield = 54, .evYield_Speed = 1, @@ -4265,7 +5415,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON), .abilities = { ABILITY_CLEAR_BODY, ABILITY_INFILTRATOR, ABILITY_CURSED_BODY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dreepy"), @@ -4283,18 +5433,23 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dreepy, 48, 40), + .frontPic = gMonFrontPic_Dreepy, + .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Dreepy, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(Dreepy, 56, 40), + .backPic = gMonBackPic_Dreepy, + .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dreepy), - ICON(Dreepy, 0), - .footprint = gMonFootprint_Dreepy, - LEARNSETS(Dreepy), + .palette = gMonPalette_Dreepy, + .shinyPalette = gMonShinyPalette_Dreepy, + .iconSprite = gMonIcon_Dreepy, + .iconPalIndex = 0, + FOOTPRINT(Dreepy) + .levelUpLearnset = sDreepyLevelUpLearnset, + .teachableLearnset = sDreepyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 50, SPECIES_DRAKLOAK}), }, @@ -4306,7 +5461,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 102, .baseSpAttack = 60, .baseSpDefense = 50, - .types = { TYPE_DRAGON, TYPE_GHOST }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GHOST), .catchRate = 45, .expYield = 144, .evYield_Speed = 2, @@ -4314,7 +5469,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON), .abilities = { ABILITY_CLEAR_BODY, ABILITY_INFILTRATOR, ABILITY_CURSED_BODY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Drakloak"), @@ -4331,18 +5486,23 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - FRONT_PIC(Drakloak, 64, 56), + .frontPic = gMonFrontPic_Drakloak, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Drakloak, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(Drakloak, 64, 48), + .backPic = gMonBackPic_Drakloak, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Drakloak), - ICON(Drakloak, 0), - .footprint = gMonFootprint_Drakloak, - LEARNSETS(Drakloak), + .palette = gMonPalette_Drakloak, + .shinyPalette = gMonShinyPalette_Drakloak, + .iconSprite = gMonIcon_Drakloak, + .iconPalIndex = 0, + FOOTPRINT(Drakloak) + .levelUpLearnset = sDrakloakLevelUpLearnset, + .teachableLearnset = sDrakloakTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 60, SPECIES_DRAGAPULT}), }, @@ -4354,7 +5514,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 142, .baseSpAttack = 100, .baseSpDefense = 75, - .types = { TYPE_DRAGON, TYPE_GHOST }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_GHOST), .catchRate = 45, .expYield = 300, .evYield_Speed = 3, @@ -4362,7 +5522,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON), .abilities = { ABILITY_CLEAR_BODY, ABILITY_INFILTRATOR, ABILITY_CURSED_BODY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dragapult"), @@ -4380,274 +5540,358 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dragapult, 64, 64), + .frontPic = gMonFrontPic_Dragapult, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Dragapult, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 3, - BACK_PIC(Dragapult, 64, 56), + .backPic = gMonBackPic_Dragapult, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dragapult), - ICON(Dragapult, 0), - .footprint = gMonFootprint_Dragapult, - LEARNSETS(Dragapult), + .palette = gMonPalette_Dragapult, + .shinyPalette = gMonShinyPalette_Dragapult, + .iconSprite = gMonIcon_Dragapult, + .iconPalIndex = 0, + FOOTPRINT(Dragapult) + .levelUpLearnset = sDragapultLevelUpLearnset, + .teachableLearnset = sDragapultTeachableLearnset, }, #endif //P_FAMILY_DREEPY #if P_FAMILY_ZACIAN -#define ZACIAN_MISC_INFO \ - .catchRate = 10, \ - .evYield_Speed = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_INTREPID_SWORD, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .isLegendary = TRUE, \ - .speciesName = _("Zacian"), \ - .natDexNum = NATIONAL_DEX_ZACIAN, \ - .categoryName = _("Warrior"), \ - .height = 28, \ - .pokemonScale = 275, \ - .pokemonOffset = 7, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Zacian, \ - LEARNSETS(Zacian), \ - .formSpeciesIdTable = sZacianFormSpeciesIdTable, \ - .formChangeTable = sZacianFormChangeTable - [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = { - ZACIAN_MISC_INFO, .baseHP = 92, .baseAttack = P_UPDATED_STATS >= GEN_9 ? 120 : 130, .baseDefense = 115, .baseSpeed = 138, .baseSpAttack = 80, .baseSpDefense = 115, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), + .catchRate = 10, .expYield = 335, + .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_INTREPID_SWORD, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Zacian"), .cryId = CRY_ZACIAN_HERO_OF_MANY_BATTLES, + .natDexNum = NATIONAL_DEX_ZACIAN, + .categoryName = _("Warrior"), + .height = 28, .weight = 1100, .description = COMPOUND_STRING( "Known as a legendary hero, this Pokémon\n" "absorbs metal particles, transforming them\n" "into a weapon it uses to battle."), - FRONT_PIC(ZacianHeroOfManyBattles, 64, 64), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ZacianHeroOfManyBattles, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Zacian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZacianHeroOfManyBattles, 64, 56), + .backPic = gMonBackPic_ZacianHeroOfManyBattles, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZacianHeroOfManyBattles), - ICON(ZacianHeroOfManyBattles, 2), + .palette = gMonPalette_ZacianHeroOfManyBattles, + .shinyPalette = gMonShinyPalette_ZacianHeroOfManyBattles, + .iconSprite = gMonIcon_ZacianHeroOfManyBattles, + .iconPalIndex = 2, + FOOTPRINT(Zacian) + .isLegendary = TRUE, + .levelUpLearnset = sZacianLevelUpLearnset, + .teachableLearnset = sZacianTeachableLearnset, + .formSpeciesIdTable = sZacianFormSpeciesIdTable, + .formChangeTable = sZacianFormChangeTable, }, [SPECIES_ZACIAN_CROWNED_SWORD] = { - ZACIAN_MISC_INFO, .baseHP = 92, .baseAttack = P_UPDATED_STATS >= GEN_9 ? 150 : 170, .baseDefense = 115, .baseSpeed = 148, .baseSpAttack = 80, .baseSpDefense = 115, - .types = { TYPE_FAIRY, TYPE_STEEL }, + .types = MON_TYPES(TYPE_FAIRY, TYPE_STEEL), + .catchRate = 10, .expYield = 360, + .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_INTREPID_SWORD, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Zacian"), .cryId = CRY_ZACIAN_CROWNED_SWORD, + .natDexNum = NATIONAL_DEX_ZACIAN, + .categoryName = _("Warrior"), + .height = 28, .weight = 3550, .description = COMPOUND_STRING( "Able to cut down anything with a\n" "single strike, it became known as the\n" "Fairy King's Sword, and it inspired\n" "awe in friend and foe alike."), - FRONT_PIC(ZacianCrownedSword, 64, 64), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ZacianCrownedSword, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Zacian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZacianCrownedSword, 64, 56), + .backPic = gMonBackPic_ZacianCrownedSword, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZacianCrownedSword), - ICON(ZacianCrownedSword, 2), + .palette = gMonPalette_ZacianCrownedSword, + .shinyPalette = gMonShinyPalette_ZacianCrownedSword, + .iconSprite = gMonIcon_ZacianCrownedSword, + .iconPalIndex = 2, + FOOTPRINT(Zacian) + .isLegendary = TRUE, + .levelUpLearnset = sZacianLevelUpLearnset, + .teachableLearnset = sZacianTeachableLearnset, + .formSpeciesIdTable = sZacianFormSpeciesIdTable, + .formChangeTable = sZacianFormChangeTable, }, #endif //P_FAMILY_ZACIAN #if P_FAMILY_ZAMAZENTA -#define ZAMAZENTA_MISC_INFO \ - .catchRate = 10, \ - .evYield_Speed = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_DAUNTLESS_SHIELD, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_RED, \ - .isLegendary = TRUE, \ - .speciesName = _("Zamazenta"), \ - .natDexNum = NATIONAL_DEX_ZAMAZENTA, \ - .categoryName = _("Warrior"), \ - .height = 29, \ - .pokemonScale = 275, \ - .pokemonOffset = 7, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .footprint = gMonFootprint_Zamazenta, \ - LEARNSETS(Zamazenta), \ - .formSpeciesIdTable = sZamazentaFormSpeciesIdTable, \ - .formChangeTable = sZamazentaFormChangeTable - [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = { - ZAMAZENTA_MISC_INFO, .baseHP = 92, .baseAttack = P_UPDATED_STATS >= GEN_9 ? 120 : 130, .baseDefense = 115, .baseSpeed = 138, .baseSpAttack = 80, .baseSpDefense = 115, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), + .catchRate = 10, .expYield = 335, + .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_DAUNTLESS_SHIELD, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Zamazenta"), .cryId = CRY_ZAMAZENTA_HERO_OF_MANY_BATTLES, + .natDexNum = NATIONAL_DEX_ZAMAZENTA, + .categoryName = _("Warrior"), + .height = 29, .weight = 2100, .description = COMPOUND_STRING( "In times past, it worked together with a\n" "king of the people to save the Galar\n" "region. It absorbs metal that it then\n" "uses in battle."), - FRONT_PIC(ZamazentaHeroOfManyBattles, 64, 64), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ZamazentaHeroOfManyBattles, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Zamazenta, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZamazentaHeroOfManyBattles, 64, 56), + .backPic = gMonBackPic_ZamazentaHeroOfManyBattles, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZamazentaHeroOfManyBattles), - ICON(ZamazentaHeroOfManyBattles, 2), + .palette = gMonPalette_ZamazentaHeroOfManyBattles, + .shinyPalette = gMonShinyPalette_ZamazentaHeroOfManyBattles, + .iconSprite = gMonIcon_ZamazentaHeroOfManyBattles, + .iconPalIndex = 2, + FOOTPRINT(Zamazenta) + .isLegendary = TRUE, + .levelUpLearnset = sZamazentaLevelUpLearnset, + .teachableLearnset = sZamazentaTeachableLearnset, + .formSpeciesIdTable = sZamazentaFormSpeciesIdTable, + .formChangeTable = sZamazentaFormChangeTable, }, [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = { - ZAMAZENTA_MISC_INFO, .baseHP = 92, .baseAttack = P_UPDATED_STATS >= GEN_9 ? 120 : 130, .baseDefense = P_UPDATED_STATS >= GEN_9 ? 140 : 145, .baseSpeed = 128, .baseSpAttack = 80, .baseSpDefense = P_UPDATED_STATS >= GEN_9 ? 140 : 145, - .types = { TYPE_FIGHTING, TYPE_STEEL }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_STEEL), + .catchRate = 10, .expYield = 360, + .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_DAUNTLESS_SHIELD, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .speciesName = _("Zamazenta"), .cryId = CRY_ZAMAZENTA_CROWNED_SHIELD, + .natDexNum = NATIONAL_DEX_ZAMAZENTA, + .categoryName = _("Warrior"), + .height = 29, .weight = 7850, .description = COMPOUND_STRING( "Its ability to deflect any attack\n" "led to it being known as the Fighting\n" "Master's Shield. It was feared and\n" "respected by all."), - FRONT_PIC(ZamazentaCrownedShield, 56, 64), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_ZamazentaCrownedShield, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Zamazenta, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZamazentaCrownedShield, 64, 64), + .backPic = gMonBackPic_ZamazentaCrownedShield, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZamazentaCrownedShield), - ICON(ZamazentaCrownedShield, 2), + .palette = gMonPalette_ZamazentaCrownedShield, + .shinyPalette = gMonShinyPalette_ZamazentaCrownedShield, + .iconSprite = gMonIcon_ZamazentaCrownedShield, + .iconPalIndex = 2, + FOOTPRINT(Zamazenta) + .isLegendary = TRUE, + .levelUpLearnset = sZamazentaLevelUpLearnset, + .teachableLearnset = sZamazentaTeachableLearnset, + .formSpeciesIdTable = sZamazentaFormSpeciesIdTable, + .formChangeTable = sZamazentaFormChangeTable, }, #endif //P_FAMILY_ZAMAZENTA #if P_FAMILY_ETERNATUS -#define ETERNATUS_MISC_INFO \ - .types = { TYPE_POISON, TYPE_DRAGON }, \ - .catchRate = 255, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_PRESSURE, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .isLegendary = TRUE, \ - .speciesName = _("Eternatus"), \ - .natDexNum = NATIONAL_DEX_ETERNATUS, \ - .categoryName = _("Gigantic"), \ - .footprint = gMonFootprint_Eternatus, \ - LEARNSETS(Eternatus), \ - .formSpeciesIdTable = sEternatusFormSpeciesIdTable - [SPECIES_ETERNATUS] = { - ETERNATUS_MISC_INFO, .baseHP = 140, .baseAttack = 85, .baseDefense = 95, .baseSpeed = 130, .baseSpAttack = 145, .baseSpDefense = 95, + .types = MON_TYPES(TYPE_POISON, TYPE_DRAGON), + .catchRate = 255, .expYield = 345, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Eternatus"), .cryId = CRY_ETERNATUS, + .natDexNum = NATIONAL_DEX_ETERNATUS, + .categoryName = _("Gigantic"), .height = 200, .weight = 9500, - .pokemonScale = 230, - .pokemonOffset = 0, - .trainerScale = 4852, - .trainerOffset = 20, .description = COMPOUND_STRING( "The core on its chest absorbs energy\n" "emanating from the lands of the Galar\n" "region. This energy is what allows\n" "Eternatus to stay active."), - FRONT_PIC(Eternatus, 64, 64), + .pokemonScale = 230, + .pokemonOffset = 0, + .trainerScale = 4852, + .trainerOffset = 20, + .frontPic = gMonFrontPic_Eternatus, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Eternatus, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 4, - BACK_PIC(Eternatus, 64, 64), + .backPic = gMonBackPic_Eternatus, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Eternatus), - ICON(Eternatus, 0), + .palette = gMonPalette_Eternatus, + .shinyPalette = gMonShinyPalette_Eternatus, + .iconSprite = gMonIcon_Eternatus, + .iconPalIndex = 0, + FOOTPRINT(Eternatus) + .isLegendary = TRUE, + .levelUpLearnset = sEternatusLevelUpLearnset, + .teachableLearnset = sEternatusTeachableLearnset, + .formSpeciesIdTable = sEternatusFormSpeciesIdTable, }, [SPECIES_ETERNATUS_ETERNAMAX] = { - ETERNATUS_MISC_INFO, .baseHP = 255, .baseAttack = 115, .baseDefense = 250, .baseSpeed = 130, .baseSpAttack = 125, .baseSpDefense = 250, + .types = MON_TYPES(TYPE_POISON, TYPE_DRAGON), + .catchRate = 255, .expYield = 563, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Eternatus"), .cryId = CRY_ETERNATUS_ETERNAMAX, + .natDexNum = NATIONAL_DEX_ETERNATUS, + .categoryName = _("Gigantic"), .height = 1000, .weight = 0, - .pokemonScale = 230, - .pokemonOffset = 0, - .trainerScale = 4852, - .trainerOffset = 20, .description = COMPOUND_STRING( "As a result of Rose's meddling,\n" "Eternatus absorbed all the energy in\n" "the Galar region. It's now in a state\n" "of power overload."), - FRONT_PIC(EternatusEternamax, 64, 64), + .pokemonScale = 230, + .pokemonOffset = 0, + .trainerScale = 4852, + .trainerOffset = 20, + .frontPic = gMonFrontPic_EternatusEternamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Eternatus, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 13, - BACK_PIC(EternatusEternamax, 64, 56), + .backPic = gMonBackPic_EternatusEternamax, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(EternatusEternamax), - ICON(EternatusEternamax, 0), + .palette = gMonPalette_EternatusEternamax, + .shinyPalette = gMonShinyPalette_EternatusEternamax, + .iconSprite = gMonIcon_EternatusEternamax, + .iconPalIndex = 0, + FOOTPRINT(Eternatus) + .isLegendary = TRUE, + .levelUpLearnset = sEternatusLevelUpLearnset, + .teachableLearnset = sEternatusTeachableLearnset, + .formSpeciesIdTable = sEternatusFormSpeciesIdTable, }, #endif //P_FAMILY_ETERNATUS @@ -4660,7 +5904,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 72, .baseSpAttack = 53, .baseSpDefense = 50, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FIGHTING), .catchRate = 3, .expYield = 77, .evYield_Attack = 1, @@ -4668,10 +5912,9 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 120, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_INNER_FOCUS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, - .isLegendary = TRUE, .speciesName = _("Kubfu"), .cryId = CRY_KUBFU, .natDexNum = NATIONAL_DEX_KUBFU, @@ -4686,238 +5929,361 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kubfu, 40, 48), + .frontPic = gMonFrontPic_Kubfu, + .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Kubfu, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Kubfu, 56, 48), + .backPic = gMonBackPic_Kubfu, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Kubfu), - ICON(Kubfu, 1), - .footprint = gMonFootprint_Kubfu, - LEARNSETS(Kubfu), + .palette = gMonPalette_Kubfu, + .shinyPalette = gMonShinyPalette_Kubfu, + .iconSprite = gMonIcon_Kubfu, + .iconPalIndex = 1, + FOOTPRINT(Kubfu) + .isLegendary = TRUE, + .levelUpLearnset = sKubfuLevelUpLearnset, + .teachableLearnset = sKubfuTeachableLearnset, .evolutions = EVOLUTION({EVO_DARK_SCROLL, 0, SPECIES_URSHIFU_SINGLE_STRIKE_STYLE}, {EVO_ITEM, ITEM_SCROLL_OF_DARKNESS, SPECIES_URSHIFU_SINGLE_STRIKE_STYLE}, {EVO_WATER_SCROLL, 0, SPECIES_URSHIFU_RAPID_STRIKE_STYLE}, {EVO_ITEM, ITEM_SCROLL_OF_WATERS, SPECIES_URSHIFU_RAPID_STRIKE_STYLE}), }, -#define URSHIFU_MISC_INFO(style) \ - .baseHP = 100, \ - .baseAttack = 130, \ - .baseDefense = 100, \ - .baseSpeed = 97, \ - .baseSpAttack = 63, \ - .baseSpDefense = 60, \ - .catchRate = 3, \ - .expYield = 275, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 120, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .isLegendary = TRUE, \ - .speciesName = _("Urshifu"), \ - .natDexNum = NATIONAL_DEX_URSHIFU, \ - .categoryName = _("Wushu"), \ - .footprint = gMonFootprint_Urshifu, \ - .formSpeciesIdTable = sUrshifuFormSpeciesIdTable - -#define URSHIFU_SINGLE_STRIKE_STYLE_MISC_INFO \ - .types = { TYPE_FIGHTING, TYPE_DARK }, \ - .cryId = CRY_URSHIFU_SINGLE_STRIKE_STYLE, \ - LEARNSETS(UrshifuSingleStrikeStyle), \ - URSHIFU_MISC_INFO(SingleStrike) - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = { - URSHIFU_SINGLE_STRIKE_STYLE_MISC_INFO, + .baseHP = 100, + .baseAttack = 130, + .baseDefense = 100, + .baseSpeed = 97, + .baseSpAttack = 63, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_DARK), + .catchRate = 3, + .expYield = 275, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 120, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Urshifu"), + .cryId = CRY_URSHIFU_SINGLE_STRIKE_STYLE, + .natDexNum = NATIONAL_DEX_URSHIFU, + .categoryName = _("Wushu"), .height = 19, .weight = 1050, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 326, - .trainerOffset = 4, .description = COMPOUND_STRING( "This form of Urshifu is a strong believer\n" "in the one-hit KO. Its strategy is to leap\n" "in close to foes and land a devastating\n" "blow with a hardened fist."), - FRONT_PIC(UrshifuSingleStrikeStyle, 56, 64), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_UrshifuSingleStrikeStyle, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Urshifu, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(UrshifuSingleStrikeStyle, 64, 56), + .backPic = gMonBackPic_UrshifuSingleStrikeStyle, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(UrshifuSingleStrikeStyle), - ICON(Urshifu, 2), + .palette = gMonPalette_UrshifuSingleStrikeStyle, + .shinyPalette = gMonShinyPalette_UrshifuSingleStrikeStyle, + .iconSprite = gMonIcon_Urshifu, + .iconPalIndex = 2, + FOOTPRINT(Urshifu) + .isLegendary = TRUE, + .levelUpLearnset = sUrshifuSingleStrikeStyleLevelUpLearnset, + .teachableLearnset = sUrshifuSingleStrikeStyleTeachableLearnset, + .formSpeciesIdTable = sUrshifuFormSpeciesIdTable, .formChangeTable = sUrshifuSingleStrikeFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX] = { - URSHIFU_SINGLE_STRIKE_STYLE_MISC_INFO, + .baseHP = 100, + .baseAttack = 130, + .baseDefense = 100, + .baseSpeed = 97, + .baseSpAttack = 63, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_DARK), + .catchRate = 3, + .expYield = 275, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 120, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Urshifu"), + .cryId = CRY_URSHIFU_SINGLE_STRIKE_STYLE, + .natDexNum = NATIONAL_DEX_URSHIFU, + .categoryName = _("Wushu"), .height = 290, .weight = 0, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 326, - .trainerOffset = 4, .description = COMPOUND_STRING( "People call it the embodiment of\n" "rage. It's said that this Pokémon's\n" "terrifying expression and shout will\n" "rid the world of malevolence."), - FRONT_PIC(UrshifuSingleStrikeStyleGigantamax, 64, 64), - .frontPicYOffset = 0, - .frontAnimFrames = sAnims_UrshifuSingleStrikeStyleGigantamax, - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(UrshifuSingleStrikeStyleGigantamax, 64, 64), - .backPicYOffset = 4, - //.backAnimId = BACK_ANIM_NONE, - PALETTES(UrshifuSingleStrikeStyleGigantamax), - ICON(UrshifuSingleStrikeStyleGigantamax, 0), - .isGigantamax = TRUE, - }, -#endif //P_GIGANTAMAX_FORMS - -#define URSHIFU_RAPID_STRIKE_STYLE_MISC_INFO \ - .types = { TYPE_FIGHTING, TYPE_WATER }, \ - .cryId = CRY_URSHIFU_RAPID_STRIKE_STYLE, \ - LEARNSETS(UrshifuRapidStrikeStyle), \ - URSHIFU_MISC_INFO(RapidStrike) - - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = - { - URSHIFU_RAPID_STRIKE_STYLE_MISC_INFO, - .height = 19, - .weight = 1050, .pokemonScale = 256, .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, + .frontPic = gMonFrontPic_UrshifuSingleStrikeStyleGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_UrshifuSingleStrikeStyleGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_UrshifuSingleStrikeStyleGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_UrshifuSingleStrikeStyleGigantamax, + .shinyPalette = gMonShinyPalette_UrshifuSingleStrikeStyleGigantamax, + .iconSprite = gMonIcon_UrshifuSingleStrikeStyleGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Urshifu) + .isLegendary = TRUE, + .isGigantamax = TRUE, + .levelUpLearnset = sUrshifuSingleStrikeStyleLevelUpLearnset, + .teachableLearnset = sUrshifuSingleStrikeStyleTeachableLearnset, + .formSpeciesIdTable = sUrshifuFormSpeciesIdTable, + }, +#endif //P_GIGANTAMAX_FORMS + + [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = + { + .baseHP = 100, + .baseAttack = 130, + .baseDefense = 100, + .baseSpeed = 97, + .baseSpAttack = 63, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_WATER), + .catchRate = 3, + .expYield = 275, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 120, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Urshifu"), + .cryId = CRY_URSHIFU_RAPID_STRIKE_STYLE, + .natDexNum = NATIONAL_DEX_URSHIFU, + .categoryName = _("Wushu"), + .height = 19, + .weight = 1050, .description = COMPOUND_STRING( "This form of Urshifu is a strong\n" "believer in defeating foes by raining\n" "many blows down on them. Its\n" "strikes are nonstop, flowing like a river."), - FRONT_PIC(UrshifuRapidStrikeStyle, 56, 64), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_UrshifuRapidStrikeStyle, + .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Urshifu, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(UrshifuRapidStrikeStyle, 64, 56), + .backPic = gMonBackPic_UrshifuRapidStrikeStyle, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(UrshifuRapidStrikeStyle), - ICON(Urshifu, 2), + .palette = gMonPalette_UrshifuRapidStrikeStyle, + .shinyPalette = gMonShinyPalette_UrshifuRapidStrikeStyle, + .iconSprite = gMonIcon_Urshifu, + .iconPalIndex = 2, + FOOTPRINT(Urshifu) + .isLegendary = TRUE, + .levelUpLearnset = sUrshifuRapidStrikeStyleLevelUpLearnset, + .teachableLearnset = sUrshifuRapidStrikeStyleTeachableLearnset, + .formSpeciesIdTable = sUrshifuFormSpeciesIdTable, .formChangeTable = sUrshifuRapidStrikeFormChangeTable, }, #if P_GIGANTAMAX_FORMS [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX] = { - URSHIFU_RAPID_STRIKE_STYLE_MISC_INFO, + .baseHP = 100, + .baseAttack = 130, + .baseDefense = 100, + .baseSpeed = 97, + .baseSpAttack = 63, + .baseSpDefense = 60, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_WATER), + .catchRate = 3, + .expYield = 275, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 120, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Urshifu"), + .cryId = CRY_URSHIFU_RAPID_STRIKE_STYLE, + .natDexNum = NATIONAL_DEX_URSHIFU, + .categoryName = _("Wushu"), .height = 260, .weight = 0, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 326, - .trainerOffset = 4, .description = COMPOUND_STRING( "As it waits for the right moment to\n" "unleash its Gigantamax power, this\n" "Pokémon maintains a perfect one-\n" "legged stance. It won't even twitch."), - FRONT_PIC(UrshifuRapidStrikeStyleGigantamax, 64, 64), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .frontPic = gMonFrontPic_UrshifuRapidStrikeStyleGigantamax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_UrshifuRapidStrikeStyleGigantamax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(UrshifuRapidStrikeStyleGigantamax, 64, 64), + .backPic = gMonBackPic_UrshifuRapidStrikeStyleGigantamax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(UrshifuRapidStrikeStyleGigantamax), - ICON(UrshifuRapidStrikeStyleGigantamax, 0), + .palette = gMonPalette_UrshifuRapidStrikeStyleGigantamax, + .shinyPalette = gMonShinyPalette_UrshifuRapidStrikeStyleGigantamax, + .iconSprite = gMonIcon_UrshifuRapidStrikeStyleGigantamax, + .iconPalIndex = 0, + FOOTPRINT(Urshifu) + .isLegendary = TRUE, .isGigantamax = TRUE, + .levelUpLearnset = sUrshifuRapidStrikeStyleLevelUpLearnset, + .teachableLearnset = sUrshifuRapidStrikeStyleTeachableLearnset, + .formSpeciesIdTable = sUrshifuFormSpeciesIdTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_KUBFU #if P_FAMILY_ZARUDE -#define ZARUDE_MISC_INFO \ - .baseHP = 105, \ - .baseAttack = 120, \ - .baseDefense = 105, \ - .baseSpeed = 105, \ - .baseSpAttack = 70, \ - .baseSpDefense = 95, \ - .types = { TYPE_DARK, TYPE_GRASS }, \ - .catchRate = 3, \ - .expYield = 300, \ - .evYield_Attack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .abilities = { ABILITY_LEAF_GUARD, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .isMythical = TRUE, \ - .speciesName = _("Zarude"), \ - .cryId = CRY_ZARUDE, \ - .natDexNum = NATIONAL_DEX_ZARUDE, \ - .categoryName = _("Rogue Monkey"), \ - .height = 18, \ - .weight = 700, \ - .pokemonScale = 267, \ - .pokemonOffset = 2, \ - .trainerScale = 286, \ - .trainerOffset = 1, \ - .footprint = gMonFootprint_Zarude, \ - LEARNSETS(Zarude), \ - .formSpeciesIdTable = sZarudeFormSpeciesIdTable - [SPECIES_ZARUDE] = { - ZARUDE_MISC_INFO, + .baseHP = 105, + .baseAttack = 120, + .baseDefense = 105, + .baseSpeed = 105, + .baseSpAttack = 70, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_DARK, TYPE_GRASS), + .catchRate = 3, + .expYield = 300, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEAF_GUARD, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Zarude"), + .cryId = CRY_ZARUDE, + .natDexNum = NATIONAL_DEX_ZARUDE, + .categoryName = _("Rogue Monkey"), + .height = 18, + .weight = 700, .description = COMPOUND_STRING( "Within dense forests, this Pokémon lives\n" "in a pack with others of its kind. It's\n" "incredibly aggressive, and the other\n" "Pokémon of the forest fear it."), - FRONT_PIC(Zarude, 64, 64), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + .frontPic = gMonFrontPic_Zarude, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Zarude, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Zarude, 64, 56), + .backPic = gMonBackPic_Zarude, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Zarude), - ICON(Zarude, 1), + .palette = gMonPalette_Zarude, + .shinyPalette = gMonShinyPalette_Zarude, + .iconSprite = gMonIcon_Zarude, + .iconPalIndex = 1, + FOOTPRINT(Zarude) + .isMythical = TRUE, + .levelUpLearnset = sZarudeLevelUpLearnset, + .teachableLearnset = sZarudeTeachableLearnset, + .formSpeciesIdTable = sZarudeFormSpeciesIdTable, }, [SPECIES_ZARUDE_DADA] = { - ZARUDE_MISC_INFO, + .baseHP = 105, + .baseAttack = 120, + .baseDefense = 105, + .baseSpeed = 105, + .baseSpAttack = 70, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_DARK, TYPE_GRASS), + .catchRate = 3, + .expYield = 300, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_LEAF_GUARD, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Zarude"), + .cryId = CRY_ZARUDE, + .natDexNum = NATIONAL_DEX_ZARUDE, + .categoryName = _("Rogue Monkey"), + .height = 18, + .weight = 700, .description = COMPOUND_STRING( "This Zarude's special strength\n" "stems from its love and care for an\n" "orphaned human child that the Pokémon\n" "has raised."), - FRONT_PIC(ZarudeDada, 64, 64), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + .frontPic = gMonFrontPic_ZarudeDada, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Zarude, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ZarudeDada, 64, 56), + .backPic = gMonBackPic_ZarudeDada, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ZarudeDada), - ICON(ZarudeDada, 1), + .palette = gMonPalette_ZarudeDada, + .shinyPalette = gMonShinyPalette_ZarudeDada, + .iconSprite = gMonIcon_ZarudeDada, + .iconPalIndex = 1, + FOOTPRINT(Zarude) + .isMythical = TRUE, + .levelUpLearnset = sZarudeLevelUpLearnset, + .teachableLearnset = sZarudeTeachableLearnset, + .formSpeciesIdTable = sZarudeFormSpeciesIdTable, }, #endif //P_FAMILY_ZARUDE @@ -4930,7 +6296,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 200, .baseSpAttack = 100, .baseSpDefense = 50, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 3, .expYield = 290, .evYield_Speed = 3, @@ -4938,8 +6304,8 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 120, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_TRANSISTOR, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TRANSISTOR, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Regieleki"), .cryId = CRY_REGIELEKI, @@ -4956,19 +6322,24 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 4, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Regieleki, 64, 56), + .frontPic = gMonFrontPic_Regieleki, + .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Regieleki, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(Regieleki, 64, 48), + .backPic = gMonBackPic_Regieleki, + .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Regieleki), - ICON(Regieleki, 0), - .footprint = gMonFootprint_Regieleki, - LEARNSETS(Regieleki), + .palette = gMonPalette_Regieleki, + .shinyPalette = gMonShinyPalette_Regieleki, + .iconSprite = gMonIcon_Regieleki, + .iconPalIndex = 0, + FOOTPRINT(Regieleki) .isLegendary = TRUE, + .levelUpLearnset = sRegielekiLevelUpLearnset, + .teachableLearnset = sRegielekiTeachableLearnset, }, #endif //P_FAMILY_REGIELEKI @@ -4981,7 +6352,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 80, .baseSpAttack = 100, .baseSpDefense = 50, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_DRAGON), .catchRate = 3, .expYield = 290, .evYield_HP = 3, @@ -4989,10 +6360,9 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 120, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_DRAGONS_MAW, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_DRAGONS_MAW, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, - .isLegendary = TRUE, .speciesName = _("Regidrago"), .cryId = CRY_REGIDRAGO, .natDexNum = NATIONAL_DEX_REGIDRAGO, @@ -5008,18 +6378,24 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 365, .trainerOffset = 7, - FRONT_PIC(Regidrago, 64, 64), + .frontPic = gMonFrontPic_Regidrago, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Regidrago, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(Regidrago, 64, 56), + .backPic = gMonBackPic_Regidrago, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Regidrago), - ICON(Regidrago, 0), - .footprint = gMonFootprint_Regidrago, - LEARNSETS(Regidrago), + .palette = gMonPalette_Regidrago, + .shinyPalette = gMonShinyPalette_Regidrago, + .iconSprite = gMonIcon_Regidrago, + .iconPalIndex = 0, + FOOTPRINT(Regidrago) + .isLegendary = TRUE, + .levelUpLearnset = sRegidragoLevelUpLearnset, + .teachableLearnset = sRegidragoTeachableLearnset, }, #endif //P_FAMILY_REGIDRAGO @@ -5032,7 +6408,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 30, .baseSpAttack = 65, .baseSpDefense = 110, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 3, .expYield = 290, .evYield_Attack = 3, @@ -5040,10 +6416,9 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 120, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_CHILLING_NEIGH, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_CHILLING_NEIGH, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isLegendary = TRUE, .speciesName = _("Glastrier"), .cryId = CRY_GLASTRIER, .natDexNum = NATIONAL_DEX_GLASTRIER, @@ -5058,17 +6433,23 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - FRONT_PIC(Glastrier, 64, 64), + .frontPic = gMonFrontPic_Glastrier, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Glastrier, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Glastrier, 56, 64), + .backPic = gMonBackPic_Glastrier, + .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Glastrier), - ICON(Glastrier, 0), - .footprint = gMonFootprint_Glastrier, - LEARNSETS(Glastrier), + .palette = gMonPalette_Glastrier, + .shinyPalette = gMonShinyPalette_Glastrier, + .iconSprite = gMonIcon_Glastrier, + .iconPalIndex = 0, + FOOTPRINT(Glastrier) + .isLegendary = TRUE, + .levelUpLearnset = sGlastrierLevelUpLearnset, + .teachableLearnset = sGlastrierTeachableLearnset, }, #endif //P_FAMILY_GLASTRIER @@ -5081,7 +6462,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .baseSpeed = 130, .baseSpAttack = 145, .baseSpDefense = 80, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 3, .expYield = 290, .evYield_SpAttack = 3, @@ -5089,10 +6470,9 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 120, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_GRIM_NEIGH, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_GRIM_NEIGH, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, - .isLegendary = TRUE, .speciesName = _("Spectrier"), .cryId = CRY_SPECTRIER, .natDexNum = NATIONAL_DEX_SPECTRIER, @@ -5108,38 +6488,36 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - FRONT_PIC(Spectrier, 64, 64), + .frontPic = gMonFrontPic_Spectrier, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Spectrier, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Spectrier, 56, 56), + .backPic = gMonBackPic_Spectrier, + .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Spectrier), - ICON(Spectrier, 0), - .footprint = gMonFootprint_Spectrier, - LEARNSETS(Spectrier), + .palette = gMonPalette_Spectrier, + .shinyPalette = gMonShinyPalette_Spectrier, + .iconSprite = gMonIcon_Spectrier, + .iconPalIndex = 0, + FOOTPRINT(Spectrier) + .isLegendary = TRUE, + .levelUpLearnset = sSpectrierLevelUpLearnset, + .teachableLearnset = sSpectrierTeachableLearnset, }, #endif //P_FAMILY_SPECTRIER -#define CALYREX_MISC_INFO \ - .speciesName = _("Calyrex"), \ - .natDexNum = NATIONAL_DEX_CALYREX, \ - .footprint = gMonFootprint_Calyrex, \ - .formSpeciesIdTable = sCalyrexFormSpeciesIdTable, \ - .isLegendary = TRUE - #if P_FAMILY_CALYREX [SPECIES_CALYREX] = { - CALYREX_MISC_INFO, .baseHP = 100, .baseAttack = 80, .baseDefense = 80, .baseSpeed = 80, .baseSpAttack = 80, .baseSpDefense = 80, - .types = { TYPE_PSYCHIC, TYPE_GRASS }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_GRASS), .catchRate = 3, .expYield = 250, .evYield_HP = 3, @@ -5147,10 +6525,12 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_UNNERVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_UNNERVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Calyrex"), .cryId = CRY_CALYREX, + .natDexNum = NATIONAL_DEX_CALYREX, .categoryName = _("King"), .height = 11, .weight = 77, @@ -5163,29 +6543,36 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Calyrex, 48, 64), + .frontPic = gMonFrontPic_Calyrex, + .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Calyrex, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Calyrex, 56, 48), + .backPic = gMonBackPic_Calyrex, + .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Calyrex), - ICON(Calyrex, 0), - LEARNSETS(Calyrex), + .palette = gMonPalette_Calyrex, + .shinyPalette = gMonShinyPalette_Calyrex, + .iconSprite = gMonIcon_Calyrex, + .iconPalIndex = 0, + FOOTPRINT(Calyrex) + .isLegendary = TRUE, + .levelUpLearnset = sCalyrexLevelUpLearnset, + .teachableLearnset = sCalyrexTeachableLearnset, + .formSpeciesIdTable = sCalyrexFormSpeciesIdTable, }, #if P_FUSION_FORMS [SPECIES_CALYREX_ICE_RIDER] = { - CALYREX_MISC_INFO, .baseHP = 100, .baseAttack = 165, .baseDefense = 150, .baseSpeed = 50, .baseSpAttack = 85, .baseSpDefense = 130, - .types = { TYPE_PSYCHIC, TYPE_ICE }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_ICE), .catchRate = 3, .expYield = 340, .evYield_Attack = 3, @@ -5193,10 +6580,12 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_AS_ONE_ICE_RIDER, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_AS_ONE_ICE_RIDER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Calyrex"), .cryId = CRY_CALYREX_ICE_RIDER, + .natDexNum = NATIONAL_DEX_CALYREX, .categoryName = _("High King"), .height = 24, .weight = 8091, @@ -5209,29 +6598,36 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(CalyrexIceRider, 64, 64), + .frontPic = gMonFrontPic_CalyrexIceRider, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Calyrex, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CalyrexIceRider, 64, 64), + .backPic = gMonBackPic_CalyrexIceRider, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CalyrexIceRider), - ICON(CalyrexIceRider, 0), - LEARNSETS(CalyrexIceRider), + .palette = gMonPalette_CalyrexIceRider, + .shinyPalette = gMonShinyPalette_CalyrexIceRider, + .iconSprite = gMonIcon_CalyrexIceRider, + .iconPalIndex = 0, + FOOTPRINT(Calyrex) + .isLegendary = TRUE, .cannotBeTraded = TRUE, + .levelUpLearnset = sCalyrexIceRiderLevelUpLearnset, + .teachableLearnset = sCalyrexIceRiderTeachableLearnset, + .formSpeciesIdTable = sCalyrexFormSpeciesIdTable, }, [SPECIES_CALYREX_SHADOW_RIDER] = { - CALYREX_MISC_INFO, .baseHP = 100, .baseAttack = 85, .baseDefense = 80, .baseSpeed = 150, .baseSpAttack = 165, .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_GHOST }, + .types = MON_TYPES(TYPE_PSYCHIC, TYPE_GHOST), .catchRate = 3, .expYield = 340, .evYield_SpAttack = 3, @@ -5239,10 +6635,12 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_AS_ONE_SHADOW_RIDER, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_AS_ONE_SHADOW_RIDER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, + .speciesName = _("Calyrex"), .cryId = CRY_CALYREX_SHADOW_RIDER, + .natDexNum = NATIONAL_DEX_CALYREX, .categoryName = _("High King"), .height = 24, .weight = 536, @@ -5255,101 +6653,137 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(CalyrexShadowRider, 64, 64), + .frontPic = gMonFrontPic_CalyrexShadowRider, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Calyrex, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(CalyrexShadowRider, 64, 56), + .backPic = gMonBackPic_CalyrexShadowRider, + .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(CalyrexShadowRider), - ICON(CalyrexShadowRider, 0), - LEARNSETS(CalyrexShadowRider), + .palette = gMonPalette_CalyrexShadowRider, + .shinyPalette = gMonShinyPalette_CalyrexShadowRider, + .iconSprite = gMonIcon_CalyrexShadowRider, + .iconPalIndex = 0, + FOOTPRINT(Calyrex) + .isLegendary = TRUE, .cannotBeTraded = TRUE, + .levelUpLearnset = sCalyrexShadowRiderLevelUpLearnset, + .teachableLearnset = sCalyrexShadowRiderTeachableLearnset, + .formSpeciesIdTable = sCalyrexFormSpeciesIdTable, }, #endif //P_FUSION_FORMS #endif //P_FAMILY_CALYREX #if P_FAMILY_ENAMORUS -#define ENAMORUS_MISC_INFO \ - .types = { TYPE_FAIRY, TYPE_FLYING }, \ - .catchRate = 3, \ - .expYield = 116, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .bodyColor = BODY_COLOR_PINK, \ - .isLegendary = TRUE, \ - .speciesName = _("Enamorus"), \ - .natDexNum = NATIONAL_DEX_ENAMORUS, \ - .categoryName = _("Love-Hate"), \ - .height = 16, \ - .weight = 480, \ - .pokemonScale = 259, \ - .pokemonOffset = 1, \ - .trainerScale = 296, \ - .trainerOffset = 1, \ - LEARNSETS(Enamorus), \ - .formSpeciesIdTable = sEnamorusFormSpeciesIdTable - [SPECIES_ENAMORUS_INCARNATE] = { - ENAMORUS_MISC_INFO, .baseHP = 74, .baseAttack = 115, .baseDefense = 70, .baseSpeed = 106, .baseSpAttack = 135, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_FAIRY, TYPE_FLYING), + .catchRate = 3, + .expYield = 116, + .evYield_SpAttack = 3, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_CUTE_CHARM, ABILITY_NONE, ABILITY_CONTRARY }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Enamorus"), .cryId = CRY_ENAMORUS_INCARNATE, + .natDexNum = NATIONAL_DEX_ENAMORUS, + .categoryName = _("Love-Hate"), + .height = 16, + .weight = 480, .description = COMPOUND_STRING( "Its arrival brings an end to the winter.\n" "According to legend, this Pokémon's love\n" "gives rise to the budding of fresh life\n" "across the land."), - FRONT_PIC(EnamorusIncarnate, 64, 64), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_EnamorusIncarnate, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_EnamorusIncarnate, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 7, - BACK_PIC(EnamorusIncarnate, 64, 64), + .backPic = gMonBackPic_EnamorusIncarnate, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(EnamorusIncarnate), - ICON(EnamorusIncarnate, 1), - //.footprint = gMonFootprint_EnamorusIncarnate, + .palette = gMonPalette_EnamorusIncarnate, + .shinyPalette = gMonShinyPalette_EnamorusIncarnate, + .iconSprite = gMonIcon_EnamorusIncarnate, + .iconPalIndex = 1, + //FOOTPRINT(EnamorusIncarnate) + .isLegendary = TRUE, + .levelUpLearnset = sEnamorusLevelUpLearnset, + .teachableLearnset = sEnamorusTeachableLearnset, + .formSpeciesIdTable = sEnamorusFormSpeciesIdTable, }, [SPECIES_ENAMORUS_THERIAN] = { - ENAMORUS_MISC_INFO, .baseHP = 74, .baseAttack = 115, .baseDefense = 110, .baseSpeed = 46, .baseSpAttack = 135, .baseSpDefense = 100, + .types = MON_TYPES(TYPE_FAIRY, TYPE_FLYING), + .catchRate = 3, + .expYield = 116, + .evYield_SpAttack = 3, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_OVERCOAT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Enamorus"), .cryId = CRY_ENAMORUS_THERIAN, + .natDexNum = NATIONAL_DEX_ENAMORUS, + .categoryName = _("Love-Hate"), + .height = 16, + .weight = 480, .description = COMPOUND_STRING( "From the clouds, it descends upon\n" "those who treat any form of life\n" "with disrespect and metes out\n" "wrathful, ruthless punishment."), - FRONT_PIC(EnamorusTherian, 64, 64), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + .frontPic = gMonFrontPic_EnamorusTherian, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_EnamorusTherian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(EnamorusTherian, 64, 64), + .backPic = gMonBackPic_EnamorusTherian, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(EnamorusTherian), - ICON(EnamorusTherian, 1), - //.footprint = gMonFootprint_Enamorus, + .palette = gMonPalette_EnamorusTherian, + .shinyPalette = gMonShinyPalette_EnamorusTherian, + .iconSprite = gMonIcon_EnamorusTherian, + .iconPalIndex = 1, + //FOOTPRINT(Enamorus) + .isLegendary = TRUE, + .levelUpLearnset = sEnamorusLevelUpLearnset, + .teachableLearnset = sEnamorusTeachableLearnset, + .formSpeciesIdTable = sEnamorusFormSpeciesIdTable, }, #endif //P_FAMILY_ENAMORUS diff --git a/src/data/pokemon/species_info/gen_9.h b/src/data/pokemon/species_info/gen_9_families.h similarity index 58% rename from src/data/pokemon/species_info/gen_9.h rename to src/data/pokemon/species_info/gen_9_families.h index 7a45fc66e..d858ec352 100644 --- a/src/data/pokemon/species_info/gen_9.h +++ b/src/data/pokemon/species_info/gen_9_families.h @@ -12,7 +12,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 65, .baseSpAttack = 45, .baseSpDefense = 45, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 62, .evYield_Speed = 1, @@ -20,7 +20,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_PROTEAN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Sprigatito"), @@ -38,17 +38,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Sprigatito, 64, 64), + .frontPic = gMonFrontPic_Sprigatito, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Sprigatito, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Sprigatito, 64, 64), + .backPic = gMonBackPic_Sprigatito, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Sprigatito), - ICON(Sprigatito, 4), - //.footprint = gMonFootprint_Sprigatito, - LEARNSETS(Sprigatito), + .palette = gMonPalette_Sprigatito, + .shinyPalette = gMonShinyPalette_Sprigatito, + .iconSprite = gMonIcon_Sprigatito, + .iconPalIndex = 1, + //FOOTPRINT(Sprigatito) + .levelUpLearnset = sSprigatitoLevelUpLearnset, + .teachableLearnset = sSprigatitoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_FLORAGATO}), }, @@ -60,7 +65,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 83, .baseSpAttack = 60, .baseSpDefense = 63, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 45, .expYield = 144, .evYield_Speed = 2, @@ -68,7 +73,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_PROTEAN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Floragato"), @@ -86,17 +91,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Floragato, 64, 64), + .frontPic = gMonFrontPic_Floragato, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Floragato, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Floragato, 64, 64), + .backPic = gMonBackPic_Floragato, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Floragato), - ICON(Floragato, 1), - //.footprint = gMonFootprint_Floragato, - LEARNSETS(Floragato), + .palette = gMonPalette_Floragato, + .shinyPalette = gMonShinyPalette_Floragato, + .iconSprite = gMonIcon_Floragato, + .iconPalIndex = 1, + //FOOTPRINT(Floragato) + .levelUpLearnset = sFloragatoLevelUpLearnset, + .teachableLearnset = sFloragatoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_MEOWSCARADA}), }, @@ -108,7 +118,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 123, .baseSpAttack = 81, .baseSpDefense = 70, - .types = { TYPE_GRASS, TYPE_DARK }, + .types = MON_TYPES(TYPE_GRASS, TYPE_DARK), .catchRate = 45, .expYield = 265, .evYield_Speed = 3, @@ -116,7 +126,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS), .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_PROTEAN }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Meowscarad"), @@ -134,17 +144,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Meowscarada, 64, 64), + .frontPic = gMonFrontPic_Meowscarada, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Meowscarada, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Meowscarada, 64, 64), + .backPic = gMonBackPic_Meowscarada, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Meowscarada), - ICON(Meowscarada, 1), - //.footprint = gMonFootprint_Meowscarada, - LEARNSETS(Meowscarada), + .palette = gMonPalette_Meowscarada, + .shinyPalette = gMonShinyPalette_Meowscarada, + .iconSprite = gMonIcon_Meowscarada, + .iconPalIndex = 1, + //FOOTPRINT(Meowscarada) + .levelUpLearnset = sMeowscaradaLevelUpLearnset, + .teachableLearnset = sMeowscaradaTeachableLearnset, }, #endif //P_FAMILY_SPRIGATITO @@ -157,7 +172,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 36, .baseSpAttack = 63, .baseSpDefense = 40, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 62, .evYield_HP = 1, @@ -165,7 +180,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Fuecoco"), @@ -183,17 +198,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Fuecoco, 64, 64), + .frontPic = gMonFrontPic_Fuecoco, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Fuecoco, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Fuecoco, 64, 64), + .backPic = gMonBackPic_Fuecoco, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Fuecoco), - ICON(Fuecoco, 0), - //.footprint = gMonFootprint_Fuecoco, - LEARNSETS(Fuecoco), + .palette = gMonPalette_Fuecoco, + .shinyPalette = gMonShinyPalette_Fuecoco, + .iconSprite = gMonIcon_Fuecoco, + .iconPalIndex = 2, + //FOOTPRINT(Fuecoco) + .levelUpLearnset = sFuecocoLevelUpLearnset, + .teachableLearnset = sFuecocoTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_CROCALOR}), }, @@ -205,7 +225,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 49, .baseSpAttack = 90, .baseSpDefense = 58, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 45, .expYield = 144, .evYield_SpAttack = 2, @@ -213,7 +233,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Crocalor"), @@ -231,17 +251,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Crocalor, 64, 64), + .frontPic = gMonFrontPic_Crocalor, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Crocalor, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Crocalor, 64, 64), + .backPic = gMonBackPic_Crocalor, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Crocalor), - ICON(Crocalor, 0), - //.footprint = gMonFootprint_Crocalor, - LEARNSETS(Crocalor), + .palette = gMonPalette_Crocalor, + .shinyPalette = gMonShinyPalette_Crocalor, + .iconSprite = gMonIcon_Crocalor, + .iconPalIndex = 0, + //FOOTPRINT(Crocalor) + .levelUpLearnset = sCrocalorLevelUpLearnset, + .teachableLearnset = sCrocalorTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SKELEDIRGE}), }, @@ -253,7 +278,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 66, .baseSpAttack = 110, .baseSpDefense = 75, - .types = { TYPE_FIRE, TYPE_GHOST }, + .types = MON_TYPES(TYPE_FIRE, TYPE_GHOST), .catchRate = 45, .expYield = 265, .evYield_SpAttack = 3, @@ -261,7 +286,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_UNAWARE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Skeledirge"), @@ -279,17 +304,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Skeledirge, 64, 64), - .frontPicYOffset = 7, + .frontPic = gMonFrontPic_Skeledirge, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 5, .frontAnimFrames = sAnims_Skeledirge, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Skeledirge, 64, 64), - .backPicYOffset = 0, + .backPic = gMonBackPic_Skeledirge, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Skeledirge), - ICON(Skeledirge, 0), - //.footprint = gMonFootprint_Skeledirge, - LEARNSETS(Skeledirge), + .palette = gMonPalette_Skeledirge, + .shinyPalette = gMonShinyPalette_Skeledirge, + .iconSprite = gMonIcon_Skeledirge, + .iconPalIndex = 0, + //FOOTPRINT(Skeledirge) + .levelUpLearnset = sSkeledirgeLevelUpLearnset, + .teachableLearnset = sSkeledirgeTeachableLearnset, }, #endif //P_FAMILY_FUECOCO @@ -302,7 +332,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 62, .evYield_Attack = 1, @@ -310,7 +340,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_MOXIE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Quaxly"), @@ -328,17 +358,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Quaxly, 64, 64), + .frontPic = gMonFrontPic_Quaxly, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Quaxly, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Quaxly, 64, 64), + .backPic = gMonBackPic_Quaxly, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Quaxly), - ICON(Quaxly, 2), - //.footprint = gMonFootprint_Quaxly, - LEARNSETS(Quaxly), + .palette = gMonPalette_Quaxly, + .shinyPalette = gMonShinyPalette_Quaxly, + .iconSprite = gMonIcon_Quaxly, + .iconPalIndex = 0, + //FOOTPRINT(Quaxly) + .levelUpLearnset = sQuaxlyLevelUpLearnset, + .teachableLearnset = sQuaxlyTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_QUAXWELL}), }, @@ -350,7 +385,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 65, .baseSpAttack = 65, .baseSpDefense = 60, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 45, .expYield = 144, .evYield_Attack = 2, @@ -358,7 +393,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_MOXIE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Quaxwell"), @@ -376,17 +411,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Quaxwell, 64, 64), + .frontPic = gMonFrontPic_Quaxwell, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Quaxwell, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Quaxwell, 64, 64), + .backPic = gMonBackPic_Quaxwell, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Quaxwell), - ICON(Quaxwell, 0), - //.footprint = gMonFootprint_Quaxwell, - LEARNSETS(Quaxwell), + .palette = gMonPalette_Quaxwell, + .shinyPalette = gMonShinyPalette_Quaxwell, + .iconSprite = gMonIcon_Quaxwell, + .iconPalIndex = 0, + //FOOTPRINT(Quaxwell) + .levelUpLearnset = sQuaxwellLevelUpLearnset, + .teachableLearnset = sQuaxwellTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_QUAQUAVAL}), }, @@ -398,7 +438,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 85, .baseSpAttack = 85, .baseSpDefense = 75, - .types = { TYPE_WATER, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_WATER, TYPE_FIGHTING), .catchRate = 45, .expYield = 265, .evYield_Attack = 3, @@ -406,7 +446,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING, EGG_GROUP_WATER_1), .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_MOXIE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Quaquaval"), @@ -424,17 +464,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Quaquaval, 64, 64), + .frontPic = gMonFrontPic_Quaquaval, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Quaquaval, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Quaquaval, 64, 64), + .backPic = gMonBackPic_Quaquaval, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Quaquaval), - ICON(Quaquaval, 0), - //.footprint = gMonFootprint_Quaquaval, - LEARNSETS(Quaquaval), + .palette = gMonPalette_Quaquaval, + .shinyPalette = gMonShinyPalette_Quaquaval, + .iconSprite = gMonIcon_Quaquaval, + .iconPalIndex = 0, + //FOOTPRINT(Quaquaval) + .levelUpLearnset = sQuaquavalLevelUpLearnset, + .teachableLearnset = sQuaquavalTeachableLearnset, }, #endif //P_FAMILY_QUAXLY @@ -447,7 +492,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 35, .baseSpAttack = 35, .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 255, .expYield = 51, .evYield_HP = 1, @@ -455,7 +500,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_AROMA_VEIL, ABILITY_GLUTTONY, ABILITY_THICK_FAT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Lechonk"), @@ -473,100 +518,129 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lechonk, 64, 64), + .frontPic = gMonFrontPic_Lechonk, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Lechonk, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Lechonk, 64, 64), + .backPic = gMonBackPic_Lechonk, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Lechonk), - ICON(Lechonk, 1), - //.footprint = gMonFootprint_Lechonk, - LEARNSETS(Lechonk), + .palette = gMonPalette_Lechonk, + .shinyPalette = gMonShinyPalette_Lechonk, + .iconSprite = gMonIcon_Lechonk, + .iconPalIndex = 1, + //FOOTPRINT(Lechonk) + .levelUpLearnset = sLechonkLevelUpLearnset, + .teachableLearnset = sLechonkTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_MALE, 18, SPECIES_OINKOLOGNE_MALE}, {EVO_LEVEL_FEMALE, 18, SPECIES_OINKOLOGNE_FEMALE}), }, -#define OINKOLOGNE_MISC_INFO \ - .types = { TYPE_NORMAL, TYPE_NORMAL }, \ - .catchRate = 100, \ - .expYield = 171, \ - .evYield_HP = 2, \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, \ - .bodyColor = BODY_COLOR_GRAY, \ - .speciesName = _("Oinkologne"), \ - .natDexNum = NATIONAL_DEX_OINKOLOGNE, \ - .categoryName = _("Hog"), \ - .height = 10, \ - .weight = 1200, \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .teachableLearnset = sOinkologneTeachableLearnset, \ - .formSpeciesIdTable = sOinkologneFormSpeciesIdTable - [SPECIES_OINKOLOGNE_MALE] = { - OINKOLOGNE_MISC_INFO, .baseHP = 110, .baseAttack = 100, .baseDefense = 75, .baseSpeed = 65, .baseSpAttack = 59, .baseSpDefense = 80, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 100, + .expYield = 171, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(0), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_LINGERING_AROMA, ABILITY_GLUTTONY, ABILITY_THICK_FAT }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Oinkologne"), .cryId = CRY_OINKOLOGNE_MALE, + .natDexNum = NATIONAL_DEX_OINKOLOGNE, + .categoryName = _("Hog"), + .height = 10, + .weight = 1200, .description = COMPOUND_STRING( "Oinkologne is proud of its fine,\n" "glossy skin. It emits a concentrated\n" "scent from the tip of its tail."), - FRONT_PIC(OinkologneMale, 64, 64), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_OinkologneMale, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Oinkologne, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(OinkologneMale, 64, 64), + .backPic = gMonBackPic_OinkologneMale, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(OinkologneMale), - ICON(OinkologneMale, 1), - //.footprint = gMonFootprint_Oinkologne, + .palette = gMonPalette_OinkologneMale, + .shinyPalette = gMonShinyPalette_OinkologneMale, + .iconSprite = gMonIcon_OinkologneMale, + .iconPalIndex = 1, + //FOOTPRINT(Oinkologne) .levelUpLearnset = sOinkologneMaleLevelUpLearnset, + .teachableLearnset = sOinkologneTeachableLearnset, + .formSpeciesIdTable = sOinkologneFormSpeciesIdTable, }, [SPECIES_OINKOLOGNE_FEMALE] = { - OINKOLOGNE_MISC_INFO, .baseHP = 115, .baseAttack = 90, .baseDefense = 70, .baseSpeed = 65, .baseSpAttack = 59, .baseSpDefense = 90, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 100, + .expYield = 171, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(100), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_AROMA_VEIL, ABILITY_GLUTTONY, ABILITY_THICK_FAT }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Oinkologne"), .cryId = CRY_OINKOLOGNE_FEMALE, + .natDexNum = NATIONAL_DEX_OINKOLOGNE, + .categoryName = _("Hog"), + .height = 10, + .weight = 1200, .description = COMPOUND_STRING( "This is a meticulous Pokémon that\n" "likes to keep things tidy. It\n" "shrouds itself in a floral aroma that\n" "soothes the Pokémon around it."), - FRONT_PIC(OinkologneFemale, 64, 64), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_OinkologneFemale, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Oinkologne, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(OinkologneFemale, 64, 64), + .backPic = gMonBackPic_OinkologneFemale, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(OinkologneFemale), - ICON(OinkologneFemale, 2), - //.footprint = gMonFootprint_Oinkologne, + .palette = gMonPalette_OinkologneFemale, + .shinyPalette = gMonShinyPalette_OinkologneFemale, + .iconSprite = gMonIcon_OinkologneFemale, + .iconPalIndex = 0, + //FOOTPRINT(Oinkologne) .levelUpLearnset = sOinkologneFemaleLevelUpLearnset, + .teachableLearnset = sOinkologneTeachableLearnset, + .formSpeciesIdTable = sOinkologneFormSpeciesIdTable, }, #endif //P_FAMILY_LECHONK @@ -579,7 +653,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 20, .baseSpAttack = 29, .baseSpDefense = 40, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 255, .expYield = 42, .evYield_Defense = 1, @@ -587,7 +661,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_STAKEOUT }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Tarountula"), @@ -605,17 +679,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tarountula, 64, 64), + .frontPic = gMonFrontPic_Tarountula, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Tarountula, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Tarountula, 64, 64), + .backPic = gMonBackPic_Tarountula, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Tarountula), - ICON(Tarountula, 1), - //.footprint = gMonFootprint_Tarountula, - LEARNSETS(Tarountula), + .palette = gMonPalette_Tarountula, + .shinyPalette = gMonShinyPalette_Tarountula, + .iconSprite = gMonIcon_Tarountula, + .iconPalIndex = 1, + //FOOTPRINT(Tarountula) + .levelUpLearnset = sTarountulaLevelUpLearnset, + .teachableLearnset = sTarountulaTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_SPIDOPS}), }, @@ -627,7 +706,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 35, .baseSpAttack = 52, .baseSpDefense = 86, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 120, .expYield = 141, .evYield_Defense = 2, @@ -635,7 +714,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_STAKEOUT }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Spidops"), @@ -653,17 +732,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Spidops, 64, 64), + .frontPic = gMonFrontPic_Spidops, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Spidops, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Spidops, 64, 64), + .backPic = gMonBackPic_Spidops, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Spidops), - ICON(Spidops, 1), - //.footprint = gMonFootprint_Spidops, - LEARNSETS(Spidops), + .palette = gMonPalette_Spidops, + .shinyPalette = gMonShinyPalette_Spidops, + .iconSprite = gMonIcon_Spidops, + .iconPalIndex = 1, + //FOOTPRINT(Spidops) + .levelUpLearnset = sSpidopsLevelUpLearnset, + .teachableLearnset = sSpidopsTeachableLearnset, }, #endif //P_FAMILY_TAROUNTULA @@ -676,7 +760,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 45, .baseSpAttack = 21, .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 190, .expYield = 42, .evYield_Attack = 1, @@ -684,7 +768,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = 20, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_TINTED_LENS }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Nymble"), @@ -702,17 +786,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nymble, 64, 64), + .frontPic = gMonFrontPic_Nymble, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Nymble, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Nymble, 64, 64), + .backPic = gMonBackPic_Nymble, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Nymble), - ICON(Nymble, 0), - //.footprint = gMonFootprint_Nymble, - LEARNSETS(Nymble), + .palette = gMonPalette_Nymble, + .shinyPalette = gMonShinyPalette_Nymble, + .iconSprite = gMonIcon_Nymble, + .iconPalIndex = 0, + //FOOTPRINT(Nymble) + .levelUpLearnset = sNymbleLevelUpLearnset, + .teachableLearnset = sNymbleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_LOKIX}), }, @@ -724,7 +813,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 92, .baseSpAttack = 52, .baseSpDefense = 55, - .types = { TYPE_BUG, TYPE_DARK }, + .types = MON_TYPES(TYPE_BUG, TYPE_DARK), .catchRate = 30, .expYield = 158, .evYield_Attack = 2, @@ -732,7 +821,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = 0, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_TINTED_LENS }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Lokix"), @@ -750,17 +839,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Lokix, 64, 64), + .frontPic = gMonFrontPic_Lokix, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Lokix, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Lokix, 64, 64), + .backPic = gMonBackPic_Lokix, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Lokix), - ICON(Lokix, 0), - //.footprint = gMonFootprint_Lokix, - LEARNSETS(Lokix), + .palette = gMonPalette_Lokix, + .shinyPalette = gMonShinyPalette_Lokix, + .iconSprite = gMonIcon_Lokix, + .iconPalIndex = 0, + //FOOTPRINT(Lokix) + .levelUpLearnset = sLokixLevelUpLearnset, + .teachableLearnset = sLokixTeachableLearnset, }, #endif //P_FAMILY_NYMBLE @@ -773,7 +867,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 60, .baseSpAttack = 40, .baseSpDefense = 25, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 190, .expYield = 48, .evYield_Speed = 1, @@ -781,7 +875,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_STATIC, ABILITY_NATURAL_CURE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Pawmi"), @@ -799,17 +893,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pawmi, 64, 64), + .frontPic = gMonFrontPic_Pawmi, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Pawmi, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Pawmi, 64, 64), + .backPic = gMonBackPic_Pawmi, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Pawmi), - ICON(Pawmi, 3), - //.footprint = gMonFootprint_Pawmi, - LEARNSETS(Pawmi), + .palette = gMonPalette_Pawmi, + .shinyPalette = gMonShinyPalette_Pawmi, + .iconSprite = gMonIcon_Pawmi, + .iconPalIndex = 0, + //FOOTPRINT(Pawmi) + .levelUpLearnset = sPawmiLevelUpLearnset, + .teachableLearnset = sPawmiTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_PAWMO}), }, @@ -821,7 +920,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 85, .baseSpAttack = 50, .baseSpDefense = 40, - .types = { TYPE_ELECTRIC, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FIGHTING), .catchRate = 80, .expYield = 123, .evYield_Speed = 2, @@ -829,7 +928,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_VOLT_ABSORB, ABILITY_NATURAL_CURE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Pawmo"), @@ -847,17 +946,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pawmo, 64, 64), + .frontPic = gMonFrontPic_Pawmo, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Pawmo, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Pawmo, 64, 64), + .backPic = gMonBackPic_Pawmo, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Pawmo), - ICON(Pawmo, 3), - //.footprint = gMonFootprint_Pawmo, - LEARNSETS(Pawmo), + .palette = gMonPalette_Pawmo, + .shinyPalette = gMonShinyPalette_Pawmo, + .iconSprite = gMonIcon_Pawmo, + .iconPalIndex = 0, + //FOOTPRINT(Pawmo) + .levelUpLearnset = sPawmoLevelUpLearnset, + .teachableLearnset = sPawmoTeachableLearnset, .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_PAWMOT}), }, @@ -869,7 +973,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 105, .baseSpAttack = 70, .baseSpDefense = 60, - .types = { TYPE_ELECTRIC, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FIGHTING), .catchRate = 45, .expYield = 245, .evYield_Attack = 3, @@ -877,7 +981,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_VOLT_ABSORB, ABILITY_NATURAL_CURE, ABILITY_IRON_FIST }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Pawmot"), @@ -895,17 +999,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Pawmot, 64, 64), + .frontPic = gMonFrontPic_Pawmot, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Pawmot, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Pawmot, 64, 64), + .backPic = gMonBackPic_Pawmot, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Pawmot), - ICON(Pawmot, 3), - //.footprint = gMonFootprint_Pawmot, - LEARNSETS(Pawmot), + .palette = gMonPalette_Pawmot, + .shinyPalette = gMonShinyPalette_Pawmot, + .iconSprite = gMonIcon_Pawmot, + .iconPalIndex = 0, + //FOOTPRINT(Pawmot) + .levelUpLearnset = sPawmotLevelUpLearnset, + .teachableLearnset = sPawmotTeachableLearnset, }, #endif //P_FAMILY_PAWMI @@ -918,7 +1027,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 75, .baseSpAttack = 40, .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_NORMAL), .catchRate = 150, .expYield = 61, .evYield_Speed = 1, @@ -926,7 +1035,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), .abilities = { ABILITY_RUN_AWAY, ABILITY_PICKUP, ABILITY_OWN_TEMPO }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Tandemaus"), @@ -944,84 +1053,129 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tandemaus, 64, 64), + .frontPic = gMonFrontPic_Tandemaus, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Tandemaus, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Tandemaus, 64, 64), + .backPic = gMonBackPic_Tandemaus, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Tandemaus), - ICON(Tandemaus, 0), - //.footprint = gMonFootprint_Tandemaus, - LEARNSETS(Tandemaus), + .palette = gMonPalette_Tandemaus, + .shinyPalette = gMonShinyPalette_Tandemaus, + .iconSprite = gMonIcon_Tandemaus, + .iconPalIndex = 1, + //FOOTPRINT(Tandemaus) + .levelUpLearnset = sTandemausLevelUpLearnset, + .teachableLearnset = sTandemausTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_FAMILY_OF_FOUR, 25, SPECIES_MAUSHOLD_FAMILY_OF_FOUR}, {EVO_LEVEL_FAMILY_OF_THREE, 25, SPECIES_MAUSHOLD_FAMILY_OF_THREE}), }, -#define MAUSHOLD_SPECIES_INFO \ - .baseHP = 74, \ - .baseAttack = 75, \ - .baseDefense = 70, \ - .baseSpeed = 111, \ - .baseSpAttack = 65, \ - .baseSpDefense = 75, \ - .types = { TYPE_NORMAL, TYPE_NORMAL }, \ - .catchRate = 75, \ - .expYield = 165, \ - .evYield_Speed = 2, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 10, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, \ - .abilities = { ABILITY_FRIEND_GUARD, ABILITY_CHEEK_POUCH, ABILITY_TECHNICIAN }, \ - .bodyColor = BODY_COLOR_WHITE, \ - .speciesName = _("Maushold"), \ - .natDexNum = NATIONAL_DEX_MAUSHOLD, \ - .categoryName = _("Family"), \ - .height = 3, \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontPicYOffset = 15, \ - .frontAnimFrames = sAnims_Maushold, \ - .backPicYOffset = 15, \ - PALETTES(Maushold), \ - LEARNSETS(Maushold), \ - .formSpeciesIdTable = sMausholdFormSpeciesIdTable - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.footprint = gMonFootprint_Maushold, - [SPECIES_MAUSHOLD_FAMILY_OF_THREE] = { - MAUSHOLD_SPECIES_INFO, + .baseHP = 74, + .baseAttack = 75, + .baseDefense = 70, + .baseSpeed = 111, + .baseSpAttack = 65, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 75, + .expYield = 165, + .evYield_Speed = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), + .abilities = { ABILITY_FRIEND_GUARD, ABILITY_CHEEK_POUCH, ABILITY_TECHNICIAN }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Maushold"), .cryId = CRY_MAUSHOLD_FAMILY_OF_THREE, + .natDexNum = NATIONAL_DEX_MAUSHOLD, + .categoryName = _("Family"), + .height = 3, .weight = 23, .description = COMPOUND_STRING( "The little one just appeared one\n" "day. They all live together like a\n" "family, but the relationship between\n" "the three is still unclear."), - FRONT_PIC(MausholdFamilyOfThree, 64, 64), - BACK_PIC(MausholdFamilyOfThree, 64, 64), - ICON(MausholdFamilyOfThree, 0), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MausholdFamilyOfThree, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Maushold, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_MausholdFamilyOfThree, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 15, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_Maushold, + .shinyPalette = gMonShinyPalette_Maushold, + .iconSprite = gMonIcon_MausholdFamilyOfThree, + .iconPalIndex = 1, + /*FOOTPRINT(Maushold)*/ + .levelUpLearnset = sMausholdLevelUpLearnset, + .teachableLearnset = sMausholdTeachableLearnset, + .formSpeciesIdTable = sMausholdFormSpeciesIdTable, }, [SPECIES_MAUSHOLD_FAMILY_OF_FOUR] = { - MAUSHOLD_SPECIES_INFO, + .baseHP = 74, + .baseAttack = 75, + .baseDefense = 70, + .baseSpeed = 111, + .baseSpAttack = 65, + .baseSpDefense = 75, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 75, + .expYield = 165, + .evYield_Speed = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY), + .abilities = { ABILITY_FRIEND_GUARD, ABILITY_CHEEK_POUCH, ABILITY_TECHNICIAN }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Maushold"), .cryId = CRY_MAUSHOLD_FAMILY_OF_FOUR, + .natDexNum = NATIONAL_DEX_MAUSHOLD, + .categoryName = _("Family"), + .height = 3, .weight = 28, .description = COMPOUND_STRING( "The larger pair protects the little\n" "ones during battles. When facing\n" "strong opponents, the whole group\n" "will join the fight."), - FRONT_PIC(MausholdFamilyOfFour, 64, 64), - BACK_PIC(MausholdFamilyOfFour, 64, 64), - ICON(MausholdFamilyOfFour, 0), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_MausholdFamilyOfFour, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Maushold, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_MausholdFamilyOfFour, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 15, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_Maushold, + .shinyPalette = gMonShinyPalette_Maushold, + .iconSprite = gMonIcon_MausholdFamilyOfFour, + .iconPalIndex = 1, + /*FOOTPRINT(Maushold)*/ + .levelUpLearnset = sMausholdLevelUpLearnset, + .teachableLearnset = sMausholdTeachableLearnset, + .formSpeciesIdTable = sMausholdFormSpeciesIdTable, }, #endif //P_FAMILY_TANDEMAUS @@ -1034,7 +1188,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 65, .baseSpAttack = 30, .baseSpDefense = 55, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 190, .expYield = 62, .evYield_Speed = 1, @@ -1042,7 +1196,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_MINERAL), .abilities = { ABILITY_OWN_TEMPO, ABILITY_NONE, ABILITY_KLUTZ }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Fidough"), @@ -1060,17 +1214,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Fidough, 64, 64), + .frontPic = gMonFrontPic_Fidough, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Fidough, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Fidough, 64, 64), + .backPic = gMonBackPic_Fidough, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Fidough), - ICON(Fidough, 1), - //.footprint = gMonFootprint_Fidough, - LEARNSETS(Fidough), + .palette = gMonPalette_Fidough, + .shinyPalette = gMonShinyPalette_Fidough, + .iconSprite = gMonIcon_Fidough, + .iconPalIndex = 1, + //FOOTPRINT(Fidough) + .levelUpLearnset = sFidoughLevelUpLearnset, + .teachableLearnset = sFidoughTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_DACHSBUN}), }, @@ -1082,7 +1241,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 95, .baseSpAttack = 50, .baseSpDefense = 80, - .types = { TYPE_FAIRY, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_FAIRY), .catchRate = 90, .expYield = 167, .evYield_Speed = 2, @@ -1090,7 +1249,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_MINERAL), .abilities = { ABILITY_WELL_BAKED_BODY, ABILITY_NONE, ABILITY_AROMA_VEIL }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Dachsbun"), @@ -1108,17 +1267,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dachsbun, 64, 64), + .frontPic = gMonFrontPic_Dachsbun, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Dachsbun, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dachsbun, 64, 64), + .backPic = gMonBackPic_Dachsbun, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dachsbun), - ICON(Dachsbun, 0), // TODO - //.footprint = gMonFootprint_Dachsbun, - LEARNSETS(Dachsbun), + .palette = gMonPalette_Dachsbun, + .shinyPalette = gMonShinyPalette_Dachsbun, + .iconSprite = gMonIcon_Dachsbun, + .iconPalIndex = 0, + //FOOTPRINT(Dachsbun) + .levelUpLearnset = sDachsbunLevelUpLearnset, + .teachableLearnset = sDachsbunTeachableLearnset, }, #endif //P_FAMILY_FIDOUGH @@ -1131,7 +1295,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 30, .baseSpAttack = 58, .baseSpDefense = 51, - .types = { TYPE_GRASS, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_GRASS, TYPE_NORMAL), .catchRate = 255, .expYield = 52, .evYield_SpAttack = 1, @@ -1139,7 +1303,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_EARLY_BIRD, ABILITY_NONE, ABILITY_HARVEST }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Smoliv"), @@ -1157,17 +1321,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Smoliv, 64, 64), + .frontPic = gMonFrontPic_Smoliv, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Smoliv, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Smoliv, 64, 64), - .backPicYOffset = 16, + .backPic = gMonBackPic_Smoliv, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Smoliv), - ICON(Smoliv, 1), - //.footprint = gMonFootprint_Smoliv, - LEARNSETS(Smoliv), + .palette = gMonPalette_Smoliv, + .shinyPalette = gMonShinyPalette_Smoliv, + .iconSprite = gMonIcon_Smoliv, + .iconPalIndex = 1, + //FOOTPRINT(Smoliv) + .levelUpLearnset = sSmolivLevelUpLearnset, + .teachableLearnset = sSmolivTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_DOLLIV}), }, @@ -1179,7 +1348,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 33, .baseSpAttack = 78, .baseSpDefense = 78, - .types = { TYPE_GRASS, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_GRASS, TYPE_NORMAL), .catchRate = 120, .expYield = 124, .evYield_SpAttack = 2, @@ -1187,7 +1356,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_EARLY_BIRD, ABILITY_NONE, ABILITY_HARVEST }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Dolliv"), @@ -1205,17 +1374,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dolliv, 64, 64), + .frontPic = gMonFrontPic_Dolliv, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Dolliv, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Dolliv, 64, 64), - .backPicYOffset = 2, + .backPic = gMonBackPic_Dolliv, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dolliv), - ICON(Dolliv, 1), - //.footprint = gMonFootprint_Dolliv, - LEARNSETS(Dolliv), + .palette = gMonPalette_Dolliv, + .shinyPalette = gMonShinyPalette_Dolliv, + .iconSprite = gMonIcon_Dolliv, + .iconPalIndex = 1, + //FOOTPRINT(Dolliv) + .levelUpLearnset = sDollivLevelUpLearnset, + .teachableLearnset = sDollivTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_ARBOLIVA}), }, @@ -1227,7 +1401,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 39, .baseSpAttack = 125, .baseSpDefense = 109, - .types = { TYPE_GRASS, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_GRASS, TYPE_NORMAL), .catchRate = 45, .expYield = 255, .evYield_SpAttack = 3, @@ -1235,7 +1409,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_SEED_SOWER, ABILITY_NONE, ABILITY_HARVEST }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Arboliva"), @@ -1253,112 +1427,236 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Arboliva, 64, 64), + .frontPic = gMonFrontPic_Arboliva, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Arboliva, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Arboliva, 64, 64), - .backPicYOffset = 0, + .backPic = gMonBackPic_Arboliva, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Arboliva), - ICON(Arboliva, 5), - //.footprint = gMonFootprint_Arboliva, - LEARNSETS(Arboliva), + .palette = gMonPalette_Arboliva, + .shinyPalette = gMonShinyPalette_Arboliva, + .iconSprite = gMonIcon_Arboliva, + .iconPalIndex = 1, + //FOOTPRINT(Arboliva) + .levelUpLearnset = sArbolivaLevelUpLearnset, + .teachableLearnset = sArbolivaTeachableLearnset, }, #endif //P_FAMILY_SMOLIV #if P_FAMILY_SQUAWKABILLY -#define SQUAWKABILLY_MISC_INFO \ - .baseHP = 82, \ - .baseAttack = 96, \ - .baseDefense = 51, \ - .baseSpeed = 92, \ - .baseSpAttack = 45, \ - .baseSpDefense = 51, \ - .types = { TYPE_NORMAL, TYPE_FLYING }, \ - .catchRate = 190, \ - .expYield = 146, \ - .evYield_Attack = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_ERRATIC, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, \ - .speciesName = _("Sqawkabily"), \ - .cryId = CRY_SQUAWKABILLY, \ - .natDexNum = NATIONAL_DEX_SQUAWKABILLY, \ - .categoryName = _("Parrot"), \ - .height = 6, \ - .weight = 24, \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Squawkabilly, 64, 64), \ - .frontPicYOffset = 4, \ - .frontAnimFrames = sAnims_Squawkabilly, \ - BACK_PIC(Squawkabilly, 64, 64), \ - .backPicYOffset = 4, \ - LEARNSETS(Squawkabilly), \ - .formSpeciesIdTable = sSquawkabillyFormSpeciesIdTable - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.footprint = gMonFootprint_Squawkabilly, - [SPECIES_SQUAWKABILLY_GREEN_PLUMAGE] = { - SQUAWKABILLY_MISC_INFO, + .baseHP = 82, + .baseAttack = 96, + .baseDefense = 51, + .baseSpeed = 92, + .baseSpAttack = 45, + .baseSpDefense = 51, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), + .catchRate = 190, + .expYield = 146, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_GUTS }, .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Sqawkabily"), + .cryId = CRY_SQUAWKABILLY, + .natDexNum = NATIONAL_DEX_SQUAWKABILLY, + .categoryName = _("Parrot"), + .height = 6, + .weight = 24, .description = COMPOUND_STRING( "Green-feathered flocks hold the\n" "most sway. When they're out\n" "searching for food in the mornings and\n" "evenings, it gets very noisy."), - PALETTES(SquawkabillyGreenPlumage), - ICON(SquawkabillyGreenPlumage, 1), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Squawkabilly, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Squawkabilly, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_Squawkabilly, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 4, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_SquawkabillyGreenPlumage, + .shinyPalette = gMonShinyPalette_SquawkabillyGreenPlumage, + .iconSprite = gMonIcon_SquawkabillyGreenPlumage, + .iconPalIndex = 1, + /*FOOTPRINT(Squawkabilly)*/ + .levelUpLearnset = sSquawkabillyLevelUpLearnset, + .teachableLearnset = sSquawkabillyTeachableLearnset, + .formSpeciesIdTable = sSquawkabillyFormSpeciesIdTable, }, [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE] = { - SQUAWKABILLY_MISC_INFO, + .baseHP = 82, + .baseAttack = 96, + .baseDefense = 51, + .baseSpeed = 92, + .baseSpAttack = 45, + .baseSpDefense = 51, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), + .catchRate = 190, + .expYield = 146, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_GUTS }, .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Sqawkabily"), + .cryId = CRY_SQUAWKABILLY, + .natDexNum = NATIONAL_DEX_SQUAWKABILLY, + .categoryName = _("Parrot"), + .height = 6, + .weight = 24, .description = COMPOUND_STRING( "The largest of their flocks can\n" "contain more than 50 individuals. They\n" "fly around towns and forests,\n" "searching for food and making a racket."), - PALETTES(SquawkabillyBluePlumage), - ICON(SquawkabillyBluePlumage, 2), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Squawkabilly, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Squawkabilly, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_Squawkabilly, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 4, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_SquawkabillyBluePlumage, + .shinyPalette = gMonShinyPalette_SquawkabillyBluePlumage, + .iconSprite = gMonIcon_SquawkabillyBluePlumage, + .iconPalIndex = 0, + /*FOOTPRINT(Squawkabilly)*/ + .levelUpLearnset = sSquawkabillyLevelUpLearnset, + .teachableLearnset = sSquawkabillyTeachableLearnset, + .formSpeciesIdTable = sSquawkabillyFormSpeciesIdTable, }, [SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE] = { - SQUAWKABILLY_MISC_INFO, + .baseHP = 82, + .baseAttack = 96, + .baseDefense = 51, + .baseSpeed = 92, + .baseSpAttack = 45, + .baseSpDefense = 51, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), + .catchRate = 190, + .expYield = 146, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Sqawkabily"), + .cryId = CRY_SQUAWKABILLY, + .natDexNum = NATIONAL_DEX_SQUAWKABILLY, + .categoryName = _("Parrot"), + .height = 6, + .weight = 24, .description = COMPOUND_STRING( "These Squawkabilly are hotheaded,\n" "and their fighting style is vicious.\n" "They'll leap within reach of their\n" "foes to engage in close combat."), - PALETTES(SquawkabillyYellowPlumage), - ICON(SquawkabillyYellowPlumage, 1), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Squawkabilly, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Squawkabilly, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_Squawkabilly, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 4, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_SquawkabillyYellowPlumage, + .shinyPalette = gMonShinyPalette_SquawkabillyYellowPlumage, + .iconSprite = gMonIcon_SquawkabillyYellowPlumage, + .iconPalIndex = 1, + /*FOOTPRINT(Squawkabilly)*/ + .levelUpLearnset = sSquawkabillyLevelUpLearnset, + .teachableLearnset = sSquawkabillyTeachableLearnset, + .formSpeciesIdTable = sSquawkabillyFormSpeciesIdTable, }, [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE] = { - SQUAWKABILLY_MISC_INFO, + .baseHP = 82, + .baseAttack = 96, + .baseDefense = 51, + .baseSpeed = 92, + .baseSpAttack = 45, + .baseSpDefense = 51, + .types = MON_TYPES(TYPE_NORMAL, TYPE_FLYING), + .catchRate = 190, + .expYield = 146, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Sqawkabily"), + .cryId = CRY_SQUAWKABILLY, + .natDexNum = NATIONAL_DEX_SQUAWKABILLY, + .categoryName = _("Parrot"), + .height = 6, + .weight = 24, .description = COMPOUND_STRING( "Though these Squawkabilly are the\n" "fewest in number, they have no\n" "trouble living in towns since they blend\n" "in with the white buildings."), - PALETTES(SquawkabillyWhitePlumage), - ICON(SquawkabillyWhitePlumage, 1), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Squawkabilly, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Squawkabilly, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_Squawkabilly, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 4, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_SquawkabillyWhitePlumage, + .shinyPalette = gMonShinyPalette_SquawkabillyWhitePlumage, + .iconSprite = gMonIcon_SquawkabillyWhitePlumage, + .iconPalIndex = 0, + /*FOOTPRINT(Squawkabilly)*/ + .levelUpLearnset = sSquawkabillyLevelUpLearnset, + .teachableLearnset = sSquawkabillyTeachableLearnset, + .formSpeciesIdTable = sSquawkabillyFormSpeciesIdTable, }, #endif //P_FAMILY_SQUAWKABILLY @@ -1371,7 +1669,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 25, .baseSpAttack = 35, .baseSpDefense = 35, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 255, .expYield = 56, .evYield_Defense = 1, @@ -1379,7 +1677,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_PURIFYING_SALT, ABILITY_STURDY, ABILITY_CLEAR_BODY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Nacli"), @@ -1397,17 +1695,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Nacli, 64, 64), + .frontPic = gMonFrontPic_Nacli, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Nacli, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Nacli, 64, 64), + .backPic = gMonBackPic_Nacli, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Nacli), - ICON(Nacli, 2), - //.footprint = gMonFootprint_Nacli, - LEARNSETS(Nacli), + .palette = gMonPalette_Nacli, + .shinyPalette = gMonShinyPalette_Nacli, + .iconSprite = gMonIcon_Nacli, + .iconPalIndex = 2, + //FOOTPRINT(Nacli) + .levelUpLearnset = sNacliLevelUpLearnset, + .teachableLearnset = sNacliTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_NACLSTACK}), }, @@ -1419,7 +1722,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 35, .baseSpAttack = 35, .baseSpDefense = 65, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 120, .expYield = 124, .evYield_Defense = 2, @@ -1427,7 +1730,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_PURIFYING_SALT, ABILITY_STURDY, ABILITY_CLEAR_BODY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Naclstack"), @@ -1445,17 +1748,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Naclstack, 64, 64), + .frontPic = gMonFrontPic_Naclstack, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Naclstack, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Naclstack, 64, 64), + .backPic = gMonBackPic_Naclstack, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Naclstack), - ICON(Naclstack, 2), // TODO: recolor - //.footprint = gMonFootprint_Naclstack, - LEARNSETS(Naclstack), + .palette = gMonPalette_Naclstack, + .shinyPalette = gMonShinyPalette_Naclstack, + .iconSprite = gMonIcon_Naclstack, + .iconPalIndex = 2, + //FOOTPRINT(Naclstack) + .levelUpLearnset = sNaclstackLevelUpLearnset, + .teachableLearnset = sNaclstackTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_GARGANACL}), }, @@ -1467,7 +1775,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 35, .baseSpAttack = 45, .baseSpDefense = 90, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 45, .expYield = 250, .evYield_Defense = 3, @@ -1475,7 +1783,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_PURIFYING_SALT, ABILITY_STURDY, ABILITY_CLEAR_BODY }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Garganacl"), @@ -1493,17 +1801,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Garganacl, 64, 64), + .frontPic = gMonFrontPic_Garganacl, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Garganacl, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Garganacl, 64, 64), + .backPic = gMonBackPic_Garganacl, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Garganacl), - ICON(Garganacl, 2), - //.footprint = gMonFootprint_Garganacl, - LEARNSETS(Garganacl), + .palette = gMonPalette_Garganacl, + .shinyPalette = gMonShinyPalette_Garganacl, + .iconSprite = gMonIcon_Garganacl, + .iconPalIndex = 2, + //FOOTPRINT(Garganacl) + .levelUpLearnset = sGarganaclLevelUpLearnset, + .teachableLearnset = sGarganaclTeachableLearnset, }, #endif //P_FAMILY_NACLI @@ -1516,7 +1829,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 35, .baseSpAttack = 50, .baseSpDefense = 40, - .types = { TYPE_FIRE, TYPE_FIRE }, + .types = MON_TYPES(TYPE_FIRE), .catchRate = 90, .expYield = 51, .evYield_SpAttack = 1, @@ -1524,7 +1837,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_FLAME_BODY }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Charcadet"), @@ -1542,17 +1855,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Charcadet, 64, 64), - .frontPicYOffset = 5, + .frontPic = gMonFrontPic_Charcadet, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 9, .frontAnimFrames = sAnims_Charcadet, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Charcadet, 64, 64), - .backPicYOffset = 3, + .backPic = gMonBackPic_Charcadet, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Charcadet), - ICON(Charcadet, 1), - //.footprint = gMonFootprint_Charcadet, - LEARNSETS(Charcadet), + .palette = gMonPalette_Charcadet, + .shinyPalette = gMonShinyPalette_Charcadet, + .iconSprite = gMonIcon_Charcadet, + .iconPalIndex = 0, + //FOOTPRINT(Charcadet) + .levelUpLearnset = sCharcadetLevelUpLearnset, + .teachableLearnset = sCharcadetTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_AUSPICIOUS_ARMOR, SPECIES_ARMAROUGE}, {EVO_ITEM, ITEM_MALICIOUS_ARMOR, SPECIES_CERULEDGE}), }, @@ -1565,7 +1883,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 75, .baseSpAttack = 125, .baseSpDefense = 80, - .types = { TYPE_FIRE, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_FIRE, TYPE_PSYCHIC), .catchRate = 25, .expYield = 263, .evYield_SpAttack = 2, @@ -1573,7 +1891,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 35, .friendship = 20, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Armarouge"), @@ -1591,17 +1909,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Armarouge, 64, 64), + .frontPic = gMonFrontPic_Armarouge, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Armarouge, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Armarouge, 64, 64), + .backPic = gMonBackPic_Armarouge, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Armarouge), - ICON(Armarouge, 0), - //.footprint = gMonFootprint_Armarouge, - LEARNSETS(Armarouge), + .palette = gMonPalette_Armarouge, + .shinyPalette = gMonShinyPalette_Armarouge, + .iconSprite = gMonIcon_Armarouge, + .iconPalIndex = 0, + //FOOTPRINT(Armarouge) + .levelUpLearnset = sArmarougeLevelUpLearnset, + .teachableLearnset = sArmarougeTeachableLearnset, }, [SPECIES_CERULEDGE] = @@ -1612,7 +1935,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 85, .baseSpAttack = 60, .baseSpDefense = 100, - .types = { TYPE_FIRE, TYPE_GHOST }, + .types = MON_TYPES(TYPE_FIRE, TYPE_GHOST), .catchRate = 25, .expYield = 263, .evYield_Attack = 2, @@ -1620,7 +1943,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 35, .friendship = 20, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE), .abilities = { ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_WEAK_ARMOR }, .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Ceruledge"), @@ -1638,17 +1961,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Ceruledge, 64, 64), + .frontPic = gMonFrontPic_Ceruledge, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Ceruledge, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Ceruledge, 64, 64), + .backPic = gMonBackPic_Ceruledge, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Ceruledge), - ICON(Ceruledge, 2), - //.footprint = gMonFootprint_Ceruledge, - LEARNSETS(Ceruledge), + .palette = gMonPalette_Ceruledge, + .shinyPalette = gMonShinyPalette_Ceruledge, + .iconSprite = gMonIcon_Ceruledge, + .iconPalIndex = 2, + //FOOTPRINT(Ceruledge) + .levelUpLearnset = sCeruledgeLevelUpLearnset, + .teachableLearnset = sCeruledgeTeachableLearnset, }, #endif //P_FAMILY_CHARCADET @@ -1661,7 +1989,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 45, .baseSpAttack = 59, .baseSpDefense = 35, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 190, .expYield = 54, .evYield_HP = 1, @@ -1669,7 +1997,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_OWN_TEMPO, ABILITY_STATIC, ABILITY_DAMP }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Tadbulb"), @@ -1687,18 +2015,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tadbulb, 64, 64), - .frontPicYOffset = 11, + .frontPic = gMonFrontPic_Tadbulb, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 4, .frontAnimFrames = sAnims_Tadbulb, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 12, - BACK_PIC(Tadbulb, 64, 64), + .backPic = gMonBackPic_Tadbulb, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Tadbulb), - ICON(Tadbulb, 5), // TODO: Redo to 0 - //.footprint = gMonFootprint_Tadbulb, - LEARNSETS(Tadbulb), + .palette = gMonPalette_Tadbulb, + .shinyPalette = gMonShinyPalette_Tadbulb, + .iconSprite = gMonIcon_Tadbulb, + .iconPalIndex = 0, + //FOOTPRINT(Tadbulb) + .levelUpLearnset = sTadbulbLevelUpLearnset, + .teachableLearnset = sTadbulbTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_BELLIBOLT}), }, @@ -1710,7 +2043,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 45, .baseSpAttack = 103, .baseSpDefense = 83, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ELECTRIC), .catchRate = 50, .expYield = 173, .evYield_HP = 2, @@ -1718,7 +2051,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1), .abilities = { ABILITY_ELECTROMORPHOSIS, ABILITY_STATIC, ABILITY_DAMP }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Bellibolt"), @@ -1736,17 +2069,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bellibolt, 64, 64), + .frontPic = gMonFrontPic_Bellibolt, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Bellibolt, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Bellibolt, 64, 64), + .backPic = gMonBackPic_Bellibolt, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Bellibolt), - ICON(Bellibolt, 0), - //.footprint = gMonFootprint_Bellibolt, - LEARNSETS(Bellibolt), + .palette = gMonPalette_Bellibolt, + .shinyPalette = gMonShinyPalette_Bellibolt, + .iconSprite = gMonIcon_Bellibolt, + .iconPalIndex = 0, + //FOOTPRINT(Bellibolt) + .levelUpLearnset = sBelliboltLevelUpLearnset, + .teachableLearnset = sBelliboltTeachableLearnset, }, #endif //P_FAMILY_TADBULB @@ -1759,7 +2097,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 70, .baseSpAttack = 55, .baseSpDefense = 40, - .types = { TYPE_ELECTRIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FLYING), .catchRate = 180, .expYield = 56, .evYield_Speed = 1, @@ -1767,7 +2105,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), .abilities = { ABILITY_WIND_POWER, ABILITY_VOLT_ABSORB, ABILITY_COMPETITIVE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Wattrel"), @@ -1785,17 +2123,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wattrel, 64, 64), + .frontPic = gMonFrontPic_Wattrel, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Wattrel, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Wattrel, 64, 64), + .backPic = gMonBackPic_Wattrel, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Wattrel), - ICON(Wattrel, 3), - //.footprint = gMonFootprint_Wattrel, - LEARNSETS(Wattrel), + .palette = gMonPalette_Wattrel, + .shinyPalette = gMonShinyPalette_Wattrel, + .iconSprite = gMonIcon_Wattrel, + .iconPalIndex = 0, + //FOOTPRINT(Wattrel) + .levelUpLearnset = sWattrelLevelUpLearnset, + .teachableLearnset = sWattrelTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_KILOWATTREL}), }, @@ -1807,7 +2150,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 125, .baseSpAttack = 105, .baseSpDefense = 60, - .types = { TYPE_ELECTRIC, TYPE_FLYING }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_FLYING), .catchRate = 90, .expYield = 172, .evYield_Speed = 2, @@ -1815,7 +2158,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING), .abilities = { ABILITY_WIND_POWER, ABILITY_VOLT_ABSORB, ABILITY_COMPETITIVE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Kilowatrel"), @@ -1833,17 +2176,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Kilowattrel, 64, 64), + .frontPic = gMonFrontPic_Kilowattrel, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Kilowattrel, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Kilowattrel, 64, 64), + .backPic = gMonBackPic_Kilowattrel, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Kilowattrel), - ICON(Kilowattrel, 3), - //.footprint = gMonFootprint_Kilowattrel, - LEARNSETS(Kilowattrel), + .palette = gMonPalette_Kilowattrel, + .shinyPalette = gMonShinyPalette_Kilowattrel, + .iconSprite = gMonIcon_Kilowattrel, + .iconPalIndex = 0, + //FOOTPRINT(Kilowattrel) + .levelUpLearnset = sKilowattrelLevelUpLearnset, + .teachableLearnset = sKilowattrelTeachableLearnset, }, #endif //P_FAMILY_WATTREL @@ -1856,7 +2204,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 51, .baseSpAttack = 40, .baseSpDefense = 51, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 150, .expYield = 68, .evYield_Attack = 1, @@ -1864,7 +2212,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_RUN_AWAY, ABILITY_STAKEOUT }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Maschiff"), @@ -1882,17 +2230,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Maschiff, 64, 64), + .frontPic = gMonFrontPic_Maschiff, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Maschiff, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Maschiff, 64, 64), + .backPic = gMonBackPic_Maschiff, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Maschiff), - ICON(Maschiff, 3), - //.footprint = gMonFootprint_Maschiff, - LEARNSETS(Maschiff), + .palette = gMonPalette_Maschiff, + .shinyPalette = gMonShinyPalette_Maschiff, + .iconSprite = gMonIcon_Maschiff, + .iconPalIndex = 0, + //FOOTPRINT(Maschiff) + .levelUpLearnset = sMaschiffLevelUpLearnset, + .teachableLearnset = sMaschiffTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MABOSSTIFF}), }, @@ -1904,7 +2257,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 85, .baseSpAttack = 60, .baseSpDefense = 70, - .types = { TYPE_DARK, TYPE_DARK }, + .types = MON_TYPES(TYPE_DARK), .catchRate = 75, .expYield = 177, .evYield_Attack = 2, @@ -1912,7 +2265,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_INTIMIDATE, ABILITY_GUARD_DOG, ABILITY_STAKEOUT }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Mabosstiff"), @@ -1930,17 +2283,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Mabosstiff, 64, 64), - .frontPicYOffset = 1, + .frontPic = gMonFrontPic_Mabosstiff, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 5, .frontAnimFrames = sAnims_Mabosstiff, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Mabosstiff, 64, 64), - .backPicYOffset = 14, + .backPic = gMonBackPic_Mabosstiff, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Mabosstiff), - ICON(Mabosstiff, 5), - //.footprint = gMonFootprint_Mabosstiff, - LEARNSETS(Mabosstiff), + .palette = gMonPalette_Mabosstiff, + .shinyPalette = gMonShinyPalette_Mabosstiff, + .iconSprite = gMonIcon_Mabosstiff, + .iconPalIndex = 0, + //FOOTPRINT(Mabosstiff) + .levelUpLearnset = sMabosstiffLevelUpLearnset, + .teachableLearnset = sMabosstiffTeachableLearnset, }, #endif //P_FAMILY_MASCHIFF @@ -1953,7 +2311,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 75, .baseSpAttack = 40, .baseSpDefense = 35, - .types = { TYPE_POISON, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_POISON, TYPE_NORMAL), .catchRate = 190, .expYield = 58, .evYield_Speed = 1, @@ -1961,7 +2319,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_UNBURDEN, ABILITY_PICKPOCKET, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Shroodle"), @@ -1979,17 +2337,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Shroodle, 64, 64), + .frontPic = gMonFrontPic_Shroodle, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Shroodle, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Shroodle, 64, 64), + .backPic = gMonBackPic_Shroodle, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Shroodle), - ICON(Shroodle, 0), - //.footprint = gMonFootprint_Shroodle, - LEARNSETS(Shroodle), + .palette = gMonPalette_Shroodle, + .shinyPalette = gMonShinyPalette_Shroodle, + .iconSprite = gMonIcon_Shroodle, + .iconPalIndex = 0, + //FOOTPRINT(Shroodle) + .levelUpLearnset = sShroodleLevelUpLearnset, + .teachableLearnset = sShroodleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_GRAFAIAI}), }, @@ -2001,7 +2364,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 110, .baseSpAttack = 80, .baseSpDefense = 72, - .types = { TYPE_POISON, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_POISON, TYPE_NORMAL), .catchRate = 90, .expYield = 170, .evYield_Speed = 2, @@ -2009,7 +2372,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_UNBURDEN, ABILITY_POISON_TOUCH, ABILITY_PRANKSTER }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Grafaiai"), @@ -2027,17 +2390,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Grafaiai, 64, 64), + .frontPic = gMonFrontPic_Grafaiai, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Grafaiai, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Grafaiai, 64, 64), + .backPic = gMonBackPic_Grafaiai, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Grafaiai), - ICON(Grafaiai, 0), - //.footprint = gMonFootprint_Grafaiai, - LEARNSETS(Grafaiai), + .palette = gMonPalette_Grafaiai, + .shinyPalette = gMonShinyPalette_Grafaiai, + .iconSprite = gMonIcon_Grafaiai, + .iconPalIndex = 0, + //FOOTPRINT(Grafaiai) + .levelUpLearnset = sGrafaiaiLevelUpLearnset, + .teachableLearnset = sGrafaiaiTeachableLearnset, }, #endif //P_FAMILY_SHROODLE @@ -2050,7 +2418,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 60, .baseSpAttack = 45, .baseSpDefense = 35, - .types = { TYPE_GRASS, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GRASS, TYPE_GHOST), .catchRate = 190, .expYield = 55, .evYield_Attack = 1, @@ -2058,7 +2426,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_WIND_RIDER, ABILITY_NONE, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Bramblin"), @@ -2076,17 +2444,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bramblin, 64, 64), + .frontPic = gMonFrontPic_Bramblin, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Bramblin, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Bramblin, 64, 64), + .backPic = gMonBackPic_Bramblin, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Bramblin), - ICON(Bramblin, 3), - //.footprint = gMonFootprint_Bramblin, - LEARNSETS(Bramblin), + .palette = gMonPalette_Bramblin, + .shinyPalette = gMonShinyPalette_Bramblin, + .iconSprite = gMonIcon_Bramblin, + .iconPalIndex = 1, + //FOOTPRINT(Bramblin) + .levelUpLearnset = sBramblinLevelUpLearnset, + .teachableLearnset = sBramblinTeachableLearnset, .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_BRAMBLEGHAST}), }, @@ -2098,7 +2471,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 90, .baseSpAttack = 80, .baseSpDefense = 70, - .types = { TYPE_GRASS, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GRASS, TYPE_GHOST), .catchRate = 45, .expYield = 168, .evYield_Attack = 2, @@ -2106,7 +2479,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_WIND_RIDER, ABILITY_NONE, ABILITY_INFILTRATOR }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Brmblghast"), @@ -2124,17 +2497,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Brambleghast, 64, 64), + .frontPic = gMonFrontPic_Brambleghast, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Brambleghast, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Brambleghast, 64, 64), + .backPic = gMonBackPic_Brambleghast, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Brambleghast), - ICON(Brambleghast, 5), - //.footprint = gMonFootprint_Brambleghast, - LEARNSETS(Brambleghast), + .palette = gMonPalette_Brambleghast, + .shinyPalette = gMonShinyPalette_Brambleghast, + .iconSprite = gMonIcon_Brambleghast, + .iconPalIndex = 2, + //FOOTPRINT(Brambleghast) + .levelUpLearnset = sBrambleghastLevelUpLearnset, + .teachableLearnset = sBrambleghastTeachableLearnset, }, #endif //P_FAMILY_BRAMBLIN @@ -2147,7 +2525,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 70, .baseSpAttack = 50, .baseSpDefense = 100, - .types = { TYPE_GROUND, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GROUND, TYPE_GRASS), .catchRate = 190, .expYield = 67, .evYield_SpDefense = 1, @@ -2155,8 +2533,8 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, - .abilities = { ABILITY_MYCELIUM_MIGHT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), + .abilities = { ABILITY_MYCELIUM_MIGHT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Toedscool"), .cryId = CRY_TOEDSCOOL, @@ -2173,17 +2551,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Toedscool, 64, 64), + .frontPic = gMonFrontPic_Toedscool, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Toedscool, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Toedscool, 64, 64), + .backPic = gMonBackPic_Toedscool, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Toedscool), - ICON(Toedscool, 0), - //.footprint = gMonFootprint_Toedscool, - LEARNSETS(Toedscool), + .palette = gMonPalette_Toedscool, + .shinyPalette = gMonShinyPalette_Toedscool, + .iconSprite = gMonIcon_Toedscool, + .iconPalIndex = 0, + //FOOTPRINT(Toedscool) + .levelUpLearnset = sToedscoolLevelUpLearnset, + .teachableLearnset = sToedscoolTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_TOEDSCRUEL}), }, @@ -2195,7 +2578,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 100, .baseSpAttack = 80, .baseSpDefense = 120, - .types = { TYPE_GROUND, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GROUND, TYPE_GRASS), .catchRate = 90, .expYield = 180, .evYield_SpDefense = 2, @@ -2203,8 +2586,8 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, - .abilities = { ABILITY_MYCELIUM_MIGHT, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), + .abilities = { ABILITY_MYCELIUM_MIGHT, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Toedscruel"), .cryId = CRY_TOEDSCRUEL, @@ -2221,17 +2604,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Toedscruel, 64, 64), + .frontPic = gMonFrontPic_Toedscruel, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Toedscruel, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Toedscruel, 64, 64), + .backPic = gMonBackPic_Toedscruel, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Toedscruel), - ICON(Toedscruel, 0), - //.footprint = gMonFootprint_Toedscruel, - LEARNSETS(Toedscruel), + .palette = gMonPalette_Toedscruel, + .shinyPalette = gMonShinyPalette_Toedscruel, + .iconSprite = gMonIcon_Toedscruel, + .iconPalIndex = 0, + //FOOTPRINT(Toedscruel) + .levelUpLearnset = sToedscruelLevelUpLearnset, + .teachableLearnset = sToedscruelTeachableLearnset, }, #endif //P_FAMILY_TOEDSCOOL @@ -2244,7 +2632,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 75, .baseSpAttack = 35, .baseSpDefense = 55, - .types = { TYPE_ROCK, TYPE_ROCK }, + .types = MON_TYPES(TYPE_ROCK), .catchRate = 120, .expYield = 158, .evYield_Defense = 2, @@ -2252,7 +2640,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_ANGER_SHELL, ABILITY_SHELL_ARMOR, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Klawf"), @@ -2270,17 +2658,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Klawf, 64, 64), + .frontPic = gMonFrontPic_Klawf, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Klawf, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Klawf, 64, 64), + .backPic = gMonBackPic_Klawf, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 20, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Klawf), - ICON(Klawf, 0), - //.footprint = gMonFootprint_Klawf, - LEARNSETS(Klawf), + .palette = gMonPalette_Klawf, + .shinyPalette = gMonShinyPalette_Klawf, + .iconSprite = gMonIcon_Klawf, + .iconPalIndex = 0, + //FOOTPRINT(Klawf) + .levelUpLearnset = sKlawfLevelUpLearnset, + .teachableLearnset = sKlawfTeachableLearnset, }, #endif //P_FAMILY_KLAWF @@ -2293,7 +2686,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 50, .baseSpAttack = 62, .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = MON_TYPES(TYPE_GRASS), .catchRate = 190, .expYield = 61, .evYield_Attack = 1, @@ -2301,7 +2694,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_INSOMNIA, ABILITY_KLUTZ }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Capsakid"), @@ -2319,17 +2712,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Capsakid, 64, 64), + .frontPic = gMonFrontPic_Capsakid, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Capsakid, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Capsakid, 64, 64), + .backPic = gMonBackPic_Capsakid, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Capsakid), - ICON(Capsakid, 1), - //.footprint = gMonFootprint_Capsakid, - LEARNSETS(Capsakid), + .palette = gMonPalette_Capsakid, + .shinyPalette = gMonShinyPalette_Capsakid, + .iconSprite = gMonIcon_Capsakid, + .iconPalIndex = 1, + //FOOTPRINT(Capsakid) + .levelUpLearnset = sCapsakidLevelUpLearnset, + .teachableLearnset = sCapsakidTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_SCOVILLAIN}), }, @@ -2341,7 +2739,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 75, .baseSpAttack = 108, .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_FIRE }, + .types = MON_TYPES(TYPE_GRASS, TYPE_FIRE), .catchRate = 75, .expYield = 170, .evYield_Attack = 2, @@ -2349,7 +2747,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS), .abilities = { ABILITY_CHLOROPHYLL, ABILITY_INSOMNIA, ABILITY_MOODY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Scovillain"), @@ -2367,17 +2765,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Scovillain, 64, 64), + .frontPic = gMonFrontPic_Scovillain, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Scovillain, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Scovillain, 64, 64), + .backPic = gMonBackPic_Scovillain, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Scovillain), - ICON(Scovillain, 1), - //.footprint = gMonFootprint_Scovillain, - LEARNSETS(Scovillain), + .palette = gMonPalette_Scovillain, + .shinyPalette = gMonShinyPalette_Scovillain, + .iconSprite = gMonIcon_Scovillain, + .iconPalIndex = 1, + //FOOTPRINT(Scovillain) + .levelUpLearnset = sScovillainLevelUpLearnset, + .teachableLearnset = sScovillainTeachableLearnset, }, #endif //P_FAMILY_CAPSAKID @@ -2390,7 +2793,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 30, .baseSpAttack = 31, .baseSpDefense = 58, - .types = { TYPE_BUG, TYPE_BUG }, + .types = MON_TYPES(TYPE_BUG), .catchRate = 190, .expYield = 54, .evYield_Defense = 1, @@ -2398,7 +2801,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_SHED_SKIN }, .bodyColor = BODY_COLOR_BROWN, .speciesName = _("Rellor"), @@ -2416,17 +2819,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Rellor, 64, 64), + .frontPic = gMonFrontPic_Rellor, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 17, .frontAnimFrames = sAnims_Rellor, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Rellor, 64, 64), + .backPic = gMonBackPic_Rellor, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Rellor), - ICON(Rellor, 5), - //.footprint = gMonFootprint_Rellor, - LEARNSETS(Rellor), + .palette = gMonPalette_Rellor, + .shinyPalette = gMonShinyPalette_Rellor, + .iconSprite = gMonIcon_Rellor, + .iconPalIndex = 0, + //FOOTPRINT(Rellor) + .levelUpLearnset = sRellorLevelUpLearnset, + .teachableLearnset = sRellorTeachableLearnset, .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_RABSCA}), }, @@ -2438,7 +2846,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 45, .baseSpAttack = 115, .baseSpDefense = 100, - .types = { TYPE_BUG, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_BUG, TYPE_PSYCHIC), .catchRate = 45, .expYield = 165, .evYield_SpAttack = 2, @@ -2446,7 +2854,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG), .abilities = { ABILITY_SYNCHRONIZE, ABILITY_NONE, ABILITY_TELEPATHY }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Rabsca"), @@ -2464,17 +2872,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Rabsca, 64, 64), + .frontPic = gMonFrontPic_Rabsca, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Rabsca, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Rabsca, 64, 64), + .backPic = gMonBackPic_Rabsca, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Rabsca), - ICON(Rabsca, 0), - //.footprint = gMonFootprint_Rabsca, - LEARNSETS(Rabsca), + .palette = gMonPalette_Rabsca, + .shinyPalette = gMonShinyPalette_Rabsca, + .iconSprite = gMonIcon_Rabsca, + .iconPalIndex = 0, + //FOOTPRINT(Rabsca) + .levelUpLearnset = sRabscaLevelUpLearnset, + .teachableLearnset = sRabscaTeachableLearnset, }, #endif //P_FAMILY_RELLOR @@ -2487,7 +2900,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 75, .baseSpAttack = 55, .baseSpDefense = 30, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 120, .expYield = 51, .evYield_Speed = 1, @@ -2495,7 +2908,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_ANTICIPATION, ABILITY_FRISK, ABILITY_SPEED_BOOST }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Flittle"), @@ -2513,17 +2926,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Flittle, 64, 64), + .frontPic = gMonFrontPic_Flittle, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Flittle, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Flittle, 64, 64), + .backPic = gMonBackPic_Flittle, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Flittle), - ICON(Flittle, 3), - //.footprint = gMonFootprint_Flittle, - LEARNSETS(Flittle), + .palette = gMonPalette_Flittle, + .shinyPalette = gMonShinyPalette_Flittle, + .iconSprite = gMonIcon_Flittle, + .iconPalIndex = 1, + //FOOTPRINT(Flittle) + .levelUpLearnset = sFlittleLevelUpLearnset, + .teachableLearnset = sFlittleTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_ESPATHRA}), }, @@ -2535,7 +2953,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 105, .baseSpAttack = 101, .baseSpDefense = 60, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_PSYCHIC), .catchRate = 60, .expYield = 168, .evYield_Speed = 2, @@ -2543,7 +2961,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_OPPORTUNIST, ABILITY_FRISK, ABILITY_SPEED_BOOST }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Espathra"), @@ -2561,17 +2979,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Espathra, 64, 64), + .frontPic = gMonFrontPic_Espathra, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Espathra, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Espathra, 64, 64), + .backPic = gMonBackPic_Espathra, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Espathra), - ICON(Espathra, 5), - //.footprint = gMonFootprint_Espathra, - LEARNSETS(Espathra), + .palette = gMonPalette_Espathra, + .shinyPalette = gMonShinyPalette_Espathra, + .iconSprite = gMonIcon_Espathra, + .iconPalIndex = 0, + //FOOTPRINT(Espathra) + .levelUpLearnset = sEspathraLevelUpLearnset, + .teachableLearnset = sEspathraTeachableLearnset, }, #endif //P_FAMILY_FLITTLE @@ -2584,7 +3007,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 58, .baseSpAttack = 35, .baseSpDefense = 64, - .types = { TYPE_FAIRY, TYPE_STEEL }, + .types = MON_TYPES(TYPE_FAIRY, TYPE_STEEL), .catchRate = 190, .expYield = 59, .evYield_SpDefense = 1, @@ -2592,7 +3015,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_MOLD_BREAKER, ABILITY_OWN_TEMPO, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Tinkatink"), @@ -2610,17 +3033,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tinkatink, 64, 64), - .frontPicYOffset = 10, + .frontPic = gMonFrontPic_Tinkatink, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 13, .frontAnimFrames = sAnims_Tinkatink, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Tinkatink, 64, 64), - .backPicYOffset = 12, + .backPic = gMonBackPic_Tinkatink, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Tinkatink), - ICON(Tinkatink, 1), - //.footprint = gMonFootprint_Tinkatink, - LEARNSETS(Tinkatink), + .palette = gMonPalette_Tinkatink, + .shinyPalette = gMonShinyPalette_Tinkatink, + .iconSprite = gMonIcon_Tinkatink, + .iconPalIndex = 1, + //FOOTPRINT(Tinkatink) + .levelUpLearnset = sTinkatinkLevelUpLearnset, + .teachableLearnset = sTinkatinkTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_TINKATUFF}), }, @@ -2632,7 +3060,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 78, .baseSpAttack = 45, .baseSpDefense = 82, - .types = { TYPE_FAIRY, TYPE_STEEL }, + .types = MON_TYPES(TYPE_FAIRY, TYPE_STEEL), .catchRate = 90, .expYield = 133, .evYield_SpDefense = 2, @@ -2640,7 +3068,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_MOLD_BREAKER, ABILITY_OWN_TEMPO, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Tinkatuff"), @@ -2658,17 +3086,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tinkatuff, 64, 64), - .frontPicYOffset = 4, + .frontPic = gMonFrontPic_Tinkatuff, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 9, .frontAnimFrames = sAnims_Tinkatuff, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Tinkatuff, 64, 64), - .backPicYOffset = 2, + .backPic = gMonBackPic_Tinkatuff, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Tinkatuff), - ICON(Tinkatuff, 4), - //.footprint = gMonFootprint_Tinkatuff, - LEARNSETS(Tinkatuff), + .palette = gMonPalette_Tinkatuff, + .shinyPalette = gMonShinyPalette_Tinkatuff, + .iconSprite = gMonIcon_Tinkatuff, + .iconPalIndex = 1, + //FOOTPRINT(Tinkatuff) + .levelUpLearnset = sTinkatuffLevelUpLearnset, + .teachableLearnset = sTinkatuffTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_TINKATON}), }, @@ -2680,7 +3113,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 94, .baseSpAttack = 70, .baseSpDefense = 105, - .types = { TYPE_FAIRY, TYPE_STEEL }, + .types = MON_TYPES(TYPE_FAIRY, TYPE_STEEL), .catchRate = 45, .expYield = 253, .evYield_SpDefense = 3, @@ -2688,7 +3121,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY), .abilities = { ABILITY_MOLD_BREAKER, ABILITY_OWN_TEMPO, ABILITY_PICKPOCKET }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Tinkaton"), @@ -2706,17 +3139,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Tinkaton, 64, 64), - .frontPicYOffset = 1, + .frontPic = gMonFrontPic_Tinkaton, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, .frontAnimFrames = sAnims_Tinkaton, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Tinkaton, 64, 64), - .backPicYOffset = 15, + .backPic = gMonBackPic_Tinkaton, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Tinkaton), - ICON(Tinkaton, 4), - //.footprint = gMonFootprint_Tinkaton, - LEARNSETS(Tinkaton), + .palette = gMonPalette_Tinkaton, + .shinyPalette = gMonShinyPalette_Tinkaton, + .iconSprite = gMonIcon_Tinkaton, + .iconPalIndex = 1, + //FOOTPRINT(Tinkaton) + .levelUpLearnset = sTinkatonLevelUpLearnset, + .teachableLearnset = sTinkatonTeachableLearnset, }, #endif //P_FAMILY_TINKATINK @@ -2729,7 +3167,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 95, .baseSpAttack = 35, .baseSpDefense = 25, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 255, .expYield = 49, .evYield_Speed = 1, @@ -2737,7 +3175,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_GOOEY, ABILITY_RATTLED, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Wiglett"), @@ -2754,17 +3192,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wiglett, 64, 64), + .frontPic = gMonFrontPic_Wiglett, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Wiglett, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Wiglett, 64, 64), + .backPic = gMonBackPic_Wiglett, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Wiglett), - ICON(Wiglett, 0), - //.footprint = gMonFootprint_Wiglett, - LEARNSETS(Wiglett), + .palette = gMonPalette_Wiglett, + .shinyPalette = gMonShinyPalette_Wiglett, + .iconSprite = gMonIcon_Wiglett, + .iconPalIndex = 0, + //FOOTPRINT(Wiglett) + .levelUpLearnset = sWiglettLevelUpLearnset, + .teachableLearnset = sWiglettTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_WUGTRIO}), }, @@ -2776,7 +3219,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 120, .baseSpAttack = 50, .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 50, .expYield = 149, .evYield_Speed = 2, @@ -2784,7 +3227,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), .abilities = { ABILITY_GOOEY, ABILITY_RATTLED, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Wugtrio"), @@ -2801,17 +3244,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Wugtrio, 64, 64), + .frontPic = gMonFrontPic_Wugtrio, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Wugtrio, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Wugtrio, 64, 64), + .backPic = gMonBackPic_Wugtrio, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Wugtrio), - ICON(Wugtrio, 0), - //.footprint = gMonFootprint_Wugtrio, - LEARNSETS(Wugtrio), + .palette = gMonPalette_Wugtrio, + .shinyPalette = gMonShinyPalette_Wugtrio, + .iconSprite = gMonIcon_Wugtrio, + .iconPalIndex = 0, + //FOOTPRINT(Wugtrio) + .levelUpLearnset = sWugtrioLevelUpLearnset, + .teachableLearnset = sWugtrioTeachableLearnset, }, #endif //P_FAMILY_WIGLETT @@ -2824,7 +3272,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 82, .baseSpAttack = 60, .baseSpDefense = 85, - .types = { TYPE_FLYING, TYPE_DARK }, + .types = MON_TYPES(TYPE_FLYING, TYPE_DARK), .catchRate = 25, .expYield = 243, .evYield_Attack = 2, @@ -2832,7 +3280,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_BIG_PECKS, ABILITY_KEEN_EYE, ABILITY_ROCKY_PAYLOAD }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Bombirdier"), @@ -2850,18 +3298,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Bombirdier, 64, 64), + .frontPic = gMonFrontPic_Bombirdier, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Bombirdier, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(Bombirdier, 64, 64), + .backPic = gMonBackPic_Bombirdier, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Bombirdier), - ICON(Bombirdier, 0), - //.footprint = gMonFootprint_Bombirdier, - LEARNSETS(Bombirdier), + .palette = gMonPalette_Bombirdier, + .shinyPalette = gMonShinyPalette_Bombirdier, + .iconSprite = gMonIcon_Bombirdier, + .iconPalIndex = 0, + //FOOTPRINT(Bombirdier) + .levelUpLearnset = sBombirdierLevelUpLearnset, + .teachableLearnset = sBombirdierTeachableLearnset, }, #endif //P_FAMILY_BOMBIRDIER @@ -2874,7 +3327,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 75, .baseSpAttack = 45, .baseSpDefense = 40, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 200, .expYield = 63, .evYield_Speed = 1, @@ -2882,8 +3335,8 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2 }, - .abilities = { ABILITY_WATER_VEIL, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_WATER_2), + .abilities = { ABILITY_WATER_VEIL, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Finizen"), .cryId = CRY_FINIZEN, @@ -2899,55 +3352,47 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Finizen, 64, 64), + .frontPic = gMonFrontPic_Finizen, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Finizen, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Finizen, 64, 64), + .backPic = gMonBackPic_Finizen, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Finizen), - ICON(Finizen, 0), - //.footprint = gMonFootprint_Finizen, - LEARNSETS(Finizen), + .palette = gMonPalette_Finizen, + .shinyPalette = gMonShinyPalette_Finizen, + .iconSprite = gMonIcon_Finizen, + .iconPalIndex = 0, + //FOOTPRINT(Finizen) + .levelUpLearnset = sFinizenLevelUpLearnset, + .teachableLearnset = sFinizenTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_PALAFIN_ZERO}), }, -#define PALAFIN_MISC_INFO \ - .types = { TYPE_WATER, TYPE_WATER }, \ - .catchRate = 45, \ - .evYield_HP = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2 }, \ - .abilities = { ABILITY_ZERO_TO_HERO, ABILITY_NONE }, \ - .bodyColor = BODY_COLOR_BLUE, \ - .speciesName = _("Palafin"), \ - .natDexNum = NATIONAL_DEX_PALAFIN, \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontAnimFrames = sAnims_Palafin, \ - LEARNSETS(Palafin), \ - .formSpeciesIdTable = sPalafinFormSpeciesIdTable, \ - .formChangeTable = sPalafinZeroFormChangeTable - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.footprint = gMonFootprint_Palafin, - [SPECIES_PALAFIN_ZERO] = { - PALAFIN_MISC_INFO, .baseHP = 100, .baseAttack = 70, .baseDefense = 72, .baseSpeed = 100, .baseSpAttack = 53, .baseSpDefense = 62, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, .expYield = 160, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_WATER_2), + .abilities = { ABILITY_ZERO_TO_HERO, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Palafin"), .cryId = CRY_PALAFIN_ZERO, + .natDexNum = NATIONAL_DEX_PALAFIN, .categoryName = _("Dolphin"), .height = 13, .weight = 602, @@ -2956,26 +3401,52 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = "appearance if it hears its allies calling for\n" "help. Palafin will never show\n" "anybody its moment of transformation."), - FRONT_PIC(PalafinZero, 64, 64), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PalafinZero, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, - BACK_PIC(PalafinZero, 64, 64), + .frontAnimFrames = sAnims_Palafin, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_PalafinZero, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 15, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PalafinZero), - ICON(PalafinZero, 0), + .palette = gMonPalette_PalafinZero, + .shinyPalette = gMonShinyPalette_PalafinZero, + .iconSprite = gMonIcon_PalafinZero, + .iconPalIndex = 0, + /*FOOTPRINT(Palafin)*/ + .levelUpLearnset = sPalafinLevelUpLearnset, + .teachableLearnset = sPalafinTeachableLearnset, + .formSpeciesIdTable = sPalafinFormSpeciesIdTable, + .formChangeTable = sPalafinZeroFormChangeTable, }, [SPECIES_PALAFIN_HERO] = { - PALAFIN_MISC_INFO, .baseHP = 100, .baseAttack = 160, .baseDefense = 97, .baseSpeed = 100, .baseSpAttack = 106, .baseSpDefense = 87, + .types = MON_TYPES(TYPE_WATER), + .catchRate = 45, .expYield = 228, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_WATER_2), + .abilities = { ABILITY_ZERO_TO_HERO, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Palafin"), .cryId = CRY_PALAFIN_HERO, + .natDexNum = NATIONAL_DEX_PALAFIN, .categoryName = _("Hero"), .height = 18, .weight = 974, @@ -2984,13 +3455,28 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = "awakened. It is now so\n" "extraordinarily strong that it can easily lift a\n" "cruise ship with one fin."), - FRONT_PIC(PalafinHero, 64, 64), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_PalafinHero, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - BACK_PIC(PalafinHero, 64, 64), + .frontAnimFrames = sAnims_Palafin, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_PalafinHero, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(PalafinHero), - ICON(PalafinHero, 0), + .palette = gMonPalette_PalafinHero, + .shinyPalette = gMonShinyPalette_PalafinHero, + .iconSprite = gMonIcon_PalafinHero, + .iconPalIndex = 0, + /*FOOTPRINT(Palafin)*/ + .levelUpLearnset = sPalafinLevelUpLearnset, + .teachableLearnset = sPalafinTeachableLearnset, + .formSpeciesIdTable = sPalafinFormSpeciesIdTable, + .formChangeTable = sPalafinZeroFormChangeTable, }, #endif //P_FAMILY_FINIZEN @@ -3003,7 +3489,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 47, .baseSpAttack = 30, .baseSpDefense = 45, - .types = { TYPE_STEEL, TYPE_POISON }, + .types = MON_TYPES(TYPE_STEEL, TYPE_POISON), .catchRate = 190, .expYield = 60, .evYield_Attack = 1, @@ -3011,7 +3497,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_OVERCOAT, ABILITY_NONE, ABILITY_SLOW_START }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Varoom"), @@ -3029,17 +3515,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Varoom, 64, 64), + .frontPic = gMonFrontPic_Varoom, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Varoom, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Varoom, 64, 64), + .backPic = gMonBackPic_Varoom, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Varoom), - ICON(Varoom, 5), - //.footprint = gMonFootprint_Varoom, - LEARNSETS(Varoom), + .palette = gMonPalette_Varoom, + .shinyPalette = gMonShinyPalette_Varoom, + .iconSprite = gMonIcon_Varoom, + .iconPalIndex = 2, + //FOOTPRINT(Varoom) + .levelUpLearnset = sVaroomLevelUpLearnset, + .teachableLearnset = sVaroomTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_REVAVROOM}), }, @@ -3051,7 +3542,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 90, .baseSpAttack = 54, .baseSpDefense = 67, - .types = { TYPE_STEEL, TYPE_POISON }, + .types = MON_TYPES(TYPE_STEEL, TYPE_POISON), .catchRate = 75, .expYield = 175, .evYield_Attack = 2, @@ -3059,7 +3550,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_OVERCOAT, ABILITY_NONE, ABILITY_FILTER }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Revavroom"), @@ -3077,17 +3568,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Revavroom, 64, 64), + .frontPic = gMonFrontPic_Revavroom, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Revavroom, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Revavroom, 64, 64), + .backPic = gMonBackPic_Revavroom, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Revavroom), - ICON(Revavroom, 5), - //.footprint = gMonFootprint_Revavroom, - LEARNSETS(Revavroom), + .palette = gMonPalette_Revavroom, + .shinyPalette = gMonShinyPalette_Revavroom, + .iconSprite = gMonIcon_Revavroom, + .iconPalIndex = 0, + //FOOTPRINT(Revavroom) + .levelUpLearnset = sRevavroomLevelUpLearnset, + .teachableLearnset = sRevavroomTeachableLearnset, }, #endif //P_FAMILY_VAROOM @@ -3100,7 +3596,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 121, .baseSpAttack = 85, .baseSpDefense = 65, - .types = { TYPE_DRAGON, TYPE_NORMAL }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_NORMAL), .catchRate = 190, .expYield = 175, .evYield_Speed = 2, @@ -3108,7 +3604,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_GREEN, .speciesName = _("Cyclizar"), @@ -3126,17 +3622,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cyclizar, 64, 64), + .frontPic = gMonFrontPic_Cyclizar, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Cyclizar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cyclizar, 64, 64), + .backPic = gMonBackPic_Cyclizar, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cyclizar), - ICON(Cyclizar, 1), - //.footprint = gMonFootprint_Cyclizar, - LEARNSETS(Cyclizar), + .palette = gMonPalette_Cyclizar, + .shinyPalette = gMonShinyPalette_Cyclizar, + .iconSprite = gMonIcon_Cyclizar, + .iconPalIndex = 1, + //FOOTPRINT(Cyclizar) + .levelUpLearnset = sCyclizarLevelUpLearnset, + .teachableLearnset = sCyclizarTeachableLearnset, }, #endif //P_FAMILY_CYCLIZAR @@ -3149,7 +3650,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 65, .baseSpAttack = 60, .baseSpDefense = 55, - .types = { TYPE_STEEL, TYPE_STEEL }, + .types = MON_TYPES(TYPE_STEEL), .catchRate = 25, .expYield = 240, .evYield_Defense = 2, @@ -3157,7 +3658,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_EARTH_EATER, ABILITY_NONE, ABILITY_SAND_VEIL }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Orthworm"), @@ -3175,17 +3676,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Orthworm, 64, 64), + .frontPic = gMonFrontPic_Orthworm, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Orthworm, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Orthworm, 64, 64), + .backPic = gMonBackPic_Orthworm, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Orthworm), - ICON(Orthworm, 4), - //.footprint = gMonFootprint_Orthworm, - LEARNSETS(Orthworm), + .palette = gMonPalette_Orthworm, + .shinyPalette = gMonShinyPalette_Orthworm, + .iconSprite = gMonIcon_Orthworm, + .iconPalIndex = 0, + //FOOTPRINT(Orthworm) + .levelUpLearnset = sOrthwormLevelUpLearnset, + .teachableLearnset = sOrthwormTeachableLearnset, }, #endif //P_FAMILY_ORTHWORM @@ -3198,7 +3704,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 60, .baseSpAttack = 105, .baseSpDefense = 60, - .types = { TYPE_ROCK, TYPE_POISON }, + .types = MON_TYPES(TYPE_ROCK, TYPE_POISON), .catchRate = 70, .expYield = 70, .evYield_SpAttack = 1, @@ -3206,7 +3712,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_TOXIC_DEBRIS, ABILITY_NONE, ABILITY_CORROSION }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Glimmet"), @@ -3224,18 +3730,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Glimmet, 64, 64), + .frontPic = gMonFrontPic_Glimmet, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Glimmet, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 11, - BACK_PIC(Glimmet, 64, 64), + .backPic = gMonBackPic_Glimmet, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Glimmet), - ICON(Glimmet, 0), - //.footprint = gMonFootprint_Glimmet, - LEARNSETS(Glimmet), + .palette = gMonPalette_Glimmet, + .shinyPalette = gMonShinyPalette_Glimmet, + .iconSprite = gMonIcon_Glimmet, + .iconPalIndex = 0, + //FOOTPRINT(Glimmet) + .levelUpLearnset = sGlimmetLevelUpLearnset, + .teachableLearnset = sGlimmetTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_GLIMMORA}), }, @@ -3247,7 +3758,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 86, .baseSpAttack = 130, .baseSpDefense = 81, - .types = { TYPE_ROCK, TYPE_POISON }, + .types = MON_TYPES(TYPE_ROCK, TYPE_POISON), .catchRate = 25, .expYield = 184, .evYield_SpAttack = 2, @@ -3255,7 +3766,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL), .abilities = { ABILITY_TOXIC_DEBRIS, ABILITY_NONE, ABILITY_CORROSION }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Glimmora"), @@ -3273,18 +3784,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Glimmora, 64, 64), + .frontPic = gMonFrontPic_Glimmora, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Glimmora, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(Glimmora, 64, 64), + .backPic = gMonBackPic_Glimmora, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Glimmora), - ICON(Glimmora, 0), - //.footprint = gMonFootprint_Glimmora, - LEARNSETS(Glimmora), + .palette = gMonPalette_Glimmora, + .shinyPalette = gMonShinyPalette_Glimmora, + .iconSprite = gMonIcon_Glimmora, + .iconPalIndex = 0, + //FOOTPRINT(Glimmora) + .levelUpLearnset = sGlimmoraLevelUpLearnset, + .teachableLearnset = sGlimmoraTeachableLearnset, }, #endif //P_FAMILY_GLIMMET @@ -3297,7 +3813,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 34, .baseSpAttack = 30, .baseSpDefense = 55, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 120, .expYield = 58, .evYield_Attack = 1, @@ -3305,7 +3821,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_PICKUP, ABILITY_NONE, ABILITY_FLUFFY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Greavard"), @@ -3323,17 +3839,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Greavard, 64, 64), + .frontPic = gMonFrontPic_Greavard, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Greavard, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Greavard, 64, 64), + .backPic = gMonBackPic_Greavard, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Greavard), - ICON(Greavard, 2), - //.footprint = gMonFootprint_Greavard, - LEARNSETS(Greavard), + .palette = gMonPalette_Greavard, + .shinyPalette = gMonShinyPalette_Greavard, + .iconSprite = gMonIcon_Greavard, + .iconPalIndex = 0, + //FOOTPRINT(Greavard) + .levelUpLearnset = sGreavardLevelUpLearnset, + .teachableLearnset = sGreavardTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 30, SPECIES_HOUNDSTONE}), }, @@ -3345,7 +3866,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 68, .baseSpAttack = 50, .baseSpDefense = 97, - .types = { TYPE_GHOST, TYPE_GHOST }, + .types = MON_TYPES(TYPE_GHOST), .catchRate = 60, .expYield = 171, .evYield_Attack = 2, @@ -3353,7 +3874,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_SAND_RUSH, ABILITY_NONE, ABILITY_FLUFFY }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Houndstone"), @@ -3371,17 +3892,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Houndstone, 64, 64), + .frontPic = gMonFrontPic_Houndstone, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Houndstone, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Houndstone, 64, 64), + .backPic = gMonBackPic_Houndstone, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Houndstone), - ICON(Houndstone, 5), - //.footprint = gMonFootprint_Houndstone, - LEARNSETS(Houndstone), + .palette = gMonPalette_Houndstone, + .shinyPalette = gMonShinyPalette_Houndstone, + .iconSprite = gMonIcon_Houndstone, + .iconPalIndex = 2, + //FOOTPRINT(Houndstone) + .levelUpLearnset = sHoundstoneLevelUpLearnset, + .teachableLearnset = sHoundstoneTeachableLearnset, }, #endif //P_FAMILY_GREAVARD @@ -3394,7 +3920,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 90, .baseSpAttack = 75, .baseSpDefense = 64, - .types = { TYPE_FLYING, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FLYING, TYPE_FIGHTING), .catchRate = 100, .expYield = 175, .evYield_Attack = 2, @@ -3402,7 +3928,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING), .abilities = { ABILITY_SCRAPPY, ABILITY_TANGLED_FEET, ABILITY_COSTAR }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Flamigo"), @@ -3420,17 +3946,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Flamigo, 64, 64), + .frontPic = gMonFrontPic_Flamigo, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Flamigo, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Flamigo, 64, 64), + .backPic = gMonBackPic_Flamigo, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Flamigo), - ICON(Flamigo, 4), - //.footprint = gMonFootprint_Flamigo, - LEARNSETS(Flamigo), + .palette = gMonPalette_Flamigo, + .shinyPalette = gMonShinyPalette_Flamigo, + .iconSprite = gMonIcon_Flamigo, + .iconPalIndex = 1, + //FOOTPRINT(Flamigo) + .levelUpLearnset = sFlamigoLevelUpLearnset, + .teachableLearnset = sFlamigoTeachableLearnset, }, #endif //P_FAMILY_FLAMIGO @@ -3443,7 +3974,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 43, .baseSpAttack = 30, .baseSpDefense = 40, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 150, .expYield = 67, .evYield_HP = 1, @@ -3451,7 +3982,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_SNOW_CLOAK, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Cetoddle"), @@ -3469,17 +4000,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cetoddle, 64, 64), + .frontPic = gMonFrontPic_Cetoddle, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Cetoddle, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cetoddle, 64, 64), + .backPic = gMonBackPic_Cetoddle, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cetoddle), - ICON(Cetoddle, 0), - //.footprint = gMonFootprint_Cetoddle, - LEARNSETS(Cetoddle), + .palette = gMonPalette_Cetoddle, + .shinyPalette = gMonShinyPalette_Cetoddle, + .iconSprite = gMonIcon_Cetoddle, + .iconPalIndex = 0, + //FOOTPRINT(Cetoddle) + .levelUpLearnset = sCetoddleLevelUpLearnset, + .teachableLearnset = sCetoddleTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_CETITAN}), }, @@ -3491,7 +4027,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 73, .baseSpAttack = 45, .baseSpDefense = 55, - .types = { TYPE_ICE, TYPE_ICE }, + .types = MON_TYPES(TYPE_ICE), .catchRate = 50, .expYield = 182, .evYield_HP = 2, @@ -3499,7 +4035,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD), .abilities = { ABILITY_THICK_FAT, ABILITY_SLUSH_RUSH, ABILITY_SHEER_FORCE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Cetitan"), @@ -3517,17 +4053,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Cetitan, 64, 64), + .frontPic = gMonFrontPic_Cetitan, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Cetitan, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Cetitan, 64, 64), + .backPic = gMonBackPic_Cetitan, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Cetitan), - ICON(Cetitan, 0), - //.footprint = gMonFootprint_Cetitan, - LEARNSETS(Cetitan), + .palette = gMonPalette_Cetitan, + .shinyPalette = gMonShinyPalette_Cetitan, + .iconSprite = gMonIcon_Cetitan, + .iconPalIndex = 0, + //FOOTPRINT(Cetitan) + .levelUpLearnset = sCetitanLevelUpLearnset, + .teachableLearnset = sCetitanTeachableLearnset, }, #endif //P_FAMILY_CETODDLE @@ -3540,7 +4081,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 70, .baseSpAttack = 78, .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_WATER, TYPE_PSYCHIC), .catchRate = 100, .expYield = 167, .evYield_Attack = 2, @@ -3548,7 +4089,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_MOLD_BREAKER, ABILITY_NONE, ABILITY_SHARPNESS }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Veluza"), @@ -3566,18 +4107,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Veluza, 64, 64), + .frontPic = gMonFrontPic_Veluza, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Veluza, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - BACK_PIC(Veluza, 64, 64), + .backPic = gMonBackPic_Veluza, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Veluza), - ICON(Veluza, 4), - //.footprint = gMonFootprint_Veluza, - LEARNSETS(Veluza), + .palette = gMonPalette_Veluza, + .shinyPalette = gMonShinyPalette_Veluza, + .iconSprite = gMonIcon_Veluza, + .iconPalIndex = 1, + //FOOTPRINT(Veluza) + .levelUpLearnset = sVeluzaLevelUpLearnset, + .teachableLearnset = sVeluzaTeachableLearnset, }, #endif //P_FAMILY_VELUZA @@ -3590,7 +4136,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 35, .baseSpAttack = 65, .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_WATER }, + .types = MON_TYPES(TYPE_WATER), .catchRate = 25, .expYield = 265, .evYield_HP = 3, @@ -3598,7 +4144,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), .abilities = { ABILITY_UNAWARE, ABILITY_OBLIVIOUS, ABILITY_WATER_VEIL }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Dondozo"), @@ -3616,101 +4162,182 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Dondozo, 64, 64), + .frontPic = gMonFrontPic_Dondozo, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Dondozo, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 1, - BACK_PIC(Dondozo, 64, 64), + .backPic = gMonBackPic_Dondozo, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Dondozo), - ICON(Dondozo, 0), - //.footprint = gMonFootprint_Dondozo, - LEARNSETS(Dondozo), + .palette = gMonPalette_Dondozo, + .shinyPalette = gMonShinyPalette_Dondozo, + .iconSprite = gMonIcon_Dondozo, + .iconPalIndex = 0, + //FOOTPRINT(Dondozo) + .levelUpLearnset = sDondozoLevelUpLearnset, + .teachableLearnset = sDondozoTeachableLearnset, }, #endif //P_FAMILY_DONDOZO #if P_FAMILY_TATSUGIRI -#define TATSUGIRI_MISC_INFO \ - .baseHP = 68, \ - .baseAttack = 50, \ - .baseDefense = 60, \ - .baseSpeed = 82, \ - .baseSpAttack = 120, \ - .baseSpDefense = 95, \ - .types = { TYPE_DRAGON, TYPE_WATER }, \ - .catchRate = 100, \ - .expYield = 166, \ - .evYield_SpAttack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 35, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, \ - .abilities = { ABILITY_COMMANDER, ABILITY_NONE, ABILITY_STORM_DRAIN }, \ - .speciesName = _("Tatsugiri"), \ - .natDexNum = NATIONAL_DEX_TATSUGIRI, \ - .categoryName = _("Mimicry"), \ - .height = 3, \ - .weight = 80, \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - .frontPicYOffset = 14, \ - .frontAnimFrames = sAnims_Tatsugiri, \ - .backPicYOffset = 17, \ - LEARNSETS(Tatsugiri), \ - .formSpeciesIdTable = sTatsugiriFormSpeciesIdTable - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.footprint = gMonFootprint_Tatsugiri, - [SPECIES_TATSUGIRI_CURLY] = { - TATSUGIRI_MISC_INFO, + .baseHP = 68, + .baseAttack = 50, + .baseDefense = 60, + .baseSpeed = 82, + .baseSpAttack = 120, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_DRAGON, TYPE_WATER), + .catchRate = 100, + .expYield = 166, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_COMMANDER, ABILITY_NONE, ABILITY_STORM_DRAIN }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Tatsugiri"), .cryId = CRY_TATSUGIRI_CURLY, + .natDexNum = NATIONAL_DEX_TATSUGIRI, + .categoryName = _("Mimicry"), + .height = 3, + .weight = 80, .description = COMPOUND_STRING( "This is a small dragon Pokémon. It\n" "lives inside the mouth of Dondozo to\n" "protect itself from enemies on the\n" "outside."), - FRONT_PIC(TatsugiriCurly, 64, 64), - BACK_PIC(TatsugiriCurly, 64, 64), - PALETTES(TatsugiriCurly), - ICON(TatsugiriCurly, 0), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_TatsugiriCurly, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Tatsugiri, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_TatsugiriCurly, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 17, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_TatsugiriCurly, + .shinyPalette = gMonShinyPalette_TatsugiriCurly, + .iconSprite = gMonIcon_TatsugiriCurly, + .iconPalIndex = 0, + /*FOOTPRINT(Tatsugiri)*/ + .levelUpLearnset = sTatsugiriLevelUpLearnset, + .teachableLearnset = sTatsugiriTeachableLearnset, + .formSpeciesIdTable = sTatsugiriFormSpeciesIdTable, }, [SPECIES_TATSUGIRI_DROOPY] = { - TATSUGIRI_MISC_INFO, + .baseHP = 68, + .baseAttack = 50, + .baseDefense = 60, + .baseSpeed = 82, + .baseSpAttack = 120, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_DRAGON, TYPE_WATER), + .catchRate = 100, + .expYield = 166, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_COMMANDER, ABILITY_NONE, ABILITY_STORM_DRAIN }, .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Tatsugiri"), .cryId = CRY_TATSUGIRI_DROOPY, + .natDexNum = NATIONAL_DEX_TATSUGIRI, + .categoryName = _("Mimicry"), + .height = 3, + .weight = 80, .description = COMPOUND_STRING( "This Pokémon tricks its opponents\n" "by playing dead. It is small and\n" "weak, but it uses its smarts to survive."), - FRONT_PIC(TatsugiriDroopy, 64, 64), - BACK_PIC(TatsugiriDroopy, 64, 64), - PALETTES(TatsugiriDroopy), - ICON(TatsugiriDroopy, 0), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_TatsugiriDroopy, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Tatsugiri, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_TatsugiriDroopy, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 17, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_TatsugiriDroopy, + .shinyPalette = gMonShinyPalette_TatsugiriDroopy, + .iconSprite = gMonIcon_TatsugiriDroopy, + .iconPalIndex = 0, + /*FOOTPRINT(Tatsugiri)*/ + .levelUpLearnset = sTatsugiriLevelUpLearnset, + .teachableLearnset = sTatsugiriTeachableLearnset, + .formSpeciesIdTable = sTatsugiriFormSpeciesIdTable, }, [SPECIES_TATSUGIRI_STRETCHY] = { - TATSUGIRI_MISC_INFO, + .baseHP = 68, + .baseAttack = 50, + .baseDefense = 60, + .baseSpeed = 82, + .baseSpAttack = 120, + .baseSpDefense = 95, + .types = MON_TYPES(TYPE_DRAGON, TYPE_WATER), + .catchRate = 100, + .expYield = 166, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2), + .abilities = { ABILITY_COMMANDER, ABILITY_NONE, ABILITY_STORM_DRAIN }, .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("Tatsugiri"), .cryId = CRY_TATSUGIRI_STRETCHY, + .natDexNum = NATIONAL_DEX_TATSUGIRI, + .categoryName = _("Mimicry"), + .height = 3, + .weight = 80, .description = COMPOUND_STRING( "It's one of the most intelligent\n" "dragon Pokémon. It camouflages itself\n" "by inflating its throat sac."), - FRONT_PIC(TatsugiriStretchy, 64, 64), - BACK_PIC(TatsugiriStretchy, 64, 64), - PALETTES(TatsugiriStretchy), - ICON(TatsugiriStretchy, 0), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_TatsugiriStretchy, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Tatsugiri, + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ + .backPic = gMonBackPic_TatsugiriStretchy, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 17, + /*.backAnimId = BACK_ANIM_NONE,*/ + .palette = gMonPalette_TatsugiriStretchy, + .shinyPalette = gMonShinyPalette_TatsugiriStretchy, + .iconSprite = gMonIcon_TatsugiriStretchy, + .iconPalIndex = 0, + /*FOOTPRINT(Tatsugiri)*/ + .levelUpLearnset = sTatsugiriLevelUpLearnset, + .teachableLearnset = sTatsugiriTeachableLearnset, + .formSpeciesIdTable = sTatsugiriFormSpeciesIdTable, }, #endif //P_FAMILY_TATSUGIRI @@ -3723,7 +4350,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 87, .baseSpAttack = 53, .baseSpDefense = 53, - .types = { TYPE_GROUND, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_GROUND, TYPE_FIGHTING), .catchRate = 30, .expYield = 285, .evYield_Attack = 3, @@ -3731,10 +4358,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, - .isParadoxForm = TRUE, .speciesName = _("Great Tusk"), .cryId = CRY_GREAT_TUSK, .natDexNum = NATIONAL_DEX_GREAT_TUSK, @@ -3750,17 +4376,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GreatTusk, 64, 64), + .frontPic = gMonFrontPic_GreatTusk, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_GreatTusk, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(GreatTusk, 64, 64), + .backPic = gMonBackPic_GreatTusk, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(GreatTusk), - ICON(GreatTusk, 0), - //.footprint = gMonFootprint_GreatTusk, - LEARNSETS(GreatTusk), + .palette = gMonPalette_GreatTusk, + .shinyPalette = gMonShinyPalette_GreatTusk, + .iconSprite = gMonIcon_GreatTusk, + .iconPalIndex = 0, + //FOOTPRINT(GreatTusk) + .isParadoxForm = TRUE, + .levelUpLearnset = sGreatTuskLevelUpLearnset, + .teachableLearnset = sGreatTuskTeachableLearnset, }, #endif //P_FAMILY_GREAT_TUSK @@ -3773,7 +4405,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 111, .baseSpAttack = 65, .baseSpDefense = 115, - .types = { TYPE_FAIRY, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_FAIRY, TYPE_PSYCHIC), .catchRate = 50, .expYield = 285, .evYield_HP = 3, @@ -3781,10 +4413,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PINK, - .isParadoxForm = TRUE, .speciesName = _("ScreamTail"), .cryId = CRY_SCREAM_TAIL, .natDexNum = NATIONAL_DEX_SCREAM_TAIL, @@ -3800,17 +4431,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(ScreamTail, 64, 64), - .frontPicYOffset = 7, + .frontPic = gMonFrontPic_ScreamTail, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 10, .frontAnimFrames = sAnims_ScreamTail, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ScreamTail, 64, 64), - .backPicYOffset = 0, + .backPic = gMonBackPic_ScreamTail, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ScreamTail), - ICON(ScreamTail, 0), - //.footprint = gMonFootprint_ScreamTail, - LEARNSETS(ScreamTail), + .palette = gMonPalette_ScreamTail, + .shinyPalette = gMonShinyPalette_ScreamTail, + .iconSprite = gMonIcon_ScreamTail, + .iconPalIndex = 0, + //FOOTPRINT(ScreamTail) + .isParadoxForm = TRUE, + .levelUpLearnset = sScreamTailLevelUpLearnset, + .teachableLearnset = sScreamTailTeachableLearnset, }, #endif //P_FAMILY_SCREAM_TAIL @@ -3823,7 +4460,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 55, .baseSpAttack = 79, .baseSpDefense = 99, - .types = { TYPE_GRASS, TYPE_DARK }, + .types = MON_TYPES(TYPE_GRASS, TYPE_DARK), .catchRate = 50, .expYield = 285, .evYield_Attack = 3, @@ -3831,10 +4468,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isParadoxForm = TRUE, .speciesName = _("BruteBonet"), .cryId = CRY_BRUTE_BONNET, .natDexNum = NATIONAL_DEX_BRUTE_BONNET, @@ -3850,17 +4486,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(BruteBonnet, 64, 64), - .frontPicYOffset = 5, + .frontPic = gMonFrontPic_BruteBonnet, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 7, .frontAnimFrames = sAnims_BruteBonnet, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(BruteBonnet, 64, 64), - .backPicYOffset = 12, + .backPic = gMonBackPic_BruteBonnet, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - PALETTES(BruteBonnet), - ICON(BruteBonnet, 1), - //.footprint = gMonFootprint_BruteBonnet, - LEARNSETS(BruteBonnet), + .palette = gMonPalette_BruteBonnet, + .shinyPalette = gMonShinyPalette_BruteBonnet, + .iconSprite = gMonIcon_BruteBonnet, + .iconPalIndex = 1, + //FOOTPRINT(BruteBonnet) + .isParadoxForm = TRUE, + .levelUpLearnset = sBruteBonnetLevelUpLearnset, + .teachableLearnset = sBruteBonnetTeachableLearnset, }, #endif //P_FAMILY_BRUTE_BONNET @@ -3873,7 +4515,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 135, .baseSpAttack = 135, .baseSpDefense = 135, - .types = { TYPE_GHOST, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_GHOST, TYPE_FAIRY), .catchRate = 30, .expYield = 285, .evYield_Speed = 1, @@ -3883,10 +4525,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, - .isParadoxForm = TRUE, .speciesName = _("FluttrMane"), .cryId = CRY_FLUTTER_MANE, .natDexNum = NATIONAL_DEX_FLUTTER_MANE, @@ -3902,18 +4543,24 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(FlutterMane, 64, 64), - .frontPicYOffset = 5, + .frontPic = gMonFrontPic_FlutterMane, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 8, .frontAnimFrames = sAnims_FlutterMane, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .enemyMonElevation = 5, - BACK_PIC(FlutterMane, 64, 64), - .backPicYOffset = 10, + .enemyMonElevation = 18, + .backPic = gMonBackPic_FlutterMane, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - PALETTES(FlutterMane), - ICON(FlutterMane, 4), - //.footprint = gMonFootprint_FlutterMane, - LEARNSETS(FlutterMane), + .palette = gMonPalette_FlutterMane, + .shinyPalette = gMonShinyPalette_FlutterMane, + .iconSprite = gMonIcon_FlutterMane, + .iconPalIndex = 2, + //FOOTPRINT(FlutterMane) + .isParadoxForm = TRUE, + .levelUpLearnset = sFlutterManeLevelUpLearnset, + .teachableLearnset = sFlutterManeTeachableLearnset, }, #endif //P_FAMILY_FLUTTER_MANE @@ -3926,7 +4573,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 81, .baseSpAttack = 85, .baseSpDefense = 105, - .types = { TYPE_BUG, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_BUG, TYPE_FIGHTING), .catchRate = 30, .expYield = 285, .evYield_Attack = 3, @@ -3934,10 +4581,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isParadoxForm = TRUE, .speciesName = _("SlithrWing"), .cryId = CRY_SLITHER_WING, .natDexNum = NATIONAL_DEX_SLITHER_WING, @@ -3952,17 +4598,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(SlitherWing, 64, 64), + .frontPic = gMonFrontPic_SlitherWing, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_SlitherWing, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SlitherWing, 64, 64), - .backPicYOffset = 0, + .backPic = gMonBackPic_SlitherWing, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SlitherWing), - ICON(SlitherWing, 3), - //.footprint = gMonFootprint_SlitherWing, - LEARNSETS(SlitherWing), + .palette = gMonPalette_SlitherWing, + .shinyPalette = gMonShinyPalette_SlitherWing, + .iconSprite = gMonIcon_SlitherWing, + .iconPalIndex = 1, + //FOOTPRINT(SlitherWing) + .isParadoxForm = TRUE, + .levelUpLearnset = sSlitherWingLevelUpLearnset, + .teachableLearnset = sSlitherWingTeachableLearnset, }, #endif //P_FAMILY_SLITHER_WING @@ -3975,7 +4627,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 101, .baseSpAttack = 121, .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_GROUND }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_GROUND), .catchRate = 30, .expYield = 285, .evYield_SpAttack = 3, @@ -3983,10 +4635,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, - .isParadoxForm = TRUE, .speciesName = _("SndyShocks"), .cryId = CRY_SANDY_SHOCKS, .natDexNum = NATIONAL_DEX_SANDY_SHOCKS, @@ -4002,17 +4653,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(SandyShocks, 64, 64), - .frontPicYOffset = 1, + .frontPic = gMonFrontPic_SandyShocks, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, .frontAnimFrames = sAnims_SandyShocks, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(SandyShocks, 64, 64), - .backPicYOffset = 10, + .backPic = gMonBackPic_SandyShocks, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(SandyShocks), - ICON(SandyShocks, 0), - //.footprint = gMonFootprint_SandyShocks, - LEARNSETS(SandyShocks), + .palette = gMonPalette_SandyShocks, + .shinyPalette = gMonShinyPalette_SandyShocks, + .iconSprite = gMonIcon_SandyShocks, + .iconPalIndex = 0, + //FOOTPRINT(SandyShocks) + .isParadoxForm = TRUE, + .levelUpLearnset = sSandyShocksLevelUpLearnset, + .teachableLearnset = sSandyShocksTeachableLearnset, }, #endif //P_FAMILY_SANDY_SHOCKS @@ -4025,7 +4682,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 106, .baseSpAttack = 72, .baseSpDefense = 70, - .types = { TYPE_GROUND, TYPE_STEEL }, + .types = MON_TYPES(TYPE_GROUND, TYPE_STEEL), .catchRate = 30, .expYield = 285, .evYield_Defense = 3, @@ -4033,10 +4690,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, - .isParadoxForm = TRUE, .speciesName = _("IronTreads"), .cryId = CRY_IRON_TREADS, .natDexNum = NATIONAL_DEX_IRON_TREADS, @@ -4052,17 +4708,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(IronTreads, 64, 64), + .frontPic = gMonFrontPic_IronTreads, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_IronTreads, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(IronTreads, 64, 64), + .backPic = gMonBackPic_IronTreads, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IronTreads), - ICON(IronTreads, 0), - //.footprint = gMonFootprint_IronTreads, - LEARNSETS(IronTreads), + .palette = gMonPalette_IronTreads, + .shinyPalette = gMonShinyPalette_IronTreads, + .iconSprite = gMonIcon_IronTreads, + .iconPalIndex = 1, + //FOOTPRINT(IronTreads) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronTreadsLevelUpLearnset, + .teachableLearnset = sIronTreadsTeachableLearnset, }, #endif //P_FAMILY_IRON_TREADS @@ -4075,7 +4737,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 136, .baseSpAttack = 124, .baseSpDefense = 60, - .types = { TYPE_ICE, TYPE_WATER }, + .types = MON_TYPES(TYPE_ICE, TYPE_WATER), .catchRate = 50, .expYield = 285, .evYield_Speed = 3, @@ -4083,10 +4745,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, - .isParadoxForm = TRUE, .speciesName = _("IronBundle"), .cryId = CRY_IRON_BUNDLE, .natDexNum = NATIONAL_DEX_IRON_BUNDLE, @@ -4102,17 +4763,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(IronBundle, 64, 64), - .frontPicYOffset = 4, + .frontPic = gMonFrontPic_IronBundle, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 8, .frontAnimFrames = sAnims_IronBundle, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(IronBundle, 64, 64), - .backPicYOffset = 9, + .backPic = gMonBackPic_IronBundle, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IronBundle), - ICON(IronBundle, 0), - //.footprint = gMonFootprint_IronBundle, - LEARNSETS(IronBundle), + .palette = gMonPalette_IronBundle, + .shinyPalette = gMonShinyPalette_IronBundle, + .iconSprite = gMonIcon_IronBundle, + .iconPalIndex = 0, + //FOOTPRINT(IronBundle) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronBundleLevelUpLearnset, + .teachableLearnset = sIronBundleTeachableLearnset, }, #endif //P_FAMILY_IRON_BUNDLE @@ -4125,7 +4792,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 68, - .types = { TYPE_FIGHTING, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_ELECTRIC), .catchRate = 50, .expYield = 285, .evYield_Attack = 3, @@ -4133,10 +4800,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, - .isParadoxForm = TRUE, .speciesName = _("Iron Hands"), .cryId = CRY_IRON_HANDS, .natDexNum = NATIONAL_DEX_IRON_HANDS, @@ -4152,17 +4818,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(IronHands, 64, 64), + .frontPic = gMonFrontPic_IronHands, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_IronHands, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(IronHands, 64, 64), + .backPic = gMonBackPic_IronHands, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IronHands), - ICON(IronHands, 0), - //.footprint = gMonFootprint_IronHands, - LEARNSETS(IronHands), + .palette = gMonPalette_IronHands, + .shinyPalette = gMonShinyPalette_IronHands, + .iconSprite = gMonIcon_IronHands, + .iconPalIndex = 0, + //FOOTPRINT(IronHands) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronHandsLevelUpLearnset, + .teachableLearnset = sIronHandsTeachableLearnset, }, #endif //P_FAMILY_IRON_HANDS @@ -4175,7 +4847,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 108, .baseSpAttack = 122, .baseSpDefense = 80, - .types = { TYPE_DARK, TYPE_FLYING }, + .types = MON_TYPES(TYPE_DARK, TYPE_FLYING), .catchRate = 30, .expYield = 285, .evYield_SpAttack = 3, @@ -4183,10 +4855,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isParadoxForm = TRUE, .speciesName = _("IronJuguls"), .cryId = CRY_IRON_JUGULIS, .natDexNum = NATIONAL_DEX_IRON_JUGULIS, @@ -4202,18 +4873,24 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(IronJugulis, 64, 64), + .frontPic = gMonFrontPic_IronJugulis, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_IronJugulis, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 7, - BACK_PIC(IronJugulis, 64, 64), + .backPic = gMonBackPic_IronJugulis, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IronJugulis), - ICON(IronJugulis, 2), - //.footprint = gMonFootprint_IronJugulis, - LEARNSETS(IronJugulis), + .palette = gMonPalette_IronJugulis, + .shinyPalette = gMonShinyPalette_IronJugulis, + .iconSprite = gMonIcon_IronJugulis, + .iconPalIndex = 0, + //FOOTPRINT(IronJugulis) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronJugulisLevelUpLearnset, + .teachableLearnset = sIronJugulisTeachableLearnset, }, #endif //P_FAMILY_IRON_JUGULIS @@ -4226,7 +4903,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 110, .baseSpAttack = 140, .baseSpDefense = 110, - .types = { TYPE_FIRE, TYPE_POISON }, + .types = MON_TYPES(TYPE_FIRE, TYPE_POISON), .catchRate = 30, .expYield = 285, .evYield_SpAttack = 3, @@ -4234,10 +4911,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isParadoxForm = TRUE, .speciesName = _("Iron Moth"), .cryId = CRY_IRON_MOTH, .natDexNum = NATIONAL_DEX_IRON_MOTH, @@ -4253,18 +4929,24 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(IronMoth, 64, 64), + .frontPic = gMonFrontPic_IronMoth, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, .frontAnimFrames = sAnims_IronMoth, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 8, - BACK_PIC(IronMoth, 64, 64), + .backPic = gMonBackPic_IronMoth, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IronMoth), - ICON(IronMoth, 3), - //.footprint = gMonFootprint_IronMoth, - LEARNSETS(IronMoth), + .palette = gMonPalette_IronMoth, + .shinyPalette = gMonShinyPalette_IronMoth, + .iconSprite = gMonIcon_IronMoth, + .iconPalIndex = 3, + //FOOTPRINT(IronMoth) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronMothLevelUpLearnset, + .teachableLearnset = sIronMothTeachableLearnset, }, #endif //P_FAMILY_IRON_MOTH @@ -4277,7 +4959,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 72, .baseSpAttack = 70, .baseSpDefense = 84, - .types = { TYPE_ROCK, TYPE_ELECTRIC }, + .types = MON_TYPES(TYPE_ROCK, TYPE_ELECTRIC), .catchRate = 30, .expYield = 285, .evYield_Attack = 3, @@ -4285,10 +4967,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, - .isParadoxForm = TRUE, .speciesName = _("IronThorns"), .cryId = CRY_IRON_THORNS, .natDexNum = NATIONAL_DEX_IRON_THORNS, @@ -4304,17 +4985,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(IronThorns, 64, 64), + .frontPic = gMonFrontPic_IronThorns, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_IronThorns, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(IronThorns, 64, 64), + .backPic = gMonBackPic_IronThorns, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IronThorns), - ICON(IronThorns, 1), - //.footprint = gMonFootprint_IronThorns, - LEARNSETS(IronThorns), + .palette = gMonPalette_IronThorns, + .shinyPalette = gMonShinyPalette_IronThorns, + .iconSprite = gMonIcon_IronThorns, + .iconPalIndex = 1, + //FOOTPRINT(IronThorns) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronThornsLevelUpLearnset, + .teachableLearnset = sIronThornsTeachableLearnset, }, #endif //P_FAMILY_IRON_THORNS @@ -4327,7 +5014,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 55, .baseSpAttack = 35, .baseSpDefense = 45, - .types = { TYPE_DRAGON, TYPE_ICE }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_ICE), .catchRate = 45, .expYield = 64, .evYield_Attack = 1, @@ -4335,7 +5022,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON, EGG_GROUP_MINERAL), .abilities = { ABILITY_THERMAL_EXCHANGE, ABILITY_NONE, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Frigibax"), @@ -4353,17 +5040,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Frigibax, 64, 64), + .frontPic = gMonFrontPic_Frigibax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Frigibax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Frigibax, 64, 64), + .backPic = gMonBackPic_Frigibax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Frigibax), - ICON(Frigibax, 3), - //.footprint = gMonFootprint_Frigibax, - LEARNSETS(Frigibax), + .palette = gMonPalette_Frigibax, + .shinyPalette = gMonShinyPalette_Frigibax, + .iconSprite = gMonIcon_Frigibax, + .iconPalIndex = 0, + //FOOTPRINT(Frigibax) + .levelUpLearnset = sFrigibaxLevelUpLearnset, + .teachableLearnset = sFrigibaxTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_ARCTIBAX}), }, @@ -4375,7 +5067,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 62, .baseSpAttack = 45, .baseSpDefense = 65, - .types = { TYPE_DRAGON, TYPE_ICE }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_ICE), .catchRate = 25, .expYield = 148, .evYield_Attack = 2, @@ -4383,7 +5075,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON, EGG_GROUP_MINERAL), .abilities = { ABILITY_THERMAL_EXCHANGE, ABILITY_NONE, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Arctibax"), @@ -4401,17 +5093,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Arctibax, 64, 64), + .frontPic = gMonFrontPic_Arctibax, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Arctibax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Arctibax, 64, 64), + .backPic = gMonBackPic_Arctibax, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Arctibax), - ICON(Arctibax, 0), - //.footprint = gMonFootprint_Arctibax, - LEARNSETS(Arctibax), + .palette = gMonPalette_Arctibax, + .shinyPalette = gMonShinyPalette_Arctibax, + .iconSprite = gMonIcon_Arctibax, + .iconPalIndex = 0, + //FOOTPRINT(Arctibax) + .levelUpLearnset = sArctibaxLevelUpLearnset, + .teachableLearnset = sArctibaxTeachableLearnset, .evolutions = EVOLUTION({EVO_LEVEL, 54, SPECIES_BAXCALIBUR}), }, @@ -4423,7 +5120,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 87, .baseSpAttack = 75, .baseSpDefense = 86, - .types = { TYPE_DRAGON, TYPE_ICE }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_ICE), .catchRate = 10, .expYield = 300, .evYield_Attack = 3, @@ -4431,7 +5128,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MINERAL }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_DRAGON, EGG_GROUP_MINERAL), .abilities = { ABILITY_THERMAL_EXCHANGE, ABILITY_NONE, ABILITY_ICE_BODY }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Baxcalibur"), @@ -4449,53 +5146,48 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Baxcalibur, 64, 64), + .frontPic = gMonFrontPic_Baxcalibur, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Baxcalibur, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Baxcalibur, 64, 64), + .backPic = gMonBackPic_Baxcalibur, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Baxcalibur), - ICON(Baxcalibur, 0), - //.footprint = gMonFootprint_Baxcalibur, - LEARNSETS(Baxcalibur), + .palette = gMonPalette_Baxcalibur, + .shinyPalette = gMonShinyPalette_Baxcalibur, + .iconSprite = gMonIcon_Baxcalibur, + .iconPalIndex = 0, + //FOOTPRINT(Baxcalibur) + .levelUpLearnset = sBaxcaliburLevelUpLearnset, + .teachableLearnset = sBaxcaliburTeachableLearnset, }, #endif //P_FAMILY_FRIGIBAX #if P_FAMILY_GIMMIGHOUL -#define GIMMIGHOUL_MISC_INFO \ - .types = { TYPE_GHOST, TYPE_GHOST }, \ - .catchRate = 45, \ - .expYield = 60, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 50, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ - .speciesName = _("Gimmighoul"), \ - .cryId = CRY_GIMMIGHOUL, \ - .natDexNum = NATIONAL_DEX_GIMMIGHOUL, \ - .frontAnimFrames = sAnims_Gimmighoul, \ - LEARNSETS(Gimmighoul), \ - .formSpeciesIdTable = sGimmighoulFormSpeciesIdTable, \ - .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_GHOLDENGO}) - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.footprint = gMonFootprint_Gimmighoul, - [SPECIES_GIMMIGHOUL_CHEST] = { - GIMMIGHOUL_MISC_INFO, .baseHP = 45, .baseAttack = 30, .baseDefense = 70, .baseSpeed = 10, .baseSpAttack = 75, .baseSpDefense = 70, - .abilities = { ABILITY_RATTLED, ABILITY_NONE }, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 45, + .expYield = 60, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_RATTLED, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, + .speciesName = _("Gimmighoul"), + .cryId = CRY_GIMMIGHOUL, + .natDexNum = NATIONAL_DEX_GIMMIGHOUL, .categoryName = _("Coin Chest"), .height = 3, .weight = 50, @@ -4508,25 +5200,48 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GimmighoulChest, 64, 64), + .frontPic = gMonFrontPic_GimmighoulChest, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, - BACK_PIC(GimmighoulChest, 64, 64), + .frontAnimFrames = sAnims_Gimmighoul, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_GimmighoulChest, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, - PALETTES(GimmighoulChest), - ICON(GimmighoulChest, 0), + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_GimmighoulChest, + .shinyPalette = gMonShinyPalette_GimmighoulChest, + .iconSprite = gMonIcon_GimmighoulChest, + .iconPalIndex = 0, + //FOOTPRINT(Gimmighoul) + .levelUpLearnset = sGimmighoulLevelUpLearnset, + .teachableLearnset = sGimmighoulTeachableLearnset, + .formSpeciesIdTable = sGimmighoulFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_GHOLDENGO}), }, [SPECIES_GIMMIGHOUL_ROAMING] = { - GIMMIGHOUL_MISC_INFO, .baseHP = 45, .baseAttack = 30, .baseDefense = 25, .baseSpeed = 80, .baseSpAttack = 75, .baseSpDefense = 45, - .abilities = { ABILITY_RUN_AWAY, ABILITY_NONE }, + .types = MON_TYPES(TYPE_GHOST), + .catchRate = 45, + .expYield = 60, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_RUN_AWAY, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("Gimmighoul"), + .cryId = CRY_GIMMIGHOUL, + .natDexNum = NATIONAL_DEX_GIMMIGHOUL, .categoryName = _("Coin Hunter"), .height = 1, .weight = 1, @@ -4539,12 +5254,24 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(GimmighoulRoaming, 64, 64), + .frontPic = gMonFrontPic_GimmighoulRoaming, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 11, - BACK_PIC(GimmighoulRoaming, 64, 64), + .frontAnimFrames = sAnims_Gimmighoul, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_GimmighoulRoaming, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, - PALETTES(GimmighoulRoaming), - ICON(GimmighoulRoaming, 0), + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_GimmighoulRoaming, + .shinyPalette = gMonShinyPalette_GimmighoulRoaming, + .iconSprite = gMonIcon_GimmighoulRoaming, + .iconPalIndex = 0, + //FOOTPRINT(Gimmighoul) + .levelUpLearnset = sGimmighoulLevelUpLearnset, + .teachableLearnset = sGimmighoulTeachableLearnset, + .formSpeciesIdTable = sGimmighoulFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_GHOLDENGO}), }, [SPECIES_GHOLDENGO] = @@ -4555,7 +5282,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 84, .baseSpAttack = 133, .baseSpDefense = 91, - .types = { TYPE_STEEL, TYPE_GHOST }, + .types = MON_TYPES(TYPE_STEEL, TYPE_GHOST), .catchRate = 45, .expYield = 275, .evYield_SpAttack = 2, @@ -4563,8 +5290,8 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_GOOD_AS_GOLD, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_GOOD_AS_GOLD, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_YELLOW, .speciesName = _("Gholdengo"), .cryId = CRY_GHOLDENGO, @@ -4581,17 +5308,22 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Gholdengo, 64, 64), + .frontPic = gMonFrontPic_Gholdengo, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Gholdengo, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Gholdengo, 64, 64), + .backPic = gMonBackPic_Gholdengo, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Gholdengo), - ICON(Gholdengo, 0), - //.footprint = gMonFootprint_Gholdengo, - LEARNSETS(Gholdengo), + .palette = gMonPalette_Gholdengo, + .shinyPalette = gMonShinyPalette_Gholdengo, + .iconSprite = gMonIcon_Gholdengo, + .iconPalIndex = 0, + //FOOTPRINT(Gholdengo) + .levelUpLearnset = sGholdengoLevelUpLearnset, + .teachableLearnset = sGholdengoTeachableLearnset, }, #endif //P_FAMILY_GIMMIGHOUL @@ -4604,7 +5336,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 70, .baseSpAttack = 95, .baseSpDefense = 135, - .types = { TYPE_DARK, TYPE_GRASS }, + .types = MON_TYPES(TYPE_DARK, TYPE_GRASS), .catchRate = 6, .expYield = 285, .evYield_SpDefense = 3, @@ -4612,10 +5344,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_TABLETS_OF_RUIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, - .isLegendary = TRUE, .speciesName = _("Wo-Chien"), .cryId = CRY_WO_CHIEN, .natDexNum = NATIONAL_DEX_WO_CHIEN, @@ -4631,17 +5362,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(WoChien, 64, 64), + .frontPic = gMonFrontPic_WoChien, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_WoChien, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(WoChien, 64, 64), + .backPic = gMonBackPic_WoChien, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - PALETTES(WoChien), - ICON(WoChien, 5), - //.footprint = gMonFootprint_WoChien, - LEARNSETS(WoChien), + .palette = gMonPalette_WoChien, + .shinyPalette = gMonShinyPalette_WoChien, + .iconSprite = gMonIcon_WoChien, + .iconPalIndex = 1, + //FOOTPRINT(WoChien) + .isLegendary = TRUE, + .levelUpLearnset = sWoChienLevelUpLearnset, + .teachableLearnset = sWoChienTeachableLearnset, }, #endif //P_FAMILY_WO_CHIEN @@ -4654,7 +5391,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 135, .baseSpAttack = 90, .baseSpDefense = 65, - .types = { TYPE_DARK, TYPE_ICE }, + .types = MON_TYPES(TYPE_DARK, TYPE_ICE), .catchRate = 6, .expYield = 285, .evYield_Speed = 3, @@ -4662,10 +5399,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_SWORD_OF_RUIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isLegendary = TRUE, .speciesName = _("Chien-Pao"), .cryId = CRY_CHIEN_PAO, .natDexNum = NATIONAL_DEX_CHIEN_PAO, @@ -4681,17 +5417,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(ChienPao, 64, 64), - .frontPicYOffset = 2, + .frontPic = gMonFrontPic_ChienPao, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 5, .frontAnimFrames = sAnims_ChienPao, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(ChienPao, 64, 64), + .backPic = gMonBackPic_ChienPao, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ChienPao), - ICON(ChienPao, 0), - //.footprint = gMonFootprint_ChienPao, - LEARNSETS(ChienPao), + .palette = gMonPalette_ChienPao, + .shinyPalette = gMonShinyPalette_ChienPao, + .iconSprite = gMonIcon_ChienPao, + .iconPalIndex = 0, + //FOOTPRINT(ChienPao) + .isLegendary = TRUE, + .levelUpLearnset = sChienPaoLevelUpLearnset, + .teachableLearnset = sChienPaoTeachableLearnset, }, #endif //P_FAMILY_CHIEN_PAO @@ -4704,7 +5446,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 45, .baseSpAttack = 55, .baseSpDefense = 80, - .types = { TYPE_DARK, TYPE_GROUND }, + .types = MON_TYPES(TYPE_DARK, TYPE_GROUND), .catchRate = 6, .expYield = 285, .evYield_Defense = 3, @@ -4712,10 +5454,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_VESSEL_OF_RUIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BROWN, - .isLegendary = TRUE, .speciesName = _("Ting-Lu"), .cryId = CRY_TING_LU, .natDexNum = NATIONAL_DEX_TING_LU, @@ -4731,17 +5472,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(TingLu, 64, 64), + .frontPic = gMonFrontPic_TingLu, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_TingLu, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(TingLu, 64, 64), + .backPic = gMonBackPic_TingLu, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - PALETTES(TingLu), - ICON(TingLu, 0), - //.footprint = gMonFootprint_TingLu, - LEARNSETS(TingLu), + .palette = gMonPalette_TingLu, + .shinyPalette = gMonShinyPalette_TingLu, + .iconSprite = gMonIcon_TingLu, + .iconPalIndex = 0, + //FOOTPRINT(TingLu) + .isLegendary = TRUE, + .levelUpLearnset = sTingLuLevelUpLearnset, + .teachableLearnset = sTingLuTeachableLearnset, }, #endif //P_FAMILY_TING_LU @@ -4754,7 +5501,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 100, .baseSpAttack = 135, .baseSpDefense = 120, - .types = { TYPE_DARK, TYPE_FIRE }, + .types = MON_TYPES(TYPE_DARK, TYPE_FIRE), .catchRate = 6, .expYield = 285, .evYield_SpAttack = 3, @@ -4762,10 +5509,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_BEADS_OF_RUIN, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, - .isLegendary = TRUE, .speciesName = _("Chi-Yu"), .cryId = CRY_CHI_YU, .natDexNum = NATIONAL_DEX_CHI_YU, @@ -4781,18 +5527,24 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(ChiYu, 64, 64), + .frontPic = gMonFrontPic_ChiYu, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 10, .frontAnimFrames = sAnims_ChiYu, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .enemyMonElevation = 9, - BACK_PIC(ChiYu, 64, 64), - .backPicYOffset = 0, + .enemyMonElevation = 15, + .backPic = gMonBackPic_ChiYu, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - PALETTES(ChiYu), - ICON(ChiYu, 0), - //.footprint = gMonFootprint_ChiYu, - LEARNSETS(ChiYu), + .palette = gMonPalette_ChiYu, + .shinyPalette = gMonShinyPalette_ChiYu, + .iconSprite = gMonIcon_ChiYu, + .iconPalIndex = 0, + //FOOTPRINT(ChiYu) + .isLegendary = TRUE, + .levelUpLearnset = sChiYuLevelUpLearnset, + .teachableLearnset = sChiYuTeachableLearnset, }, #endif //P_FAMILY_CHI_YU @@ -4805,7 +5557,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 119, .baseSpAttack = 55, .baseSpDefense = 101, - .types = { TYPE_DRAGON, TYPE_DARK }, + .types = MON_TYPES(TYPE_DRAGON, TYPE_DARK), .catchRate = 10, .expYield = 295, .evYield_Attack = 3, @@ -4813,10 +5565,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isParadoxForm = TRUE, .speciesName = _("RoarngMoon"), .cryId = CRY_ROARING_MOON, .natDexNum = NATIONAL_DEX_ROARING_MOON, @@ -4832,18 +5583,24 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(RoaringMoon, 64, 64), + .frontPic = gMonFrontPic_RoaringMoon, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_RoaringMoon, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 6, - BACK_PIC(RoaringMoon, 64, 64), + .backPic = gMonBackPic_RoaringMoon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - PALETTES(RoaringMoon), - ICON(RoaringMoon, 3), - //.footprint = gMonFootprint_RoaringMoon, - LEARNSETS(RoaringMoon), + .palette = gMonPalette_RoaringMoon, + .shinyPalette = gMonShinyPalette_RoaringMoon, + .iconSprite = gMonIcon_RoaringMoon, + .iconPalIndex = 0, + //FOOTPRINT(RoaringMoon) + .isParadoxForm = TRUE, + .levelUpLearnset = sRoaringMoonLevelUpLearnset, + .teachableLearnset = sRoaringMoonTeachableLearnset, }, #endif //P_FAMILY_ROARING_MOON @@ -4856,7 +5613,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 116, .baseSpAttack = 120, .baseSpDefense = 60, - .types = { TYPE_FAIRY, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_FAIRY, TYPE_FIGHTING), .catchRate = 10, .expYield = 295, .evYield_Attack = 3, @@ -4864,10 +5621,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, - .isParadoxForm = TRUE, .speciesName = _("IronVliant"), .cryId = CRY_IRON_VALIANT, .natDexNum = NATIONAL_DEX_IRON_VALIANT, @@ -4882,17 +5638,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(IronValiant, 64, 64), + .frontPic = gMonFrontPic_IronValiant, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_IronValiant, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(IronValiant, 64, 64), + .backPic = gMonBackPic_IronValiant, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IronValiant), - ICON(IronValiant, 4), - //.footprint = gMonFootprint_IronValiant, - LEARNSETS(IronValiant), + .palette = gMonPalette_IronValiant, + .shinyPalette = gMonShinyPalette_IronValiant, + .iconSprite = gMonIcon_IronValiant, + .iconPalIndex = 1, + //FOOTPRINT(IronValiant) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronValiantLevelUpLearnset, + .teachableLearnset = sIronValiantTeachableLearnset, }, #endif //P_FAMILY_IRON_VALIANT @@ -4905,7 +5667,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 135, .baseSpAttack = 85, .baseSpDefense = 100, - .types = { TYPE_FIGHTING, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_FIGHTING, TYPE_DRAGON), .catchRate = 3, .expYield = 335, .evYield_Attack = 3, @@ -4913,11 +5675,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_ORICHALCUM_PULSE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, - .isLegendary = TRUE, - .isParadoxForm = TRUE, .speciesName = _("Koraidon"), .cryId = CRY_KORAIDON, .natDexNum = NATIONAL_DEX_KORAIDON, @@ -4933,17 +5693,24 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Koraidon, 64, 64), + .frontPic = gMonFrontPic_Koraidon, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Koraidon, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Koraidon, 64, 64), + .backPic = gMonBackPic_Koraidon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Koraidon), - ICON(Koraidon, 0), - //.footprint = gMonFootprint_Koraidon, - LEARNSETS(Koraidon), + .palette = gMonPalette_Koraidon, + .shinyPalette = gMonShinyPalette_Koraidon, + .iconSprite = gMonIcon_Koraidon, + .iconPalIndex = 0, + //FOOTPRINT(Koraidon) + .isLegendary = TRUE, + .isParadoxForm = TRUE, + .levelUpLearnset = sKoraidonLevelUpLearnset, + .teachableLearnset = sKoraidonTeachableLearnset, }, #endif //P_FAMILY_KORAIDON @@ -4956,7 +5723,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 135, .baseSpAttack = 135, .baseSpDefense = 115, - .types = { TYPE_ELECTRIC, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_DRAGON), .catchRate = 3, .expYield = 335, .evYield_SpAttack = 3, @@ -4964,11 +5731,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_HADRON_ENGINE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, - .isLegendary = TRUE, - .isParadoxForm = TRUE, .speciesName = _("Miraidon"), .cryId = CRY_MIRAIDON, .natDexNum = NATIONAL_DEX_MIRAIDON, @@ -4984,17 +5749,24 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Miraidon, 64, 64), + .frontPic = gMonFrontPic_Miraidon, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Miraidon, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Miraidon, 64, 64), + .backPic = gMonBackPic_Miraidon, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Miraidon), - ICON(Miraidon, 2), - //.footprint = gMonFootprint_Miraidon, - LEARNSETS(Miraidon), + .palette = gMonPalette_Miraidon, + .shinyPalette = gMonShinyPalette_Miraidon, + .iconSprite = gMonIcon_Miraidon, + .iconPalIndex = 2, + //FOOTPRINT(Miraidon) + .isLegendary = TRUE, + .isParadoxForm = TRUE, + .levelUpLearnset = sMiraidonLevelUpLearnset, + .teachableLearnset = sMiraidonTeachableLearnset, }, #endif //P_FAMILY_MIRAIDON @@ -5007,7 +5779,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 109, .baseSpAttack = 125, .baseSpDefense = 83, - .types = { TYPE_WATER, TYPE_DRAGON }, + .types = MON_TYPES(TYPE_WATER, TYPE_DRAGON), .catchRate = 5, .expYield = 295, .evYield_SpAttack = 3, @@ -5015,10 +5787,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, - .isParadoxForm = TRUE, .speciesName = _("WalkngWake"), .cryId = CRY_WALKING_WAKE, .natDexNum = NATIONAL_DEX_WALKING_WAKE, @@ -5026,22 +5797,30 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .height = 35, .weight = 2800, .description = COMPOUND_STRING( - "Ecology under research."), + "This ferocious creature is shrouded in\n" + "mystery. It's named after an aquatic\n" + "monster mentioned in an old journal."), .pokemonScale = 356, .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(WalkingWake, 64, 64), + .frontPic = gMonFrontPic_WalkingWake, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_WalkingWake, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(WalkingWake, 64, 64), + .backPic = gMonBackPic_WalkingWake, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - PALETTES(WalkingWake), - ICON(WalkingWake, 2), - //.footprint = gMonFootprint_WalkingWake, - LEARNSETS(WalkingWake), + .palette = gMonPalette_WalkingWake, + .shinyPalette = gMonShinyPalette_WalkingWake, + .iconSprite = gMonIcon_WalkingWake, + .iconPalIndex = 2, + //FOOTPRINT(WalkingWake) + .isParadoxForm = TRUE, + .levelUpLearnset = sWalkingWakeLevelUpLearnset, + .teachableLearnset = sWalkingWakeTeachableLearnset, }, #endif //P_FAMILY_WALKING_WAKE @@ -5054,7 +5833,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 104, .baseSpAttack = 70, .baseSpDefense = 108, - .types = { TYPE_GRASS, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_GRASS, TYPE_PSYCHIC), .catchRate = 5, .expYield = 295, .evYield_Attack = 3, @@ -5062,10 +5841,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, - .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GREEN, - .isParadoxForm = TRUE, .speciesName = _("IronLeaves"), .cryId = CRY_IRON_LEAVES, .natDexNum = NATIONAL_DEX_IRON_LEAVES, @@ -5073,146 +5851,244 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .height = 15, .weight = 1250, .description = COMPOUND_STRING( - "Ecology under analysis."), + "According to the few eyewitness accounts\n" + "that exist, it used its shining blades\n" + "to julienne large trees and boulders."), .pokemonScale = 356, .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(IronLeaves, 64, 64), + .frontPic = gMonFrontPic_IronLeaves, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_IronLeaves, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(IronLeaves, 64, 64), + .backPic = gMonBackPic_IronLeaves, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - PALETTES(IronLeaves), - ICON(IronLeaves, 1), - //.footprint = gMonFootprint_IronLeaves, - LEARNSETS(IronLeaves), + .palette = gMonPalette_IronLeaves, + .shinyPalette = gMonShinyPalette_IronLeaves, + .iconSprite = gMonIcon_IronLeaves, + .iconPalIndex = 1, + //FOOTPRINT(IronLeaves) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronLeavesLevelUpLearnset, + .teachableLearnset = sIronLeavesTeachableLearnset, }, #endif //P_FAMILY_IRON_LEAVES #if P_FAMILY_POLTCHAGEIST -#define POLTCHAGEIST_MISC_INFO \ - .baseHP = 40, \ - .baseAttack = 45, \ - .baseDefense = 45, \ - .baseSpeed = 50, \ - .baseSpAttack = 74, \ - .baseSpDefense = 54, \ - .types = { TYPE_GRASS, TYPE_GHOST }, \ - .catchRate = 120, \ - .expYield = 62, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_HOSPITALITY, ABILITY_NONE, ABILITY_HEATPROOF }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Ptchageist"), \ - .cryId = CRY_POLTCHAGEIST, \ - .natDexNum = NATIONAL_DEX_POLTCHAGEIST, \ - .categoryName = _("Matcha"), \ - .height = 1, \ - .weight = 11, \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Poltchageist, 64, 64), \ - .frontPicYOffset = 7, \ - .frontAnimFrames = sAnims_Poltchageist, \ - .enemyMonElevation = 10, \ - BACK_PIC(Poltchageist, 64, 64), \ - .backPicYOffset = 5, \ - PALETTES(Poltchageist), \ - ICON(Poltchageist, 4), \ - LEARNSETS(Poltchageist) - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.footprint = gMonFootprint_Poltchageist, - [SPECIES_POLTCHAGEIST_COUNTERFEIT] = { - POLTCHAGEIST_MISC_INFO, + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 45, + .baseSpeed = 50, + .baseSpAttack = 74, + .baseSpDefense = 54, + .types = MON_TYPES(TYPE_GRASS, TYPE_GHOST), + .catchRate = 120, + .expYield = 62, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_HOSPITALITY, ABILITY_NONE, ABILITY_HEATPROOF }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Ptchageist"), + .cryId = CRY_POLTCHAGEIST, + .natDexNum = NATIONAL_DEX_POLTCHAGEIST, + .categoryName = _("Matcha"), + .height = 1, + .weight = 11, .description = COMPOUND_STRING( "Supposedly, the regrets of a tea\n" "ceremony master who died before\n" "perfecting his craft lingered in some\n" "matcha and became a Pokémon."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Poltchageist, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Poltchageist, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 10, + .backPic = gMonBackPic_Poltchageist, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Poltchageist, + .shinyPalette = gMonShinyPalette_Poltchageist, + .iconSprite = gMonIcon_Poltchageist, + .iconPalIndex = 1, + //FOOTPRINT(Poltchageist) + .levelUpLearnset = sPoltchageistLevelUpLearnset, + .teachableLearnset = sPoltchageistTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_UNREMARKABLE_TEACUP, SPECIES_SINISTCHA_UNREMARKABLE}), }, [SPECIES_POLTCHAGEIST_ARTISAN] = { - POLTCHAGEIST_MISC_INFO, + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 45, + .baseSpeed = 50, + .baseSpAttack = 74, + .baseSpDefense = 54, + .types = MON_TYPES(TYPE_GRASS, TYPE_GHOST), + .catchRate = 120, + .expYield = 62, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_HOSPITALITY, ABILITY_NONE, ABILITY_HEATPROOF }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Ptchageist"), + .cryId = CRY_POLTCHAGEIST, + .natDexNum = NATIONAL_DEX_POLTCHAGEIST, + .categoryName = _("Matcha"), + .height = 1, + .weight = 11, .description = COMPOUND_STRING( "It has taken up residence in a very\n" "expensive tea caddy. It takes an\n" "expert to distinguish the expensive\n" "tea caddies from the cheap ones."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Poltchageist, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Poltchageist, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 10, + .backPic = gMonBackPic_Poltchageist, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Poltchageist, + .shinyPalette = gMonShinyPalette_Poltchageist, + .iconSprite = gMonIcon_Poltchageist, + .iconPalIndex = 1, + //FOOTPRINT(Poltchageist) + .levelUpLearnset = sPoltchageistLevelUpLearnset, + .teachableLearnset = sPoltchageistTeachableLearnset, .evolutions = EVOLUTION({EVO_ITEM, ITEM_MASTERPIECE_TEACUP, SPECIES_SINISTCHA_MASTERPIECE}), }, -#define SINISTCHA_MISC_INFO \ - .baseHP = 71, \ - .baseAttack = 60, \ - .baseDefense = 106, \ - .baseSpeed = 70, \ - .baseSpAttack = 121, \ - .baseSpDefense = 80, \ - .types = { TYPE_GRASS, TYPE_GHOST }, \ - .catchRate = 60, \ - .expYield = 178, \ - .evYield_SpAttack = 2, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS }, \ - .abilities = { ABILITY_HOSPITALITY, ABILITY_NONE, ABILITY_HEATPROOF }, \ - .bodyColor = BODY_COLOR_GREEN, \ - .speciesName = _("Sinistcha"), \ - .cryId = CRY_SINISTCHA, \ - .natDexNum = NATIONAL_DEX_SINISTCHA, \ - .categoryName = _("Matcha"), \ - .height = 2, \ - .weight = 22, \ - .pokemonScale = 356, \ - .pokemonOffset = 17, \ - .trainerScale = 256, \ - .trainerOffset = 0, \ - FRONT_PIC(Sinistcha, 64, 64), \ - .frontPicYOffset = 10, \ - .frontAnimFrames = sAnims_Sinistcha, \ - .enemyMonElevation = 10, \ - BACK_PIC(Sinistcha, 64, 64), \ - .backPicYOffset = 13, \ - PALETTES(Sinistcha), \ - ICON(Sinistcha, 1), \ - LEARNSETS(Sinistcha) - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.footprint = gMonFootprint_Sinistcha, - [SPECIES_SINISTCHA_UNREMARKABLE] = { - SINISTCHA_MISC_INFO, + .baseHP = 71, + .baseAttack = 60, + .baseDefense = 106, + .baseSpeed = 70, + .baseSpAttack = 121, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GRASS, TYPE_GHOST), + .catchRate = 60, + .expYield = 178, + .evYield_SpAttack = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_HOSPITALITY, ABILITY_NONE, ABILITY_HEATPROOF }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Sinistcha"), + .cryId = CRY_SINISTCHA, + .natDexNum = NATIONAL_DEX_SINISTCHA, + .categoryName = _("Matcha"), + .height = 2, + .weight = 22, .description = COMPOUND_STRING( "It pretends to be tea, trying to fool\n" "people into drinking it so it can\n" "drain their life-force. Its ruse is\n" "generally unsuccessful."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Sinistcha, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Sinistcha, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 10, + .backPic = gMonBackPic_Sinistcha, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Sinistcha, + .shinyPalette = gMonShinyPalette_Sinistcha, + .iconSprite = gMonIcon_Sinistcha, + .iconPalIndex = 1, + //FOOTPRINT(Sinistcha) + .levelUpLearnset = sSinistchaLevelUpLearnset, + .teachableLearnset = sSinistchaTeachableLearnset, }, [SPECIES_SINISTCHA_MASTERPIECE] = { - SINISTCHA_MISC_INFO, + .baseHP = 71, + .baseAttack = 60, + .baseDefense = 106, + .baseSpeed = 70, + .baseSpAttack = 121, + .baseSpDefense = 80, + .types = MON_TYPES(TYPE_GRASS, TYPE_GHOST), + .catchRate = 60, + .expYield = 178, + .evYield_SpAttack = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS), + .abilities = { ABILITY_HOSPITALITY, ABILITY_NONE, ABILITY_HEATPROOF }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Sinistcha"), + .cryId = CRY_SINISTCHA, + .natDexNum = NATIONAL_DEX_SINISTCHA, + .categoryName = _("Matcha"), + .height = 2, + .weight = 22, .description = COMPOUND_STRING( "The more stirring it does with the\n" "tea whisk on its head, the more\n" "energy it builds up. It does this to\n" "prepare for battle."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Sinistcha, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Sinistcha, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 10, + .backPic = gMonBackPic_Sinistcha, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Sinistcha, + .shinyPalette = gMonShinyPalette_Sinistcha, + .iconSprite = gMonIcon_Sinistcha, + .iconPalIndex = 1, + //FOOTPRINT(Sinistcha) + .levelUpLearnset = sSinistchaLevelUpLearnset, + .teachableLearnset = sSinistchaTeachableLearnset, }, #endif //P_FAMILY_POLTCHAGEIST @@ -5225,7 +6101,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 80, .baseSpAttack = 58, .baseSpDefense = 86, - .types = { TYPE_POISON, TYPE_FIGHTING }, + .types = MON_TYPES(TYPE_POISON, TYPE_FIGHTING), .catchRate = 3, .expYield = 278, .evYield_Attack = 3, @@ -5233,7 +6109,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_GUARD_DOG }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Okidogi"), @@ -5251,18 +6127,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Okidogi, 64, 64), + .frontPic = gMonFrontPic_Okidogi, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Okidogi, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Okidogi, 64, 64), + .backPic = gMonBackPic_Okidogi, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Okidogi), - ICON(Okidogi, 1), - //.footprint = gMonFootprint_Okidogi, - LEARNSETS(Okidogi), + .palette = gMonPalette_Okidogi, + .shinyPalette = gMonShinyPalette_Okidogi, + .iconSprite = gMonIcon_Okidogi, + .iconPalIndex = 1, + //FOOTPRINT(Okidogi) .isLegendary = TRUE, + .levelUpLearnset = sOkidogiLevelUpLearnset, + .teachableLearnset = sOkidogiTeachableLearnset, }, #endif //P_FAMILY_OKIDOGI @@ -5275,7 +6156,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 106, .baseSpAttack = 130, .baseSpDefense = 90, - .types = { TYPE_POISON, TYPE_PSYCHIC }, + .types = MON_TYPES(TYPE_POISON, TYPE_PSYCHIC), .catchRate = 3, .expYield = 278, .evYield_SpAttack = 3, @@ -5283,10 +6164,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_FRISK }, .bodyColor = BODY_COLOR_BLACK, - .isLegendary = TRUE, .speciesName = _("Munkidori"), .cryId = CRY_MUNKIDORI, .natDexNum = NATIONAL_DEX_MUNKIDORI, @@ -5302,17 +6182,23 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Munkidori, 64, 64), + .frontPic = gMonFrontPic_Munkidori, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Munkidori, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Munkidori, 64, 64), + .backPic = gMonBackPic_Munkidori, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Munkidori), - ICON(Munkidori, 0), - //.footprint = gMonFootprint_Munkidori, - LEARNSETS(Munkidori), + .palette = gMonPalette_Munkidori, + .shinyPalette = gMonShinyPalette_Munkidori, + .iconSprite = gMonIcon_Munkidori, + .iconPalIndex = 0, + //FOOTPRINT(Munkidori) + .isLegendary = TRUE, + .levelUpLearnset = sMunkidoriLevelUpLearnset, + .teachableLearnset = sMunkidoriTeachableLearnset, }, #endif //P_FAMILY_MUNKIDORI @@ -5325,7 +6211,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 99, .baseSpAttack = 70, .baseSpDefense = 125, - .types = { TYPE_POISON, TYPE_FAIRY }, + .types = MON_TYPES(TYPE_POISON, TYPE_FAIRY), .catchRate = 3, .expYield = 278, .evYield_SpDefense = 3, @@ -5333,10 +6219,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), .abilities = { ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_BLACK, - .isLegendary = TRUE, .speciesName = _("Fezndipiti"), .cryId = CRY_FEZANDIPITI, .natDexNum = NATIONAL_DEX_FEZANDIPITI, @@ -5352,22 +6237,28 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - FRONT_PIC(Fezandipiti, 64, 64), + .frontPic = gMonFrontPic_Fezandipiti, + .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Fezandipiti, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - BACK_PIC(Fezandipiti, 64, 64), + .backPic = gMonBackPic_Fezandipiti, + .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - PALETTES(Fezandipiti), - ICON(Fezandipiti, 0), - //.footprint = gMonFootprint_Fezandipiti, - LEARNSETS(Fezandipiti), + .palette = gMonPalette_Fezandipiti, + .shinyPalette = gMonShinyPalette_Fezandipiti, + .iconSprite = gMonIcon_Fezandipiti, + .iconPalIndex = 0, + //FOOTPRINT(Fezandipiti) + .isLegendary = TRUE, + .levelUpLearnset = sFezandipitiLevelUpLearnset, + .teachableLearnset = sFezandipitiTeachableLearnset, }, #endif //P_FAMILY_FEZANDIPITI #if P_FAMILY_OGERPON -#define OGERPON_SPECIES_INFO(Form, type, ability, color, tera) \ +#define OGERPON_SPECIES_INFO(Form, type, ability, color, iconpalette) \ { \ .baseHP = 80, \ .baseAttack = 120, \ @@ -5375,7 +6266,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpeed = 110, \ .baseSpAttack = 60, \ .baseSpDefense = 96, \ - .types = { TYPE_GRASS, type }, \ + .types = MON_TYPES(TYPE_GRASS, type), \ .catchRate = 5, \ .expYield = 275, \ .evYield_Attack = 3, \ @@ -5383,7 +6274,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .eggCycles = 10, \ .friendship = STANDARD_FRIENDSHIP, \ .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), \ .abilities = { ability, ABILITY_NONE }, \ .bodyColor = color, \ .speciesName = _("Ogerpon"), \ @@ -5397,37 +6288,482 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, \ .trainerScale = 256, \ .trainerOffset = 0, \ - FRONT_PIC(Ogerpon##Form, 64, 64), \ + .frontPic = gMonFrontPic_Ogerpon##Form, \ + .frontPicSize = MON_COORDS_SIZE(64, 64), \ .frontPicYOffset = 0, \ .frontAnimFrames = sAnims_Ogerpon, \ - BACK_PIC(Ogerpon##Form, 64, 64), \ + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ \ + .backPic = gMonBackPic_Ogerpon##Form, \ + .backPicSize = MON_COORDS_SIZE(64, 64), \ .backPicYOffset = 16, \ + /*.backAnimId = BACK_ANIM_NONE,*/ \ .palette = gMonPalette_Ogerpon##Form, \ - ICON(OgerponTealMask, 1), \ - LEARNSETS(Ogerpon), \ + .shinyPalette = gMonShinyPalette_Ogerpon##Form, \ + .iconSprite = gMonIcon_Ogerpon##Form, \ + .iconPalIndex = iconpalette, \ + /*FOOTPRINT(Ogerpon)*/ \ + .levelUpLearnset = sOgerponLevelUpLearnset, \ + .teachableLearnset = sOgerponTeachableLearnset, \ .formSpeciesIdTable = sOgerponFormSpeciesIdTable, \ .formChangeTable = sOgerponFormChangeTable, \ .isLegendary = TRUE, \ } - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - //.backAnimId = BACK_ANIM_NONE, - //.shinyPalette = gMonShinyPalette_OgerponTealMask, - //ICON(Ogerpon##Form##, 1), - //.footprint = gMonFootprint_Ogerpon, - [SPECIES_OGERPON_TEAL_MASK] = OGERPON_SPECIES_INFO(TealMask, TYPE_GRASS, ABILITY_DEFIANT, BODY_COLOR_GREEN, FALSE), - [SPECIES_OGERPON_WELLSPRING_MASK] = OGERPON_SPECIES_INFO(WellspringMask, TYPE_WATER, ABILITY_WATER_ABSORB, BODY_COLOR_BLUE, FALSE), - [SPECIES_OGERPON_HEARTHFLAME_MASK] = OGERPON_SPECIES_INFO(HearthflameMask, TYPE_FIRE, ABILITY_MOLD_BREAKER, BODY_COLOR_RED, FALSE), - [SPECIES_OGERPON_CORNERSTONE_MASK] = OGERPON_SPECIES_INFO(CornerstoneMask, TYPE_ROCK, ABILITY_STURDY, BODY_COLOR_GRAY, FALSE), + [SPECIES_OGERPON_TEAL_MASK] = OGERPON_SPECIES_INFO(TealMask, TYPE_GRASS, ABILITY_DEFIANT, BODY_COLOR_GREEN, 1), + [SPECIES_OGERPON_WELLSPRING_MASK] = OGERPON_SPECIES_INFO(WellspringMask, TYPE_WATER, ABILITY_WATER_ABSORB, BODY_COLOR_BLUE, 0), + [SPECIES_OGERPON_HEARTHFLAME_MASK] = OGERPON_SPECIES_INFO(HearthflameMask, TYPE_FIRE, ABILITY_MOLD_BREAKER, BODY_COLOR_RED, 0), + [SPECIES_OGERPON_CORNERSTONE_MASK] = OGERPON_SPECIES_INFO(CornerstoneMask, TYPE_ROCK, ABILITY_STURDY, BODY_COLOR_GRAY, 0), #if P_TERA_FORMS - [SPECIES_OGERPON_TEAL_MASK_TERA] = OGERPON_SPECIES_INFO(TealMask, TYPE_GRASS, ABILITY_EMBODY_ASPECT_TEAL, BODY_COLOR_GREEN, TRUE), - [SPECIES_OGERPON_WELLSPRING_MASK_TERA] = OGERPON_SPECIES_INFO(WellspringMask, TYPE_WATER, ABILITY_EMBODY_ASPECT_WELLSPRING, BODY_COLOR_BLUE, TRUE), - [SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = OGERPON_SPECIES_INFO(HearthflameMask, TYPE_FIRE, ABILITY_EMBODY_ASPECT_HEARTHFLAME, BODY_COLOR_RED, TRUE), - [SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = OGERPON_SPECIES_INFO(CornerstoneMask, TYPE_ROCK, ABILITY_EMBODY_ASPECT_CORNERSTONE, BODY_COLOR_GRAY, TRUE), + [SPECIES_OGERPON_TEAL_MASK_TERA] = OGERPON_SPECIES_INFO(TealMask, TYPE_GRASS, ABILITY_EMBODY_ASPECT_TEAL, BODY_COLOR_GREEN, 1), + [SPECIES_OGERPON_WELLSPRING_MASK_TERA] = OGERPON_SPECIES_INFO(WellspringMask, TYPE_WATER, ABILITY_EMBODY_ASPECT_WELLSPRING, BODY_COLOR_BLUE, 0), + [SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = OGERPON_SPECIES_INFO(HearthflameMask, TYPE_FIRE, ABILITY_EMBODY_ASPECT_HEARTHFLAME, BODY_COLOR_RED, 0), + [SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = OGERPON_SPECIES_INFO(CornerstoneMask, TYPE_ROCK, ABILITY_EMBODY_ASPECT_CORNERSTONE, BODY_COLOR_GRAY, 0), #endif //P_TERA_FORMS #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE + [SPECIES_GOUGING_FIRE] = + { + .baseHP = 105, + .baseAttack = 115, + .baseDefense = 121, + .baseSpeed = 91, + .baseSpAttack = 65, + .baseSpDefense = 93, + .types = MON_TYPES(TYPE_FIRE, TYPE_DRAGON), + .catchRate = 10, + .expYield = 295, + .evYield_Defense = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .speciesName = _("GouginFire"), + .cryId = CRY_GOUGING_FIRE, + .natDexNum = NATIONAL_DEX_GOUGING_FIRE, + .categoryName = _("Paradox"), + .height = 35, + .weight = 5900, + .description = COMPOUND_STRING( + "There are scant few reports of\n" + "this creature being sighted.\n" + "One short video shows it rampaging,\n" + "and spouting pillars of flame."), + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + .frontPic = gMonFrontPic_GougingFire, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_GougingFire, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_GougingFire, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_GougingFire, + .shinyPalette = gMonShinyPalette_GougingFire, + .iconSprite = gMonIcon_GougingFire, + .iconPalIndex = 5, + //FOOTPRINT(GougingFire) + .isParadoxForm = TRUE, + .levelUpLearnset = sGougingFireLevelUpLearnset, + .teachableLearnset = sGougingFireTeachableLearnset, + }, +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT + [SPECIES_RAGING_BOLT] = + { + .baseHP = 125, + .baseAttack = 73, + .baseDefense = 91, + .baseSpeed = 75, + .baseSpAttack = 137, + .baseSpDefense = 89, + .types = MON_TYPES(TYPE_ELECTRIC, TYPE_DRAGON), + .catchRate = 10, + .expYield = 295, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .speciesName = _("RagingBolt"), + .cryId = CRY_RAGING_BOLT, + .natDexNum = NATIONAL_DEX_RAGING_BOLT, + .categoryName = _("Paradox"), + .height = 52, + .weight = 4800, + .description = COMPOUND_STRING( + "It bears resemblance to a Pokémon\n" + "that became a hot topic for a short\n" + "while after a paranomal magazine\n" + "touted it as Raikou's ancestor."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + .frontPic = gMonFrontPic_RagingBolt, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_RagingBolt, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_RagingBolt, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_RagingBolt, + .shinyPalette = gMonShinyPalette_RagingBolt, + .iconSprite = gMonIcon_RagingBolt, + .iconPalIndex = 2, + //FOOTPRINT(RagingBolt) + .isParadoxForm = TRUE, + .levelUpLearnset = sRagingBoltLevelUpLearnset, + .teachableLearnset = sRagingBoltTeachableLearnset, + }, +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER + [SPECIES_IRON_BOULDER] = + { + .baseHP = 90, + .baseAttack = 120, + .baseDefense = 80, + .baseSpeed = 124, + .baseSpAttack = 68, + .baseSpDefense = 108, + .types = MON_TYPES(TYPE_ROCK, TYPE_PSYCHIC), + .catchRate = 10, + .expYield = 295, + .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .speciesName = _("IronBouldr"), + .cryId = CRY_IRON_BOULDER, + .natDexNum = NATIONAL_DEX_IRON_BOULDER, + .categoryName = _("Paradox"), + .height = 15, + .weight = 1625, + .description = COMPOUND_STRING( + "It was named after a mysterious\n" + "object recorded in an old book.\n" + "Its body seems to be metallic."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 336, + .trainerOffset = 4, + .frontPic = gMonFrontPic_IronBoulder, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_IronBoulder, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_IronBoulder, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_IronBoulder, + .shinyPalette = gMonShinyPalette_IronBoulder, + .iconSprite = gMonIcon_IronBoulder, + .iconPalIndex = 5, + //FOOTPRINT(IronBoulder) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronBoulderLevelUpLearnset, + .teachableLearnset = sIronBoulderTeachableLearnset, + }, +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN + [SPECIES_IRON_CROWN] = + { + .baseHP = 90, + .baseAttack = 72, + .baseDefense = 100, + .baseSpeed = 98, + .baseSpAttack = 122, + .baseSpDefense = 108, + .types = MON_TYPES(TYPE_STEEL, TYPE_PSYCHIC), + .catchRate = 10, + .expYield = 295, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Iron Crown"), + .cryId = CRY_IRON_CROWN, + .natDexNum = NATIONAL_DEX_IRON_CROWN, + .categoryName = _("Paradox"), + .height = 16, + .weight = 1560, + .description = COMPOUND_STRING( + "It resembles a mysterious object\n" + "introduced in a paranormal magazine\n" + "as a cutting-edge weapon\n" + "shaped like Cobalion."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + .frontPic = gMonFrontPic_IronCrown, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_IronCrown, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_IronCrown, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_IronCrown, + .shinyPalette = gMonShinyPalette_IronCrown, + .iconSprite = gMonIcon_IronCrown, + .iconPalIndex = 3, + //FOOTPRINT(IronCrown) + .isParadoxForm = TRUE, + .levelUpLearnset = sIronCrownLevelUpLearnset, + .teachableLearnset = sIronCrownTeachableLearnset, + }, +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS + [SPECIES_TERAPAGOS_NORMAL] = + { + .baseHP = 90, + .baseAttack = 65, + .baseDefense = 85, + .baseSpeed = 60, + .baseSpAttack = 65, + .baseSpDefense = 85, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 255, + .expYield = 90, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 5, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TERA_SHIFT, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Terapagos"), + .cryId = CRY_TERAPAGOS, + .natDexNum = NATIONAL_DEX_TERAPAGOS, + .categoryName = _("Tera"), + .height = 2, + .weight = 65, + .description = COMPOUND_STRING( + "Terapagos protects itself using its\n" + "power to transform energy into hard\n" + "crystals. This Pokémon is the source\n" + "of the Terastal phenomenon."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + //.frontPic = gMonFrontPic_TerapagosNormal, + //.frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TerapagosNormal, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backPic = gMonBackPic_TerapagosNormal, + //.backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //.palette = gMonPalette_TerapagosNormal, + //.shinyPalette = gMonShinyPalette_TerapagosNormal, + .iconSprite = gMonIcon_TerapagosNormal, + .iconPalIndex = 0, + //FOOTPRINT(Terapagos) + .isLegendary = TRUE, + .levelUpLearnset = sTerapagosLevelUpLearnset, + .teachableLearnset = sTerapagosTeachableLearnset, + .formSpeciesIdTable = sTerapagosFormSpeciesIdTable, + .formChangeTable = sTerapagosFormChangeTable, + }, + + [SPECIES_TERAPAGOS_TERASTAL] = + { + .baseHP = 95, + .baseAttack = 95, + .baseDefense = 110, + .baseSpeed = 85, + .baseSpAttack = 105, + .baseSpDefense = 110, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 255, + .expYield = 120, + .evYield_Defense = 2, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 5, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TERA_SHELL, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Terapagos"), + .cryId = CRY_TERAPAGOS, + .natDexNum = NATIONAL_DEX_TERAPAGOS, + .categoryName = _("Tera"), + .height = 3, + .weight = 160, + .description = COMPOUND_STRING( + "The shell is made of crystallized\n" + "Terastal energy. When struck by a move,\n" + "this shell absorbs the move's energy\n" + "and transfers it to Terapagos."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + //.frontPic = gMonFrontPic_TerapagosTerastal, + //.frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TerapagosTerastal, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backPic = gMonBackPic_TerapagosTerastal, + //.backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //.palette = gMonPalette_TerapagosTerastal, + //.shinyPalette = gMonShinyPalette_TerapagosTerastal, + .iconSprite = gMonIcon_TerapagosTerastal, + .iconPalIndex = 0, + //FOOTPRINT(Terapagos) + .isLegendary = TRUE, + .levelUpLearnset = sTerapagosLevelUpLearnset, + .teachableLearnset = sTerapagosTeachableLearnset, + .formSpeciesIdTable = sTerapagosFormSpeciesIdTable, + .formChangeTable = sTerapagosFormChangeTable, + }, + + [SPECIES_TERAPAGOS_STELLAR] = + { + .baseHP = 160, + .baseAttack = 105, + .baseDefense = 110, + .baseSpeed = 85, + .baseSpAttack = 130, + .baseSpDefense = 110, + .types = MON_TYPES(TYPE_NORMAL), + .catchRate = 255, + .expYield = 140, + .evYield_HP = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 5, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_TERAFORM_ZERO, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .speciesName = _("Terapagos"), + .cryId = CRY_TERAPAGOS, + .natDexNum = NATIONAL_DEX_TERAPAGOS, + .categoryName = _("Tera"), + .height = 17, + .weight = 770, + .description = COMPOUND_STRING( + "An old expedition journal describes the\n" + "sight of this Pokémon buried in the,\n" + "depths of the earth as resembling a\n" + "planet floating in space."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + //.frontPic = gMonFrontPic_TerapagosStellar, + //.frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TerapagosStellar, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backPic = gMonBackPic_TerapagosStellar, + //.backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //.palette = gMonPalette_TerapagosStellar, + //.shinyPalette = gMonShinyPalette_TerapagosStellar, + .iconSprite = gMonIcon_TerapagosStellar, + .iconPalIndex = 0, + //FOOTPRINT(Terapagos) + .isLegendary = TRUE, + .levelUpLearnset = sTerapagosLevelUpLearnset, + .teachableLearnset = sTerapagosTeachableLearnset, + .formSpeciesIdTable = sTerapagosFormSpeciesIdTable, + .formChangeTable = sTerapagosFormChangeTable, + }, +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT + [SPECIES_PECHARUNT] = + { + .baseHP = 88, + .baseAttack = 88, + .baseDefense = 160, + .baseSpeed = 88, + .baseSpAttack = 88, + .baseSpDefense = 88, + .types = MON_TYPES(TYPE_POISON, TYPE_GHOST), + .catchRate = 3, + .expYield = 300, + .evYield_Defense = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_POISON_PUPPETEER, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .speciesName = _("Pecharunt"), + .cryId = CRY_PECHARUNT, + .natDexNum = NATIONAL_DEX_PECHARUNT, + .categoryName = _("Subjugation"), + .height = 3, + .weight = 3, + .description = COMPOUND_STRING( + "It feeds others toxic mochi that\n" + "draw out desires and capabilities.\n" + "Those who eat the mochi fall under\n" + "Pecharunt's control, chained to its will."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + .frontPic = gMonFrontPic_Pecharunt, + .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Pecharunt, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_Pecharunt, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_Pecharunt, + .shinyPalette = gMonShinyPalette_Pecharunt, + .iconSprite = gMonIcon_Pecharunt, + .iconPalIndex = 0, + //FOOTPRINT(Pecharunt) + .isMythical = TRUE, + .levelUpLearnset = sPecharuntLevelUpLearnset, + .teachableLearnset = sPecharuntTeachableLearnset, + }, +#endif //P_FAMILY_PECHARUNT + #ifdef __INTELLISENSE__ }; -#endif \ No newline at end of file +#endif diff --git a/src/data/pokemon/species_info/shared_dex_text.h b/src/data/pokemon/species_info/shared_dex_text.h new file mode 100644 index 000000000..0e4805153 --- /dev/null +++ b/src/data/pokemon/species_info/shared_dex_text.h @@ -0,0 +1,282 @@ +// Gen 1 families +const u8 gRaticateAlolanPokedexText[] = _( + "It forms a group of Rattata, which it \n" + "assumes command of. Each group\n" + "has its own territory, and disputes\n" + "over food happen often."); + +const u8 gPichuPokedexText[] = _( + "It is still inept at retaining electricity.\n" + "When it is startled, it discharges power\n" + "accidentally. It gets better at holding\n" + "power as it grows older."); + +const u8 gPikachuPokedexText[] = _( + "It stores electricity in the electric sacs\n" + "on its cheeks. When it releases pent-up\n" + "energy in a burst, the electric power is\n" + "equal to a lightning bolt."); + +const u8 gMarowakAlolanPokedexText[] = _( + "The cursed flames that light up the bone\n" + "carried by this Pokémon are said\n" + "to cause both mental and physical\n" + "pain that will never fade."); + +const u8 gEeveePokedexText[] = _( + "An Eevee has an unstable genetic makeup\n" + "that suddenly mutates due to its\n" + "environment. Radiation from various\n" + "Stones causes this Pokémon to evolve."); + +// Gen 2 families +const u8 gUnownPokedexText[] = _( + "This Pokémon is shaped like ancient text\n" + "characters. Although research is ongoing,\n" + "it is a mystery as to which came first,\n" + "the ancient writings or the various Unown."); + +// Gen 3 families +const u8 gDeoxysNormalPokedexText[] = _( + "Deoxys emerged from a virus that came\n" + "from space. It is highly intelligent and\n" + "can shoot lasers from the crystalline\n" + "organ on its chest."); + +// Gen 4 families +const u8 gMothimPokedexText[] = _( + "It does not keep a nest. While it\n" + "loves floral honey, it won't gather\n" + "any itself. Instead, it plots to steal\n" + "honey collected by Combee."); + +const u8 gArceusPokedexText[] = _( + "It is told in mythology that this Pokémon\n" + "emerged from an egg and shaped all there\n" + "is in this world, before the universe\n" + "even existed."); + +// Gen 5 families +const u8 gGenesectPokedexText[] = _( + "Over 300 million years ago, it was\n" + "feared as the strongest of hunters.\n" + "Team Plasma altered it and attached\n" + "a cannon to its back."); + +// Gen 6 families +const u8 gGreninjaPokedexText[] = _( + "It appears and vanishes with a ninja's\n" + "grace. It toys with its enemies using swift\n" + "movements, while slicing them with throwing\n" + "stars made of compressed water."); + +const u8 gScatterbugPokedexText[] = _( + "When under attack from bird Pokémon,\n" + "it spews a poisonous black powder that\n" + "causes paralysis on contact. Scatterbug\n" + "can live in any region or climate."); + +const u8 gSpewpaPokedexText[] = _( + "It lives hidden within thicket shadows.\n" + "When predators attack, it quickly bristles\n" + "the fur covering its body in an effort to\n" + "threaten them."); + +const u8 gFurfrouPokedexText[] = _( + "Trimming its fluffy fur not only makes\n" + "it more elegant but also increases the\n" + "swiftness of its movements. These\n" + "Pokémon were the guardians of kings."); + +const u8 gXerneasPokedexText[] = _( + "Legends say that when the horns on\n" + "its head shine in seven colors, it is\n" + "sharing everlasting life. It slept for a\n" + "thousand years in the form of a tree"); + +const u8 gZygarde50PokedexText[] = _( + "It's said to be monitoring the ecosystem\n" + "from deep in the caves where it lives.\n" + "There are rumors that even greater power\n" + "lies hidden within its cells."); + +const u8 gZygarde10PokedexText[] = _( + "This is Zygarde when about 10% of\n" + "its pieces have been assembled. It\n" + "leaps at its opponent's chest and\n" + "sinks its sharp fangs into them."); + +// Gen 7 families +const u8 gGumshoosPokedexText[] = _( + "When it finds a trace of its prey, it\n" + "patiently stakes out the location...\n" + "but as it's diurnal, it's always snoozing\n" + "by nightfall."); + +const u8 gVikavoltPokedexText[] = _( + "It concentrates electrical energy within\n" + "its large jaws and uses it to zap its foes.\n" + "It overwhelms bird Pokémon with shocking\n" + "beams of electrical energy."); + +const u8 gRibombeePokedexText[] = _( + "Ribombee rolls up pollen into puffs.\n" + "It makes many different varieties, some\n" + "used as food and others used in battle.\n" + "They are sometimes sold as supplements."); + +const u8 gRockruffPokedexText[] = _( + "This Pokémon has lived with people since\n" + "times long ago. It can sense when its\n" + "Trainer is in the dumps and will stick\n" + "close by its Trainer's side."); + +const u8 gAraquanidPokedexText[] = _( + "Despite what its appearance suggests,\n" + "it cares for others. If it finds vulnerable,\n" + "weak Pokémon, it protectively brings\n" + "them into its water bubble."); + +const u8 gLurantisPokedexText[] = _( + "It requires a lot of effort to maintain\n" + "Lurantis's vivid coloring, but some\n" + "collectors enjoy this work and treat it\n" + "as their hobby."); + +const u8 gSalazzlePokedexText[] = _( + "For some reason, only females have\n" + "been found. It creates a reverse harem of\n" + "male Salandit to live with. Its poisonous\n" + "gas is filled with pheromones."); + +const u8 gSilvallyNormalPokedexText[] = _( + "Its trust in its partner awakens it.\n" + "This Pokémon is capable of changing its\n" + "type by equipping special memories, a\n" + "trait that is well displayed in battle."); + +const u8 gSilvallyMemoryPokedexText[] = _( + "Upon awakening, its RKS System is\n" + "activated. By employing specific\n" + "memories, this Pokémon can adapt its\n" + "type to confound its enemies."); + +const u8 gMiniorMeteorPokedexText[] = _( + "Originally making its home in the ozone\n" + "layer, it hurtles to the ground when the\n" + "shell encasing its body grows too heavy.\n" + "It was born from mutated nanoparticles."); + +const u8 gMiniorCorePokedexText[] = _( + "If its core stays exposed, it will\n" + "soon die off. It's possible that it\n" + "may survive if it's put into a Poké Ball\n" + "quickly enough."); + +const u8 gTogedemaruPokedexText[] = _( + "The spiny fur on its back is normally\n" + "at rest. When this Pokémon becomes\n" + "agitated, its fur stands on end and stabs\n" + "into its attackers."); + +const u8 gMimikyuDisguisedPokedexText[] = _( + "A lonely Pokémon, it hides its terrifying\n" + "appearance beneath an old rag so it can\n" + "get closer to people and other Pokémon.\n" + "Its actual appearance is unknown."); + +const u8 gMimikyuBustedPokedexText[] = _( + "After going to all the effort of\n" + "disguising itself, its neck was\n" + "broken. Whatever is inside is probably\n" + "unharmed, but it's still feeling sad."); + +const u8 gKommoOPokedexText[] = _( + "Its rigid scales function as offense and\n" + "defense. In the past, its scales were\n" + "processed and used to make weapons\n" + "and other valuable commodities."); + +// Gen 8 families +const u8 gAlcremieVanillaCreamPokedexText[] = _( + "If Alcremie is content, the secreted cream\n" + "from its hands becomes sweeter and richer." + "When it trusts a Trainer, it will treat\n" + "them to berries it's decorated with cream."); + +const u8 gAlcremieRubyCreamPokedexText[] = _( + "The moment it evolved, it took on a\n" + "sweet and tart flavor. This is\n" + "because of the way its cells\n" + "spontaneously shifted during evolution."); + +const u8 gAlcremieMatchaCreamPokedexText[] = _( + "The moment it evolved, it took on\n" + "an aromatic flavor. This is because\n" + "of the way its cells spontaneously\n" + "shifted during evolution."); + +const u8 gAlcremieMintCreamPokedexText[] = _( + "The moment it evolved, it took on a\n" + "refreshing flavor. This is because\n" + "of the way its cells spontaneously\n" + "shifted during evolution."); + +const u8 gAlcremieLemonCreamPokedexText[] = _( + "The moment it evolved, it took on a\n" + "sour flavor. This is because of the\n" + "way its cells spontaneously shifted\n" + "during evolution."); + +const u8 gAlcremieSaltedCreamPokedexText[] = _( + "The moment it evolved, it took on a\n" + "salty flavor. This is because of the\n" + "way its cells spontaneously shifted\n" + "during evolution."); + +const u8 gAlcremieRubySwirlPokedexText[] = _( + "The moment it evolved, it took on a\n" + "mixed flavor. This is because of the\n" + "way its cells spontaneously shifted\n" + "during evolution."); + +const u8 gAlcremieCaramelSwirlPokedexText[] = _( + "The moment it evolved, it took on a\n" + "bitter flavor. This is because of\n" + "the way its cells spontaneously\n" + "shifted during evolution."); + +const u8 gAlcremieRainbowSwirlPokedexText[] = _( + "The moment it evolved, it took on a\n" + "complex flavor. This is because of\n" + "the way its cells spontaneously\n" + "shifted during evolution."); + +const u8 gToxtricityGigantamaxPokedexText[] = _( + "Out of control after its own\n" + "poison penetrated its brain, it tears\n" + "across the land in a rampage,\n" + "contaminating the earth with toxic sweat."); + +// Gen 9 families +const u8 gOgerponTealMaskPokedexText[] = _( + "This Pokémon's type changes based on\n" + "which mask it's wearing. It confounds\n" + "its enemies with nimble movements\n" + "and kicks."); + +const u8 gOgerponWellspringMaskPokedexText[] = _( + "This form excels in both attack\n" + "and defense. It ceaselessly unleashes\n" + "moves like a spring gushes water."); + +const u8 gOgerponHearthflameMaskPokedexText[] = _( + "This form is the most aggressive,\n" + "bombarding enemies with the\n" + "intensity of flames blazing within a hearth."); + +const u8 gOgerponCornerstoneMaskPokedexText[] = _( + "In this form, it draws on the power\n" + "of stone. Its body is rock-solid,\n" + "protecting it from all manner of\n" + "attacks."); \ No newline at end of file diff --git a/src/data/pokemon/teachable_learnsets.h b/src/data/pokemon/teachable_learnsets.h index c4eaf84c9..a8f660558 100644 --- a/src/data/pokemon/teachable_learnsets.h +++ b/src/data/pokemon/teachable_learnsets.h @@ -1,3 +1,113 @@ +// +// DO NOT MODIFY THIS FILE! It is auto-generated from tools/learnset_helpers/teachable.py +// + +// *************************************************** // +// TM/HM moves found in "include/constants/tms_hms.h": // +// - MOVE_FOCUS_PUNCH // +// - MOVE_DRAGON_CLAW // +// - MOVE_WATER_PULSE // +// - MOVE_CALM_MIND // +// - MOVE_ROAR // +// - MOVE_TOXIC // +// - MOVE_HAIL // +// - MOVE_BULK_UP // +// - MOVE_BULLET_SEED // +// - MOVE_HIDDEN_POWER // +// - MOVE_SUNNY_DAY // +// - MOVE_TAUNT // +// - MOVE_ICE_BEAM // +// - MOVE_BLIZZARD // +// - MOVE_HYPER_BEAM // +// - MOVE_LIGHT_SCREEN // +// - MOVE_PROTECT // +// - MOVE_RAIN_DANCE // +// - MOVE_GIGA_DRAIN // +// - MOVE_SAFEGUARD // +// - MOVE_FRUSTRATION // +// - MOVE_SOLAR_BEAM // +// - MOVE_IRON_TAIL // +// - MOVE_THUNDERBOLT // +// - MOVE_THUNDER // +// - MOVE_EARTHQUAKE // +// - MOVE_RETURN // +// - MOVE_DIG // +// - MOVE_PSYCHIC // +// - MOVE_SHADOW_BALL // +// - MOVE_BRICK_BREAK // +// - MOVE_DOUBLE_TEAM // +// - MOVE_REFLECT // +// - MOVE_SHOCK_WAVE // +// - MOVE_FLAMETHROWER // +// - MOVE_SLUDGE_BOMB // +// - MOVE_SANDSTORM // +// - MOVE_FIRE_BLAST // +// - MOVE_ROCK_TOMB // +// - MOVE_AERIAL_ACE // +// - MOVE_TORMENT // +// - MOVE_FACADE // +// - MOVE_SECRET_POWER // +// - MOVE_REST // +// - MOVE_ATTRACT // +// - MOVE_THIEF // +// - MOVE_STEEL_WING // +// - MOVE_SKILL_SWAP // +// - MOVE_SNATCH // +// - MOVE_OVERHEAT // +// - MOVE_CUT // +// - MOVE_FLY // +// - MOVE_SURF // +// - MOVE_STRENGTH // +// - MOVE_FLASH // +// - MOVE_ROCK_SMASH // +// - MOVE_WATERFALL // +// - MOVE_DIVE // +// *************************************************** // +// Tutor moves found in map scripts: // +// - MOVE_BODY_SLAM // +// - MOVE_COUNTER // +// - MOVE_DEFENSE_CURL // +// - MOVE_DOUBLE_EDGE // +// - MOVE_DREAM_EATER // +// - MOVE_DYNAMIC_PUNCH // +// - MOVE_ENDURE // +// - MOVE_EXPLOSION // +// - MOVE_FIRE_PUNCH // +// - MOVE_FURY_CUTTER // +// - MOVE_ICE_PUNCH // +// - MOVE_ICY_WIND // +// - MOVE_MEGA_KICK // +// - MOVE_MEGA_PUNCH // +// - MOVE_METRONOME // +// - MOVE_MIMIC // +// - MOVE_MUD_SLAP // +// - MOVE_PSYCH_UP // +// - MOVE_ROCK_SLIDE // +// - MOVE_ROLLOUT // +// - MOVE_SEISMIC_TOSS // +// - MOVE_SLEEP_TALK // +// - MOVE_SNORE // +// - MOVE_SOFT_BOILED // +// - MOVE_SUBSTITUTE // +// - MOVE_SWAGGER // +// - MOVE_SWIFT // +// - MOVE_SWORDS_DANCE // +// - MOVE_THUNDER_PUNCH // +// - MOVE_THUNDER_WAVE // +// *************************************************** // +// Near-universal moves found in sUniversalMoves: // +// - MOVE_BIDE // +// - MOVE_FRUSTRATION // +// - MOVE_HIDDEN_POWER // +// - MOVE_MIMIC // +// - MOVE_NATURAL_GIFT // +// - MOVE_RAGE // +// - MOVE_RETURN // +// - MOVE_SECRET_POWER // +// - MOVE_SUBSTITUTE // +// - MOVE_TERA_BLAST // +// *************************************************** // + static const u16 sNoneTeachableLearnset[] = { MOVE_UNAVAILABLE, }; @@ -10,17 +120,13 @@ static const u16 sBulbasaurTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -31,11 +137,9 @@ static const u16 sBulbasaurTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -48,17 +152,14 @@ static const u16 sIvysaurTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -69,11 +170,9 @@ static const u16 sIvysaurTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -87,19 +186,15 @@ static const u16 sVenusaurTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -110,11 +205,9 @@ static const u16 sVenusaurTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -134,17 +227,14 @@ static const u16 sCharmanderTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -158,13 +248,11 @@ static const u16 sCharmanderTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -184,17 +272,14 @@ static const u16 sCharmeleonTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -208,13 +293,11 @@ static const u16 sCharmeleonTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -236,20 +319,16 @@ static const u16 sCharizardTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLY, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_STRENGTH, @@ -265,13 +344,11 @@ static const u16 sCharizardTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -290,19 +367,15 @@ static const u16 sSquirtleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -318,13 +391,12 @@ static const u16 sSquirtleTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -338,19 +410,15 @@ static const u16 sWartortleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -366,13 +434,12 @@ static const u16 sWartortleTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -387,9 +454,7 @@ static const u16 sBlastoiseTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -397,11 +462,9 @@ static const u16 sBlastoiseTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -417,14 +480,12 @@ static const u16 sBlastoiseTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -446,18 +507,14 @@ static const u16 sButterfreeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -467,11 +524,9 @@ static const u16 sButterfreeTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -495,16 +550,12 @@ static const u16 sBeedrillTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -513,10 +564,8 @@ static const u16 sBeedrillTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -531,25 +580,19 @@ static const u16 sPidgeyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -561,25 +604,19 @@ static const u16 sPidgeottoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -591,26 +628,20 @@ static const u16 sPidgeotTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -625,18 +656,15 @@ static const u16 sRattataTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, @@ -649,11 +677,9 @@ static const u16 sRattataTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -667,18 +693,14 @@ static const u16 sRaticateTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -695,11 +717,9 @@ static const u16 sRaticateTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -709,34 +729,64 @@ static const u16 sRaticateTeachableLearnset[] = { #if P_ALOLAN_FORMS static const u16 sRattataAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sRaticateAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BULK_UP, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, + MOVE_ROAR, MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -749,24 +799,18 @@ static const u16 sSpearowTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -778,25 +822,19 @@ static const u16 sFearowTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -810,16 +848,12 @@ static const u16 sEkansTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, @@ -830,11 +864,10 @@ static const u16 sEkansTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -845,17 +878,13 @@ static const u16 sArbokTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, @@ -866,11 +895,10 @@ static const u16 sArbokTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -883,15 +911,12 @@ static const u16 sPichuTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SURF, MOVE_THUNDER, @@ -904,13 +929,11 @@ static const u16 sPichuTeachableLearnset[] = { MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -922,72 +945,22 @@ static const u16 sPichuTeachableLearnset[] = { static const u16 sPikachuTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SURF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TOXIC, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DEFENSE_CURL, - MOVE_DOUBLE_EDGE, - MOVE_DYNAMIC_PUNCH, - MOVE_ENDURE, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_ROLLOUT, - MOVE_SEISMIC_TOSS, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_THUNDER_PUNCH, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sRaichuTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, - MOVE_SHOCK_WAVE, - MOVE_STRENGTH, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, @@ -1000,13 +973,56 @@ static const u16 sRaichuTeachableLearnset[] = { MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sRaichuTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -1016,21 +1032,41 @@ static const u16 sRaichuTeachableLearnset[] = { #if P_ALOLAN_FORMS static const u16 sRaichuAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_CALM_MIND, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, MOVE_ROCK_SMASH, - MOVE_THUNDERBOLT, + MOVE_SAFEGUARD, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SURF, + MOVE_THIEF, MOVE_THUNDER, + MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -1047,17 +1083,13 @@ static const u16 sSandshrewTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -1069,14 +1101,12 @@ static const u16 sSandshrewTeachableLearnset[] = { MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -1093,18 +1123,14 @@ static const u16 sSandslashTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -1116,14 +1142,12 @@ static const u16 sSandslashTeachableLearnset[] = { MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -1132,31 +1156,81 @@ static const u16 sSandslashTeachableLearnset[] = { #if P_ALOLAN_FORMS static const u16 sSandshrewAlolanTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_HAIL, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sSandslashAlolanTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_HAIL, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -1171,17 +1245,13 @@ static const u16 sNidoranFTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, @@ -1196,11 +1266,9 @@ static const u16 sNidoranFTeachableLearnset[] = { MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -1213,17 +1281,13 @@ static const u16 sNidorinaTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, @@ -1238,11 +1302,9 @@ static const u16 sNidorinaTeachableLearnset[] = { MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -1260,8 +1322,6 @@ static const u16 sNidoqueenTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -1269,12 +1329,10 @@ static const u16 sNidoqueenTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -1300,13 +1358,11 @@ static const u16 sNidoqueenTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -1319,17 +1375,13 @@ static const u16 sNidoranMTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, @@ -1344,11 +1396,9 @@ static const u16 sNidoranMTeachableLearnset[] = { MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -1360,17 +1410,13 @@ static const u16 sNidorinoTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, @@ -1385,11 +1431,9 @@ static const u16 sNidorinoTeachableLearnset[] = { MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -1406,8 +1450,6 @@ static const u16 sNidokingTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -1415,12 +1457,10 @@ static const u16 sNidokingTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -1446,13 +1486,11 @@ static const u16 sNidokingTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -1463,14 +1501,13 @@ static const u16 sNidokingTeachableLearnset[] = { #if P_GEN_2_CROSS_EVOS static const u16 sCleffaTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -1478,9 +1515,7 @@ static const u16 sCleffaTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -1497,7 +1532,6 @@ static const u16 sCleffaTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, @@ -1505,8 +1539,8 @@ static const u16 sCleffaTeachableLearnset[] = { MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SOFT_BOILED, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -1524,8 +1558,6 @@ static const u16 sClefairyTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -1534,16 +1566,16 @@ static const u16 sClefairyTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -1561,7 +1593,6 @@ static const u16 sClefairyTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, @@ -1569,8 +1600,8 @@ static const u16 sClefairyTeachableLearnset[] = { MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SOFT_BOILED, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -1588,8 +1619,6 @@ static const u16 sClefableTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -1599,16 +1628,16 @@ static const u16 sClefableTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -1626,7 +1655,6 @@ static const u16 sClefableTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, @@ -1634,8 +1662,8 @@ static const u16 sClefableTeachableLearnset[] = { MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SOFT_BOILED, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -1650,27 +1678,21 @@ static const u16 sVulpixTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -1684,18 +1706,15 @@ static const u16 sNinetalesTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -1703,11 +1722,9 @@ static const u16 sNinetalesTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -1715,30 +1732,62 @@ static const u16 sNinetalesTeachableLearnset[] = { #if P_ALOLAN_FORMS static const u16 sVulpixAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, + MOVE_HAIL, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, + MOVE_ROAR, + MOVE_SAFEGUARD, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sNinetalesAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_CALM_MIND, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, + MOVE_HAIL, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, + MOVE_ROAR, + MOVE_SAFEGUARD, + MOVE_SOLAR_BEAM, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -1754,17 +1803,13 @@ static const u16 sIgglybuffTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -1780,15 +1825,14 @@ static const u16 sIgglybuffTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -1798,6 +1842,7 @@ static const u16 sJigglypuffTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, @@ -1805,8 +1850,6 @@ static const u16 sJigglypuffTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -1814,15 +1857,17 @@ static const u16 sJigglypuffTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -1839,15 +1884,15 @@ static const u16 sJigglypuffTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -1857,6 +1902,7 @@ static const u16 sWigglytuffTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, @@ -1864,8 +1910,6 @@ static const u16 sWigglytuffTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -1874,15 +1918,17 @@ static const u16 sWigglytuffTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -1899,15 +1945,15 @@ static const u16 sWigglytuffTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -1921,14 +1967,10 @@ static const u16 sZubatTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -1940,10 +1982,8 @@ static const u16 sZubatTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -1955,15 +1995,11 @@ static const u16 sGolbatTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -1975,10 +2011,8 @@ static const u16 sGolbatTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -1991,15 +2025,11 @@ static const u16 sCrobatTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -2011,10 +2041,8 @@ static const u16 sCrobatTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -2030,24 +2058,18 @@ static const u16 sOddishTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -2060,24 +2082,18 @@ static const u16 sGloomTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -2090,16 +2106,12 @@ static const u16 sVileplumeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -2107,10 +2119,8 @@ static const u16 sVileplumeTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -2124,25 +2134,19 @@ static const u16 sBellossomTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -2161,16 +2165,12 @@ static const u16 sParasTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -2181,10 +2181,8 @@ static const u16 sParasTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -2200,17 +2198,13 @@ static const u16 sParasectTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -2221,10 +2215,8 @@ static const u16 sParasectTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -2237,15 +2229,11 @@ static const u16 sVenonatTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -2254,10 +2242,8 @@ static const u16 sVenonatTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -2269,16 +2255,12 @@ static const u16 sVenomothTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -2286,11 +2268,10 @@ static const u16 sVenomothTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -2306,15 +2287,11 @@ static const u16 sDiglettTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -2322,13 +2299,12 @@ static const u16 sDiglettTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -2340,16 +2316,12 @@ static const u16 sDugtrioTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -2357,37 +2329,67 @@ static const u16 sDugtrioTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #if P_ALOLAN_FORMS static const u16 sDiglettAlolanTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_PROTECT, MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sDugtrioAlolanTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -2402,14 +2404,10 @@ static const u16 sMeowthTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -2427,14 +2425,13 @@ static const u16 sMeowthTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -2446,16 +2443,12 @@ static const u16 sPersianTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -2473,49 +2466,95 @@ static const u16 sPersianTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #if P_ALOLAN_FORMS static const u16 sMeowthAlolanTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_TAUNT, - MOVE_THUNDERBOLT, + MOVE_THIEF, MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sPersianAlolanTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, + MOVE_ROAR, MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_TAUNT, - MOVE_THUNDERBOLT, + MOVE_THIEF, MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS static const u16 sMeowthGalarianTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_DIG, MOVE_FACADE, MOVE_IRON_TAIL, @@ -2531,16 +2570,18 @@ static const u16 sMeowthGalarianTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, + MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sPerrserkerTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_DIG, MOVE_FACADE, MOVE_HYPER_BEAM, @@ -2555,10 +2596,11 @@ static const u16 sPerrserkerTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, + MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -2579,9 +2621,7 @@ static const u16 sPsyduckTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -2589,11 +2629,12 @@ static const u16 sPsyduckTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, MOVE_STRENGTH, MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -2606,13 +2647,12 @@ static const u16 sPsyduckTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -2630,9 +2670,7 @@ static const u16 sGolduckTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -2641,11 +2679,12 @@ static const u16 sGolduckTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, MOVE_STRENGTH, MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -2659,13 +2698,12 @@ static const u16 sGolduckTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -2683,17 +2721,13 @@ static const u16 sMankeyTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -2712,14 +2746,12 @@ static const u16 sMankeyTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -2736,18 +2768,14 @@ static const u16 sPrimeapeTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -2766,14 +2794,12 @@ static const u16 sPrimeapeTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -2782,59 +2808,37 @@ static const u16 sPrimeapeTeachableLearnset[] = { #if P_GEN_9_CROSS_EVOS static const u16 sAnnihilapeTeachableLearnset[] = { - MOVE_ACROBATICS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, MOVE_BULK_UP, - MOVE_BULLDOZE, - MOVE_CLOSE_COMBAT, MOVE_DIG, - MOVE_DRAIN_PUNCH, MOVE_EARTHQUAKE, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_PUNCH, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_GUNK_SHOT, - MOVE_HELPING_HAND, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, - MOVE_ICE_PUNCH, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_METRONOME, - MOVE_NIGHT_SHADE, - MOVE_OUTRAGE, MOVE_OVERHEAT, - MOVE_PHANTOM_FORCE, - MOVE_POISON_JAB, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, MOVE_SHADOW_BALL, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, - MOVE_U_TURN, MOVE_UNAVAILABLE, }; #endif //P_GEN_9_CROSS_EVOS @@ -2849,18 +2853,14 @@ static const u16 sGrowlitheTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -2868,11 +2868,9 @@ static const u16 sGrowlitheTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -2886,19 +2884,15 @@ static const u16 sArcanineTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -2907,11 +2901,9 @@ static const u16 sArcanineTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -2919,10 +2911,53 @@ static const u16 sArcanineTeachableLearnset[] = { #if P_HISUIAN_FORMS static const u16 sGrowlitheHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_DIG, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sArcanineHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_DIG, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -2936,16 +2971,13 @@ static const u16 sPoliwagTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, + MOVE_FOCUS_PUNCH, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, @@ -2956,11 +2988,11 @@ static const u16 sPoliwagTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -2974,17 +3006,13 @@ static const u16 sPoliwhirlTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_THIEF, @@ -3001,13 +3029,13 @@ static const u16 sPoliwhirlTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -3022,21 +3050,18 @@ static const u16 sPoliwrathTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, + MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, @@ -3052,14 +3077,14 @@ static const u16 sPoliwrathTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -3074,18 +3099,14 @@ static const u16 sPolitoedTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_THIEF, @@ -3103,13 +3124,13 @@ static const u16 sPolitoedTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_GEN_2_CROSS_EVOS @@ -3123,8 +3144,6 @@ static const u16 sAbraTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -3132,9 +3151,7 @@ static const u16 sAbraTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -3155,13 +3172,12 @@ static const u16 sAbraTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -3175,8 +3191,6 @@ static const u16 sKadabraTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -3184,9 +3198,7 @@ static const u16 sKadabraTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -3207,13 +3219,12 @@ static const u16 sKadabraTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -3227,8 +3238,6 @@ static const u16 sAlakazamTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -3237,9 +3246,7 @@ static const u16 sAlakazamTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -3260,13 +3267,12 @@ static const u16 sAlakazamTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -3285,16 +3291,12 @@ static const u16 sMachopTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -3309,13 +3311,11 @@ static const u16 sMachopTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -3332,16 +3332,12 @@ static const u16 sMachokeTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -3356,13 +3352,11 @@ static const u16 sMachokeTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -3379,17 +3373,13 @@ static const u16 sMachampTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -3404,13 +3394,11 @@ static const u16 sMachampTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -3425,14 +3413,10 @@ static const u16 sBellsproutTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -3440,10 +3424,8 @@ static const u16 sBellsproutTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -3456,26 +3438,22 @@ static const u16 sWeepinbellTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -3487,15 +3465,11 @@ static const u16 sVictreebelTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -3504,11 +3478,10 @@ static const u16 sVictreebelTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -3522,18 +3495,14 @@ static const u16 sTentacoolTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SURF, MOVE_THIEF, @@ -3543,11 +3512,10 @@ static const u16 sTentacoolTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -3559,19 +3527,15 @@ static const u16 sTentacruelTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SURF, MOVE_THIEF, @@ -3581,11 +3545,10 @@ static const u16 sTentacruelTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -3602,15 +3565,11 @@ static const u16 sGeodudeTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -3624,14 +3583,12 @@ static const u16 sGeodudeTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -3647,15 +3604,11 @@ static const u16 sGravelerTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -3669,14 +3622,12 @@ static const u16 sGravelerTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -3692,17 +3643,13 @@ static const u16 sGolemTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -3718,14 +3665,12 @@ static const u16 sGolemTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -3733,51 +3678,123 @@ static const u16 sGolemTeachableLearnset[] = { #if P_ALOLAN_FORMS static const u16 sGeodudeAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_EARTHQUAKE, + MOVE_FOCUS_PUNCH, MOVE_PROTECT, MOVE_REST, MOVE_ROCK_SMASH, - MOVE_THUNDERBOLT, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SUNNY_DAY, MOVE_THUNDER, + MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sGravelerAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, MOVE_PROTECT, MOVE_REST, MOVE_ROCK_SMASH, - MOVE_THUNDERBOLT, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, MOVE_THUNDER, + MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_METRONOME, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sGolemAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, + MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_THUNDERBOLT, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, MOVE_THUNDER, + MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -3790,15 +3807,11 @@ static const u16 sPonytaTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -3806,10 +3819,8 @@ static const u16 sPonytaTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -3821,16 +3832,12 @@ static const u16 sRapidashTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -3838,12 +3845,11 @@ static const u16 sRapidashTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -3852,6 +3858,8 @@ static const u16 sPonytaGalarianTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, @@ -3861,7 +3869,6 @@ static const u16 sPonytaGalarianTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -3870,16 +3877,18 @@ static const u16 sRapidashGalarianTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -3900,9 +3909,7 @@ static const u16 sSlowpokeTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -3911,27 +3918,24 @@ static const u16 sSlowpokeTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -3953,9 +3957,7 @@ static const u16 sSlowbroTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -3965,16 +3967,15 @@ static const u16 sSlowbroTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -3987,13 +3988,12 @@ static const u16 sSlowbroTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -4015,9 +4015,7 @@ static const u16 sSlowkingTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -4025,17 +4023,18 @@ static const u16 sSlowkingTeachableLearnset[] = { MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -4043,20 +4042,22 @@ static const u16 sSlowkingTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, + MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -4086,6 +4087,7 @@ static const u16 sSlowpokeGalarianTeachableLearnset[] = { MOVE_SKILL_SWAP, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_ENDURE, @@ -4093,7 +4095,6 @@ static const u16 sSlowpokeGalarianTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -4120,22 +4121,26 @@ static const u16 sSlowbroGalarianTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REST, MOVE_SAFEGUARD, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -4168,19 +4173,24 @@ static const u16 sSlowkingGalarianTeachableLearnset[] = { MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_ENDURE, + MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -4193,15 +4203,12 @@ static const u16 sMagnemiteTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_THUNDER, @@ -4210,12 +4217,10 @@ static const u16 sMagnemiteTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -4226,16 +4231,13 @@ static const u16 sMagnetonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_THUNDER, @@ -4244,12 +4246,10 @@ static const u16 sMagnetonTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -4261,28 +4261,26 @@ static const u16 sMagnezoneTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -4299,14 +4297,10 @@ static const u16 sFarfetchdTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -4315,12 +4309,10 @@ static const u16 sFarfetchdTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -4344,7 +4336,6 @@ static const u16 sFarfetchdGalarianTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -4359,11 +4350,12 @@ static const u16 sSirfetchdTeachableLearnset[] = { MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -4377,13 +4369,10 @@ static const u16 sDoduoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -4391,11 +4380,9 @@ static const u16 sDoduoTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -4408,14 +4395,11 @@ static const u16 sDodrioTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -4425,11 +4409,9 @@ static const u16 sDodrioTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -4444,17 +4426,13 @@ static const u16 sSeelTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_THIEF, @@ -4465,10 +4443,8 @@ static const u16 sSeelTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -4479,18 +4455,14 @@ static const u16 sDewgongTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_THIEF, @@ -4501,10 +4473,8 @@ static const u16 sDewgongTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -4518,15 +4488,12 @@ static const u16 sGrimerTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -4544,12 +4511,11 @@ static const u16 sGrimerTeachableLearnset[] = { MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -4564,17 +4530,14 @@ static const u16 sMukTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -4592,45 +4555,98 @@ static const u16 sMukTeachableLearnset[] = { MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; #if P_ALOLAN_FORMS static const u16 sGrimerAlolanTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_METRONOME, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; static const u16 sMukAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_GIGA_DRAIN, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_METRONOME, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -4643,27 +4659,22 @@ static const u16 sShellderTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -4675,29 +4686,26 @@ static const u16 sCloysterTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -4709,15 +4717,11 @@ static const u16 sGastlyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, @@ -4735,11 +4739,9 @@ static const u16 sGastlyTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -4749,15 +4751,11 @@ static const u16 sHaunterTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, @@ -4775,11 +4773,10 @@ static const u16 sHaunterTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -4791,17 +4788,13 @@ static const u16 sGengarTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, @@ -4827,14 +4820,13 @@ static const u16 sGengarTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GASTLY @@ -4846,17 +4838,13 @@ static const u16 sOnixTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -4867,14 +4855,12 @@ static const u16 sOnixTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -4887,18 +4873,14 @@ static const u16 sSteelixTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -4909,14 +4891,12 @@ static const u16 sSteelixTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -4932,17 +4912,13 @@ static const u16 sDrowzeeTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SNATCH, @@ -4962,13 +4938,12 @@ static const u16 sDrowzeeTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -4982,8 +4957,6 @@ static const u16 sHypnoTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -4991,9 +4964,7 @@ static const u16 sHypnoTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SNATCH, @@ -5013,13 +4984,12 @@ static const u16 sHypnoTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -5036,17 +5006,13 @@ static const u16 sKrabbyTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_THIEF, @@ -5057,12 +5023,10 @@ static const u16 sKrabbyTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -5077,18 +5041,14 @@ static const u16 sKinglerTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_THIEF, @@ -5099,12 +5059,10 @@ static const u16 sKinglerTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -5116,15 +5074,11 @@ static const u16 sVoltorbTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_TAUNT, MOVE_THIEF, @@ -5132,13 +5086,12 @@ static const u16 sVoltorbTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -5149,16 +5102,12 @@ static const u16 sElectrodeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_TAUNT, MOVE_THIEF, @@ -5166,13 +5115,12 @@ static const u16 sElectrodeTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -5181,10 +5129,49 @@ static const u16 sElectrodeTeachableLearnset[] = { #if P_HISUIAN_FORMS static const u16 sVoltorbHisuianTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SOLAR_BEAM, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sElectrodeHisuianTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SOLAR_BEAM, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -5197,16 +5184,12 @@ static const u16 sExeggcuteTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -5218,12 +5201,10 @@ static const u16 sExeggcuteTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -5232,20 +5213,18 @@ static const u16 sExeggcuteTeachableLearnset[] = { static const u16 sExeggutorTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, + MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -5253,16 +5232,15 @@ static const u16 sExeggutorTeachableLearnset[] = { MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -5270,10 +5248,15 @@ static const u16 sExeggutorTeachableLearnset[] = { #if P_ALOLAN_FORMS static const u16 sExeggutorAlolanTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLAMETHROWER, + MOVE_GIGA_DRAIN, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -5281,9 +5264,22 @@ static const u16 sExeggutorAlolanTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_SOLAR_BEAM, + MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -5302,17 +5298,13 @@ static const u16 sCuboneTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -5327,14 +5319,13 @@ static const u16 sCuboneTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -5352,18 +5343,14 @@ static const u16 sMarowakTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -5378,14 +5365,13 @@ static const u16 sMarowakTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -5393,22 +5379,48 @@ static const u16 sMarowakTeachableLearnset[] = { #if P_ALOLAN_FORMS static const u16 sMarowakAlolanTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, - MOVE_THUNDERBOLT, + MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_THUNDER, + MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; #endif //P_ALOLAN_FORMS @@ -5423,14 +5435,10 @@ static const u16 sTyrogueTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -5440,13 +5448,12 @@ static const u16 sTyrogueTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MEGA_KICK, - MOVE_MIMIC, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -5461,17 +5468,14 @@ static const u16 sHitmonleeTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, @@ -5482,15 +5486,14 @@ static const u16 sHitmonleeTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -5502,17 +5505,14 @@ static const u16 sHitmonchanTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, @@ -5525,15 +5525,14 @@ static const u16 sHitmonchanTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -5548,15 +5547,11 @@ static const u16 sHitmontopTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -5566,14 +5561,13 @@ static const u16 sHitmontopTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MEGA_KICK, - MOVE_MIMIC, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -5594,19 +5588,15 @@ static const u16 sLickitungTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -5630,7 +5620,6 @@ static const u16 sLickitungTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -5638,7 +5627,6 @@ static const u16 sLickitungTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -5658,19 +5646,15 @@ static const u16 sLickilickyTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -5682,20 +5666,23 @@ static const u16 sLickilickyTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -5712,13 +5699,9 @@ static const u16 sKoffingTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -5729,13 +5712,12 @@ static const u16 sKoffingTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -5747,14 +5729,10 @@ static const u16 sWeezingTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -5765,13 +5743,12 @@ static const u16 sWeezingTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -5795,11 +5772,12 @@ static const u16 sWeezingGalarianTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_GALARIAN_FORMS @@ -5815,19 +5793,15 @@ static const u16 sRhyhornTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -5840,13 +5814,11 @@ static const u16 sRhyhornTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -5864,20 +5836,16 @@ static const u16 sRhydonTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -5897,14 +5865,12 @@ static const u16 sRhydonTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -5924,20 +5890,16 @@ static const u16 sRhyperiorTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -5946,17 +5908,21 @@ static const u16 sRhyperiorTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -5969,22 +5935,19 @@ static const u16 sRhyperiorTeachableLearnset[] = { #if P_GEN_4_CROSS_EVOS static const u16 sHappinyTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -5992,6 +5955,8 @@ static const u16 sHappinyTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, @@ -5999,9 +5964,10 @@ static const u16 sHappinyTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SOFT_BOILED, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -6020,9 +5986,7 @@ static const u16 sChanseyTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -6032,12 +5996,10 @@ static const u16 sChanseyTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -6045,6 +6007,7 @@ static const u16 sChanseyTeachableLearnset[] = { MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -6062,7 +6025,6 @@ static const u16 sChanseyTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -6071,8 +6033,8 @@ static const u16 sChanseyTeachableLearnset[] = { MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SOFT_BOILED, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -6091,9 +6053,7 @@ static const u16 sBlisseyTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -6102,12 +6062,10 @@ static const u16 sBlisseyTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -6115,6 +6073,7 @@ static const u16 sBlisseyTeachableLearnset[] = { MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -6132,7 +6091,6 @@ static const u16 sBlisseyTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -6141,8 +6099,8 @@ static const u16 sBlisseyTeachableLearnset[] = { MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SOFT_BOILED, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -6158,16 +6116,12 @@ static const u16 sTangelaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -6177,11 +6131,9 @@ static const u16 sTangelaTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -6198,17 +6150,13 @@ static const u16 sTangrowthTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -6216,13 +6164,13 @@ static const u16 sTangrowthTeachableLearnset[] = { MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -6244,22 +6192,18 @@ static const u16 sKangaskhanTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -6282,13 +6226,11 @@ static const u16 sKangaskhanTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -6302,15 +6244,11 @@ static const u16 sHorseaTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -6318,10 +6256,8 @@ static const u16 sHorseaTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -6333,16 +6269,12 @@ static const u16 sSeadraTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -6350,10 +6282,8 @@ static const u16 sSeadraTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -6366,16 +6296,12 @@ static const u16 sKingdraTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -6384,10 +6310,8 @@ static const u16 sKingdraTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -6402,15 +6326,11 @@ static const u16 sGoldeenTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -6420,13 +6340,12 @@ static const u16 sGoldeenTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -6436,31 +6355,27 @@ static const u16 sSeakingTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GOLDEEN @@ -6473,9 +6388,7 @@ static const u16 sStaryuTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -6483,8 +6396,6 @@ static const u16 sStaryuTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_THUNDER, MOVE_THUNDERBOLT, @@ -6494,12 +6405,10 @@ static const u16 sStaryuTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -6513,9 +6422,7 @@ static const u16 sStarmieTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -6524,8 +6431,6 @@ static const u16 sStarmieTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SURF, MOVE_THUNDER, @@ -6537,12 +6442,10 @@ static const u16 sStarmieTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -6560,17 +6463,13 @@ static const u16 sMimeJrTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -6586,12 +6485,10 @@ static const u16 sMimeJrTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -6607,8 +6504,6 @@ static const u16 sMrMimeTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -6616,9 +6511,7 @@ static const u16 sMrMimeTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -6643,13 +6536,11 @@ static const u16 sMrMimeTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -6688,10 +6579,8 @@ static const u16 sMrMimeGalarianTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -6727,10 +6616,8 @@ static const u16 sMrRimeTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -6742,20 +6629,17 @@ static const u16 sScytherTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -6764,10 +6648,8 @@ static const u16 sScytherTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -6779,21 +6661,18 @@ static const u16 sScizorTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -6803,10 +6682,8 @@ static const u16 sScizorTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -6816,6 +6693,29 @@ static const u16 sScizorTeachableLearnset[] = { #if P_GEN_8_CROSS_EVOS static const u16 sKleavorTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_GEN_8_CROSS_EVOS @@ -6830,9 +6730,7 @@ static const u16 sSmoochumTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -6840,8 +6738,6 @@ static const u16 sSmoochumTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_THIEF, @@ -6858,13 +6754,11 @@ static const u16 sSmoochumTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -6879,9 +6773,7 @@ static const u16 sJynxTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -6890,8 +6782,6 @@ static const u16 sJynxTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_TAUNT, @@ -6910,13 +6800,11 @@ static const u16 sJynxTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -6931,17 +6819,14 @@ static const u16 sElekidTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, + MOVE_TAUNT, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, @@ -6955,12 +6840,10 @@ static const u16 sElekidTeachableLearnset[] = { MOVE_ICE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -6972,12 +6855,11 @@ static const u16 sElekidTeachableLearnset[] = { static const u16 sElectabuzzTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_BULK_UP, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -6986,11 +6868,10 @@ static const u16 sElectabuzzTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, + MOVE_TAUNT, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, @@ -7005,12 +6886,10 @@ static const u16 sElectabuzzTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -7022,6 +6901,7 @@ static const u16 sElectabuzzTeachableLearnset[] = { static const u16 sElectivireTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_BULK_UP, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, @@ -7029,19 +6909,16 @@ static const u16 sElectivireTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_TAUNT, @@ -7050,14 +6927,19 @@ static const u16 sElectivireTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -7077,16 +6959,12 @@ static const u16 sMagbyTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, @@ -7098,12 +6976,10 @@ static const u16 sMagbyTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -7118,19 +6994,17 @@ static const u16 sMagmarTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, @@ -7142,12 +7016,10 @@ static const u16 sMagmarTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -7163,18 +7035,15 @@ static const u16 sMagmortarTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -7183,13 +7052,18 @@ static const u16 sMagmortarTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -7208,16 +7082,12 @@ static const u16 sPinsirTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -7226,12 +7096,10 @@ static const u16 sPinsirTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -7242,29 +7110,28 @@ static const u16 sPinsirTeachableLearnset[] = { static const u16 sTaurosTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -7273,121 +7140,82 @@ static const u16 sTaurosTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #if P_PALDEAN_FORMS static const u16 sTaurosPaldeanCombatBreedTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CLOSE_COMBAT, + MOVE_BULK_UP, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_GIGA_IMPACT, MOVE_HYPER_BEAM, - MOVE_IRON_HEAD, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SMART_STRIKE, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, MOVE_SURF, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_WILD_CHARGE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sTaurosPaldeanBlazeBreedTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CLOSE_COMBAT, + MOVE_BULK_UP, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_GIGA_IMPACT, MOVE_HYPER_BEAM, - MOVE_IRON_HEAD, - MOVE_OUTRAGE, + MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SMART_STRIKE, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_WILD_CHARGE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sTaurosPaldeanAquaBreedTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CLOSE_COMBAT, + MOVE_BULK_UP, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_GIGA_IMPACT, MOVE_HYPER_BEAM, - MOVE_IRON_HEAD, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SMART_STRIKE, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_WILD_CHARGE, - MOVE_ZEN_HEADBUTT, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #endif //P_PALDEAN_FORMS @@ -7407,9 +7235,7 @@ static const u16 sGyaradosTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -7417,12 +7243,11 @@ static const u16 sGyaradosTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TAUNT, MOVE_THUNDER, @@ -7435,10 +7260,8 @@ static const u16 sGyaradosTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -7451,10 +7274,9 @@ static const u16 sLaprasTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DIVE, MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -7463,11 +7285,9 @@ static const u16 sLaprasTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -7482,10 +7302,8 @@ static const u16 sLaprasTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -7500,29 +7318,25 @@ static const u16 sDittoTeachableLearnset[] = { #if P_FAMILY_EEVEE static const u16 sEeveeTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_ROAR, MOVE_SHADOW_BALL, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -7531,13 +7345,12 @@ static const u16 sEeveeTeachableLearnset[] = { static const u16 sVaporeonTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -7545,10 +7358,8 @@ static const u16 sVaporeonTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -7560,11 +7371,9 @@ static const u16 sVaporeonTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -7572,12 +7381,11 @@ static const u16 sVaporeonTeachableLearnset[] = { static const u16 sJolteonTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -7585,10 +7393,8 @@ static const u16 sJolteonTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STRENGTH, @@ -7599,11 +7405,9 @@ static const u16 sJolteonTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -7612,13 +7416,12 @@ static const u16 sJolteonTeachableLearnset[] = { static const u16 sFlareonTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, @@ -7626,10 +7429,8 @@ static const u16 sFlareonTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -7637,11 +7438,9 @@ static const u16 sFlareonTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -7656,8 +7455,6 @@ static const u16 sEspeonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -7666,8 +7463,8 @@ static const u16 sEspeonTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_ROAR, + MOVE_ROCK_SMASH, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SUNNY_DAY, @@ -7676,52 +7473,53 @@ static const u16 sEspeonTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sUmbreonTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_ROAR, + MOVE_ROCK_SMASH, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_GEN_2_CROSS_EVOS @@ -7731,33 +7529,31 @@ static const u16 sLeafeonTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BULLET_SEED, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -7767,33 +7563,31 @@ static const u16 sLeafeonTeachableLearnset[] = { static const u16 sGlaceonTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -7809,26 +7603,28 @@ static const u16 sSylveonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -7843,8 +7639,6 @@ static const u16 sPorygonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -7853,8 +7647,6 @@ static const u16 sPorygonTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -7867,11 +7659,9 @@ static const u16 sPorygonTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -7885,8 +7675,6 @@ static const u16 sPorygon2TeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -7894,8 +7682,6 @@ static const u16 sPorygon2TeachableLearnset[] = { MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -7909,11 +7695,9 @@ static const u16 sPorygon2TeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -7927,8 +7711,6 @@ static const u16 sPorygonZTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -7936,8 +7718,6 @@ static const u16 sPorygonZTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -7946,13 +7726,14 @@ static const u16 sPorygonZTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -7969,19 +7750,15 @@ static const u16 sOmanyteTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, @@ -7991,12 +7768,10 @@ static const u16 sOmanyteTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -8007,20 +7782,16 @@ static const u16 sOmastarTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, @@ -8030,13 +7801,11 @@ static const u16 sOmastarTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -8050,20 +7819,16 @@ static const u16 sKabutoTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, @@ -8073,13 +7838,11 @@ static const u16 sKabutoTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -8094,21 +7857,17 @@ static const u16 sKabutopsTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, @@ -8120,14 +7879,12 @@ static const u16 sKabutopsTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_MEGA_KICK, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -8145,20 +7902,16 @@ static const u16 sAerodactylTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -8168,11 +7921,9 @@ static const u16 sAerodactylTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -8185,24 +7936,21 @@ static const u16 sMunchlaxTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -8222,13 +7970,14 @@ static const u16 sMunchlaxTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -8239,14 +7988,13 @@ static const u16 sSnorlaxTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, @@ -8254,11 +8002,9 @@ static const u16 sSnorlaxTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -8282,7 +8028,6 @@ static const u16 sSnorlaxTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -8290,7 +8035,6 @@ static const u16 sSnorlaxTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -8304,20 +8048,17 @@ static const u16 sArticunoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -8325,11 +8066,9 @@ static const u16 sArticunoTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -8338,22 +8077,24 @@ static const u16 sArticunoTeachableLearnset[] = { #if P_GALARIAN_FORMS static const u16 sArticunoGalarianTeachableLearnset[] = { MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_STEEL_WING, + MOVE_SUNNY_DAY, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -8367,19 +8108,16 @@ static const u16 sZapdosTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HAIL, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STEEL_WING, MOVE_SUNNY_DAY, @@ -8388,11 +8126,9 @@ static const u16 sZapdosTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -8401,6 +8137,7 @@ static const u16 sZapdosTeachableLearnset[] = { #if P_GALARIAN_FORMS static const u16 sZapdosGalarianTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_BULK_UP, MOVE_FACADE, @@ -8408,16 +8145,19 @@ static const u16 sZapdosGalarianTeachableLearnset[] = { MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, MOVE_ROCK_SMASH, + MOVE_SANDSTORM, MOVE_STEEL_WING, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -8432,31 +8172,25 @@ static const u16 sMoltresTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -8464,19 +8198,23 @@ static const u16 sMoltresTeachableLearnset[] = { #if P_GALARIAN_FORMS static const u16 sMoltresGalarianTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_FACADE, MOVE_FLY, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, MOVE_SAFEGUARD, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_STEEL_WING, + MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -8491,9 +8229,7 @@ static const u16 sDratiniTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -8502,9 +8238,7 @@ static const u16 sDratiniTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_SURF, @@ -8517,10 +8251,8 @@ static const u16 sDratiniTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -8534,9 +8266,7 @@ static const u16 sDragonairTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -8545,9 +8275,7 @@ static const u16 sDragonairTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_SURF, @@ -8560,10 +8288,8 @@ static const u16 sDragonairTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -8585,9 +8311,7 @@ static const u16 sDragoniteTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLY, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -8596,13 +8320,11 @@ static const u16 sDragoniteTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STEEL_WING, MOVE_STRENGTH, @@ -8621,12 +8343,13 @@ static const u16 sDragoniteTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -8650,9 +8373,7 @@ static const u16 sMewtwoTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -8662,12 +8383,10 @@ static const u16 sMewtwoTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -8693,14 +8412,12 @@ static const u16 sMewtwoTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -8724,17 +8441,13 @@ static const u16 sChikoritaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -8743,11 +8456,9 @@ static const u16 sChikoritaTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -8760,18 +8471,14 @@ static const u16 sBayleefTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -8781,11 +8488,9 @@ static const u16 sBayleefTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -8799,19 +8504,15 @@ static const u16 sMeganiumTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -8821,11 +8522,9 @@ static const u16 sMeganiumTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -8842,26 +8541,21 @@ static const u16 sCyndaquilTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_ROAR, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -8878,16 +8572,12 @@ static const u16 sQuilavaTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -8896,12 +8586,10 @@ static const u16 sQuilavaTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -8919,18 +8607,15 @@ static const u16 sTyphlosionTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -8945,14 +8630,12 @@ static const u16 sTyphlosionTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -8961,6 +8644,35 @@ static const u16 sTyphlosionTeachableLearnset[] = { #if P_HISUIAN_FORMS static const u16 sTyphlosionHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -8979,18 +8691,15 @@ static const u16 sTotodileTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SURF, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -9003,13 +8712,11 @@ static const u16 sTotodileTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -9027,21 +8734,18 @@ static const u16 sCroconawTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -9055,13 +8759,11 @@ static const u16 sCroconawTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -9080,22 +8782,19 @@ static const u16 sFeraligatrTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -9109,13 +8808,11 @@ static const u16 sFeraligatrTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -9125,6 +8822,7 @@ static const u16 sFeraligatrTeachableLearnset[] = { #if P_FAMILY_SENTRET static const u16 sSentretTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BLIZZARD, MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DIG, @@ -9132,21 +8830,18 @@ static const u16 sSentretTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_THIEF, + MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, @@ -9158,12 +8853,10 @@ static const u16 sSentretTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -9180,17 +8873,13 @@ static const u16 sFurretTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -9210,12 +8899,10 @@ static const u16 sFurretTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -9227,20 +8914,18 @@ static const u16 sFurretTeachableLearnset[] = { static const u16 sHoothootTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -9248,12 +8933,10 @@ static const u16 sHoothootTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -9262,34 +8945,31 @@ static const u16 sHoothootTeachableLearnset[] = { static const u16 sNoctowlTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -9306,16 +8986,12 @@ static const u16 sLedybaTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -9326,11 +9002,9 @@ static const u16 sLedybaTeachableLearnset[] = { MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -9347,33 +9021,28 @@ static const u16 sLedianTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_COUNTER, MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -9389,14 +9058,10 @@ static const u16 sSpinarakTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -9405,10 +9070,8 @@ static const u16 sSpinarakTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -9419,15 +9082,11 @@ static const u16 sAriadosTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -9436,10 +9095,8 @@ static const u16 sAriadosTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -9454,15 +9111,11 @@ static const u16 sChinchouTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SURF, MOVE_THUNDER, @@ -9473,10 +9126,8 @@ static const u16 sChinchouTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -9489,16 +9140,12 @@ static const u16 sLanturnTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SURF, MOVE_THUNDER, @@ -9509,10 +9156,8 @@ static const u16 sLanturnTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -9521,24 +9166,22 @@ static const u16 sLanturnTeachableLearnset[] = { #if P_FAMILY_TOGEPI static const u16 sTogepiTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -9554,7 +9197,6 @@ static const u16 sTogepiTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, @@ -9562,7 +9204,6 @@ static const u16 sTogepiTeachableLearnset[] = { MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SOFT_BOILED, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -9573,6 +9214,7 @@ static const u16 sTogeticTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, @@ -9580,8 +9222,6 @@ static const u16 sTogeticTeachableLearnset[] = { MOVE_FLASH, MOVE_FLY, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -9589,10 +9229,8 @@ static const u16 sTogeticTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -9609,7 +9247,6 @@ static const u16 sTogeticTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, @@ -9617,7 +9254,6 @@ static const u16 sTogeticTeachableLearnset[] = { MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SOFT_BOILED, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -9629,6 +9265,7 @@ static const u16 sTogekissTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, @@ -9636,8 +9273,6 @@ static const u16 sTogekissTeachableLearnset[] = { MOVE_FLASH, MOVE_FLY, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -9645,10 +9280,8 @@ static const u16 sTogekissTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -9656,14 +9289,18 @@ static const u16 sTogekissTeachableLearnset[] = { MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -9680,17 +9317,13 @@ static const u16 sNatuTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -9701,11 +9334,9 @@ static const u16 sNatuTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -9720,9 +9351,7 @@ static const u16 sXatuTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -9730,8 +9359,6 @@ static const u16 sXatuTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -9742,11 +9369,9 @@ static const u16 sXatuTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -9757,21 +9382,19 @@ static const u16 sXatuTeachableLearnset[] = { #if P_FAMILY_MAREEP static const u16 sMareepTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -9779,10 +9402,8 @@ static const u16 sMareepTeachableLearnset[] = { MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -9792,23 +9413,23 @@ static const u16 sMareepTeachableLearnset[] = { static const u16 sFlaaffyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -9819,13 +9440,12 @@ static const u16 sFlaaffyTeachableLearnset[] = { MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -9836,24 +9456,24 @@ static const u16 sFlaaffyTeachableLearnset[] = { static const u16 sAmpharosTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -9864,13 +9484,12 @@ static const u16 sAmpharosTeachableLearnset[] = { MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -9886,17 +9505,13 @@ static const u16 sAzurillTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -9906,12 +9521,10 @@ static const u16 sAzurillTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -9927,18 +9540,14 @@ static const u16 sMarillTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -9953,13 +9562,12 @@ static const u16 sMarillTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -9974,9 +9582,7 @@ static const u16 sAzumarillTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -9984,9 +9590,7 @@ static const u16 sAzumarillTeachableLearnset[] = { MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -10001,13 +9605,12 @@ static const u16 sAzumarillTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -10022,30 +9625,27 @@ static const u16 sBonslyTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, + MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -10060,15 +9660,12 @@ static const u16 sSudowoodoTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -10086,7 +9683,6 @@ static const u16 sSudowoodoTeachableLearnset[] = { MOVE_ICE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -10094,7 +9690,6 @@ static const u16 sSudowoodoTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -10109,25 +9704,22 @@ static const u16 sHoppipTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -10140,25 +9732,22 @@ static const u16 sSkiploomTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -10171,26 +9760,23 @@ static const u16 sJumpluffTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -10207,15 +9793,11 @@ static const u16 sAipomTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -10241,12 +9823,10 @@ static const u16 sAipomTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -10264,16 +9844,12 @@ static const u16 sAmbipomTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -10286,15 +9862,17 @@ static const u16 sAmbipomTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -10312,25 +9890,20 @@ static const u16 sSunkernTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -10343,26 +9916,21 @@ static const u16 sSunfloraTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -10376,14 +9944,10 @@ static const u16 sYanmaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, @@ -10393,12 +9957,12 @@ static const u16 sYanmaTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -10409,30 +9973,27 @@ static const u16 sYanmegaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_GEN_4_CROSS_EVOS @@ -10448,19 +10009,16 @@ static const u16 sWooperTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SURF, MOVE_TOXIC, @@ -10474,12 +10032,11 @@ static const u16 sWooperTeachableLearnset[] = { MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -10495,21 +10052,17 @@ static const u16 sQuagsireTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SURF, @@ -10527,105 +10080,63 @@ static const u16 sQuagsireTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #if P_PALDEAN_FORMS static const u16 sWooperPaldeanTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_AMNESIA, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CHILLING_WATER, MOVE_DIG, - MOVE_EARTH_POWER, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, - MOVE_LIQUIDATION, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, - MOVE_SPIKES, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_TOXIC, - MOVE_TRAILBLAZE, - MOVE_WATER_PULSE, MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sClodsireTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_AMNESIA, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CHILLING_WATER, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_GIGA_IMPACT, - MOVE_GUNK_SHOT, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, - MOVE_IRON_HEAD, - MOVE_LIQUIDATION, - MOVE_LOW_KICK, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_POISON_JAB, - MOVE_POISON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, - MOVE_SPIKES, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_TOXIC_SPIKES, - MOVE_TRAILBLAZE, - MOVE_VENOSHOCK, + MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_PALDEAN_FORMS @@ -10639,14 +10150,11 @@ static const u16 sMurkrowTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_STEEL_WING, @@ -10659,12 +10167,10 @@ static const u16 sMurkrowTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -10679,15 +10185,11 @@ static const u16 sHonchkrowTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_STEEL_WING, @@ -10696,6 +10198,7 @@ static const u16 sHonchkrowTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, @@ -10703,7 +10206,6 @@ static const u16 sHonchkrowTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -10720,14 +10222,11 @@ static const u16 sMisdreavusTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -10744,11 +10243,9 @@ static const u16 sMisdreavusTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -10763,15 +10260,11 @@ static const u16 sMismagiusTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -10789,7 +10282,6 @@ static const u16 sMismagiusTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -10800,7 +10292,6 @@ static const u16 sMismagiusTeachableLearnset[] = { #if P_FAMILY_UNOWN static const u16 sUnownTeachableLearnset[] = { - MOVE_HIDDEN_POWER, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_UNOWN @@ -10829,8 +10320,7 @@ static const u16 sGirafarigTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -10838,9 +10328,7 @@ static const u16 sGirafarigTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -10854,12 +10342,10 @@ static const u16 sGirafarigTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -10868,59 +10354,30 @@ static const u16 sGirafarigTeachableLearnset[] = { #if P_GEN_9_CROSS_EVOS static const u16 sFarigirafTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_AMNESIA, - MOVE_BATON_PASS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, MOVE_CALM_MIND, - MOVE_CHARGE_BEAM, - MOVE_CONFUSE_RAY, - MOVE_CRUNCH, - MOVE_DAZZLING_GLEAM, MOVE_EARTHQUAKE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FOUL_PLAY, - MOVE_GIGA_IMPACT, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_IMPRISON, - MOVE_IRON_HEAD, MOVE_LIGHT_SCREEN, - MOVE_LOW_KICK, - MOVE_NASTY_PLOT, - MOVE_NIGHT_SHADE, MOVE_PROTECT, - MOVE_PSYBEAM, MOVE_PSYCHIC, - MOVE_PSYCHIC_FANGS, - MOVE_PSYCHIC_TERRAIN, - MOVE_PSYSHOCK, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, + MOVE_ROAR, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, - MOVE_SLEEP_TALK, - MOVE_STOMPING_TANTRUM, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_WAVE, - MOVE_TRAILBLAZE, - MOVE_TRICK, - MOVE_TRICK_ROOM, - MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; #endif //P_GEN_9_CROSS_EVOS @@ -10933,18 +10390,15 @@ static const u16 sPinecoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -10955,12 +10409,10 @@ static const u16 sPinecoTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -10972,19 +10424,16 @@ static const u16 sForretressTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -10995,13 +10444,13 @@ static const u16 sForretressTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_PINECO @@ -11017,17 +10466,15 @@ static const u16 sDunsparceTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -11044,14 +10491,12 @@ static const u16 sDunsparceTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -11059,65 +10504,36 @@ static const u16 sDunsparceTeachableLearnset[] = { #if P_GEN_9_CROSS_EVOS static const u16 sDudunsparceTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_AIR_SLASH, - MOVE_AMNESIA, - MOVE_BATON_PASS, MOVE_BLIZZARD, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, MOVE_CALM_MIND, - MOVE_CHILLING_WATER, MOVE_DIG, - MOVE_DRAGON_TAIL, - MOVE_DRILL_RUN, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, - MOVE_HEX, - MOVE_HURRICANE, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, MOVE_ICE_BEAM, - MOVE_ICE_SPINNER, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_OUTRAGE, - MOVE_POISON_JAB, - MOVE_POISON_TAIL, - MOVE_POUNCE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, - MOVE_SMART_STRIKE, MOVE_SOLAR_BEAM, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAILWIND, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, - MOVE_WILD_CHARGE, - MOVE_ZEN_HEADBUTT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_GEN_9_CROSS_EVOS @@ -11133,17 +10549,13 @@ static const u16 sGligarTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STEEL_WING, MOVE_STRENGTH, @@ -11157,11 +10569,10 @@ static const u16 sGligarTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -11178,18 +10589,14 @@ static const u16 sGliscorTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STEEL_WING, MOVE_STRENGTH, @@ -11198,13 +10605,14 @@ static const u16 sGliscorTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -11225,17 +10633,13 @@ static const u16 sSnubbullTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -11260,12 +10664,10 @@ static const u16 sSnubbullTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -11283,8 +10685,6 @@ static const u16 sGranbullTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, @@ -11292,11 +10692,9 @@ static const u16 sGranbullTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -11321,13 +10719,11 @@ static const u16 sGranbullTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -11342,15 +10738,11 @@ static const u16 sQwilfishTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -11364,11 +10756,9 @@ static const u16 sQwilfishTeachableLearnset[] = { MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -11378,10 +10768,49 @@ static const u16 sQwilfishTeachableLearnset[] = { #if P_HISUIAN_FORMS static const u16 sQwilfishHisuianTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_FACADE, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sOverqwilTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -11395,16 +10824,12 @@ static const u16 sShuckleTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -11413,13 +10838,11 @@ static const u16 sShuckleTeachableLearnset[] = { MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -11432,22 +10855,19 @@ static const u16 sHeracrossTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULK_UP, MOVE_BULLET_SEED, + MOVE_CALM_MIND, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -11457,12 +10877,10 @@ static const u16 sHeracrossTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -11481,18 +10899,14 @@ static const u16 sSneaselTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_STRENGTH, @@ -11502,6 +10916,7 @@ static const u16 sSneaselTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_WATER_PULSE, MOVE_COUNTER, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, @@ -11511,12 +10926,12 @@ static const u16 sSneaselTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -11535,9 +10950,7 @@ static const u16 sWeavileTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -11545,9 +10958,7 @@ static const u16 sWeavileTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_STRENGTH, @@ -11557,16 +10968,20 @@ static const u16 sWeavileTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_COUNTER, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -11576,10 +10991,60 @@ static const u16 sWeavileTeachableLearnset[] = { #if P_HISUIAN_FORMS static const u16 sSneaselHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sSneaslerTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -11597,16 +11062,12 @@ static const u16 sTeddiursaTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -11625,14 +11086,12 @@ static const u16 sTeddiursaTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -11651,17 +11110,13 @@ static const u16 sUrsaringTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -11680,14 +11135,12 @@ static const u16 sUrsaringTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -11697,10 +11150,71 @@ static const u16 sUrsaringTeachableLearnset[] = { #if P_GEN_8_CROSS_EVOS static const u16 sUrsalunaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; static const u16 sUrsalunaBloodmoonTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; #endif //P_GEN_8_CROSS_EVOS @@ -11710,33 +11224,29 @@ static const u16 sUrsalunaBloodmoonTeachableLearnset[] = { static const u16 sSlugmaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -11748,19 +11258,15 @@ static const u16 sMagcargoTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -11770,13 +11276,11 @@ static const u16 sMagcargoTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -11790,21 +11294,17 @@ static const u16 sSwinubTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_TOXIC, MOVE_BODY_SLAM, @@ -11812,12 +11312,10 @@ static const u16 sSwinubTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -11829,9 +11327,7 @@ static const u16 sPiloswineTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -11839,12 +11335,10 @@ static const u16 sPiloswineTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_TOXIC, MOVE_BODY_SLAM, @@ -11852,12 +11346,10 @@ static const u16 sPiloswineTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -11870,9 +11362,7 @@ static const u16 sMamoswineTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -11880,21 +11370,21 @@ static const u16 sMamoswineTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, + MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -11910,9 +11400,7 @@ static const u16 sCorsolaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -11920,12 +11408,10 @@ static const u16 sCorsolaTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -11938,13 +11424,11 @@ static const u16 sCorsolaTeachableLearnset[] = { MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -11979,7 +11463,6 @@ static const u16 sCorsolaGalarianTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -12006,13 +11489,13 @@ static const u16 sCursolaTeachableLearnset[] = { MOVE_SHADOW_BALL, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_GALARIAN_FORMS @@ -12028,16 +11511,12 @@ static const u16 sRemoraidTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_THIEF, @@ -12048,11 +11527,9 @@ static const u16 sRemoraidTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -12068,16 +11545,12 @@ static const u16 sOctilleryTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_SURF, @@ -12089,12 +11562,10 @@ static const u16 sOctilleryTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -12112,15 +11583,13 @@ static const u16 sDelibirdTeachableLearnset[] = { MOVE_FACADE, MOVE_FLY, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_STEEL_WING, MOVE_THIEF, MOVE_TOXIC, MOVE_WATER_PULSE, @@ -12132,13 +11601,11 @@ static const u16 sDelibirdTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -12155,26 +11622,22 @@ static const u16 sMantykeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -12190,17 +11653,13 @@ static const u16 sMantineTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -12209,12 +11668,10 @@ static const u16 sMantineTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -12230,16 +11687,13 @@ static const u16 sSkarmoryTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -12251,12 +11705,10 @@ static const u16 sSkarmoryTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -12271,16 +11723,13 @@ static const u16 sHoundourTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -12295,11 +11744,9 @@ static const u16 sHoundourTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -12311,17 +11758,14 @@ static const u16 sHoundoomTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -12337,11 +11781,9 @@ static const u16 sHoundoomTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -12351,71 +11793,65 @@ static const u16 sHoundoomTeachableLearnset[] = { #if P_FAMILY_PHANPY static const u16 sPhanpyTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sDonphanTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -12425,12 +11861,12 @@ static const u16 sDonphanTeachableLearnset[] = { static const u16 sStantlerTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -12438,9 +11874,7 @@ static const u16 sStantlerTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -12454,12 +11888,10 @@ static const u16 sStantlerTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -12468,6 +11900,33 @@ static const u16 sStantlerTeachableLearnset[] = { #if P_GEN_8_CROSS_EVOS static const u16 sWyrdeerTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROAR, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_GEN_8_CROSS_EVOS @@ -12488,19 +11947,15 @@ static const u16 sMiltankTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -12523,7 +11978,6 @@ static const u16 sMiltankTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -12531,7 +11985,6 @@ static const u16 sMiltankTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -12547,8 +12000,6 @@ static const u16 sRaikouTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -12556,11 +12007,9 @@ static const u16 sRaikouTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STRENGTH, @@ -12571,12 +12020,10 @@ static const u16 sRaikouTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -12594,8 +12041,6 @@ static const u16 sEnteiTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, @@ -12603,11 +12048,9 @@ static const u16 sEnteiTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -12616,12 +12059,10 @@ static const u16 sEnteiTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -12637,9 +12078,7 @@ static const u16 sSuicuneTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -12647,11 +12086,9 @@ static const u16 sSuicuneTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SUNNY_DAY, MOVE_SURF, @@ -12662,12 +12099,10 @@ static const u16 sSuicuneTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -12682,18 +12117,14 @@ static const u16 sLarvitarTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TORMENT, @@ -12701,35 +12132,30 @@ static const u16 sLarvitarTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sPupitarTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TORMENT, @@ -12737,12 +12163,10 @@ static const u16 sPupitarTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -12761,20 +12185,16 @@ static const u16 sTyranitarTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -12793,15 +12213,14 @@ static const u16 sTyranitarTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, + MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -12820,10 +12239,8 @@ static const u16 sLugiaTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -12833,12 +12250,10 @@ static const u16 sLugiaTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -12856,12 +12271,10 @@ static const u16 sLugiaTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -12880,9 +12293,7 @@ static const u16 sHoOhTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, @@ -12891,12 +12302,10 @@ static const u16 sHoOhTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -12906,15 +12315,14 @@ static const u16 sHoOhTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -12930,9 +12338,7 @@ static const u16 sCelebiTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -12940,10 +12346,8 @@ static const u16 sCelebiTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -12956,12 +12360,10 @@ static const u16 sCelebiTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -12982,20 +12384,17 @@ static const u16 sTreeckoTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -13005,13 +12404,11 @@ static const u16 sTreeckoTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -13030,20 +12427,17 @@ static const u16 sGrovyleTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -13053,13 +12447,11 @@ static const u16 sGrovyleTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -13080,22 +12472,19 @@ static const u16 sSceptileTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -13105,13 +12494,11 @@ static const u16 sSceptileTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -13130,15 +12517,11 @@ static const u16 sTorchicTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -13148,13 +12531,11 @@ static const u16 sTorchicTeachableLearnset[] = { MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -13173,17 +12554,14 @@ static const u16 sCombuskenTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -13194,13 +12572,11 @@ static const u16 sCombuskenTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -13221,20 +12597,17 @@ static const u16 sBlazikenTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -13245,13 +12618,11 @@ static const u16 sBlazikenTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -13268,18 +12639,15 @@ static const u16 sMudkipTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -13291,13 +12659,11 @@ static const u16 sMudkipTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -13311,18 +12677,16 @@ static const u16 sMarshtompTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, + MOVE_FOCUS_PUNCH, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -13338,14 +12702,12 @@ static const u16 sMarshtompTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -13354,26 +12716,23 @@ static const u16 sSwampertTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, + MOVE_BULK_UP, MOVE_DIG, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -13389,14 +12748,12 @@ static const u16 sSwampertTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -13408,16 +12765,12 @@ static const u16 sPoochyenaTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_SUNNY_DAY, @@ -13429,12 +12782,10 @@ static const u16 sPoochyenaTeachableLearnset[] = { MOVE_COUNTER, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -13444,17 +12795,13 @@ static const u16 sMightyenaTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_STRENGTH, @@ -13467,12 +12814,10 @@ static const u16 sMightyenaTeachableLearnset[] = { MOVE_COUNTER, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -13486,16 +12831,12 @@ static const u16 sZigzagoonTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, @@ -13511,12 +12852,10 @@ static const u16 sZigzagoonTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -13530,18 +12869,14 @@ static const u16 sLinooneTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STRENGTH, @@ -13558,12 +12893,10 @@ static const u16 sLinooneTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -13595,7 +12928,6 @@ static const u16 sZigzagoonGalarianTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -13626,7 +12958,6 @@ static const u16 sLinooneGalarianTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -13663,7 +12994,6 @@ static const u16 sObstagoonTeachableLearnset[] = { MOVE_MEGA_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -13688,16 +13018,12 @@ static const u16 sBeautiflyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -13705,10 +13031,8 @@ static const u16 sBeautiflyTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -13724,16 +13048,12 @@ static const u16 sDustoxTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -13742,10 +13062,8 @@ static const u16 sDustoxTeachableLearnset[] = { MOVE_TOXIC, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -13760,16 +13078,12 @@ static const u16 sLotadTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_SURF, @@ -13781,10 +13095,8 @@ static const u16 sLotadTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -13799,65 +13111,13 @@ static const u16 sLombreTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, - MOVE_SOLAR_BEAM, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_SURF, - MOVE_THIEF, - MOVE_TOXIC, - MOVE_WATERFALL, - MOVE_WATER_PULSE, - MOVE_BODY_SLAM, - MOVE_DOUBLE_EDGE, - MOVE_DYNAMIC_PUNCH, - MOVE_ENDURE, - MOVE_FIRE_PUNCH, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWORDS_DANCE, - MOVE_THUNDER_PUNCH, - MOVE_UNAVAILABLE, -}; - -static const u16 sLudicoloTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_BULLET_SEED, - MOVE_DIVE, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_GIGA_DRAIN, - MOVE_HAIL, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -13877,13 +13137,58 @@ static const u16 sLudicoloTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sLudicoloTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -13898,14 +13203,11 @@ static const u16 sSeedotTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -13915,11 +13217,9 @@ static const u16 sSeedotTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -13934,16 +13234,13 @@ static const u16 sNuzleafTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -13958,14 +13255,12 @@ static const u16 sNuzleafTeachableLearnset[] = { MOVE_EXPLOSION, MOVE_FURY_CUTTER, MOVE_MEGA_KICK, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -13982,20 +13277,18 @@ static const u16 sShiftryTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, @@ -14007,14 +13300,12 @@ static const u16 sShiftryTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_MEGA_KICK, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -14029,13 +13320,9 @@ static const u16 sTaillowTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -14043,11 +13330,9 @@ static const u16 sTaillowTeachableLearnset[] = { MOVE_COUNTER, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -14059,14 +13344,10 @@ static const u16 sSwellowTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -14074,11 +13355,9 @@ static const u16 sSwellowTeachableLearnset[] = { MOVE_COUNTER, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -14093,28 +13372,24 @@ static const u16 sWingullTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STEEL_WING, + MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -14127,30 +13402,26 @@ static const u16 sPelipperTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STEEL_WING, MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -14164,17 +13435,14 @@ static const u16 sRaltsTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -14193,12 +13461,13 @@ static const u16 sRaltsTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -14212,17 +13481,15 @@ static const u16 sKirliaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -14241,12 +13508,13 @@ static const u16 sKirliaTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -14260,18 +13528,15 @@ static const u16 sGardevoirTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -14290,12 +13555,13 @@ static const u16 sGardevoirTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -14316,20 +13582,17 @@ static const u16 sGalladeTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -14341,17 +13604,21 @@ static const u16 sGalladeTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -14369,30 +13636,26 @@ static const u16 sSurskitTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -14405,31 +13668,27 @@ static const u16 sMasquerainTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -14444,14 +13703,11 @@ static const u16 sShroomishTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_SOLAR_BEAM, @@ -14460,37 +13716,35 @@ static const u16 sShroomishTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sBreloomTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, MOVE_BULLET_SEED, MOVE_CUT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_SOLAR_BEAM, @@ -14505,14 +13759,13 @@ static const u16 sBreloomTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -14532,21 +13785,18 @@ static const u16 sSlakothTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -14562,13 +13812,12 @@ static const u16 sSlakothTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -14581,29 +13830,27 @@ static const u16 sVigorothTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULK_UP, MOVE_CUT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -14619,15 +13866,15 @@ static const u16 sVigorothTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -14638,30 +13885,28 @@ static const u16 sSlakingTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULK_UP, MOVE_CUT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -14677,15 +13922,15 @@ static const u16 sSlakingTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SLAKOTH @@ -14698,14 +13943,10 @@ static const u16 sNincadaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -14713,11 +13954,9 @@ static const u16 sNincadaTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -14730,15 +13969,11 @@ static const u16 sNinjaskTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -14747,11 +13982,9 @@ static const u16 sNinjaskTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -14765,15 +13998,11 @@ static const u16 sShedinjaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -14783,11 +14012,9 @@ static const u16 sShedinjaTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -14801,15 +14028,11 @@ static const u16 sWhismurTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -14827,14 +14050,12 @@ static const u16 sWhismurTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -14849,18 +14070,14 @@ static const u16 sLoudredTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -14881,7 +14098,6 @@ static const u16 sLoudredTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -14889,7 +14105,6 @@ static const u16 sLoudredTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -14904,19 +14119,15 @@ static const u16 sExploudTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -14938,7 +14149,6 @@ static const u16 sExploudTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -14946,7 +14156,6 @@ static const u16 sExploudTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -14963,18 +14172,16 @@ static const u16 sMakuhitaTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -14986,14 +14193,13 @@ static const u16 sMakuhitaTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -15007,19 +14213,17 @@ static const u16 sHariyamaTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -15031,14 +14235,13 @@ static const u16 sHariyamaTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -15050,15 +14253,11 @@ static const u16 sNosepassTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -15075,13 +14274,11 @@ static const u16 sNosepassTeachableLearnset[] = { MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -15094,16 +14291,12 @@ static const u16 sProbopassTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -15112,6 +14305,8 @@ static const u16 sProbopassTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_FIRE_PUNCH, @@ -15121,7 +14316,6 @@ static const u16 sProbopassTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -15139,16 +14333,12 @@ static const u16 sSkittyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -15163,13 +14353,11 @@ static const u16 sSkittyTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -15184,18 +14372,14 @@ static const u16 sDelcattyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -15211,13 +14395,11 @@ static const u16 sDelcattyTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -15230,6 +14412,7 @@ static const u16 sSableyeTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_BULK_UP, MOVE_CALM_MIND, MOVE_CUT, MOVE_DIG, @@ -15237,18 +14420,19 @@ static const u16 sSableyeTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -15269,15 +14453,14 @@ static const u16 sSableyeTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SABLEYE @@ -15291,18 +14474,14 @@ static const u16 sMawileTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -15321,14 +14500,12 @@ static const u16 sMawileTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -15345,18 +14522,14 @@ static const u16 sAronTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -15367,13 +14540,11 @@ static const u16 sAronTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -15386,18 +14557,14 @@ static const u16 sLaironTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -15408,13 +14575,11 @@ static const u16 sLaironTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -15433,20 +14598,16 @@ static const u16 sAggronTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -15469,14 +14630,12 @@ static const u16 sAggronTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -15486,6 +14645,7 @@ static const u16 sAggronTeachableLearnset[] = { #if P_FAMILY_MEDITITE static const u16 sMedititeTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -15494,21 +14654,20 @@ static const u16 sMedititeTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -15521,14 +14680,12 @@ static const u16 sMedititeTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -15536,6 +14693,7 @@ static const u16 sMedititeTeachableLearnset[] = { }; static const u16 sMedichamTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -15544,8 +14702,6 @@ static const u16 sMedichamTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -15553,13 +14709,14 @@ static const u16 sMedichamTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -15572,14 +14729,12 @@ static const u16 sMedichamTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -15594,16 +14749,12 @@ static const u16 sElectrikeTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_THIEF, @@ -15613,11 +14764,9 @@ static const u16 sElectrikeTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -15630,8 +14779,6 @@ static const u16 sManectricTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -15639,9 +14786,7 @@ static const u16 sManectricTeachableLearnset[] = { MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_THIEF, @@ -15651,11 +14796,9 @@ static const u16 sManectricTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -15669,16 +14812,13 @@ static const u16 sPlusleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -15691,13 +14831,11 @@ static const u16 sPlusleTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -15712,15 +14850,11 @@ static const u16 sMinunTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_THUNDER, MOVE_THUNDERBOLT, @@ -15734,13 +14868,11 @@ static const u16 sMinunTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -15758,19 +14890,16 @@ static const u16 sVolbeatTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, @@ -15785,13 +14914,11 @@ static const u16 sVolbeatTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -15807,15 +14934,11 @@ static const u16 sIllumiseTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -15834,13 +14957,11 @@ static const u16 sIllumiseTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -15858,14 +14979,10 @@ static const u16 sBudewTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -15876,7 +14993,6 @@ static const u16 sBudewTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -15891,14 +15007,10 @@ static const u16 sRoseliaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, @@ -15908,12 +15020,10 @@ static const u16 sRoseliaTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -15928,27 +15038,23 @@ static const u16 sRoseradeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -15963,16 +15069,12 @@ static const u16 sGulpinTeachableLearnset[] = { MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -15980,6 +15082,7 @@ static const u16 sGulpinTeachableLearnset[] = { MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_BODY_SLAM, @@ -15992,34 +15095,31 @@ static const u16 sGulpinTeachableLearnset[] = { MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sSwalotTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -16027,6 +15127,7 @@ static const u16 sSwalotTeachableLearnset[] = { MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_BODY_SLAM, @@ -16039,14 +15140,15 @@ static const u16 sSwalotTeachableLearnset[] = { MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GULPIN @@ -16058,15 +15160,11 @@ static const u16 sCarvanhaTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TAUNT, MOVE_THIEF, @@ -16078,11 +15176,9 @@ static const u16 sCarvanhaTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -16095,19 +15191,15 @@ static const u16 sSharpedoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TAUNT, @@ -16120,11 +15212,9 @@ static const u16 sSharpedoTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -16139,18 +15229,14 @@ static const u16 sWailmerTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -16161,11 +15247,9 @@ static const u16 sWailmerTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -16177,19 +15261,15 @@ static const u16 sWailordTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -16200,11 +15280,9 @@ static const u16 sWailordTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -16219,16 +15297,14 @@ static const u16 sNumelTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -16236,13 +15312,11 @@ static const u16 sNumelTeachableLearnset[] = { MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -16255,18 +15329,15 @@ static const u16 sCameruptTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -16276,13 +15347,11 @@ static const u16 sCameruptTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -16296,17 +15365,14 @@ static const u16 sTorkoalTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -16316,13 +15382,11 @@ static const u16 sTorkoalTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -16335,8 +15399,6 @@ static const u16 sSpoinkTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -16344,8 +15406,6 @@ static const u16 sSpoinkTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -16360,11 +15420,9 @@ static const u16 sSpoinkTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -16375,12 +15433,11 @@ static const u16 sGrumpigTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_CALM_MIND, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -16389,8 +15446,6 @@ static const u16 sGrumpigTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -16411,13 +15466,12 @@ static const u16 sGrumpigTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -16436,17 +15490,13 @@ static const u16 sSpindaTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -16469,7 +15519,6 @@ static const u16 sSpindaTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -16477,7 +15526,6 @@ static const u16 sSpindaTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -16492,17 +15540,13 @@ static const u16 sTrapinchTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -16511,34 +15555,30 @@ static const u16 sTrapinchTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sVibravaTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_DIG, MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_STRENGTH, @@ -16548,12 +15588,10 @@ static const u16 sVibravaTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -16570,18 +15608,14 @@ static const u16 sFlygonTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_STRENGTH, @@ -16592,12 +15626,12 @@ static const u16 sFlygonTeachableLearnset[] = { MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, - MOVE_MIMIC, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -16611,20 +15645,19 @@ static const u16 sCacneaTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULLET_SEED, MOVE_CUT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -16633,13 +15666,12 @@ static const u16 sCacneaTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -16650,22 +15682,23 @@ static const u16 sCacturneTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULLET_SEED, MOVE_CUT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SANDSTORM, - MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, @@ -16675,13 +15708,12 @@ static const u16 sCacturneTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -16695,15 +15727,11 @@ static const u16 sSwabluTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_SUNNY_DAY, @@ -16713,12 +15741,10 @@ static const u16 sSwabluTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -16734,19 +15760,15 @@ static const u16 sAltariaTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_SUNNY_DAY, @@ -16756,12 +15778,10 @@ static const u16 sAltariaTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -16780,24 +15800,22 @@ static const u16 sZangooseTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_SURF, MOVE_TAUNT, MOVE_THIEF, MOVE_THUNDER, @@ -16816,14 +15834,12 @@ static const u16 sZangooseTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -16836,21 +15852,19 @@ static const u16 sZangooseTeachableLearnset[] = { #if P_FAMILY_SEVIPER static const u16 sSeviperTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, @@ -16862,11 +15876,9 @@ static const u16 sSeviperTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -16882,8 +15894,7 @@ static const u16 sLunatoneTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HAIL, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -16892,11 +15903,9 @@ static const u16 sLunatoneTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_TOXIC, @@ -16907,13 +15916,11 @@ static const u16 sLunatoneTeachableLearnset[] = { MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -16929,20 +15936,17 @@ static const u16 sSolrockTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -16954,15 +15958,14 @@ static const u16 sSolrockTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SOLROCK @@ -16975,17 +15978,14 @@ static const u16 sBarboachTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, + MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -16993,50 +15993,48 @@ static const u16 sBarboachTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sWhiscashTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_BARBOACH @@ -17051,21 +16049,18 @@ static const u16 sCorphishTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SURF, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -17075,12 +16070,10 @@ static const u16 sCorphishTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -17096,22 +16089,19 @@ static const u16 sCrawdauntTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SURF, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -17121,12 +16111,10 @@ static const u16 sCrawdauntTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -17142,8 +16130,6 @@ static const u16 sBaltoyTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -17151,11 +16137,9 @@ static const u16 sBaltoyTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -17165,13 +16149,11 @@ static const u16 sBaltoyTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -17183,8 +16165,6 @@ static const u16 sClaydolTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -17193,12 +16173,10 @@ static const u16 sClaydolTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -17209,13 +16187,11 @@ static const u16 sClaydolTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -17228,15 +16204,11 @@ static const u16 sLileepTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -17244,13 +16216,11 @@ static const u16 sLileepTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -17259,21 +16229,18 @@ static const u16 sLileepTeachableLearnset[] = { static const u16 sCradilyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -17282,13 +16249,11 @@ static const u16 sCradilyTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -17304,15 +16269,11 @@ static const u16 sAnorithTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_WATER_PULSE, @@ -17320,12 +16281,10 @@ static const u16 sAnorithTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -17340,17 +16299,13 @@ static const u16 sArmaldoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -17359,13 +16314,11 @@ static const u16 sArmaldoTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -17379,17 +16332,13 @@ static const u16 sFeebasTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -17397,10 +16346,8 @@ static const u16 sFeebasTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -17412,9 +16359,7 @@ static const u16 sMiloticTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -17422,9 +16367,7 @@ static const u16 sMiloticTeachableLearnset[] = { MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -17433,12 +16376,10 @@ static const u16 sMiloticTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -17454,16 +16395,12 @@ static const u16 sCastformTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -17478,11 +16415,9 @@ static const u16 sCastformTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -17504,17 +16439,13 @@ static const u16 sKecleonTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -17540,7 +16471,6 @@ static const u16 sKecleonTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -17548,7 +16478,6 @@ static const u16 sKecleonTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -17564,55 +16493,10 @@ static const u16 sShuppetTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SKILL_SWAP, - MOVE_SNATCH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_BODY_SLAM, - MOVE_DOUBLE_EDGE, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_MIMIC, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sBanetteTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_CALM_MIND, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -17630,13 +16514,48 @@ static const u16 sBanetteTeachableLearnset[] = { MOVE_ENDURE, MOVE_ICY_WIND, MOVE_METRONOME, - MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBanetteTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -17650,15 +16569,11 @@ static const u16 sDuskullTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SNATCH, @@ -17672,11 +16587,9 @@ static const u16 sDuskullTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -17691,18 +16604,14 @@ static const u16 sDusclopsTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SNATCH, @@ -17724,14 +16633,12 @@ static const u16 sDusclopsTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -17748,18 +16655,14 @@ static const u16 sDusknoirTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SNATCH, @@ -17769,18 +16672,22 @@ static const u16 sDusknoirTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -17792,23 +16699,21 @@ static const u16 sTropiusTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BULLET_SEED, + MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_STRENGTH, @@ -17818,11 +16723,9 @@ static const u16 sTropiusTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -17837,17 +16740,13 @@ static const u16 sChinglingTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -17856,6 +16755,7 @@ static const u16 sChinglingTeachableLearnset[] = { MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, @@ -17863,7 +16763,6 @@ static const u16 sChinglingTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -17877,17 +16776,13 @@ static const u16 sChimechoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -17901,13 +16796,12 @@ static const u16 sChimechoTeachableLearnset[] = { MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -17925,20 +16819,16 @@ static const u16 sAbsolTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -17958,13 +16848,11 @@ static const u16 sAbsolTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -17980,17 +16868,13 @@ static const u16 sSnoruntTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_TOXIC, MOVE_WATER_PULSE, @@ -17998,11 +16882,9 @@ static const u16 sSnoruntTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -18014,18 +16896,14 @@ static const u16 sGlalieTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_TAUNT, MOVE_TORMENT, @@ -18037,11 +16915,9 @@ static const u16 sGlalieTeachableLearnset[] = { MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -18053,19 +16929,16 @@ static const u16 sFroslassTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -18075,6 +16948,7 @@ static const u16 sFroslassTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICE_PUNCH, @@ -18084,7 +16958,6 @@ static const u16 sFroslassTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -18100,18 +16973,14 @@ static const u16 sSphealTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -18122,13 +16991,11 @@ static const u16 sSphealTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -18140,19 +17007,15 @@ static const u16 sSealeoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -18163,13 +17026,11 @@ static const u16 sSealeoTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -18181,20 +17042,16 @@ static const u16 sWalreinTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, @@ -18206,14 +17063,13 @@ static const u16 sWalreinTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SPHEAL @@ -18225,15 +17081,11 @@ static const u16 sClamperlTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -18242,10 +17094,8 @@ static const u16 sClamperlTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -18256,17 +17106,13 @@ static const u16 sHuntailTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SURF, MOVE_TOXIC, @@ -18276,11 +17122,9 @@ static const u16 sHuntailTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -18292,18 +17136,14 @@ static const u16 sGorebyssTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SURF, MOVE_TOXIC, @@ -18313,12 +17153,10 @@ static const u16 sGorebyssTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -18334,20 +17172,16 @@ static const u16 sRelicanthTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -18356,13 +17190,11 @@ static const u16 sRelicanthTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -18375,16 +17207,12 @@ static const u16 sLuvdiscTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -18392,11 +17220,9 @@ static const u16 sLuvdiscTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -18414,16 +17240,12 @@ static const u16 sBagonTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -18432,12 +17254,10 @@ static const u16 sBagonTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -18452,16 +17272,12 @@ static const u16 sShelgonTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -18470,13 +17286,11 @@ static const u16 sShelgonTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -18493,18 +17307,14 @@ static const u16 sSalamenceTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -18514,13 +17324,11 @@ static const u16 sSalamenceTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -18540,8 +17348,7 @@ static const u16 sMetangTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -18549,11 +17356,9 @@ static const u16 sMetangTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, @@ -18568,14 +17373,12 @@ static const u16 sMetangTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -18590,8 +17393,7 @@ static const u16 sMetagrossTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -18599,11 +17401,9 @@ static const u16 sMetagrossTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, @@ -18618,14 +17418,12 @@ static const u16 sMetagrossTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -18641,17 +17439,13 @@ static const u16 sRegirockTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -18669,7 +17463,6 @@ static const u16 sRegirockTeachableLearnset[] = { MOVE_ICE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -18677,7 +17470,6 @@ static const u16 sRegirockTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -18693,19 +17485,15 @@ static const u16 sRegiceTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_THUNDER, @@ -18722,7 +17510,6 @@ static const u16 sRegiceTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -18730,7 +17517,6 @@ static const u16 sRegiceTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -18746,18 +17532,14 @@ static const u16 sRegisteelTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -18774,7 +17556,6 @@ static const u16 sRegisteelTeachableLearnset[] = { MOVE_ICE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -18782,7 +17563,6 @@ static const u16 sRegisteelTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -18803,8 +17583,6 @@ static const u16 sLatiasTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -18813,11 +17591,9 @@ static const u16 sLatiasTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -18835,12 +17611,10 @@ static const u16 sLatiasTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -18861,8 +17635,6 @@ static const u16 sLatiosTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -18871,11 +17643,9 @@ static const u16 sLatiosTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -18893,12 +17663,10 @@ static const u16 sLatiosTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -18915,20 +17683,16 @@ static const u16 sKyogreTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SURF, @@ -18942,13 +17706,11 @@ static const u16 sKyogreTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -18969,20 +17731,17 @@ static const u16 sGroudonTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -19000,7 +17759,6 @@ static const u16 sGroudonTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, @@ -19008,7 +17766,6 @@ static const u16 sGroudonTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -19032,8 +17789,6 @@ static const u16 sRayquazaTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -19041,12 +17796,10 @@ static const u16 sRayquazaTeachableLearnset[] = { MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -19062,13 +17815,11 @@ static const u16 sRayquazaTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -19084,8 +17835,6 @@ static const u16 sJirachiTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -19093,10 +17842,8 @@ static const u16 sJirachiTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -19114,13 +17861,13 @@ static const u16 sJirachiTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_METRONOME, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -19139,8 +17886,6 @@ static const u16 sDeoxysNormalTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -19149,11 +17894,9 @@ static const u16 sDeoxysNormalTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -19168,6 +17911,7 @@ static const u16 sDeoxysNormalTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FIRE_PUNCH, @@ -19179,7 +17923,6 @@ static const u16 sDeoxysNormalTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -19196,8 +17939,6 @@ static const u16 sDeoxysAttackTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -19206,11 +17947,9 @@ static const u16 sDeoxysAttackTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -19224,6 +17963,26 @@ static const u16 sDeoxysAttackTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -19236,8 +17995,6 @@ static const u16 sDeoxysDefenseTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -19246,11 +18003,9 @@ static const u16 sDeoxysDefenseTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -19264,6 +18019,26 @@ static const u16 sDeoxysDefenseTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -19276,8 +18051,6 @@ static const u16 sDeoxysSpeedTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -19286,11 +18059,9 @@ static const u16 sDeoxysSpeedTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -19304,6 +18075,27 @@ static const u16 sDeoxysSpeedTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_DEOXYS @@ -19316,18 +18108,15 @@ static const u16 sTurtwigTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -19338,7 +18127,6 @@ static const u16 sTurtwigTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -19351,27 +18139,25 @@ static const u16 sGrotleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -19385,32 +18171,29 @@ static const u16 sTorterraTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -19430,28 +18213,29 @@ static const u16 sChimcharTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, + MOVE_ROCK_TOMB, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -19471,29 +18255,29 @@ static const u16 sMonfernoTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -19515,32 +18299,33 @@ static const u16 sInfernapeTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -19560,27 +18345,26 @@ static const u16 sPiplupTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, + MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -19594,29 +18378,27 @@ static const u16 sPrinplupTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -19631,34 +18413,33 @@ static const u16 sEmpoleonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -19671,13 +18452,9 @@ static const u16 sStarlyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -19687,7 +18464,6 @@ static const u16 sStarlyTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -19699,22 +18475,18 @@ static const u16 sStaraviaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -19726,23 +18498,19 @@ static const u16 sStaraptorTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -19757,16 +18525,12 @@ static const u16 sBidoofTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, @@ -19784,7 +18548,6 @@ static const u16 sBidoofTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -19801,17 +18564,13 @@ static const u16 sBibarelTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STRENGTH, @@ -19825,6 +18584,7 @@ static const u16 sBibarelTeachableLearnset[] = { MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, @@ -19832,7 +18592,6 @@ static const u16 sBibarelTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -19856,15 +18615,12 @@ static const u16 sKricketuneTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_GIGA_DRAIN, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -19874,7 +18630,6 @@ static const u16 sKricketuneTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -19887,28 +18642,25 @@ static const u16 sShinxTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -19920,28 +18672,25 @@ static const u16 sLuxioTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -19953,29 +18702,27 @@ static const u16 sLuxrayTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -19993,19 +18740,15 @@ static const u16 sCranidosTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -20013,6 +18756,7 @@ static const u16 sCranidosTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, @@ -20020,7 +18764,6 @@ static const u16 sCranidosTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -20034,25 +18777,22 @@ static const u16 sRampardosTeachableLearnset[] = { MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -20061,13 +18801,14 @@ static const u16 sRampardosTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -20085,19 +18826,15 @@ static const u16 sShieldonTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -20114,7 +18851,6 @@ static const u16 sShieldonTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -20128,20 +18864,17 @@ static const u16 sBastiodonTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -20150,12 +18883,14 @@ static const u16 sBastiodonTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -20163,7 +18898,6 @@ static const u16 sBastiodonTeachableLearnset[] = { #if P_FAMILY_BURMY static const u16 sBurmyTeachableLearnset[] = { - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_SNORE, MOVE_UNAVAILABLE, @@ -20172,20 +18906,17 @@ static const u16 sBurmyTeachableLearnset[] = { static const u16 sWormadamPlantCloakTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -20197,7 +18928,6 @@ static const u16 sWormadamPlantCloakTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -20209,20 +18939,18 @@ static const u16 sWormadamSandyCloakTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_GIGA_DRAIN, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, @@ -20233,28 +18961,26 @@ static const u16 sWormadamSandyCloakTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sWormadamTrashCloakTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_GIGA_DRAIN, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, @@ -20263,7 +18989,6 @@ static const u16 sWormadamTrashCloakTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -20274,17 +18999,13 @@ static const u16 sMothimTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -20297,7 +19018,6 @@ static const u16 sMothimTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20307,6 +19027,7 @@ static const u16 sMothimTeachableLearnset[] = { #if P_FAMILY_COMBEE static const u16 sCombeeTeachableLearnset[] = { MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20319,16 +19040,13 @@ static const u16 sVespiquenTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, MOVE_ENDURE, @@ -20336,7 +19054,6 @@ static const u16 sVespiquenTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20345,22 +19062,22 @@ static const u16 sVespiquenTeachableLearnset[] = { #if P_FAMILY_PACHIRISU static const u16 sPachirisuTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -20370,7 +19087,6 @@ static const u16 sPachirisuTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -20390,20 +19106,19 @@ static const u16 sBuizelTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -20414,7 +19129,6 @@ static const u16 sBuizelTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20430,34 +19144,34 @@ static const u16 sFloatzelTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, + MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20471,23 +19185,19 @@ static const u16 sCherubiTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -20499,23 +19209,20 @@ static const u16 sCherrimTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -20529,26 +19236,25 @@ static const u16 sShellosTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_SURF, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -20562,19 +19268,15 @@ static const u16 sGastrodonTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SURF, @@ -20582,13 +19284,13 @@ static const u16 sGastrodonTeachableLearnset[] = { MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, + MOVE_COUNTER, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -20596,20 +19298,18 @@ static const u16 sGastrodonTeachableLearnset[] = { #if P_FAMILY_DRIFLOON static const u16 sDrifloonTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FLY, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -20628,7 +19328,6 @@ static const u16 sDrifloonTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -20636,6 +19335,7 @@ static const u16 sDrifloonTeachableLearnset[] = { }; static const u16 sDrifblimTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_CUT, @@ -20643,15 +19343,11 @@ static const u16 sDrifblimTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -20660,6 +19356,7 @@ static const u16 sDrifblimTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, @@ -20669,7 +19366,6 @@ static const u16 sDrifblimTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -20685,16 +19381,12 @@ static const u16 sBunearyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -20703,13 +19395,15 @@ static const u16 sBunearyTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -20725,17 +19419,13 @@ static const u16 sLopunnyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -20746,14 +19436,16 @@ static const u16 sLopunnyTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -20771,14 +19463,10 @@ static const u16 sGlameowTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -20790,6 +19478,7 @@ static const u16 sGlameowTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FURY_CUTTER, @@ -20797,7 +19486,6 @@ static const u16 sGlameowTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20811,16 +19499,12 @@ static const u16 sPuruglyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -20833,6 +19517,7 @@ static const u16 sPuruglyTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FURY_CUTTER, @@ -20841,7 +19526,6 @@ static const u16 sPuruglyTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20857,16 +19541,12 @@ static const u16 sStunkyTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -20875,6 +19555,7 @@ static const u16 sStunkyTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, @@ -20882,7 +19563,6 @@ static const u16 sStunkyTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20896,17 +19576,13 @@ static const u16 sSkuntankTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -20916,13 +19592,14 @@ static const u16 sSkuntankTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -20936,24 +19613,21 @@ static const u16 sBronzorTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_PSYCH_UP, @@ -20961,7 +19635,6 @@ static const u16 sBronzorTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -20972,8 +19645,6 @@ static const u16 sBronzongTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -20981,18 +19652,17 @@ static const u16 sBronzongTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, @@ -21001,7 +19671,6 @@ static const u16 sBronzongTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -21014,13 +19683,9 @@ static const u16 sChatotTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -21028,11 +19693,9 @@ static const u16 sChatotTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_ENDURE, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -21046,18 +19709,15 @@ static const u16 sSpiritombTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -21065,13 +19725,13 @@ static const u16 sSpiritombTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -21089,18 +19749,14 @@ static const u16 sGibleTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -21112,9 +19768,9 @@ static const u16 sGibleTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -21129,30 +19785,28 @@ static const u16 sGabiteTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -21168,30 +19822,27 @@ static const u16 sGarchompTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -21201,6 +19852,7 @@ static const u16 sGarchompTeachableLearnset[] = { #if P_FAMILY_RIOLU static const u16 sRioluTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -21209,17 +19861,13 @@ static const u16 sRioluTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -21227,11 +19875,13 @@ static const u16 sRioluTeachableLearnset[] = { MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -21240,6 +19890,7 @@ static const u16 sRioluTeachableLearnset[] = { }; static const u16 sLucarioTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -21249,33 +19900,33 @@ static const u16 sLucarioTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -21291,17 +19942,13 @@ static const u16 sHippopotasTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -21313,7 +19960,6 @@ static const u16 sHippopotasTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -21324,29 +19970,25 @@ static const u16 sHippowdonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -21362,16 +20004,12 @@ static const u16 sSkorupiTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, @@ -21385,7 +20023,6 @@ static const u16 sSkorupiTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -21401,18 +20038,14 @@ static const u16 sDrapionTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, @@ -21427,7 +20060,6 @@ static const u16 sDrapionTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -21436,6 +20068,7 @@ static const u16 sDrapionTeachableLearnset[] = { #if P_FAMILY_CROAGUNK static const u16 sCroagunkTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -21444,15 +20077,11 @@ static const u16 sCroagunkTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -21468,17 +20097,19 @@ static const u16 sCroagunkTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; static const u16 sToxicroakTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -21488,16 +20119,12 @@ static const u16 sToxicroakTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -21507,15 +20134,18 @@ static const u16 sToxicroakTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -21531,14 +20161,10 @@ static const u16 sCarnivineTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -21549,7 +20175,6 @@ static const u16 sCarnivineTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -21564,17 +20189,14 @@ static const u16 sFinneonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SURF, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -21583,31 +20205,28 @@ static const u16 sFinneonTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sLumineonTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SURF, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, @@ -21616,7 +20235,6 @@ static const u16 sLumineonTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -21631,31 +20249,28 @@ static const u16 sSnoverTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -21671,10 +20286,8 @@ static const u16 sAbomasnowTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -21682,24 +20295,25 @@ static const u16 sAbomasnowTeachableLearnset[] = { MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -21711,15 +20325,11 @@ static const u16 sRotomTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SNATCH, @@ -21734,7 +20344,6 @@ static const u16 sRotomTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -21748,9 +20357,7 @@ static const u16 sUxieTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -21759,10 +20366,8 @@ static const u16 sUxieTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -21776,11 +20381,11 @@ static const u16 sUxieTeachableLearnset[] = { MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -21796,8 +20401,6 @@ static const u16 sMespritTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -21807,10 +20410,8 @@ static const u16 sMespritTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -21819,15 +20420,16 @@ static const u16 sMespritTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -21844,8 +20446,6 @@ static const u16 sAzelfTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -21854,10 +20454,8 @@ static const u16 sAzelfTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -21868,16 +20466,17 @@ static const u16 sAzelfTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_METRONOME, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -21900,8 +20499,6 @@ static const u16 sDialgaTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -21909,19 +20506,18 @@ static const u16 sDialgaTeachableLearnset[] = { MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_MUD_SLAP, @@ -21929,7 +20525,6 @@ static const u16 sDialgaTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -21952,21 +20547,17 @@ static const u16 sPalkiaTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -21974,15 +20565,17 @@ static const u16 sPalkiaTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_FURY_CUTTER, + MOVE_ICY_WIND, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -21999,30 +20592,27 @@ static const u16 sHeatranTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -22036,32 +20626,32 @@ static const u16 sRegigigasTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, + MOVE_PROTECT, MOVE_RAIN_DANCE, - MOVE_RETURN, + MOVE_REST, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -22079,19 +20669,15 @@ static const u16 sGiratinaTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STEEL_WING, @@ -22100,6 +20686,7 @@ static const u16 sGiratinaTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FURY_CUTTER, @@ -22108,7 +20695,6 @@ static const u16 sGiratinaTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -22123,8 +20709,6 @@ static const u16 sCresseliaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -22133,14 +20717,15 @@ static const u16 sCresseliaTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FURY_CUTTER, @@ -22149,7 +20734,6 @@ static const u16 sCresseliaTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -22160,19 +20744,16 @@ static const u16 sCresseliaTeachableLearnset[] = { #if P_FAMILY_MANAPHY static const u16 sPhioneTeachableLearnset[] = { MOVE_BLIZZARD, + MOVE_CALM_MIND, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, @@ -22183,7 +20764,6 @@ static const u16 sPhioneTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -22196,9 +20776,7 @@ static const u16 sManaphyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -22207,9 +20785,7 @@ static const u16 sManaphyTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SURF, @@ -22222,7 +20798,6 @@ static const u16 sManaphyTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -22240,18 +20815,14 @@ static const u16 sDarkraiTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -22272,7 +20843,6 @@ static const u16 sDarkraiTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -22283,30 +20853,27 @@ static const u16 sDarkraiTeachableLearnset[] = { #if P_FAMILY_SHAYMIN static const u16 sShayminLandTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -22314,23 +20881,29 @@ static const u16 sShayminLandTeachableLearnset[] = { }; static const u16 sShayminSkyTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SHAYMIN @@ -22340,6 +20913,7 @@ static const u16 sArceusTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BLIZZARD, MOVE_BRICK_BREAK, + MOVE_BULK_UP, MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_CUT, @@ -22352,10 +20926,8 @@ static const u16 sArceusTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -22366,13 +20938,11 @@ static const u16 sArceusTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -22380,11 +20950,14 @@ static const u16 sArceusTeachableLearnset[] = { MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_TAUNT, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, MOVE_ENDURE, MOVE_FURY_CUTTER, @@ -22395,7 +20968,6 @@ static const u16 sArceusTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -22412,18 +20984,14 @@ static const u16 sVictiniTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -22436,11 +21004,13 @@ static const u16 sVictiniTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -22451,32 +21021,31 @@ static const u16 sVictiniTeachableLearnset[] = { static const u16 sSnivyTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -22484,32 +21053,31 @@ static const u16 sSnivyTeachableLearnset[] = { static const u16 sServineTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -22517,24 +21085,21 @@ static const u16 sServineTeachableLearnset[] = { static const u16 sSerperiorTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -22542,10 +21107,13 @@ static const u16 sSerperiorTeachableLearnset[] = { MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -22554,21 +21122,18 @@ static const u16 sSerperiorTeachableLearnset[] = { #if P_FAMILY_TEPIG static const u16 sTepigTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -22576,10 +21141,13 @@ static const u16 sTepigTeachableLearnset[] = { MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -22587,34 +21155,35 @@ static const u16 sTepigTeachableLearnset[] = { static const u16 sPigniteTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -22624,36 +21193,36 @@ static const u16 sEmboarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -22670,28 +21239,26 @@ static const u16 sOshawottTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -22700,33 +21267,32 @@ static const u16 sDewottTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DIG, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -22735,41 +21301,65 @@ static const u16 sSamurottTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DIG, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #if P_HISUIAN_FORMS static const u16 sSamurottHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -22783,14 +21373,10 @@ static const u16 sPatratTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, @@ -22798,7 +21384,6 @@ static const u16 sPatratTeachableLearnset[] = { MOVE_TOXIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -22806,6 +21391,7 @@ static const u16 sPatratTeachableLearnset[] = { static const u16 sWatchogTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, @@ -22813,17 +21399,13 @@ static const u16 sWatchogTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STRENGTH, @@ -22837,7 +21419,6 @@ static const u16 sWatchogTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -22853,16 +21434,12 @@ static const u16 sLillipupTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, @@ -22872,7 +21449,6 @@ static const u16 sLillipupTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -22884,16 +21460,12 @@ static const u16 sHerdierTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STRENGTH, @@ -22901,9 +21473,10 @@ static const u16 sHerdierTeachableLearnset[] = { MOVE_SURF, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -22915,17 +21488,13 @@ static const u16 sStoutlandTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STRENGTH, @@ -22934,9 +21503,10 @@ static const u16 sStoutlandTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -22950,14 +21520,10 @@ static const u16 sPurrloinTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_SUNNY_DAY, @@ -22966,11 +21532,12 @@ static const u16 sPurrloinTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -22981,16 +21548,12 @@ static const u16 sLiepardTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_SUNNY_DAY, @@ -22999,11 +21562,12 @@ static const u16 sLiepardTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -23019,16 +21583,12 @@ static const u16 sPansageTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -23037,7 +21597,6 @@ static const u16 sPansageTeachableLearnset[] = { MOVE_TOXIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23045,23 +21604,20 @@ static const u16 sPansageTeachableLearnset[] = { static const u16 sSimisageTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -23071,7 +21627,6 @@ static const u16 sSimisageTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23087,16 +21642,12 @@ static const u16 sPansearTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -23106,7 +21657,6 @@ static const u16 sPansearTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23121,17 +21671,13 @@ static const u16 sSimisearTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -23142,7 +21688,6 @@ static const u16 sSimisearTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23158,18 +21703,14 @@ static const u16 sPanpourTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TAUNT, MOVE_THIEF, @@ -23181,7 +21722,6 @@ static const u16 sPanpourTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23196,19 +21736,15 @@ static const u16 sSimipourTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TAUNT, MOVE_THIEF, @@ -23221,7 +21757,6 @@ static const u16 sSimipourTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23234,18 +21769,14 @@ static const u16 sMunnaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -23253,11 +21784,11 @@ static const u16 sMunnaTeachableLearnset[] = { MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -23270,8 +21801,6 @@ static const u16 sMusharnaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -23279,10 +21808,8 @@ static const u16 sMusharnaTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -23290,12 +21817,13 @@ static const u16 sMusharnaTeachableLearnset[] = { MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -23308,21 +21836,18 @@ static const u16 sPidoveTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -23332,21 +21857,18 @@ static const u16 sTranquillTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -23356,23 +21878,20 @@ static const u16 sUnfezantTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_PIDOVE @@ -23383,25 +21902,23 @@ static const u16 sBlitzleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -23411,26 +21928,28 @@ static const u16 sZebstrikaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -23442,23 +21961,19 @@ static const u16 sRoggenrolaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_TOXIC, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23468,23 +21983,19 @@ static const u16 sBoldoreTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_TOXIC, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23494,25 +22005,21 @@ static const u16 sGigalithTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_TOXIC, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23527,18 +22034,14 @@ static const u16 sWoobatTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -23548,11 +22051,12 @@ static const u16 sWoobatTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -23565,9 +22069,7 @@ static const u16 sSwoobatTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -23575,9 +22077,7 @@ static const u16 sSwoobatTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -23587,11 +22087,12 @@ static const u16 sSwoobatTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -23607,23 +22108,21 @@ static const u16 sDrilburTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -23638,24 +22137,23 @@ static const u16 sExcadrillTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -23674,8 +22172,6 @@ static const u16 sAudinoTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -23685,9 +22181,7 @@ static const u16 sAudinoTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SNATCH, @@ -23697,15 +22191,18 @@ static const u16 sAudinoTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -23722,28 +22219,27 @@ static const u16 sTimburrTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -23757,26 +22253,27 @@ static const u16 sGurdurrTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -23791,27 +22288,29 @@ static const u16 sConkeldurrTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -23823,22 +22322,19 @@ static const u16 sTympoleTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23848,23 +22344,20 @@ static const u16 sPalpitoadTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23873,32 +22366,32 @@ static const u16 sSeismitoadTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -23914,15 +22407,11 @@ static const u16 sThrohTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -23931,11 +22420,12 @@ static const u16 sThrohTeachableLearnset[] = { MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -23952,15 +22442,11 @@ static const u16 sSawkTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -23969,10 +22455,11 @@ static const u16 sSawkTeachableLearnset[] = { MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -23987,15 +22474,12 @@ static const u16 sSewaddleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -24003,7 +22487,6 @@ static const u16 sSewaddleTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24015,22 +22498,19 @@ static const u16 sSwadloonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24038,30 +22518,28 @@ static const u16 sSwadloonTeachableLearnset[] = { static const u16 sLeavannyTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -24073,23 +22551,20 @@ static const u16 sVenipedeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24098,23 +22573,20 @@ static const u16 sWhirlipedeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24126,16 +22598,12 @@ static const u16 sScolipedeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_SOLAR_BEAM, @@ -24144,11 +22612,12 @@ static const u16 sScolipedeTeachableLearnset[] = { MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -24161,23 +22630,20 @@ static const u16 sCottoneeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -24186,17 +22652,13 @@ static const u16 sWhimsicottTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -24204,10 +22666,11 @@ static const u16 sWhimsicottTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_COTTONEE @@ -24215,18 +22678,15 @@ static const u16 sWhimsicottTeachableLearnset[] = { #if P_FAMILY_PETILIL static const u16 sPetililTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, @@ -24234,34 +22694,31 @@ static const u16 sPetililTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sLilligantTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -24269,6 +22726,24 @@ static const u16 sLilligantTeachableLearnset[] = { #if P_HISUIAN_FORMS static const u16 sLilligantHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_METRONOME, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -24277,28 +22752,27 @@ static const u16 sLilligantHisuianTeachableLearnset[] = { #if P_FAMILY_BASCULIN static const u16 sBasculinTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BLIZZARD, MOVE_CUT, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SURF, MOVE_TAUNT, MOVE_TOXIC, MOVE_WATERFALL, + MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -24306,10 +22780,42 @@ static const u16 sBasculinTeachableLearnset[] = { #if P_HISUIAN_FORMS static const u16 sBasculinWhiteStripedTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_FACADE, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sBasculegionTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -24317,40 +22823,6 @@ static const u16 sBasculegionTeachableLearnset[] = { #if P_FAMILY_SANDILE static const u16 sSandileTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_CUT, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_REST, - MOVE_RETURN, - MOVE_ROAR, - MOVE_ROCK_TOMB, - MOVE_SANDSTORM, - MOVE_SECRET_POWER, - MOVE_SLUDGE_BOMB, - MOVE_SNATCH, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_COUNTER, - MOVE_DOUBLE_EDGE, - MOVE_MUD_SLAP, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_UNAVAILABLE, -}; - -static const u16 sKrokorokTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_CUT, @@ -24358,18 +22830,48 @@ static const u16 sKrokorokTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sKrokorokTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, @@ -24377,11 +22879,16 @@ static const u16 sKrokorokTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24398,18 +22905,14 @@ static const u16 sKrookodileTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, @@ -24417,12 +22920,16 @@ static const u16 sKrookodileTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24438,16 +22945,12 @@ static const u16 sDarumakaTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -24457,11 +22960,12 @@ static const u16 sDarumakaTeachableLearnset[] = { MOVE_TOXIC, MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24477,18 +22981,14 @@ static const u16 sDarmanitanTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -24497,12 +22997,15 @@ static const u16 sDarmanitanTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24534,7 +23037,6 @@ static const u16 sDarumakaGalarianTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -24548,6 +23050,7 @@ static const u16 sDarmanitanGalarianTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_OVERHEAT, @@ -24568,7 +23071,6 @@ static const u16 sDarmanitanGalarianTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_GALARIAN_FORMS @@ -24581,20 +23083,17 @@ static const u16 sMaractusTeachableLearnset[] = { MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24609,15 +23108,11 @@ static const u16 sDwebbleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_TOXIC, @@ -24627,7 +23122,6 @@ static const u16 sDwebbleTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -24641,24 +23135,21 @@ static const u16 sCrustleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_TOXIC, MOVE_COUNTER, + MOVE_ENDURE, + MOVE_FURY_CUTTER, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -24675,31 +23166,31 @@ static const u16 sScraggyTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -24714,18 +23205,14 @@ static const u16 sScraftyTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, @@ -24734,13 +23221,20 @@ static const u16 sScraftyTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -24755,8 +23249,6 @@ static const u16 sSigilyphTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -24765,9 +23257,7 @@ static const u16 sSigilyphTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -24776,12 +23266,13 @@ static const u16 sSigilyphTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -24794,15 +23285,11 @@ static const u16 sYamaskTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -24814,7 +23301,6 @@ static const u16 sYamaskTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24825,16 +23311,12 @@ static const u16 sCofagrigusTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -24842,10 +23324,10 @@ static const u16 sCofagrigusTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24870,7 +23352,6 @@ static const u16 sYamaskGalarianTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -24895,7 +23376,6 @@ static const u16 sRunerigusTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_GALARIAN_FORMS @@ -24910,30 +23390,26 @@ static const u16 sTirtougaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24946,30 +23422,27 @@ static const u16 sCarracostaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -24985,26 +23458,23 @@ static const u16 sArchenTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -25018,27 +23488,24 @@ static const u16 sArcheopsTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ARCHEN @@ -25048,23 +23515,19 @@ static const u16 sTrubbishTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25073,16 +23536,12 @@ static const u16 sGarbodorTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -25090,10 +23549,11 @@ static const u16 sGarbodorTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_EXPLOSION, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25108,50 +23568,10 @@ static const u16 sZoruaTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SNATCH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_COUNTER, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWORDS_DANCE, - MOVE_UNAVAILABLE, -}; - -static const u16 sZoroarkTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_ATTRACT, - MOVE_CALM_MIND, - MOVE_CUT, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROAR, - MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -25160,21 +23580,108 @@ static const u16 sZoroarkTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_COUNTER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sZoroarkTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #if P_HISUIAN_FORMS static const u16 sZoruaHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROAR, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sZoroarkHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -25183,19 +23690,16 @@ static const u16 sZoroarkHisuianTeachableLearnset[] = { #if P_FAMILY_MINCCINO static const u16 sMinccinoTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_THIEF, @@ -25205,7 +23709,6 @@ static const u16 sMinccinoTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_WAVE, @@ -25219,27 +23722,26 @@ static const u16 sCinccinoTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -25252,18 +23754,14 @@ static const u16 sGothitaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -25274,12 +23772,13 @@ static const u16 sGothitaTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -25290,18 +23789,14 @@ static const u16 sGothoritaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -25312,12 +23807,14 @@ static const u16 sGothoritaTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -25329,8 +23826,6 @@ static const u16 sGothitelleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -25338,10 +23833,8 @@ static const u16 sGothitelleTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -25351,13 +23844,16 @@ static const u16 sGothitelleTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -25370,33 +23866,31 @@ static const u16 sSolosisTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -25407,33 +23901,31 @@ static const u16 sDuosionTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -25445,8 +23937,6 @@ static const u16 sReuniclusTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -25454,29 +23944,31 @@ static const u16 sReuniclusTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_PUNCH, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -25491,24 +23983,22 @@ static const u16 sDucklettTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -25519,25 +24009,23 @@ static const u16 sSwannaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_DUCKLETT @@ -25548,24 +24036,20 @@ static const u16 sVanilliteTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_TAUNT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25575,24 +24059,20 @@ static const u16 sVanillishTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_TAUNT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25602,25 +24082,21 @@ static const u16 sVanilluxeTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_TAUNT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25629,27 +24105,26 @@ static const u16 sVanilluxeTeachableLearnset[] = { #if P_FAMILY_DEERLING static const u16 sDeerlingTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -25657,30 +24132,29 @@ static const u16 sDeerlingTeachableLearnset[] = { static const u16 sSawsbuckTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CUT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, @@ -25696,24 +24170,22 @@ static const u16 sEmolgaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, MOVE_TAUNT, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -25726,14 +24198,10 @@ static const u16 sKarrablastTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_TOXIC, MOVE_COUNTER, MOVE_DOUBLE_EDGE, @@ -25741,7 +24209,6 @@ static const u16 sKarrablastTeachableLearnset[] = { MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -25753,21 +24220,20 @@ static const u16 sEscavalierTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, + MOVE_TAUNT, MOVE_TOXIC, + MOVE_COUNTER, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -25777,17 +24243,14 @@ static const u16 sEscavalierTeachableLearnset[] = { #if P_FAMILY_FOONGUS static const u16 sFoongusTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -25798,32 +24261,31 @@ static const u16 sFoongusTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sAmoongussTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25837,18 +24299,14 @@ static const u16 sFrillishTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -25858,11 +24316,11 @@ static const u16 sFrillishTeachableLearnset[] = { MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25874,19 +24332,15 @@ static const u16 sJellicentTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, @@ -25896,11 +24350,11 @@ static const u16 sJellicentTeachableLearnset[] = { MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25914,29 +24368,27 @@ static const u16 sAlomomolaTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -25949,24 +24401,22 @@ static const u16 sJoltikTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_THIEF, + MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -25977,26 +24427,23 @@ static const u16 sGalvantulaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -26004,27 +24451,24 @@ static const u16 sGalvantulaTeachableLearnset[] = { #if P_FAMILY_FERROSEED static const u16 sFerroseedTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26032,31 +24476,29 @@ static const u16 sFerroseedTeachableLearnset[] = { static const u16 sFerrothornTeachableLearnset[] = { MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, @@ -26068,21 +24510,17 @@ static const u16 sFerrothornTeachableLearnset[] = { static const u16 sKlinkTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26091,21 +24529,17 @@ static const u16 sKlinkTeachableLearnset[] = { static const u16 sKlangTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26114,22 +24548,18 @@ static const u16 sKlangTeachableLearnset[] = { static const u16 sKlinklangTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26147,23 +24577,20 @@ static const u16 sEelektrikTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26172,6 +24599,7 @@ static const u16 sEelektrikTeachableLearnset[] = { static const u16 sEelektrossTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_BULK_UP, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_DRAGON_CLAW, @@ -26179,31 +24607,30 @@ static const u16 sEelektrossTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26217,18 +24644,14 @@ static const u16 sElgyemTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -26238,11 +24661,11 @@ static const u16 sElgyemTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26254,8 +24677,6 @@ static const u16 sBeheeyemTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -26263,10 +24684,8 @@ static const u16 sBeheeyemTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -26276,11 +24695,11 @@ static const u16 sBeheeyemTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26296,15 +24715,11 @@ static const u16 sLitwickTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -26317,7 +24732,6 @@ static const u16 sLitwickTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -26330,15 +24744,11 @@ static const u16 sLampentTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -26347,10 +24757,10 @@ static const u16 sLampentTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -26363,16 +24773,12 @@ static const u16 sChandelureTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, @@ -26381,10 +24787,10 @@ static const u16 sChandelureTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -26394,33 +24800,32 @@ static const u16 sChandelureTeachableLearnset[] = { static const u16 sAxewTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_DRAGON_CLAW, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_SURF, MOVE_TAUNT, MOVE_TOXIC, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -26428,31 +24833,32 @@ static const u16 sAxewTeachableLearnset[] = { static const u16 sFraxureTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_DRAGON_CLAW, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_SURF, MOVE_TAUNT, MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -26467,29 +24873,29 @@ static const u16 sHaxorusTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -26505,27 +24911,29 @@ static const u16 sCubchooTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -26540,33 +24948,35 @@ static const u16 sBearticTeachableLearnset[] = { MOVE_DIG, MOVE_DIVE, MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TAUNT, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -26579,9 +24989,7 @@ static const u16 sCryogonalTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -26589,16 +24997,15 @@ static const u16 sCryogonalTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -26609,14 +25016,10 @@ static const u16 sShelmetTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_TOXIC, MOVE_BODY_SLAM, @@ -26625,7 +25028,6 @@ static const u16 sShelmetTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -26634,21 +25036,20 @@ static const u16 sAccelgorTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -26663,15 +25064,11 @@ static const u16 sStunfiskTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SURF, @@ -26684,7 +25081,6 @@ static const u16 sStunfiskTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -26709,7 +25105,6 @@ static const u16 sStunfiskGalarianTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -26727,26 +25122,23 @@ static const u16 sMienfooTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -26763,26 +25155,25 @@ static const u16 sMienshaoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_SWORDS_DANCE, @@ -26801,18 +25192,14 @@ static const u16 sDruddigonTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SNATCH, @@ -26822,11 +25209,13 @@ static const u16 sDruddigonTeachableLearnset[] = { MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -26836,40 +25225,44 @@ static const u16 sDruddigonTeachableLearnset[] = { #if P_FAMILY_GOLETT static const u16 sGolettTeachableLearnset[] = { MOVE_BRICK_BREAK, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -26877,44 +25270,48 @@ static const u16 sGolettTeachableLearnset[] = { static const u16 sGolurkTeachableLearnset[] = { MOVE_BRICK_BREAK, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, MOVE_FLY, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -26930,25 +25327,21 @@ static const u16 sPawniardTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, @@ -26963,26 +25356,22 @@ static const u16 sBisharpTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, @@ -26992,48 +25381,23 @@ static const u16 sBisharpTeachableLearnset[] = { #if P_GEN_9_CROSS_EVOS static const u16 sKingambitTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AIR_SLASH, MOVE_BRICK_BREAK, - MOVE_DARK_PULSE, MOVE_DIG, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FALSE_SWIPE, - MOVE_FLASH_CANNON, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_FOUL_PLAY, - MOVE_GIGA_IMPACT, - MOVE_GRASS_KNOT, MOVE_HYPER_BEAM, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_METAL_CLAW, - MOVE_POISON_JAB, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STEALTH_ROCK, - MOVE_STEEL_BEAM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, + MOVE_TORMENT, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, - MOVE_X_SCISSOR, - MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; #endif //P_GEN_9_CROSS_EVOS @@ -27047,25 +25411,22 @@ static const u16 sBouffalantTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -27081,24 +25442,23 @@ static const u16 sRuffletTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -27110,30 +25470,51 @@ static const u16 sBraviaryTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #if P_HISUIAN_FORMS static const u16 sBraviaryHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_FLY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SHADOW_BALL, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -27147,15 +25528,11 @@ static const u16 sVullabyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_STEEL_WING, @@ -27164,11 +25541,13 @@ static const u16 sVullabyTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -27179,16 +25558,13 @@ static const u16 sMandibuzzTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_STEEL_WING, @@ -27197,11 +25573,13 @@ static const u16 sMandibuzzTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_VULLABY @@ -27217,17 +25595,13 @@ static const u16 sHeatmorTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -27235,10 +25609,10 @@ static const u16 sHeatmorTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -27253,15 +25627,11 @@ static const u16 sDurantTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_TOXIC, MOVE_ENDURE, @@ -27269,7 +25639,6 @@ static const u16 sDurantTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -27281,15 +25650,11 @@ static const u16 sDeinoTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -27298,10 +25663,10 @@ static const u16 sDeinoTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -27311,15 +25676,11 @@ static const u16 sZweilousTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, @@ -27328,10 +25689,10 @@ static const u16 sZweilousTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -27345,19 +25706,15 @@ static const u16 sHydreigonTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STEEL_WING, MOVE_STRENGTH, @@ -27368,11 +25725,11 @@ static const u16 sHydreigonTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -27381,60 +25738,57 @@ static const u16 sHydreigonTeachableLearnset[] = { #if P_FAMILY_LARVESTA static const u16 sLarvestaTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sVolcaronaTeachableLearnset[] = { MOVE_AERIAL_ACE, + MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -27443,30 +25797,32 @@ static const u16 sVolcaronaTeachableLearnset[] = { #if P_FAMILY_COBALION static const u16 sCobalionTeachableLearnset[] = { MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -27476,33 +25832,33 @@ static const u16 sCobalionTeachableLearnset[] = { #if P_FAMILY_TERRAKION static const u16 sTerrakionTeachableLearnset[] = { MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -27511,34 +25867,35 @@ static const u16 sTerrakionTeachableLearnset[] = { #if P_FAMILY_VIRIZION static const u16 sVirizionTeachableLearnset[] = { MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -27553,27 +25910,27 @@ static const u16 sTornadusTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -27587,29 +25944,27 @@ static const u16 sThundurusTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -27626,45 +25981,46 @@ static const u16 sReshiramTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_RESHIRAM #if P_FAMILY_ZEKROM static const u16 sZekromTeachableLearnset[] = { + MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -27672,23 +26028,26 @@ static const u16 sZekromTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_STEEL_WING, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -27706,26 +26065,27 @@ static const u16 sLandorusTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_EXPLOSION, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -27734,15 +26094,14 @@ static const u16 sLandorusTeachableLearnset[] = { #if P_FAMILY_KYUREM static const u16 sKyuremTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_BLIZZARD, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -27751,22 +26110,23 @@ static const u16 sKyuremTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_KYUREM @@ -27774,34 +26134,34 @@ static const u16 sKyuremTeachableLearnset[] = { #if P_FAMILY_KELDEO static const u16 sKeldeoTeachableLearnset[] = { MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TAUNT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -27815,18 +26175,14 @@ static const u16 sMeloettaTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -27837,13 +26193,16 @@ static const u16 sMeloettaTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -27859,9 +26218,7 @@ static const u16 sGenesectTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_FLASH, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, @@ -27869,19 +26226,18 @@ static const u16 sGenesectTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -27893,24 +26249,22 @@ static const u16 sChespinTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_BULLET_SEED, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -27919,12 +26273,13 @@ static const u16 sChespinTeachableLearnset[] = { MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -27935,24 +26290,22 @@ static const u16 sQuilladinTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_BULLET_SEED, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -27960,12 +26313,14 @@ static const u16 sQuilladinTeachableLearnset[] = { MOVE_TAUNT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -27976,6 +26331,7 @@ static const u16 sChesnaughtTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_BULLET_SEED, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, @@ -27984,19 +26340,16 @@ static const u16 sChesnaughtTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -28004,12 +26357,16 @@ static const u16 sChesnaughtTeachableLearnset[] = { MOVE_TAUNT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -28019,13 +26376,12 @@ static const u16 sChesnaughtTeachableLearnset[] = { #if P_FAMILY_FENNEKIN static const u16 sFennekinTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, @@ -28033,31 +26389,31 @@ static const u16 sFennekinTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sBraixenTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, @@ -28065,9 +26421,7 @@ static const u16 sBraixenTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, MOVE_SNATCH, @@ -28076,12 +26430,14 @@ static const u16 sBraixenTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -28094,8 +26450,6 @@ static const u16 sDelphoxTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -28103,10 +26457,9 @@ static const u16 sDelphoxTeachableLearnset[] = { MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, + MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -28116,12 +26469,15 @@ static const u16 sDelphoxTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_METRONOME, + MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -28137,16 +26493,12 @@ static const u16 sFroakieTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_STRENGTH, MOVE_SURF, @@ -28155,12 +26507,15 @@ static const u16 sFroakieTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_COUNTER, + MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -28173,16 +26528,12 @@ static const u16 sFrogadierTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_STRENGTH, MOVE_SURF, @@ -28191,13 +26542,17 @@ static const u16 sFrogadierTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_COUNTER, + MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -28205,22 +26560,19 @@ static const u16 sGreninjaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DIG, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_STRENGTH, MOVE_SURF, @@ -28229,13 +26581,17 @@ static const u16 sGreninjaTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_COUNTER, + MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FROAKIE @@ -28250,16 +26606,12 @@ static const u16 sBunnelbyTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SURF, @@ -28267,13 +26619,14 @@ static const u16 sBunnelbyTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DEFENSE_CURL, + MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -28287,17 +26640,13 @@ static const u16 sDiggersbyTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, @@ -28305,13 +26654,18 @@ static const u16 sDiggersbyTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -28326,23 +26680,22 @@ static const u16 sFletchlingTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -28355,23 +26708,22 @@ static const u16 sFletchinderTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -28385,14 +26737,11 @@ static const u16 sTalonflameTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, @@ -28400,10 +26749,12 @@ static const u16 sTalonflameTeachableLearnset[] = { MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -28426,28 +26777,25 @@ static const u16 sVivillonTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SCATTERBUG @@ -28460,17 +26808,13 @@ static const u16 sLitleoTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -28478,10 +26822,14 @@ static const u16 sLitleoTeachableLearnset[] = { MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -28492,18 +26840,14 @@ static const u16 sPyroarTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SNATCH, MOVE_SOLAR_BEAM, MOVE_STRENGTH, @@ -28511,10 +26855,14 @@ static const u16 sPyroarTeachableLearnset[] = { MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_LITLEO @@ -28526,23 +26874,21 @@ static const u16 sFlabebeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -28552,23 +26898,23 @@ static const u16 sFloetteTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -28578,19 +26924,23 @@ static const u16 sFloetteEternalFlowerTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -28600,25 +26950,24 @@ static const u16 sFlorgesTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FLABEBE @@ -28628,32 +26977,31 @@ static const u16 sSkiddoTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_BULLET_SEED, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -28663,32 +27011,33 @@ static const u16 sGogoatTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_BULLET_SEED, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -28705,30 +27054,30 @@ static const u16 sPanchamTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_SURF, + MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -28747,17 +27096,13 @@ static const u16 sPangoroTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_STRENGTH, @@ -28768,12 +27113,15 @@ static const u16 sPangoroTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -28788,23 +27136,17 @@ static const u16 sFurfrouTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_TOXIC, - MOVE_MIMIC, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -28819,8 +27161,6 @@ static const u16 sEspurrTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -28828,9 +27168,8 @@ static const u16 sEspurrTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, MOVE_SNATCH, @@ -28839,11 +27178,12 @@ static const u16 sEspurrTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -28856,8 +27196,6 @@ static const u16 sMeowsticMaleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -28866,9 +27204,7 @@ static const u16 sMeowsticMaleTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -28878,11 +27214,12 @@ static const u16 sMeowsticMaleTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -28895,8 +27232,6 @@ static const u16 sMeowsticFemaleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -28905,9 +27240,7 @@ static const u16 sMeowsticFemaleTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -28917,11 +27250,12 @@ static const u16 sMeowsticFemaleTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -28935,22 +27269,18 @@ static const u16 sHonedgeTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -28963,22 +27293,18 @@ static const u16 sDoubladeTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -28991,25 +27317,21 @@ static const u16 sAegislashTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -29023,26 +27345,22 @@ static const u16 sSpritzeeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SUNNY_DAY, MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29053,8 +27371,6 @@ static const u16 sAromatisseTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -29062,8 +27378,6 @@ static const u16 sAromatisseTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SUNNY_DAY, MOVE_THUNDER, @@ -29071,10 +27385,11 @@ static const u16 sAromatisseTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29088,26 +27403,22 @@ static const u16 sSwirlixTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_THIEF, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29119,27 +27430,25 @@ static const u16 sSlurpuffTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_THIEF, + MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29155,16 +27464,13 @@ static const u16 sInkayTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -29172,12 +27478,13 @@ static const u16 sInkayTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -29190,8 +27497,6 @@ static const u16 sMalamarTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -29199,8 +27504,7 @@ static const u16 sMalamarTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SUNNY_DAY, MOVE_TAUNT, @@ -29208,12 +27512,13 @@ static const u16 sMalamarTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_INKAY @@ -29229,18 +27534,14 @@ static const u16 sBinacleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SURF, @@ -29249,13 +27550,13 @@ static const u16 sBinacleTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -29269,23 +27570,20 @@ static const u16 sBarbaracleTeachableLearnset[] = { MOVE_BULK_UP, MOVE_CUT, MOVE_DIG, + MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SURF, @@ -29294,13 +27592,13 @@ static const u16 sBarbaracleTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -29313,27 +27611,25 @@ static const u16 sSkrelpTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SURF, + MOVE_THIEF, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29343,29 +27639,27 @@ static const u16 sDragalgeTeachableLearnset[] = { MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SURF, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29374,30 +27668,28 @@ static const u16 sDragalgeTeachableLearnset[] = { #if P_FAMILY_CLAUNCHER static const u16 sClauncherTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BLIZZARD, MOVE_CUT, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SURF, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -29405,31 +27697,31 @@ static const u16 sClauncherTeachableLearnset[] = { static const u16 sClawitzerTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BLIZZARD, MOVE_CUT, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SURF, + MOVE_THIEF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -29444,29 +27736,26 @@ static const u16 sHelioptileTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SURF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -29478,30 +27767,32 @@ static const u16 sHelioliskTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, MOVE_SURF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -29518,24 +27809,21 @@ static const u16 sTyruntTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29549,25 +27837,22 @@ static const u16 sTyrantrumTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29581,9 +27866,7 @@ static const u16 sAmauraTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -29592,23 +27875,22 @@ static const u16 sAmauraTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -29622,9 +27904,7 @@ static const u16 sAurorusTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, @@ -29634,24 +27914,23 @@ static const u16 sAurorusTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -29670,27 +27949,29 @@ static const u16 sHawluchaTeachableLearnset[] = { MOVE_FACADE, MOVE_FLY, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -29706,24 +27987,23 @@ static const u16 sDedenneTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -29736,28 +28016,28 @@ static const u16 sCarbinkTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29768,14 +28048,10 @@ static const u16 sGoomyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, @@ -29788,7 +28064,6 @@ static const u16 sGoomyTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29798,26 +28073,24 @@ static const u16 sSliggooTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, + MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29826,37 +28099,38 @@ static const u16 sGoodraTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_SURF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -29864,10 +28138,57 @@ static const u16 sGoodraTeachableLearnset[] = { #if P_HISUIAN_FORMS static const u16 sSliggooHisuianTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_FACADE, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sGoodraHisuianTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -29880,8 +28201,6 @@ static const u16 sKlefkiTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -29889,18 +28208,18 @@ static const u16 sKlefkiTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -29913,17 +28232,14 @@ static const u16 sPhantumpTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -29932,10 +28248,11 @@ static const u16 sPhantumpTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29948,18 +28265,15 @@ static const u16 sTrevenantTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -29968,10 +28282,11 @@ static const u16 sTrevenantTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -29986,17 +28301,13 @@ static const u16 sPumpkabooTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, @@ -30005,10 +28316,11 @@ static const u16 sPumpkabooTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, + MOVE_SNORE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -30021,18 +28333,14 @@ static const u16 sGourgeistTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, @@ -30041,10 +28349,11 @@ static const u16 sGourgeistTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, + MOVE_SNORE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -30057,28 +28366,25 @@ static const u16 sBergmiteTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -30090,37 +28396,52 @@ static const u16 sAvaluggTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, MOVE_STRENGTH, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #if P_HISUIAN_FORMS static const u16 sAvaluggHisuianTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -30133,16 +28454,13 @@ static const u16 sNoibatTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_SOLAR_BEAM, @@ -30154,10 +28472,11 @@ static const u16 sNoibatTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -30171,15 +28490,11 @@ static const u16 sNoivernTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_SOLAR_BEAM, @@ -30190,11 +28505,14 @@ static const u16 sNoivernTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_NOIBAT @@ -30206,9 +28524,7 @@ static const u16 sXerneasTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -30216,19 +28532,19 @@ static const u16 sXerneasTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, - MOVE_SECRET_POWER, MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -30242,15 +28558,11 @@ static const u16 sYveltalTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, MOVE_SHADOW_BALL, MOVE_STEEL_WING, MOVE_SUNNY_DAY, @@ -30258,12 +28570,14 @@ static const u16 sYveltalTeachableLearnset[] = { MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_YVELTAL @@ -30275,26 +28589,24 @@ static const u16 sZygardeTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SHOCK_WAVE, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ZYGARDE @@ -30305,30 +28617,30 @@ static const u16 sDiancieTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_EXPLOSION, + MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_DIANCIE @@ -30341,8 +28653,6 @@ static const u16 sHoopaConfinedTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -30350,9 +28660,9 @@ static const u16 sHoopaConfinedTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -30364,13 +28674,14 @@ static const u16 sHoopaConfinedTeachableLearnset[] = { MOVE_TORMENT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -30383,8 +28694,6 @@ static const u16 sHoopaUnboundTeachableLearnset[] = { MOVE_FACADE, MOVE_FLASH, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -30392,9 +28701,9 @@ static const u16 sHoopaUnboundTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROCK_TOMB, MOVE_SAFEGUARD, - MOVE_SECRET_POWER, + MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, MOVE_SKILL_SWAP, @@ -30405,6 +28714,17 @@ static const u16 sHoopaUnboundTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_HOOPA @@ -30413,34 +28733,35 @@ static const u16 sHoopaUnboundTeachableLearnset[] = { static const u16 sVolcanionTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_CUT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SECRET_POWER, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_STRENGTH, MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_TOXIC, MOVE_WATER_PULSE, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -30448,80 +28769,106 @@ static const u16 sVolcanionTeachableLearnset[] = { #if P_FAMILY_ROWLET static const u16 sRowletTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sDartrixTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sDecidueyeTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #if P_HISUIAN_FORMS static const u16 sDecidueyeHisuianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_HISUIAN_FORMS @@ -30535,21 +28882,19 @@ static const u16 sLittenTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -30562,26 +28907,26 @@ static const u16 sTorracatTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sIncineroarTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -30591,23 +28936,25 @@ static const u16 sIncineroarTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SNATCH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -30619,63 +28966,63 @@ static const u16 sIncineroarTeachableLearnset[] = { static const u16 sPopplioTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sBrionneTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sPrimarinaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -30684,18 +29031,19 @@ static const u16 sPrimarinaTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SHADOW_BALL, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_POPPLIO @@ -30707,20 +29055,18 @@ static const u16 sPikipekTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, + MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -30732,21 +29078,20 @@ static const u16 sTrumbeakTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, + MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -30757,22 +29102,23 @@ static const u16 sToucannonTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, + MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_STEEL_WING, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -30781,55 +29127,60 @@ static const u16 sToucannonTeachableLearnset[] = { #if P_FAMILY_YUNGOOS static const u16 sYungoosTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sGumshoosTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -30842,13 +29193,10 @@ static const u16 sGrubbinTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -30856,7 +29204,6 @@ static const u16 sGrubbinTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -30867,20 +29214,18 @@ static const u16 sCharjabugTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, + MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -30891,24 +29236,23 @@ static const u16 sVikavoltTeachableLearnset[] = { MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FLY, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -30919,28 +29263,29 @@ static const u16 sCrabrawlerTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, MOVE_ICE_PUNCH, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -30950,31 +29295,33 @@ static const u16 sCrabominableTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -30988,21 +29335,22 @@ static const u16 sOricorioTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SANDSTORM, MOVE_STEEL_WING, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_ICY_WIND, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -31015,25 +29363,23 @@ static const u16 sCutieflyTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SKILL_SWAP, MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -31043,14 +29389,12 @@ static const u16 sRibombeeTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -31058,11 +29402,12 @@ static const u16 sRibombeeTeachableLearnset[] = { MOVE_THIEF, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CUTIEFLY @@ -31070,23 +29415,26 @@ static const u16 sRibombeeTeachableLearnset[] = { #if P_FAMILY_ROCKRUFF static const u16 sRockruffTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -31094,23 +29442,27 @@ static const u16 sLycanrocMiddayTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -31119,18 +29471,33 @@ static const u16 sLycanrocMidnightTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FOCUS_PUNCH, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -31138,18 +29505,27 @@ static const u16 sLycanrocDuskTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ROCKRUFF @@ -31161,23 +29537,20 @@ static const u16 sWishiwashiTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31189,24 +29562,21 @@ static const u16 sMareanieTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31216,25 +29586,24 @@ static const u16 sToxapexTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_SURF, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31246,24 +29615,24 @@ static const u16 sMudbrayTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, + MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31273,22 +29642,25 @@ static const u16 sMudsdaleTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, + MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31300,22 +29672,19 @@ static const u16 sDewpiderTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31323,26 +29692,26 @@ static const u16 sDewpiderTeachableLearnset[] = { static const u16 sAraquanidTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, + MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SURF, MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31351,22 +29720,20 @@ static const u16 sAraquanidTeachableLearnset[] = { #if P_FAMILY_FOMANTIS static const u16 sFomantisTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -31376,23 +29743,22 @@ static const u16 sLurantisTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -31403,23 +29769,21 @@ static const u16 sLurantisTeachableLearnset[] = { static const u16 sMorelullTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, + MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -31428,23 +29792,23 @@ static const u16 sMorelullTeachableLearnset[] = { static const u16 sShiinoticTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, + MOVE_FACADE, MOVE_FLASH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -31459,23 +29823,24 @@ static const u16 sSalanditTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SLUDGE_BOMB, MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -31486,23 +29851,26 @@ static const u16 sSalazzleTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SLUDGE_BOMB, MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SALANDIT @@ -31517,23 +29885,23 @@ static const u16 sStuffulTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, + MOVE_STRENGTH, MOVE_TAUNT, MOVE_TOXIC, + MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -31550,22 +29918,25 @@ static const u16 sBewearTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, + MOVE_STRENGTH, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -31576,70 +29947,70 @@ static const u16 sBewearTeachableLearnset[] = { #if P_FAMILY_BOUNSWEET static const u16 sBounsweetTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sSteeneeTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sTsareenaTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_TAUNT, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MEGA_KICK, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_BOUNSWEET @@ -31647,17 +30018,15 @@ static const u16 sTsareenaTeachableLearnset[] = { #if P_FAMILY_COMFEY static const u16 sComfeyTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, @@ -31668,43 +30037,47 @@ static const u16 sComfeyTeachableLearnset[] = { MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_COMFEY #if P_FAMILY_ORANGURU static const u16 sOranguruTeachableLearnset[] = { + MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_SNATCH, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ORANGURU @@ -31719,14 +30092,11 @@ static const u16 sPassimianTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SHADOW_BALL, @@ -31736,12 +30106,16 @@ static const u16 sPassimianTeachableLearnset[] = { MOVE_TAUNT, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31752,21 +30126,21 @@ static const u16 sWimpodTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SURF, MOVE_TAUNT, MOVE_TOXIC, MOVE_WATERFALL, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -31776,16 +30150,15 @@ static const u16 sGolisopodTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SLUDGE_BOMB, @@ -31794,14 +30167,17 @@ static const u16 sGolisopodTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -31813,22 +30189,23 @@ static const u16 sSandygastTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31838,23 +30215,25 @@ static const u16 sPalossandTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31877,7 +30256,6 @@ static const u16 sPyukumukuTeachableLearnset[] = { MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -31889,24 +30267,23 @@ static const u16 sTypeNullTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_DRAGON_CLAW, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SANDSTORM, MOVE_SUNNY_DAY, MOVE_TOXIC, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -31918,15 +30295,12 @@ static const u16 sSilvallyTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, MOVE_HAIL, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SANDSTORM, MOVE_SHADOW_BALL, @@ -31936,13 +30310,14 @@ static const u16 sSilvallyTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ICY_WIND, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -31956,15 +30331,12 @@ static const u16 sMiniorTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, @@ -31972,13 +30344,13 @@ static const u16 sMiniorTeachableLearnset[] = { MOVE_TOXIC, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -31994,19 +30366,22 @@ static const u16 sKomalaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, - MOVE_RETURN, + MOVE_RAIN_DANCE, + MOVE_ROCK_TOMB, MOVE_SUNNY_DAY, + MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -32023,14 +30398,11 @@ static const u16 sTurtonatorTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SHOCK_WAVE, @@ -32041,9 +30413,10 @@ static const u16 sTurtonatorTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_EXPLOSION, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -32054,24 +30427,23 @@ static const u16 sTogedemaruTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DEFENSE_CURL, + MOVE_ENDURE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -32083,29 +30455,27 @@ static const u16 sMimikyuTeachableLearnset[] = { MOVE_BULK_UP, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, MOVE_SNATCH, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DREAM_EATER, - MOVE_MIMIC, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, @@ -32122,8 +30492,7 @@ static const u16 sBruxishTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -32132,7 +30501,6 @@ static const u16 sBruxishTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SAFEGUARD, MOVE_SNATCH, MOVE_SURF, @@ -32142,9 +30510,10 @@ static const u16 sBruxishTeachableLearnset[] = { MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -32163,15 +30532,12 @@ static const u16 sDrampaTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, @@ -32184,12 +30550,13 @@ static const u16 sDrampaTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -32203,24 +30570,21 @@ static const u16 sDhelmiseTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_SURF, MOVE_THIEF, MOVE_TOXIC, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -32237,23 +30601,22 @@ static const u16 sJangmoOTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FOCUS_PUNCH, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_COUNTER, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -32268,22 +30631,26 @@ static const u16 sHakamoOTeachableLearnset[] = { MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FOCUS_PUNCH, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -32300,27 +30667,31 @@ static const u16 sKommoOTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_TOXIC, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, @@ -32335,14 +30706,12 @@ static const u16 sTapuKokoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, - MOVE_RETURN, + MOVE_REST, MOVE_ROAR, MOVE_SAFEGUARD, MOVE_SHOCK_WAVE, @@ -32353,11 +30722,12 @@ static const u16 sTapuKokoTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -32369,14 +30739,12 @@ static const u16 sTapuLeleTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, - MOVE_RETURN, + MOVE_REST, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, @@ -32387,10 +30755,10 @@ static const u16 sTapuLeleTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -32400,18 +30768,18 @@ static const u16 sTapuLeleTeachableLearnset[] = { static const u16 sTapuBuluTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULK_UP, + MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, - MOVE_RETURN, + MOVE_REST, MOVE_ROAR, + MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, @@ -32419,11 +30787,12 @@ static const u16 sTapuBuluTeachableLearnset[] = { MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MEGA_PUNCH, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -32434,17 +30803,16 @@ static const u16 sTapuBuluTeachableLearnset[] = { static const u16 sTapuFiniTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_CALM_MIND, + MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, - MOVE_RETURN, + MOVE_REST, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, MOVE_SURF, @@ -32453,12 +30821,12 @@ static const u16 sTapuFiniTeachableLearnset[] = { MOVE_TOXIC, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -32480,8 +30848,6 @@ static const u16 sSolgaleoTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, @@ -32489,7 +30855,6 @@ static const u16 sSolgaleoTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, @@ -32499,12 +30864,15 @@ static const u16 sSolgaleoTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -32516,16 +30884,14 @@ static const u16 sLunalaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROAR, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, @@ -32536,12 +30902,13 @@ static const u16 sLunalaTeachableLearnset[] = { MOVE_THUNDERBOLT, MOVE_TOXIC, MOVE_DREAM_EATER, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -32551,23 +30918,23 @@ static const u16 sLunalaTeachableLearnset[] = { static const u16 sNihilegoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, + MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, MOVE_SLUDGE_BOMB, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -32582,14 +30949,12 @@ static const u16 sBuzzwoleTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_TAUNT, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, @@ -32598,7 +30963,6 @@ static const u16 sBuzzwoleTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, @@ -32611,22 +30975,19 @@ static const u16 sPheromosaTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, MOVE_SNATCH, MOVE_TAUNT, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -32638,24 +30999,21 @@ static const u16 sXurkitreeTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -32671,22 +31029,20 @@ static const u16 sCelesteelaTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, MOVE_EXPLOSION, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -32699,17 +31055,14 @@ static const u16 sKartanaTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_CUT, MOVE_DOUBLE_TEAM, - MOVE_FRUSTRATION, MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FURY_CUTTER, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -32725,22 +31078,22 @@ static const u16 sGuzzlordTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GUZZLORD @@ -32753,25 +31106,26 @@ static const u16 sNecrozmaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -32783,23 +31137,29 @@ static const u16 sMagearnaTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_PSYCHIC, MOVE_REFLECT, - MOVE_RETURN, + MOVE_REST, MOVE_SHADOW_BALL, MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, + MOVE_ENDURE, MOVE_EXPLOSION, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -32813,25 +31173,26 @@ static const u16 sMarshadowTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SHADOW_BALL, MOVE_SNATCH, MOVE_THIEF, MOVE_TOXIC, MOVE_COUNTER, + MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -32840,18 +31201,15 @@ static const u16 sMarshadowTeachableLearnset[] = { #if P_FAMILY_POIPOLE static const u16 sPoipoleTeachableLearnset[] = { MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -32863,22 +31221,20 @@ static const u16 sNaganadelTeachableLearnset[] = { MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, MOVE_SNATCH, MOVE_THIEF, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_POIPOLE @@ -32887,23 +31243,22 @@ static const u16 sNaganadelTeachableLearnset[] = { static const u16 sStakatakaTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_RETURN, MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, MOVE_SKILL_SWAP, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_STAKATAKA @@ -32915,25 +31270,24 @@ static const u16 sBlacephalonTeachableLearnset[] = { MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_RETURN, MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -32948,22 +31302,23 @@ static const u16 sZeraoraTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_RETURN, MOVE_SHOCK_WAVE, MOVE_SNATCH, MOVE_TAUNT, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, + MOVE_ENDURE, MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -32972,66 +31327,42 @@ static const u16 sZeraoraTeachableLearnset[] = { #if P_FAMILY_MELTAN static const u16 sMeltanTeachableLearnset[] = { - MOVE_HEADBUTT, - MOVE_REST, - MOVE_PROTECT, - MOVE_SUBSTITUTE, - MOVE_THUNDER_WAVE, - MOVE_TOXIC, - MOVE_THUNDERBOLT, - MOVE_FLASH_CANNON, - MOVE_SNORE, MOVE_FACADE, - MOVE_ROUND, + MOVE_PROTECT, + MOVE_REST, + MOVE_THUNDERBOLT, + MOVE_TOXIC, MOVE_ENDURE, MOVE_SLEEP_TALK, - MOVE_IRON_DEFENSE, - MOVE_GYRO_BALL, - MOVE_STEEL_BEAM, + MOVE_SNORE, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sMelmetalTeachableLearnset[] = { - MOVE_HEADBUTT, - MOVE_REST, - MOVE_PROTECT, - MOVE_SUBSTITUTE, - MOVE_FACADE, MOVE_BRICK_BREAK, - MOVE_THUNDER_WAVE, - MOVE_ROCK_SLIDE, - MOVE_THUNDER_PUNCH, - MOVE_TOXIC, - MOVE_ICE_PUNCH, - MOVE_THUNDERBOLT, - MOVE_THUNDER, MOVE_EARTHQUAKE, - MOVE_SELF_DESTRUCT, - MOVE_SOLAR_BEAM, + MOVE_FACADE, MOVE_HYPER_BEAM, - MOVE_SUPERPOWER, - MOVE_FLASH_CANNON, MOVE_ICE_BEAM, - MOVE_MEGA_PUNCH, - MOVE_MEGA_KICK, - MOVE_GIGA_IMPACT, - MOVE_SNORE, + MOVE_PROTECT, + MOVE_REST, MOVE_ROCK_TOMB, - MOVE_ROUND, - MOVE_ELECTRIC_TERRAIN, - MOVE_BRUTAL_SWING, + MOVE_SOLAR_BEAM, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, MOVE_BODY_SLAM, + MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, - MOVE_IRON_DEFENSE, - MOVE_GYRO_BALL, - MOVE_IRON_HEAD, - MOVE_HEAVY_SLAM, - MOVE_DARKEST_LARIAT, - MOVE_HIGH_HORSEPOWER, - MOVE_BODY_PRESS, - MOVE_STEEL_BEAM, - MOVE_STEEL_ROLLER, + MOVE_SNORE, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_MELTAN @@ -33039,6 +31370,7 @@ static const u16 sMelmetalTeachableLearnset[] = { #if P_FAMILY_GROOKEY static const u16 sGrookeyTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_FACADE, MOVE_GIGA_DRAIN, MOVE_PROTECT, @@ -33047,12 +31379,13 @@ static const u16 sGrookeyTeachableLearnset[] = { MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -33060,19 +31393,23 @@ static const u16 sGrookeyTeachableLearnset[] = { static const u16 sThwackeyTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BULLET_SEED, MOVE_FACADE, MOVE_GIGA_DRAIN, MOVE_PROTECT, MOVE_REST, MOVE_SOLAR_BEAM, + MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -33085,20 +31422,23 @@ static const u16 sRillaboomTeachableLearnset[] = { MOVE_BULLET_SEED, MOVE_EARTHQUAKE, MOVE_FACADE, + MOVE_FOCUS_PUNCH, MOVE_GIGA_DRAIN, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, MOVE_SOLAR_BEAM, + MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -33122,7 +31462,6 @@ static const u16 sScorbunnyTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -33144,8 +31483,8 @@ static const u16 sRabootTeachableLearnset[] = { MOVE_MEGA_KICK, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -33167,10 +31506,11 @@ static const u16 sCinderaceTeachableLearnset[] = { MOVE_ENDURE, MOVE_FIRE_PUNCH, MOVE_MEGA_KICK, + MOVE_MUD_SLAP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SCORBUNNY @@ -33188,11 +31528,11 @@ static const u16 sSobbleTeachableLearnset[] = { MOVE_REST, MOVE_SAFEGUARD, MOVE_SURF, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -33200,6 +31540,7 @@ static const u16 sSobbleTeachableLearnset[] = { static const u16 sDrizzileTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIVE, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -33208,11 +31549,11 @@ static const u16 sDrizzileTeachableLearnset[] = { MOVE_REST, MOVE_SAFEGUARD, MOVE_SURF, + MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -33221,6 +31562,7 @@ static const u16 sInteleonTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_DIVE, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, @@ -33232,14 +31574,15 @@ static const u16 sInteleonTeachableLearnset[] = { MOVE_SAFEGUARD, MOVE_SHADOW_BALL, MOVE_SURF, + MOVE_TAUNT, MOVE_WATERFALL, MOVE_WATER_PULSE, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -33259,11 +31602,12 @@ static const u16 sSkwovetTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33276,14 +31620,19 @@ static const u16 sGreedentTeachableLearnset[] = { MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, + MOVE_SUNNY_DAY, MOVE_THIEF, MOVE_BODY_SLAM, MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -33291,6 +31640,7 @@ static const u16 sGreedentTeachableLearnset[] = { #if P_FAMILY_ROOKIDEE static const u16 sRookideeTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_FACADE, MOVE_FLY, @@ -33302,30 +31652,32 @@ static const u16 sRookideeTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sCorvisquireTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_FACADE, MOVE_FLY, MOVE_PROTECT, MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sCorviknightTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BULK_UP, MOVE_FACADE, @@ -33333,16 +31685,19 @@ static const u16 sCorviknightTeachableLearnset[] = { MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, + MOVE_ROCK_SMASH, MOVE_STEEL_WING, + MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_UNAVAILABLE, @@ -33370,7 +31725,6 @@ static const u16 sDottlerTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33392,7 +31746,6 @@ static const u16 sOrbeetleTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_BLIPBUG @@ -33410,7 +31763,6 @@ static const u16 sNickitTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -33426,10 +31778,10 @@ static const u16 sThievulTeachableLearnset[] = { MOVE_SHADOW_BALL, MOVE_TAUNT, MOVE_THIEF, + MOVE_TORMENT, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -33449,7 +31801,6 @@ static const u16 sGossifleurTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33467,7 +31818,6 @@ static const u16 sEldegossTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GOSSIFLEUR @@ -33484,7 +31834,6 @@ static const u16 sWoolooTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -33497,13 +31846,14 @@ static const u16 sDubwoolTeachableLearnset[] = { MOVE_PROTECT, MOVE_REST, MOVE_BODY_SLAM, + MOVE_COUNTER, MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWAGGER, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -33519,12 +31869,13 @@ static const u16 sChewtleTeachableLearnset[] = { MOVE_RAIN_DANCE, MOVE_REST, MOVE_SURF, + MOVE_WATERFALL, + MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33545,13 +31896,14 @@ static const u16 sDrednawTeachableLearnset[] = { MOVE_SANDSTORM, MOVE_SURF, MOVE_WATERFALL, + MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -33571,7 +31923,6 @@ static const u16 sYamperTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -33588,10 +31939,10 @@ static const u16 sBoltundTeachableLearnset[] = { MOVE_ROAR, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -33608,13 +31959,13 @@ static const u16 sRolycolyTeachableLearnset[] = { MOVE_REST, MOVE_ROCK_TOMB, MOVE_SANDSTORM, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_EXPLOSION, MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33630,11 +31981,14 @@ static const u16 sCarkolTeachableLearnset[] = { MOVE_REST, MOVE_ROCK_TOMB, MOVE_SANDSTORM, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33653,15 +32007,17 @@ static const u16 sCoalossalTeachableLearnset[] = { MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, MOVE_BODY_SLAM, MOVE_ENDURE, + MOVE_EXPLOSION, MOVE_FIRE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ROLYCOLY @@ -33675,6 +32031,7 @@ static const u16 sApplinTeachableLearnset[] = { }; static const u16 sFlappleTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BULLET_SEED, MOVE_FACADE, @@ -33685,10 +32042,11 @@ static const u16 sFlappleTeachableLearnset[] = { MOVE_REST, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_DEFENSE_CURL, MOVE_ENDURE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33701,21 +32059,56 @@ static const u16 sAppletunTeachableLearnset[] = { MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, MOVE_ENDURE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #if P_GEN_9_CROSS_EVOS static const u16 sDipplinTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_UNAVAILABLE, +}; + +static const u16 sHydrappleTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_GEN_9_CROSS_EVOS @@ -33729,12 +32122,14 @@ static const u16 sSilicobraTeachableLearnset[] = { MOVE_FACADE, MOVE_PROTECT, MOVE_REST, + MOVE_ROCK_TOMB, MOVE_SANDSTORM, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33748,11 +32143,12 @@ static const u16 sSandacondaTeachableLearnset[] = { MOVE_REST, MOVE_ROCK_TOMB, MOVE_SANDSTORM, + MOVE_BODY_SLAM, MOVE_ENDURE, + MOVE_MUD_SLAP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SILICOBRA @@ -33773,11 +32169,11 @@ static const u16 sCramorantTeachableLearnset[] = { MOVE_STEEL_WING, MOVE_SURF, MOVE_THIEF, + MOVE_WATER_PULSE, MOVE_ENDURE, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CRAMORANT @@ -33791,32 +32187,35 @@ static const u16 sArrokudaTeachableLearnset[] = { MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, + MOVE_SURF, MOVE_WATERFALL, + MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sBarraskewdaTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BLIZZARD, MOVE_BRICK_BREAK, MOVE_DIVE, MOVE_FACADE, MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, MOVE_SURF, MOVE_WATERFALL, + MOVE_WATER_PULSE, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -33831,19 +32230,22 @@ static const u16 sToxelTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; static const u16 sToxtricityAmpedTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -33851,9 +32253,9 @@ static const u16 sToxtricityAmpedTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -33863,13 +32265,17 @@ static const u16 sToxtricityAmpedTeachableLearnset[] = { static const u16 sToxtricityLowKeyTeachableLearnset[] = { MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, MOVE_SHOCK_WAVE, MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TOXIC, @@ -33877,9 +32283,9 @@ static const u16 sToxtricityLowKeyTeachableLearnset[] = { MOVE_FIRE_PUNCH, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, + MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -33900,7 +32306,6 @@ static const u16 sSizzlipedeTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33915,10 +32320,11 @@ static const u16 sCentiskorchTeachableLearnset[] = { MOVE_REST, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, + MOVE_DEFENSE_CURL, MOVE_ENDURE, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SIZZLIPEDE @@ -33942,7 +32348,6 @@ static const u16 sClobbopusTeachableLearnset[] = { MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -33964,30 +32369,32 @@ static const u16 sGrapploctTeachableLearnset[] = { MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_MEGA_PUNCH, + MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CLOBBOPUS #if P_FAMILY_SINISTEA static const u16 sSinisteaTeachableLearnset[] = { + MOVE_CALM_MIND, MOVE_FACADE, MOVE_GIGA_DRAIN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_ENDURE, MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; static const u16 sPolteageistTeachableLearnset[] = { + MOVE_CALM_MIND, MOVE_FACADE, MOVE_GIGA_DRAIN, MOVE_HYPER_BEAM, @@ -33997,11 +32404,11 @@ static const u16 sPolteageistTeachableLearnset[] = { MOVE_REFLECT, MOVE_REST, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, MOVE_ENDURE, MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SINISTEA @@ -34015,13 +32422,16 @@ static const u16 sHatennaTeachableLearnset[] = { MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_REFLECT, MOVE_REST, MOVE_SAFEGUARD, MOVE_SKILL_SWAP, MOVE_ENDURE, + MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -34034,13 +32444,16 @@ static const u16 sHattremTeachableLearnset[] = { MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_REFLECT, MOVE_REST, MOVE_SAFEGUARD, MOVE_SKILL_SWAP, MOVE_ENDURE, + MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -34054,14 +32467,17 @@ static const u16 sHattereneTeachableLearnset[] = { MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, + MOVE_REFLECT, MOVE_REST, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_ENDURE, + MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34072,7 +32488,9 @@ static const u16 sHattereneTeachableLearnset[] = { static const u16 sImpidimpTeachableLearnset[] = { MOVE_ATTRACT, MOVE_FACADE, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_REFLECT, MOVE_REST, MOVE_TAUNT, MOVE_THIEF, @@ -34083,7 +32501,6 @@ static const u16 sImpidimpTeachableLearnset[] = { MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34105,7 +32522,6 @@ static const u16 sMorgremTeachableLearnset[] = { MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34116,6 +32532,7 @@ static const u16 sGrimmsnarlTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULK_UP, MOVE_FACADE, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, @@ -34133,7 +32550,6 @@ static const u16 sGrimmsnarlTeachableLearnset[] = { MOVE_METRONOME, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, @@ -34150,7 +32566,6 @@ static const u16 sMilceryTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -34168,9 +32583,9 @@ static const u16 sAlcremieTeachableLearnset[] = { MOVE_SOLAR_BEAM, MOVE_ENDURE, MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_MILCERY @@ -34182,15 +32597,18 @@ static const u16 sFalinksTeachableLearnset[] = { MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_ENDURE, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -34200,16 +32618,18 @@ static const u16 sFalinksTeachableLearnset[] = { static const u16 sPincurchinTeachableLearnset[] = { MOVE_ATTRACT, MOVE_FACADE, + MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, MOVE_SURF, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -34225,7 +32645,6 @@ static const u16 sSnomTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; @@ -34247,7 +32666,7 @@ static const u16 sFrosmothTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SNOM @@ -34263,13 +32682,14 @@ static const u16 sStonjournerTeachableLearnset[] = { MOVE_ROCK_TOMB, MOVE_SAFEGUARD, MOVE_SANDSTORM, + MOVE_SUNNY_DAY, MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_MEGA_KICK, + MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_STONJOURNER @@ -34281,19 +32701,22 @@ static const u16 sEiscueTeachableLearnset[] = { MOVE_DIVE, MOVE_FACADE, MOVE_HAIL, + MOVE_HYPER_BEAM, MOVE_ICE_BEAM, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, MOVE_SURF, MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ICE_PUNCH, MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_EISCUE @@ -34307,12 +32730,13 @@ static const u16 sIndeedeeMaleTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_REST, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -34328,12 +32752,13 @@ static const u16 sIndeedeeFemaleTeachableLearnset[] = { MOVE_REST, MOVE_SAFEGUARD, MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_METRONOME, MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -34352,10 +32777,10 @@ static const u16 sMorpekoTeachableLearnset[] = { MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_TORMENT, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, MOVE_THUNDER_PUNCH, @@ -34369,11 +32794,13 @@ static const u16 sCufantTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, + MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_PROTECT, MOVE_REST, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_STRENGTH, MOVE_BODY_SLAM, MOVE_DEFENSE_CURL, @@ -34384,7 +32811,6 @@ static const u16 sCufantTeachableLearnset[] = { MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_UNAVAILABLE, }; @@ -34400,16 +32826,19 @@ static const u16 sCopperajahTeachableLearnset[] = { MOVE_REST, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_STRENGTH, MOVE_TAUNT, MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CUFANT @@ -34439,7 +32868,6 @@ static const u16 sDracozoltTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34470,7 +32898,6 @@ static const u16 sArctozoltTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34495,7 +32922,6 @@ static const u16 sDracovishTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_DRACOVISH @@ -34520,7 +32946,6 @@ static const u16 sArctovishTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ARCTOVISH @@ -34536,21 +32961,50 @@ static const u16 sDuraludonTeachableLearnset[] = { MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SOLAR_BEAM, MOVE_THUNDER, MOVE_THUNDERBOLT, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; + +#if P_GEN_9_CROSS_EVOS +static const u16 sArchaludonTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SOLAR_BEAM, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY @@ -34563,7 +33017,6 @@ static const u16 sDreepyTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34572,13 +33025,17 @@ static const u16 sDreepyTeachableLearnset[] = { static const u16 sDrakloakTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIVE, + MOVE_DOUBLE_TEAM, MOVE_FACADE, MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_REFLECT, MOVE_REST, MOVE_SHADOW_BALL, MOVE_STEEL_WING, + MOVE_SUNNY_DAY, MOVE_SURF, MOVE_THIEF, MOVE_THUNDER, @@ -34587,7 +33044,6 @@ static const u16 sDrakloakTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34596,6 +33052,7 @@ static const u16 sDrakloakTeachableLearnset[] = { static const u16 sDragapultTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIVE, + MOVE_DOUBLE_TEAM, MOVE_DRAGON_CLAW, MOVE_FACADE, MOVE_FIRE_BLAST, @@ -34609,6 +33066,7 @@ static const u16 sDragapultTeachableLearnset[] = { MOVE_SHADOW_BALL, MOVE_SOLAR_BEAM, MOVE_STEEL_WING, + MOVE_SUNNY_DAY, MOVE_SURF, MOVE_THIEF, MOVE_THUNDER, @@ -34618,7 +33076,6 @@ static const u16 sDragapultTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34634,10 +33091,10 @@ static const u16 sZacianTeachableLearnset[] = { MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -34646,20 +33103,25 @@ static const u16 sZacianTeachableLearnset[] = { #if P_FAMILY_ZAMAZENTA static const u16 sZamazentaTeachableLearnset[] = { + MOVE_BRICK_BREAK, MOVE_DIG, MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, + MOVE_ROAR, MOVE_SAFEGUARD, + MOVE_SANDSTORM, MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -34668,21 +33130,24 @@ static const u16 sZamazentaTeachableLearnset[] = { #if P_FAMILY_ETERNATUS static const u16 sEternatusTeachableLearnset[] = { MOVE_FACADE, + MOVE_FIRE_BLAST, MOVE_FLAMETHROWER, MOVE_FLY, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, MOVE_TOXIC, + MOVE_BODY_SLAM, MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ETERNATUS @@ -34701,6 +33166,7 @@ static const u16 sKubfuTeachableLearnset[] = { MOVE_ROCK_SMASH, MOVE_BODY_SLAM, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FIRE_PUNCH, @@ -34709,7 +33175,7 @@ static const u16 sKubfuTeachableLearnset[] = { MOVE_MEGA_PUNCH, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -34724,11 +33190,13 @@ static const u16 sUrshifuSingleStrikeStyleTeachableLearnset[] = { MOVE_FOCUS_PUNCH, MOVE_PROTECT, MOVE_REST, + MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_TAUNT, MOVE_BODY_SLAM, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FIRE_PUNCH, @@ -34738,8 +33206,8 @@ static const u16 sUrshifuSingleStrikeStyleTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -34762,6 +33230,7 @@ static const u16 sUrshifuRapidStrikeStyleTeachableLearnset[] = { MOVE_WATERFALL, MOVE_BODY_SLAM, MOVE_COUNTER, + MOVE_DOUBLE_EDGE, MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, MOVE_FIRE_PUNCH, @@ -34771,8 +33240,8 @@ static const u16 sUrshifuRapidStrikeStyleTeachableLearnset[] = { MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; @@ -34780,31 +33249,35 @@ static const u16 sUrshifuRapidStrikeStyleTeachableLearnset[] = { #if P_FAMILY_ZARUDE static const u16 sZarudeTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_BULK_UP, MOVE_BULLET_SEED, MOVE_DIG, MOVE_FACADE, + MOVE_FOCUS_PUNCH, MOVE_GIGA_DRAIN, MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, + MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_TAUNT, MOVE_THIEF, MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_MEGA_KICK, MOVE_MEGA_PUNCH, MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWAGGER, MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ZARUDE @@ -34826,7 +33299,6 @@ static const u16 sRegielekiTeachableLearnset[] = { MOVE_EXPLOSION, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -34836,6 +33308,7 @@ static const u16 sRegielekiTeachableLearnset[] = { #if P_FAMILY_REGIDRAGO static const u16 sRegidragoTeachableLearnset[] = { MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, @@ -34847,7 +33320,7 @@ static const u16 sRegidragoTeachableLearnset[] = { MOVE_EXPLOSION, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_REGIDRAGO @@ -34861,6 +33334,7 @@ static const u16 sGlastrierTeachableLearnset[] = { MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_REST, + MOVE_ROAR, MOVE_TAUNT, MOVE_TORMENT, MOVE_BODY_SLAM, @@ -34869,7 +33343,6 @@ static const u16 sGlastrierTeachableLearnset[] = { MOVE_ICY_WIND, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; @@ -34881,6 +33354,7 @@ static const u16 sSpectrierTeachableLearnset[] = { MOVE_FACADE, MOVE_HYPER_BEAM, MOVE_PROTECT, + MOVE_PSYCHIC, MOVE_REST, MOVE_SHADOW_BALL, MOVE_TAUNT, @@ -34889,7 +33363,6 @@ static const u16 sSpectrierTeachableLearnset[] = { MOVE_ENDURE, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -34913,9 +33386,9 @@ static const u16 sCalyrexTeachableLearnset[] = { MOVE_SUNNY_DAY, MOVE_ENDURE, MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -34935,6 +33408,7 @@ static const u16 sCalyrexIceRiderTeachableLearnset[] = { MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, + MOVE_ROAR, MOVE_SAFEGUARD, MOVE_SKILL_SWAP, MOVE_SOLAR_BEAM, @@ -34946,9 +33420,9 @@ static const u16 sCalyrexIceRiderTeachableLearnset[] = { MOVE_ENDURE, MOVE_ICY_WIND, MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, @@ -34975,9 +33449,9 @@ static const u16 sCalyrexShadowRiderTeachableLearnset[] = { MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, MOVE_SNORE, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_UNAVAILABLE, }; @@ -34986,702 +33460,365 @@ static const u16 sCalyrexShadowRiderTeachableLearnset[] = { #if P_FAMILY_ENAMORUS static const u16 sEnamorusTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_FLY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ENAMORUS #if P_FAMILY_SPRIGATITO static const u16 sSprigatitoTeachableLearnset[] = { - MOVE_ACROBATICS, - MOVE_AGILITY, MOVE_BULLET_SEED, - MOVE_CHARM, - MOVE_DISARMING_VOICE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FAKE_TEARS, MOVE_GIGA_DRAIN, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_GRASS_PLEDGE, - MOVE_HELPING_HAND, - MOVE_LEAF_STORM, - MOVE_MAGICAL_LEAF, - MOVE_MUD_SLAP, - MOVE_NASTY_PLOT, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_TRAILBLAZE, - MOVE_U_TURN, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sFloragatoTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AGILITY, MOVE_BULLET_SEED, - MOVE_CHARM, - MOVE_DISARMING_VOICE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_FLING, MOVE_GIGA_DRAIN, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_GRASS_PLEDGE, - MOVE_HELPING_HAND, - MOVE_LEAF_STORM, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_MAGICAL_LEAF, - MOVE_MUD_SLAP, - MOVE_NASTY_PLOT, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, - MOVE_TRAILBLAZE, - MOVE_U_TURN, MOVE_UNAVAILABLE, }; static const u16 sMeowscaradaTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_AURA_SPHERE, MOVE_BRICK_BREAK, MOVE_BULLET_SEED, - MOVE_CHARM, - MOVE_CHILLING_WATER, - MOVE_DARK_PULSE, - MOVE_DISARMING_VOICE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, + MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_FLING, - MOVE_FOUL_PLAY, - MOVE_FRENZY_PLANT, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_GRASS_PLEDGE, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_LEAF_STORM, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_MAGICAL_LEAF, - MOVE_MUD_SLAP, - MOVE_NASTY_PLOT, - MOVE_PLAY_ROUGH, - MOVE_POLLEN_PUFF, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_REST, - MOVE_SEED_BOMB, MOVE_SHADOW_BALL, - MOVE_SHADOW_CLAW, MOVE_SKILL_SWAP, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_SPIKES, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, - MOVE_TOXIC_SPIKES, - MOVE_TRAILBLAZE, - MOVE_TRICK, - MOVE_TRICK_ROOM, - MOVE_U_TURN, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SPRIGATITO #if P_FAMILY_FUECOCO static const u16 sFuecocoTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_CRUNCH, MOVE_DIG, - MOVE_DISARMING_VOICE, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, - MOVE_FIRE_PLEDGE, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_HEAT_WAVE, - MOVE_HELPING_HAND, - MOVE_HYPER_VOICE, - MOVE_MUD_SLAP, - MOVE_OUTRAGE, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, + MOVE_ROAR, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_WILL_O_WISP, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sCrocalorTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_CRUNCH, MOVE_DIG, - MOVE_DISARMING_VOICE, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, - MOVE_FIRE_PLEDGE, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_HEAT_WAVE, - MOVE_HELPING_HAND, - MOVE_HYPER_VOICE, - MOVE_MUD_SLAP, - MOVE_OUTRAGE, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, + MOVE_ROAR, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_WILL_O_WISP, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sSkeledirgeTeachableLearnset[] = { - MOVE_BLAST_BURN, - MOVE_BODY_SLAM, - MOVE_CRUNCH, MOVE_DIG, - MOVE_DISARMING_VOICE, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, - MOVE_FIRE_PLEDGE, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HELPING_HAND, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_IMPRISON, - MOVE_MUD_SLAP, - MOVE_NIGHT_SHADE, - MOVE_OUTRAGE, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, + MOVE_ROAR, MOVE_SHADOW_BALL, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_SNARL, MOVE_SOLAR_BEAM, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_WILL_O_WISP, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FUECOCO #if P_FAMILY_QUAXLY static const u16 sQuaxlyTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BATON_PASS, - MOVE_BRAVE_BIRD, - MOVE_CHILLING_WATER, - MOVE_DISARMING_VOICE, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, - MOVE_LIQUIDATION, - MOVE_LOW_KICK, - MOVE_MISTY_TERRAIN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, MOVE_SURF, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_WATER_PLEDGE, MOVE_UNAVAILABLE, }; static const u16 sQuaxwellTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BATON_PASS, - MOVE_BRAVE_BIRD, - MOVE_CHILLING_WATER, - MOVE_DISARMING_VOICE, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, - MOVE_LIQUIDATION, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_MISTY_TERRAIN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, MOVE_SURF, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_WATER_PLEDGE, MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sQuaquavalTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BATON_PASS, - MOVE_BRAVE_BIRD, MOVE_BRICK_BREAK, MOVE_BULK_UP, - MOVE_CHILLING_WATER, - MOVE_CLOSE_COMBAT, - MOVE_DISARMING_VOICE, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, - MOVE_HURRICANE, - MOVE_HYDRO_CANNON, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, - MOVE_ICE_SPINNER, - MOVE_ICY_WIND, - MOVE_LIQUIDATION, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_MISTY_TERRAIN, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SURF, + MOVE_TAUNT, + MOVE_WATER_PULSE, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_SWIFT, MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, - MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_U_TURN, - MOVE_WATER_PLEDGE, - MOVE_WATER_PULSE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_QUAXLY #if P_FAMILY_LECHONK static const u16 sLechonkTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_BULLDOZE, MOVE_BULLET_SEED, - MOVE_CHILLING_WATER, MOVE_DIG, - MOVE_DISARMING_VOICE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_HELPING_HAND, - MOVE_HYPER_VOICE, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sOinkologneTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, MOVE_BULLET_SEED, - MOVE_CHILLING_WATER, MOVE_DIG, - MOVE_DISARMING_VOICE, - MOVE_EARTH_POWER, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_LECHONK #if P_FAMILY_TAROUNTULA static const u16 sTarountulaTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_BUG_BUZZ, MOVE_BULLET_SEED, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FALSE_SWIPE, MOVE_GIGA_DRAIN, - MOVE_GRASS_KNOT, - MOVE_LEECH_LIFE, - MOVE_POISON_JAB, - MOVE_POUNCE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_SPIKES, - MOVE_STRUGGLE_BUG, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TOXIC_SPIKES, - MOVE_TRAILBLAZE, - MOVE_X_SCISSOR, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sSpidopsTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_BUG_BUZZ, MOVE_BULLET_SEED, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FALSE_SWIPE, - MOVE_FLING, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASS_KNOT, - MOVE_LEECH_LIFE, - MOVE_LOW_KICK, - MOVE_POISON_JAB, - MOVE_POUNCE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, MOVE_ROCK_TOMB, - MOVE_SCARY_FACE, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_SPIKES, - MOVE_STRUGGLE_BUG, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TOXIC_SPIKES, - MOVE_TRAILBLAZE, - MOVE_U_TURN, - MOVE_X_SCISSOR, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_TAROUNTULA #if P_FAMILY_NYMBLE static const u16 sNymbleTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_BUG_BUZZ, - MOVE_ENDURE, MOVE_FACADE, - MOVE_LEECH_LIFE, - MOVE_POUNCE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_STRUGGLE_BUG, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_U_TURN, - MOVE_X_SCISSOR, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sLokixTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AGILITY, MOVE_BRICK_BREAK, - MOVE_BUG_BUZZ, - MOVE_DARK_PULSE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_GIGA_IMPACT, - MOVE_LEECH_LIFE, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_POUNCE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_STRUGGLE_BUG, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_U_TURN, - MOVE_X_SCISSOR, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_NYMBLE #if P_FAMILY_PAWMI static const u16 sPawmiTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_BATON_PASS, - MOVE_CHARGE_BEAM, - MOVE_CHARM, - MOVE_CRUNCH, MOVE_DIG, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_HELPING_HAND, - MOVE_METAL_CLAW, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, - MOVE_THUNDER_FANG, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_WAVE, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; static const u16 sPawmoTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_BATON_PASS, - MOVE_CHARGE_BEAM, - MOVE_CHARM, - MOVE_CRUNCH, MOVE_DIG, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_HELPING_HAND, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_METAL_CLAW, - MOVE_PLAY_ROUGH, + MOVE_FOCUS_PUNCH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, - MOVE_THUNDER_FANG, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; static const u16 sPawmotTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_BATON_PASS, - MOVE_BODY_PRESS, MOVE_BRICK_BREAK, MOVE_BULK_UP, - MOVE_CHARGE_BEAM, - MOVE_CHARM, - MOVE_CLOSE_COMBAT, - MOVE_CRUNCH, MOVE_DIG, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_PUNCH, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, - MOVE_ICE_PUNCH, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_METAL_CLAW, - MOVE_METRONOME, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, MOVE_ROCK_TOMB, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, - MOVE_THUNDER_FANG, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_METRONOME, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_PAWMI @@ -35689,155 +33826,81 @@ static const u16 sPawmotTeachableLearnset[] = { #if P_FAMILY_TANDEMAUS static const u16 sTandemausTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_BATON_PASS, MOVE_BULLET_SEED, - MOVE_CHARM, - MOVE_CRUNCH, MOVE_DIG, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, - MOVE_HYPER_VOICE, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_THUNDER_WAVE, - MOVE_U_TURN, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sMausholdTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AGILITY, MOVE_BULLET_SEED, - MOVE_CHARM, - MOVE_CHILLING_WATER, - MOVE_CRUNCH, MOVE_DIG, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_GIGA_IMPACT, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_THUNDER_WAVE, - MOVE_TRAILBLAZE, - MOVE_U_TURN, MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_TANDEMAUS #if P_FAMILY_FIDOUGH static const u16 sFidoughTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_BATON_PASS, - MOVE_BODY_SLAM, - MOVE_CHARM, - MOVE_CRUNCH, - MOVE_DAZZLING_GLEAM, MOVE_DIG, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_FANG, - MOVE_HELPING_HAND, - MOVE_ICE_FANG, - MOVE_MISTY_TERRAIN, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_PLAY_ROUGH, MOVE_PROTECT, - MOVE_PSYCHIC_FANGS, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, + MOVE_ROAR, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_TRAILBLAZE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sDachsbunTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_BATON_PASS, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_CHARM, - MOVE_CRUNCH, - MOVE_DAZZLING_GLEAM, MOVE_DIG, - MOVE_DRAINING_KISS, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_FANG, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_ICE_FANG, - MOVE_MISTY_TERRAIN, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_PLAY_ROUGH, MOVE_PROTECT, - MOVE_PSYCHIC_FANGS, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, + MOVE_ROAR, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_TRAILBLAZE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FIDOUGH @@ -35845,89 +33908,49 @@ static const u16 sDachsbunTeachableLearnset[] = { #if P_FAMILY_SMOLIV static const u16 sSmolivTeachableLearnset[] = { MOVE_BULLET_SEED, - MOVE_CHARM, - MOVE_EARTH_POWER, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_GIGA_DRAIN, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, - MOVE_LEAF_STORM, - MOVE_MAGICAL_LEAF, MOVE_PROTECT, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_SWIFT, - MOVE_TERA_BLAST, - MOVE_TRAILBLAZE, MOVE_UNAVAILABLE, }; static const u16 sDollivTeachableLearnset[] = { MOVE_BULLET_SEED, - MOVE_CHARM, - MOVE_EARTH_POWER, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_GIGA_DRAIN, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, - MOVE_LEAF_STORM, - MOVE_MAGICAL_LEAF, MOVE_PROTECT, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_SWIFT, - MOVE_TERA_BLAST, - MOVE_TRAILBLAZE, MOVE_UNAVAILABLE, }; static const u16 sArbolivaTeachableLearnset[] = { MOVE_BULLET_SEED, - MOVE_CHARM, - MOVE_DAZZLING_GLEAM, - MOVE_EARTH_POWER, - MOVE_ENCORE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FLING, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_LEAF_STORM, MOVE_LIGHT_SCREEN, - MOVE_MAGICAL_LEAF, - MOVE_METRONOME, - MOVE_POLLEN_PUFF, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, + MOVE_SAFEGUARD, MOVE_SOLAR_BEAM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_SWIFT, - MOVE_TERA_BLAST, - MOVE_TRAILBLAZE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SMOLIV @@ -35935,545 +33958,294 @@ static const u16 sArbolivaTeachableLearnset[] = { #if P_FAMILY_SQUAWKABILLY static const u16 sSquawkabillyTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BRAVE_BIRD, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, MOVE_FLY, - MOVE_FOUL_PLAY, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HELPING_HAND, - MOVE_HURRICANE, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_POUNCE, MOVE_PROTECT, MOVE_REST, - MOVE_REVERSAL, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAILWIND, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_U_TURN, + MOVE_TORMENT, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SQUAWKABILLY #if P_FAMILY_NACLI static const u16 sNacliTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_BULLDOZE, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_ROCK_SLIDE, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sNaclstackTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_ROCK_SLIDE, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sGarganaclTeachableLearnset[] = { - MOVE_AVALANCHE, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_BULLDOZE, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_PUNCH, - MOVE_FLASH_CANNON, - MOVE_FLING, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, - MOVE_ICE_PUNCH, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_ROCK_BLAST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_THUNDER_PUNCH, - MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_NACLI #if P_FAMILY_CHARCADET static const u16 sCharcadetTeachableLearnset[] = { - MOVE_CONFUSE_RAY, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_HEAT_WAVE, - MOVE_HELPING_HAND, - MOVE_NIGHT_SHADE, MOVE_OVERHEAT, MOVE_PROTECT, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, + MOVE_REST, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_WILL_O_WISP, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sArmarougeTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_AURA_SPHERE, MOVE_CALM_MIND, - MOVE_CONFUSE_RAY, - MOVE_DARK_PULSE, - MOVE_DRAGON_PULSE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_FLASH_CANNON, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_HEAT_WAVE, - MOVE_HELPING_HAND, - MOVE_IRON_DEFENSE, MOVE_LIGHT_SCREEN, - MOVE_NIGHT_SHADE, MOVE_OVERHEAT, MOVE_PROTECT, - MOVE_PSYBEAM, MOVE_PSYCHIC, - MOVE_PSYCHIC_TERRAIN, - MOVE_PSYSHOCK, MOVE_REFLECT, MOVE_REST, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_TRICK, - MOVE_TRICK_ROOM, - MOVE_WILL_O_WISP, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sCeruledgeTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULK_UP, - MOVE_CLOSE_COMBAT, - MOVE_CONFUSE_RAY, MOVE_DRAGON_CLAW, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FALSE_SWIPE, MOVE_FIRE_BLAST, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_FLING, - MOVE_HEAT_WAVE, - MOVE_HELPING_HAND, - MOVE_HEX, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, MOVE_LIGHT_SCREEN, - MOVE_NIGHT_SHADE, MOVE_OVERHEAT, - MOVE_PHANTOM_FORCE, - MOVE_POISON_JAB, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, MOVE_SHADOW_BALL, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_WILL_O_WISP, - MOVE_X_SCISSOR, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CHARCADET #if P_FAMILY_TADBULB static const u16 sTadbulbTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_CHARGE_BEAM, - MOVE_CHILLING_WATER, - MOVE_CONFUSE_RAY, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, - MOVE_HYPER_VOICE, MOVE_LIGHT_SCREEN, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, - MOVE_THUNDER_WAVE, - MOVE_VOLT_SWITCH, MOVE_WATER_PULSE, - MOVE_WILD_CHARGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sBelliboltTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_CHARGE_BEAM, - MOVE_CHILLING_WATER, - MOVE_CONFUSE_RAY, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, - MOVE_GIGA_IMPACT, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, MOVE_LIGHT_SCREEN, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, - MOVE_THUNDER_WAVE, - MOVE_VOLT_SWITCH, + MOVE_TOXIC, MOVE_WATER_PULSE, - MOVE_WILD_CHARGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_TADBULB #if P_FAMILY_WATTREL static const u16 sWattrelTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BRAVE_BIRD, - MOVE_CHARGE_BEAM, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, MOVE_FACADE, MOVE_FLY, - MOVE_HURRICANE, MOVE_PROTECT, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_TAILWIND, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_WAVE, - MOVE_U_TURN, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; static const u16 sKilowattrelTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BRAVE_BIRD, - MOVE_CHARGE_BEAM, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, MOVE_FACADE, MOVE_FLY, - MOVE_GIGA_IMPACT, - MOVE_HURRICANE, MOVE_HYPER_BEAM, MOVE_PROTECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_TAILWIND, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_WAVE, - MOVE_U_TURN, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_WATTREL #if P_FAMILY_MASCHIFF static const u16 sMaschiffTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_CHARM, - MOVE_CRUNCH, - MOVE_DARK_PULSE, MOVE_DIG, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_FIRE_FANG, - MOVE_HELPING_HAND, - MOVE_ICE_FANG, - MOVE_PLAY_ROUGH, MOVE_PROTECT, - MOVE_PSYCHIC_FANGS, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_SUBSTITUTE, + MOVE_ROAR, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_THUNDER_FANG, - MOVE_TRAILBLAZE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; static const u16 sMabosstiffTeachableLearnset[] = { - MOVE_BODY_SLAM, - MOVE_CHARM, - MOVE_CRUNCH, - MOVE_DARK_PULSE, MOVE_DIG, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_FIRE_FANG, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_ICE_FANG, - MOVE_OUTRAGE, - MOVE_PLAY_ROUGH, MOVE_PROTECT, - MOVE_PSYCHIC_FANGS, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_SUBSTITUTE, + MOVE_ROAR, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_THUNDER_FANG, - MOVE_TRAILBLAZE, - MOVE_WILD_CHARGE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_MASCHIFF #if P_FAMILY_SHROODLE static const u16 sShroodleTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_ACROBATICS, - MOVE_BATON_PASS, MOVE_DIG, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_FOUL_PLAY, - MOVE_GUNK_SHOT, - MOVE_HELPING_HAND, - MOVE_METRONOME, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_NASTY_PLOT, - MOVE_POISON_JAB, - MOVE_POUNCE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_U_TURN, - MOVE_VENOSHOCK, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; static const u16 sGrafaiaiTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_ACROBATICS, - MOVE_BATON_PASS, MOVE_DIG, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_FOUL_PLAY, - MOVE_GIGA_IMPACT, - MOVE_GUNK_SHOT, - MOVE_HELPING_HAND, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_METRONOME, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_NASTY_PLOT, - MOVE_POISON_JAB, - MOVE_POISON_TAIL, - MOVE_POUNCE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_U_TURN, - MOVE_VENOSHOCK, - MOVE_X_SCISSOR, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SHROODLE @@ -36481,189 +34253,99 @@ static const u16 sGrafaiaiTeachableLearnset[] = { #if P_FAMILY_BRAMBLIN static const u16 sBramblinTeachableLearnset[] = { MOVE_BULLET_SEED, - MOVE_CONFUSE_RAY, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_GIGA_DRAIN, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HEX, - MOVE_LEAF_STORM, - MOVE_NIGHT_SHADE, - MOVE_PHANTOM_FORCE, - MOVE_POUNCE, MOVE_PROTECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_SPIKES, - MOVE_SUBSTITUTE, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sBrambleghastTeachableLearnset[] = { MOVE_BULLET_SEED, - MOVE_CONFUSE_RAY, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_LEAF_STORM, - MOVE_NIGHT_SHADE, - MOVE_PHANTOM_FORCE, - MOVE_POUNCE, MOVE_PROTECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_SPIKES, - MOVE_SUBSTITUTE, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_BRAMBLIN #if P_FAMILY_TOEDSCOOL static const u16 sToedscoolTeachableLearnset[] = { - MOVE_ACID_SPRAY, MOVE_BULLET_SEED, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, - MOVE_EARTH_POWER, - MOVE_ENDURE, - MOVE_ENERGY_BALL, - MOVE_FLASH_CANNON, - MOVE_FOUL_PLAY, MOVE_GIGA_DRAIN, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HEX, - MOVE_LEAF_STORM, MOVE_LIGHT_SCREEN, - MOVE_MAGICAL_LEAF, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, - MOVE_SPIKES, - MOVE_SUBSTITUTE, - MOVE_SWIFT, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_TOXIC_SPIKES, - MOVE_TRAILBLAZE, - MOVE_TRICK_ROOM, - MOVE_VENOSHOCK, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sToedscruelTeachableLearnset[] = { - MOVE_ACID_SPRAY, MOVE_BULLET_SEED, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, - MOVE_EARTH_POWER, - MOVE_ENDURE, - MOVE_ENERGY_BALL, - MOVE_FLASH_CANNON, - MOVE_FOUL_PLAY, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_LEAF_STORM, MOVE_LIGHT_SCREEN, - MOVE_MAGICAL_LEAF, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, - MOVE_SPIKES, - MOVE_SUBSTITUTE, - MOVE_SWIFT, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_TOXIC_SPIKES, - MOVE_TRAILBLAZE, - MOVE_TRICK_ROOM, - MOVE_VENOSHOCK, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_TOEDSCOOL #if P_FAMILY_KLAWF static const u16 sKlawfTeachableLearnset[] = { - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_BULLDOZE, MOVE_DIG, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_IRON_DEFENSE, - MOVE_METAL_CLAW, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_ROCK_BLAST, - MOVE_ROCK_SLIDE, + MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_X_SCISSOR, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_KLAWF @@ -36671,343 +34353,191 @@ static const u16 sKlawfTeachableLearnset[] = { #if P_FAMILY_CAPSAKID static const u16 sCapsakidTeachableLearnset[] = { MOVE_BULLET_SEED, - MOVE_CRUNCH, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_GIGA_DRAIN, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, - MOVE_LEAF_STORM, - MOVE_MAGICAL_LEAF, MOVE_PROTECT, MOVE_REST, MOVE_SANDSTORM, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_ZEN_HEADBUTT, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sScovillainTeachableLearnset[] = { MOVE_BULLET_SEED, - MOVE_CRUNCH, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, MOVE_FLAMETHROWER, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_LEAF_STORM, - MOVE_MAGICAL_LEAF, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_WILL_O_WISP, - MOVE_ZEN_HEADBUTT, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CAPSAKID #if P_FAMILY_RELLOR static const u16 sRellorTeachableLearnset[] = { - MOVE_BUG_BUZZ, MOVE_DIG, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_GUNK_SHOT, - MOVE_IRON_DEFENSE, - MOVE_LEECH_LIFE, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_POUNCE, MOVE_PROTECT, MOVE_REST, MOVE_ROCK_TOMB, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, - MOVE_STRUGGLE_BUG, - MOVE_SUBSTITUTE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_X_SCISSOR, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sRabscaTeachableLearnset[] = { - MOVE_BUG_BUZZ, MOVE_CALM_MIND, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, MOVE_DIG, - MOVE_EARTH_POWER, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FLING, - MOVE_GIGA_IMPACT, - MOVE_GUNK_SHOT, MOVE_HYPER_BEAM, - MOVE_IMPRISON, - MOVE_IRON_DEFENSE, - MOVE_LEECH_LIFE, MOVE_LIGHT_SCREEN, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_POUNCE, - MOVE_POWER_GEM, MOVE_PROTECT, - MOVE_PSYBEAM, MOVE_PSYCHIC, - MOVE_PSYCHIC_TERRAIN, - MOVE_PSYSHOCK, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, MOVE_SANDSTORM, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, - MOVE_STORED_POWER, - MOVE_STRUGGLE_BUG, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRICK, - MOVE_TRICK_ROOM, - MOVE_X_SCISSOR, - MOVE_ZEN_HEADBUTT, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_RELLOR #if P_FAMILY_FLITTLE static const u16 sFlittleTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_BATON_PASS, MOVE_CALM_MIND, - MOVE_CONFUSE_RAY, - MOVE_DISARMING_VOICE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FOUL_PLAY, - MOVE_HELPING_HAND, MOVE_LIGHT_SCREEN, - MOVE_MUD_SLAP, - MOVE_POUNCE, MOVE_PROTECT, - MOVE_PSYBEAM, MOVE_PSYCHIC, - MOVE_PSYCHIC_TERRAIN, - MOVE_PSYSHOCK, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, MOVE_SANDSTORM, - MOVE_SEED_BOMB, MOVE_SKILL_SWAP, - MOVE_SLEEP_TALK, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRICK, - MOVE_TRICK_ROOM, - MOVE_U_TURN, - MOVE_ZEN_HEADBUTT, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sEspathraTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_BATON_PASS, - MOVE_BODY_SLAM, - MOVE_BRAVE_BIRD, MOVE_CALM_MIND, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, - MOVE_DISARMING_VOICE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_FOUL_PLAY, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, MOVE_LIGHT_SCREEN, - MOVE_LOW_KICK, - MOVE_MUD_SLAP, - MOVE_NIGHT_SHADE, - MOVE_POUNCE, MOVE_PROTECT, - MOVE_PSYBEAM, MOVE_PSYCHIC, - MOVE_PSYCHIC_TERRAIN, - MOVE_PSYSHOCK, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, MOVE_SANDSTORM, - MOVE_SEED_BOMB, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, - MOVE_SLEEP_TALK, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRICK, - MOVE_TRICK_ROOM, - MOVE_U_TURN, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FLITTLE #if P_FAMILY_TINKATINK static const u16 sTinkatinkTeachableLearnset[] = { - MOVE_DRAINING_KISS, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_FLASH_CANNON, - MOVE_FLING, - MOVE_FOUL_PLAY, - MOVE_HELPING_HAND, MOVE_LIGHT_SCREEN, - MOVE_METAL_CLAW, - MOVE_METRONOME, - MOVE_PLAY_ROUGH, - MOVE_POUNCE, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_ROCK_SLIDE, + MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SKILL_SWAP, - MOVE_SLEEP_TALK, - MOVE_STEALTH_ROCK, - MOVE_STEEL_BEAM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_TERA_BLAST, MOVE_THIEF, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sTinkatuffTeachableLearnset[] = { MOVE_BRICK_BREAK, - MOVE_DRAINING_KISS, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_FLASH_CANNON, - MOVE_FLING, - MOVE_FOUL_PLAY, - MOVE_HELPING_HAND, MOVE_LIGHT_SCREEN, - MOVE_METAL_CLAW, - MOVE_METRONOME, - MOVE_PLAY_ROUGH, - MOVE_POUNCE, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_ROCK_SLIDE, + MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SKILL_SWAP, - MOVE_SLEEP_TALK, - MOVE_STEALTH_ROCK, - MOVE_STEEL_BEAM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_TERA_BLAST, MOVE_THIEF, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; static const u16 sTinkatonTeachableLearnset[] = { MOVE_BRICK_BREAK, - MOVE_BULLDOZE, - MOVE_DRAINING_KISS, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, - MOVE_FLASH_CANNON, - MOVE_FLING, - MOVE_FOUL_PLAY, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, MOVE_LIGHT_SCREEN, - MOVE_METAL_CLAW, - MOVE_METRONOME, - MOVE_PLAY_ROUGH, - MOVE_POUNCE, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_ROCK_SLIDE, + MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SKILL_SWAP, - MOVE_SLEEP_TALK, - MOVE_STEALTH_ROCK, - MOVE_STEEL_BEAM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_TERA_BLAST, MOVE_THIEF, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; @@ -37015,864 +34545,488 @@ static const u16 sTinkatonTeachableLearnset[] = { #if P_FAMILY_WIGLETT static const u16 sWiglettTeachableLearnset[] = { - MOVE_AGILITY, MOVE_BLIZZARD, - MOVE_BULLDOZE, - MOVE_CHILLING_WATER, MOVE_DIG, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FOUL_PLAY, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, - MOVE_LIQUIDATION, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sWugtrioTeachableLearnset[] = { - MOVE_AGILITY, MOVE_BLIZZARD, - MOVE_BULLDOZE, - MOVE_CHILLING_WATER, MOVE_DIG, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FOUL_PLAY, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, - MOVE_LIQUIDATION, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_WIGLETT #if P_FAMILY_BOMBIRDIER static const u16 sBombirdierTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BRAVE_BIRD, - MOVE_DARK_PULSE, - MOVE_DRILL_RUN, - MOVE_ENDURE, MOVE_FACADE, MOVE_FLY, - MOVE_FOUL_PLAY, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HURRICANE, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_ICY_WIND, - MOVE_NASTY_PLOT, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_RAIN_DANCE, - MOVE_ROCK_BLAST, - MOVE_ROCK_SLIDE, + MOVE_REST, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STEALTH_ROCK, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAILWIND, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_U_TURN, + MOVE_TORMENT, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_BOMBIRDIER #if P_FAMILY_FINIZEN static const u16 sFinizenTeachableLearnset[] = { - MOVE_ACROBATICS, - MOVE_AGILITY, MOVE_BLIZZARD, - MOVE_BODY_SLAM, - MOVE_CHARM, - MOVE_CHILLING_WATER, - MOVE_DISARMING_VOICE, - MOVE_DRAINING_KISS, - MOVE_ENCORE, - MOVE_ENDURE, + MOVE_DIVE, MOVE_FACADE, - MOVE_FLING, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, - MOVE_ICY_WIND, - MOVE_LIQUIDATION, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_WATERFALL, MOVE_WATER_PULSE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; static const u16 sPalafinTeachableLearnset[] = { - MOVE_ACROBATICS, - MOVE_AGILITY, - MOVE_AURA_SPHERE, MOVE_BLIZZARD, - MOVE_BODY_SLAM, MOVE_BULK_UP, - MOVE_CHARM, - MOVE_CHILLING_WATER, - MOVE_CLOSE_COMBAT, - MOVE_DISARMING_VOICE, - MOVE_DRAINING_KISS, - MOVE_DRAIN_PUNCH, - MOVE_ENCORE, - MOVE_ENDURE, + MOVE_DIVE, MOVE_FACADE, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, MOVE_ICE_BEAM, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_IRON_HEAD, - MOVE_LIQUIDATION, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_SWIFT, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_WATERFALL, MOVE_WATER_PULSE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FINIZEN #if P_FAMILY_VAROOM static const u16 sVaroomTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_GUNK_SHOT, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_POISON_JAB, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SLUDGE_BOMB, - MOVE_STEEL_BEAM, - MOVE_SUBSTITUTE, - MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_THIEF, - MOVE_TOXIC_SPIKES, - MOVE_VENOSHOCK, - MOVE_ZEN_HEADBUTT, - MOVE_UNAVAILABLE, -}; - -static const u16 sRevavroomTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_ENDURE, - MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_GUNK_SHOT, - MOVE_HEAVY_SLAM, - MOVE_HYPER_BEAM, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_OVERHEAT, - MOVE_POISON_JAB, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, - MOVE_STEEL_BEAM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TOXIC_SPIKES, - MOVE_VENOSHOCK, - MOVE_ZEN_HEADBUTT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sRevavroomTeachableLearnset[] = { + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SANDSTORM, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_VAROOM #if P_FAMILY_CYCLIZAR static const u16 sCyclizarTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_BODY_SLAM, - MOVE_CRUNCH, - MOVE_DRACO_METEOR, MOVE_DRAGON_CLAW, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_FANG, - MOVE_GIGA_IMPACT, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_ICE_SPINNER, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_OUTRAGE, + MOVE_IRON_TAIL, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, MOVE_THUNDERBOLT, - MOVE_THUNDER_FANG, - MOVE_TRAILBLAZE, - MOVE_U_TURN, - MOVE_WILD_CHARGE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CYCLIZAR #if P_FAMILY_ORTHWORM static const u16 sOrthwormTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, + MOVE_IRON_TAIL, MOVE_PROTECT, MOVE_REST, - MOVE_ROCK_BLAST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, MOVE_SLEEP_TALK, - MOVE_SPIKES, - MOVE_STEALTH_ROCK, - MOVE_STEEL_BEAM, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ORTHWORM #if P_FAMILY_GLIMMET static const u16 sGlimmetTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, - MOVE_ENDURE, MOVE_FACADE, - MOVE_GUNK_SHOT, - MOVE_IRON_DEFENSE, MOVE_LIGHT_SCREEN, - MOVE_MUD_SHOT, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_ROCK_BLAST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, - MOVE_SPIKES, - MOVE_STEALTH_ROCK, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TERA_BLAST, - MOVE_TOXIC_SPIKES, - MOVE_VENOSHOCK, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sGlimmoraTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, - MOVE_EARTH_POWER, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_GUNK_SHOT, MOVE_HYPER_BEAM, - MOVE_IRON_DEFENSE, MOVE_LIGHT_SCREEN, - MOVE_MUD_SHOT, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_ROCK_BLAST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, MOVE_SLUDGE_BOMB, MOVE_SOLAR_BEAM, - MOVE_SPIKES, - MOVE_STEALTH_ROCK, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TERA_BLAST, - MOVE_TOXIC_SPIKES, - MOVE_VENOSHOCK, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GLIMMET #if P_FAMILY_GREAVARD static const u16 sGreavardTeachableLearnset[] = { - MOVE_BULLDOZE, - MOVE_CHARM, - MOVE_CONFUSE_RAY, - MOVE_CRUNCH, MOVE_DIG, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_FANG, - MOVE_HELPING_HAND, - MOVE_HEX, - MOVE_ICE_FANG, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_NIGHT_SHADE, - MOVE_PHANTOM_FORCE, - MOVE_PLAY_ROUGH, MOVE_PROTECT, - MOVE_PSYCHIC_FANGS, MOVE_RAIN_DANCE, MOVE_REST, + MOVE_ROAR, MOVE_SANDSTORM, - MOVE_SCARY_FACE, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_THUNDER_FANG, - MOVE_TRICK, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sHoundstoneTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BULLDOZE, - MOVE_CHARM, - MOVE_CONFUSE_RAY, - MOVE_CRUNCH, MOVE_DIG, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_FANG, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_ICE_FANG, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_NIGHT_SHADE, - MOVE_PHANTOM_FORCE, - MOVE_PLAY_ROUGH, MOVE_PROTECT, - MOVE_PSYCHIC_FANGS, MOVE_RAIN_DANCE, MOVE_REST, + MOVE_ROAR, MOVE_SANDSTORM, - MOVE_SCARY_FACE, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_THUNDER_FANG, - MOVE_TRICK, - MOVE_WILL_O_WISP, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GREAVARD #if P_FAMILY_FLAMIGO static const u16 sFlamigoTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BRAVE_BIRD, MOVE_BULK_UP, - MOVE_CHILLING_WATER, - MOVE_CLOSE_COMBAT, - MOVE_ENDURE, + MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FLING, MOVE_FLY, - MOVE_GIGA_IMPACT, - MOVE_HURRICANE, MOVE_HYPER_BEAM, - MOVE_LIQUIDATION, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_POUNCE, MOVE_PROTECT, MOVE_REST, - MOVE_REVERSAL, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_TAILWIND, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_U_TURN, MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FLAMIGO #if P_FAMILY_CETODDLE static const u16 sCetoddleTeachableLearnset[] = { - MOVE_AMNESIA, - MOVE_AVALANCHE, MOVE_BLIZZARD, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CHARM, - MOVE_CHILLING_WATER, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, MOVE_ICE_BEAM, - MOVE_ICE_FANG, - MOVE_ICE_SPINNER, - MOVE_ICY_WIND, - MOVE_LIQUIDATION, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SNOWSCAPE, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sCetitanTeachableLearnset[] = { - MOVE_AMNESIA, - MOVE_AVALANCHE, MOVE_BLIZZARD, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CHARM, - MOVE_CHILLING_WATER, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, MOVE_ICE_BEAM, - MOVE_ICE_FANG, - MOVE_ICE_PUNCH, - MOVE_ICE_SPINNER, - MOVE_ICY_WIND, - MOVE_LIQUIDATION, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SNOWSCAPE, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CETODDLE #if P_FAMILY_VELUZA static const u16 sVeluzaTeachableLearnset[] = { - MOVE_AGILITY, MOVE_BLIZZARD, - MOVE_BODY_SLAM, - MOVE_CHILLING_WATER, - MOVE_CRUNCH, - MOVE_DRILL_RUN, - MOVE_ENDURE, - MOVE_GIGA_IMPACT, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, - MOVE_ICE_FANG, - MOVE_ICY_WIND, - MOVE_LIQUIDATION, MOVE_PROTECT, MOVE_PSYCHIC, - MOVE_PSYCHIC_FANGS, - MOVE_PSYCHIC_TERRAIN, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SNOWSCAPE, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_WATERFALL, MOVE_WATER_PULSE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_VELUZA #if P_FAMILY_DONDOZO static const u16 sDondozoTeachableLearnset[] = { - MOVE_AVALANCHE, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CHILLING_WATER, - MOVE_CRUNCH, + MOVE_DIVE, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, - MOVE_ICE_FANG, - MOVE_LIQUIDATION, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_ROCK_SLIDE, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_WATERFALL, MOVE_WATER_PULSE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_DONDOZO #if P_FAMILY_TATSUGIRI static const u16 sTatsugiriTeachableLearnset[] = { - MOVE_BATON_PASS, - MOVE_CHILLING_WATER, - MOVE_DRACO_METEOR, - MOVE_DRAGON_DANCE, - MOVE_DRAGON_PULSE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, - MOVE_ICY_WIND, - MOVE_NASTY_PLOT, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, MOVE_SURF, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_WATER_PULSE, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_TATSUGIRI #if P_FAMILY_GREAT_TUSK static const u16 sGreatTuskTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, MOVE_BULK_UP, - MOVE_BULLDOZE, - MOVE_CLOSE_COMBAT, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_FANG, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, MOVE_HYPER_BEAM, - MOVE_ICE_FANG, - MOVE_ICE_SPINNER, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_PLAY_ROUGH, MOVE_PROTECT, - MOVE_PSYSHOCK, MOVE_REST, - MOVE_REVERSAL, - MOVE_ROCK_SLIDE, + MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SMART_STRIKE, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GREAT_TUSK #if P_FAMILY_SCREAM_TAIL static const u16 sScreamTailTeachableLearnset[] = { - MOVE_AMNESIA, - MOVE_BATON_PASS, MOVE_BLIZZARD, - MOVE_BODY_SLAM, MOVE_BULK_UP, MOVE_CALM_MIND, - MOVE_CRUNCH, - MOVE_DAZZLING_GLEAM, MOVE_DIG, - MOVE_DRAIN_PUNCH, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FAKE_TEARS, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, - MOVE_FIRE_PUNCH, MOVE_FLAMETHROWER, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, MOVE_ICE_BEAM, - MOVE_ICE_FANG, - MOVE_ICE_PUNCH, - MOVE_IMPRISON, MOVE_LIGHT_SCREEN, - MOVE_METRONOME, - MOVE_MISTY_TERRAIN, - MOVE_PLAY_ROUGH, MOVE_PROTECT, - MOVE_PSYBEAM, MOVE_PSYCHIC, - MOVE_PSYCHIC_FANGS, - MOVE_PSYCHIC_TERRAIN, - MOVE_PSYSHOCK, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, + MOVE_ROAR, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNOWSCAPE, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, - MOVE_THUNDER_FANG, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_METRONOME, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, - MOVE_TRICK, - MOVE_TRICK_ROOM, - MOVE_WATER_PULSE, - MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SCREAM_TAIL #if P_FAMILY_BRUTE_BONNET static const u16 sBruteBonnetTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BULLET_SEED, - MOVE_CLOSE_COMBAT, - MOVE_CONFUSE_RAY, - MOVE_CRUNCH, - MOVE_DARK_PULSE, - MOVE_EARTH_POWER, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_LEAF_STORM, - MOVE_MAGICAL_LEAF, - MOVE_OUTRAGE, - MOVE_POLLEN_PUFF, MOVE_PROTECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_TRAILBLAZE, - MOVE_VENOSHOCK, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_BRUTE_BONNET @@ -37880,354 +35034,176 @@ static const u16 sBruteBonnetTeachableLearnset[] = { #if P_FAMILY_FLUTTER_MANE static const u16 sFlutterManeTeachableLearnset[] = { MOVE_CALM_MIND, - MOVE_CHARGE_BEAM, - MOVE_CHARM, - MOVE_CONFUSE_RAY, - MOVE_DARK_PULSE, - MOVE_DAZZLING_GLEAM, - MOVE_DISARMING_VOICE, - MOVE_DRAINING_KISS, - MOVE_ENDURE, - MOVE_ENERGY_BALL, - MOVE_FAKE_TEARS, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_ICY_WIND, - MOVE_IMPRISON, - MOVE_MAGICAL_LEAF, - MOVE_MISTY_TERRAIN, - MOVE_NIGHT_SHADE, - MOVE_PHANTOM_FORCE, - MOVE_POWER_GEM, MOVE_PROTECT, - MOVE_PSYBEAM, - MOVE_PSYSHOCK, MOVE_REST, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_WAVE, - MOVE_TRICK_ROOM, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FLUTTER_MANE #if P_FAMILY_SLITHER_WING static const u16 sSlitherWingTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_BUG_BUZZ, MOVE_BULK_UP, - MOVE_CLOSE_COMBAT, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HEAVY_SLAM, - MOVE_HURRICANE, MOVE_HYPER_BEAM, - MOVE_LEECH_LIFE, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_REVERSAL, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_TRAILBLAZE, - MOVE_U_TURN, - MOVE_WILD_CHARGE, - MOVE_WILL_O_WISP, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SLITHER_WING #if P_FAMILY_SANDY_SHOCKS static const u16 sSandyShocksTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_CHARGE_BEAM, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, MOVE_HYPER_BEAM, - MOVE_IRON_DEFENSE, MOVE_LIGHT_SCREEN, - MOVE_MUD_SHOT, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, MOVE_SANDSTORM, - MOVE_SLEEP_TALK, - MOVE_SPIKES, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_THUNDER_WAVE, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_SANDY_SHOCKS #if P_FAMILY_IRON_TREADS static const u16 sIronTreadsTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, MOVE_HYPER_BEAM, - MOVE_ICE_FANG, - MOVE_ICE_SPINNER, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_REST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SMART_STRIKE, - MOVE_STEALTH_ROCK, - MOVE_STEEL_BEAM, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THUNDER, - MOVE_THUNDER_FANG, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_IRON_TREADS #if P_FAMILY_IRON_BUNDLE static const u16 sIronBundleTeachableLearnset[] = { - MOVE_ACROBATICS, - MOVE_AGILITY, - MOVE_AIR_CUTTER, - MOVE_AVALANCHE, MOVE_BLIZZARD, - MOVE_BODY_SLAM, - MOVE_CHILLING_WATER, - MOVE_ELECTRIC_TERRAIN, - MOVE_ENCORE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLING, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, - MOVE_ICE_PUNCH, - MOVE_ICE_SPINNER, - MOVE_ICY_WIND, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SLEEP_TALK, - MOVE_SNOWSCAPE, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THIEF, - MOVE_U_TURN, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_IRON_BUNDLE #if P_FAMILY_IRON_HANDS static const u16 sIronHandsTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_BULLDOZE, - MOVE_CLOSE_COMBAT, - MOVE_DRAIN_PUNCH, MOVE_EARTHQUAKE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_PUNCH, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, - MOVE_ICE_PUNCH, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_METRONOME, - MOVE_PLAY_ROUGH, MOVE_PROTECT, MOVE_REST, - MOVE_REVERSAL, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_IRON_HANDS #if P_FAMILY_IRON_JUGULIS static const u16 sIronJugulisTeachableLearnset[] = { - MOVE_ACROBATICS, - MOVE_AIR_CUTTER, - MOVE_AIR_SLASH, - MOVE_BODY_SLAM, - MOVE_CHARGE_BEAM, - MOVE_CRUNCH, - MOVE_DARK_PULSE, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, - MOVE_EARTH_POWER, - MOVE_ELECTRIC_TERRAIN, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, MOVE_FLAMETHROWER, - MOVE_FLASH_CANNON, MOVE_FLY, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HURRICANE, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_IRON_HEAD, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, + MOVE_ROAR, MOVE_ROCK_TOMB, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAILWIND, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_U_TURN, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_IRON_JUGULIS #if P_FAMILY_IRON_MOTH static const u16 sIronMothTeachableLearnset[] = { - MOVE_ACID_SPRAY, - MOVE_ACROBATICS, - MOVE_AGILITY, - MOVE_AIR_SLASH, - MOVE_BUG_BUZZ, - MOVE_CHARGE_BEAM, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, - MOVE_ELECTRIC_TERRAIN, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HELPING_HAND, - MOVE_HURRICANE, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, MOVE_OVERHEAT, - MOVE_POUNCE, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REST, - MOVE_SLEEP_TALK, MOVE_SOLAR_BEAM, - MOVE_STRUGGLE_BUG, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_TOXIC_SPIKES, - MOVE_U_TURN, - MOVE_VENOSHOCK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_IRON_MOTH @@ -38235,445 +35211,238 @@ static const u16 sIronMothTeachableLearnset[] = { #if P_FAMILY_IRON_THORNS static const u16 sIronThornsTeachableLearnset[] = { MOVE_BLIZZARD, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_BULLDOZE, - MOVE_CHARGE_BEAM, - MOVE_CRUNCH, MOVE_DIG, MOVE_DRAGON_CLAW, - MOVE_DRAGON_DANCE, - MOVE_DRAGON_TAIL, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, - MOVE_FIRE_PUNCH, MOVE_FLAMETHROWER, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, - MOVE_ICE_FANG, - MOVE_ICE_PUNCH, - MOVE_IRON_DEFENSE, - MOVE_IRON_HEAD, - MOVE_LOW_KICK, - MOVE_METAL_CLAW, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_ROCK_BLAST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SNARL, - MOVE_SPIKES, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, - MOVE_THUNDER_FANG, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_IRON_THORNS #if P_FAMILY_FRIGIBAX static const u16 sFrigibaxTeachableLearnset[] = { - MOVE_AVALANCHE, MOVE_BLIZZARD, - MOVE_BODY_SLAM, - MOVE_CRUNCH, MOVE_DIG, - MOVE_DRACO_METEOR, MOVE_DRAGON_CLAW, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, - MOVE_ENDURE, MOVE_FACADE, - MOVE_HELPING_HAND, MOVE_ICE_BEAM, - MOVE_ICE_FANG, - MOVE_ICY_WIND, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICY_WIND, MOVE_SLEEP_TALK, - MOVE_SNOWSCAPE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_UNAVAILABLE, }; static const u16 sArctibaxTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AVALANCHE, MOVE_BLIZZARD, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_CRUNCH, MOVE_DIG, - MOVE_DRACO_METEOR, MOVE_DRAGON_CLAW, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, - MOVE_ENDURE, MOVE_FACADE, - MOVE_HELPING_HAND, MOVE_ICE_BEAM, - MOVE_ICE_FANG, - MOVE_ICY_WIND, - MOVE_IRON_HEAD, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SCARY_FACE, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICY_WIND, MOVE_SLEEP_TALK, - MOVE_SNOWSCAPE, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_UNAVAILABLE, }; static const u16 sBaxcaliburTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AVALANCHE, MOVE_BLIZZARD, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_BULLDOZE, - MOVE_CRUNCH, MOVE_DIG, - MOVE_DRACO_METEOR, MOVE_DRAGON_CLAW, - MOVE_DRAGON_DANCE, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FALSE_SWIPE, - MOVE_GIGA_IMPACT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, MOVE_ICE_BEAM, - MOVE_ICE_FANG, - MOVE_ICY_WIND, - MOVE_IRON_HEAD, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SCARY_FACE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, MOVE_SLEEP_TALK, - MOVE_SNOWSCAPE, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FRIGIBAX #if P_FAMILY_GIMMIGHOUL static const u16 sGimmighoulTeachableLearnset[] = { - MOVE_CONFUSE_RAY, - MOVE_ENDURE, - MOVE_HEX, MOVE_LIGHT_SCREEN, - MOVE_NASTY_PLOT, - MOVE_NIGHT_SHADE, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, - MOVE_SUBSTITUTE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sGholdengoTeachableLearnset[] = { - MOVE_CHARGE_BEAM, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, - MOVE_FLASH_CANNON, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HEX, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, - MOVE_IRON_HEAD, MOVE_LIGHT_SCREEN, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_NASTY_PLOT, - MOVE_NIGHT_SHADE, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_PSYCHIC, - MOVE_PSYSHOCK, MOVE_REFLECT, MOVE_REST, MOVE_SANDSTORM, MOVE_SHADOW_BALL, - MOVE_SLEEP_TALK, - MOVE_STEEL_BEAM, - MOVE_SUBSTITUTE, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_THIEF, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, - MOVE_TRICK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_GIMMIGHOUL #if P_FAMILY_WO_CHIEN static const u16 sWoChienTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BULLET_SEED, - MOVE_DARK_PULSE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FOUL_PLAY, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_LEAF_STORM, MOVE_LIGHT_SCREEN, - MOVE_MAGICAL_LEAF, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_POLLEN_PUFF, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REFLECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SEED_BOMB, - MOVE_SLEEP_TALK, - MOVE_SNARL, MOVE_SOLAR_BEAM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_TRAILBLAZE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_WO_CHIEN #if P_FAMILY_CHIEN_PAO static const u16 sChienPaoTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AVALANCHE, MOVE_BLIZZARD, MOVE_BRICK_BREAK, - MOVE_CRUNCH, - MOVE_DARK_PULSE, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FALSE_SWIPE, - MOVE_GIGA_IMPACT, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_ICE_FANG, - MOVE_ICE_SPINNER, - MOVE_ICY_WIND, MOVE_PROTECT, - MOVE_PSYCHIC_FANGS, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_SNOWSCAPE, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CHIEN_PAO #if P_FAMILY_TING_LU static const u16 sTingLuTeachableLearnset[] = { - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, - MOVE_BULLDOZE, - MOVE_DARK_PULSE, MOVE_DIG, MOVE_EARTHQUAKE, - MOVE_EARTH_POWER, - MOVE_ENDURE, MOVE_FACADE, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HEX, MOVE_HYPER_BEAM, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, MOVE_PROTECT, MOVE_REST, - MOVE_ROCK_SLIDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_SPIKES, - MOVE_STEALTH_ROCK, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_TING_LU #if P_FAMILY_CHI_YU static const u16 sChiYuTeachableLearnset[] = { - MOVE_CONFUSE_RAY, - MOVE_CRUNCH, - MOVE_DARK_PULSE, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HEX, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, - MOVE_NASTY_PLOT, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_WILL_O_WISP, - MOVE_ZEN_HEADBUTT, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_CHI_YU #if P_FAMILY_ROARING_MOON static const u16 sRoaringMoonTeachableLearnset[] = { - MOVE_ACROBATICS, MOVE_AERIAL_ACE, - MOVE_AIR_SLASH, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, - MOVE_CRUNCH, - MOVE_DARK_PULSE, MOVE_DIG, - MOVE_DRACO_METEOR, MOVE_DRAGON_CLAW, - MOVE_DRAGON_DANCE, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, MOVE_EARTHQUAKE, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, MOVE_FLY, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HURRICANE, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_IRON_HEAD, - MOVE_METAL_CLAW, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_REST, - MOVE_ROCK_SLIDE, - MOVE_SCARY_FACE, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_STOMPING_TANTRUM, - MOVE_STONE_EDGE, - MOVE_SUBSTITUTE, + MOVE_ROAR, MOVE_SUNNY_DAY, - MOVE_TAILWIND, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_U_TURN, - MOVE_X_SCISSOR, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_ROARING_MOON @@ -38681,218 +35450,109 @@ static const u16 sRoaringMoonTeachableLearnset[] = { #if P_FAMILY_IRON_VALIANT static const u16 sIronValiantTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_AURA_SPHERE, MOVE_BRICK_BREAK, MOVE_CALM_MIND, - MOVE_CHARGE_BEAM, - MOVE_CLOSE_COMBAT, - MOVE_CONFUSE_RAY, - MOVE_DAZZLING_GLEAM, - MOVE_DRAIN_PUNCH, - MOVE_ELECTRIC_TERRAIN, - MOVE_ENCORE, - MOVE_ENDURE, - MOVE_ENERGY_BALL, - MOVE_FALSE_SWIPE, - MOVE_FIRE_PUNCH, - MOVE_FLING, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, - MOVE_HEX, + MOVE_DOUBLE_TEAM, MOVE_HYPER_BEAM, - MOVE_HYPER_VOICE, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_IMPRISON, MOVE_LIGHT_SCREEN, - MOVE_LIQUIDATION, - MOVE_LOW_KICK, - MOVE_MAGICAL_LEAF, - MOVE_METRONOME, - MOVE_MISTY_TERRAIN, - MOVE_POISON_JAB, MOVE_PROTECT, - MOVE_PSYBEAM, MOVE_PSYCHIC, - MOVE_PSYCHIC_TERRAIN, - MOVE_PSYSHOCK, MOVE_REFLECT, MOVE_REST, - MOVE_REVERSAL, MOVE_SHADOW_BALL, - MOVE_SHADOW_CLAW, MOVE_SKILL_SWAP, + MOVE_TAUNT, + MOVE_THUNDERBOLT, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_METRONOME, + MOVE_PSYCH_UP, MOVE_SLEEP_TALK, - MOVE_STORED_POWER, - MOVE_SUBSTITUTE, MOVE_SWIFT, MOVE_SWORDS_DANCE, - MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_THUNDERBOLT, MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, - MOVE_TRICK, - MOVE_TRICK_ROOM, - MOVE_X_SCISSOR, - MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_IRON_VALIANT #if P_FAMILY_KORAIDON static const u16 sKoraidonTeachableLearnset[] = { - MOVE_ACROBATICS, - MOVE_AGILITY, - MOVE_BODY_PRESS, - MOVE_BODY_SLAM, MOVE_BRICK_BREAK, MOVE_BULK_UP, - MOVE_BULLDOZE, - MOVE_CLOSE_COMBAT, - MOVE_CRUNCH, MOVE_DIG, - MOVE_DRACO_METEOR, MOVE_DRAGON_CLAW, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, - MOVE_DRAIN_PUNCH, - MOVE_ENDURE, MOVE_FACADE, MOVE_FIRE_BLAST, - MOVE_FIRE_FANG, - MOVE_FIRE_SPIN, MOVE_FLAMETHROWER, - MOVE_FLAME_CHARGE, - MOVE_FLARE_BLITZ, - MOVE_FOCUS_BLAST, - MOVE_GIGA_IMPACT, - MOVE_HEAT_WAVE, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, + MOVE_FOCUS_PUNCH, MOVE_HYPER_BEAM, - MOVE_ICE_FANG, - MOVE_IRON_HEAD, - MOVE_LOW_KICK, - MOVE_LOW_SWEEP, - MOVE_MUD_SHOT, - MOVE_MUD_SLAP, - MOVE_OUTRAGE, MOVE_OVERHEAT, MOVE_PROTECT, MOVE_REST, - MOVE_REVERSAL, - MOVE_SCARY_FACE, - MOVE_SHADOW_CLAW, - MOVE_SLEEP_TALK, - MOVE_SNARL, + MOVE_ROAR, + MOVE_ROCK_SMASH, MOVE_SOLAR_BEAM, - MOVE_STOMPING_TANTRUM, - MOVE_SUBSTITUTE, MOVE_SUNNY_DAY, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_THUNDER_FANG, - MOVE_U_TURN, - MOVE_WILD_CHARGE, - MOVE_ZEN_HEADBUTT, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_KORAIDON #if P_FAMILY_MIRAIDON static const u16 sMiraidonTeachableLearnset[] = { - MOVE_ACROBATICS, - MOVE_AGILITY, - MOVE_BODY_SLAM, MOVE_CALM_MIND, - MOVE_CHARGE_BEAM, - MOVE_CONFUSE_RAY, - MOVE_CRUNCH, - MOVE_DAZZLING_GLEAM, - MOVE_DRACO_METEOR, MOVE_DRAGON_CLAW, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, - MOVE_EERIE_IMPULSE, - MOVE_ELECTRIC_TERRAIN, - MOVE_ELECTRO_BALL, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FLASH_CANNON, - MOVE_GIGA_IMPACT, - MOVE_HEAVY_SLAM, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, MOVE_LIGHT_SCREEN, - MOVE_OUTRAGE, MOVE_OVERHEAT, - MOVE_POWER_GEM, MOVE_PROTECT, MOVE_REFLECT, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, + MOVE_SHOCK_WAVE, MOVE_SOLAR_BEAM, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, MOVE_TAUNT, - MOVE_TERA_BLAST, MOVE_THUNDER, MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_THUNDER_WAVE, - MOVE_U_TURN, - MOVE_VOLT_SWITCH, - MOVE_WILD_CHARGE, - MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_MIRAIDON #if P_FAMILY_WALKING_WAKE static const u16 sWalkingWakeTeachableLearnset[] = { - MOVE_AGILITY, - MOVE_BODY_SLAM, - MOVE_CHILLING_WATER, - MOVE_CRUNCH, - MOVE_DRACO_METEOR, MOVE_DRAGON_CLAW, - MOVE_DRAGON_DANCE, - MOVE_DRAGON_PULSE, - MOVE_DRAGON_TAIL, - MOVE_ENDURE, MOVE_FACADE, - MOVE_FIRE_FANG, MOVE_FLAMETHROWER, - MOVE_GIGA_IMPACT, - MOVE_HURRICANE, - MOVE_HYDRO_PUMP, MOVE_HYPER_BEAM, - MOVE_LIQUIDATION, - MOVE_LOW_KICK, - MOVE_MUD_SHOT, - MOVE_OUTRAGE, MOVE_PROTECT, MOVE_RAIN_DANCE, MOVE_REST, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SNARL, - MOVE_SUBSTITUTE, + MOVE_ROAR, MOVE_SUNNY_DAY, MOVE_SURF, - MOVE_SWIFT, - MOVE_TAKE_DOWN, - MOVE_TERA_BLAST, MOVE_WATERFALL, MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_WALKING_WAKE @@ -38900,78 +35560,281 @@ static const u16 sWalkingWakeTeachableLearnset[] = { #if P_FAMILY_IRON_LEAVES static const u16 sIronLeavesTeachableLearnset[] = { MOVE_AERIAL_ACE, - MOVE_AGILITY, - MOVE_AIR_SLASH, MOVE_BRICK_BREAK, MOVE_CALM_MIND, - MOVE_CLOSE_COMBAT, - MOVE_ELECTRIC_TERRAIN, - MOVE_ENDURE, - MOVE_ENERGY_BALL, MOVE_FACADE, - MOVE_FALSE_SWIPE, - MOVE_FOCUS_BLAST, MOVE_GIGA_DRAIN, - MOVE_GIGA_IMPACT, - MOVE_GRASSY_TERRAIN, - MOVE_GRASS_KNOT, - MOVE_HELPING_HAND, MOVE_HYPER_BEAM, - MOVE_IMPRISON, - MOVE_IRON_DEFENSE, - MOVE_LEAF_STORM, - MOVE_MAGICAL_LEAF, MOVE_PROTECT, - MOVE_PSYCHIC_TERRAIN, MOVE_REST, - MOVE_REVERSAL, - MOVE_SCARY_FACE, - MOVE_SLEEP_TALK, - MOVE_SMART_STRIKE, MOVE_SOLAR_BEAM, - MOVE_SUBSTITUTE, + MOVE_TAUNT, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, MOVE_SWIFT, MOVE_SWORDS_DANCE, - MOVE_TAKE_DOWN, - MOVE_TAUNT, - MOVE_TERA_BLAST, - MOVE_TRAILBLAZE, - MOVE_WILD_CHARGE, - MOVE_X_SCISSOR, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_IRON_LEAVES #if P_FAMILY_POLTCHAGEIST static const u16 sPoltchageistTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_GIGA_DRAIN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; static const u16 sSinistchaTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_POLTCHAGEIST #if P_FAMILY_OKIDOGI static const u16 sOkidogiTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_SLUDGE_BOMB, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_SLEEP_TALK, + MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_OKIDOGI #if P_FAMILY_MUNKIDORI static const u16 sMunkidoriTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_MUNKIDORI #if P_FAMILY_FEZANDIPITI static const u16 sFezandipitiTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_FLY, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_FEZANDIPITI #if P_FAMILY_OGERPON static const u16 sOgerponTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; #endif //P_FAMILY_OGERPON + +#if P_FAMILY_GOUGING_FIRE +static const u16 sGougingFireTeachableLearnset[] = { + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROAR, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +static const u16 sRagingBoltTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROAR, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +static const u16 sIronBoulderTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_TAUNT, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +static const u16 sIronCrownTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +static const u16 sTerapagosTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROAR, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +static const u16 sPecharuntTeachableLearnset[] = { + MOVE_PROTECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_PECHARUNT diff --git a/src/data/pokemon_graphics/front_pic_anims.h b/src/data/pokemon_graphics/front_pic_anims.h index 5529fe77a..1817bc19c 100644 --- a/src/data/pokemon_graphics/front_pic_anims.h +++ b/src/data/pokemon_graphics/front_pic_anims.h @@ -9587,6 +9587,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(AppletunGigantamax); #if P_GEN_9_CROSS_EVOS PLACEHOLDER_ANIM_SINGLE_FRAME(Dipplin); +PLACEHOLDER_ANIM_SINGLE_FRAME(Hydrapple); #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN @@ -9738,6 +9739,10 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Duraludon); #if P_GIGANTAMAX_FORMS PLACEHOLDER_ANIM_SINGLE_FRAME(DuraludonGigantamax); #endif //P_GIGANTAMAX_FORMS + +#if P_GEN_9_CROSS_EVOS +PLACEHOLDER_ANIM_SINGLE_FRAME(Archaludon); +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY @@ -10104,6 +10109,32 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Fezandipiti); PLACEHOLDER_ANIM_SINGLE_FRAME(Ogerpon); #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE +PLACEHOLDER_ANIM_SINGLE_FRAME(GougingFire); +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +PLACEHOLDER_ANIM_SINGLE_FRAME(RagingBolt); +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +PLACEHOLDER_ANIM_SINGLE_FRAME(IronBoulder); +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +PLACEHOLDER_ANIM_SINGLE_FRAME(IronCrown); +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +PLACEHOLDER_ANIM_SINGLE_FRAME(TerapagosNormal); +PLACEHOLDER_ANIM_SINGLE_FRAME(TerapagosTerastal); +PLACEHOLDER_ANIM_SINGLE_FRAME(TerapagosStellar); +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +PLACEHOLDER_ANIM_SINGLE_FRAME(Pecharunt); +#endif //P_FAMILY_PECHARUNT + static const union AnimCmd sAnim_Egg_1[] = { ANIMCMD_FRAME(0, 6), @@ -12363,6 +12394,7 @@ SINGLE_ANIMATION(AppletunGigantamax); #endif //P_GIGANTAMAX_FORMS #if P_GEN_9_CROSS_EVOS SINGLE_ANIMATION(Dipplin); +SINGLE_ANIMATION(Hydrapple); #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN #if P_FAMILY_SILICOBRA @@ -12470,6 +12502,9 @@ SINGLE_ANIMATION(Duraludon); #if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(DuraludonGigantamax); #endif //P_GIGANTAMAX_FORMS +#if P_GEN_9_CROSS_EVOS +SINGLE_ANIMATION(Archaludon); +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY SINGLE_ANIMATION(Dreepy); @@ -12753,4 +12788,24 @@ SINGLE_ANIMATION(Fezandipiti); #if P_FAMILY_OGERPON SINGLE_ANIMATION(Ogerpon); #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE +SINGLE_ANIMATION(GougingFire); +#endif //P_FAMILY_GOUGING_FIRE +#if P_FAMILY_RAGING_BOLT +SINGLE_ANIMATION(RagingBolt); +#endif //P_FAMILY_RAGING_BOLT +#if P_FAMILY_IRON_BOULDER +SINGLE_ANIMATION(IronBoulder); +#endif //P_FAMILY_IRON_BOULDER +#if P_FAMILY_IRON_CROWN +SINGLE_ANIMATION(IronCrown); +#endif //P_FAMILY_IRON_CROWN +#if P_FAMILY_TERAPAGOS +SINGLE_ANIMATION(TerapagosNormal); +SINGLE_ANIMATION(TerapagosTerastal); +SINGLE_ANIMATION(TerapagosStellar); +#endif //P_FAMILY_TERAPAGOS +#if P_FAMILY_PECHARUNT +SINGLE_ANIMATION(Pecharunt); +#endif //P_FAMILY_PECHARUNT SINGLE_ANIMATION(Egg); diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c index a3c6a7556..0733600b6 100644 --- a/src/pokedex_screen.c +++ b/src/pokedex_screen.c @@ -198,8 +198,6 @@ const u16 sBlitTiles_WideEllipse[] = INCBIN_U16("graphics/pokedex/blit_wide_elli static const u8 gExpandedPlaceholder_PokedexDescription[] = _(""); -#include "data/pokemon/pokedex_text.h" - static const struct BgTemplate sBgTemplates[] = { { .bg = 0, diff --git a/src/pokemon.c b/src/pokemon.c index 7afd48453..dfd5ec9a9 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -61,7 +61,6 @@ static EWRAM_DATA struct MonSpritesGfxManager *sMonSpritesGfxManager = NULL; static union PokemonSubstruct *GetSubstruct(struct BoxPokemon *boxMon, u32 personality, u8 substructType); static bool8 IsShinyOtIdPersonality(u32 otId, u32 personality); -static u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex); static u8 GetNatureFromPersonality(u32 personality); static bool8 PartyMonHasStatus(struct Pokemon *mon, u32 unused, u32 healMask, u8 battleId); static bool8 IsPokemonStorageFull(void); @@ -621,10 +620,8 @@ static const struct SpindaSpot sSpindaSpotGraphics[] = {.x = 34, .y = 26, .image = INCBIN_U16("graphics/spinda_spots/spot_3.bin")} }; -// #include "data/pokemon/item_effects.h" - -static const s8 sNatureStatTable[NUM_NATURES][NUM_NATURE_STATS] = -{ // Attack Defense Speed Sp.Atk Sp.Def +const s8 gNatureStatTable[NUM_NATURES][NUM_NATURE_STATS] = +{ // Attack Defense Speed Sp.Atk Sp. Def [NATURE_HARDY] = { 0, 0, 0, 0, 0 }, [NATURE_LONELY] = { +1, -1, 0, 0, 0 }, [NATURE_BRAVE] = { +1, 0, -1, 0, 0 }, @@ -658,10 +655,31 @@ static const s8 sNatureStatTable[NUM_NATURES][NUM_NATURE_STATS] = #include "data/pokemon/trainer_class_lookups.h" #include "data/pokemon/experience_tables.h" + +#if P_LVL_UP_LEARNSETS >= GEN_9 +#include "data/pokemon/level_up_learnsets/gen_9.h" // Scarlet/Violet +#elif P_LVL_UP_LEARNSETS >= GEN_8 +#include "data/pokemon/level_up_learnsets/gen_8.h" // Sword/Shield +#elif P_LVL_UP_LEARNSETS >= GEN_7 +#include "data/pokemon/level_up_learnsets/gen_7.h" // Ultra Sun/ Ultra Moon +#elif P_LVL_UP_LEARNSETS >= GEN_6 +#include "data/pokemon/level_up_learnsets/gen_6.h" // Omega Ruby/Alpha Sapphire +#elif P_LVL_UP_LEARNSETS >= GEN_5 +#include "data/pokemon/level_up_learnsets/gen_5.h" // Black 2/White 2 +#elif P_LVL_UP_LEARNSETS >= GEN_4 +#include "data/pokemon/level_up_learnsets/gen_4.h" // HeartGold/SoulSilver +#elif P_LVL_UP_LEARNSETS >= GEN_3 +#include "data/pokemon/level_up_learnsets/gen_3.h" // Ruby/Sapphire/Emerald +#elif P_LVL_UP_LEARNSETS >= GEN_2 +#include "data/pokemon/level_up_learnsets/gen_2.h" // Crystal +#elif P_LVL_UP_LEARNSETS >= GEN_1 +#include "data/pokemon/level_up_learnsets/gen_1.h" // Yellow +#endif + #include "data/pokemon/teachable_learnsets.h" -#include "data/pokemon/level_up_learnsets.h" #include "data/pokemon/form_species_tables.h" #include "data/pokemon/form_change_tables.h" + #include "data/pokemon/species_info.h" static const s8 sPokeblockFlavorCompatibilityTable[NUM_NATURES * FLAVOR_COUNT] = @@ -4704,7 +4722,7 @@ u8 GetTrainerEncounterMusicId(u16 trainerId) return TRAINER_ENCOUNTER_MUSIC(trainerId); } -static u16 ModifyStatByNature(u8 nature, u16 stat, u8 statIndex) +u16 ModifyStatByNature(u8 nature, u16 stat, u8 statIndex) { // Because this is a u16 it will be unable to store the // result of the multiplication for any stat > 595 for a @@ -4712,17 +4730,17 @@ static u16 ModifyStatByNature(u8 nature, u16 stat, u8 statIndex) // Neither occur in the base game, but this can happen if // any Nature-affected base stat is increased to a value // above 248. The closest by default is Shuckle at 230. -#ifdef BUGFIX +// #ifdef BUGFIX u32 retVal; -#else - u16 retVal; -#endif +// #else +// u16 retVal; +// #endif // Don't modify HP, Accuracy, or Evasion by nature if (statIndex <= STAT_HP || statIndex > NUM_NATURE_STATS) return stat; - switch (sNatureStatTable[nature][statIndex - 1]) + switch (gNatureStatTable[nature][statIndex - 1]) { case 1: retVal = stat * 110;