diff --git a/Makefile b/Makefile index 8e3ff29753..2b997fee59 100644 --- a/Makefile +++ b/Makefile @@ -464,7 +464,7 @@ LD_SCRIPT_TEST := ld_script_test.txt $(OBJ_DIR)/ld_script_test.ld: $(LD_SCRIPT_TEST) $(LD_SCRIPT_DEPS) cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT_TEST) > ld_script_test.ld -$(TESTELF): $(OBJ_DIR)/ld_script_test.ld $(OBJS) $(TEST_OBJS) libagbsyscall check-tools +$(TESTELF): $(OBJ_DIR)/ld_script_test.ld $(OBJS) $(TEST_OBJS) libagbsyscall tools check-tools @echo "cd $(OBJ_DIR) && $(LD) -T ld_script_test.ld -o ../../$@ " @cd $(OBJ_DIR) && $(LD) $(TESTLDFLAGS) -T ld_script_test.ld -o ../../$@ $(OBJS_REL) $(TEST_OBJS_REL) $(LIB) $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent diff --git a/asm/macros/battle_anim_script.inc b/asm/macros/battle_anim_script.inc index 6ff3876906..85320bd3b8 100644 --- a/asm/macros/battle_anim_script.inc +++ b/asm/macros/battle_anim_script.inc @@ -270,7 +270,7 @@ .macro stopsound .byte 0x2f .endm - + @ same as createvisualtask except takes in battlerargindex, which is the battle anim arg index of the battler to loop through .macro createvisualtaskontargets addr:req, priority:req, battlerargindex:req, argv:vararg .byte 0x30 @@ -282,7 +282,7 @@ .2byte \argv .Lcreatetask_\@_2: .endm - + @ same as createsprite except takes in battlerargindex, which is the battle anim arg index of the battler to loop through .macro createspriteontargets template:req, anim_battler:req, subpriority_offset:req, battlerargindex:req, argv:vararg .byte 0x31 @@ -298,7 +298,7 @@ .2byte \argv .Lsprite_\@_2: .endm - + @ does not overwrite gBattleAnimArgs[battlerargindex], some sprite templates are too dependent on the value (e.g. heal block) .macro createspriteontargets_onpos template:req, anim_battler:req, subpriority_offset:req, battlerargindex:req, argv:vararg .byte 0x32 diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 994646531a..ec70a98901 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1299,7 +1299,7 @@ .byte 0xfe .4byte \failInstr .endm - + .macro callnative func:req .byte 0xff .4byte \func @@ -1318,11 +1318,17 @@ .4byte \jumpInstr .endm + .macro jumpifmorethanhalfHP battler:req, jumpInstr:req + callnative BS_JumpIfMoreThanHalfHP + .byte \battler + .4byte \jumpInstr + .endm + @ various command changed to more readable macros .macro cancelmultiturnmoves battler:req various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES .endm - + @ Stores Healing Wish effect. .macro storehealingwish battler:req various \battler, VARIOUS_STORE_HEALING_WISH @@ -1948,7 +1954,7 @@ .macro shellsidearmcheck various BS_ATTACKER, VARIOUS_SHELL_SIDE_ARM_CHECK .endm - + .macro jumpifrodaffected battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_ROD .4byte \jumpInstr @@ -2049,11 +2055,6 @@ various \battler, VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES .endm - .macro jumpifnovalidtargets jumpInstr:req - various BS_ATTACKER, VARIOUS_JUMP_IF_NO_VALID_TARGETS - .4byte \jumpInstr - .endm - .macro trytrainerslidezmovemsg battler:req various \battler, VARIOUS_TRY_TRAINER_SLIDE_MSG_Z_MOVE .endm @@ -2255,3 +2256,12 @@ various \battler, VARIOUS_JUMP_IF_EMERGENCY_EXITED .4byte \jumpInstr .endm + + .macro jumpifshelltrap battler:req, ptr:req + various \battler, VARIOUS_JUMP_IF_SHELL_TRAP + .4byte \ptr + .endm + + .macro hitswitchtargetfailed + various 0, VARIOUS_HIT_SWITCH_TARGET_FAILED + .endm diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 71bd93d70a..cd011c0f46 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -12036,168 +12036,168 @@ ShellTrapUnleash: monbg ANIM_TARGET waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 0x10 delay 0x6 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x0 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x0 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x4 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x4 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x8 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x8 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0xc - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0xc + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x10 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x10 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x14 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x14 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x18 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x18 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 waitforvisualfinish call ShellTrapFireLaunch1 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0x0 0x0 0x0 0x38 0x4 0x4 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x0, 0x0, 0x0, 0x38, 0x4, 0x4, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xfff6 0x0 0xfff6 0x38 0x4 0x4 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xfff6, 0x0, 0xfff6, 0x38, 0x4, 0x4, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xa 0x0 0xa 0x38 0xfffc 0x3 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xa, 0x0, 0xa, 0x38, 0xfffc, 0x3, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x38 0xfffc 0x5 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0xfffc, 0x5, 0x1 delay 0x3 call ShellTrapFireLaunch2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 waitforvisualfinish clearmonbg ANIM_TARGET end ShellTrapFireLaunch1: - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0x0 0x0 0x0 0x38 0x4 0x4 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x0, 0x0, 0x0, 0x38, 0x4, 0x4, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xfff6 0x0 0xfff6 0x38 0x4 0x4 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xfff6, 0x0, 0xfff6, 0x38, 0x4, 0x4, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xa 0x0 0xa 0x38 0xfffc 0x3 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xa, 0x0, 0xa, 0x38, 0xfffc, 0x3, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x38 0xfffc 0x5 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0xfffc, 0x5, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xf 0x0 0xf 0x38 0x4 0x4 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xf, 0x0, 0xf, 0x38, 0x4, 0x4, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x38 0x4 0x4 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0x4, 0x4, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0x14 0x0 0x14 0x38 0x4 0x4 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x14, 0x0, 0x14, 0x38, 0x4, 0x4, 0x1 delay 0x3 return ShellTrapFireLaunch2: - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0x0 0x0 0x0 0x38 0x4 0x4 0x1 - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x0, 0x0, 0x0, 0x38, 0x4, 0x4, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xfff6 0x0 0xfff6 0x38 0x4 0x4 0x1 - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xfff6, 0x0, 0xfff6, 0x38, 0x4, 0x4, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xa 0x0 0xa 0x38 0xfffc 0x3 0x1 - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xa, 0x0, 0xa, 0x38, 0xfffc, 0x3, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x38 0xfffc 0x5 0x1 - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0xfffc, 0x5, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xf 0x0 0xf 0x38 0x4 0x4 0x1 - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xf, 0x0, 0xf, 0x38, 0x4, 0x4, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x38 0x4 0x4 0x1 - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0x4, 0x4, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0x14 0x0 0x14 0x38 0x4 0x4 0x1 - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x14, 0x0, 0x14, 0x38, 0x4, 0x4, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 return @@ -14367,7 +14367,7 @@ Move_SCORCHING_SANDS:: Move_JUNGLE_HEALING:: goto Move_AROMATHERAPY - + Move_SILK_TRAP:: loadspritegfx ANIM_TAG_PROTECT loadspritegfx ANIM_TAG_SPIDER_WEB @@ -14376,11 +14376,11 @@ Move_SILK_TRAP:: createsprite gSpiderWebSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, FALSE waitforvisualfinish createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_PROTECT, 0, 10, 10, RGB_LIME_GREEN - monbg ANIM_ATK_PARTNER - waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 0x10 + monbg ANIM_ATK_PARTNER + waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 0x10 createsprite gProtectSpriteTemplate, ANIM_ATTACKER, 2, 24, 0, 90 waitforvisualfinish - clearmonbg ANIM_ATK_PARTNER + clearmonbg ANIM_ATK_PARTNER end Move_WICKED_BLOW:: @@ -24206,21 +24206,21 @@ WaterBubblesEffectLong: ElectricityEffect: playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET ElectricityEffectNoSound: - createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 5, 0, 5, 0, ANIM_TARGET + createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 5, 0, 5, 0, ANIM_TARGET delay 2 - createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, -5, 10, 5, 1, ANIM_TARGET + createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -5, 10, 5, 1, ANIM_TARGET delay 2 - createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 15, 20, 5, 2, ANIM_TARGET + createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 15, 20, 5, 2, ANIM_TARGET delay 2 - createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, -15, -10, 5, 0, ANIM_TARGET + createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -15, -10, 5, 0, ANIM_TARGET delay 2 - createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 25, 0, 5, 1, ANIM_TARGET + createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 25, 0, 5, 1, ANIM_TARGET delay 2 - createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, -8, 8, 5, 2, ANIM_TARGET + createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -8, 8, 5, 2, ANIM_TARGET delay 2 - createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 2, -8, 5, 0, ANIM_TARGET + createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 2, -8, 5, 0, ANIM_TARGET delay 2 - createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, -20, 15, 5, 1, ANIM_TARGET + createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -20, 15, 5, 1, ANIM_TARGET return ElectricityEffect_OnTargets: diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index a3f97a2d4b..0f20451d9b 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -417,7 +417,8 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectVictoryDance @ EFFECT_VICTORY_DANCE .4byte BattleScript_EffectTeatime @ EFFECT_TEATIME .4byte BattleScript_EffectAttackUpUserAlly @ EFFECT_ATTACK_UP_USER_ALLY - + .4byte BattleScript_EffectShellTrap @ EFFECT_SHELL_TRAP + BattleScript_EffectAttackUpUserAlly: jumpifnoally BS_ATTACKER, BattleScript_EffectAttackUp attackcanceler @@ -460,7 +461,7 @@ BattleScript_EffectTeatime:: attackstring ppreduce jumpifteanoberry BattleScript_ButItFailed -@ at least one battler is affected +@ at least one battler is affected attackanimation waitanimation BattleScript_TeatimeLoop: @@ -557,6 +558,23 @@ BattleScript_AffectionBasedStatusHeal_Continue: waitstate end2 +BattleScript_ShellTrapSetUp:: + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + playanimation BS_ATTACKER, B_ANIM_SHELL_TRAP_SETUP, NULL + printstring STRINGID_PREPARESHELLTRAP + waitmessage B_WAIT_TIME_LONG + end2 + +BattleScript_EffectShellTrap:: + attackcanceler + jumpifshelltrap BS_ATTACKER, BattleScript_HitFromAccCheck + jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING | HITMARKER_NO_PPDEDUCT, BattleScript_MoveEnd + ppreduce + printstring STRINGID_SHELLTRAPDIDNTWORK + waitmessage B_WAIT_TIME_LONG + goto BattleScript_MoveEnd + BattleScript_EffectSteelBeam:: attackcanceler attackstring @@ -1410,7 +1428,7 @@ BattleScript_DoubleShockRemoveType:: printstring STRINGID_ATTACKERLOSTELECTRICTYPE waitmessage B_WAIT_TIME_LONG return - + BattleScript_EffectPurify: attackcanceler attackstring @@ -2128,9 +2146,14 @@ BattleScript_EffectHitSwitchTarget: moveendall jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted - tryhitswitchtarget BattleScript_EffectHitSwitchTargetMoveEnd -BattleScript_EffectHitSwitchTargetMoveEnd: - end + tryhitswitchtarget BattleScript_MoveEnd + forcerandomswitch BattleScript_HitSwitchTargetForceRandomSwitchFailed + goto BattleScript_MoveEnd + +BattleScript_HitSwitchTargetForceRandomSwitchFailed: + hitswitchtargetfailed + setbyte sSWITCH_CASE, B_SWITCH_NORMAL + goto BattleScript_MoveEnd BattleScript_EffectClearSmog: setmoveeffect MOVE_EFFECT_CLEAR_SMOG @@ -3104,7 +3127,7 @@ BattleScript_EffectHitEscape: jumpifbyte CMP_NOT_EQUAL gBattleOutcome 0, BattleScript_HitEscapeEnd jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_HitEscapeEnd jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_HitEscapeEnd - jumpifemergencyexited BS_TARGET, BattleScript_HitEscapeEnd + jumpifemergencyexited BS_TARGET, BattleScript_HitEscapeEnd openpartyscreen BS_ATTACKER, BattleScript_HitEscapeEnd switchoutabilities BS_ATTACKER waitstate @@ -3319,7 +3342,7 @@ BattleScript_AbilityProtectsDoesntAffect: call BattleScript_AbilityProtectsDoesntAffectRet orhalfword gMoveResultFlags, MOVE_RESULT_FAILED goto BattleScript_MoveEnd - + BattleScript_InsomniaProtects: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp @@ -3413,26 +3436,19 @@ BattleScript_EffectParalyzeHit:: setmoveeffect MOVE_EFFECT_PARALYSIS goto BattleScript_EffectHit -BattleScript_EffectExplosion:: - attackcanceler - attackstring - ppreduce -@ Below jumps to BattleScript_DampStopsExplosion if it fails (only way it can) - tryexplosion - setatkhptozero - waitstate - jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_ExplosionDoAnimStartLoop +BattleScript_EffectExplosion_AnimDmgRet: + jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_ExplosionAnimRet call BattleScript_PreserveMissedBitDoMoveAnim - goto BattleScript_ExplosionLoop -BattleScript_ExplosionDoAnimStartLoop: + goto BattleScript_ExplosionDmgRet +BattleScript_ExplosionAnimRet: attackanimation waitanimation -BattleScript_ExplosionLoop: +BattleScript_ExplosionDmgRet: movevaluescleanup critcalc damagecalc adjustdamage - accuracycheck BattleScript_ExplosionMissed, ACC_CURR_MOVE + accuracycheck BattleScript_ExplosionMissedRet, ACC_CURR_MOVE effectivenesssound hitanimation BS_TARGET waitstate @@ -3443,17 +3459,25 @@ BattleScript_ExplosionLoop: resultmessage waitmessage B_WAIT_TIME_LONG tryfaintmon BS_TARGET - moveendto MOVEEND_NEXT_TARGET - jumpifnexttargetvalid BattleScript_ExplosionLoop - tryfaintmon BS_ATTACKER - moveendcase MOVEEND_CLEAR_BITS - end -BattleScript_ExplosionMissed: +BattleScript_ExplosionAnimEndRet_Return: + return +BattleScript_ExplosionMissedRet: effectivenesssound resultmessage waitmessage B_WAIT_TIME_LONG - moveendto MOVEEND_NEXT_TARGET - jumpifnexttargetvalid BattleScript_ExplosionLoop + goto BattleScript_ExplosionAnimEndRet_Return + +BattleScript_EffectExplosion:: + attackcanceler + attackstring + ppreduce +@ Below jumps to BattleScript_DampStopsExplosion if it fails (only way it can) + tryexplosion + waitstate +BattleScript_EffectExplosion_AnimDmgFaintAttacker: + call BattleScript_EffectExplosion_AnimDmgRet + moveendall + setatkhptozero tryfaintmon BS_ATTACKER end @@ -3461,14 +3485,28 @@ BattleScript_EffectMindBlown:: attackcanceler attackstring ppreduce - tryexplosion + jumpifbyte CMP_GREATER_THAN, sB_ANIM_TARGETS_HIT, 0, BattleScript_EffectMindBlown_NoHpLoss + jumpifabilitypresent ABILITY_DAMP, BattleScript_MindBlownDamp + jumpifmorethanhalfHP BS_ATTACKER, BattleScript_EffectMindBlown_HpDown + setbyte sMULTIHIT_EFFECT, 0 @ Note to faint the attacker + instanthpdrop BS_ATTACKER + waitstate + goto BattleScript_EffectExplosion_AnimDmgFaintAttacker +BattleScript_EffectMindBlown_NoHpLoss: + jumpifbyte CMP_EQUAL, sMULTIHIT_EFFECT, 0, BattleScript_EffectExplosion_AnimDmgFaintAttacker + goto BattleScript_EffectMindBlown_AnimDmgNoFaint +BattleScript_MindBlownDamp: + copybyte gBattlerTarget, gBattlerAbility + goto BattleScript_DampStopsExplosion +BattleScript_EffectMindBlown_HpDown: + setbyte sMULTIHIT_EFFECT, 1 @ Note to not faint the attacker dmg_1_2_attackerhp healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER waitstate - jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_ExplosionDoAnimStartLoop - call BattleScript_PreserveMissedBitDoMoveAnim - goto BattleScript_ExplosionLoop +BattleScript_EffectMindBlown_AnimDmgNoFaint: + call BattleScript_EffectExplosion_AnimDmgRet + goto BattleScript_MoveEnd BattleScript_PreserveMissedBitDoMoveAnim: bichalfword gMoveResultFlags, MOVE_RESULT_MISSED @@ -3708,7 +3746,6 @@ BattleScript_EffectRoar:: accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed -BattleScript_ForceRandomSwitch:: forcerandomswitch BattleScript_ButItFailed BattleScript_EffectMultiHit:: @@ -4218,7 +4255,7 @@ BattleScript_BattleScript_EffectParalyzeNoTypeCalc: resultmessage waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd - + BattleScript_VoltAbsorbHeal: copybyte gBattlerAbility, gBattlerTarget tryhealquarterhealth BS_TARGET BattleScript_MonMadeMoveUseless @ Check if max hp @@ -7690,7 +7727,7 @@ BattleScript_GrudgeTakesPp:: printstring STRINGID_PKMNLOSTPPGRUDGE waitmessage B_WAIT_TIME_LONG return - + BattleScript_MagicCoatBounce:: attackstring ppreduce @@ -7976,7 +8013,7 @@ BattleScript_AftermathDmg:: waitmessage B_WAIT_TIME_LONG tryfaintmon BS_ATTACKER return - + BattleScript_DampPreventsAftermath:: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp @@ -8360,9 +8397,9 @@ BattleScript_AbilityRaisesDefenderStat:: BattleScript_AbilityPopUp: .if B_ABILITY_POP_UP == TRUE showabilitypopup BS_ABILITY_BATTLER - recordability BS_ABILITY_BATTLER pause 40 .endif + recordability BS_ABILITY_BATTLER sethword sABILITY_OVERWRITE, 0 return @@ -8573,7 +8610,6 @@ BattleScript_TryAdrenalineOrbRet: return BattleScript_IntimidateActivates:: - jumpifnovalidtargets BattleScript_IntimidateEnd showabilitypopup BS_ATTACKER pause B_WAIT_TIME_LONG destroyabilitypopup @@ -9132,16 +9168,6 @@ BattleScript_BattlerAbilityStatRaiseOnSwitchIn:: waitmessage B_WAIT_TIME_LONG end3 -BattleScript_TargetAbilityStatRaiseOnMoveEnd:: - call BattleScript_AbilityPopUp - statbuffchange STAT_CHANGE_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, NULL - setgraphicalstatchangevalues - playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 - waitanimation - printstring STRINGID_ABILITYRAISEDSTATDRASTICALLY - waitmessage B_WAIT_TIME_LONG - return - BattleScript_ScriptingAbilityStatRaise:: copybyte gBattlerAbility, sBATTLER call BattleScript_AbilityPopUp diff --git a/graphics/battle_anims/sprites/new/teapot.png b/graphics/battle_anims/sprites/new/teapot.png index 6be0680dfc..0e26606418 100644 Binary files a/graphics/battle_anims/sprites/new/teapot.png and b/graphics/battle_anims/sprites/new/teapot.png differ diff --git a/graphics/battle_anims/sprites/omega_symbol.png b/graphics/battle_anims/sprites/omega_symbol.png index a821d5e40a..150501367a 100644 Binary files a/graphics/battle_anims/sprites/omega_symbol.png and b/graphics/battle_anims/sprites/omega_symbol.png differ diff --git a/graphics/battle_interface/alpha_indicator.png b/graphics/battle_interface/alpha_indicator.png index 0e302576b6..66f37f1d33 100644 Binary files a/graphics/battle_interface/alpha_indicator.png and b/graphics/battle_interface/alpha_indicator.png differ diff --git a/graphics/battle_interface/omega_indicator.png b/graphics/battle_interface/omega_indicator.png index c56d51c151..f321fc8263 100644 Binary files a/graphics/battle_interface/omega_indicator.png and b/graphics/battle_interface/omega_indicator.png differ diff --git a/graphics/battle_interface/z_move_trigger.png b/graphics/battle_interface/z_move_trigger.png index 5e27dbabbe..d719494d9f 100644 Binary files a/graphics/battle_interface/z_move_trigger.png and b/graphics/battle_interface/z_move_trigger.png differ diff --git a/graphics/berries/babiri.png b/graphics/berries/babiri.png index 056353bab9..bd9222899e 100644 Binary files a/graphics/berries/babiri.png and b/graphics/berries/babiri.png differ diff --git a/graphics/berries/charti.png b/graphics/berries/charti.png index 9f119ebac0..399cd626ef 100644 Binary files a/graphics/berries/charti.png and b/graphics/berries/charti.png differ diff --git a/graphics/berries/chilan.png b/graphics/berries/chilan.png index 8f717bb82c..286ed5c3fa 100644 Binary files a/graphics/berries/chilan.png and b/graphics/berries/chilan.png differ diff --git a/graphics/berries/chople.png b/graphics/berries/chople.png index 0b4b28014f..345eae24b7 100644 Binary files a/graphics/berries/chople.png and b/graphics/berries/chople.png differ diff --git a/graphics/berries/coba.png b/graphics/berries/coba.png index 18283bd79d..7824d84498 100644 Binary files a/graphics/berries/coba.png and b/graphics/berries/coba.png differ diff --git a/graphics/berries/colbur.png b/graphics/berries/colbur.png index d422a826e5..bb1560b228 100644 Binary files a/graphics/berries/colbur.png and b/graphics/berries/colbur.png differ diff --git a/graphics/berries/haban.png b/graphics/berries/haban.png index 87b27fb263..6dc0f01902 100644 Binary files a/graphics/berries/haban.png and b/graphics/berries/haban.png differ diff --git a/graphics/berries/kasib.png b/graphics/berries/kasib.png index f1b09244b0..3cba928cef 100644 Binary files a/graphics/berries/kasib.png and b/graphics/berries/kasib.png differ diff --git a/graphics/berries/kebia.png b/graphics/berries/kebia.png index e0dfefd672..b4ed7dc434 100644 Binary files a/graphics/berries/kebia.png and b/graphics/berries/kebia.png differ diff --git a/graphics/berries/kee.png b/graphics/berries/kee.png index 1c83b65b19..37e1dc087c 100644 Binary files a/graphics/berries/kee.png and b/graphics/berries/kee.png differ diff --git a/graphics/berries/micle.png b/graphics/berries/micle.png index bbe6011b44..953523dd86 100644 Binary files a/graphics/berries/micle.png and b/graphics/berries/micle.png differ diff --git a/graphics/berries/occa.png b/graphics/berries/occa.png index 1ad829e5f1..1d2af365f9 100644 Binary files a/graphics/berries/occa.png and b/graphics/berries/occa.png differ diff --git a/graphics/berries/passho.png b/graphics/berries/passho.png index c541475450..156dc18d18 100644 Binary files a/graphics/berries/passho.png and b/graphics/berries/passho.png differ diff --git a/graphics/berries/rindo.png b/graphics/berries/rindo.png index 91e895d043..7410778938 100644 Binary files a/graphics/berries/rindo.png and b/graphics/berries/rindo.png differ diff --git a/graphics/berries/roseli.png b/graphics/berries/roseli.png index 4eb675a447..9fb4c8f8dd 100644 Binary files a/graphics/berries/roseli.png and b/graphics/berries/roseli.png differ diff --git a/graphics/berries/rowap.png b/graphics/berries/rowap.png index bbeee3f3b4..decb5a2a99 100644 Binary files a/graphics/berries/rowap.png and b/graphics/berries/rowap.png differ diff --git a/graphics/berries/shuca.png b/graphics/berries/shuca.png index 618f3abace..8ddc547489 100644 Binary files a/graphics/berries/shuca.png and b/graphics/berries/shuca.png differ diff --git a/graphics/berries/tanga.png b/graphics/berries/tanga.png index 702da676f3..6b9076b608 100644 Binary files a/graphics/berries/tanga.png and b/graphics/berries/tanga.png differ diff --git a/graphics/berries/wacan.png b/graphics/berries/wacan.png index 5d88c95bd2..d79c025e6f 100644 Binary files a/graphics/berries/wacan.png and b/graphics/berries/wacan.png differ diff --git a/graphics/berries/yache.png b/graphics/berries/yache.png index 3f39782770..43ebf07682 100644 Binary files a/graphics/berries/yache.png and b/graphics/berries/yache.png differ diff --git a/graphics/expansion_intro/powered_by.png b/graphics/expansion_intro/powered_by.png index b422f6e568..910053f646 100644 Binary files a/graphics/expansion_intro/powered_by.png and b/graphics/expansion_intro/powered_by.png differ diff --git a/graphics/items/icons/ability_capsule.png b/graphics/items/icons/ability_capsule.png index 4cb366137f..49a70ffa56 100755 Binary files a/graphics/items/icons/ability_capsule.png and b/graphics/items/icons/ability_capsule.png differ diff --git a/graphics/items/icons/ability_patch.png b/graphics/items/icons/ability_patch.png index acbef74623..8f14ab7eee 100644 Binary files a/graphics/items/icons/ability_patch.png and b/graphics/items/icons/ability_patch.png differ diff --git a/graphics/items/icons/absorb_bulb.png b/graphics/items/icons/absorb_bulb.png index d958ab3684..a63f7a8bcc 100755 Binary files a/graphics/items/icons/absorb_bulb.png and b/graphics/items/icons/absorb_bulb.png differ diff --git a/graphics/items/icons/air_balloon.png b/graphics/items/icons/air_balloon.png index 6ed3a9ad21..dbcff6d13b 100755 Binary files a/graphics/items/icons/air_balloon.png and b/graphics/items/icons/air_balloon.png differ diff --git a/graphics/items/icons/armor_fossil.png b/graphics/items/icons/armor_fossil.png index a24d2ec4da..7647f9db55 100755 Binary files a/graphics/items/icons/armor_fossil.png and b/graphics/items/icons/armor_fossil.png differ diff --git a/graphics/items/icons/babiri_berry.png b/graphics/items/icons/babiri_berry.png index aeca14e70a..72141937b9 100755 Binary files a/graphics/items/icons/babiri_berry.png and b/graphics/items/icons/babiri_berry.png differ diff --git a/graphics/items/icons/big_malasada.png b/graphics/items/icons/big_malasada.png index d24cd9e00d..a651027774 100755 Binary files a/graphics/items/icons/big_malasada.png and b/graphics/items/icons/big_malasada.png differ diff --git a/graphics/items/icons/big_root.png b/graphics/items/icons/big_root.png index e857cc5f30..ef20e8ea54 100644 Binary files a/graphics/items/icons/big_root.png and b/graphics/items/icons/big_root.png differ diff --git a/graphics/items/icons/black_apricorn.png b/graphics/items/icons/black_apricorn.png index c80707e067..470e77fcfc 100755 Binary files a/graphics/items/icons/black_apricorn.png and b/graphics/items/icons/black_apricorn.png differ diff --git a/graphics/items/icons/black_sludge.png b/graphics/items/icons/black_sludge.png index 2e1fac755f..9987ef73b6 100644 Binary files a/graphics/items/icons/black_sludge.png and b/graphics/items/icons/black_sludge.png differ diff --git a/graphics/items/icons/blue_apricorn.png b/graphics/items/icons/blue_apricorn.png index 35d0ed23b2..9e1b19fb30 100755 Binary files a/graphics/items/icons/blue_apricorn.png and b/graphics/items/icons/blue_apricorn.png differ diff --git a/graphics/items/icons/bug_gem.png b/graphics/items/icons/bug_gem.png index 0561d24d06..4d69046687 100644 Binary files a/graphics/items/icons/bug_gem.png and b/graphics/items/icons/bug_gem.png differ diff --git a/graphics/items/icons/bug_memory.png b/graphics/items/icons/bug_memory.png index 5c4c090988..87f558feef 100755 Binary files a/graphics/items/icons/bug_memory.png and b/graphics/items/icons/bug_memory.png differ diff --git a/graphics/items/icons/burn_drive.png b/graphics/items/icons/burn_drive.png index c83fbd3358..9486eff484 100644 Binary files a/graphics/items/icons/burn_drive.png and b/graphics/items/icons/burn_drive.png differ diff --git a/graphics/items/icons/cell_battery.png b/graphics/items/icons/cell_battery.png index 6183bdb085..23fde6a299 100755 Binary files a/graphics/items/icons/cell_battery.png and b/graphics/items/icons/cell_battery.png differ diff --git a/graphics/items/icons/charti_berry.png b/graphics/items/icons/charti_berry.png index 8848e18d4f..a59e62009a 100755 Binary files a/graphics/items/icons/charti_berry.png and b/graphics/items/icons/charti_berry.png differ diff --git a/graphics/items/icons/chilan_berry.png b/graphics/items/icons/chilan_berry.png index d1516f7323..c78465aa21 100755 Binary files a/graphics/items/icons/chilan_berry.png and b/graphics/items/icons/chilan_berry.png differ diff --git a/graphics/items/icons/chill_drive.png b/graphics/items/icons/chill_drive.png index a2c7e98a68..d3d5e019c2 100644 Binary files a/graphics/items/icons/chill_drive.png and b/graphics/items/icons/chill_drive.png differ diff --git a/graphics/items/icons/choice_scarf.png b/graphics/items/icons/choice_scarf.png index 51157fcc22..99e126453e 100644 Binary files a/graphics/items/icons/choice_scarf.png and b/graphics/items/icons/choice_scarf.png differ diff --git a/graphics/items/icons/choice_specs.png b/graphics/items/icons/choice_specs.png index 6c64cb26e4..7c90bdcff3 100644 Binary files a/graphics/items/icons/choice_specs.png and b/graphics/items/icons/choice_specs.png differ diff --git a/graphics/items/icons/chople_berry.png b/graphics/items/icons/chople_berry.png index 3fa84f379a..22f4f2426c 100755 Binary files a/graphics/items/icons/chople_berry.png and b/graphics/items/icons/chople_berry.png differ diff --git a/graphics/items/icons/coba_berry.png b/graphics/items/icons/coba_berry.png index 5ac21683e0..05f117f4bf 100755 Binary files a/graphics/items/icons/coba_berry.png and b/graphics/items/icons/coba_berry.png differ diff --git a/graphics/items/icons/colbur_berry.png b/graphics/items/icons/colbur_berry.png index 56d46a52a2..9e78509433 100755 Binary files a/graphics/items/icons/colbur_berry.png and b/graphics/items/icons/colbur_berry.png differ diff --git a/graphics/items/icons/cover_fossil.png b/graphics/items/icons/cover_fossil.png index bc8bbe69b5..1202bb4556 100755 Binary files a/graphics/items/icons/cover_fossil.png and b/graphics/items/icons/cover_fossil.png differ diff --git a/graphics/items/icons/custap_berry.png b/graphics/items/icons/custap_berry.png index 3fa594667d..56f1492c3c 100755 Binary files a/graphics/items/icons/custap_berry.png and b/graphics/items/icons/custap_berry.png differ diff --git a/graphics/items/icons/damp_rock.png b/graphics/items/icons/damp_rock.png index fe908739e5..97c75b08fd 100644 Binary files a/graphics/items/icons/damp_rock.png and b/graphics/items/icons/damp_rock.png differ diff --git a/graphics/items/icons/dark_gem.png b/graphics/items/icons/dark_gem.png index 947f041674..8999ca25ac 100644 Binary files a/graphics/items/icons/dark_gem.png and b/graphics/items/icons/dark_gem.png differ diff --git a/graphics/items/icons/dark_memory.png b/graphics/items/icons/dark_memory.png index 258bd309bf..3cb69c7a5f 100755 Binary files a/graphics/items/icons/dark_memory.png and b/graphics/items/icons/dark_memory.png differ diff --git a/graphics/items/icons/dawn_stone.png b/graphics/items/icons/dawn_stone.png index 0465d18bad..a0db015327 100755 Binary files a/graphics/items/icons/dawn_stone.png and b/graphics/items/icons/dawn_stone.png differ diff --git a/graphics/items/icons/destiny_knot.png b/graphics/items/icons/destiny_knot.png index ceeb38d5c7..ce8b18f937 100644 Binary files a/graphics/items/icons/destiny_knot.png and b/graphics/items/icons/destiny_knot.png differ diff --git a/graphics/items/icons/douse_drive.png b/graphics/items/icons/douse_drive.png index eee5ae35f1..f59616159a 100644 Binary files a/graphics/items/icons/douse_drive.png and b/graphics/items/icons/douse_drive.png differ diff --git a/graphics/items/icons/draco_plate.png b/graphics/items/icons/draco_plate.png index 9b08c31c8d..21339c0482 100644 Binary files a/graphics/items/icons/draco_plate.png and b/graphics/items/icons/draco_plate.png differ diff --git a/graphics/items/icons/dragon_gem.png b/graphics/items/icons/dragon_gem.png index 2d41c858c1..f071726a13 100644 Binary files a/graphics/items/icons/dragon_gem.png and b/graphics/items/icons/dragon_gem.png differ diff --git a/graphics/items/icons/dragon_memory.png b/graphics/items/icons/dragon_memory.png index d073dace31..3888b3f3af 100755 Binary files a/graphics/items/icons/dragon_memory.png and b/graphics/items/icons/dragon_memory.png differ diff --git a/graphics/items/icons/dread_plate.png b/graphics/items/icons/dread_plate.png index f93493f97b..8679df524d 100644 Binary files a/graphics/items/icons/dread_plate.png and b/graphics/items/icons/dread_plate.png differ diff --git a/graphics/items/icons/dubious_disc.png b/graphics/items/icons/dubious_disc.png index bf2ab2fc0f..bd0e7f7758 100755 Binary files a/graphics/items/icons/dubious_disc.png and b/graphics/items/icons/dubious_disc.png differ diff --git a/graphics/items/icons/dusk_stone.png b/graphics/items/icons/dusk_stone.png index e928b25167..3d3669bb44 100755 Binary files a/graphics/items/icons/dusk_stone.png and b/graphics/items/icons/dusk_stone.png differ diff --git a/graphics/items/icons/earth_plate.png b/graphics/items/icons/earth_plate.png index 688b24be35..e79dff33ce 100644 Binary files a/graphics/items/icons/earth_plate.png and b/graphics/items/icons/earth_plate.png differ diff --git a/graphics/items/icons/eject_button.png b/graphics/items/icons/eject_button.png index a0492ed6e0..ada08cbb7f 100755 Binary files a/graphics/items/icons/eject_button.png and b/graphics/items/icons/eject_button.png differ diff --git a/graphics/items/icons/electirizer.png b/graphics/items/icons/electirizer.png index 73f6f8f26e..f0351e64d6 100755 Binary files a/graphics/items/icons/electirizer.png and b/graphics/items/icons/electirizer.png differ diff --git a/graphics/items/icons/electric_gem.png b/graphics/items/icons/electric_gem.png index 88e604f182..e17e3f4d13 100644 Binary files a/graphics/items/icons/electric_gem.png and b/graphics/items/icons/electric_gem.png differ diff --git a/graphics/items/icons/electric_memory.png b/graphics/items/icons/electric_memory.png index ce9a8f3624..0ab5da3770 100755 Binary files a/graphics/items/icons/electric_memory.png and b/graphics/items/icons/electric_memory.png differ diff --git a/graphics/items/icons/eviolite.png b/graphics/items/icons/eviolite.png index c08cc59506..b8bc613f8f 100644 Binary files a/graphics/items/icons/eviolite.png and b/graphics/items/icons/eviolite.png differ diff --git a/graphics/items/icons/expert_belt.png b/graphics/items/icons/expert_belt.png index bc00454907..62d4b8bc26 100644 Binary files a/graphics/items/icons/expert_belt.png and b/graphics/items/icons/expert_belt.png differ diff --git a/graphics/items/icons/fairy_gem.png b/graphics/items/icons/fairy_gem.png index 871f74426d..5fe8f6ed99 100644 Binary files a/graphics/items/icons/fairy_gem.png and b/graphics/items/icons/fairy_gem.png differ diff --git a/graphics/items/icons/fairy_memory.png b/graphics/items/icons/fairy_memory.png index fba8691280..5d472d9663 100755 Binary files a/graphics/items/icons/fairy_memory.png and b/graphics/items/icons/fairy_memory.png differ diff --git a/graphics/items/icons/fighting_gem.png b/graphics/items/icons/fighting_gem.png index 7f4fc8b97d..2293767794 100644 Binary files a/graphics/items/icons/fighting_gem.png and b/graphics/items/icons/fighting_gem.png differ diff --git a/graphics/items/icons/fighting_memory.png b/graphics/items/icons/fighting_memory.png index ad21a2d078..f46e89d733 100755 Binary files a/graphics/items/icons/fighting_memory.png and b/graphics/items/icons/fighting_memory.png differ diff --git a/graphics/items/icons/fire_gem.png b/graphics/items/icons/fire_gem.png index deb8979bd8..d6caa7d3d1 100644 Binary files a/graphics/items/icons/fire_gem.png and b/graphics/items/icons/fire_gem.png differ diff --git a/graphics/items/icons/fire_memory.png b/graphics/items/icons/fire_memory.png index 33116aed12..bc62b02c15 100755 Binary files a/graphics/items/icons/fire_memory.png and b/graphics/items/icons/fire_memory.png differ diff --git a/graphics/items/icons/fist_plate.png b/graphics/items/icons/fist_plate.png index 0142938d51..7e6cb2b92d 100644 Binary files a/graphics/items/icons/fist_plate.png and b/graphics/items/icons/fist_plate.png differ diff --git a/graphics/items/icons/flame_plate.png b/graphics/items/icons/flame_plate.png index 6f78e5d020..42a3564ea2 100644 Binary files a/graphics/items/icons/flame_plate.png and b/graphics/items/icons/flame_plate.png differ diff --git a/graphics/items/icons/float_stone.png b/graphics/items/icons/float_stone.png index 61f096fc36..a421d553fb 100644 Binary files a/graphics/items/icons/float_stone.png and b/graphics/items/icons/float_stone.png differ diff --git a/graphics/items/icons/flying_gem.png b/graphics/items/icons/flying_gem.png index 563e80f3bf..eb328c85ee 100644 Binary files a/graphics/items/icons/flying_gem.png and b/graphics/items/icons/flying_gem.png differ diff --git a/graphics/items/icons/flying_memory.png b/graphics/items/icons/flying_memory.png index da413ba1ff..e38f240048 100755 Binary files a/graphics/items/icons/flying_memory.png and b/graphics/items/icons/flying_memory.png differ diff --git a/graphics/items/icons/focus_sash.png b/graphics/items/icons/focus_sash.png index e0df9798ef..a09d2d26bd 100644 Binary files a/graphics/items/icons/focus_sash.png and b/graphics/items/icons/focus_sash.png differ diff --git a/graphics/items/icons/full_incense.png b/graphics/items/icons/full_incense.png index 230927e085..a44f6bffa8 100755 Binary files a/graphics/items/icons/full_incense.png and b/graphics/items/icons/full_incense.png differ diff --git a/graphics/items/icons/ghost_gem.png b/graphics/items/icons/ghost_gem.png index 96e320e219..c4813ee299 100644 Binary files a/graphics/items/icons/ghost_gem.png and b/graphics/items/icons/ghost_gem.png differ diff --git a/graphics/items/icons/ghost_memory.png b/graphics/items/icons/ghost_memory.png index 3041643aaa..2a9b4f6599 100755 Binary files a/graphics/items/icons/ghost_memory.png and b/graphics/items/icons/ghost_memory.png differ diff --git a/graphics/items/icons/gracidea.png b/graphics/items/icons/gracidea.png index 31bac3846c..fdbd8c8af0 100755 Binary files a/graphics/items/icons/gracidea.png and b/graphics/items/icons/gracidea.png differ diff --git a/graphics/items/icons/grass_gem.png b/graphics/items/icons/grass_gem.png index df57119b27..756a769cab 100644 Binary files a/graphics/items/icons/grass_gem.png and b/graphics/items/icons/grass_gem.png differ diff --git a/graphics/items/icons/grass_memory.png b/graphics/items/icons/grass_memory.png index 646568c412..4ef16802d7 100755 Binary files a/graphics/items/icons/grass_memory.png and b/graphics/items/icons/grass_memory.png differ diff --git a/graphics/items/icons/green_apricorn.png b/graphics/items/icons/green_apricorn.png index dc821541bc..da60f8544a 100755 Binary files a/graphics/items/icons/green_apricorn.png and b/graphics/items/icons/green_apricorn.png differ diff --git a/graphics/items/icons/grip_claw.png b/graphics/items/icons/grip_claw.png index d76c6b75c2..dfe2b5509a 100644 Binary files a/graphics/items/icons/grip_claw.png and b/graphics/items/icons/grip_claw.png differ diff --git a/graphics/items/icons/griseous_orb.png b/graphics/items/icons/griseous_orb.png index 5140ea3acd..e306e58661 100644 Binary files a/graphics/items/icons/griseous_orb.png and b/graphics/items/icons/griseous_orb.png differ diff --git a/graphics/items/icons/ground_gem.png b/graphics/items/icons/ground_gem.png index 27a8bf69d5..21fab57b0f 100644 Binary files a/graphics/items/icons/ground_gem.png and b/graphics/items/icons/ground_gem.png differ diff --git a/graphics/items/icons/ground_memory.png b/graphics/items/icons/ground_memory.png index 0f9f31734d..45ac4379ef 100755 Binary files a/graphics/items/icons/ground_memory.png and b/graphics/items/icons/ground_memory.png differ diff --git a/graphics/items/icons/haban_berry.png b/graphics/items/icons/haban_berry.png index f413ea9e14..7171d2b07e 100755 Binary files a/graphics/items/icons/haban_berry.png and b/graphics/items/icons/haban_berry.png differ diff --git a/graphics/items/icons/heat_rock.png b/graphics/items/icons/heat_rock.png index 60eae81696..cbfa598582 100644 Binary files a/graphics/items/icons/heat_rock.png and b/graphics/items/icons/heat_rock.png differ diff --git a/graphics/items/icons/ice_gem.png b/graphics/items/icons/ice_gem.png index db87018fea..e9c28f0503 100644 Binary files a/graphics/items/icons/ice_gem.png and b/graphics/items/icons/ice_gem.png differ diff --git a/graphics/items/icons/ice_memory.png b/graphics/items/icons/ice_memory.png index c0f7cd76e8..5dad66f879 100755 Binary files a/graphics/items/icons/ice_memory.png and b/graphics/items/icons/ice_memory.png differ diff --git a/graphics/items/icons/ice_stone.png b/graphics/items/icons/ice_stone.png index ee5309544e..5f5a7958a6 100755 Binary files a/graphics/items/icons/ice_stone.png and b/graphics/items/icons/ice_stone.png differ diff --git a/graphics/items/icons/icicle_plate.png b/graphics/items/icons/icicle_plate.png index 2d3e27bbba..7a74d45a55 100644 Binary files a/graphics/items/icons/icicle_plate.png and b/graphics/items/icons/icicle_plate.png differ diff --git a/graphics/items/icons/icy_rock.png b/graphics/items/icons/icy_rock.png index 800b12ec87..56fe8cf411 100644 Binary files a/graphics/items/icons/icy_rock.png and b/graphics/items/icons/icy_rock.png differ diff --git a/graphics/items/icons/insect_plate.png b/graphics/items/icons/insect_plate.png index 993e420da1..23bee90932 100644 Binary files a/graphics/items/icons/insect_plate.png and b/graphics/items/icons/insect_plate.png differ diff --git a/graphics/items/icons/iron_ball.png b/graphics/items/icons/iron_ball.png index e1f82bde1d..994641c8d3 100644 Binary files a/graphics/items/icons/iron_ball.png and b/graphics/items/icons/iron_ball.png differ diff --git a/graphics/items/icons/iron_plate.png b/graphics/items/icons/iron_plate.png index 08a3cb8b99..d4a778e4df 100644 Binary files a/graphics/items/icons/iron_plate.png and b/graphics/items/icons/iron_plate.png differ diff --git a/graphics/items/icons/jaboca_berry.png b/graphics/items/icons/jaboca_berry.png index da6d029b08..41cbeb174a 100755 Binary files a/graphics/items/icons/jaboca_berry.png and b/graphics/items/icons/jaboca_berry.png differ diff --git a/graphics/items/icons/jaw_fossil.png b/graphics/items/icons/jaw_fossil.png index a52a7579fd..5691efc13b 100755 Binary files a/graphics/items/icons/jaw_fossil.png and b/graphics/items/icons/jaw_fossil.png differ diff --git a/graphics/items/icons/kasib_berry.png b/graphics/items/icons/kasib_berry.png index c09fa20dec..a62c3e95cb 100755 Binary files a/graphics/items/icons/kasib_berry.png and b/graphics/items/icons/kasib_berry.png differ diff --git a/graphics/items/icons/kebia_berry.png b/graphics/items/icons/kebia_berry.png index a4b5a43939..ba679f626b 100755 Binary files a/graphics/items/icons/kebia_berry.png and b/graphics/items/icons/kebia_berry.png differ diff --git a/graphics/items/icons/kee_berry.png b/graphics/items/icons/kee_berry.png index 83749d1b83..bbd6c53cf2 100755 Binary files a/graphics/items/icons/kee_berry.png and b/graphics/items/icons/kee_berry.png differ diff --git a/graphics/items/icons/lagging_tail.png b/graphics/items/icons/lagging_tail.png index 3299515b6c..3d35e633c8 100644 Binary files a/graphics/items/icons/lagging_tail.png and b/graphics/items/icons/lagging_tail.png differ diff --git a/graphics/items/icons/life_orb.png b/graphics/items/icons/life_orb.png index 9a9ed7c682..68aaa8e51a 100644 Binary files a/graphics/items/icons/life_orb.png and b/graphics/items/icons/life_orb.png differ diff --git a/graphics/items/icons/light_clay.png b/graphics/items/icons/light_clay.png index 7cc3e63801..0007ea8c89 100644 Binary files a/graphics/items/icons/light_clay.png and b/graphics/items/icons/light_clay.png differ diff --git a/graphics/items/icons/lucarionite.png b/graphics/items/icons/lucarionite.png index ea4955c8a0..b429914872 100644 Binary files a/graphics/items/icons/lucarionite.png and b/graphics/items/icons/lucarionite.png differ diff --git a/graphics/items/icons/luck_incense.png b/graphics/items/icons/luck_incense.png index 396ab2f613..6a14050cf9 100755 Binary files a/graphics/items/icons/luck_incense.png and b/graphics/items/icons/luck_incense.png differ diff --git a/graphics/items/icons/luminous_moss.png b/graphics/items/icons/luminous_moss.png index 6ee31c5e1b..b15ba36d8e 100755 Binary files a/graphics/items/icons/luminous_moss.png and b/graphics/items/icons/luminous_moss.png differ diff --git a/graphics/items/icons/lustrous_orb.png b/graphics/items/icons/lustrous_orb.png index 08b452aba9..ab931ff468 100644 Binary files a/graphics/items/icons/lustrous_orb.png and b/graphics/items/icons/lustrous_orb.png differ diff --git a/graphics/items/icons/magmarizer.png b/graphics/items/icons/magmarizer.png index fcaf04b446..41a1b50cae 100755 Binary files a/graphics/items/icons/magmarizer.png and b/graphics/items/icons/magmarizer.png differ diff --git a/graphics/items/icons/maranga_berry.png b/graphics/items/icons/maranga_berry.png index 2551c0167b..d56ce9643c 100755 Binary files a/graphics/items/icons/maranga_berry.png and b/graphics/items/icons/maranga_berry.png differ diff --git a/graphics/items/icons/meadow_plate.png b/graphics/items/icons/meadow_plate.png index 5cec7fc167..6571446bb5 100644 Binary files a/graphics/items/icons/meadow_plate.png and b/graphics/items/icons/meadow_plate.png differ diff --git a/graphics/items/icons/metronome.png b/graphics/items/icons/metronome.png index 4aa57f95e0..4270fcaeda 100644 Binary files a/graphics/items/icons/metronome.png and b/graphics/items/icons/metronome.png differ diff --git a/graphics/items/icons/micle_berry.png b/graphics/items/icons/micle_berry.png index 74e011d0e8..5e108e5a19 100755 Binary files a/graphics/items/icons/micle_berry.png and b/graphics/items/icons/micle_berry.png differ diff --git a/graphics/items/icons/mind_plate.png b/graphics/items/icons/mind_plate.png index dfe89ddbb5..12af8f9ea8 100644 Binary files a/graphics/items/icons/mind_plate.png and b/graphics/items/icons/mind_plate.png differ diff --git a/graphics/items/icons/muscle_band.png b/graphics/items/icons/muscle_band.png index b374760a71..1954f8a56b 100644 Binary files a/graphics/items/icons/muscle_band.png and b/graphics/items/icons/muscle_band.png differ diff --git a/graphics/items/icons/normal_gem.png b/graphics/items/icons/normal_gem.png index c57142c324..5d8cbf7bfd 100644 Binary files a/graphics/items/icons/normal_gem.png and b/graphics/items/icons/normal_gem.png differ diff --git a/graphics/items/icons/occa_berry.png b/graphics/items/icons/occa_berry.png index 05d9860fb5..aa37cf3f62 100755 Binary files a/graphics/items/icons/occa_berry.png and b/graphics/items/icons/occa_berry.png differ diff --git a/graphics/items/icons/odd_incense.png b/graphics/items/icons/odd_incense.png index 11c7d24f7d..9d5f7d2abe 100755 Binary files a/graphics/items/icons/odd_incense.png and b/graphics/items/icons/odd_incense.png differ diff --git a/graphics/items/icons/odd_keystone.png b/graphics/items/icons/odd_keystone.png index 8ef2d3cdb5..8da9f26aa9 100755 Binary files a/graphics/items/icons/odd_keystone.png and b/graphics/items/icons/odd_keystone.png differ diff --git a/graphics/items/icons/old_gateau.png b/graphics/items/icons/old_gateau.png index 064c997a53..93edb8f97e 100755 Binary files a/graphics/items/icons/old_gateau.png and b/graphics/items/icons/old_gateau.png differ diff --git a/graphics/items/icons/oval_stone.png b/graphics/items/icons/oval_stone.png index 27e0a7ccf2..08e8d96be1 100755 Binary files a/graphics/items/icons/oval_stone.png and b/graphics/items/icons/oval_stone.png differ diff --git a/graphics/items/icons/passho_berry.png b/graphics/items/icons/passho_berry.png index cdf3756078..c23145cd9b 100755 Binary files a/graphics/items/icons/passho_berry.png and b/graphics/items/icons/passho_berry.png differ diff --git a/graphics/items/icons/payapa_berry.png b/graphics/items/icons/payapa_berry.png index fe021c473e..fd9ac891aa 100755 Binary files a/graphics/items/icons/payapa_berry.png and b/graphics/items/icons/payapa_berry.png differ diff --git a/graphics/items/icons/pink_apricorn.png b/graphics/items/icons/pink_apricorn.png index abcedcba49..817e0140c3 100755 Binary files a/graphics/items/icons/pink_apricorn.png and b/graphics/items/icons/pink_apricorn.png differ diff --git a/graphics/items/icons/pink_nectar.png b/graphics/items/icons/pink_nectar.png index 21e88d3023..9fbe0f76b3 100755 Binary files a/graphics/items/icons/pink_nectar.png and b/graphics/items/icons/pink_nectar.png differ diff --git a/graphics/items/icons/plume_fossil.png b/graphics/items/icons/plume_fossil.png index cf98166b31..3662964aba 100755 Binary files a/graphics/items/icons/plume_fossil.png and b/graphics/items/icons/plume_fossil.png differ diff --git a/graphics/items/icons/poison_gem.png b/graphics/items/icons/poison_gem.png index ab339eb718..8e78855276 100644 Binary files a/graphics/items/icons/poison_gem.png and b/graphics/items/icons/poison_gem.png differ diff --git a/graphics/items/icons/poison_memory.png b/graphics/items/icons/poison_memory.png index e665d81762..270c8697dd 100755 Binary files a/graphics/items/icons/poison_memory.png and b/graphics/items/icons/poison_memory.png differ diff --git a/graphics/items/icons/poke_radar.png b/graphics/items/icons/poke_radar.png index f0de8796ac..ca4e0477a3 100644 Binary files a/graphics/items/icons/poke_radar.png and b/graphics/items/icons/poke_radar.png differ diff --git a/graphics/items/icons/power_anklet.png b/graphics/items/icons/power_anklet.png index 3a2091c8ee..be1982645b 100755 Binary files a/graphics/items/icons/power_anklet.png and b/graphics/items/icons/power_anklet.png differ diff --git a/graphics/items/icons/power_band.png b/graphics/items/icons/power_band.png index a88e5391b1..d46374279d 100755 Binary files a/graphics/items/icons/power_band.png and b/graphics/items/icons/power_band.png differ diff --git a/graphics/items/icons/power_belt.png b/graphics/items/icons/power_belt.png index e4273f85c6..456793fb99 100755 Binary files a/graphics/items/icons/power_belt.png and b/graphics/items/icons/power_belt.png differ diff --git a/graphics/items/icons/power_bracer.png b/graphics/items/icons/power_bracer.png index 54aa34844b..9d3d37781b 100755 Binary files a/graphics/items/icons/power_bracer.png and b/graphics/items/icons/power_bracer.png differ diff --git a/graphics/items/icons/power_herb.png b/graphics/items/icons/power_herb.png index 947996c4cd..68225447fb 100644 Binary files a/graphics/items/icons/power_herb.png and b/graphics/items/icons/power_herb.png differ diff --git a/graphics/items/icons/power_lens.png b/graphics/items/icons/power_lens.png index b18d911860..742db4b4df 100755 Binary files a/graphics/items/icons/power_lens.png and b/graphics/items/icons/power_lens.png differ diff --git a/graphics/items/icons/power_weight.png b/graphics/items/icons/power_weight.png index 149679c387..221416007c 100755 Binary files a/graphics/items/icons/power_weight.png and b/graphics/items/icons/power_weight.png differ diff --git a/graphics/items/icons/prism_scale.png b/graphics/items/icons/prism_scale.png index 335816ddbc..f992c3bd84 100755 Binary files a/graphics/items/icons/prism_scale.png and b/graphics/items/icons/prism_scale.png differ diff --git a/graphics/items/icons/protector.png b/graphics/items/icons/protector.png index fa88ae1556..5ba93c919b 100755 Binary files a/graphics/items/icons/protector.png and b/graphics/items/icons/protector.png differ diff --git a/graphics/items/icons/psychic_gem.png b/graphics/items/icons/psychic_gem.png index 6b84f38dab..b73184955e 100644 Binary files a/graphics/items/icons/psychic_gem.png and b/graphics/items/icons/psychic_gem.png differ diff --git a/graphics/items/icons/psychic_memory.png b/graphics/items/icons/psychic_memory.png index beda2c22df..6a5aea79a7 100755 Binary files a/graphics/items/icons/psychic_memory.png and b/graphics/items/icons/psychic_memory.png differ diff --git a/graphics/items/icons/pure_incense.png b/graphics/items/icons/pure_incense.png index 8657683b18..eb5345f014 100755 Binary files a/graphics/items/icons/pure_incense.png and b/graphics/items/icons/pure_incense.png differ diff --git a/graphics/items/icons/purple_nectar.png b/graphics/items/icons/purple_nectar.png index 59111f1e4e..f792b5ff55 100755 Binary files a/graphics/items/icons/purple_nectar.png and b/graphics/items/icons/purple_nectar.png differ diff --git a/graphics/items/icons/quick_powder.png b/graphics/items/icons/quick_powder.png index d83b0b5062..fa56dcca7c 100644 Binary files a/graphics/items/icons/quick_powder.png and b/graphics/items/icons/quick_powder.png differ diff --git a/graphics/items/icons/rare_bone.png b/graphics/items/icons/rare_bone.png index 80b4af9d58..eb5665a351 100755 Binary files a/graphics/items/icons/rare_bone.png and b/graphics/items/icons/rare_bone.png differ diff --git a/graphics/items/icons/razor_claw.png b/graphics/items/icons/razor_claw.png index 59c27fc809..e9530521cb 100755 Binary files a/graphics/items/icons/razor_claw.png and b/graphics/items/icons/razor_claw.png differ diff --git a/graphics/items/icons/razor_fang.png b/graphics/items/icons/razor_fang.png index dd54b98e79..17dd1a042a 100755 Binary files a/graphics/items/icons/razor_fang.png and b/graphics/items/icons/razor_fang.png differ diff --git a/graphics/items/icons/reaper_cloth.png b/graphics/items/icons/reaper_cloth.png index 73f0874426..f4f0bfdb48 100755 Binary files a/graphics/items/icons/reaper_cloth.png and b/graphics/items/icons/reaper_cloth.png differ diff --git a/graphics/items/icons/red_apricorn.png b/graphics/items/icons/red_apricorn.png index 52d219c073..aaa952f773 100755 Binary files a/graphics/items/icons/red_apricorn.png and b/graphics/items/icons/red_apricorn.png differ diff --git a/graphics/items/icons/red_card.png b/graphics/items/icons/red_card.png index 1d07d827fa..88c8bf0c17 100755 Binary files a/graphics/items/icons/red_card.png and b/graphics/items/icons/red_card.png differ diff --git a/graphics/items/icons/red_nectar.png b/graphics/items/icons/red_nectar.png index 1d2058dca1..73710370e4 100755 Binary files a/graphics/items/icons/red_nectar.png and b/graphics/items/icons/red_nectar.png differ diff --git a/graphics/items/icons/rindo_berry.png b/graphics/items/icons/rindo_berry.png index 4729e188c0..56a144e953 100755 Binary files a/graphics/items/icons/rindo_berry.png and b/graphics/items/icons/rindo_berry.png differ diff --git a/graphics/items/icons/ring_target.png b/graphics/items/icons/ring_target.png index fae2b944be..08b044df76 100755 Binary files a/graphics/items/icons/ring_target.png and b/graphics/items/icons/ring_target.png differ diff --git a/graphics/items/icons/rock_gem.png b/graphics/items/icons/rock_gem.png index 6d6070b516..fdf634b730 100644 Binary files a/graphics/items/icons/rock_gem.png and b/graphics/items/icons/rock_gem.png differ diff --git a/graphics/items/icons/rock_incense.png b/graphics/items/icons/rock_incense.png index 04a3d1b5c2..a79f08927f 100755 Binary files a/graphics/items/icons/rock_incense.png and b/graphics/items/icons/rock_incense.png differ diff --git a/graphics/items/icons/rock_memory.png b/graphics/items/icons/rock_memory.png index 32d46fea49..9e6ce8fdb8 100755 Binary files a/graphics/items/icons/rock_memory.png and b/graphics/items/icons/rock_memory.png differ diff --git a/graphics/items/icons/rocky_helmet.png b/graphics/items/icons/rocky_helmet.png index 006a9f8aa4..72613a206e 100755 Binary files a/graphics/items/icons/rocky_helmet.png and b/graphics/items/icons/rocky_helmet.png differ diff --git a/graphics/items/icons/rose_incense.png b/graphics/items/icons/rose_incense.png index c6b6abcc36..95bfc77e1f 100755 Binary files a/graphics/items/icons/rose_incense.png and b/graphics/items/icons/rose_incense.png differ diff --git a/graphics/items/icons/roseli_berry.png b/graphics/items/icons/roseli_berry.png index 7487cb2a4c..11756b42d4 100755 Binary files a/graphics/items/icons/roseli_berry.png and b/graphics/items/icons/roseli_berry.png differ diff --git a/graphics/items/icons/rowap_berry.png b/graphics/items/icons/rowap_berry.png index a25d39838f..318ff9bd13 100755 Binary files a/graphics/items/icons/rowap_berry.png and b/graphics/items/icons/rowap_berry.png differ diff --git a/graphics/items/icons/sachet.png b/graphics/items/icons/sachet.png index 32c566a91d..e1b2774086 100755 Binary files a/graphics/items/icons/sachet.png and b/graphics/items/icons/sachet.png differ diff --git a/graphics/items/icons/safety_goggles.png b/graphics/items/icons/safety_goggles.png index 7a1efab67a..2381790f2a 100644 Binary files a/graphics/items/icons/safety_goggles.png and b/graphics/items/icons/safety_goggles.png differ diff --git a/graphics/items/icons/sail_fossil.png b/graphics/items/icons/sail_fossil.png index 4c6514820e..acf7f13ba2 100755 Binary files a/graphics/items/icons/sail_fossil.png and b/graphics/items/icons/sail_fossil.png differ diff --git a/graphics/items/icons/shed_shell.png b/graphics/items/icons/shed_shell.png index 6e02ff4a3a..a3df4d15c2 100644 Binary files a/graphics/items/icons/shed_shell.png and b/graphics/items/icons/shed_shell.png differ diff --git a/graphics/items/icons/shiny_charm.png b/graphics/items/icons/shiny_charm.png index 3829154cd5..fd2c97ac83 100644 Binary files a/graphics/items/icons/shiny_charm.png and b/graphics/items/icons/shiny_charm.png differ diff --git a/graphics/items/icons/shiny_stone.png b/graphics/items/icons/shiny_stone.png index d48db4d86a..a54091d4aa 100755 Binary files a/graphics/items/icons/shiny_stone.png and b/graphics/items/icons/shiny_stone.png differ diff --git a/graphics/items/icons/shock_drive.png b/graphics/items/icons/shock_drive.png index 2ac62f6cee..99f8e512c4 100644 Binary files a/graphics/items/icons/shock_drive.png and b/graphics/items/icons/shock_drive.png differ diff --git a/graphics/items/icons/shuca_berry.png b/graphics/items/icons/shuca_berry.png index cc99671876..f26a80f7ac 100755 Binary files a/graphics/items/icons/shuca_berry.png and b/graphics/items/icons/shuca_berry.png differ diff --git a/graphics/items/icons/skull_fossil.png b/graphics/items/icons/skull_fossil.png index 1868983468..2f82900c15 100755 Binary files a/graphics/items/icons/skull_fossil.png and b/graphics/items/icons/skull_fossil.png differ diff --git a/graphics/items/icons/sky_plate.png b/graphics/items/icons/sky_plate.png index f64b14aff6..0d2a910bca 100644 Binary files a/graphics/items/icons/sky_plate.png and b/graphics/items/icons/sky_plate.png differ diff --git a/graphics/items/icons/smooth_rock.png b/graphics/items/icons/smooth_rock.png index 8db8ef11f5..31715570fb 100644 Binary files a/graphics/items/icons/smooth_rock.png and b/graphics/items/icons/smooth_rock.png differ diff --git a/graphics/items/icons/snowball.png b/graphics/items/icons/snowball.png index 3ba834ae34..516b1cbd86 100755 Binary files a/graphics/items/icons/snowball.png and b/graphics/items/icons/snowball.png differ diff --git a/graphics/items/icons/splash_plate.png b/graphics/items/icons/splash_plate.png index b290e81001..c75fe54736 100644 Binary files a/graphics/items/icons/splash_plate.png and b/graphics/items/icons/splash_plate.png differ diff --git a/graphics/items/icons/spooky_plate.png b/graphics/items/icons/spooky_plate.png index 215657bcc6..d3dbfaf0c8 100644 Binary files a/graphics/items/icons/spooky_plate.png and b/graphics/items/icons/spooky_plate.png differ diff --git a/graphics/items/icons/steel_gem.png b/graphics/items/icons/steel_gem.png index 252dc2d47e..65495811f3 100644 Binary files a/graphics/items/icons/steel_gem.png and b/graphics/items/icons/steel_gem.png differ diff --git a/graphics/items/icons/steel_memory.png b/graphics/items/icons/steel_memory.png index b9329e2d02..b404ad3209 100755 Binary files a/graphics/items/icons/steel_memory.png and b/graphics/items/icons/steel_memory.png differ diff --git a/graphics/items/icons/sticky_barb.png b/graphics/items/icons/sticky_barb.png index 735d3a051f..8147e8de74 100644 Binary files a/graphics/items/icons/sticky_barb.png and b/graphics/items/icons/sticky_barb.png differ diff --git a/graphics/items/icons/stone_plate.png b/graphics/items/icons/stone_plate.png index 8af90a8a65..4aa9ba2848 100644 Binary files a/graphics/items/icons/stone_plate.png and b/graphics/items/icons/stone_plate.png differ diff --git a/graphics/items/icons/sweet_heart.png b/graphics/items/icons/sweet_heart.png index 06b592022f..6c9ece30d4 100755 Binary files a/graphics/items/icons/sweet_heart.png and b/graphics/items/icons/sweet_heart.png differ diff --git a/graphics/items/icons/tanga_berry.png b/graphics/items/icons/tanga_berry.png index 37f8e24656..1c552fb6d6 100755 Binary files a/graphics/items/icons/tanga_berry.png and b/graphics/items/icons/tanga_berry.png differ diff --git a/graphics/items/icons/toxic_orb.png b/graphics/items/icons/toxic_orb.png index d63ad4fa3a..4b385799c0 100644 Binary files a/graphics/items/icons/toxic_orb.png and b/graphics/items/icons/toxic_orb.png differ diff --git a/graphics/items/icons/toxic_plate.png b/graphics/items/icons/toxic_plate.png index de64d6c201..f282c0f3a7 100644 Binary files a/graphics/items/icons/toxic_plate.png and b/graphics/items/icons/toxic_plate.png differ diff --git a/graphics/items/icons/wacan_berry.png b/graphics/items/icons/wacan_berry.png index af113c9b58..61e94c6427 100755 Binary files a/graphics/items/icons/wacan_berry.png and b/graphics/items/icons/wacan_berry.png differ diff --git a/graphics/items/icons/water_gem.png b/graphics/items/icons/water_gem.png index 79e0ca07f3..555d92ccca 100644 Binary files a/graphics/items/icons/water_gem.png and b/graphics/items/icons/water_gem.png differ diff --git a/graphics/items/icons/water_memory.png b/graphics/items/icons/water_memory.png index d7096f57cc..054c05d116 100755 Binary files a/graphics/items/icons/water_memory.png and b/graphics/items/icons/water_memory.png differ diff --git a/graphics/items/icons/wave_incense.png b/graphics/items/icons/wave_incense.png index aec3fd05ef..5fc560eb86 100755 Binary files a/graphics/items/icons/wave_incense.png and b/graphics/items/icons/wave_incense.png differ diff --git a/graphics/items/icons/weakness_policy.png b/graphics/items/icons/weakness_policy.png index d8f0b45531..76d26e7e49 100755 Binary files a/graphics/items/icons/weakness_policy.png and b/graphics/items/icons/weakness_policy.png differ diff --git a/graphics/items/icons/whipped_dream.png b/graphics/items/icons/whipped_dream.png index 9cf9c959a7..0d3b424984 100755 Binary files a/graphics/items/icons/whipped_dream.png and b/graphics/items/icons/whipped_dream.png differ diff --git a/graphics/items/icons/white_apricorn.png b/graphics/items/icons/white_apricorn.png index c2ea561742..976779af70 100755 Binary files a/graphics/items/icons/white_apricorn.png and b/graphics/items/icons/white_apricorn.png differ diff --git a/graphics/items/icons/wide_lens.png b/graphics/items/icons/wide_lens.png index ea432dc8de..dd1e92c2c2 100644 Binary files a/graphics/items/icons/wide_lens.png and b/graphics/items/icons/wide_lens.png differ diff --git a/graphics/items/icons/wise_glasses.png b/graphics/items/icons/wise_glasses.png index a3982f1816..5500baa320 100644 Binary files a/graphics/items/icons/wise_glasses.png and b/graphics/items/icons/wise_glasses.png differ diff --git a/graphics/items/icons/x_special_defense.png b/graphics/items/icons/x_special_defense.png index 54a3e00fdf..18dd6d5cc8 100755 Binary files a/graphics/items/icons/x_special_defense.png and b/graphics/items/icons/x_special_defense.png differ diff --git a/graphics/items/icons/yache_berry.png b/graphics/items/icons/yache_berry.png index 08bb40fcfb..1d53ed6338 100755 Binary files a/graphics/items/icons/yache_berry.png and b/graphics/items/icons/yache_berry.png differ diff --git a/graphics/items/icons/yellow_apricorn.png b/graphics/items/icons/yellow_apricorn.png index 4dd12c5eb6..293b4054f2 100755 Binary files a/graphics/items/icons/yellow_apricorn.png and b/graphics/items/icons/yellow_apricorn.png differ diff --git a/graphics/items/icons/yellow_nectar.png b/graphics/items/icons/yellow_nectar.png index fff8ae6977..c097f40926 100755 Binary files a/graphics/items/icons/yellow_nectar.png and b/graphics/items/icons/yellow_nectar.png differ diff --git a/graphics/items/icons/zap_plate.png b/graphics/items/icons/zap_plate.png index 80fed9a1e5..3e355ca995 100644 Binary files a/graphics/items/icons/zap_plate.png and b/graphics/items/icons/zap_plate.png differ diff --git a/graphics/items/icons/zoom_lens.png b/graphics/items/icons/zoom_lens.png index 167619aa64..c5350960e3 100644 Binary files a/graphics/items/icons/zoom_lens.png and b/graphics/items/icons/zoom_lens.png differ diff --git a/graphics/object_events/pics/berry_trees/chople.png b/graphics/object_events/pics/berry_trees/chople.png index fc70a9af59..5377a7fa40 100644 Binary files a/graphics/object_events/pics/berry_trees/chople.png and b/graphics/object_events/pics/berry_trees/chople.png differ diff --git a/graphics/object_events/pics/berry_trees/custap.png b/graphics/object_events/pics/berry_trees/custap.png index 3cb5ccfb10..a64a89275e 100644 Binary files a/graphics/object_events/pics/berry_trees/custap.png and b/graphics/object_events/pics/berry_trees/custap.png differ diff --git a/graphics/object_events/pics/berry_trees/jaboca.png b/graphics/object_events/pics/berry_trees/jaboca.png index 36e51eb015..a85ca438d7 100644 Binary files a/graphics/object_events/pics/berry_trees/jaboca.png and b/graphics/object_events/pics/berry_trees/jaboca.png differ diff --git a/graphics/object_events/pics/berry_trees/kasib.png b/graphics/object_events/pics/berry_trees/kasib.png index b8a8401e8d..dcd988ecde 100644 Binary files a/graphics/object_events/pics/berry_trees/kasib.png and b/graphics/object_events/pics/berry_trees/kasib.png differ diff --git a/graphics/object_events/pics/berry_trees/kebia.png b/graphics/object_events/pics/berry_trees/kebia.png index 03efc73c1f..413ef9b4b4 100644 Binary files a/graphics/object_events/pics/berry_trees/kebia.png and b/graphics/object_events/pics/berry_trees/kebia.png differ diff --git a/graphics/object_events/pics/berry_trees/micle.png b/graphics/object_events/pics/berry_trees/micle.png index 365ff43b21..b7d05e5dd8 100644 Binary files a/graphics/object_events/pics/berry_trees/micle.png and b/graphics/object_events/pics/berry_trees/micle.png differ diff --git a/graphics/object_events/pics/berry_trees/occa.png b/graphics/object_events/pics/berry_trees/occa.png index 8685264f9b..cd90f48851 100644 Binary files a/graphics/object_events/pics/berry_trees/occa.png and b/graphics/object_events/pics/berry_trees/occa.png differ diff --git a/graphics/object_events/pics/berry_trees/payapa.png b/graphics/object_events/pics/berry_trees/payapa.png index 14aed0c235..99233cab7c 100644 Binary files a/graphics/object_events/pics/berry_trees/payapa.png and b/graphics/object_events/pics/berry_trees/payapa.png differ diff --git a/graphics/object_events/pics/berry_trees/roseli.png b/graphics/object_events/pics/berry_trees/roseli.png index f59bf93a2d..6e8aab1584 100644 Binary files a/graphics/object_events/pics/berry_trees/roseli.png and b/graphics/object_events/pics/berry_trees/roseli.png differ diff --git a/graphics/object_events/pics/berry_trees/shuca.png b/graphics/object_events/pics/berry_trees/shuca.png index 4e95bb4f6a..dec160ae67 100644 Binary files a/graphics/object_events/pics/berry_trees/shuca.png and b/graphics/object_events/pics/berry_trees/shuca.png differ diff --git a/graphics/object_events/pics/berry_trees/tanga.png b/graphics/object_events/pics/berry_trees/tanga.png index 28e86f6f4d..0bba806bc4 100644 Binary files a/graphics/object_events/pics/berry_trees/tanga.png and b/graphics/object_events/pics/berry_trees/tanga.png differ diff --git a/graphics/pokemon/alcremie/caramel_swirl/front.png b/graphics/pokemon/alcremie/caramel_swirl/front.png index 42f6c0482c..3b52242b14 100644 Binary files a/graphics/pokemon/alcremie/caramel_swirl/front.png and b/graphics/pokemon/alcremie/caramel_swirl/front.png differ diff --git a/graphics/pokemon/alcremie/lemon_cream/front.png b/graphics/pokemon/alcremie/lemon_cream/front.png index b913e40be8..4fff85bc54 100644 Binary files a/graphics/pokemon/alcremie/lemon_cream/front.png and b/graphics/pokemon/alcremie/lemon_cream/front.png differ diff --git a/graphics/pokemon/alcremie/matcha_cream/back.png b/graphics/pokemon/alcremie/matcha_cream/back.png index 8f93ef92ef..2ef7e2d3bd 100644 Binary files a/graphics/pokemon/alcremie/matcha_cream/back.png and b/graphics/pokemon/alcremie/matcha_cream/back.png differ diff --git a/graphics/pokemon/alcremie/matcha_cream/front.png b/graphics/pokemon/alcremie/matcha_cream/front.png index 39c3ab855a..7dfe1b3073 100644 Binary files a/graphics/pokemon/alcremie/matcha_cream/front.png and b/graphics/pokemon/alcremie/matcha_cream/front.png differ diff --git a/graphics/pokemon/alcremie/mint_cream/front.png b/graphics/pokemon/alcremie/mint_cream/front.png index 68d3b5a4c0..e019cb098a 100644 Binary files a/graphics/pokemon/alcremie/mint_cream/front.png and b/graphics/pokemon/alcremie/mint_cream/front.png differ diff --git a/graphics/pokemon/alcremie/rainbow_swirl/back.png b/graphics/pokemon/alcremie/rainbow_swirl/back.png index e7f558454d..06abc68128 100644 Binary files a/graphics/pokemon/alcremie/rainbow_swirl/back.png and b/graphics/pokemon/alcremie/rainbow_swirl/back.png differ diff --git a/graphics/pokemon/alcremie/ruby_cream/front.png b/graphics/pokemon/alcremie/ruby_cream/front.png index 7196c7054b..3f59ec8107 100644 Binary files a/graphics/pokemon/alcremie/ruby_cream/front.png and b/graphics/pokemon/alcremie/ruby_cream/front.png differ diff --git a/graphics/pokemon/alcremie/salted_cream/front.png b/graphics/pokemon/alcremie/salted_cream/front.png index 08a75d2e8e..13cc028c44 100644 Binary files a/graphics/pokemon/alcremie/salted_cream/front.png and b/graphics/pokemon/alcremie/salted_cream/front.png differ diff --git a/graphics/pokemon/altaria/back.png b/graphics/pokemon/altaria/back.png index 2f69affea0..77b89ed0b6 100644 Binary files a/graphics/pokemon/altaria/back.png and b/graphics/pokemon/altaria/back.png differ diff --git a/graphics/pokemon/ampharos/anim_front.png b/graphics/pokemon/ampharos/anim_front.png index 1b3930f64a..4e71838b00 100644 Binary files a/graphics/pokemon/ampharos/anim_front.png and b/graphics/pokemon/ampharos/anim_front.png differ diff --git a/graphics/pokemon/ampharos/back.png b/graphics/pokemon/ampharos/back.png index 80fdc1f23d..7cba18fe47 100644 Binary files a/graphics/pokemon/ampharos/back.png and b/graphics/pokemon/ampharos/back.png differ diff --git a/graphics/pokemon/ampharos/front.png b/graphics/pokemon/ampharos/front.png index cc9711f87d..244dfecde3 100644 Binary files a/graphics/pokemon/ampharos/front.png and b/graphics/pokemon/ampharos/front.png differ diff --git a/graphics/pokemon/ampharos/normal.pal b/graphics/pokemon/ampharos/normal.pal index dd9818d6b0..af1e4ae876 100644 --- a/graphics/pokemon/ampharos/normal.pal +++ b/graphics/pokemon/ampharos/normal.pal @@ -3,17 +3,17 @@ JASC-PAL 16 152 208 160 16 16 16 -88 80 88 -248 192 16 -200 136 16 -128 88 48 -192 0 0 -248 232 72 -248 32 32 -248 248 248 -168 0 0 -176 176 176 -224 224 224 -248 176 160 -127 63 75 -198 121 121 +90 90 90 +255 197 16 +205 139 16 +131 90 49 +197 65 0 +255 238 74 +255 98 0 +255 255 255 +139 32 0 +172 172 172 +230 230 230 +255 98 0 +90 0 0 +197 65 0 diff --git a/graphics/pokemon/ariados/anim_front.png b/graphics/pokemon/ariados/anim_front.png index c579c4c014..024aa0bebf 100644 Binary files a/graphics/pokemon/ariados/anim_front.png and b/graphics/pokemon/ariados/anim_front.png differ diff --git a/graphics/pokemon/ariados/front.png b/graphics/pokemon/ariados/front.png index 8d11202a2c..e47a67ec56 100644 Binary files a/graphics/pokemon/ariados/front.png and b/graphics/pokemon/ariados/front.png differ diff --git a/graphics/pokemon/ariados/normal.pal b/graphics/pokemon/ariados/normal.pal index 5939c4fcba..66aaa7bdb4 100644 --- a/graphics/pokemon/ariados/normal.pal +++ b/graphics/pokemon/ariados/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -104 80 24 -248 216 64 +106 82 24 +255 222 65 0 0 0 -192 176 72 -152 88 192 -184 128 224 -96 48 152 -136 32 0 -200 40 56 -240 72 112 -240 136 152 -104 104 104 -184 184 184 -248 248 248 -80 0 0 +197 180 74 +156 90 197 +189 131 230 +98 49 156 +139 32 0 +197 65 65 +255 90 74 +255 139 115 +106 106 106 +189 189 189 +255 255 255 +139 32 0 diff --git a/graphics/pokemon/bagon/back.png b/graphics/pokemon/bagon/back.png index fe88902d1c..1bab33f32c 100644 Binary files a/graphics/pokemon/bagon/back.png and b/graphics/pokemon/bagon/back.png differ diff --git a/graphics/pokemon/basculin/blue_striped/back.png b/graphics/pokemon/basculin/blue_striped/back.png index fbe338ab81..9578c6665f 100644 Binary files a/graphics/pokemon/basculin/blue_striped/back.png and b/graphics/pokemon/basculin/blue_striped/back.png differ diff --git a/graphics/pokemon/basculin/blue_striped/icon.png b/graphics/pokemon/basculin/blue_striped/icon.png index f0450849a1..d84ec283fc 100644 Binary files a/graphics/pokemon/basculin/blue_striped/icon.png and b/graphics/pokemon/basculin/blue_striped/icon.png differ diff --git a/graphics/pokemon/bayleef/anim_front.png b/graphics/pokemon/bayleef/anim_front.png index 3b5b90f511..05f44e73b5 100644 Binary files a/graphics/pokemon/bayleef/anim_front.png and b/graphics/pokemon/bayleef/anim_front.png differ diff --git a/graphics/pokemon/bayleef/front.png b/graphics/pokemon/bayleef/front.png index 24cec2bcbf..864172795c 100644 Binary files a/graphics/pokemon/bayleef/front.png and b/graphics/pokemon/bayleef/front.png differ diff --git a/graphics/pokemon/bayleef/normal.pal b/graphics/pokemon/bayleef/normal.pal index 2602bc2577..d055dd9350 100644 --- a/graphics/pokemon/bayleef/normal.pal +++ b/graphics/pokemon/bayleef/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -40 80 8 -80 120 8 -136 184 48 -104 152 16 +41 82 8 +82 123 8 +139 189 49 +106 156 16 16 16 16 -168 128 40 -104 80 0 -248 232 160 -216 184 112 -248 248 248 -248 240 200 -208 56 0 -208 136 80 -96 96 96 -192 192 192 +164 131 24 +106 82 0 +246 230 74 +222 189 41 +255 255 255 +255 255 139 +172 49 0 +213 139 82 +98 98 98 +197 197 197 diff --git a/graphics/pokemon/beartic/back.png b/graphics/pokemon/beartic/back.png index f8bb2707d0..ab4586f69e 100644 Binary files a/graphics/pokemon/beartic/back.png and b/graphics/pokemon/beartic/back.png differ diff --git a/graphics/pokemon/bidoof/anim_frontf.png b/graphics/pokemon/bidoof/anim_frontf.png index 9585a6015c..a62f24b7d2 100644 Binary files a/graphics/pokemon/bidoof/anim_frontf.png and b/graphics/pokemon/bidoof/anim_frontf.png differ diff --git a/graphics/pokemon/bidoof/backf.png b/graphics/pokemon/bidoof/backf.png index 5f6bc7e8bc..a76560fe47 100644 Binary files a/graphics/pokemon/bidoof/backf.png and b/graphics/pokemon/bidoof/backf.png differ diff --git a/graphics/pokemon/breloom/back.png b/graphics/pokemon/breloom/back.png index e8a71c9139..9616b07956 100644 Binary files a/graphics/pokemon/breloom/back.png and b/graphics/pokemon/breloom/back.png differ diff --git a/graphics/pokemon/budew/back.png b/graphics/pokemon/budew/back.png index 4c8478e2a8..33a92ba75c 100644 Binary files a/graphics/pokemon/budew/back.png and b/graphics/pokemon/budew/back.png differ diff --git a/graphics/pokemon/carvanha/back.png b/graphics/pokemon/carvanha/back.png index 6b2b3ca278..e461b970c9 100644 Binary files a/graphics/pokemon/carvanha/back.png and b/graphics/pokemon/carvanha/back.png differ diff --git a/graphics/pokemon/castform/rainy/icon.png b/graphics/pokemon/castform/rainy/icon.png index 2bca7deddb..c61d0e5f09 100644 Binary files a/graphics/pokemon/castform/rainy/icon.png and b/graphics/pokemon/castform/rainy/icon.png differ diff --git a/graphics/pokemon/castform/snowy/icon.png b/graphics/pokemon/castform/snowy/icon.png index 6ab5a15491..e8651ef417 100644 Binary files a/graphics/pokemon/castform/snowy/icon.png and b/graphics/pokemon/castform/snowy/icon.png differ diff --git a/graphics/pokemon/castform/sunny/icon.png b/graphics/pokemon/castform/sunny/icon.png index 56a9ee5149..a591128399 100644 Binary files a/graphics/pokemon/castform/sunny/icon.png and b/graphics/pokemon/castform/sunny/icon.png differ diff --git a/graphics/pokemon/celebi/back.png b/graphics/pokemon/celebi/back.png index d21d8e38cd..759bfc96a4 100644 Binary files a/graphics/pokemon/celebi/back.png and b/graphics/pokemon/celebi/back.png differ diff --git a/graphics/pokemon/cherrim/sunshine/icon.png b/graphics/pokemon/cherrim/sunshine/icon.png index 2c23461bb4..333e22bb59 100644 Binary files a/graphics/pokemon/cherrim/sunshine/icon.png and b/graphics/pokemon/cherrim/sunshine/icon.png differ diff --git a/graphics/pokemon/chespin/anim_front.png b/graphics/pokemon/chespin/anim_front.png index b55bb128c8..af2f036fa8 100644 Binary files a/graphics/pokemon/chespin/anim_front.png and b/graphics/pokemon/chespin/anim_front.png differ diff --git a/graphics/pokemon/chikorita/anim_front.png b/graphics/pokemon/chikorita/anim_front.png index ebba2d94f3..c12f9f5f02 100644 Binary files a/graphics/pokemon/chikorita/anim_front.png and b/graphics/pokemon/chikorita/anim_front.png differ diff --git a/graphics/pokemon/chikorita/front.png b/graphics/pokemon/chikorita/front.png index 687e8ee363..0bdaa58db0 100644 Binary files a/graphics/pokemon/chikorita/front.png and b/graphics/pokemon/chikorita/front.png differ diff --git a/graphics/pokemon/chikorita/normal.pal b/graphics/pokemon/chikorita/normal.pal index 0cda9b7dd9..a89f73e98b 100644 --- a/graphics/pokemon/chikorita/normal.pal +++ b/graphics/pokemon/chikorita/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 192 192 248 -80 136 32 -64 96 24 -144 208 96 -104 176 72 +98 139 41 +65 98 24 +131 230 49 +106 180 41 0 0 0 -96 96 56 -152 152 88 -224 232 168 -240 240 208 -184 200 120 -192 192 192 -248 248 248 -96 64 88 -192 40 40 -232 120 120 +65 90 24 +131 148 82 +213 246 139 +238 255 197 +180 205 106 +197 197 197 +255 255 255 +98 65 90 +197 41 41 +238 123 123 diff --git a/graphics/pokemon/chinchou/anim_front.png b/graphics/pokemon/chinchou/anim_front.png index 370a5a99d3..1b7e9ee03a 100644 Binary files a/graphics/pokemon/chinchou/anim_front.png and b/graphics/pokemon/chinchou/anim_front.png differ diff --git a/graphics/pokemon/chinchou/front.png b/graphics/pokemon/chinchou/front.png index 348090d348..de70e90f76 100644 Binary files a/graphics/pokemon/chinchou/front.png and b/graphics/pokemon/chinchou/front.png differ diff --git a/graphics/pokemon/chinchou/normal.pal b/graphics/pokemon/chinchou/normal.pal index a2d9c8aca0..5af02cce93 100644 --- a/graphics/pokemon/chinchou/normal.pal +++ b/graphics/pokemon/chinchou/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -88 112 192 -40 80 144 -120 152 216 -184 152 32 -240 216 56 -184 192 232 -8 40 88 +90 115 197 +41 82 148 +106 164 230 +197 148 0 +255 205 82 +148 205 230 +8 41 90 0 0 0 -128 96 80 -80 40 24 -248 232 128 -216 184 48 -144 160 224 -176 0 0 +131 98 82 +82 41 24 +255 238 131 +230 180 41 +123 189 230 +180 0 0 0 0 0 diff --git a/graphics/pokemon/cinccino/back.png b/graphics/pokemon/cinccino/back.png index 6855ace888..b97531f9f2 100644 Binary files a/graphics/pokemon/cinccino/back.png and b/graphics/pokemon/cinccino/back.png differ diff --git a/graphics/pokemon/cinderace/back.png b/graphics/pokemon/cinderace/back.png index 701208e672..6af38da2b4 100644 Binary files a/graphics/pokemon/cinderace/back.png and b/graphics/pokemon/cinderace/back.png differ diff --git a/graphics/pokemon/cinderace/front.png b/graphics/pokemon/cinderace/front.png index fe11d997e7..d4b086a789 100644 Binary files a/graphics/pokemon/cinderace/front.png and b/graphics/pokemon/cinderace/front.png differ diff --git a/graphics/pokemon/cleffa/anim_front.png b/graphics/pokemon/cleffa/anim_front.png index 2f3e541f7e..9f2ee497fa 100644 Binary files a/graphics/pokemon/cleffa/anim_front.png and b/graphics/pokemon/cleffa/anim_front.png differ diff --git a/graphics/pokemon/cleffa/front.png b/graphics/pokemon/cleffa/front.png index a8d989f263..5b28503ac2 100644 Binary files a/graphics/pokemon/cleffa/front.png and b/graphics/pokemon/cleffa/front.png differ diff --git a/graphics/pokemon/cleffa/normal.pal b/graphics/pokemon/cleffa/normal.pal index d6dafd7980..c4944c7c66 100644 --- a/graphics/pokemon/cleffa/normal.pal +++ b/graphics/pokemon/cleffa/normal.pal @@ -3,17 +3,17 @@ JASC-PAL 16 152 208 160 168 80 80 -248 208 200 -248 160 160 -200 128 128 -80 48 40 -88 48 32 -112 72 56 +255 213 205 +255 164 164 +205 131 131 +98 32 24 +115 74 49 +156 98 8 16 16 16 -152 128 112 +197 139 41 248 248 248 -248 112 80 -248 152 120 -192 64 64 +205 131 131 +255 164 164 +156 0 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/corsola/galarian/front.png b/graphics/pokemon/corsola/galarian/front.png index e9b4a7ded5..19d22f3b89 100644 Binary files a/graphics/pokemon/corsola/galarian/front.png and b/graphics/pokemon/corsola/galarian/front.png differ diff --git a/graphics/pokemon/cranidos/back.png b/graphics/pokemon/cranidos/back.png index 54947660c0..39aacf0bad 100644 Binary files a/graphics/pokemon/cranidos/back.png and b/graphics/pokemon/cranidos/back.png differ diff --git a/graphics/pokemon/crobat/anim_front.png b/graphics/pokemon/crobat/anim_front.png index abf3b22be4..9275d83094 100644 Binary files a/graphics/pokemon/crobat/anim_front.png and b/graphics/pokemon/crobat/anim_front.png differ diff --git a/graphics/pokemon/crobat/front.png b/graphics/pokemon/crobat/front.png index e0b69bad78..4ae6f49151 100644 Binary files a/graphics/pokemon/crobat/front.png and b/graphics/pokemon/crobat/front.png differ diff --git a/graphics/pokemon/crobat/normal.pal b/graphics/pokemon/crobat/normal.pal index c8b2897700..5db72c9cf3 100644 --- a/graphics/pokemon/crobat/normal.pal +++ b/graphics/pokemon/crobat/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -96 24 120 -120 72 152 -176 120 200 +90 41 115 +131 74 205 +205 139 246 16 16 16 -8 64 104 -32 104 144 -160 88 200 -72 152 184 -208 144 0 -248 208 0 -176 0 0 -104 104 104 -160 160 160 -248 248 248 +8 65 106 +32 106 148 +172 90 255 +74 156 189 +213 148 0 +255 213 0 +180 0 0 +106 106 106 +164 164 164 +255 255 255 0 0 0 diff --git a/graphics/pokemon/croconaw/anim_front.png b/graphics/pokemon/croconaw/anim_front.png index bdd5340fd5..3fc9ff81f2 100644 Binary files a/graphics/pokemon/croconaw/anim_front.png and b/graphics/pokemon/croconaw/anim_front.png differ diff --git a/graphics/pokemon/croconaw/front.png b/graphics/pokemon/croconaw/front.png index b1cd5b3b64..22ea63306b 100644 Binary files a/graphics/pokemon/croconaw/front.png and b/graphics/pokemon/croconaw/front.png differ diff --git a/graphics/pokemon/croconaw/normal.pal b/graphics/pokemon/croconaw/normal.pal index 95fb4e4502..1a33a193e9 100644 --- a/graphics/pokemon/croconaw/normal.pal +++ b/graphics/pokemon/croconaw/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -128 0 8 -248 136 128 +156 16 32 +255 172 90 16 16 16 -240 80 88 -200 40 56 -32 96 120 -32 136 184 -104 200 200 -136 232 224 -248 248 248 -120 0 0 -224 64 32 -104 80 0 -200 184 96 -248 224 136 +255 74 74 +213 24 16 +32 98 123 +32 139 189 +106 205 205 +139 238 230 +255 255 255 +123 0 0 +230 65 32 +139 98 0 +238 180 74 +255 255 98 diff --git a/graphics/pokemon/cursola/front.png b/graphics/pokemon/cursola/front.png index 01f189f5cb..d4811ab1e7 100644 Binary files a/graphics/pokemon/cursola/front.png and b/graphics/pokemon/cursola/front.png differ diff --git a/graphics/pokemon/cyndaquil/anim_front.png b/graphics/pokemon/cyndaquil/anim_front.png index bfdf5a6223..3649ae50ef 100644 Binary files a/graphics/pokemon/cyndaquil/anim_front.png and b/graphics/pokemon/cyndaquil/anim_front.png differ diff --git a/graphics/pokemon/cyndaquil/front.png b/graphics/pokemon/cyndaquil/front.png index 448a51f8a9..b8b7e71aca 100644 Binary files a/graphics/pokemon/cyndaquil/front.png and b/graphics/pokemon/cyndaquil/front.png differ diff --git a/graphics/pokemon/cyndaquil/normal.pal b/graphics/pokemon/cyndaquil/normal.pal index f5182e5eed..b600ed85e6 100644 --- a/graphics/pokemon/cyndaquil/normal.pal +++ b/graphics/pokemon/cyndaquil/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -216 0 0 -248 56 0 -16 56 80 -48 104 128 -96 168 184 -248 152 0 +222 0 0 +255 90 0 +41 82 82 +57 98 123 +98 131 156 +255 156 0 16 16 16 -248 216 16 -16 40 48 -200 168 80 -248 240 160 -120 96 32 -216 176 120 -168 168 168 +255 222 0 +24 57 74 +197 164 106 +255 238 164 +123 98 32 +230 205 106 +172 172 172 248 248 248 diff --git a/graphics/pokemon/darmanitan/zen_mode/icon.png b/graphics/pokemon/darmanitan/zen_mode/icon.png index f9e8674785..b563d4f2ad 100644 Binary files a/graphics/pokemon/darmanitan/zen_mode/icon.png and b/graphics/pokemon/darmanitan/zen_mode/icon.png differ diff --git a/graphics/pokemon/deerling/autumn/icon.png b/graphics/pokemon/deerling/autumn/icon.png index 7c14c05cb2..4181194e1d 100644 Binary files a/graphics/pokemon/deerling/autumn/icon.png and b/graphics/pokemon/deerling/autumn/icon.png differ diff --git a/graphics/pokemon/deerling/summer/icon.png b/graphics/pokemon/deerling/summer/icon.png index 7a95355c35..c3358ab9fc 100644 Binary files a/graphics/pokemon/deerling/summer/icon.png and b/graphics/pokemon/deerling/summer/icon.png differ diff --git a/graphics/pokemon/deerling/winter/icon.png b/graphics/pokemon/deerling/winter/icon.png index a7259c67e0..6528ea9711 100644 Binary files a/graphics/pokemon/deerling/winter/icon.png and b/graphics/pokemon/deerling/winter/icon.png differ diff --git a/graphics/pokemon/dewgong/back.png b/graphics/pokemon/dewgong/back.png index 1d5e35fdff..90b5ae680b 100644 Binary files a/graphics/pokemon/dewgong/back.png and b/graphics/pokemon/dewgong/back.png differ diff --git a/graphics/pokemon/ditto/back.png b/graphics/pokemon/ditto/back.png index 9768f89a15..5bea88a4ae 100644 Binary files a/graphics/pokemon/ditto/back.png and b/graphics/pokemon/ditto/back.png differ diff --git a/graphics/pokemon/dunsparce/back.png b/graphics/pokemon/dunsparce/back.png index 03dc3acbb8..c19d4b5dbe 100644 Binary files a/graphics/pokemon/dunsparce/back.png and b/graphics/pokemon/dunsparce/back.png differ diff --git a/graphics/pokemon/eevee/backf.png b/graphics/pokemon/eevee/backf.png index 7689d995b6..6c265361f5 100644 Binary files a/graphics/pokemon/eevee/backf.png and b/graphics/pokemon/eevee/backf.png differ diff --git a/graphics/pokemon/elekid/back.png b/graphics/pokemon/elekid/back.png index 09028a7d9f..c0b5f8cb79 100644 Binary files a/graphics/pokemon/elekid/back.png and b/graphics/pokemon/elekid/back.png differ diff --git a/graphics/pokemon/espeon/back.png b/graphics/pokemon/espeon/back.png index 0eb8268239..e88821875b 100644 Binary files a/graphics/pokemon/espeon/back.png and b/graphics/pokemon/espeon/back.png differ diff --git a/graphics/pokemon/feraligatr/anim_front.png b/graphics/pokemon/feraligatr/anim_front.png index d644a30ae3..26df70b9e1 100644 Binary files a/graphics/pokemon/feraligatr/anim_front.png and b/graphics/pokemon/feraligatr/anim_front.png differ diff --git a/graphics/pokemon/feraligatr/front.png b/graphics/pokemon/feraligatr/front.png index dda82ea749..ed0e53f63e 100644 Binary files a/graphics/pokemon/feraligatr/front.png and b/graphics/pokemon/feraligatr/front.png differ diff --git a/graphics/pokemon/feraligatr/normal.pal b/graphics/pokemon/feraligatr/normal.pal index 166ae9add6..3322ac24e3 100644 --- a/graphics/pokemon/feraligatr/normal.pal +++ b/graphics/pokemon/feraligatr/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -128 0 8 -248 136 128 +131 0 8 +255 139 131 16 16 16 -240 80 88 -8 104 144 -64 208 232 -40 152 184 -136 232 248 -248 248 248 -192 192 192 -248 184 112 -128 88 0 -248 224 136 -200 184 96 +246 82 90 +41 74 139 +90 180 246 +57 139 205 +139 213 255 +255 255 255 +197 197 197 +255 230 139 +106 82 0 +255 230 139 +205 189 98 0 0 0 diff --git a/graphics/pokemon/flaaffy/anim_front.png b/graphics/pokemon/flaaffy/anim_front.png index 0cc7d0439e..c09ccf4922 100644 Binary files a/graphics/pokemon/flaaffy/anim_front.png and b/graphics/pokemon/flaaffy/anim_front.png differ diff --git a/graphics/pokemon/flaaffy/front.png b/graphics/pokemon/flaaffy/front.png index 373ff986f2..6bb2dc324a 100644 Binary files a/graphics/pokemon/flaaffy/front.png and b/graphics/pokemon/flaaffy/front.png differ diff --git a/graphics/pokemon/flaaffy/normal.pal b/graphics/pokemon/flaaffy/normal.pal index 9b67813424..5dd45e400e 100644 --- a/graphics/pokemon/flaaffy/normal.pal +++ b/graphics/pokemon/flaaffy/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -176 176 208 -248 248 248 -128 112 136 -200 216 240 +189 189 213 +255 255 255 +131 115 139 +222 230 246 16 16 16 -72 72 88 -208 96 120 -248 176 200 -248 136 152 -248 200 208 -136 32 48 -64 112 168 -80 128 192 -128 192 248 -40 64 136 +74 74 90 +222 65 98 +255 164 164 +255 115 115 +255 189 189 +164 0 16 +82 131 197 +82 131 197 +131 197 255 +41 65 139 diff --git a/graphics/pokemon/flabebe/back.png b/graphics/pokemon/flabebe/back.png index 143601c63f..9a2a8367a7 100644 Binary files a/graphics/pokemon/flabebe/back.png and b/graphics/pokemon/flabebe/back.png differ diff --git a/graphics/pokemon/flabebe/blue_flower/icon.png b/graphics/pokemon/flabebe/blue_flower/icon.png index 3f354f4f14..bdac1f46ed 100644 Binary files a/graphics/pokemon/flabebe/blue_flower/icon.png and b/graphics/pokemon/flabebe/blue_flower/icon.png differ diff --git a/graphics/pokemon/flabebe/orange_flower/icon.png b/graphics/pokemon/flabebe/orange_flower/icon.png index 39ce13bf2d..1c34927aa1 100644 Binary files a/graphics/pokemon/flabebe/orange_flower/icon.png and b/graphics/pokemon/flabebe/orange_flower/icon.png differ diff --git a/graphics/pokemon/flabebe/white_flower/icon.png b/graphics/pokemon/flabebe/white_flower/icon.png index ac706407af..85aebadd1f 100644 Binary files a/graphics/pokemon/flabebe/white_flower/icon.png and b/graphics/pokemon/flabebe/white_flower/icon.png differ diff --git a/graphics/pokemon/flabebe/yellow_flower/icon.png b/graphics/pokemon/flabebe/yellow_flower/icon.png index a1cef6e262..2ad8437e3e 100644 Binary files a/graphics/pokemon/flabebe/yellow_flower/icon.png and b/graphics/pokemon/flabebe/yellow_flower/icon.png differ diff --git a/graphics/pokemon/flareon/icon.png b/graphics/pokemon/flareon/icon.png index 96092e7eef..92f4dad532 100644 Binary files a/graphics/pokemon/flareon/icon.png and b/graphics/pokemon/flareon/icon.png differ diff --git a/graphics/pokemon/floette/blue_flower/icon.png b/graphics/pokemon/floette/blue_flower/icon.png index 734c6eb4aa..aa2227c430 100644 Binary files a/graphics/pokemon/floette/blue_flower/icon.png and b/graphics/pokemon/floette/blue_flower/icon.png differ diff --git a/graphics/pokemon/floette/eternal_flower/back.png b/graphics/pokemon/floette/eternal_flower/back.png index edcf0ef2cc..4501207211 100644 Binary files a/graphics/pokemon/floette/eternal_flower/back.png and b/graphics/pokemon/floette/eternal_flower/back.png differ diff --git a/graphics/pokemon/floette/eternal_flower/front.png b/graphics/pokemon/floette/eternal_flower/front.png index 56d9a71669..5d0a8c7df7 100644 Binary files a/graphics/pokemon/floette/eternal_flower/front.png and b/graphics/pokemon/floette/eternal_flower/front.png differ diff --git a/graphics/pokemon/floette/eternal_flower/icon.png b/graphics/pokemon/floette/eternal_flower/icon.png index 42931825ce..a1e0d3c513 100644 Binary files a/graphics/pokemon/floette/eternal_flower/icon.png and b/graphics/pokemon/floette/eternal_flower/icon.png differ diff --git a/graphics/pokemon/floette/orange_flower/icon.png b/graphics/pokemon/floette/orange_flower/icon.png index 3c839277cd..07b6d9a09a 100644 Binary files a/graphics/pokemon/floette/orange_flower/icon.png and b/graphics/pokemon/floette/orange_flower/icon.png differ diff --git a/graphics/pokemon/floette/white_flower/icon.png b/graphics/pokemon/floette/white_flower/icon.png index a1975ff134..5c86b26345 100644 Binary files a/graphics/pokemon/floette/white_flower/icon.png and b/graphics/pokemon/floette/white_flower/icon.png differ diff --git a/graphics/pokemon/floette/yellow_flower/icon.png b/graphics/pokemon/floette/yellow_flower/icon.png index 4a9dc42571..29049f106a 100644 Binary files a/graphics/pokemon/floette/yellow_flower/icon.png and b/graphics/pokemon/floette/yellow_flower/icon.png differ diff --git a/graphics/pokemon/florges/back.png b/graphics/pokemon/florges/back.png index d1515c2aec..d0d918fab2 100644 Binary files a/graphics/pokemon/florges/back.png and b/graphics/pokemon/florges/back.png differ diff --git a/graphics/pokemon/florges/blue_flower/icon.png b/graphics/pokemon/florges/blue_flower/icon.png index d0dc98cb1f..8a4743f4f5 100644 Binary files a/graphics/pokemon/florges/blue_flower/icon.png and b/graphics/pokemon/florges/blue_flower/icon.png differ diff --git a/graphics/pokemon/florges/orange_flower/icon.png b/graphics/pokemon/florges/orange_flower/icon.png index 5bcb76de35..a8239748c4 100644 Binary files a/graphics/pokemon/florges/orange_flower/icon.png and b/graphics/pokemon/florges/orange_flower/icon.png differ diff --git a/graphics/pokemon/florges/white_flower/icon.png b/graphics/pokemon/florges/white_flower/icon.png index 06cccec6c5..11b04c54e0 100644 Binary files a/graphics/pokemon/florges/white_flower/icon.png and b/graphics/pokemon/florges/white_flower/icon.png differ diff --git a/graphics/pokemon/florges/yellow_flower/icon.png b/graphics/pokemon/florges/yellow_flower/icon.png index c3a5716077..8fab7804fc 100644 Binary files a/graphics/pokemon/florges/yellow_flower/icon.png and b/graphics/pokemon/florges/yellow_flower/icon.png differ diff --git a/graphics/pokemon/furfrou/dandy_trim/icon.png b/graphics/pokemon/furfrou/dandy_trim/icon.png index 86089db3c5..9e20ab1c40 100644 Binary files a/graphics/pokemon/furfrou/dandy_trim/icon.png and b/graphics/pokemon/furfrou/dandy_trim/icon.png differ diff --git a/graphics/pokemon/furfrou/debutante_trim/icon.png b/graphics/pokemon/furfrou/debutante_trim/icon.png index 05d1c448a5..04860b16d2 100644 Binary files a/graphics/pokemon/furfrou/debutante_trim/icon.png and b/graphics/pokemon/furfrou/debutante_trim/icon.png differ diff --git a/graphics/pokemon/furfrou/diamond_trim/icon.png b/graphics/pokemon/furfrou/diamond_trim/icon.png index 50934adad7..f5ce645e4e 100644 Binary files a/graphics/pokemon/furfrou/diamond_trim/icon.png and b/graphics/pokemon/furfrou/diamond_trim/icon.png differ diff --git a/graphics/pokemon/furfrou/heart_trim/icon.png b/graphics/pokemon/furfrou/heart_trim/icon.png index f8a6b1531a..70049dc53f 100644 Binary files a/graphics/pokemon/furfrou/heart_trim/icon.png and b/graphics/pokemon/furfrou/heart_trim/icon.png differ diff --git a/graphics/pokemon/furfrou/kabuki_trim/icon.png b/graphics/pokemon/furfrou/kabuki_trim/icon.png index da2a254b63..bc81044fb0 100644 Binary files a/graphics/pokemon/furfrou/kabuki_trim/icon.png and b/graphics/pokemon/furfrou/kabuki_trim/icon.png differ diff --git a/graphics/pokemon/furfrou/la_reine_trim/icon.png b/graphics/pokemon/furfrou/la_reine_trim/icon.png index 9a9881c194..4451c0c161 100644 Binary files a/graphics/pokemon/furfrou/la_reine_trim/icon.png and b/graphics/pokemon/furfrou/la_reine_trim/icon.png differ diff --git a/graphics/pokemon/furfrou/matron_trim/icon.png b/graphics/pokemon/furfrou/matron_trim/icon.png index b579007510..6d379a8cae 100644 Binary files a/graphics/pokemon/furfrou/matron_trim/icon.png and b/graphics/pokemon/furfrou/matron_trim/icon.png differ diff --git a/graphics/pokemon/furfrou/pharaoh_trim/icon.png b/graphics/pokemon/furfrou/pharaoh_trim/icon.png index a54c766089..f674c8b47e 100644 Binary files a/graphics/pokemon/furfrou/pharaoh_trim/icon.png and b/graphics/pokemon/furfrou/pharaoh_trim/icon.png differ diff --git a/graphics/pokemon/furfrou/star_trim/icon.png b/graphics/pokemon/furfrou/star_trim/icon.png index 90623f6d77..7d571808e9 100644 Binary files a/graphics/pokemon/furfrou/star_trim/icon.png and b/graphics/pokemon/furfrou/star_trim/icon.png differ diff --git a/graphics/pokemon/furret/anim_front.png b/graphics/pokemon/furret/anim_front.png index bd0119c568..6e84d74103 100644 Binary files a/graphics/pokemon/furret/anim_front.png and b/graphics/pokemon/furret/anim_front.png differ diff --git a/graphics/pokemon/furret/front.png b/graphics/pokemon/furret/front.png index bab4d95b6b..4d7361e08b 100644 Binary files a/graphics/pokemon/furret/front.png and b/graphics/pokemon/furret/front.png differ diff --git a/graphics/pokemon/furret/normal.pal b/graphics/pokemon/furret/normal.pal index 661f34207a..e1a23347b0 100644 --- a/graphics/pokemon/furret/normal.pal +++ b/graphics/pokemon/furret/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -80 40 32 -208 176 104 -120 64 56 -32 32 40 -192 152 64 -232 208 160 -152 96 72 -168 128 40 -248 248 192 -248 248 248 -112 112 112 -152 0 0 -248 144 96 +82 41 32 +230 197 74 +123 65 57 +32 32 41 +197 156 65 +255 238 148 +156 98 74 +172 131 41 +255 255 197 +255 255 255 +115 115 115 +156 0 0 +255 148 98 120 64 56 0 0 0 diff --git a/graphics/pokemon/galvantula/back.png b/graphics/pokemon/galvantula/back.png index f15a60a3de..4d872ac6ba 100644 Binary files a/graphics/pokemon/galvantula/back.png and b/graphics/pokemon/galvantula/back.png differ diff --git a/graphics/pokemon/gastrodon/east_sea/icon.png b/graphics/pokemon/gastrodon/east_sea/icon.png index 4eec76873c..33ba3c5c51 100644 Binary files a/graphics/pokemon/gastrodon/east_sea/icon.png and b/graphics/pokemon/gastrodon/east_sea/icon.png differ diff --git a/graphics/pokemon/geodude/back.png b/graphics/pokemon/geodude/back.png index 45eba4d1c5..bd2cbeac6c 100644 Binary files a/graphics/pokemon/geodude/back.png and b/graphics/pokemon/geodude/back.png differ diff --git a/graphics/pokemon/glaceon/back.png b/graphics/pokemon/glaceon/back.png index 1f53435379..1acee66de9 100644 Binary files a/graphics/pokemon/glaceon/back.png and b/graphics/pokemon/glaceon/back.png differ diff --git a/graphics/pokemon/golett/back.png b/graphics/pokemon/golett/back.png index d3b7ad67e3..5a2ae22088 100644 Binary files a/graphics/pokemon/golett/back.png and b/graphics/pokemon/golett/back.png differ diff --git a/graphics/pokemon/gourgeist/back.png b/graphics/pokemon/gourgeist/back.png index b572c429ba..76da39f227 100644 Binary files a/graphics/pokemon/gourgeist/back.png and b/graphics/pokemon/gourgeist/back.png differ diff --git a/graphics/pokemon/gourgeist/large/back.png b/graphics/pokemon/gourgeist/large/back.png index 2d0751fa74..a84d9aa516 100644 Binary files a/graphics/pokemon/gourgeist/large/back.png and b/graphics/pokemon/gourgeist/large/back.png differ diff --git a/graphics/pokemon/gourgeist/small/back.png b/graphics/pokemon/gourgeist/small/back.png index 1865e7c27e..97a44f72bf 100644 Binary files a/graphics/pokemon/gourgeist/small/back.png and b/graphics/pokemon/gourgeist/small/back.png differ diff --git a/graphics/pokemon/gourgeist/super/back.png b/graphics/pokemon/gourgeist/super/back.png index f669c4987f..3d6a97ef5f 100644 Binary files a/graphics/pokemon/gourgeist/super/back.png and b/graphics/pokemon/gourgeist/super/back.png differ diff --git a/graphics/pokemon/greninja/ash/icon.png b/graphics/pokemon/greninja/ash/icon.png index 5c096c1652..ac461847cc 100644 Binary files a/graphics/pokemon/greninja/ash/icon.png and b/graphics/pokemon/greninja/ash/icon.png differ diff --git a/graphics/pokemon/gurdurr/back.png b/graphics/pokemon/gurdurr/back.png index 0230e7f888..9888f01b59 100644 Binary files a/graphics/pokemon/gurdurr/back.png and b/graphics/pokemon/gurdurr/back.png differ diff --git a/graphics/pokemon/hippowdon/back.png b/graphics/pokemon/hippowdon/back.png index f6a4cbf28c..b2f8daff38 100644 Binary files a/graphics/pokemon/hippowdon/back.png and b/graphics/pokemon/hippowdon/back.png differ diff --git a/graphics/pokemon/hitmonchan/back.png b/graphics/pokemon/hitmonchan/back.png index 229bf0da89..d87ab20f74 100644 Binary files a/graphics/pokemon/hitmonchan/back.png and b/graphics/pokemon/hitmonchan/back.png differ diff --git a/graphics/pokemon/hoopa/back.png b/graphics/pokemon/hoopa/back.png index a3d76883c7..64912b3236 100644 Binary files a/graphics/pokemon/hoopa/back.png and b/graphics/pokemon/hoopa/back.png differ diff --git a/graphics/pokemon/hoopa/footprint.png b/graphics/pokemon/hoopa/footprint.png index b7c5cea6a7..90b2344967 100644 Binary files a/graphics/pokemon/hoopa/footprint.png and b/graphics/pokemon/hoopa/footprint.png differ diff --git a/graphics/pokemon/hoopa/unbound/icon.png b/graphics/pokemon/hoopa/unbound/icon.png index ca3bd77644..4c77ca1e2c 100644 Binary files a/graphics/pokemon/hoopa/unbound/icon.png and b/graphics/pokemon/hoopa/unbound/icon.png differ diff --git a/graphics/pokemon/hoothoot/anim_front.png b/graphics/pokemon/hoothoot/anim_front.png index 585fc6518a..e25d4a4fc7 100644 Binary files a/graphics/pokemon/hoothoot/anim_front.png and b/graphics/pokemon/hoothoot/anim_front.png differ diff --git a/graphics/pokemon/hoothoot/front.png b/graphics/pokemon/hoothoot/front.png index 0cc0353801..8a89546b76 100644 Binary files a/graphics/pokemon/hoothoot/front.png and b/graphics/pokemon/hoothoot/front.png differ diff --git a/graphics/pokemon/hoothoot/normal.pal b/graphics/pokemon/hoothoot/normal.pal index 213e6acaa0..7254298343 100644 --- a/graphics/pokemon/hoothoot/normal.pal +++ b/graphics/pokemon/hoothoot/normal.pal @@ -3,17 +3,17 @@ JASC-PAL 16 152 208 160 16 16 16 -64 64 64 -152 104 48 -120 88 80 -80 48 0 -184 136 64 -200 160 120 -104 48 24 -184 88 40 -240 96 48 -232 168 144 -216 184 152 -248 224 192 -248 248 248 -120 120 120 +65 65 65 +156 106 49 +115 74 24 +82 49 0 +189 139 65 +205 164 123 +106 49 24 +189 90 41 +246 98 49 +238 172 148 +222 189 156 +255 230 197 +255 255 255 +123 123 123 diff --git a/graphics/pokemon/igglybuff/anim_front.png b/graphics/pokemon/igglybuff/anim_front.png index e96608aa13..79068d36f6 100644 Binary files a/graphics/pokemon/igglybuff/anim_front.png and b/graphics/pokemon/igglybuff/anim_front.png differ diff --git a/graphics/pokemon/igglybuff/front.png b/graphics/pokemon/igglybuff/front.png index 2d0dad2a89..eb39d1f738 100644 Binary files a/graphics/pokemon/igglybuff/front.png and b/graphics/pokemon/igglybuff/front.png differ diff --git a/graphics/pokemon/igglybuff/normal.pal b/graphics/pokemon/igglybuff/normal.pal index 4bf00fcd79..c0e93f53e7 100644 --- a/graphics/pokemon/igglybuff/normal.pal +++ b/graphics/pokemon/igglybuff/normal.pal @@ -2,17 +2,17 @@ JASC-PAL 0100 16 152 208 160 -136 64 64 -248 200 208 -248 168 184 -200 104 96 +156 24 82 +255 205 213 +255 172 189 +180 82 115 16 16 16 -240 120 144 -224 40 16 -136 0 0 -248 248 248 -184 0 0 -128 0 0 +230 131 156 +230 41 16 +139 0 0 +255 255 255 +189 0 0 +139 0 0 0 0 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/jellicent/backf.png b/graphics/pokemon/jellicent/backf.png index 6471d3bacb..f6f0b06058 100644 Binary files a/graphics/pokemon/jellicent/backf.png and b/graphics/pokemon/jellicent/backf.png differ diff --git a/graphics/pokemon/jellicent/icon.png b/graphics/pokemon/jellicent/icon.png index 3b508d92ca..0a6f313cec 100644 Binary files a/graphics/pokemon/jellicent/icon.png and b/graphics/pokemon/jellicent/icon.png differ diff --git a/graphics/pokemon/jellicent/iconf.png b/graphics/pokemon/jellicent/iconf.png index a6abfa5ce5..f9caf9f13f 100644 Binary files a/graphics/pokemon/jellicent/iconf.png and b/graphics/pokemon/jellicent/iconf.png differ diff --git a/graphics/pokemon/jigglypuff/back.png b/graphics/pokemon/jigglypuff/back.png index a51544283b..1cf980c173 100644 Binary files a/graphics/pokemon/jigglypuff/back.png and b/graphics/pokemon/jigglypuff/back.png differ diff --git a/graphics/pokemon/keldeo/resolute/back.png b/graphics/pokemon/keldeo/resolute/back.png index bce78acd9a..28654de7dd 100644 Binary files a/graphics/pokemon/keldeo/resolute/back.png and b/graphics/pokemon/keldeo/resolute/back.png differ diff --git a/graphics/pokemon/keldeo/resolute/icon.png b/graphics/pokemon/keldeo/resolute/icon.png index 7170972902..8da8ea26c8 100644 Binary files a/graphics/pokemon/keldeo/resolute/icon.png and b/graphics/pokemon/keldeo/resolute/icon.png differ diff --git a/graphics/pokemon/kricketot/anim_frontf.png b/graphics/pokemon/kricketot/anim_frontf.png index 86b2f773a5..f7403b91c8 100644 Binary files a/graphics/pokemon/kricketot/anim_frontf.png and b/graphics/pokemon/kricketot/anim_frontf.png differ diff --git a/graphics/pokemon/kricketot/backf.png b/graphics/pokemon/kricketot/backf.png index 9bafab8796..7726df0d68 100644 Binary files a/graphics/pokemon/kricketot/backf.png and b/graphics/pokemon/kricketot/backf.png differ diff --git a/graphics/pokemon/lanturn/anim_front.png b/graphics/pokemon/lanturn/anim_front.png index 69166b66bc..b84c0a77fd 100644 Binary files a/graphics/pokemon/lanturn/anim_front.png and b/graphics/pokemon/lanturn/anim_front.png differ diff --git a/graphics/pokemon/lanturn/front.png b/graphics/pokemon/lanturn/front.png index d178870590..70e49452e3 100644 Binary files a/graphics/pokemon/lanturn/front.png and b/graphics/pokemon/lanturn/front.png differ diff --git a/graphics/pokemon/lanturn/normal.pal b/graphics/pokemon/lanturn/normal.pal index 792d90f29e..377916306e 100644 --- a/graphics/pokemon/lanturn/normal.pal +++ b/graphics/pokemon/lanturn/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -136 120 88 -248 216 96 -224 184 48 -88 112 192 -144 160 224 -176 136 32 -48 56 96 -120 152 216 -16 16 16 -248 248 248 -80 64 40 -184 192 232 -160 48 72 -232 96 88 -168 0 0 +123 98 74 +255 222 98 +230 180 82 +74 123 205 +123 172 238 +172 148 65 +41 49 115 +98 148 230 +0 0 0 +255 255 255 +65 49 16 +164 205 255 +164 49 74 +238 98 90 +164 49 74 diff --git a/graphics/pokemon/lapras/back.png b/graphics/pokemon/lapras/back.png index 3d336d51a7..60d5f840d3 100644 Binary files a/graphics/pokemon/lapras/back.png and b/graphics/pokemon/lapras/back.png differ diff --git a/graphics/pokemon/larvitar/back.png b/graphics/pokemon/larvitar/back.png index 1a05a964ad..2facd5cb5e 100644 Binary files a/graphics/pokemon/larvitar/back.png and b/graphics/pokemon/larvitar/back.png differ diff --git a/graphics/pokemon/ledian/anim_front.png b/graphics/pokemon/ledian/anim_front.png index 57d90f93be..c866d2769f 100644 Binary files a/graphics/pokemon/ledian/anim_front.png and b/graphics/pokemon/ledian/anim_front.png differ diff --git a/graphics/pokemon/ledian/front.png b/graphics/pokemon/ledian/front.png index a51f2884e9..cf066921cb 100644 Binary files a/graphics/pokemon/ledian/front.png and b/graphics/pokemon/ledian/front.png differ diff --git a/graphics/pokemon/ledian/normal.pal b/graphics/pokemon/ledian/normal.pal index 370e37e2c5..8e4f8a63af 100644 --- a/graphics/pokemon/ledian/normal.pal +++ b/graphics/pokemon/ledian/normal.pal @@ -3,17 +3,17 @@ JASC-PAL 16 152 208 160 16 16 16 -80 80 80 -192 56 88 -248 128 128 -112 32 16 -248 72 64 -0 64 112 +82 82 82 +197 57 90 +255 131 131 +115 32 16 +255 74 65 +0 16 90 248 248 248 -0 128 184 -176 176 176 -160 120 0 -200 176 56 -240 224 112 -208 208 208 +0 106 222 +180 180 180 +164 123 0 +205 180 57 +246 230 115 +213 213 213 80 80 80 diff --git a/graphics/pokemon/ledyba/anim_front.png b/graphics/pokemon/ledyba/anim_front.png index 38bdd1df2e..4239a27760 100644 Binary files a/graphics/pokemon/ledyba/anim_front.png and b/graphics/pokemon/ledyba/anim_front.png differ diff --git a/graphics/pokemon/ledyba/front.png b/graphics/pokemon/ledyba/front.png index 10e52bbc70..a34bf944a9 100644 Binary files a/graphics/pokemon/ledyba/front.png and b/graphics/pokemon/ledyba/front.png differ diff --git a/graphics/pokemon/ledyba/normal.pal b/graphics/pokemon/ledyba/normal.pal index eb13383dae..cb287fc017 100644 --- a/graphics/pokemon/ledyba/normal.pal +++ b/graphics/pokemon/ledyba/normal.pal @@ -3,17 +3,17 @@ JASC-PAL 16 152 208 160 16 16 16 -88 80 80 -104 40 24 -176 64 48 -240 88 24 -248 152 32 -208 200 200 -248 248 248 -168 160 160 -208 176 120 -248 224 152 -248 248 184 -160 120 0 -104 96 176 -72 48 112 +90 82 82 +106 41 24 +180 65 49 +246 90 24 +255 156 32 +213 205 205 +255 255 255 +172 164 164 +213 180 123 +255 230 156 +255 255 189 +164 123 0 +106 98 180 +74 49 115 diff --git a/graphics/pokemon/lucario/back.png b/graphics/pokemon/lucario/back.png index d8063193d6..24e8a60236 100644 Binary files a/graphics/pokemon/lucario/back.png and b/graphics/pokemon/lucario/back.png differ diff --git a/graphics/pokemon/luxio/back.png b/graphics/pokemon/luxio/back.png index b86883b1f4..8ee3ca65bb 100644 Binary files a/graphics/pokemon/luxio/back.png and b/graphics/pokemon/luxio/back.png differ diff --git a/graphics/pokemon/luxray/back.png b/graphics/pokemon/luxray/back.png index 005e8e5a58..b8625a41a0 100644 Binary files a/graphics/pokemon/luxray/back.png and b/graphics/pokemon/luxray/back.png differ diff --git a/graphics/pokemon/lycanroc/dusk/front.png b/graphics/pokemon/lycanroc/dusk/front.png index 772f59c6a8..0784c7bafd 100644 Binary files a/graphics/pokemon/lycanroc/dusk/front.png and b/graphics/pokemon/lycanroc/dusk/front.png differ diff --git a/graphics/pokemon/lycanroc/midnight/front.png b/graphics/pokemon/lycanroc/midnight/front.png index 1c4059d903..2a792d2afb 100644 Binary files a/graphics/pokemon/lycanroc/midnight/front.png and b/graphics/pokemon/lycanroc/midnight/front.png differ diff --git a/graphics/pokemon/magearna/back.png b/graphics/pokemon/magearna/back.png index c66e5f3a8f..e29c4ad6c5 100644 Binary files a/graphics/pokemon/magearna/back.png and b/graphics/pokemon/magearna/back.png differ diff --git a/graphics/pokemon/magearna/front.png b/graphics/pokemon/magearna/front.png index 18e73e31a0..20db67ab6e 100644 Binary files a/graphics/pokemon/magearna/front.png and b/graphics/pokemon/magearna/front.png differ diff --git a/graphics/pokemon/magearna/original_color/back.png b/graphics/pokemon/magearna/original_color/back.png index 7472bcbace..cf9c0e3236 100644 Binary files a/graphics/pokemon/magearna/original_color/back.png and b/graphics/pokemon/magearna/original_color/back.png differ diff --git a/graphics/pokemon/magearna/original_color/front.png b/graphics/pokemon/magearna/original_color/front.png index 4cc57d909e..afeb78daed 100644 Binary files a/graphics/pokemon/magearna/original_color/front.png and b/graphics/pokemon/magearna/original_color/front.png differ diff --git a/graphics/pokemon/magearna/original_color/icon.png b/graphics/pokemon/magearna/original_color/icon.png index a51a74e11e..057698e414 100644 Binary files a/graphics/pokemon/magearna/original_color/icon.png and b/graphics/pokemon/magearna/original_color/icon.png differ diff --git a/graphics/pokemon/mareep/anim_front.png b/graphics/pokemon/mareep/anim_front.png index 5c67de5094..47961b201a 100644 Binary files a/graphics/pokemon/mareep/anim_front.png and b/graphics/pokemon/mareep/anim_front.png differ diff --git a/graphics/pokemon/mareep/back.png b/graphics/pokemon/mareep/back.png index 027ad17ce9..c0d26a07b6 100644 Binary files a/graphics/pokemon/mareep/back.png and b/graphics/pokemon/mareep/back.png differ diff --git a/graphics/pokemon/mareep/front.png b/graphics/pokemon/mareep/front.png index 703f090662..0ab5b071fd 100644 Binary files a/graphics/pokemon/mareep/front.png and b/graphics/pokemon/mareep/front.png differ diff --git a/graphics/pokemon/mareep/normal.pal b/graphics/pokemon/mareep/normal.pal index eaefbe9350..c8e45e1a4d 100644 --- a/graphics/pokemon/mareep/normal.pal +++ b/graphics/pokemon/mareep/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -224 168 0 -200 176 136 -248 248 248 -248 216 0 -128 112 80 +230 172 0 +205 156 82 +255 255 255 +255 222 0 +156 98 32 16 16 16 -248 224 184 -224 200 160 -56 64 64 -224 168 16 -248 216 8 -136 144 144 -0 72 144 -80 128 184 -112 160 240 +255 255 189 +238 205 115 +82 82 82 +164 164 164 +180 123 0 +82 131 189 +0 74 148 +115 164 246 +98 148 222 diff --git a/graphics/pokemon/mareep/shiny.pal b/graphics/pokemon/mareep/shiny.pal index caa76333c1..de18d5b3bc 100644 --- a/graphics/pokemon/mareep/shiny.pal +++ b/graphics/pokemon/mareep/shiny.pal @@ -3,17 +3,17 @@ JASC-PAL 16 152 208 160 216 168 0 -200 144 176 +208 96 184 248 248 248 240 216 0 -152 80 120 +168 24 136 16 16 16 248 200 248 -224 176 216 +232 152 216 80 80 80 -216 168 0 -240 216 0 160 160 160 +168 120 0 +48 136 184 16 72 144 -48 144 192 -112 192 240 +128 192 240 +80 168 224 diff --git a/graphics/pokemon/marshtomp/back.png b/graphics/pokemon/marshtomp/back.png index b04c6cc5cb..baa4e481b4 100644 Binary files a/graphics/pokemon/marshtomp/back.png and b/graphics/pokemon/marshtomp/back.png differ diff --git a/graphics/pokemon/meganium/anim_front.png b/graphics/pokemon/meganium/anim_front.png index 6352e96e29..b89016f3c3 100644 Binary files a/graphics/pokemon/meganium/anim_front.png and b/graphics/pokemon/meganium/anim_front.png differ diff --git a/graphics/pokemon/meganium/front.png b/graphics/pokemon/meganium/front.png index 2a813e1188..8d2d25f6c1 100644 Binary files a/graphics/pokemon/meganium/front.png and b/graphics/pokemon/meganium/front.png differ diff --git a/graphics/pokemon/meganium/normal.pal b/graphics/pokemon/meganium/normal.pal index d594136b80..75da9204bb 100644 --- a/graphics/pokemon/meganium/normal.pal +++ b/graphics/pokemon/meganium/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 248 192 248 -248 216 32 -96 72 0 -224 168 0 -152 168 80 -80 104 24 -208 232 136 -184 208 104 +255 222 32 +98 74 0 +230 172 0 +106 172 65 +16 115 41 +189 255 123 +139 222 49 16 16 16 -248 248 248 -248 56 88 -120 16 56 -240 160 152 -200 32 56 -200 200 200 -104 104 104 +255 255 255 +255 57 90 +123 16 57 +246 164 156 +205 32 57 +205 205 205 +106 106 106 diff --git a/graphics/pokemon/mimikyu/busted/back.png b/graphics/pokemon/mimikyu/busted/back.png index 732fe12341..1d18044351 100644 Binary files a/graphics/pokemon/mimikyu/busted/back.png and b/graphics/pokemon/mimikyu/busted/back.png differ diff --git a/graphics/pokemon/mimikyu/busted/front.png b/graphics/pokemon/mimikyu/busted/front.png index c9c36c1f4e..09e78fac90 100644 Binary files a/graphics/pokemon/mimikyu/busted/front.png and b/graphics/pokemon/mimikyu/busted/front.png differ diff --git a/graphics/pokemon/mimikyu/busted/icon.png b/graphics/pokemon/mimikyu/busted/icon.png index 9a1cf38c4a..3ba567ab3b 100644 Binary files a/graphics/pokemon/mimikyu/busted/icon.png and b/graphics/pokemon/mimikyu/busted/icon.png differ diff --git a/graphics/pokemon/minccino/back.png b/graphics/pokemon/minccino/back.png index c2b32adba2..92eb266fd1 100644 Binary files a/graphics/pokemon/minccino/back.png and b/graphics/pokemon/minccino/back.png differ diff --git a/graphics/pokemon/minior/core/back.png b/graphics/pokemon/minior/core/back.png index 6b0b565f42..af768d469c 100644 Binary files a/graphics/pokemon/minior/core/back.png and b/graphics/pokemon/minior/core/back.png differ diff --git a/graphics/pokemon/minior/core/blue/icon.png b/graphics/pokemon/minior/core/blue/icon.png index bda398288b..0dbb8fe0e7 100644 Binary files a/graphics/pokemon/minior/core/blue/icon.png and b/graphics/pokemon/minior/core/blue/icon.png differ diff --git a/graphics/pokemon/minior/core/front.png b/graphics/pokemon/minior/core/front.png index e9dba883a1..ab7e896156 100644 Binary files a/graphics/pokemon/minior/core/front.png and b/graphics/pokemon/minior/core/front.png differ diff --git a/graphics/pokemon/minior/core/green/icon.png b/graphics/pokemon/minior/core/green/icon.png index 529e605202..dc36402deb 100644 Binary files a/graphics/pokemon/minior/core/green/icon.png and b/graphics/pokemon/minior/core/green/icon.png differ diff --git a/graphics/pokemon/minior/core/indigo/icon.png b/graphics/pokemon/minior/core/indigo/icon.png index f24a887bf2..a27482ea11 100644 Binary files a/graphics/pokemon/minior/core/indigo/icon.png and b/graphics/pokemon/minior/core/indigo/icon.png differ diff --git a/graphics/pokemon/minior/core/orange/icon.png b/graphics/pokemon/minior/core/orange/icon.png index c588e1dd72..6dea4aca6f 100644 Binary files a/graphics/pokemon/minior/core/orange/icon.png and b/graphics/pokemon/minior/core/orange/icon.png differ diff --git a/graphics/pokemon/minior/core/violet/icon.png b/graphics/pokemon/minior/core/violet/icon.png index 207c3f455c..609ace524c 100644 Binary files a/graphics/pokemon/minior/core/violet/icon.png and b/graphics/pokemon/minior/core/violet/icon.png differ diff --git a/graphics/pokemon/minior/core/yellow/icon.png b/graphics/pokemon/minior/core/yellow/icon.png index 270115f680..b0cfaa1c39 100644 Binary files a/graphics/pokemon/minior/core/yellow/icon.png and b/graphics/pokemon/minior/core/yellow/icon.png differ diff --git a/graphics/pokemon/minun/back.png b/graphics/pokemon/minun/back.png index 1e9d01ea3c..f8b11aba90 100644 Binary files a/graphics/pokemon/minun/back.png and b/graphics/pokemon/minun/back.png differ diff --git a/graphics/pokemon/mr_mime/back.png b/graphics/pokemon/mr_mime/back.png index d5fbd0396b..b9e15eacf6 100644 Binary files a/graphics/pokemon/mr_mime/back.png and b/graphics/pokemon/mr_mime/back.png differ diff --git a/graphics/pokemon/natu/anim_front.png b/graphics/pokemon/natu/anim_front.png index 4ba2a6eee5..8ac7b53c02 100644 Binary files a/graphics/pokemon/natu/anim_front.png and b/graphics/pokemon/natu/anim_front.png differ diff --git a/graphics/pokemon/natu/front.png b/graphics/pokemon/natu/front.png index c77e0f9bd7..ebf3bee930 100644 Binary files a/graphics/pokemon/natu/front.png and b/graphics/pokemon/natu/front.png differ diff --git a/graphics/pokemon/natu/normal.pal b/graphics/pokemon/natu/normal.pal index 0d9796fa5f..1b1f57e13c 100644 --- a/graphics/pokemon/natu/normal.pal +++ b/graphics/pokemon/natu/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 0 176 232 -128 40 0 -248 88 88 -216 40 88 -72 144 64 -40 104 40 -112 184 64 -144 216 64 -16 16 16 -128 96 32 -248 224 40 -216 168 40 -248 248 248 -80 80 80 -200 200 200 -144 144 144 +131 41 0 +246 90 90 +213 41 90 +74 148 65 +41 106 41 +115 189 65 +148 213 65 +41 41 41 +131 98 32 +255 222 41 +213 172 41 +255 255 255 +82 82 82 +205 205 205 +148 148 148 diff --git a/graphics/pokemon/necrozma/dawn_wings/back.png b/graphics/pokemon/necrozma/dawn_wings/back.png index 2c3fcb4002..be258fb089 100644 Binary files a/graphics/pokemon/necrozma/dawn_wings/back.png and b/graphics/pokemon/necrozma/dawn_wings/back.png differ diff --git a/graphics/pokemon/necrozma/dawn_wings/front.png b/graphics/pokemon/necrozma/dawn_wings/front.png index e8f31dc493..a5c75ea2b5 100644 Binary files a/graphics/pokemon/necrozma/dawn_wings/front.png and b/graphics/pokemon/necrozma/dawn_wings/front.png differ diff --git a/graphics/pokemon/necrozma/dawn_wings/icon.png b/graphics/pokemon/necrozma/dawn_wings/icon.png index 558ff60884..c5fde92c44 100644 Binary files a/graphics/pokemon/necrozma/dawn_wings/icon.png and b/graphics/pokemon/necrozma/dawn_wings/icon.png differ diff --git a/graphics/pokemon/necrozma/dusk_mane/back.png b/graphics/pokemon/necrozma/dusk_mane/back.png index 1a1b9e07e1..96621697c5 100644 Binary files a/graphics/pokemon/necrozma/dusk_mane/back.png and b/graphics/pokemon/necrozma/dusk_mane/back.png differ diff --git a/graphics/pokemon/necrozma/dusk_mane/front.png b/graphics/pokemon/necrozma/dusk_mane/front.png index c9a72135e8..f2b88ee0c5 100644 Binary files a/graphics/pokemon/necrozma/dusk_mane/front.png and b/graphics/pokemon/necrozma/dusk_mane/front.png differ diff --git a/graphics/pokemon/necrozma/dusk_mane/icon.png b/graphics/pokemon/necrozma/dusk_mane/icon.png index 90c74736ea..e0e4ef479e 100644 Binary files a/graphics/pokemon/necrozma/dusk_mane/icon.png and b/graphics/pokemon/necrozma/dusk_mane/icon.png differ diff --git a/graphics/pokemon/necrozma/ultra/back.png b/graphics/pokemon/necrozma/ultra/back.png index 798e1290f4..1dcdc3835c 100644 Binary files a/graphics/pokemon/necrozma/ultra/back.png and b/graphics/pokemon/necrozma/ultra/back.png differ diff --git a/graphics/pokemon/necrozma/ultra/front.png b/graphics/pokemon/necrozma/ultra/front.png index fc57cce637..0eac6b0fe5 100644 Binary files a/graphics/pokemon/necrozma/ultra/front.png and b/graphics/pokemon/necrozma/ultra/front.png differ diff --git a/graphics/pokemon/necrozma/ultra/icon.png b/graphics/pokemon/necrozma/ultra/icon.png index e41c58de6d..8adcbb3f53 100644 Binary files a/graphics/pokemon/necrozma/ultra/icon.png and b/graphics/pokemon/necrozma/ultra/icon.png differ diff --git a/graphics/pokemon/nidoqueen/back.png b/graphics/pokemon/nidoqueen/back.png index e983016e2d..90a8cca1cd 100644 Binary files a/graphics/pokemon/nidoqueen/back.png and b/graphics/pokemon/nidoqueen/back.png differ diff --git a/graphics/pokemon/nidorino/back.png b/graphics/pokemon/nidorino/back.png index e5868c58e1..a7078074e4 100644 Binary files a/graphics/pokemon/nidorino/back.png and b/graphics/pokemon/nidorino/back.png differ diff --git a/graphics/pokemon/ninetales/back.png b/graphics/pokemon/ninetales/back.png index 5507f9e37c..507b278595 100644 Binary files a/graphics/pokemon/ninetales/back.png and b/graphics/pokemon/ninetales/back.png differ diff --git a/graphics/pokemon/noctowl/anim_front.png b/graphics/pokemon/noctowl/anim_front.png index e6ff6d2106..751b21e931 100644 Binary files a/graphics/pokemon/noctowl/anim_front.png and b/graphics/pokemon/noctowl/anim_front.png differ diff --git a/graphics/pokemon/noctowl/front.png b/graphics/pokemon/noctowl/front.png index 6665234c04..c646747b44 100644 Binary files a/graphics/pokemon/noctowl/front.png and b/graphics/pokemon/noctowl/front.png differ diff --git a/graphics/pokemon/noctowl/normal.pal b/graphics/pokemon/noctowl/normal.pal index cf763b733f..0e4e0b0775 100644 --- a/graphics/pokemon/noctowl/normal.pal +++ b/graphics/pokemon/noctowl/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -176 120 80 -96 64 48 -240 224 168 -120 88 72 -216 184 144 -64 40 32 -200 144 112 +172 123 74 +98 65 49 +255 246 180 +123 90 74 +222 205 90 +65 41 32 +213 148 98 16 16 16 -96 96 96 -248 248 248 -192 48 24 -152 0 0 -192 192 192 -144 88 56 -160 128 104 +98 98 98 +255 255 255 +197 49 24 +156 0 0 +197 197 197 +148 90 57 +164 131 106 diff --git a/graphics/pokemon/oddish/back.png b/graphics/pokemon/oddish/back.png index 21a343a9df..7d96a680fa 100644 Binary files a/graphics/pokemon/oddish/back.png and b/graphics/pokemon/oddish/back.png differ diff --git a/graphics/pokemon/oricorio/pau/back.png b/graphics/pokemon/oricorio/pau/back.png index f2771b8b51..7969b5019f 100644 Binary files a/graphics/pokemon/oricorio/pau/back.png and b/graphics/pokemon/oricorio/pau/back.png differ diff --git a/graphics/pokemon/oricorio/pau/front.png b/graphics/pokemon/oricorio/pau/front.png index b6c6f67332..004b8cc9cc 100644 Binary files a/graphics/pokemon/oricorio/pau/front.png and b/graphics/pokemon/oricorio/pau/front.png differ diff --git a/graphics/pokemon/oricorio/pau/icon.png b/graphics/pokemon/oricorio/pau/icon.png index a4ba46d2ba..c3353a9249 100644 Binary files a/graphics/pokemon/oricorio/pau/icon.png and b/graphics/pokemon/oricorio/pau/icon.png differ diff --git a/graphics/pokemon/oricorio/pom_pom/back.png b/graphics/pokemon/oricorio/pom_pom/back.png index 78eadc3fe0..f6f22ae1be 100644 Binary files a/graphics/pokemon/oricorio/pom_pom/back.png and b/graphics/pokemon/oricorio/pom_pom/back.png differ diff --git a/graphics/pokemon/oricorio/pom_pom/front.png b/graphics/pokemon/oricorio/pom_pom/front.png index 44deb56e8e..5ed6c71b56 100644 Binary files a/graphics/pokemon/oricorio/pom_pom/front.png and b/graphics/pokemon/oricorio/pom_pom/front.png differ diff --git a/graphics/pokemon/oricorio/pom_pom/icon.png b/graphics/pokemon/oricorio/pom_pom/icon.png index ead80b6a23..9f83917ba1 100644 Binary files a/graphics/pokemon/oricorio/pom_pom/icon.png and b/graphics/pokemon/oricorio/pom_pom/icon.png differ diff --git a/graphics/pokemon/oricorio/sensu/back.png b/graphics/pokemon/oricorio/sensu/back.png index 694e30afd7..25ed57b0cd 100644 Binary files a/graphics/pokemon/oricorio/sensu/back.png and b/graphics/pokemon/oricorio/sensu/back.png differ diff --git a/graphics/pokemon/oricorio/sensu/front.png b/graphics/pokemon/oricorio/sensu/front.png index 470f684713..5abc5e547e 100644 Binary files a/graphics/pokemon/oricorio/sensu/front.png and b/graphics/pokemon/oricorio/sensu/front.png differ diff --git a/graphics/pokemon/oricorio/sensu/icon.png b/graphics/pokemon/oricorio/sensu/icon.png index 1bbb78de11..9828bb2067 100644 Binary files a/graphics/pokemon/oricorio/sensu/icon.png and b/graphics/pokemon/oricorio/sensu/icon.png differ diff --git a/graphics/pokemon/persian/back.png b/graphics/pokemon/persian/back.png index ad7a9d4a65..1ec5e99939 100644 Binary files a/graphics/pokemon/persian/back.png and b/graphics/pokemon/persian/back.png differ diff --git a/graphics/pokemon/phanpy/back.png b/graphics/pokemon/phanpy/back.png index 65e0f1d513..a46f6d7749 100644 Binary files a/graphics/pokemon/phanpy/back.png and b/graphics/pokemon/phanpy/back.png differ diff --git a/graphics/pokemon/pichu/spiky_eared/icon.png b/graphics/pokemon/pichu/spiky_eared/icon.png index 93107b1d3a..3a407bc6cb 100644 Binary files a/graphics/pokemon/pichu/spiky_eared/icon.png and b/graphics/pokemon/pichu/spiky_eared/icon.png differ diff --git a/graphics/pokemon/pikachu/alola_cap/back.png b/graphics/pokemon/pikachu/alola_cap/back.png index eb78995e33..110eab45bf 100644 Binary files a/graphics/pokemon/pikachu/alola_cap/back.png and b/graphics/pokemon/pikachu/alola_cap/back.png differ diff --git a/graphics/pokemon/pikachu/alola_cap/front.png b/graphics/pokemon/pikachu/alola_cap/front.png index 658157930e..2de876f500 100644 Binary files a/graphics/pokemon/pikachu/alola_cap/front.png and b/graphics/pokemon/pikachu/alola_cap/front.png differ diff --git a/graphics/pokemon/pikachu/alola_cap/icon.png b/graphics/pokemon/pikachu/alola_cap/icon.png index 8ebbfd5a3a..c2ad26a4be 100644 Binary files a/graphics/pokemon/pikachu/alola_cap/icon.png and b/graphics/pokemon/pikachu/alola_cap/icon.png differ diff --git a/graphics/pokemon/pikachu/belle/back.png b/graphics/pokemon/pikachu/belle/back.png index d90d9ba3b4..b9b1875658 100644 Binary files a/graphics/pokemon/pikachu/belle/back.png and b/graphics/pokemon/pikachu/belle/back.png differ diff --git a/graphics/pokemon/pikachu/belle/front.png b/graphics/pokemon/pikachu/belle/front.png index 7f521f2873..27e11f42eb 100644 Binary files a/graphics/pokemon/pikachu/belle/front.png and b/graphics/pokemon/pikachu/belle/front.png differ diff --git a/graphics/pokemon/pikachu/belle/icon.png b/graphics/pokemon/pikachu/belle/icon.png index 2263ec539e..c3374c4bb0 100644 Binary files a/graphics/pokemon/pikachu/belle/icon.png and b/graphics/pokemon/pikachu/belle/icon.png differ diff --git a/graphics/pokemon/pikachu/cosplay/back.png b/graphics/pokemon/pikachu/cosplay/back.png index d01bdd1f08..524417f1cb 100644 Binary files a/graphics/pokemon/pikachu/cosplay/back.png and b/graphics/pokemon/pikachu/cosplay/back.png differ diff --git a/graphics/pokemon/pikachu/cosplay/front.png b/graphics/pokemon/pikachu/cosplay/front.png index a59ab675a3..bcbe13ee8f 100644 Binary files a/graphics/pokemon/pikachu/cosplay/front.png and b/graphics/pokemon/pikachu/cosplay/front.png differ diff --git a/graphics/pokemon/pikachu/cosplay/icon.png b/graphics/pokemon/pikachu/cosplay/icon.png index ec128341e2..38d9443a45 100644 Binary files a/graphics/pokemon/pikachu/cosplay/icon.png and b/graphics/pokemon/pikachu/cosplay/icon.png differ diff --git a/graphics/pokemon/pikachu/hoenn_cap/back.png b/graphics/pokemon/pikachu/hoenn_cap/back.png index a00abae920..a257b1e994 100644 Binary files a/graphics/pokemon/pikachu/hoenn_cap/back.png and b/graphics/pokemon/pikachu/hoenn_cap/back.png differ diff --git a/graphics/pokemon/pikachu/hoenn_cap/front.png b/graphics/pokemon/pikachu/hoenn_cap/front.png index 19bbcdfe60..2c9749ee2e 100644 Binary files a/graphics/pokemon/pikachu/hoenn_cap/front.png and b/graphics/pokemon/pikachu/hoenn_cap/front.png differ diff --git a/graphics/pokemon/pikachu/hoenn_cap/icon.png b/graphics/pokemon/pikachu/hoenn_cap/icon.png index 63ebc8d5a2..c9f88f5e30 100644 Binary files a/graphics/pokemon/pikachu/hoenn_cap/icon.png and b/graphics/pokemon/pikachu/hoenn_cap/icon.png differ diff --git a/graphics/pokemon/pikachu/kalos_cap/back.png b/graphics/pokemon/pikachu/kalos_cap/back.png index 3623d801d6..c0a4b75261 100644 Binary files a/graphics/pokemon/pikachu/kalos_cap/back.png and b/graphics/pokemon/pikachu/kalos_cap/back.png differ diff --git a/graphics/pokemon/pikachu/kalos_cap/front.png b/graphics/pokemon/pikachu/kalos_cap/front.png index e03175dc41..b8d995d879 100644 Binary files a/graphics/pokemon/pikachu/kalos_cap/front.png and b/graphics/pokemon/pikachu/kalos_cap/front.png differ diff --git a/graphics/pokemon/pikachu/kalos_cap/icon.png b/graphics/pokemon/pikachu/kalos_cap/icon.png index 1d224061e1..0e93d93b74 100644 Binary files a/graphics/pokemon/pikachu/kalos_cap/icon.png and b/graphics/pokemon/pikachu/kalos_cap/icon.png differ diff --git a/graphics/pokemon/pikachu/libre/back.png b/graphics/pokemon/pikachu/libre/back.png index db535bbda9..f92d401f76 100644 Binary files a/graphics/pokemon/pikachu/libre/back.png and b/graphics/pokemon/pikachu/libre/back.png differ diff --git a/graphics/pokemon/pikachu/libre/front.png b/graphics/pokemon/pikachu/libre/front.png index b83d135ace..234ad40f95 100644 Binary files a/graphics/pokemon/pikachu/libre/front.png and b/graphics/pokemon/pikachu/libre/front.png differ diff --git a/graphics/pokemon/pikachu/libre/icon.png b/graphics/pokemon/pikachu/libre/icon.png index f7908eab3b..38ce2cc69b 100644 Binary files a/graphics/pokemon/pikachu/libre/icon.png and b/graphics/pokemon/pikachu/libre/icon.png differ diff --git a/graphics/pokemon/pikachu/original_cap/back.png b/graphics/pokemon/pikachu/original_cap/back.png index c60155b42d..4f5d09e274 100644 Binary files a/graphics/pokemon/pikachu/original_cap/back.png and b/graphics/pokemon/pikachu/original_cap/back.png differ diff --git a/graphics/pokemon/pikachu/original_cap/front.png b/graphics/pokemon/pikachu/original_cap/front.png index 1d265d0c98..bb8d5931ec 100644 Binary files a/graphics/pokemon/pikachu/original_cap/front.png and b/graphics/pokemon/pikachu/original_cap/front.png differ diff --git a/graphics/pokemon/pikachu/original_cap/icon.png b/graphics/pokemon/pikachu/original_cap/icon.png index 68179437b4..6a356991e9 100644 Binary files a/graphics/pokemon/pikachu/original_cap/icon.png and b/graphics/pokemon/pikachu/original_cap/icon.png differ diff --git a/graphics/pokemon/pikachu/partner_cap/icon.png b/graphics/pokemon/pikachu/partner_cap/icon.png index eff6d7dcdc..78630c6643 100644 Binary files a/graphics/pokemon/pikachu/partner_cap/icon.png and b/graphics/pokemon/pikachu/partner_cap/icon.png differ diff --git a/graphics/pokemon/pikachu/ph_d/back.png b/graphics/pokemon/pikachu/ph_d/back.png index 568fbf91e7..83ee2a5596 100644 Binary files a/graphics/pokemon/pikachu/ph_d/back.png and b/graphics/pokemon/pikachu/ph_d/back.png differ diff --git a/graphics/pokemon/pikachu/ph_d/front.png b/graphics/pokemon/pikachu/ph_d/front.png index 0022376076..75034ed9de 100644 Binary files a/graphics/pokemon/pikachu/ph_d/front.png and b/graphics/pokemon/pikachu/ph_d/front.png differ diff --git a/graphics/pokemon/pikachu/ph_d/icon.png b/graphics/pokemon/pikachu/ph_d/icon.png index b6bff42164..50357beb5b 100644 Binary files a/graphics/pokemon/pikachu/ph_d/icon.png and b/graphics/pokemon/pikachu/ph_d/icon.png differ diff --git a/graphics/pokemon/pikachu/pop_star/back.png b/graphics/pokemon/pikachu/pop_star/back.png index 8cfc7abe81..6840627cde 100644 Binary files a/graphics/pokemon/pikachu/pop_star/back.png and b/graphics/pokemon/pikachu/pop_star/back.png differ diff --git a/graphics/pokemon/pikachu/pop_star/front.png b/graphics/pokemon/pikachu/pop_star/front.png index 550cb7ab65..e092dfa5ca 100644 Binary files a/graphics/pokemon/pikachu/pop_star/front.png and b/graphics/pokemon/pikachu/pop_star/front.png differ diff --git a/graphics/pokemon/pikachu/pop_star/icon.png b/graphics/pokemon/pikachu/pop_star/icon.png index 04a399165b..c22ef85a4c 100644 Binary files a/graphics/pokemon/pikachu/pop_star/icon.png and b/graphics/pokemon/pikachu/pop_star/icon.png differ diff --git a/graphics/pokemon/pikachu/rock_star/back.png b/graphics/pokemon/pikachu/rock_star/back.png index 982fd0ba3e..fd86f4d59c 100644 Binary files a/graphics/pokemon/pikachu/rock_star/back.png and b/graphics/pokemon/pikachu/rock_star/back.png differ diff --git a/graphics/pokemon/pikachu/rock_star/front.png b/graphics/pokemon/pikachu/rock_star/front.png index d8498a9817..17a102c0b3 100644 Binary files a/graphics/pokemon/pikachu/rock_star/front.png and b/graphics/pokemon/pikachu/rock_star/front.png differ diff --git a/graphics/pokemon/pikachu/rock_star/icon.png b/graphics/pokemon/pikachu/rock_star/icon.png index 46f106e447..96a7327906 100644 Binary files a/graphics/pokemon/pikachu/rock_star/icon.png and b/graphics/pokemon/pikachu/rock_star/icon.png differ diff --git a/graphics/pokemon/pikachu/sinnoh_cap/back.png b/graphics/pokemon/pikachu/sinnoh_cap/back.png index f23a19428f..24d429bc42 100644 Binary files a/graphics/pokemon/pikachu/sinnoh_cap/back.png and b/graphics/pokemon/pikachu/sinnoh_cap/back.png differ diff --git a/graphics/pokemon/pikachu/sinnoh_cap/front.png b/graphics/pokemon/pikachu/sinnoh_cap/front.png index dc2712fdfa..91d91acc28 100644 Binary files a/graphics/pokemon/pikachu/sinnoh_cap/front.png and b/graphics/pokemon/pikachu/sinnoh_cap/front.png differ diff --git a/graphics/pokemon/pikachu/sinnoh_cap/icon.png b/graphics/pokemon/pikachu/sinnoh_cap/icon.png index e53e37cd4a..a127ebcb3a 100644 Binary files a/graphics/pokemon/pikachu/sinnoh_cap/icon.png and b/graphics/pokemon/pikachu/sinnoh_cap/icon.png differ diff --git a/graphics/pokemon/pikachu/unova_cap/back.png b/graphics/pokemon/pikachu/unova_cap/back.png index d7947b57b9..2191a0f4c9 100644 Binary files a/graphics/pokemon/pikachu/unova_cap/back.png and b/graphics/pokemon/pikachu/unova_cap/back.png differ diff --git a/graphics/pokemon/pikachu/unova_cap/front.png b/graphics/pokemon/pikachu/unova_cap/front.png index 6647c46860..fbc8a3a612 100644 Binary files a/graphics/pokemon/pikachu/unova_cap/front.png and b/graphics/pokemon/pikachu/unova_cap/front.png differ diff --git a/graphics/pokemon/pikachu/unova_cap/icon.png b/graphics/pokemon/pikachu/unova_cap/icon.png index 6d44809284..1dbc18cfae 100644 Binary files a/graphics/pokemon/pikachu/unova_cap/icon.png and b/graphics/pokemon/pikachu/unova_cap/icon.png differ diff --git a/graphics/pokemon/pumpkaboo/back.png b/graphics/pokemon/pumpkaboo/back.png index 586016235d..9744f39664 100644 Binary files a/graphics/pokemon/pumpkaboo/back.png and b/graphics/pokemon/pumpkaboo/back.png differ diff --git a/graphics/pokemon/pumpkaboo/large/back.png b/graphics/pokemon/pumpkaboo/large/back.png index 571144ecf9..e5deba0d7d 100644 Binary files a/graphics/pokemon/pumpkaboo/large/back.png and b/graphics/pokemon/pumpkaboo/large/back.png differ diff --git a/graphics/pokemon/pumpkaboo/small/back.png b/graphics/pokemon/pumpkaboo/small/back.png index 23283b1b30..5d7c21e346 100644 Binary files a/graphics/pokemon/pumpkaboo/small/back.png and b/graphics/pokemon/pumpkaboo/small/back.png differ diff --git a/graphics/pokemon/pumpkaboo/super/back.png b/graphics/pokemon/pumpkaboo/super/back.png index f14291657e..85cc83e2c0 100644 Binary files a/graphics/pokemon/pumpkaboo/super/back.png and b/graphics/pokemon/pumpkaboo/super/back.png differ diff --git a/graphics/pokemon/pyroar/icon.png b/graphics/pokemon/pyroar/icon.png index cd0b94401f..e00595a159 100644 Binary files a/graphics/pokemon/pyroar/icon.png and b/graphics/pokemon/pyroar/icon.png differ diff --git a/graphics/pokemon/quilava/anim_front.png b/graphics/pokemon/quilava/anim_front.png index 1c2709eb4f..e65df16880 100644 Binary files a/graphics/pokemon/quilava/anim_front.png and b/graphics/pokemon/quilava/anim_front.png differ diff --git a/graphics/pokemon/quilava/back.png b/graphics/pokemon/quilava/back.png index e6911c2b81..282cfea209 100644 Binary files a/graphics/pokemon/quilava/back.png and b/graphics/pokemon/quilava/back.png differ diff --git a/graphics/pokemon/quilava/front.png b/graphics/pokemon/quilava/front.png index 061f319982..65c45aedd2 100644 Binary files a/graphics/pokemon/quilava/front.png and b/graphics/pokemon/quilava/front.png differ diff --git a/graphics/pokemon/quilava/normal.pal b/graphics/pokemon/quilava/normal.pal index c6f175d1e4..c59061cc84 100644 --- a/graphics/pokemon/quilava/normal.pal +++ b/graphics/pokemon/quilava/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -216 0 0 -248 88 0 -248 208 0 -248 152 0 -40 104 104 -40 64 96 -56 136 144 +222 0 0 +255 90 0 +255 213 0 +255 156 0 +24 98 131 +49 65 106 +65 156 172 16 16 16 168 0 0 248 248 248 -176 152 80 -248 232 160 -224 200 104 -136 96 32 +180 156 82 +255 238 164 +230 205 106 +139 98 32 16 48 56 diff --git a/graphics/pokemon/relicanth/back.png b/graphics/pokemon/relicanth/back.png index cf4886a6b7..678602343a 100644 Binary files a/graphics/pokemon/relicanth/back.png and b/graphics/pokemon/relicanth/back.png differ diff --git a/graphics/pokemon/reshiram/back.png b/graphics/pokemon/reshiram/back.png index d62cdbdb5b..2738d144ee 100644 Binary files a/graphics/pokemon/reshiram/back.png and b/graphics/pokemon/reshiram/back.png differ diff --git a/graphics/pokemon/riolu/back.png b/graphics/pokemon/riolu/back.png index ebb100ba15..10d47dfd58 100644 Binary files a/graphics/pokemon/riolu/back.png and b/graphics/pokemon/riolu/back.png differ diff --git a/graphics/pokemon/sawsbuck/autumn/back.png b/graphics/pokemon/sawsbuck/autumn/back.png index 029ddf1d6f..3d32c819b4 100644 Binary files a/graphics/pokemon/sawsbuck/autumn/back.png and b/graphics/pokemon/sawsbuck/autumn/back.png differ diff --git a/graphics/pokemon/sawsbuck/autumn/icon.png b/graphics/pokemon/sawsbuck/autumn/icon.png index 082cb94ead..bbbabecf1e 100644 Binary files a/graphics/pokemon/sawsbuck/autumn/icon.png and b/graphics/pokemon/sawsbuck/autumn/icon.png differ diff --git a/graphics/pokemon/sawsbuck/summer/back.png b/graphics/pokemon/sawsbuck/summer/back.png index dc4071e2ea..aee6937c4b 100644 Binary files a/graphics/pokemon/sawsbuck/summer/back.png and b/graphics/pokemon/sawsbuck/summer/back.png differ diff --git a/graphics/pokemon/sawsbuck/summer/icon.png b/graphics/pokemon/sawsbuck/summer/icon.png index e699823cd6..6d46101dd1 100644 Binary files a/graphics/pokemon/sawsbuck/summer/icon.png and b/graphics/pokemon/sawsbuck/summer/icon.png differ diff --git a/graphics/pokemon/sawsbuck/winter/icon.png b/graphics/pokemon/sawsbuck/winter/icon.png index b7e7a3600d..ecb6ce1ade 100644 Binary files a/graphics/pokemon/sawsbuck/winter/icon.png and b/graphics/pokemon/sawsbuck/winter/icon.png differ diff --git a/graphics/pokemon/sealeo/back.png b/graphics/pokemon/sealeo/back.png index 162838a2c8..84a89788b3 100644 Binary files a/graphics/pokemon/sealeo/back.png and b/graphics/pokemon/sealeo/back.png differ diff --git a/graphics/pokemon/sentret/anim_front.png b/graphics/pokemon/sentret/anim_front.png index 820a036ac7..9986d9d940 100644 Binary files a/graphics/pokemon/sentret/anim_front.png and b/graphics/pokemon/sentret/anim_front.png differ diff --git a/graphics/pokemon/sentret/front.png b/graphics/pokemon/sentret/front.png index 6505891305..bdc6964894 100644 Binary files a/graphics/pokemon/sentret/front.png and b/graphics/pokemon/sentret/front.png differ diff --git a/graphics/pokemon/sentret/normal.pal b/graphics/pokemon/sentret/normal.pal index 1e09bf2d7d..093a3581db 100644 --- a/graphics/pokemon/sentret/normal.pal +++ b/graphics/pokemon/sentret/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -72 48 32 -56 8 0 -96 64 48 +74 49 32 +57 8 0 +98 65 49 16 16 16 -176 32 64 -216 64 72 -136 88 64 -200 160 128 -184 128 88 -248 248 248 -160 112 72 -56 24 16 -200 200 192 +180 32 65 +222 65 74 +139 90 65 +205 164 131 +189 131 90 +255 255 255 +164 115 74 +57 24 16 +205 205 197 0 0 0 0 0 0 diff --git a/graphics/pokemon/shellos/east_sea/back.png b/graphics/pokemon/shellos/east_sea/back.png index 0613c7a58a..2cb650a28c 100644 Binary files a/graphics/pokemon/shellos/east_sea/back.png and b/graphics/pokemon/shellos/east_sea/back.png differ diff --git a/graphics/pokemon/shellos/east_sea/icon.png b/graphics/pokemon/shellos/east_sea/icon.png index befc659c1c..35610eb27c 100644 Binary files a/graphics/pokemon/shellos/east_sea/icon.png and b/graphics/pokemon/shellos/east_sea/icon.png differ diff --git a/graphics/pokemon/shinx/anim_frontf.png b/graphics/pokemon/shinx/anim_frontf.png index 226c6f3bda..2ee34f0968 100644 Binary files a/graphics/pokemon/shinx/anim_frontf.png and b/graphics/pokemon/shinx/anim_frontf.png differ diff --git a/graphics/pokemon/shinx/backf.png b/graphics/pokemon/shinx/backf.png index 24108fbf30..805ee62ee3 100644 Binary files a/graphics/pokemon/shinx/backf.png and b/graphics/pokemon/shinx/backf.png differ diff --git a/graphics/pokemon/shuppet/back.png b/graphics/pokemon/shuppet/back.png index 61efa5110d..c25c8567e0 100644 Binary files a/graphics/pokemon/shuppet/back.png and b/graphics/pokemon/shuppet/back.png differ diff --git a/graphics/pokemon/silvally/back.png b/graphics/pokemon/silvally/back.png index 3994f8bf20..94c3826cbd 100644 Binary files a/graphics/pokemon/silvally/back.png and b/graphics/pokemon/silvally/back.png differ diff --git a/graphics/pokemon/silvally/front.png b/graphics/pokemon/silvally/front.png index a0caf35b63..01d9f14a9c 100644 Binary files a/graphics/pokemon/silvally/front.png and b/graphics/pokemon/silvally/front.png differ diff --git a/graphics/pokemon/sirfetchd/front.png b/graphics/pokemon/sirfetchd/front.png index a7ac2a974a..3ae79de6e6 100644 Binary files a/graphics/pokemon/sirfetchd/front.png and b/graphics/pokemon/sirfetchd/front.png differ diff --git a/graphics/pokemon/snubbull/back.png b/graphics/pokemon/snubbull/back.png index 3cd3688405..fa403eba3e 100644 Binary files a/graphics/pokemon/snubbull/back.png and b/graphics/pokemon/snubbull/back.png differ diff --git a/graphics/pokemon/spheal/back.png b/graphics/pokemon/spheal/back.png index e859b980fd..5c23636ede 100644 Binary files a/graphics/pokemon/spheal/back.png and b/graphics/pokemon/spheal/back.png differ diff --git a/graphics/pokemon/spinarak/anim_front.png b/graphics/pokemon/spinarak/anim_front.png index d5837da994..0e2d525c4d 100644 Binary files a/graphics/pokemon/spinarak/anim_front.png and b/graphics/pokemon/spinarak/anim_front.png differ diff --git a/graphics/pokemon/spinarak/front.png b/graphics/pokemon/spinarak/front.png index 36c6e8f60d..7af7440985 100644 Binary files a/graphics/pokemon/spinarak/front.png and b/graphics/pokemon/spinarak/front.png differ diff --git a/graphics/pokemon/spinarak/normal.pal b/graphics/pokemon/spinarak/normal.pal index 22db1c2ce9..ccdc73a40d 100644 --- a/graphics/pokemon/spinarak/normal.pal +++ b/graphics/pokemon/spinarak/normal.pal @@ -4,16 +4,16 @@ JASC-PAL 0 176 232 16 16 16 48 72 16 -40 96 96 +16 16 16 136 224 48 168 240 96 80 176 104 96 152 160 -112 88 32 -192 176 24 -72 72 72 +131 106 41 +197 180 24 +106 106 115 248 248 248 -248 224 72 -200 192 192 -144 48 40 -248 88 72 +255 230 74 +189 197 197 +123 49 65 +238 90 90 diff --git a/graphics/pokemon/spinarak/shiny.pal b/graphics/pokemon/spinarak/shiny.pal index 970ece98de..9c966c9e6e 100644 --- a/graphics/pokemon/spinarak/shiny.pal +++ b/graphics/pokemon/spinarak/shiny.pal @@ -4,7 +4,7 @@ JASC-PAL 168 224 24 16 16 16 40 56 104 -32 56 96 +16 16 16 136 176 232 176 216 248 104 128 184 diff --git a/graphics/pokemon/staravia/back.png b/graphics/pokemon/staravia/back.png index 6d24ce4126..672f9ca560 100644 Binary files a/graphics/pokemon/staravia/back.png and b/graphics/pokemon/staravia/back.png differ diff --git a/graphics/pokemon/swablu/back.png b/graphics/pokemon/swablu/back.png index 2bab92da67..e146b2c0c5 100644 Binary files a/graphics/pokemon/swablu/back.png and b/graphics/pokemon/swablu/back.png differ diff --git a/graphics/pokemon/swalot/back.png b/graphics/pokemon/swalot/back.png index 487b4f8884..ec9fdaef2c 100644 Binary files a/graphics/pokemon/swalot/back.png and b/graphics/pokemon/swalot/back.png differ diff --git a/graphics/pokemon/togepi/anim_front.png b/graphics/pokemon/togepi/anim_front.png index 07d7f05b89..9fc22b9f84 100644 Binary files a/graphics/pokemon/togepi/anim_front.png and b/graphics/pokemon/togepi/anim_front.png differ diff --git a/graphics/pokemon/togepi/front.png b/graphics/pokemon/togepi/front.png index e6520872b5..304d9165b0 100644 Binary files a/graphics/pokemon/togepi/front.png and b/graphics/pokemon/togepi/front.png differ diff --git a/graphics/pokemon/togepi/normal.pal b/graphics/pokemon/togepi/normal.pal index 0fb20049a4..3d6967dcac 100644 --- a/graphics/pokemon/togepi/normal.pal +++ b/graphics/pokemon/togepi/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -144 112 88 +148 115 90 0 0 0 -240 232 192 -200 176 112 -112 72 72 -240 208 160 -168 32 32 -248 248 248 -120 136 144 -208 216 216 -72 128 192 -216 112 104 -192 64 64 -176 176 192 -48 96 168 +246 238 197 +205 156 115 +115 74 74 +246 213 164 +172 32 32 +255 255 255 +123 139 148 +213 222 222 +74 131 197 +222 115 106 +197 65 65 +180 180 197 +49 98 172 diff --git a/graphics/pokemon/togetic/anim_front.png b/graphics/pokemon/togetic/anim_front.png index 1079c2b014..c88c0e4d61 100644 Binary files a/graphics/pokemon/togetic/anim_front.png and b/graphics/pokemon/togetic/anim_front.png differ diff --git a/graphics/pokemon/togetic/back.png b/graphics/pokemon/togetic/back.png index 755fcf5950..76312f9b82 100644 Binary files a/graphics/pokemon/togetic/back.png and b/graphics/pokemon/togetic/back.png differ diff --git a/graphics/pokemon/togetic/front.png b/graphics/pokemon/togetic/front.png index 0bacb627e7..b1a9db4df5 100644 Binary files a/graphics/pokemon/togetic/front.png and b/graphics/pokemon/togetic/front.png differ diff --git a/graphics/pokemon/togetic/normal.pal b/graphics/pokemon/togetic/normal.pal index 0b17314592..951bc0f040 100644 --- a/graphics/pokemon/togetic/normal.pal +++ b/graphics/pokemon/togetic/normal.pal @@ -2,17 +2,17 @@ JASC-PAL 0100 16 152 208 160 -112 120 128 -248 248 248 +115 123 131 +255 255 255 0 0 0 -168 192 184 -208 232 232 -216 64 56 -184 24 8 -40 144 224 -16 96 184 -192 48 32 -136 16 16 +172 197 189 +213 238 238 +222 65 57 +189 24 8 +41 148 230 +16 98 189 +222 65 57 +189 24 8 0 0 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/tornadus/therian/icon.png b/graphics/pokemon/tornadus/therian/icon.png index dd6db6b5c0..fea79288d2 100644 Binary files a/graphics/pokemon/tornadus/therian/icon.png and b/graphics/pokemon/tornadus/therian/icon.png differ diff --git a/graphics/pokemon/totodile/anim_front.png b/graphics/pokemon/totodile/anim_front.png index 49e4fee75a..25e0a234e6 100644 Binary files a/graphics/pokemon/totodile/anim_front.png and b/graphics/pokemon/totodile/anim_front.png differ diff --git a/graphics/pokemon/totodile/front.png b/graphics/pokemon/totodile/front.png index ba9c9994b0..d8ecc06a1c 100644 Binary files a/graphics/pokemon/totodile/front.png and b/graphics/pokemon/totodile/front.png differ diff --git a/graphics/pokemon/totodile/normal.pal b/graphics/pokemon/totodile/normal.pal index bf7ef18aff..ce70fb2528 100644 --- a/graphics/pokemon/totodile/normal.pal +++ b/graphics/pokemon/totodile/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 208 152 184 -32 136 184 -40 88 128 -80 192 216 -152 224 248 +49 131 197 +49 90 131 +106 180 230 +148 213 255 16 16 16 -248 248 248 -64 64 72 -176 176 176 -120 24 0 -152 80 88 -200 64 32 -232 120 120 -144 128 32 -248 224 136 +255 255 255 +49 90 131 +180 180 180 +123 24 0 +180 74 82 +205 65 32 +230 123 123 +172 131 41 +255 197 82 184 104 104 diff --git a/graphics/pokemon/totodile/shiny.pal b/graphics/pokemon/totodile/shiny.pal index 6c3f512048..3bc0bc64c6 100644 --- a/graphics/pokemon/totodile/shiny.pal +++ b/graphics/pokemon/totodile/shiny.pal @@ -8,7 +8,7 @@ JASC-PAL 168 248 216 16 16 16 248 248 248 -56 56 56 +24 104 72 176 176 176 24 72 128 136 64 64 diff --git a/graphics/pokemon/typhlosion/anim_front.png b/graphics/pokemon/typhlosion/anim_front.png index a4f46ae24a..bc4b7c45cc 100644 Binary files a/graphics/pokemon/typhlosion/anim_front.png and b/graphics/pokemon/typhlosion/anim_front.png differ diff --git a/graphics/pokemon/typhlosion/back.png b/graphics/pokemon/typhlosion/back.png index 3252c26e90..81bcbd42b6 100644 Binary files a/graphics/pokemon/typhlosion/back.png and b/graphics/pokemon/typhlosion/back.png differ diff --git a/graphics/pokemon/typhlosion/normal.pal b/graphics/pokemon/typhlosion/normal.pal index 8315b8af8b..b0b35155f5 100644 --- a/graphics/pokemon/typhlosion/normal.pal +++ b/graphics/pokemon/typhlosion/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -216 0 0 -248 96 0 -248 216 0 -248 152 0 -40 88 120 -24 40 48 -56 128 136 -160 136 72 -248 232 144 -104 80 40 +222 0 0 +255 98 0 +255 222 0 +255 156 0 +65 90 148 +8 32 90 +65 131 164 +164 139 74 +255 238 148 +106 82 41 16 16 16 -248 248 248 -208 192 112 -128 72 72 -48 64 112 +255 255 255 +213 197 115 +0 0 0 +32 65 106 diff --git a/graphics/pokemon/unfezant/backf.png b/graphics/pokemon/unfezant/backf.png index cded84b124..f9624417f0 100644 Binary files a/graphics/pokemon/unfezant/backf.png and b/graphics/pokemon/unfezant/backf.png differ diff --git a/graphics/pokemon/unfezant/icon.png b/graphics/pokemon/unfezant/icon.png index 8b61d1bfba..785bd89a9b 100644 Binary files a/graphics/pokemon/unfezant/icon.png and b/graphics/pokemon/unfezant/icon.png differ diff --git a/graphics/pokemon/vivillon/continental/icon.png b/graphics/pokemon/vivillon/continental/icon.png index 51c770f56e..e4fdf6d219 100644 Binary files a/graphics/pokemon/vivillon/continental/icon.png and b/graphics/pokemon/vivillon/continental/icon.png differ diff --git a/graphics/pokemon/vivillon/elegant/icon.png b/graphics/pokemon/vivillon/elegant/icon.png index 221935a218..f6c4772ae0 100644 Binary files a/graphics/pokemon/vivillon/elegant/icon.png and b/graphics/pokemon/vivillon/elegant/icon.png differ diff --git a/graphics/pokemon/vivillon/fancy/icon.png b/graphics/pokemon/vivillon/fancy/icon.png index 22fe6f1a01..10d9a2e9b2 100644 Binary files a/graphics/pokemon/vivillon/fancy/icon.png and b/graphics/pokemon/vivillon/fancy/icon.png differ diff --git a/graphics/pokemon/vivillon/garden/icon.png b/graphics/pokemon/vivillon/garden/icon.png index 03032ba4d8..868f8c7fe3 100644 Binary files a/graphics/pokemon/vivillon/garden/icon.png and b/graphics/pokemon/vivillon/garden/icon.png differ diff --git a/graphics/pokemon/vivillon/jungle/icon.png b/graphics/pokemon/vivillon/jungle/icon.png index 8d83dd4291..1a3249596c 100644 Binary files a/graphics/pokemon/vivillon/jungle/icon.png and b/graphics/pokemon/vivillon/jungle/icon.png differ diff --git a/graphics/pokemon/vivillon/marine/icon.png b/graphics/pokemon/vivillon/marine/icon.png index 045cb38dd0..72ef85f218 100644 Binary files a/graphics/pokemon/vivillon/marine/icon.png and b/graphics/pokemon/vivillon/marine/icon.png differ diff --git a/graphics/pokemon/vivillon/modern/icon.png b/graphics/pokemon/vivillon/modern/icon.png index 239e8887a4..2aa35c48e3 100644 Binary files a/graphics/pokemon/vivillon/modern/icon.png and b/graphics/pokemon/vivillon/modern/icon.png differ diff --git a/graphics/pokemon/vivillon/monsoon/icon.png b/graphics/pokemon/vivillon/monsoon/icon.png index 6430f1f1b7..2eb6221ef4 100644 Binary files a/graphics/pokemon/vivillon/monsoon/icon.png and b/graphics/pokemon/vivillon/monsoon/icon.png differ diff --git a/graphics/pokemon/vivillon/ocean/icon.png b/graphics/pokemon/vivillon/ocean/icon.png index bde8c05192..ac083f2895 100644 Binary files a/graphics/pokemon/vivillon/ocean/icon.png and b/graphics/pokemon/vivillon/ocean/icon.png differ diff --git a/graphics/pokemon/vivillon/poke_ball/icon.png b/graphics/pokemon/vivillon/poke_ball/icon.png index 2620f928ae..9305c2b8ad 100644 Binary files a/graphics/pokemon/vivillon/poke_ball/icon.png and b/graphics/pokemon/vivillon/poke_ball/icon.png differ diff --git a/graphics/pokemon/vivillon/polar/icon.png b/graphics/pokemon/vivillon/polar/icon.png index 4ca4400cd1..dd12dbd25d 100644 Binary files a/graphics/pokemon/vivillon/polar/icon.png and b/graphics/pokemon/vivillon/polar/icon.png differ diff --git a/graphics/pokemon/vivillon/river/icon.png b/graphics/pokemon/vivillon/river/icon.png index a7427d685e..d33d8271c3 100644 Binary files a/graphics/pokemon/vivillon/river/icon.png and b/graphics/pokemon/vivillon/river/icon.png differ diff --git a/graphics/pokemon/vivillon/sandstorm/icon.png b/graphics/pokemon/vivillon/sandstorm/icon.png index e90306872f..e5e0b987eb 100644 Binary files a/graphics/pokemon/vivillon/sandstorm/icon.png and b/graphics/pokemon/vivillon/sandstorm/icon.png differ diff --git a/graphics/pokemon/vivillon/savanna/icon.png b/graphics/pokemon/vivillon/savanna/icon.png index 2665f3456d..37fc6570df 100644 Binary files a/graphics/pokemon/vivillon/savanna/icon.png and b/graphics/pokemon/vivillon/savanna/icon.png differ diff --git a/graphics/pokemon/vivillon/sun/icon.png b/graphics/pokemon/vivillon/sun/icon.png index 7b7974210f..0a8af5e68f 100644 Binary files a/graphics/pokemon/vivillon/sun/icon.png and b/graphics/pokemon/vivillon/sun/icon.png differ diff --git a/graphics/pokemon/vivillon/tundra/icon.png b/graphics/pokemon/vivillon/tundra/icon.png index 8d38291d42..711ae44ee5 100644 Binary files a/graphics/pokemon/vivillon/tundra/icon.png and b/graphics/pokemon/vivillon/tundra/icon.png differ diff --git a/graphics/pokemon/whiscash/back.png b/graphics/pokemon/whiscash/back.png index 8741f6e9ac..07e3fb0f68 100644 Binary files a/graphics/pokemon/whiscash/back.png and b/graphics/pokemon/whiscash/back.png differ diff --git a/graphics/pokemon/wingull/back.png b/graphics/pokemon/wingull/back.png index dd40dda6b1..b419bf6410 100644 Binary files a/graphics/pokemon/wingull/back.png and b/graphics/pokemon/wingull/back.png differ diff --git a/graphics/pokemon/xatu/anim_front.png b/graphics/pokemon/xatu/anim_front.png index b6968e7758..c3d3143846 100644 Binary files a/graphics/pokemon/xatu/anim_front.png and b/graphics/pokemon/xatu/anim_front.png differ diff --git a/graphics/pokemon/xatu/front.png b/graphics/pokemon/xatu/front.png index 93c7947632..e90c44fadf 100644 Binary files a/graphics/pokemon/xatu/front.png and b/graphics/pokemon/xatu/front.png differ diff --git a/graphics/pokemon/xatu/normal.pal b/graphics/pokemon/xatu/normal.pal index eb20bf6aea..05aeca9fc5 100644 --- a/graphics/pokemon/xatu/normal.pal +++ b/graphics/pokemon/xatu/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 0 176 232 -72 144 64 -144 208 64 -40 104 40 -176 136 32 -112 184 64 -248 184 48 -136 88 0 +74 148 65 +148 213 65 +41 106 41 +180 139 32 +115 189 65 +255 189 49 +139 90 0 16 16 16 -248 248 248 -144 144 144 -80 80 80 -128 40 0 -176 48 0 -200 200 200 -232 56 0 +255 255 255 +148 148 148 +82 82 82 +131 41 0 +180 49 0 +205 205 205 +238 57 0 diff --git a/graphics/pokemon/xerneas/back.png b/graphics/pokemon/xerneas/back.png index 30654685a9..5f38d48dd3 100644 Binary files a/graphics/pokemon/xerneas/back.png and b/graphics/pokemon/xerneas/back.png differ diff --git a/graphics/pokemon/xerneas/front.png b/graphics/pokemon/xerneas/front.png index d219e463b9..357f3b4294 100644 Binary files a/graphics/pokemon/xerneas/front.png and b/graphics/pokemon/xerneas/front.png differ diff --git a/graphics/pokemon/xerneas/icon.png b/graphics/pokemon/xerneas/icon.png index f59ee416fa..31036c9ee1 100644 Binary files a/graphics/pokemon/xerneas/icon.png and b/graphics/pokemon/xerneas/icon.png differ diff --git a/graphics/pokemon/zapdos/back.png b/graphics/pokemon/zapdos/back.png index 00b3410ddf..0b7cc3c7b3 100644 Binary files a/graphics/pokemon/zapdos/back.png and b/graphics/pokemon/zapdos/back.png differ diff --git a/graphics/pokemon/zygarde/10_percent/icon.png b/graphics/pokemon/zygarde/10_percent/icon.png index 3d968a6b69..222eb1b80a 100644 Binary files a/graphics/pokemon/zygarde/10_percent/icon.png and b/graphics/pokemon/zygarde/10_percent/icon.png differ diff --git a/graphics/pokemon/zygarde/complete/icon.png b/graphics/pokemon/zygarde/complete/icon.png index 8575e8d58d..663b98fd74 100644 Binary files a/graphics/pokemon/zygarde/complete/icon.png and b/graphics/pokemon/zygarde/complete/icon.png differ diff --git a/include/battle.h b/include/battle.h index ce01fc224c..c6feb601b5 100644 --- a/include/battle.h +++ b/include/battle.h @@ -143,6 +143,7 @@ struct ProtectStruct u16 quickDraw:1; u16 beakBlastCharge:1; u16 quash:1; + u16 shellTrap:1; u16 silkTrapped:1; u32 physicalDmg; u32 specialDmg; @@ -644,6 +645,8 @@ struct BattleStruct struct StolenItem itemStolen[PARTY_SIZE]; // Player's team that had items stolen (two bytes per party member) u8 blunderPolicy:1; // should blunder policy activate u8 swapDamageCategory:1; // Photon Geyser, Shell Side Arm, Light That Burns the Sky + u8 forcedSwitch:4; // For each battler + u8 switchInAbilityPostponed:4; // To not activate against an empty field, each bit for battler u8 ballSpriteIds[2]; // item gfx, window gfx u8 stickyWebUser; u8 appearedInBattle; // Bitfield to track which Pokemon appeared in battle. Used for Burmy's form change @@ -651,6 +654,7 @@ struct BattleStruct // When using a move which hits multiple opponents which is then bounced by a target, we need to make sure, the move hits both opponents, the one with bounce, and the one without. u8 attackerBeforeBounce:2; u8 beatUpSlot:3; + bool8 hitSwitchTargetFailed:1; u8 targetsDone[MAX_BATTLERS_COUNT]; // Each battler as a bit. u16 overwrittenAbilities[MAX_BATTLERS_COUNT]; // abilities overwritten during battle (keep separate from battle history in case of switching) bool8 allowedToChangeFormInWeather[PARTY_SIZE][2]; // For each party member and side, used by Ice Face. diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h index 60fd9b156b..c3d6831e95 100644 --- a/include/battle_script_commands.h +++ b/include/battle_script_commands.h @@ -44,6 +44,7 @@ u16 GetSecretPowerMoveEffect(void); void StealTargetItem(u8 battlerStealer, u8 battlerItem); u8 GetCatchingBattler(void); u32 GetHighestStatId(u32 battlerId); +bool32 DoSwitchInAbilitiesItems(u32 battlerId); extern void (* const gBattleScriptingCommandsTable[])(void); extern const u8 gBattlePalaceNatureToMoveGroupLikelihood[NUM_NATURES][4]; diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 70d398e2a5..8c6b074c18 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -256,7 +256,6 @@ extern const u8 BattleScript_SturdiedMsg[]; extern const u8 BattleScript_GravityEnds[]; extern const u8 BattleScript_MoveStatDrain[]; extern const u8 BattleScript_MoveStatDrain_PPLoss[]; -extern const u8 BattleScript_TargetAbilityStatRaiseOnMoveEnd[]; extern const u8 BattleScript_TargetsStatWasMaxedOut[]; extern const u8 BattleScript_AttackerAbilityStatRaise[]; extern const u8 BattleScript_AttackerAbilityStatRaiseEnd3[]; @@ -293,7 +292,6 @@ extern const u8 BattleScript_WishMegaEvolution[]; extern const u8 BattleScript_MoveEffectRecoilWithStatus[]; extern const u8 BattleScript_EffectWithChance[]; extern const u8 BattleScript_MoveEffectClearSmog[]; -extern const u8 BattleScript_ForceRandomSwitch[]; extern const u8 BattleScript_SideStatusWoreOffReturn[]; extern const u8 BattleScript_MoveEffectSmackDown[]; extern const u8 BattleScript_MoveEffectFlameBurst[]; @@ -454,6 +452,7 @@ extern const u8 BattleScript_BattlerFormChangeWithStringEnd3[]; extern const u8 BattleScript_DampPreventsAftermath[]; extern const u8 BattleScript_HealingWishActivates[]; extern const u8 BattleScript_LunarDanceActivates[]; +extern const u8 BattleScript_ShellTrapSetUp[]; // zmoves extern const u8 BattleScript_ZMoveActivateDamaging[]; diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index beab881512..061271dd56 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -398,7 +398,8 @@ #define EFFECT_VICTORY_DANCE 392 #define EFFECT_TEATIME 393 #define EFFECT_ATTACK_UP_USER_ALLY 394 // Howl 8th Gen +#define EFFECT_SHELL_TRAP 395 -#define NUM_BATTLE_MOVE_EFFECTS 395 +#define NUM_BATTLE_MOVE_EFFECTS 396 #endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index f2f7d2cb29..5f871997ed 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -255,11 +255,12 @@ #define VARIOUS_TRY_WIND_RIDER_POWER 163 #define VARIOUS_ACTIVATE_WEATHER_CHANGE_ABILITIES 164 #define VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES 165 -#define VARIOUS_JUMP_IF_NO_VALID_TARGETS 166 -#define VARIOUS_JUMP_IF_EMERGENCY_EXITED 167 -#define VARIOUS_STORE_HEALING_WISH 168 -#define VARIOUS_TRY_TRAINER_SLIDE_MSG_Z_MOVE 169 -#define VARIOUS_TRY_TRAINER_SLIDE_MSG_MEGA_EVOLUTION 170 +#define VARIOUS_JUMP_IF_EMERGENCY_EXITED 166 +#define VARIOUS_STORE_HEALING_WISH 167 +#define VARIOUS_HIT_SWITCH_TARGET_FAILED 168 +#define VARIOUS_JUMP_IF_SHELL_TRAP 169 +#define VARIOUS_TRY_TRAINER_SLIDE_MSG_Z_MOVE 170 +#define VARIOUS_TRY_TRAINER_SLIDE_MSG_MEGA_EVOLUTION 171 // Cmd_manipulatedamage #define DMG_CHANGE_SIGN 0 diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index 3f8853024f..e561a9cb98 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -639,8 +639,10 @@ #define STRINGID_ABILITYWEAKENEDFSURROUNDINGMONSSTAT 637 #define STRINGID_ATTACKERGAINEDSTRENGTHFROMTHEFALLEN 638 #define STRINGID_PKMNSABILITYPREVENTSABILITY 639 +#define STRINGID_PREPARESHELLTRAP 640 +#define STRINGID_SHELLTRAPDIDNTWORK 641 -#define BATTLESTRINGS_COUNT 640 +#define BATTLESTRINGS_COUNT 642 // This is the string id that gBattleStringsTable starts with. // String ids before this (e.g. STRINGID_INTROMSG) are not in the table, diff --git a/include/graphics.h b/include/graphics.h index 55174442c5..f00c727884 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -867,9 +867,9 @@ extern const u32 gMonFrontPic_Mimikyu[]; extern const u32 gMonFrontPic_Bruxish[]; extern const u32 gMonFrontPic_Drampa[]; extern const u32 gMonFrontPic_Dhelmise[]; -extern const u32 gMonFrontPic_Jangmoo[]; -extern const u32 gMonFrontPic_Hakamoo[]; -extern const u32 gMonFrontPic_Kommoo[]; +extern const u32 gMonFrontPic_JangmoO[]; +extern const u32 gMonFrontPic_HakamoO[]; +extern const u32 gMonFrontPic_KommoO[]; extern const u32 gMonFrontPic_TapuKoko[]; extern const u32 gMonFrontPic_TapuLele[]; extern const u32 gMonFrontPic_TapuBulu[]; @@ -2081,9 +2081,9 @@ extern const u32 gMonBackPic_Mimikyu[]; extern const u32 gMonBackPic_Bruxish[]; extern const u32 gMonBackPic_Drampa[]; extern const u32 gMonBackPic_Dhelmise[]; -extern const u32 gMonBackPic_Jangmoo[]; -extern const u32 gMonBackPic_Hakamoo[]; -extern const u32 gMonBackPic_Kommoo[]; +extern const u32 gMonBackPic_JangmoO[]; +extern const u32 gMonBackPic_HakamoO[]; +extern const u32 gMonBackPic_KommoO[]; extern const u32 gMonBackPic_TapuKoko[]; extern const u32 gMonBackPic_TapuLele[]; extern const u32 gMonBackPic_TapuBulu[]; @@ -3287,9 +3287,9 @@ extern const u32 gMonPalette_Mimikyu[]; extern const u32 gMonPalette_Bruxish[]; extern const u32 gMonPalette_Drampa[]; extern const u32 gMonPalette_Dhelmise[]; -extern const u32 gMonPalette_Jangmoo[]; -extern const u32 gMonPalette_Hakamoo[]; -extern const u32 gMonPalette_Kommoo[]; +extern const u32 gMonPalette_JangmoO[]; +extern const u32 gMonPalette_HakamoO[]; +extern const u32 gMonPalette_KommoO[]; extern const u32 gMonPalette_TapuKoko[]; extern const u32 gMonPalette_TapuLele[]; extern const u32 gMonPalette_TapuBulu[]; @@ -4520,9 +4520,9 @@ extern const u32 gMonShinyPalette_Mimikyu[]; extern const u32 gMonShinyPalette_Bruxish[]; extern const u32 gMonShinyPalette_Drampa[]; extern const u32 gMonShinyPalette_Dhelmise[]; -extern const u32 gMonShinyPalette_Jangmoo[]; -extern const u32 gMonShinyPalette_Hakamoo[]; -extern const u32 gMonShinyPalette_Kommoo[]; +extern const u32 gMonShinyPalette_JangmoO[]; +extern const u32 gMonShinyPalette_HakamoO[]; +extern const u32 gMonShinyPalette_KommoO[]; extern const u32 gMonShinyPalette_TapuKoko[]; extern const u32 gMonShinyPalette_TapuLele[]; extern const u32 gMonShinyPalette_TapuBulu[]; @@ -5747,9 +5747,9 @@ extern const u8 gMonIcon_Mimikyu[]; extern const u8 gMonIcon_Bruxish[]; extern const u8 gMonIcon_Drampa[]; extern const u8 gMonIcon_Dhelmise[]; -extern const u8 gMonIcon_Jangmoo[]; -extern const u8 gMonIcon_Hakamoo[]; -extern const u8 gMonIcon_Kommoo[]; +extern const u8 gMonIcon_JangmoO[]; +extern const u8 gMonIcon_HakamoO[]; +extern const u8 gMonIcon_KommoO[]; extern const u8 gMonIcon_TapuKoko[]; extern const u8 gMonIcon_TapuLele[]; extern const u8 gMonIcon_TapuBulu[]; @@ -6960,9 +6960,9 @@ extern const u8 gMonFootprint_Mimikyu[]; extern const u8 gMonFootprint_Bruxish[]; extern const u8 gMonFootprint_Drampa[]; extern const u8 gMonFootprint_Dhelmise[]; -extern const u8 gMonFootprint_Jangmo_o[]; -extern const u8 gMonFootprint_Hakamo_o[]; -extern const u8 gMonFootprint_Kommo_o[]; +extern const u8 gMonFootprint_JangmoO[]; +extern const u8 gMonFootprint_HakamoO[]; +extern const u8 gMonFootprint_KommoO[]; extern const u8 gMonFootprint_Tapu_Koko[]; extern const u8 gMonFootprint_Tapu_Lele[]; extern const u8 gMonFootprint_Tapu_Bulu[]; diff --git a/sound/cry_tables.inc b/sound/cry_tables.inc index 7714cd00ec..c9da7e679f 100644 --- a/sound/cry_tables.inc +++ b/sound/cry_tables.inc @@ -1126,9 +1126,9 @@ gCryTable:: cry Cry_Bruxish cry Cry_Drampa cry Cry_Dhelmise - cry Cry_Jangmoo - cry Cry_Hakamoo - cry Cry_Kommoo + cry Cry_JangmoO + cry Cry_HakamoO + cry Cry_KommoO cry Cry_TapuKoko cry Cry_TapuLele cry Cry_TapuBulu @@ -3248,9 +3248,9 @@ gCryTable_Reverse:: cry_reverse Cry_Bruxish cry_reverse Cry_Drampa cry_reverse Cry_Dhelmise - cry_reverse Cry_Jangmoo - cry_reverse Cry_Hakamoo - cry_reverse Cry_Kommoo + cry_reverse Cry_JangmoO + cry_reverse Cry_HakamoO + cry_reverse Cry_KommoO cry_reverse Cry_TapuKoko cry_reverse Cry_TapuLele cry_reverse Cry_TapuBulu diff --git a/sound/direct_sound_data.inc b/sound/direct_sound_data.inc index fb4c6b44f6..611808d236 100644 --- a/sound/direct_sound_data.inc +++ b/sound/direct_sound_data.inc @@ -3518,15 +3518,15 @@ Cry_Dhelmise:: .incbin "sound/direct_sound_samples/cries/dhelmise.bin" .align 2 -Cry_Jangmoo:: +Cry_JangmoO:: .incbin "sound/direct_sound_samples/cries/jangmo_o.bin" .align 2 -Cry_Hakamoo:: +Cry_HakamoO:: .incbin "sound/direct_sound_samples/cries/hakamo_o.bin" .align 2 -Cry_Kommoo:: +Cry_KommoO:: .incbin "sound/direct_sound_samples/cries/kommo_o.bin" .align 2 diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index a626ef49a1..2d4d075282 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -2632,7 +2632,7 @@ static s16 AI_TryToFaint(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) if (CanIndexMoveFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0) && gBattleMoves[move].effect != EFFECT_EXPLOSION) { // this move can faint the target - if (!WillAIStrikeFirst() || GetMovePriority(battlerAtk, move) > 0) + if (WillAIStrikeFirst() || GetMovePriority(battlerAtk, move) > 0) score += 4; // we go first or we're using priority move else score += 2; diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 0ae1c8a9af..b439278190 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -27,6 +27,15 @@ static bool32 AiExpectsToFaintPlayer(void); static bool32 AI_ShouldHeal(u32 healAmount); static bool32 AI_OpponentCanFaintAiWithMod(u32 healAmount); +static bool32 IsAceMon(u32 battlerId, u32 monPartyId) +{ + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON + && !(gBattleStruct->forcedSwitch & gBitTable[battlerId]) + && monPartyId == CalculateEnemyPartyCount()-1) + return TRUE; + return FALSE; +} + void GetAIPartyIndexes(u32 battlerId, s32 *firstId, s32 *lastId) { if (BATTLE_TWO_VS_ONE_OPPONENT && (battlerId & BIT_SIDE) == B_SIDE_OPPONENT) @@ -109,8 +118,7 @@ static bool8 ShouldSwitchIfWonderGuard(void) continue; if (i == gBattlerPartyIndexes[gActiveBattler]) continue; - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON - && i == (CalculateEnemyPartyCount()-1)) + if (IsAceMon(gActiveBattler, i)) continue; for (opposingBattler = GetBattlerAtPosition(opposingPosition), j = 0; j < MAX_MON_MOVES; j++) @@ -202,8 +210,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) continue; if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) continue; - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON - && i == (CalculateEnemyPartyCount()-1)) + if (IsAceMon(gActiveBattler, i)) continue; @@ -267,7 +274,7 @@ static bool8 ShouldSwitchIfGameStatePrompt(void) ) switchMon = FALSE; - if (IsBattlerAlive(BATTLE_PARTNER(gActiveBattler)) + if (IsBattlerAlive(BATTLE_PARTNER(gActiveBattler)) && (gBattleMoves[AI_DATA->partnerMove].effect == EFFECT_MISTY_TERRAIN || gBattleMoves[AI_DATA->partnerMove].effect == EFFECT_ELECTRIC_TERRAIN) && IsBattlerGrounded(gActiveBattler) @@ -277,15 +284,14 @@ static bool8 ShouldSwitchIfGameStatePrompt(void) if (*(gBattleStruct->AI_monToSwitchIntoId + BATTLE_PARTNER(gActiveBattler)) != PARTY_SIZE) //Partner is switching { GetAIPartyIndexes(gActiveBattler, &firstId, &lastId); - + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) party = gPlayerParty; - + for (i = firstId; i < lastId; i++) { - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON - && i == (CalculateEnemyPartyCount()-1)) - break; + if (IsAceMon(gActiveBattler, i)) + continue; //Look for mon in party that is able to be switched into and has ability that sets terrain if (GetMonData(&party[i], MON_DATA_HP) != 0 @@ -305,7 +311,7 @@ static bool8 ShouldSwitchIfGameStatePrompt(void) } } } - + //Check if Active Pokemon can KO opponent instead of switching //Will still fall asleep, but take out opposing Pokemon first if (AiExpectsToFaintPlayer()) @@ -328,7 +334,7 @@ static bool8 ShouldSwitchIfGameStatePrompt(void) && AI_DATA->abilities[opposingBattler] != ABILITY_UNAWARE && AI_DATA->abilities[opposingBattler] != ABILITY_KEEN_EYE && !(gBattleMons[gActiveBattler].status2 & STATUS2_FORESIGHT) - && !(gStatuses3[gActiveBattler] & STATUS3_MIRACLE_EYED)) + && !(gStatuses3[gActiveBattler] & STATUS3_MIRACLE_EYED)) switchMon = FALSE; } @@ -343,7 +349,7 @@ static bool8 ShouldSwitchIfGameStatePrompt(void) && gBattleMons[gActiveBattler].hp >= (gBattleMons[gActiveBattler].maxHP / 3) && (Random() % (moduloChance*chanceReducer)) == 0) switchMon = TRUE; - + //Cursed moduloChance = 2; //50% if (gBattleMons[gActiveBattler].status2 & STATUS2_CURSED @@ -370,7 +376,7 @@ static bool8 ShouldSwitchIfGameStatePrompt(void) //Todo //Pass Wish Heal - + //Semi-Invulnerable if (gStatuses3[opposingBattler] & STATUS3_SEMI_INVULNERABLE) { @@ -416,7 +422,7 @@ static bool8 ShouldSwitchIfAbilityBenefit(void) switch(AI_DATA->abilities[gActiveBattler]) { case ABILITY_NATURAL_CURE: moduloChance = 4; //25% - //Attempt to cure bad ailment + //Attempt to cure bad ailment if (gBattleMons[gActiveBattler].status1 & (STATUS1_SLEEP | STATUS1_FREEZE | STATUS1_TOXIC_POISON) && GetMostSuitableMonToSwitchInto() != PARTY_SIZE) break; @@ -432,17 +438,17 @@ static bool8 ShouldSwitchIfAbilityBenefit(void) case ABILITY_REGENERATOR: moduloChance = 2; //50% //Don't switch if ailment - if (gBattleMons[gActiveBattler].status1 & STATUS1_ANY) - return FALSE; + if (gBattleMons[gActiveBattler].status1 & STATUS1_ANY) + return FALSE; if ((gBattleMons[gActiveBattler].hp <= ((gBattleMons[gActiveBattler].maxHP * 2) / 3)) && GetMostSuitableMonToSwitchInto() != PARTY_SIZE && Random() % (moduloChance*chanceReducer) == 0) break; - + return FALSE; default: - return FALSE; + return FALSE; } *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = PARTY_SIZE; @@ -576,8 +582,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u16 flags, u8 moduloPercent) continue; if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) continue; - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON - && i == (CalculateEnemyPartyCount()-1)) + if (IsAceMon(gActiveBattler, i)) continue; @@ -619,6 +624,7 @@ bool32 ShouldSwitch(void) struct Pokemon *party; s32 i; s32 availableToSwitch; + bool32 hasAceMon = FALSE; if (gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) return FALSE; @@ -668,15 +674,22 @@ bool32 ShouldSwitch(void) continue; if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) continue; - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON - && i == (CalculateEnemyPartyCount()-1)) + if (IsAceMon(gActiveBattler, i)) + { + hasAceMon = TRUE; continue; + } availableToSwitch++; } if (availableToSwitch == 0) - return FALSE; + { + if (hasAceMon) // If the ace mon is the only available mon, use it + availableToSwitch++; + else + return FALSE; + } //NOTE: The sequence of the below functions matter! Do not change unless you have carefully considered the outcome. //Since the order is sequencial, and some of these functions prompt switch to specific party members. @@ -694,14 +707,14 @@ bool32 ShouldSwitch(void) return TRUE; if (ShouldSwitchIfAbilityBenefit()) return TRUE; - + //Removing switch capabilites under specific conditions //These Functions prevent the "FindMonWithFlagsAndSuperEffective" from getting out of hand. if (HasSuperEffectiveMoveAgainstOpponents(FALSE)) return FALSE; if (AreStatsRaised()) return FALSE; - + //Default Function //Can prompt switch if AI has a pokemon in party that resists current opponent & has super effective move if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_DOESNT_AFFECT_FOE, 2) @@ -758,8 +771,7 @@ void AI_TrySwitchOrUseItem(void) continue; if (monToSwitchId == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) continue; - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON - && monToSwitchId == (CalculateEnemyPartyCount()-1)) + if (IsAceMon(gActiveBattler, monToSwitchId)) continue; break; @@ -916,7 +928,7 @@ u8 GetMostSuitableMonToSwitchInto(void) s32 lastId = 0; // + 1 struct Pokemon *party; s32 i, j, aliveCount = 0; - u8 invalidMons = 0; + u32 invalidMons = 0, aceMonId = PARTY_SIZE; if (*(gBattleStruct->monToSwitchIntoId + gActiveBattler) != PARTY_SIZE) return *(gBattleStruct->monToSwitchIntoId + gActiveBattler); @@ -958,12 +970,19 @@ u8 GetMostSuitableMonToSwitchInto(void) || gBattlerPartyIndexes[battlerIn2] == i || i == *(gBattleStruct->monToSwitchIntoId + battlerIn1) || i == *(gBattleStruct->monToSwitchIntoId + battlerIn2) - || (GetMonAbility(&party[i]) == ABILITY_TRUANT && IsTruantMonVulnerable(gActiveBattler, opposingBattler)) // While not really invalid per say, not really wise to switch into this mon. - || ((AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON) - && i == (CalculateEnemyPartyCount() - 1))) //Save Ace Pokemon for last + || (GetMonAbility(&party[i]) == ABILITY_TRUANT && IsTruantMonVulnerable(gActiveBattler, opposingBattler))) // While not really invalid per say, not really wise to switch into this mon.) + { invalidMons |= gBitTable[i]; + } + else if (IsAceMon(gActiveBattler, i))// Save Ace Pokemon for last. + { + aceMonId = i; + invalidMons |= gBitTable[i]; + } else + { aliveCount++; + } } bestMonId = GetBestMonBatonPass(party, firstId, lastId, invalidMons, aliveCount); @@ -978,6 +997,11 @@ u8 GetMostSuitableMonToSwitchInto(void) if (bestMonId != PARTY_SIZE) return bestMonId; + // If ace mon is the last available Pokemon and U-Turn/Volt Switch was used - switch to the mon. + if (aceMonId != PARTY_SIZE + && (gBattleMoves[gLastUsedMove].effect == EFFECT_HIT_ESCAPE || gBattleMoves[gLastUsedMove].effect == EFFECT_PARTING_SHOT)) + return aceMonId; + return PARTY_SIZE; } diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index 531a4aa6b7..22e88aac4c 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -744,6 +744,10 @@ s32 AI_CalcDamage(u16 move, u8 battlerAtk, u8 battlerDef, u8 *typeEffectiveness, SetBattlerData(battlerDef); gBattleStruct->dynamicMoveType = 0; + + if (move == MOVE_NATURE_POWER) + move = GetNaturePowerMove(); + SetTypeBeforeUsingMove(move, battlerAtk); GET_MOVE_TYPE(move, moveType); @@ -802,6 +806,7 @@ s32 AI_CalcDamage(u16 move, u8 battlerAtk, u8 battlerDef, u8 *typeEffectiveness, } else { + effectivenessMultiplier = CalcTypeEffectivenessMultiplier(move, moveType, battlerAtk, battlerDef, FALSE); dmg = 0; } @@ -1166,7 +1171,7 @@ s32 AI_GetAbility(u32 battlerId) // We've had ability overwritten by e.g. Worry Seed. It is not part of AI_PARTY in case of switching if (gBattleStruct->overwrittenAbilities[battlerId]) return gBattleStruct->overwrittenAbilities[battlerId]; - + // The AI knows its own ability. if (IsBattlerAIControlled(battlerId)) return knownAbility; diff --git a/src/battle_anim.c b/src/battle_anim.c index a7faec1fda..724587588f 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -447,14 +447,14 @@ static u8 GetBattleAnimMoveTargets(u8 battlerArgIndex, u8 *targets) case MOVE_TARGET_FOES_AND_ALLY: targets[0] = gBattleAnimArgs[battlerArgIndex]; numTargets = 1; - + if (IsBattlerAlive(targets[0] ^ BIT_FLANK)) { targets[1] = targets[0] ^ BIT_FLANK; numTargets++; } - + if (IsBattlerAlive(gBattleAnimAttacker ^ BIT_FLANK)) { - targets[2] = gBattleAnimAttacker ^ BIT_FLANK; + targets[2] = gBattleAnimAttacker ^ BIT_FLANK; numTargets++; } break; @@ -463,14 +463,14 @@ static u8 GetBattleAnimMoveTargets(u8 battlerArgIndex, u8 *targets) numTargets = 1; break; } - + return numTargets; } static s16 GetSubpriorityForMoveAnim(u8 argVar) { s16 subpriority; - + if (argVar & ANIMSPRITE_IS_TARGET) { argVar ^= ANIMSPRITE_IS_TARGET; @@ -493,7 +493,7 @@ static s16 GetSubpriorityForMoveAnim(u8 argVar) if (subpriority < 3) subpriority = 3; - + return subpriority; } @@ -519,7 +519,7 @@ static void Cmd_createsprite(void) gBattleAnimArgs[i] = T1_READ_16(sBattleAnimScriptPtr); sBattleAnimScriptPtr += 2; } - + subpriority = GetSubpriorityForMoveAnim(argVar); CreateSpriteAndAnimate( @@ -536,22 +536,22 @@ static void CreateSpriteOnTargets(const struct SpriteTemplate *template, u8 argV u8 targets[MAX_BATTLERS_COUNT]; int ntargets; s16 subpriority; - + for (i = 0; i < argsCount; i++) { gBattleAnimArgs[i] = T1_READ_16(sBattleAnimScriptPtr); sBattleAnimScriptPtr += 2; } - + subpriority = GetSubpriorityForMoveAnim(argVar); - + ntargets = GetBattleAnimMoveTargets(battlerArgIndex, targets); - + for (i = 0; i < ntargets; i++) { - + if (overwriteAnimTgt) gBattleAnimArgs[battlerArgIndex] = targets[i]; - + CreateSpriteAndAnimate( template, GetBattlerSpriteCoord(targets[i], BATTLER_COORD_X_2), @@ -575,13 +575,13 @@ static void Cmd_createspriteontargets_onpos(void) argVar = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; - + battlerArgIndex = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; argsCount = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; - + CreateSpriteOnTargets(template, argVar, battlerArgIndex, argsCount, FALSE); } @@ -599,13 +599,13 @@ static void Cmd_createspriteontargets(void) argVar = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; - + battlerArgIndex = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; argsCount = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; - + CreateSpriteOnTargets(template, argVar, battlerArgIndex, argsCount, TRUE); } @@ -656,21 +656,21 @@ static void Cmd_createvisualtaskontargets(void) taskPriority = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; - + battlerArgIndex = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; numArgs = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; - + // copy task arguments for (i = 0; i < numArgs; i++) { gBattleAnimArgs[i] = T1_READ_16(sBattleAnimScriptPtr); sBattleAnimScriptPtr += 2; } - + numArgs = GetBattleAnimMoveTargets(battlerArgIndex, targets); - + for (i = 0; i < numArgs; i++) { gBattleAnimArgs[battlerArgIndex] = targets[i]; diff --git a/src/battle_anim_ice.c b/src/battle_anim_ice.c index 44c1a4f22c..e6a5607b5a 100644 --- a/src/battle_anim_ice.c +++ b/src/battle_anim_ice.c @@ -1289,7 +1289,7 @@ static void InitPoisonGasCloudAnim(struct Sprite *sprite) sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); - + #if B_UPDATED_MOVE_DATA >= GEN_5 { s16 x, y; diff --git a/src/battle_main.c b/src/battle_main.c index 5ec0937f09..bed8c3b422 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4964,6 +4964,9 @@ static void CheckChosenMoveForEffectsBeforeTurnStarts(void) case MOVE_BEAK_BLAST: BattleScriptExecute(BattleScript_BeakBlastSetUp); return; + case MOVE_SHELL_TRAP: + BattleScriptExecute(BattleScript_ShellTrapSetUp); + return; } } } diff --git a/src/battle_message.c b/src/battle_message.c index 6a301d9ee7..424b68a62a 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -774,6 +774,8 @@ static const u8 sText_StatWasHeightened[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s static const u8 sText_ElectricTerrainActivatedAbility[] = _("The Electric Terrain activated\n{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ABILITY}!"); static const u8 sText_AbilityWeakenedSurroundingMonsStat[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY}\nweakened the {B_BUFF1} of\lall surrounding Pokémon!\p"); static const u8 sText_AttackerGainedStrengthFromTheFallen[] = _("{B_ATK_NAME_WITH_PREFIX} gained strength\nfrom the fallen!"); +static const u8 sText_PrepareShellTrap[] = _("{B_ATK_NAME_WITH_PREFIX} set a shell trap!"); +static const u8 sText_ShellTrapDidntWork[] = _("{B_ATK_NAME_WITH_PREFIX}'s shell trap didn't work!"); const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = { @@ -800,6 +802,8 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = [STRINGID_ZMOVEHPTRAP - BATTLESTRINGS_TABLE_START] = sText_ZMoveHpSwitchInTrap, [STRINGID_PLAYERLOSTTOENEMYTRAINER - BATTLESTRINGS_TABLE_START] = sText_PlayerLostToEnemyTrainer, [STRINGID_PLAYERPAIDPRIZEMONEY - BATTLESTRINGS_TABLE_START] = sText_PlayerPaidPrizeMoney, + [STRINGID_SHELLTRAPDIDNTWORK - BATTLESTRINGS_TABLE_START] = sText_ShellTrapDidntWork, + [STRINGID_PREPARESHELLTRAP - BATTLESTRINGS_TABLE_START] = sText_PrepareShellTrap, [STRINGID_COURTCHANGE - BATTLESTRINGS_TABLE_START] = sText_CourtChange, [STRINGID_HEATUPBEAK - BATTLESTRINGS_TABLE_START] = sText_HeatingUpBeak, [STRINGID_METEORBEAMCHARGING - BATTLESTRINGS_TABLE_START] = sText_MeteorBeamCharging, diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index edcaaeb5c9..fb42339671 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -350,6 +350,7 @@ static bool32 CriticalCapture(u32 odds); static void BestowItem(u32 battlerAtk, u32 battlerDef); static bool8 IsFinalStrikeEffect(u16 move); static void TryUpdateRoundTurnOrder(void); +static bool32 ChangeOrderTargetAfterAttacker(void); static void Cmd_attackcanceler(void); static void Cmd_accuracycheck(void); @@ -5028,10 +5029,17 @@ static void Cmd_jumpifabilitypresent(void) { CMD_ARGS(u16 ability, const u8 *jumpInstr); - if (IsAbilityOnField(cmd->ability)) + u16 ability = cmd->ability; + u32 abilityBattler = IsAbilityOnField(ability); + if (abilityBattler) + { + gBattlerAbility = abilityBattler - 1; gBattlescriptCurrInstr = cmd->jumpInstr; + } else + { gBattlescriptCurrInstr = cmd->nextInstr; + } } static void Cmd_endselectionscript(void) @@ -5736,6 +5744,22 @@ static void Cmd_moveend(void) else gBattleStruct->lastMoveFailed &= ~(gBitTable[gBattlerAttacker]); + // Set ShellTrap to activate after the attacker's turn if target was hit by a physical move. + if (gBattleMoves[gChosenMoveByBattler[gBattlerTarget]].effect == EFFECT_SHELL_TRAP + && gBattlerTarget != gBattlerAttacker + && GetBattlerSide(gBattlerTarget) != GetBattlerSide(gBattlerAttacker) + && gProtectStructs[gBattlerTarget].physicalDmg + && gProtectStructs[gBattlerTarget].physicalBattlerId == gBattlerAttacker + && !TestSheerForceFlag(gBattlerAttacker, gCurrentMove)) + { + gProtectStructs[gBattlerTarget].shellTrap = TRUE; + // Change move order in double battles, so the hit mon with shell trap moves immediately after being hit. + if (IsDoubleBattle()) + { + ChangeOrderTargetAfterAttacker(); + } + } + if (gHitMarker & HITMARKER_SWAP_ATTACKER_TARGET) { gActiveBattler = gBattlerAttacker; @@ -5979,7 +6003,7 @@ static void Cmd_moveend(void) gBattleScripting.moveendState++; break; case MOVEEND_RED_CARD: - if (gBattleMoves[gCurrentMove].effect != EFFECT_HIT_SWITCH_TARGET + if ((gBattleMoves[gCurrentMove].effect != EFFECT_HIT_SWITCH_TARGET || gBattleStruct->hitSwitchTargetFailed) && IsBattlerAlive(gBattlerAttacker) && !TestSheerForceFlag(gBattlerAttacker, gCurrentMove) && GetBattlerAbility(gBattlerAttacker) != ABILITY_GUARD_DOG) @@ -6200,6 +6224,7 @@ static void Cmd_moveend(void) gBattleStruct->targetsDone[gBattlerAttacker] = 0; gProtectStructs[gBattlerAttacker].usesBouncedMove = FALSE; gProtectStructs[gBattlerAttacker].targetAffected = FALSE; + gProtectStructs[gBattlerAttacker].shellTrap = FALSE; gBattleStruct->ateBoost[gBattlerAttacker] = 0; gStatuses3[gBattlerAttacker] &= ~STATUS3_ME_FIRST; gSpecialStatuses[gBattlerAttacker].gemBoost = FALSE; @@ -6210,6 +6235,7 @@ static void Cmd_moveend(void) gBattleStruct->zmove.active = FALSE; gBattleStruct->zmove.toBeUsed[gBattlerAttacker] = MOVE_NONE; gBattleStruct->zmove.effect = EFFECT_HIT; + gBattleStruct->hitSwitchTargetFailed = FALSE; gBattleScripting.moveendState++; break; case MOVEEND_COUNT: @@ -6911,6 +6937,35 @@ static void SetDmgHazardsBattlescript(u8 battlerId, u8 multistringId) gBattlescriptCurrInstr = BattleScript_DmgHazardsOnFaintedBattler; } +bool32 DoSwitchInAbilitiesItems(u32 battlerId) +{ + return (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, battlerId, 0, 0, 0) + || (gBattleWeather & B_WEATHER_ANY && WEATHER_HAS_EFFECT && AbilityBattleEffects(ABILITYEFFECT_ON_WEATHER, battlerId, 0, 0, 0)) + || (gFieldStatuses & STATUS_FIELD_TERRAIN_ANY && AbilityBattleEffects(ABILITYEFFECT_ON_TERRAIN, battlerId, 0, 0, 0)) + || ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, battlerId, FALSE) + || AbilityBattleEffects(ABILITYEFFECT_TRACE2, 0, 0, 0, 0)); +} + +bool32 ShouldPostponeSwitchInAbilities(u32 battlerId) +{ + bool32 aliveOpposing1 = IsBattlerAlive(BATTLE_OPPOSITE(battlerId)); + bool32 aliveOpposing2 = IsBattlerAlive(BATTLE_PARTNER(BATTLE_OPPOSITE(battlerId))); + // No pokemon on opposing side - postpone. + if (!aliveOpposing1 && !aliveOpposing2) + return TRUE; + + // Checks for double battle, so abilities like Intimidate wait until all battlers are switched-in before activating. + if (IsDoubleBattle()) + { + if (aliveOpposing1 && !aliveOpposing2 && !HasNoMonsToSwitch(BATTLE_OPPOSITE(battlerId), PARTY_SIZE, PARTY_SIZE)) + return TRUE; + if (!aliveOpposing1 && aliveOpposing2 && !HasNoMonsToSwitch(BATTLE_PARTNER(BATTLE_OPPOSITE(battlerId)), PARTY_SIZE, PARTY_SIZE)) + return TRUE; + } + + return FALSE; +} + static void Cmd_switchineffects(void) { CMD_ARGS(u8 battler); @@ -7045,12 +7100,17 @@ static void Cmd_switchineffects(void) gDisableStructs[gActiveBattler].truantSwitchInHack = 0; - if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gActiveBattler, 0, 0, 0) - || (gBattleWeather & B_WEATHER_ANY && WEATHER_HAS_EFFECT && AbilityBattleEffects(ABILITYEFFECT_ON_WEATHER, gActiveBattler, 0, 0, 0)) - || (gFieldStatuses & STATUS_FIELD_TERRAIN_ANY && AbilityBattleEffects(ABILITYEFFECT_ON_TERRAIN, gActiveBattler, 0, 0, 0)) - || ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gActiveBattler, FALSE) - || AbilityBattleEffects(ABILITYEFFECT_TRACE2, 0, 0, 0, 0)) - return; + // Don't activate switch-in abilities if the opposing field is empty. + // This could happen when a mon uses explosion and causes everyone to faint. + if (ShouldPostponeSwitchInAbilities(gActiveBattler) || gBattleStruct->switchInAbilityPostponed) + { + gBattleStruct->switchInAbilityPostponed |= gBitTable[gActiveBattler]; + } + else + { + if (DoSwitchInAbilitiesItems(gActiveBattler)) + return; + } gSideStatuses[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED | SIDE_STATUS_TOXIC_SPIKES_DAMAGED | SIDE_STATUS_STEALTH_ROCK_DAMAGED | SIDE_STATUS_STICKY_WEB_DAMAGED); @@ -7076,6 +7136,7 @@ static void Cmd_switchineffects(void) gBattlerFainted++; } } + gBattleStruct->forcedSwitch &= ~(gBitTable[gActiveBattler]); gBattlescriptCurrInstr = cmd->nextInstr; } } @@ -8612,6 +8673,38 @@ static bool32 CanTeleport(u8 battlerId) return TRUE; } +// Return True if the order was changed, and false if the order was not changed(for example because the target would move after the attacker anyway). +static bool32 ChangeOrderTargetAfterAttacker(void) +{ + u32 i; + u8 data[MAX_BATTLERS_COUNT]; + + if (GetBattlerTurnOrderNum(gBattlerAttacker) > GetBattlerTurnOrderNum(gBattlerTarget) + || GetBattlerTurnOrderNum(gBattlerAttacker) + 1 == GetBattlerTurnOrderNum(gBattlerTarget)) + return FALSE; + + for (i = 0; i < gBattlersCount; i++) + data[i] = gBattlerByTurnOrder[i]; + if (GetBattlerTurnOrderNum(gBattlerAttacker) == 0 && GetBattlerTurnOrderNum(gBattlerTarget) == 2) + { + gBattlerByTurnOrder[1] = gBattlerTarget; + gBattlerByTurnOrder[2] = data[1]; + gBattlerByTurnOrder[3] = data[3]; + } + else if (GetBattlerTurnOrderNum(gBattlerAttacker) == 0 && GetBattlerTurnOrderNum(gBattlerTarget) == 3) + { + gBattlerByTurnOrder[1] = gBattlerTarget; + gBattlerByTurnOrder[2] = data[1]; + gBattlerByTurnOrder[3] = data[2]; + } + else // Attacker == 1, Target == 3 + { + gBattlerByTurnOrder[2] = gBattlerTarget; + gBattlerByTurnOrder[3] = data[2]; + } + return TRUE; +} + static void Cmd_various(void) { CMD_ARGS(u8 battler, u8 id); @@ -9803,7 +9896,7 @@ static void Cmd_various(void) && GetBattlerAbility(gBattlerTarget) != ABILITY_GUARD_DOG) { gBattleScripting.switchCase = B_SWITCH_HIT; - gBattlescriptCurrInstr = BattleScript_ForceRandomSwitch; + gBattlescriptCurrInstr = cmd->nextInstr; } else { @@ -9979,34 +10072,14 @@ static void Cmd_various(void) case VARIOUS_AFTER_YOU: { VARIOUS_ARGS(const u8 *failInstr); - if (GetBattlerTurnOrderNum(gBattlerAttacker) > GetBattlerTurnOrderNum(gBattlerTarget) - || GetBattlerTurnOrderNum(gBattlerAttacker) + 1 == GetBattlerTurnOrderNum(gBattlerTarget)) + if (ChangeOrderTargetAfterAttacker()) { - gBattlescriptCurrInstr = cmd->failInstr; + gSpecialStatuses[gBattlerTarget].afterYou = 1; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - for (i = 0; i < gBattlersCount; i++) - data[i] = gBattlerByTurnOrder[i]; - if (GetBattlerTurnOrderNum(gBattlerAttacker) == 0 && GetBattlerTurnOrderNum(gBattlerTarget) == 2) - { - gBattlerByTurnOrder[1] = gBattlerTarget; - gBattlerByTurnOrder[2] = data[1]; - gBattlerByTurnOrder[3] = data[3]; - } - else if (GetBattlerTurnOrderNum(gBattlerAttacker) == 0 && GetBattlerTurnOrderNum(gBattlerTarget) == 3) - { - gBattlerByTurnOrder[1] = gBattlerTarget; - gBattlerByTurnOrder[2] = data[1]; - gBattlerByTurnOrder[3] = data[2]; - } - else - { - gBattlerByTurnOrder[2] = gBattlerTarget; - gBattlerByTurnOrder[3] = data[2]; - } - gSpecialStatuses[gBattlerTarget].afterYou = 1; - gBattlescriptCurrInstr = cmd->nextInstr; + gBattlescriptCurrInstr = cmd->failInstr; } return; } @@ -11044,22 +11117,6 @@ static void Cmd_various(void) AbilityBattleEffects(ABILITYEFFECT_ON_TERRAIN, gActiveBattler, 0, 0, 0); return; } - case VARIOUS_JUMP_IF_NO_VALID_TARGETS: - { - VARIOUS_ARGS(const u8 *jumpInstr); - u32 count = 0; - - for (i = 0; i < gBattlersCount; i++) - { - if (GetBattlerSide(i) != GetBattlerSide(gBattlerAttacker) && IsBattlerAlive(i)) - count++; - } - if (count == 0) - gBattlescriptCurrInstr = cmd->jumpInstr; - else - gBattlescriptCurrInstr = cmd->nextInstr; - return; - } case VARIOUS_JUMP_IF_EMERGENCY_EXITED: { VARIOUS_ARGS(const u8 *jumpInstr); @@ -11078,6 +11135,22 @@ static void Cmd_various(void) gBattleStruct->storedHealingWish |= gBitTable[gActiveBattler]; break; } + case VARIOUS_HIT_SWITCH_TARGET_FAILED: + { + VARIOUS_ARGS(); + gBattleStruct->hitSwitchTargetFailed = TRUE; + gBattlescriptCurrInstr = cmd->nextInstr; + return; + } + case VARIOUS_JUMP_IF_SHELL_TRAP: + { + VARIOUS_ARGS(const u8 *jumpInstr); + if (gProtectStructs[gActiveBattler].shellTrap) + gBattlescriptCurrInstr = cmd->jumpInstr; + else + gBattlescriptCurrInstr = cmd->nextInstr; + return; + } case VARIOUS_TRY_TRAINER_SLIDE_MSG_Z_MOVE: { VARIOUS_ARGS(); @@ -11210,14 +11283,15 @@ static void Cmd_tryexplosion(void) { CMD_ARGS(); + u32 dampBattler; if (gBattleControllerExecFlags) return; - if ((gBattlerTarget = IsAbilityOnField(ABILITY_DAMP))) + if ((dampBattler = IsAbilityOnField(ABILITY_DAMP))) { // Failed, a battler has Damp gLastUsedAbility = ABILITY_DAMP; - RecordAbilityBattle(--gBattlerTarget, ABILITY_DAMP); + gBattlerTarget = --dampBattler; gBattlescriptCurrInstr = BattleScript_DampStopsExplosion; return; } @@ -11227,14 +11301,6 @@ static void Cmd_tryexplosion(void) BtlController_EmitHealthBarUpdate(BUFFER_A, INSTANT_HP_BAR_DROP); MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr = cmd->nextInstr; - - for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) - { - if (gBattlerTarget == gBattlerAttacker) - continue; - if (IsBattlerAlive(gBattlerTarget)) - break; - } } static void Cmd_setatkhptozero(void) @@ -12124,8 +12190,8 @@ static void Cmd_forcerandomswitch(void) s32 lastMonId = 0; // + 1 s32 monsCount; struct Pokemon *party = NULL; - s32 validMons = 0; - s32 minNeeded; + u8 validMons[PARTY_SIZE]; + s32 validMonsCount = 0; bool32 redCardForcedSwitch = FALSE; @@ -12182,7 +12248,6 @@ static void Cmd_forcerandomswitch(void) firstMonId = 0; lastMonId = 6; monsCount = 6; - minNeeded = 2; battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)]; } @@ -12201,7 +12266,6 @@ static void Cmd_forcerandomswitch(void) lastMonId = PARTY_SIZE / 2; } monsCount = PARTY_SIZE / 2; - minNeeded = 1; battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)]; } @@ -12219,7 +12283,6 @@ static void Cmd_forcerandomswitch(void) lastMonId = PARTY_SIZE / 2; } monsCount = PARTY_SIZE / 2; - minNeeded = 1; battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)]; } @@ -12230,7 +12293,6 @@ static void Cmd_forcerandomswitch(void) firstMonId = 0; lastMonId = PARTY_SIZE; monsCount = PARTY_SIZE; - minNeeded = 2; // since there are two opponents, it has to be a double battle } else { @@ -12245,7 +12307,6 @@ static void Cmd_forcerandomswitch(void) lastMonId = PARTY_SIZE / 2; } monsCount = PARTY_SIZE / 2; - minNeeded = 1; } battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)]; @@ -12255,7 +12316,6 @@ static void Cmd_forcerandomswitch(void) firstMonId = 0; lastMonId = PARTY_SIZE; monsCount = PARTY_SIZE; - minNeeded = 2; battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)]; } @@ -12264,7 +12324,6 @@ static void Cmd_forcerandomswitch(void) firstMonId = 0; lastMonId = PARTY_SIZE; monsCount = PARTY_SIZE; - minNeeded = 1; battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; // there is only one pokemon out in single battles battler1PartyId = gBattlerPartyIndexes[gBattlerTarget]; } @@ -12273,13 +12332,15 @@ static void Cmd_forcerandomswitch(void) { if (GetMonData(&party[i], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&party[i], MON_DATA_IS_EGG) - && GetMonData(&party[i], MON_DATA_HP) != 0) + && GetMonData(&party[i], MON_DATA_HP) != 0 + && i != battler1PartyId + && i != battler2PartyId) { - validMons++; + validMons[validMonsCount++] = i; } } - if (!redCardForcedSwitch && validMons <= minNeeded) + if (validMonsCount == 0) { gBattlescriptCurrInstr = cmd->failInstr; } @@ -12287,19 +12348,8 @@ static void Cmd_forcerandomswitch(void) { *(gBattleStruct->battlerPartyIndexes + gBattlerTarget) = gBattlerPartyIndexes[gBattlerTarget]; gBattlescriptCurrInstr = BattleScript_RoarSuccessSwitch; - - do - { - i = Random() % monsCount; - i += firstMonId; - } - while (i == battler2PartyId - || i == battler1PartyId - || GetMonData(&party[i], MON_DATA_SPECIES) == SPECIES_NONE - || GetMonData(&party[i], MON_DATA_IS_EGG) == TRUE - || GetMonData(&party[i], MON_DATA_HP) == 0); - - *(gBattleStruct->monToSwitchIntoId + gBattlerTarget) = i; + gBattleStruct->forcedSwitch |= gBitTable[gBattlerTarget]; + *(gBattleStruct->monToSwitchIntoId + gBattlerTarget) = validMons[Random() % validMonsCount]; if (!IsMultiBattle()) SwitchPartyOrder(gBattlerTarget); @@ -16077,6 +16127,17 @@ void BS_CalcMetalBurstDmg(void) } } +void BS_JumpIfMoreThanHalfHP(void) +{ + NATIVE_ARGS(u8 battler, const u8 *jumpInstr); + + u8 battler = GetBattlerForBattleScript(cmd->battler); + if (gBattleMons[battler].hp > (gBattleMons[battler].maxHP + 1) / 2) + gBattlescriptCurrInstr = cmd->jumpInstr; + else + gBattlescriptCurrInstr = cmd->nextInstr; +} + void BS_JumpIfHoldEffect(void) { u8 battler = gBattlescriptCurrInstr[5]; diff --git a/src/battle_util.c b/src/battle_util.c index 0283066b87..2183a4e2ff 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -948,7 +948,8 @@ void HandleAction_ActionFinished(void) u8 battler1 = gBattlerByTurnOrder[i]; u8 battler2 = gBattlerByTurnOrder[j]; - if (gProtectStructs[battler1].quash || gProtectStructs[battler2].quash) + if (gProtectStructs[battler1].quash || gProtectStructs[battler2].quash + || gProtectStructs[battler1].shellTrap || gProtectStructs[battler2].shellTrap) continue; // We recalculate order only for action of the same priority. If any action other than switch/move has been taken, they should @@ -3307,7 +3308,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void) return FALSE; } -#define FAINTED_ACTIONS_MAX_CASE 7 +#define FAINTED_ACTIONS_MAX_CASE 8 bool8 HandleFaintedMonActions(void) { @@ -3392,7 +3393,19 @@ bool8 HandleFaintedMonActions(void) else gBattleStruct->faintedActionsState = 4; break; - case 6: + case 6: // All battlers switch-in abilities happen here to prevent them happening against an empty field. + for (i = 0; i < gBattlersCount; i++) + { + if (gBattleStruct->switchInAbilityPostponed & gBitTable[i]) + { + if (DoSwitchInAbilitiesItems(i)) + return TRUE; + gBattleStruct->switchInAbilityPostponed &= ~(gBitTable[i]); + } + } + gBattleStruct->faintedActionsState++; + break; + case 7: if (ItemBattleEffects(ITEMEFFECT_NORMAL, 0, TRUE)) return TRUE; gBattleStruct->faintedActionsState++; @@ -4755,6 +4768,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move case ABILITY_INTIMIDATE: if (!gSpecialStatuses[battler].switchInAbilityDone) { + gBattlerAttacker = battler; gSpecialStatuses[battler].switchInAbilityDone = TRUE; SET_STATCHANGER(STAT_ATK, 1, TRUE); BattleScriptPushCursorAndCallback(BattleScript_IntimidateActivates); @@ -9843,7 +9857,17 @@ static u16 CalcTypeEffectivenessMultiplierInternal(u16 move, u8 moveType, u8 bat && gBattleMons[battlerDef].type3 != gBattleMons[battlerDef].type1) MulByTypeEffectiveness(&modifier, move, moveType, battlerDef, gBattleMons[battlerDef].type3, battlerAtk, recordAbilities); - if (moveType == TYPE_GROUND && !IsBattlerGrounded2(battlerDef, TRUE) && !(gBattleMoves[move].flags & FLAG_DMG_UNGROUNDED_IGNORE_TYPE_IF_FLYING)) + if (gBattleMoves[move].split == SPLIT_STATUS && move != MOVE_THUNDER_WAVE) + { + modifier = UQ_4_12(1.0); + #if B_GLARE_GHOST <= GEN_3 + if (move == MOVE_GLARE && IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST)) + { + modifier = UQ_4_12(0.0); + } + #endif + } + else if (moveType == TYPE_GROUND && !IsBattlerGrounded2(battlerDef, TRUE) && !(gBattleMoves[move].flags & FLAG_DMG_UNGROUNDED_IGNORE_TYPE_IF_FLYING)) { modifier = UQ_4_12(0.0); if (recordAbilities && defAbility == ABILITY_LEVITATE) @@ -9861,12 +9885,6 @@ static u16 CalcTypeEffectivenessMultiplierInternal(u16 move, u8 moveType, u8 bat modifier = UQ_4_12(0.0); } #endif -#if B_GLARE_GHOST >= GEN_4 - else if (move == MOVE_GLARE && IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST)) - { - modifier = UQ_4_12(1.0); - } -#endif // Thousand Arrows ignores type modifiers for flying mons if (!IsBattlerGrounded(battlerDef) && (gBattleMoves[move].flags & FLAG_DMG_UNGROUNDED_IGNORE_TYPE_IF_FLYING) diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index bf54142764..50e10d414d 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -4847,7 +4847,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_NATURE_POWER] = { .effect = EFFECT_NATURE_POWER, - .power = 0, + .power = 1, .type = TYPE_NORMAL, .accuracy = 0, .pp = 20, @@ -11613,7 +11613,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SHELL_TRAP] = { - .effect = EFFECT_PLACEHOLDER, // EFFECT_SHELL_TRAP, + .effect = EFFECT_SHELL_TRAP, .power = 150, .type = TYPE_FIRE, .accuracy = 100, diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 385460228b..1d67044169 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -800,9 +800,9 @@ const u32 gMonFrontPic_Mimikyu[] = INCBIN_U32("graphics/pokemon/mimikyu/front.4b const u32 gMonFrontPic_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/front.4bpp.lz"); const u32 gMonFrontPic_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/front.4bpp.lz"); const u32 gMonFrontPic_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/front.4bpp.lz"); -const u32 gMonFrontPic_Jangmoo[] = INCBIN_U32("graphics/pokemon/jangmo_o/front.4bpp.lz"); -const u32 gMonFrontPic_Hakamoo[] = INCBIN_U32("graphics/pokemon/hakamo_o/front.4bpp.lz"); -const u32 gMonFrontPic_Kommoo[] = INCBIN_U32("graphics/pokemon/kommo_o/front.4bpp.lz"); +const u32 gMonFrontPic_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/front.4bpp.lz"); +const u32 gMonFrontPic_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/front.4bpp.lz"); +const u32 gMonFrontPic_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/front.4bpp.lz"); const u32 gMonFrontPic_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/anim_front.4bpp.lz"); const u32 gMonFrontPic_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/anim_front.4bpp.lz"); const u32 gMonFrontPic_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/anim_front.4bpp.lz"); @@ -2012,9 +2012,9 @@ const u32 gMonBackPic_Mimikyu[] = INCBIN_U32("graphics/pokemon/mimikyu/back.4bpp const u32 gMonBackPic_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/back.4bpp.lz"); const u32 gMonBackPic_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/back.4bpp.lz"); const u32 gMonBackPic_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/back.4bpp.lz"); -const u32 gMonBackPic_Jangmoo[] = INCBIN_U32("graphics/pokemon/jangmo_o/back.4bpp.lz"); -const u32 gMonBackPic_Hakamoo[] = INCBIN_U32("graphics/pokemon/hakamo_o/back.4bpp.lz"); -const u32 gMonBackPic_Kommoo[] = INCBIN_U32("graphics/pokemon/kommo_o/back.4bpp.lz"); +const u32 gMonBackPic_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/back.4bpp.lz"); +const u32 gMonBackPic_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/back.4bpp.lz"); +const u32 gMonBackPic_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/back.4bpp.lz"); const u32 gMonBackPic_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/back.4bpp.lz"); const u32 gMonBackPic_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/back.4bpp.lz"); const u32 gMonBackPic_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/back.4bpp.lz"); @@ -3218,9 +3218,9 @@ const u32 gMonPalette_Mimikyu[] = INCBIN_U32("graphics/pokemon/mimikyu/normal.gb const u32 gMonPalette_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/normal.gbapal.lz"); const u32 gMonPalette_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/normal.gbapal.lz"); const u32 gMonPalette_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/normal.gbapal.lz"); -const u32 gMonPalette_Jangmoo[] = INCBIN_U32("graphics/pokemon/jangmo_o/normal.gbapal.lz"); -const u32 gMonPalette_Hakamoo[] = INCBIN_U32("graphics/pokemon/hakamo_o/normal.gbapal.lz"); -const u32 gMonPalette_Kommoo[] = INCBIN_U32("graphics/pokemon/kommo_o/normal.gbapal.lz"); +const u32 gMonPalette_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/normal.gbapal.lz"); +const u32 gMonPalette_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/normal.gbapal.lz"); +const u32 gMonPalette_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/normal.gbapal.lz"); const u32 gMonPalette_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/normal.gbapal.lz"); const u32 gMonPalette_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/normal.gbapal.lz"); const u32 gMonPalette_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/normal.gbapal.lz"); @@ -4451,9 +4451,9 @@ const u32 gMonShinyPalette_Mimikyu[] = INCBIN_U32("graphics/pokemon/mimikyu/shin const u32 gMonShinyPalette_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/shiny.gbapal.lz"); const u32 gMonShinyPalette_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/shiny.gbapal.lz"); const u32 gMonShinyPalette_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Jangmoo[] = INCBIN_U32("graphics/pokemon/jangmo_o/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Hakamoo[] = INCBIN_U32("graphics/pokemon/hakamo_o/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kommoo[] = INCBIN_U32("graphics/pokemon/kommo_o/shiny.gbapal.lz"); +const u32 gMonShinyPalette_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/shiny.gbapal.lz"); +const u32 gMonShinyPalette_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/shiny.gbapal.lz"); +const u32 gMonShinyPalette_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/shiny.gbapal.lz"); const u32 gMonShinyPalette_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/shiny.gbapal.lz"); const u32 gMonShinyPalette_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/shiny.gbapal.lz"); const u32 gMonShinyPalette_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/shiny.gbapal.lz"); @@ -5678,9 +5678,9 @@ const u8 gMonIcon_Mimikyu[] = INCBIN_U8("graphics/pokemon/mimikyu/icon.4bpp"); const u8 gMonIcon_Bruxish[] = INCBIN_U8("graphics/pokemon/bruxish/icon.4bpp"); const u8 gMonIcon_Drampa[] = INCBIN_U8("graphics/pokemon/drampa/icon.4bpp"); const u8 gMonIcon_Dhelmise[] = INCBIN_U8("graphics/pokemon/dhelmise/icon.4bpp"); -const u8 gMonIcon_Jangmoo[] = INCBIN_U8("graphics/pokemon/jangmo_o/icon.4bpp"); -const u8 gMonIcon_Hakamoo[] = INCBIN_U8("graphics/pokemon/hakamo_o/icon.4bpp"); -const u8 gMonIcon_Kommoo[] = INCBIN_U8("graphics/pokemon/kommo_o/icon.4bpp"); +const u8 gMonIcon_JangmoO[] = INCBIN_U8("graphics/pokemon/jangmo_o/icon.4bpp"); +const u8 gMonIcon_HakamoO[] = INCBIN_U8("graphics/pokemon/hakamo_o/icon.4bpp"); +const u8 gMonIcon_KommoO[] = INCBIN_U8("graphics/pokemon/kommo_o/icon.4bpp"); const u8 gMonIcon_TapuKoko[] = INCBIN_U8("graphics/pokemon/tapu_koko/icon.4bpp"); const u8 gMonIcon_TapuLele[] = INCBIN_U8("graphics/pokemon/tapu_lele/icon.4bpp"); const u8 gMonIcon_TapuBulu[] = INCBIN_U8("graphics/pokemon/tapu_bulu/icon.4bpp"); @@ -6891,9 +6891,9 @@ const u8 gMonFootprint_Mimikyu[] = INCBIN_U8("graphics/pokemon/mimikyu/footprint const u8 gMonFootprint_Bruxish[] = INCBIN_U8("graphics/pokemon/bruxish/footprint.1bpp"); const u8 gMonFootprint_Drampa[] = INCBIN_U8("graphics/pokemon/drampa/footprint.1bpp"); const u8 gMonFootprint_Dhelmise[] = INCBIN_U8("graphics/pokemon/dhelmise/footprint.1bpp"); -const u8 gMonFootprint_Jangmo_o[] = INCBIN_U8("graphics/pokemon/jangmo_o/footprint.1bpp"); -const u8 gMonFootprint_Hakamo_o[] = INCBIN_U8("graphics/pokemon/hakamo_o/footprint.1bpp"); -const u8 gMonFootprint_Kommo_o[] = INCBIN_U8("graphics/pokemon/kommo_o/footprint.1bpp"); +const u8 gMonFootprint_JangmoO[] = INCBIN_U8("graphics/pokemon/jangmo_o/footprint.1bpp"); +const u8 gMonFootprint_HakamoO[] = INCBIN_U8("graphics/pokemon/hakamo_o/footprint.1bpp"); +const u8 gMonFootprint_KommoO[] = INCBIN_U8("graphics/pokemon/kommo_o/footprint.1bpp"); const u8 gMonFootprint_Tapu_Koko[] = INCBIN_U8("graphics/pokemon/tapu_koko/footprint.1bpp"); const u8 gMonFootprint_Tapu_Lele[] = INCBIN_U8("graphics/pokemon/tapu_lele/footprint.1bpp"); const u8 gMonFootprint_Tapu_Bulu[] = INCBIN_U8("graphics/pokemon/tapu_bulu/footprint.1bpp"); diff --git a/src/data/pokemon/level_up_learnset_pointers.h b/src/data/pokemon/level_up_learnset_pointers.h index 0ecfa59ccf..9fa91ee232 100644 --- a/src/data/pokemon/level_up_learnset_pointers.h +++ b/src/data/pokemon/level_up_learnset_pointers.h @@ -789,9 +789,9 @@ const struct LevelUpMove *const gLevelUpLearnsets[NUM_SPECIES] = [SPECIES_BRUXISH] = sBruxishLevelUpLearnset, [SPECIES_DRAMPA] = sDrampaLevelUpLearnset, [SPECIES_DHELMISE] = sDhelmiseLevelUpLearnset, - [SPECIES_JANGMO_O] = sJangmooLevelUpLearnset, - [SPECIES_HAKAMO_O] = sHakamooLevelUpLearnset, - [SPECIES_KOMMO_O] = sKommooLevelUpLearnset, + [SPECIES_JANGMO_O] = sJangmoOLevelUpLearnset, + [SPECIES_HAKAMO_O] = sHakamoOLevelUpLearnset, + [SPECIES_KOMMO_O] = sKommoOLevelUpLearnset, [SPECIES_TAPU_KOKO] = sTapuKokoLevelUpLearnset, [SPECIES_TAPU_LELE] = sTapuLeleLevelUpLearnset, [SPECIES_TAPU_BULU] = sTapuBuluLevelUpLearnset, diff --git a/src/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets.h index f4ad3b5669..17af6b8888 100644 --- a/src/data/pokemon/level_up_learnsets.h +++ b/src/data/pokemon/level_up_learnsets.h @@ -15960,7 +15960,7 @@ static const struct LevelUpMove sDhelmiseLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sJangmooLevelUpLearnset[] = { +static const struct LevelUpMove sJangmoOLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_LEER), LEVEL_UP_MOVE( 9, MOVE_BIDE), @@ -15978,7 +15978,7 @@ static const struct LevelUpMove sJangmooLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sHakamooLevelUpLearnset[] = { +static const struct LevelUpMove sHakamoOLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SKY_UPPERCUT), LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT), LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), @@ -16003,7 +16003,7 @@ static const struct LevelUpMove sHakamooLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sKommooLevelUpLearnset[] = { +static const struct LevelUpMove sKommoOLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_CLANGING_SCALES), LEVEL_UP_MOVE( 1, MOVE_CLANGING_SCALES), LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT), diff --git a/src/data/pokemon/pokedex_entries.h b/src/data/pokemon/pokedex_entries.h index 4925382600..83b58c1d16 100644 --- a/src/data/pokemon/pokedex_entries.h +++ b/src/data/pokemon/pokedex_entries.h @@ -9396,7 +9396,7 @@ const struct PokedexEntry gPokedexEntries[] = .categoryName = _("Scaly"), .height = 6, .weight = 297, - .description = gJangmooPokedexText, + .description = gJangmoOPokedexText, .pokemonScale = 356, .pokemonOffset = 17, .trainerScale = 256, @@ -9408,7 +9408,7 @@ const struct PokedexEntry gPokedexEntries[] = .categoryName = _("Scaly"), .height = 12, .weight = 470, - .description = gHakamooPokedexText, + .description = gHakamoOPokedexText, .pokemonScale = 356, .pokemonOffset = 17, .trainerScale = 256, @@ -9420,7 +9420,7 @@ const struct PokedexEntry gPokedexEntries[] = .categoryName = _("Scaly"), .height = 16, .weight = 782, - .description = gKommooPokedexText, + .description = gKommoOPokedexText, .pokemonScale = 356, .pokemonOffset = 17, .trainerScale = 256, diff --git a/src/data/pokemon/pokedex_text.h b/src/data/pokemon/pokedex_text.h index 6048d21215..5e28a204be 100644 --- a/src/data/pokemon/pokedex_text.h +++ b/src/data/pokemon/pokedex_text.h @@ -4697,19 +4697,19 @@ const u8 gDhelmisePokedexText[] = _( "It maintains itself with new infusions of\n" "seabed detritus and seaweed."); -const u8 gJangmooPokedexText[] = _( +const u8 gJangmoOPokedexText[] = _( "It expresses its feelings by smacking its\n" "scales. Metallic sounds echo through the\n" "tall mountains where Jangmo-o live. They\n" "grow little by little battling one another."); -const u8 gHakamooPokedexText[] = _( +const u8 gHakamoOPokedexText[] = _( "It sheds and regrows its scales on a\n" "continuous basis. The scales become\n" "harder each time they're regrown. Its\n" "scaly punches tear its foes to shreds."); -const u8 gKommooPokedexText[] = _( +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" diff --git a/src/data/pokemon/teachable_learnset_pointers.h b/src/data/pokemon/teachable_learnset_pointers.h index 28998aae1a..31a39d516e 100644 --- a/src/data/pokemon/teachable_learnset_pointers.h +++ b/src/data/pokemon/teachable_learnset_pointers.h @@ -789,9 +789,9 @@ const u16 *const gTeachableLearnsets[NUM_SPECIES] = [SPECIES_BRUXISH] = sBruxishTeachableLearnset, [SPECIES_DRAMPA] = sDrampaTeachableLearnset, [SPECIES_DHELMISE] = sDhelmiseTeachableLearnset, - [SPECIES_JANGMO_O] = sJangmooTeachableLearnset, - [SPECIES_HAKAMO_O] = sHakamooTeachableLearnset, - [SPECIES_KOMMO_O] = sKommooTeachableLearnset, + [SPECIES_JANGMO_O] = sJangmoOTeachableLearnset, + [SPECIES_HAKAMO_O] = sHakamoOTeachableLearnset, + [SPECIES_KOMMO_O] = sKommoOTeachableLearnset, [SPECIES_TAPU_KOKO] = sTapuKokoTeachableLearnset, [SPECIES_TAPU_LELE] = sTapuLeleTeachableLearnset, [SPECIES_TAPU_BULU] = sTapuBuluTeachableLearnset, diff --git a/src/data/pokemon/teachable_learnsets.h b/src/data/pokemon/teachable_learnsets.h index 19b22d9b3d..6365af3b97 100644 --- a/src/data/pokemon/teachable_learnsets.h +++ b/src/data/pokemon/teachable_learnsets.h @@ -29414,7 +29414,7 @@ static const u16 sDhelmiseTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sJangmooTeachableLearnset[] = { +static const u16 sJangmoOTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -29445,7 +29445,7 @@ static const u16 sJangmooTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sHakamooTeachableLearnset[] = { +static const u16 sHakamoOTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -29475,7 +29475,7 @@ static const u16 sHakamooTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sKommooTeachableLearnset[] = { +static const u16 sKommoOTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, diff --git a/src/data/pokemon_graphics/back_pic_coordinates.h b/src/data/pokemon_graphics/back_pic_coordinates.h index 8dbc2d2a98..5593e10a79 100644 --- a/src/data/pokemon_graphics/back_pic_coordinates.h +++ b/src/data/pokemon_graphics/back_pic_coordinates.h @@ -518,7 +518,7 @@ const struct MonCoords gMonBackPicCoords[] = [SPECIES_DARKRAI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_SHAYMIN] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, [SPECIES_ARCEUS] = ARCEUS_BACK_PIC_COORDS, -#endif +#endif #if P_GEN_5_POKEMON == TRUE [SPECIES_VICTINI] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 7 }, [SPECIES_SNIVY] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, diff --git a/src/data/pokemon_graphics/back_pic_table.h b/src/data/pokemon_graphics/back_pic_table.h index ebe0c316f8..29eaeceede 100644 --- a/src/data/pokemon_graphics/back_pic_table.h +++ b/src/data/pokemon_graphics/back_pic_table.h @@ -789,9 +789,9 @@ const struct CompressedSpriteSheet gMonBackPicTable[] = SPECIES_SPRITE(BRUXISH, gMonBackPic_Bruxish), SPECIES_SPRITE(DRAMPA, gMonBackPic_Drampa), SPECIES_SPRITE(DHELMISE, gMonBackPic_Dhelmise), - SPECIES_SPRITE(JANGMO_O, gMonBackPic_Jangmoo), - SPECIES_SPRITE(HAKAMO_O, gMonBackPic_Hakamoo), - SPECIES_SPRITE(KOMMO_O, gMonBackPic_Kommoo), + SPECIES_SPRITE(JANGMO_O, gMonBackPic_JangmoO), + SPECIES_SPRITE(HAKAMO_O, gMonBackPic_HakamoO), + SPECIES_SPRITE(KOMMO_O, gMonBackPic_KommoO), SPECIES_SPRITE(TAPU_KOKO, gMonBackPic_TapuKoko), SPECIES_SPRITE(TAPU_LELE, gMonBackPic_TapuLele), SPECIES_SPRITE(TAPU_BULU, gMonBackPic_TapuBulu), diff --git a/src/data/pokemon_graphics/footprint_table.h b/src/data/pokemon_graphics/footprint_table.h index 2b0dd0a4f6..8e21b0604e 100644 --- a/src/data/pokemon_graphics/footprint_table.h +++ b/src/data/pokemon_graphics/footprint_table.h @@ -789,9 +789,9 @@ const u8 *const gMonFootprintTable[] = [SPECIES_BRUXISH] = gMonFootprint_Bruxish, [SPECIES_DRAMPA] = gMonFootprint_Drampa, [SPECIES_DHELMISE] = gMonFootprint_Dhelmise, - [SPECIES_JANGMO_O] = gMonFootprint_Jangmo_o, - [SPECIES_HAKAMO_O] = gMonFootprint_Hakamo_o, - [SPECIES_KOMMO_O] = gMonFootprint_Kommo_o, + [SPECIES_JANGMO_O] = gMonFootprint_JangmoO, + [SPECIES_HAKAMO_O] = gMonFootprint_HakamoO, + [SPECIES_KOMMO_O] = gMonFootprint_KommoO, [SPECIES_TAPU_KOKO] = gMonFootprint_Tapu_Koko, [SPECIES_TAPU_LELE] = gMonFootprint_Tapu_Lele, [SPECIES_TAPU_BULU] = gMonFootprint_Tapu_Bulu, diff --git a/src/data/pokemon_graphics/front_pic_coordinates.h b/src/data/pokemon_graphics/front_pic_coordinates.h index a484b85966..ca880e7efc 100644 --- a/src/data/pokemon_graphics/front_pic_coordinates.h +++ b/src/data/pokemon_graphics/front_pic_coordinates.h @@ -920,7 +920,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_OVERQWIL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_ENAMORUS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, #endif - // Megas + // Megas [SPECIES_VENUSAUR_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, [SPECIES_CHARIZARD_MEGA_X] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_CHARIZARD_MEGA_Y] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, @@ -974,11 +974,11 @@ const struct MonCoords gMonFrontPicCoords[] = #if P_GEN_6_POKEMON == TRUE [SPECIES_DIANCIE_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, #endif - // Special Mega + Primals + // Special Mega + Primals [SPECIES_RAYQUAZA_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_KYOGRE_PRIMAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_GROUDON_PRIMAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Alolan Forms + // Alolan Forms [SPECIES_RATTATA_ALOLAN] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, [SPECIES_RATICATE_ALOLAN] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, [SPECIES_RAICHU_ALOLAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, @@ -997,7 +997,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_MUK_ALOLAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, [SPECIES_EXEGGUTOR_ALOLAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_MAROWAK_ALOLAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - // Galarian Forms + // Galarian Forms [SPECIES_MEOWTH_GALARIAN] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PONYTA_GALARIAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, [SPECIES_RAPIDASH_GALARIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, @@ -1042,15 +1042,15 @@ const struct MonCoords gMonFrontPicCoords[] = #if P_GEN_7_POKEMON == TRUE [SPECIES_DECIDUEYE_HISUIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, #endif - // Misc Forms - // Cosplay Pikachu + // Misc Forms + // Cosplay Pikachu [SPECIES_PIKACHU_COSPLAY] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_ROCK_STAR] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_BELLE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_POP_STAR] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_PH_D] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_LIBRE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - // Cap Pikachu + // Cap Pikachu [SPECIES_PIKACHU_ORIGINAL_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_HOENN_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_SINNOH_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, @@ -1059,9 +1059,9 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_PIKACHU_ALOLA_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_PARTNER_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_WORLD_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - // Pichu + // Pichu [SPECIES_PICHU_SPIKY_EARED] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 14 }, - // Unown + // Unown [SPECIES_UNOWN_B] = { .size = MON_COORDS_SIZE(24, 32), .y_offset = 16 }, [SPECIES_UNOWN_C] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 16 }, [SPECIES_UNOWN_D] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 16 }, @@ -1089,40 +1089,40 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_UNOWN_Z] = { .size = MON_COORDS_SIZE(24, 32), .y_offset = 16 }, [SPECIES_UNOWN_EMARK] = { .size = MON_COORDS_SIZE(24, 40), .y_offset = 15 }, [SPECIES_UNOWN_QMARK] = { .size = MON_COORDS_SIZE(24, 40), .y_offset = 13 }, - // Castform + // Castform [SPECIES_CASTFORM_SUNNY] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, [SPECIES_CASTFORM_RAINY] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 9 }, [SPECIES_CASTFORM_SNOWY] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 8 }, - // Deoxys + // Deoxys [SPECIES_DEOXYS_ATTACK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_DEOXYS_DEFENSE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, [SPECIES_DEOXYS_SPEED] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, #if P_GEN_4_POKEMON == TRUE - // Burmy + // Burmy [SPECIES_BURMY_SANDY_CLOAK] = { .size = MON_COORDS_SIZE(32, 56), .y_offset = 12 }, [SPECIES_BURMY_TRASH_CLOAK] = { .size = MON_COORDS_SIZE(32, 56), .y_offset = 8 }, - // Wormadam + // Wormadam [SPECIES_WORMADAM_SANDY_CLOAK] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 10 }, [SPECIES_WORMADAM_TRASH_CLOAK] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 10 }, - // Cherrim + // Cherrim [SPECIES_CHERRIM_SUNSHINE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - // Shellos + // Shellos [SPECIES_SHELLOS_EAST_SEA] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - // Gastrodon + // Gastrodon [SPECIES_GASTRODON_EAST_SEA] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - // Rotom + // Rotom [SPECIES_ROTOM_HEAT] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, [SPECIES_ROTOM_WASH] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, [SPECIES_ROTOM_FROST] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, [SPECIES_ROTOM_FAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, [SPECIES_ROTOM_MOW] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 12 }, - // Origin Forme + // Origin Forme [SPECIES_DIALGA_ORIGIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_PALKIA_ORIGIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_GIRATINA_ORIGIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Shaymin + // Shaymin [SPECIES_SHAYMIN_SKY] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - // Arceus + // Arceus [SPECIES_ARCEUS_FIGHTING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_ARCEUS_FLYING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_ARCEUS_POISON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, @@ -1142,42 +1142,42 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_ARCEUS_FAIRY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, #endif #if P_GEN_5_POKEMON == TRUE - // Basculin + // Basculin [SPECIES_BASCULIN_BLUE_STRIPED] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 16 }, [SPECIES_BASCULIN_WHITE_STRIPED] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 10 }, - // Darmanitan + // Darmanitan [SPECIES_DARMANITAN_ZEN_MODE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, [SPECIES_DARMANITAN_ZEN_MODE_GALARIAN] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - // Deerling + // Deerling [SPECIES_DEERLING_SUMMER] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 11 }, [SPECIES_DEERLING_AUTUMN] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 11 }, [SPECIES_DEERLING_WINTER] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 11 }, - // Sawsbuck + // Sawsbuck [SPECIES_SAWSBUCK_SUMMER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_SAWSBUCK_AUTUMN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_SAWSBUCK_WINTER] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - // Therian Forms + // Therian Forms [SPECIES_TORNADUS_THERIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_THUNDURUS_THERIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, [SPECIES_LANDORUS_THERIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Kyurem + // Kyurem [SPECIES_KYUREM_WHITE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_KYUREM_BLACK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Keldeo + // Keldeo [SPECIES_KELDEO_RESOLUTE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - // Meloetta + // Meloetta [SPECIES_MELOETTA_PIROUETTE] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 2 }, - // Genesect + // Genesect [SPECIES_GENESECT_DOUSE_DRIVE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, [SPECIES_GENESECT_SHOCK_DRIVE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, [SPECIES_GENESECT_BURN_DRIVE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, [SPECIES_GENESECT_CHILL_DRIVE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, #endif #if P_GEN_6_POKEMON == TRUE - // Greninja + // Greninja [SPECIES_GRENINJA_BATTLE_BOND] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, [SPECIES_GRENINJA_ASH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Vivillon + // Vivillon [SPECIES_VIVILLON_POLAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_VIVILLON_TUNDRA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_VIVILLON_CONTINENTAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, @@ -1197,23 +1197,23 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_VIVILLON_JUNGLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_VIVILLON_FANCY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_VIVILLON_POKE_BALL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Flabébé + // Flabébé [SPECIES_FLABEBE_YELLOW_FLOWER] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, [SPECIES_FLABEBE_ORANGE_FLOWER] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, [SPECIES_FLABEBE_BLUE_FLOWER] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, [SPECIES_FLABEBE_WHITE_FLOWER] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - // Floette + // Floette [SPECIES_FLOETTE_YELLOW_FLOWER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, [SPECIES_FLOETTE_ORANGE_FLOWER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, [SPECIES_FLOETTE_BLUE_FLOWER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, [SPECIES_FLOETTE_WHITE_FLOWER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, [SPECIES_FLOETTE_ETERNAL_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - // Florges + // Florges [SPECIES_FLORGES_YELLOW_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_FLORGES_ORANGE_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_FLORGES_BLUE_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_FLORGES_WHITE_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Furfrou + // Furfrou [SPECIES_FURFROU_HEART_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, [SPECIES_FURFROU_STAR_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, [SPECIES_FURFROU_DIAMOND_TRIM] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, @@ -1223,41 +1223,41 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_FURFROU_LA_REINE_TRIM] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, [SPECIES_FURFROU_KABUKI_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, [SPECIES_FURFROU_PHARAOH_TRIM] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - // Meowstic + // Meowstic [SPECIES_MEOWSTIC_FEMALE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - // Aegislash + // Aegislash [SPECIES_AEGISLASH_BLADE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Pumpkaboo + // Pumpkaboo [SPECIES_PUMPKABOO_SMALL] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, [SPECIES_PUMPKABOO_LARGE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 12 }, [SPECIES_PUMPKABOO_SUPER] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - // Gourgeist + // Gourgeist [SPECIES_GOURGEIST_SMALL] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 5 }, [SPECIES_GOURGEIST_LARGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, [SPECIES_GOURGEIST_SUPER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Xerneas + // Xerneas [SPECIES_XERNEAS_ACTIVE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Zygarde + // Zygarde [SPECIES_ZYGARDE_10] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_ZYGARDE_COMPLETE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Hoopa + // Hoopa [SPECIES_HOOPA_UNBOUND] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, #endif #if P_GEN_7_POKEMON == TRUE - // Oricorio + // Oricorio [SPECIES_ORICORIO_POM_POM] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, [SPECIES_ORICORIO_PAU] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, [SPECIES_ORICORIO_SENSU] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - // Rockruff + // Rockruff [SPECIES_ROCKRUFF_OWN_TEMPO] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - // Lycanroc + // Lycanroc [SPECIES_LYCANROC_MIDNIGHT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, [SPECIES_LYCANROC_DUSK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - // Wishiwashi + // Wishiwashi [SPECIES_WISHIWASHI_SCHOOL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - // Silvally + // Silvally [SPECIES_SILVALLY_FIGHTING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_SILVALLY_FLYING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_SILVALLY_POISON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, @@ -1275,7 +1275,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_SILVALLY_DRAGON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_SILVALLY_DARK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_SILVALLY_FAIRY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Minior + // Minior [SPECIES_MINIOR_METEOR_ORANGE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, [SPECIES_MINIOR_METEOR_YELLOW] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, [SPECIES_MINIOR_METEOR_GREEN] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, @@ -1289,26 +1289,26 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_MINIOR_CORE_BLUE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, [SPECIES_MINIOR_CORE_INDIGO] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, [SPECIES_MINIOR_CORE_VIOLET] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - // Mimikyu + // Mimikyu [SPECIES_MIMIKYU_BUSTED] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - // Necrozma + // Necrozma [SPECIES_NECROZMA_DUSK_MANE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_NECROZMA_DAWN_WINGS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_NECROZMA_ULTRA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Magearna + // Magearna [SPECIES_MAGEARNA_ORIGINAL_COLOR] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, #endif #if P_GEN_8_POKEMON == TRUE - // Cramorant + // Cramorant [SPECIES_CRAMORANT_GULPING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_CRAMORANT_GORGING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Toxtricity + // Toxtricity [SPECIES_TOXTRICITY_LOW_KEY] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - // Sinistea + // Sinistea [SPECIES_SINISTEA_ANTIQUE] = { .size = MON_COORDS_SIZE(40, 32), .y_offset = 17 }, - // Polteageist + // Polteageist [SPECIES_POLTEAGEIST_ANTIQUE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - // Alcremie + // Alcremie [SPECIES_ALCREMIE_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, [SPECIES_ALCREMIE_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, [SPECIES_ALCREMIE_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, @@ -1317,28 +1317,28 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_ALCREMIE_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, [SPECIES_ALCREMIE_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, [SPECIES_ALCREMIE_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - // Eiscue + // Eiscue [SPECIES_EISCUE_NOICE_FACE] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 0 }, - // Indeedee + // Indeedee [SPECIES_INDEEDEE_FEMALE] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - // Morpeko + // Morpeko [SPECIES_MORPEKO_HANGRY] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 14 }, - // Zacian + // Zacian [SPECIES_ZACIAN_CROWNED_SWORD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Zamazenta + // Zamazenta [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - // Eternatus + // Eternatus [SPECIES_ETERNATUS_ETERNAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - // Urshifu + // Urshifu [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - // Zarude + // Zarude [SPECIES_ZARUDE_DADA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - // Calyrex + // Calyrex [SPECIES_CALYREX_ICE_RIDER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_CALYREX_SHADOW_RIDER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_ENAMORUS_THERIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, #endif - // Egg + // Egg [SPECIES_EGG] = { .size = MON_COORDS_SIZE(24, 24), .y_offset = 20 }, }; diff --git a/src/data/pokemon_graphics/front_pic_table.h b/src/data/pokemon_graphics/front_pic_table.h index 24ebc78f38..4530963af4 100644 --- a/src/data/pokemon_graphics/front_pic_table.h +++ b/src/data/pokemon_graphics/front_pic_table.h @@ -789,9 +789,9 @@ const struct CompressedSpriteSheet gMonFrontPicTable[] = SPECIES_SPRITE(BRUXISH, gMonFrontPic_Bruxish), SPECIES_SPRITE(DRAMPA, gMonFrontPic_Drampa), SPECIES_SPRITE(DHELMISE, gMonFrontPic_Dhelmise), - SPECIES_SPRITE(JANGMO_O, gMonFrontPic_Jangmoo), - SPECIES_SPRITE(HAKAMO_O, gMonFrontPic_Hakamoo), - SPECIES_SPRITE(KOMMO_O, gMonFrontPic_Kommoo), + SPECIES_SPRITE(JANGMO_O, gMonFrontPic_JangmoO), + SPECIES_SPRITE(HAKAMO_O, gMonFrontPic_HakamoO), + SPECIES_SPRITE(KOMMO_O, gMonFrontPic_KommoO), SPECIES_SPRITE(TAPU_KOKO, gMonFrontPic_TapuKoko), SPECIES_SPRITE(TAPU_LELE, gMonFrontPic_TapuLele), SPECIES_SPRITE(TAPU_BULU, gMonFrontPic_TapuBulu), diff --git a/src/data/pokemon_graphics/palette_table.h b/src/data/pokemon_graphics/palette_table.h index a8c986d795..7311dfd0b3 100644 --- a/src/data/pokemon_graphics/palette_table.h +++ b/src/data/pokemon_graphics/palette_table.h @@ -789,9 +789,9 @@ const struct CompressedSpritePalette gMonPaletteTable[] = SPECIES_PAL(BRUXISH, gMonPalette_Bruxish), SPECIES_PAL(DRAMPA, gMonPalette_Drampa), SPECIES_PAL(DHELMISE, gMonPalette_Dhelmise), - SPECIES_PAL(JANGMO_O, gMonPalette_Jangmoo), - SPECIES_PAL(HAKAMO_O, gMonPalette_Hakamoo), - SPECIES_PAL(KOMMO_O, gMonPalette_Kommoo), + SPECIES_PAL(JANGMO_O, gMonPalette_JangmoO), + SPECIES_PAL(HAKAMO_O, gMonPalette_HakamoO), + SPECIES_PAL(KOMMO_O, gMonPalette_KommoO), SPECIES_PAL(TAPU_KOKO, gMonPalette_TapuKoko), SPECIES_PAL(TAPU_LELE, gMonPalette_TapuLele), SPECIES_PAL(TAPU_BULU, gMonPalette_TapuBulu), diff --git a/src/data/pokemon_graphics/shiny_palette_table.h b/src/data/pokemon_graphics/shiny_palette_table.h index 012a95cf1f..5ad52f6dcb 100644 --- a/src/data/pokemon_graphics/shiny_palette_table.h +++ b/src/data/pokemon_graphics/shiny_palette_table.h @@ -789,9 +789,9 @@ const struct CompressedSpritePalette gMonShinyPaletteTable[] = SPECIES_SHINY_PAL(BRUXISH, gMonShinyPalette_Bruxish), SPECIES_SHINY_PAL(DRAMPA, gMonShinyPalette_Drampa), SPECIES_SHINY_PAL(DHELMISE, gMonShinyPalette_Dhelmise), - SPECIES_SHINY_PAL(JANGMO_O, gMonShinyPalette_Jangmoo), - SPECIES_SHINY_PAL(HAKAMO_O, gMonShinyPalette_Hakamoo), - SPECIES_SHINY_PAL(KOMMO_O, gMonShinyPalette_Kommoo), + SPECIES_SHINY_PAL(JANGMO_O, gMonShinyPalette_JangmoO), + SPECIES_SHINY_PAL(HAKAMO_O, gMonShinyPalette_HakamoO), + SPECIES_SHINY_PAL(KOMMO_O, gMonShinyPalette_KommoO), SPECIES_SHINY_PAL(TAPU_KOKO, gMonShinyPalette_TapuKoko), SPECIES_SHINY_PAL(TAPU_LELE, gMonShinyPalette_TapuLele), SPECIES_SHINY_PAL(TAPU_BULU, gMonShinyPalette_TapuBulu), @@ -1328,7 +1328,7 @@ const struct CompressedSpritePalette gMonShinyPaletteTable[] = SPECIES_SHINY_PAL(CALYREX_ICE_RIDER, gMonShinyPalette_CalyrexIceRider), SPECIES_SHINY_PAL(CALYREX_SHADOW_RIDER, gMonShinyPalette_CalyrexShadowRider), - + SPECIES_SHINY_PAL(ENAMORUS_THERIAN, gMonShinyPalette_CircledQuestionMark), //gMonShinyPalette_EnamorusTherian), #endif SPECIES_SHINY_PAL(EGG, gMonPalette_Egg), diff --git a/src/debug.c b/src/debug.c index 90081eb617..301bae51df 100644 --- a/src/debug.c +++ b/src/debug.c @@ -1255,7 +1255,7 @@ static void DebugAction_Util_Weather_SelectId(u8 taskId) if (gTasks[taskId].data[3] <= 15 || gTasks[taskId].data[3] >= 20) StringCopyPadded(gStringVar1, sWeatherNames[gTasks[taskId].data[3]], CHAR_SPACE, 30); else - StringCopyPadded(gStringVar1, sText_WeatherNotDefined, CHAR_SPACE, 30); + StringCopyPadded(gStringVar1, sText_WeatherNotDefined, CHAR_SPACE, 30); StringExpandPlaceholders(gStringVar4, sDebugText_Util_Weather_ID); AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); diff --git a/src/easy_chat.c b/src/easy_chat.c index d08ea4b33d..6595e0a108 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -230,7 +230,7 @@ enum { PALTAG_TRIANGLE_CURSOR, PALTAG_RECTANGLE_CURSOR, PALTAG_MISC_UI, - PALTAG_RS_INTERVIEW_FRAME, + PALTAG_RS_INTERVIEW_FRAME, }; enum { @@ -240,7 +240,7 @@ enum { GFXTAG_START_SELECT_BUTTONS, GFXTAG_MODE_WINDOW, GFXTAG_RS_INTERVIEW_FRAME, - GFXTAG_BUTTON_WINDOW, + GFXTAG_BUTTON_WINDOW, }; diff --git a/src/event_object_movement.c b/src/event_object_movement.c index ae48223c3a..e1a02e3ee5 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -499,7 +499,7 @@ static const struct SpritePalette sObjectEventSpritePalettes[] = { {gObjectEventPal_RubySapphireBrendan, OBJ_EVENT_PAL_TAG_RS_BRENDAN}, {gObjectEventPal_RubySapphireMay, OBJ_EVENT_PAL_TAG_RS_MAY}, #ifdef BUGFIX - {NULL, OBJ_EVENT_PAL_TAG_NONE}, + {NULL, OBJ_EVENT_PAL_TAG_NONE}, #else {}, // BUG: FindObjectEventPaletteIndexByTag looks for OBJ_EVENT_PAL_TAG_NONE and not 0x0. // If it's looking for a tag that isn't in this table, the game locks in an infinite loop. diff --git a/src/expansion_intro.c b/src/expansion_intro.c index 8fdb7c1cb8..e37ea4b2e6 100644 --- a/src/expansion_intro.c +++ b/src/expansion_intro.c @@ -33,10 +33,10 @@ #define DIZZY_ANIM_SPEED 4 #define DIZZY_STARS_SPEED 12 -enum +enum { EXPANSION_INTRO_BG2, - EXPANSION_INTRO_BG3 + EXPANSION_INTRO_BG3 }; enum diff --git a/src/field_specials.c b/src/field_specials.c index 3ae01543c3..3996b739ac 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1015,7 +1015,7 @@ static void PCTurnOnEffect(struct Task *task) if (task->tTimer == 6) { task->tTimer = 0; - + // Get where the PC should be, depending on where the player is looking. playerDirection = GetPlayerFacingDirection(); switch (playerDirection) @@ -1037,7 +1037,7 @@ static void PCTurnOnEffect(struct Task *task) // Update map PCTurnOnEffect_SetMetatile(task->tIsScreenOn, dx, dy); DrawWholeMapView(); - + // Screen flickers 5 times. Odd number and starting with the // screen off means the animation ends with the screen on. task->tIsScreenOn ^= 1; diff --git a/src/frontier_util.c b/src/frontier_util.c index 1863aa622e..0fe2c94ea0 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -497,7 +497,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ }, }; -static const u8 sBattlePointAwards[NUM_FRONTIER_FACILITIES][FRONTIER_MODE_COUNT][30] = +static const u8 sBattlePointAwards[NUM_FRONTIER_FACILITIES][FRONTIER_MODE_COUNT][30] = { /* facility, mode, tier */ [FRONTIER_FACILITY_TOWER] = /* Tier: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 */ diff --git a/src/mini_printf.c b/src/mini_printf.c index d96a9379a1..9fb4ecfac9 100644 --- a/src/mini_printf.c +++ b/src/mini_printf.c @@ -41,7 +41,7 @@ #ifndef NDEBUG -struct mini_buff +struct mini_buff { char *buffer, *pbuffer; u32 buffer_len; @@ -95,9 +95,9 @@ static s32 _putsAscii(char *s, s32 len, void *buf) s32 i; struct mini_buff *b; - if (!buf) + if (!buf) return len; - + b = buf; p0 = b->buffer; @@ -118,9 +118,9 @@ static s32 _putsEncoded(char *s, s32 len, void *buf) s32 i; struct mini_buff *b; - if (!buf) + if (!buf) return len; - + b = buf; p0 = b->buffer; @@ -159,7 +159,7 @@ static s32 mini_itoa(s32 value, u32 radix, s32 uppercase, bool32 unsig, char *bu } /* This builds the string back to front ... */ - do + do { s32 digit = value % radix; *(pbuffer++) = (digit < 10 ? '0' + digit : (uppercase ? 'A' : 'a') + digit - 10); @@ -243,7 +243,7 @@ s32 mini_vpprintf(void* buf, const char *fmt, va_list va) { len = 1; len = _putsAscii(&ch, len, buf); - } else + } else { char pad_char = ' '; s32 pad_to = 0; @@ -270,7 +270,7 @@ s32 mini_vpprintf(void* buf, const char *fmt, va_list va) ch=*(fmt++); } - switch (ch) + switch (ch) { case 0: goto end; diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 0758ea37d3..5e2e8a6562 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -815,9 +815,9 @@ const u8 *const gMonIconTable[] = [SPECIES_BRUXISH] = gMonIcon_Bruxish, [SPECIES_DRAMPA] = gMonIcon_Drampa, [SPECIES_DHELMISE] = gMonIcon_Dhelmise, - [SPECIES_JANGMO_O] = gMonIcon_Jangmoo, - [SPECIES_HAKAMO_O] = gMonIcon_Hakamoo, - [SPECIES_KOMMO_O] = gMonIcon_Kommoo, + [SPECIES_JANGMO_O] = gMonIcon_JangmoO, + [SPECIES_HAKAMO_O] = gMonIcon_HakamoO, + [SPECIES_KOMMO_O] = gMonIcon_KommoO, [SPECIES_TAPU_KOKO] = gMonIcon_TapuKoko, [SPECIES_TAPU_LELE] = gMonIcon_TapuLele, [SPECIES_TAPU_BULU] = gMonIcon_TapuBulu, diff --git a/src/rom_header_gf.c b/src/rom_header_gf.c index 118cc5e277..7b8822acc6 100644 --- a/src/rom_header_gf.c +++ b/src/rom_header_gf.c @@ -9,8 +9,8 @@ // The purpose of this struct is for outside applications to be // able to access parts of the ROM or its save file, like a public API. // In vanilla, it was used by Colosseum and XD to access pokemon graphics. -// -// If this struct is rearranged in any way, it defeats the purpose of +// +// If this struct is rearranged in any way, it defeats the purpose of // having it at all. Applications like PKHex or streaming HUDs may find // these values useful, so there's some potential benefit to keeping it. // If there's a compilation problem below, just comment out the assignment diff --git a/src/trade.c b/src/trade.c index 9186864fb3..1f9e688863 100644 --- a/src/trade.c +++ b/src/trade.c @@ -1281,7 +1281,7 @@ static void Leader_HandleCommunication(void) if (sTradeMenu->playerSelectStatus == STATUS_READY && sTradeMenu->partnerSelectStatus == STATUS_READY) { - // Both players have selected a pokemon to trade + // Both players have selected a pokemon to trade sTradeMenu->callbackId = CB_SET_SELECTED_MONS; sTradeMenu->linkData[0] = LINKCMD_SET_MONS_TO_TRADE; sTradeMenu->linkData[1] = sTradeMenu->cursorPosition; @@ -1900,7 +1900,7 @@ static void DrawSelectedMonScreen(u8 whichParty) StoreSpriteCallbackInData6(&gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]], SpriteCB_MonIcon); sTradeMenu->drawSelectedMonState[whichParty]++; Trade_MoveSelectedMonToTarget(&gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]]); - + CopyToBgTilemapBufferRect_ChangePalette(1, sTradePartyBoxTilemap, whichParty * 15, 0, 15, 17, 0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(0); diff --git a/test/ability_blaze.c b/test/ability_blaze.c index 259b863ec3..1e12c6b294 100644 --- a/test/ability_blaze.c +++ b/test/ability_blaze.c @@ -15,6 +15,6 @@ SINGLE_BATTLE_TEST("Blaze boosts Fire-type moves in a pinch", s16 damage) } SCENE { HP_BAR(opponent, captureDamage: &results[i].damage); } FINALLY { - EXPECT_GT(results[1].damage, results[0].damage); + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); } } diff --git a/test/ability_damp.c b/test/ability_damp.c index 33d1ae466a..c473660f5c 100644 --- a/test/ability_damp.c +++ b/test/ability_damp.c @@ -19,6 +19,26 @@ SINGLE_BATTLE_TEST("Damp prevents explosion-like moves from enemies") } } +DOUBLE_BATTLE_TEST("Damp prevents explosion-like moves from enemies in a double battle") +{ + u32 move; + PARAMETRIZE { move = MOVE_EXPLOSION; } + PARAMETRIZE { move = MOVE_SELF_DESTRUCT; } + PARAMETRIZE { move = MOVE_MIND_BLOWN; } + PARAMETRIZE { move = MOVE_MISTY_EXPLOSION; } + GIVEN { + PLAYER(SPECIES_PARAS) { Ability(ABILITY_DAMP); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponentLeft, move); } + } SCENE { + ABILITY_POPUP(playerLeft, ABILITY_DAMP); + NONE_OF { HP_BAR(playerLeft); HP_BAR(opponentLeft); HP_BAR(playerRight); HP_BAR(opponentRight); } + } +} + SINGLE_BATTLE_TEST("Damp prevents explosion-like moves from self") { u32 move; diff --git a/test/ability_download.c b/test/ability_download.c new file mode 100644 index 0000000000..132c0eb5ba --- /dev/null +++ b/test/ability_download.c @@ -0,0 +1,95 @@ +#include "global.h" +#include "test_battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TRI_ATTACK].split == SPLIT_SPECIAL); +} + +SINGLE_BATTLE_TEST("Download raises Attack if player has lower Def than Sp.Def", s16 damage) +{ + u32 ability; + PARAMETRIZE { ability = ABILITY_TRACE; } + PARAMETRIZE { ability = ABILITY_DOWNLOAD; } + GIVEN { + PLAYER(SPECIES_WOBBUFFET) {Defense(100); SpDefense(200); }; + OPPONENT(SPECIES_PORYGON) { Ability(ability); Attack(100); }; + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + if (ability == ABILITY_DOWNLOAD) + { + ABILITY_POPUP(opponent, ABILITY_DOWNLOAD); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Porygon's Download raised its attack!"); + } + HP_BAR(player, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} + +SINGLE_BATTLE_TEST("Download raises Sp.Attack if enemy has lower Sp.Def than Def", s16 damage) +{ + u32 ability; + PARAMETRIZE { ability = ABILITY_TRACE; } + PARAMETRIZE { ability = ABILITY_DOWNLOAD; } + GIVEN { + PLAYER(SPECIES_PORYGON) { Ability(ability); SpAttack(100); }; + OPPONENT(SPECIES_WOBBUFFET) {Defense(200); SpDefense(100); }; + } WHEN { + TURN { MOVE(player, MOVE_TRI_ATTACK); } + } SCENE { + if (ability == ABILITY_DOWNLOAD) + { + ABILITY_POPUP(player, ABILITY_DOWNLOAD); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Porygon's Download raised its sp. attack!"); + } + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} + +SINGLE_BATTLE_TEST("Download doesn't activate if target hasn't been sent out yet", s16 damagePhysical, s16 damageSpecial) +{ + u32 ability; + PARAMETRIZE { ability = ABILITY_TRACE; } + PARAMETRIZE { ability = ABILITY_DOWNLOAD; } + GIVEN { + ASSUME(gBattleMoves[MOVE_EXPLOSION].effect == EFFECT_EXPLOSION); + PLAYER(SPECIES_WOBBUFFET) { Speed(100); }; + PLAYER(SPECIES_PORYGON) { Ability(ability); Defense(400); SpDefense(300); Speed(300); Attack(100); }; + OPPONENT(SPECIES_WOBBUFFET) { HP(1); Speed(100); }; + OPPONENT(SPECIES_PORYGON2) { Ability(ability); Defense(100); SpDefense(200); Speed(200); }; + } WHEN { + TURN { MOVE(player, MOVE_EXPLOSION); SEND_OUT(player, 1); SEND_OUT(opponent, 1); } + TURN { MOVE(player, MOVE_TACKLE); MOVE(opponent, MOVE_TRI_ATTACK);} + } SCENE { + HP_BAR(player, hp: 0); + ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, player); + // Everyone faints. + + MESSAGE("Go! Porygon!"); + MESSAGE("2 sent out Porygon2!"); + + if (ability == ABILITY_DOWNLOAD) + { + ABILITY_POPUP(player, ABILITY_DOWNLOAD); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Porygon's Download raised its attack!"); + ABILITY_POPUP(opponent, ABILITY_DOWNLOAD); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Porygon2's Download raised its sp. attack!"); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); + HP_BAR(opponent, captureDamage: &results[i].damagePhysical); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TRI_ATTACK, opponent); + HP_BAR(player, captureDamage: &results[i].damageSpecial); + } FINALLY { + EXPECT_MUL_EQ(results[0].damagePhysical, Q_4_12(1.5), results[1].damagePhysical); + EXPECT_MUL_EQ(results[0].damageSpecial, Q_4_12(1.5), results[1].damageSpecial); + } +} diff --git a/test/ability_insomnia.c b/test/ability_insomnia.c index b9fe387532..9398bd30ab 100644 --- a/test/ability_insomnia.c +++ b/test/ability_insomnia.c @@ -11,7 +11,7 @@ SINGLE_BATTLE_TEST("Insomnia prevents sleep") TURN { MOVE(opponent, MOVE_SPORE); } } SCENE { ABILITY_POPUP(player, ABILITY_INSOMNIA); - NONE_OF { + NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponent); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); STATUS_ICON(player, sleep: TRUE); @@ -31,7 +31,7 @@ SINGLE_BATTLE_TEST("Insomnia prevents yawn") TURN { } } SCENE { ABILITY_POPUP(player, ABILITY_INSOMNIA); - NONE_OF { + NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_YAWN, opponent); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); STATUS_ICON(player, sleep: TRUE); @@ -49,7 +49,7 @@ SINGLE_BATTLE_TEST("Insomnia prevents rest") TURN { MOVE(player, MOVE_REST); } } SCENE { ABILITY_POPUP(player, ABILITY_INSOMNIA); - NONE_OF { + NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_REST, player); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); STATUS_ICON(player, sleep: TRUE); diff --git a/test/ability_intimidate.c b/test/ability_intimidate.c index 450ca64029..f978b80ab0 100644 --- a/test/ability_intimidate.c +++ b/test/ability_intimidate.c @@ -20,7 +20,11 @@ SINGLE_BATTLE_TEST("Intimidate (opponent) lowers player's attack after switch ou TURN { MOVE(player, MOVE_TACKLE); } } SCENE { if (ability == ABILITY_INTIMIDATE) + { ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Foe Staraptor's Intimidate cuts Wobbuffet's ATTACK!"); + } HP_BAR(opponent, captureDamage: &results[i].damage); } FINALLY { EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); @@ -30,21 +34,64 @@ SINGLE_BATTLE_TEST("Intimidate (opponent) lowers player's attack after switch ou SINGLE_BATTLE_TEST("Intimidate (opponent) lowers player's attack after KO", s16 damage) { u32 ability; - KNOWN_FAILING; PARAMETRIZE { ability = ABILITY_INTIMIDATE; } PARAMETRIZE { ability = ABILITY_RECKLESS; } GIVEN { PLAYER(SPECIES_WOBBUFFET) { Speed(2); }; OPPONENT(SPECIES_WOBBUFFET) { HP(1); Speed(1); }; - OPPONENT(SPECIES_STARAPTOR) { Ability(ABILITY_INTIMIDATE); Speed(1); }; + OPPONENT(SPECIES_STARAPTOR) { Ability(ability); Speed(1); }; } WHEN { TURN { MOVE(player, MOVE_TACKLE); SEND_OUT(opponent, 1); } TURN { MOVE(player, MOVE_TACKLE); } } SCENE { + HP_BAR(opponent); if (ability == ABILITY_INTIMIDATE) + { ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Foe Staraptor's Intimidate cuts Wobbuffet's ATTACK!"); + } HP_BAR(opponent, captureDamage: &results[i].damage); } FINALLY { EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); } } + +DOUBLE_BATTLE_TEST("Intimidate doesn't activate on an empty field in a double battle") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_EXPLOSION].effect == EFFECT_EXPLOSION); + PLAYER(SPECIES_WOBBUFFET) { }; + PLAYER(SPECIES_WOBBUFFET) { HP(1); }; + PLAYER(SPECIES_STARAVIA) { Ability(ABILITY_INTIMIDATE); }; + PLAYER(SPECIES_ABRA); + OPPONENT(SPECIES_WOBBUFFET) { HP(1); }; + OPPONENT(SPECIES_WOBBUFFET) { HP(1); }; + OPPONENT(SPECIES_STARAPTOR) { Ability(ABILITY_INTIMIDATE); }; + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(playerLeft, MOVE_EXPLOSION); SEND_OUT(playerLeft, 2); SEND_OUT(opponentLeft, 2); SEND_OUT(playerRight, 3); SEND_OUT(opponentRight, 3); } + TURN { MOVE(playerLeft, MOVE_CELEBRATE);} + } SCENE { + HP_BAR(playerLeft, hp: 0); + ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, playerLeft); + // Everyone faints. + + MESSAGE("Go! Staravia!"); + MESSAGE("2 sent out Staraptor!"); + MESSAGE("Go! Abra!"); + MESSAGE("2 sent out Wynaut!"); + + ABILITY_POPUP(playerLeft, ABILITY_INTIMIDATE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); + MESSAGE("Staravia's Intimidate cuts Foe Staraptor's ATTACK!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); + MESSAGE("Staravia's Intimidate cuts Foe Wynaut's ATTACK!"); + + ABILITY_POPUP(opponentLeft, ABILITY_INTIMIDATE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); + MESSAGE("Foe Staraptor's Intimidate cuts Staravia's ATTACK!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); + MESSAGE("Foe Staraptor's Intimidate cuts Abra's ATTACK!"); + } +} diff --git a/test/ability_overgrow.c b/test/ability_overgrow.c new file mode 100644 index 0000000000..82d8dd467e --- /dev/null +++ b/test/ability_overgrow.c @@ -0,0 +1,20 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Overgrow boosts Grass-type moves in a pinch", s16 damage) +{ + u16 hp; + PARAMETRIZE { hp = 99; } + PARAMETRIZE { hp = 33; } + GIVEN { + ASSUME(gBattleMoves[MOVE_VINE_WHIP].type == TYPE_GRASS); + PLAYER(SPECIES_BULBASAUR) { Ability(ABILITY_OVERGROW); MaxHP(99); HP(hp); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_VINE_WHIP); } + } SCENE { + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} diff --git a/test/ability_swarm.c b/test/ability_swarm.c new file mode 100644 index 0000000000..7709e976ea --- /dev/null +++ b/test/ability_swarm.c @@ -0,0 +1,20 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Swarm boosts Bug-type moves in a pinch", s16 damage) +{ + u16 hp; + PARAMETRIZE { hp = 99; } + PARAMETRIZE { hp = 33; } + GIVEN { + ASSUME(gBattleMoves[MOVE_BUG_BITE].type == TYPE_BUG); + PLAYER(SPECIES_LEDYBA) { Ability(ABILITY_SWARM); MaxHP(99); HP(hp); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_BUG_BITE); } + } SCENE { + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} diff --git a/test/ability_torrent.c b/test/ability_torrent.c new file mode 100644 index 0000000000..e5c701775d --- /dev/null +++ b/test/ability_torrent.c @@ -0,0 +1,20 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Torrent boosts Water-type moves in a pinch", s16 damage) +{ + u16 hp; + PARAMETRIZE { hp = 99; } + PARAMETRIZE { hp = 33; } + GIVEN { + ASSUME(gBattleMoves[MOVE_BUBBLE].type == TYPE_WATER); + PLAYER(SPECIES_SQUIRTLE) { Ability(ABILITY_TORRENT); MaxHP(99); HP(hp); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_BUBBLE); } + } SCENE { + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} diff --git a/test/ability_volt_absorb.c b/test/ability_volt_absorb.c index f485f65574..bef35e2b4b 100644 --- a/test/ability_volt_absorb.c +++ b/test/ability_volt_absorb.c @@ -63,6 +63,30 @@ SINGLE_BATTLE_TEST("Volt Absorb is only triggered once on multi strike moves") } } +DOUBLE_BATTLE_TEST("Volt Absorb does not stop Electric Typed Explosion from damaging other pokemon", s16 damage1, s16 damage2) // Fixed issue #1961 +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_EXPLOSION].effect == EFFECT_EXPLOSION); + ASSUME(gBattleMoves[MOVE_EXPLOSION].type == TYPE_NORMAL); + PLAYER(SPECIES_JOLTEON) { Ability(ABILITY_VOLT_ABSORB); HP(1); MaxHP(TEST_MAX_HP); } + PLAYER(SPECIES_ABRA); + OPPONENT(SPECIES_GRAVELER_ALOLAN) { Ability(ABILITY_GALVANIZE); } + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_EXPLOSION); } + } SCENE { + ABILITY_POPUP(playerLeft, ABILITY_VOLT_ABSORB); + HP_BAR(playerLeft, hp: TEST_MAX_HP / 4 + 1); + MESSAGE("Jolteon restored HP using its Volt Absorb!"); + HP_BAR(playerRight, captureDamage: &results->damage1); + HP_BAR(opponentRight, captureDamage: &results->damage2); + } + FINALLY { + EXPECT_NE(results[0].damage1, 0); + EXPECT_NE(results[0].damage2, 0); + } +} + SINGLE_BATTLE_TEST("Volt Absorb prevents Cell Battery from activating") { GIVEN { @@ -75,11 +99,11 @@ SINGLE_BATTLE_TEST("Volt Absorb prevents Cell Battery from activating") ABILITY_POPUP(player, ABILITY_VOLT_ABSORB); HP_BAR(player, hp: TEST_MAX_HP / 4 + 1); MESSAGE("Jolteon restored HP using its Volt Absorb!"); - NONE_OF { + NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Using Cell Battery, the attack of Jolteon rose!"); } - + } } diff --git a/test/ability_water_absorb.c b/test/ability_water_absorb.c index 1748ee7ff5..aaaa149ace 100644 --- a/test/ability_water_absorb.c +++ b/test/ability_water_absorb.c @@ -78,10 +78,10 @@ SINGLE_BATTLE_TEST("Water Absorb prevents Items from activating") ABILITY_POPUP(player, ABILITY_WATER_ABSORB); HP_BAR(player, hp: TEST_MAX_HP / 4 + 1); MESSAGE("Poliwag restored HP using its Water Absorb!"); - NONE_OF { + NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } - + } } diff --git a/test/hold_effect_red_card.c b/test/hold_effect_red_card.c new file mode 100644 index 0000000000..c32c489d5a --- /dev/null +++ b/test/hold_effect_red_card.c @@ -0,0 +1,378 @@ +#include "global.h" +#include "test_battle.h" + +ASSUMPTIONS +{ + ASSUME(gItems[ITEM_RED_CARD].holdEffect == HOLD_EFFECT_RED_CARD); +} + +SINGLE_BATTLE_TEST("Red Card switches the attacker with a random non-fainted replacement") +{ + PASSES_RANDOMLY(1, 2); + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_BULBASAUR); + OPPONENT(SPECIES_CHARMANDER); + OPPONENT(SPECIES_SQUIRTLE) { HP(0); } + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Foe Bulbasaur was dragged out!"); + } +} + +DOUBLE_BATTLE_TEST("Red Card switches the target with a random non-battler, non-fainted replacement") +{ + PASSES_RANDOMLY(1, 2); + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + OPPONENT(SPECIES_BULBASAUR); + OPPONENT(SPECIES_CHARMANDER); + OPPONENT(SPECIES_SQUIRTLE) { HP(0); } + } WHEN { + TURN { MOVE(opponentLeft, MOVE_TACKLE, target: playerLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerLeft); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Foe Bulbasaur was dragged out!"); + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if holder faints") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(1); Item(ITEM_RED_CARD); } + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); SEND_OUT(player, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if target is behind a Substitute") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(player, MOVE_SUBSTITUTE); MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } + } +} + +SINGLE_BATTLE_TEST("Red Card activates after the last hit of a multi-hit move") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_DOUBLE_KICK); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DOUBLE_KICK, opponent); + HP_BAR(player); + HP_BAR(player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if no replacements") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if replacements fainted") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT) { HP(0); } + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if knocked off") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_KNOCK_OFF); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_KNOCK_OFF, opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if stolen by a move") +{ + u32 item; + bool32 activate; + PARAMETRIZE { item = ITEM_NONE; activate = FALSE; } + PARAMETRIZE { item = ITEM_POTION; activate = TRUE; } + ASSUME(gBattleMoves[MOVE_THIEF].effect == EFFECT_THIEF); + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET) { Item(item); } + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_THIEF); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_THIEF, opponent); + if (activate) { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } else { + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } + } + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if stolen by Magician") +{ + u32 item; + bool32 activate; + PARAMETRIZE { item = ITEM_NONE; activate = FALSE; } + PARAMETRIZE { item = ITEM_POTION; activate = TRUE; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_FENNEKIN) { Ability(ABILITY_MAGICIAN); Item(item); } + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + if (activate) { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Fennekin!"); + } else { + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Fennekin!"); + } + } + } +} + +DOUBLE_BATTLE_TEST("Red Card activates for only the fastest target") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Speed(3); Item(ITEM_RED_CARD); } + PLAYER(SPECIES_WYNAUT) { Speed(2); Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(5); } + OPPONENT(SPECIES_WYNAUT) { Speed(4); } + OPPONENT(SPECIES_UNOWN) { Speed(1); } + } WHEN { + TURN { + MOVE(opponentLeft, MOVE_ROCK_SLIDE); + MOVE(opponentRight, MOVE_TACKLE, target: playerRight); + } + } SCENE { + // Fastest target's Red Card activates. + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROCK_SLIDE, opponentLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerLeft); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Foe Unown was dragged out!"); + + // Slower target's Red Card still able to activate on other battler. + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerRight); + MESSAGE("Wynaut held up its Red Card against Foe Wynaut!"); + MESSAGE("Foe Wobbuffet was dragged out!"); + } +} + +DOUBLE_BATTLE_TEST("Red Card activates but fails if the attacker is rooted") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + OPPONENT(SPECIES_UNOWN); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_INGRAIN); } + TURN { + MOVE(opponentLeft, MOVE_TACKLE, target: playerLeft); + MOVE(opponentRight, MOVE_TACKLE, target: playerLeft); + } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerLeft); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Foe Wobbuffet anchored itself with its roots!"); + + // Red Card already consumed so cannot activate. + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerRight); + MESSAGE("Wynaut held up its Red Card against Foe Wynaut!"); + } + } +} + +DOUBLE_BATTLE_TEST("Red Card activates but fails if the attacker has Suction Cups") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_OCTILLERY) { Ability(ABILITY_SUCTION_CUPS); } + OPPONENT(SPECIES_WYNAUT); + OPPONENT(SPECIES_UNOWN); + } WHEN { + TURN { + MOVE(opponentLeft, MOVE_TACKLE, target: playerLeft); + MOVE(opponentRight, MOVE_TACKLE, target: playerLeft); + } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerLeft); + MESSAGE("Wobbuffet held up its Red Card against Foe Octillery!"); + MESSAGE("Foe Octillery anchors itself with Suction Cups!"); + + // Red Card already consumed so cannot activate. + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerRight); + MESSAGE("Wynaut held up its Red Card against Foe Wynaut!"); + } + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if switched by Dragon Tail") +{ + bool32 hasWynaut, activate; + PARAMETRIZE { hasWynaut = TRUE; activate = FALSE; } + PARAMETRIZE { hasWynaut = FALSE; activate = TRUE; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + if (hasWynaut) PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_DRAGON_TAIL); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_TAIL, opponent); + if (activate) { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } else { + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } + } + } +} + +SINGLE_BATTLE_TEST("Red Card activates and overrides U-turn") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_U_TURN); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_U_TURN, opponent); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if attacker's Sheer Force applied") +{ + u32 move; + bool32 activate; + PARAMETRIZE { move = MOVE_TACKLE; activate = TRUE; } + PARAMETRIZE { move = MOVE_STOMP; activate = FALSE; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_TAUROS) { Ability(ABILITY_SHEER_FORCE); } + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, move); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, move, opponent); + if (activate) { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Tauros!"); + } else { + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Tauros!"); + } + } + } +} + +SINGLE_BATTLE_TEST("Red Card activates before Emergency Exit") +{ + GIVEN { + PLAYER(SPECIES_GOLISOPOD) { MaxHP(100); HP(51); Item(ITEM_RED_CARD); } + PLAYER(SPECIES_WIMPOD); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); SEND_OUT(player, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Golisopod held up its Red Card against Foe Wobbuffet!"); + ABILITY_POPUP(player, ABILITY_EMERGENCY_EXIT); + MESSAGE("Go! Wimpod!"); + } +} + +// SINGLE_BATTLE_TEST("Red Card activates but fails if the attacker has Dynamaxed") diff --git a/test/move_effect_explosion.c b/test/move_effect_explosion.c index 872f3f7090..41e74044ba 100644 --- a/test/move_effect_explosion.c +++ b/test/move_effect_explosion.c @@ -8,7 +8,6 @@ ASSUMPTIONS SINGLE_BATTLE_TEST("Explosion causes the user to faint") { - u16 remainingHP; GIVEN { PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); @@ -17,12 +16,29 @@ SINGLE_BATTLE_TEST("Explosion causes the user to faint") } SCENE { HP_BAR(player, hp: 0); ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, player); + MESSAGE("Wobbuffet fainted!"); + } +} + +SINGLE_BATTLE_TEST("Explosion causes the user & the target to faint") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_EXPLOSION); } + } SCENE { + HP_BAR(player, hp: 0); + ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, player); + HP_BAR(opponent, hp: 0); + MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("Wobbuffet fainted!"); } } SINGLE_BATTLE_TEST("Explosion causes the user to faint even if it misses") { - u16 remainingHP; GIVEN { PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); @@ -31,12 +47,12 @@ SINGLE_BATTLE_TEST("Explosion causes the user to faint even if it misses") } SCENE { HP_BAR(player, hp: 0); ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, player); + MESSAGE("Wobbuffet fainted!"); } } SINGLE_BATTLE_TEST("Explosion causes the user to faint even if it has no effect") { - u16 remainingHP; GIVEN { ASSUME(gBattleMoves[MOVE_EXPLOSION].type == TYPE_NORMAL); ASSUME(gSpeciesInfo[SPECIES_GASTLY].types[0] == TYPE_GHOST); @@ -49,5 +65,29 @@ SINGLE_BATTLE_TEST("Explosion causes the user to faint even if it has no effect" ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, player); MESSAGE("It doesn't affect Foe Gastly…"); NOT HP_BAR(opponent); + MESSAGE("Wobbuffet fainted!"); + } +} + +DOUBLE_BATTLE_TEST("Explosion causes everyone to faint in a double battle") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT) { HP(1); } + OPPONENT(SPECIES_ABRA) { HP(1); } + OPPONENT(SPECIES_KADABRA) { HP(1); } + OPPONENT(SPECIES_KADABRA); + } WHEN { + TURN { MOVE(playerLeft, MOVE_EXPLOSION); } + } SCENE { + HP_BAR(playerLeft, hp: 0); + ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, playerLeft); + HP_BAR(opponentLeft, hp: 0); + MESSAGE("Foe Abra fainted!"); + HP_BAR(playerRight, hp: 0); + MESSAGE("Wynaut fainted!"); + HP_BAR(opponentRight, hp: 0); + MESSAGE("Foe Kadabra fainted!"); + MESSAGE("Wobbuffet fainted!"); } } diff --git a/test/move_effect_hit_switch_target.c b/test/move_effect_hit_switch_target.c new file mode 100644 index 0000000000..9c50a4e4c0 --- /dev/null +++ b/test/move_effect_hit_switch_target.c @@ -0,0 +1,72 @@ +#include "global.h" +#include "test_battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_DRAGON_TAIL].effect == EFFECT_HIT_SWITCH_TARGET); + ASSUME(gBattleMoves[MOVE_LOCK_ON].effect == EFFECT_LOCK_ON); +} + +SINGLE_BATTLE_TEST("Dragon Tail switches the target with a random non-fainted replacement") +{ + KNOWN_FAILING; // Only 18/50. Waiting for an improved PASSES_RANDOMLY. + PASSES_RANDOMLY(90 * 1, 100 * 2); + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_BULBASAUR); + OPPONENT(SPECIES_CHARMANDER); + OPPONENT(SPECIES_SQUIRTLE) { HP(0); } + } WHEN { + TURN { MOVE(player, MOVE_DRAGON_TAIL); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_TAIL, player); + MESSAGE("Foe Bulbasaur was dragged out!"); + } +} + +DOUBLE_BATTLE_TEST("Dragon Tail switches the target with a random non-battler, non-fainted replacement") +{ + PASSES_RANDOMLY(90 * 1, 100 * 2); + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + OPPONENT(SPECIES_BULBASAUR); + OPPONENT(SPECIES_CHARMANDER); + OPPONENT(SPECIES_SQUIRTLE) { HP(0); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_DRAGON_TAIL, target: opponentRight); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_TAIL, playerLeft); + MESSAGE("Foe Bulbasaur was dragged out!"); + } +} + +SINGLE_BATTLE_TEST("Dragon Tail does not fail if no replacements") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_DRAGON_TAIL); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_TAIL, player); + NOT MESSAGE("But it failed!"); + } +} + +SINGLE_BATTLE_TEST("Dragon Tail does not fail if replacements fainted") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT) { HP(0); } + } WHEN { + TURN { MOVE(player, MOVE_DRAGON_TAIL); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_TAIL, player); + NOT MESSAGE("But it failed!"); + } +} diff --git a/test/move_effect_mind_blown.c b/test/move_effect_mind_blown.c new file mode 100644 index 0000000000..6b053cfb56 --- /dev/null +++ b/test/move_effect_mind_blown.c @@ -0,0 +1,109 @@ +#include "global.h" +#include "test_battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_MIND_BLOWN].effect == EFFECT_MIND_BLOWN); +} + +#define HP_TEST (400) + +SINGLE_BATTLE_TEST("Mind Blown makes the user lose 1/2 of its HP") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(HP_TEST); MaxHP(HP_TEST); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_MIND_BLOWN); } + } SCENE { + HP_BAR(player, hp: HP_TEST / 2); + ANIMATION(ANIM_TYPE_MOVE, MOVE_MIND_BLOWN, player); + NOT MESSAGE("Wobbuffet fainted!"); // Wobb had more than 1/2 of its HP, so it can't faint. + } +} + +DOUBLE_BATTLE_TEST("Mind Blown makes the user lose 1/2 of its HP in a double battle") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(HP_TEST); MaxHP(HP_TEST); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_MIND_BLOWN); } + } SCENE { + HP_BAR(playerLeft, hp: HP_TEST / 2); + ANIMATION(ANIM_TYPE_MOVE, MOVE_MIND_BLOWN, playerLeft); + NOT MESSAGE("Wobbuffet fainted!"); // Wobb had more than 1/2 of its HP, so it can't faint. + } +} + +SINGLE_BATTLE_TEST("Mind Blown causes the user to faint when below 1/2 of its HP") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(HP_TEST / 2); MaxHP(HP_TEST); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_MIND_BLOWN); } + } SCENE { + HP_BAR(player, hp: 0); + ANIMATION(ANIM_TYPE_MOVE, MOVE_MIND_BLOWN, player); + MESSAGE("Wobbuffet fainted!"); + } +} + +DOUBLE_BATTLE_TEST("Mind Blown causes the user to faint when below 1/2 of its HP in a double battle") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(HP_TEST / 2); MaxHP(HP_TEST); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_MIND_BLOWN);} + } SCENE { + HP_BAR(playerLeft, hp: 0); + ANIMATION(ANIM_TYPE_MOVE, MOVE_MIND_BLOWN, playerLeft); + MESSAGE("Wobbuffet fainted!"); + } +} + +SINGLE_BATTLE_TEST("Mind Blown causes the user & the target to faint when below 1/2 of its HP") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(HP_TEST / 2) ; MaxHP(HP_TEST); } + OPPONENT(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_MIND_BLOWN);} + } SCENE { + HP_BAR(player, hp: 0); + ANIMATION(ANIM_TYPE_MOVE, MOVE_MIND_BLOWN, player); + HP_BAR(opponent, hp: 0); + MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("Wobbuffet fainted!"); + } +} + +DOUBLE_BATTLE_TEST("Mind Blown causes everyone to faint in a double battle") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(HP_TEST / 2); MaxHP(HP_TEST); } + PLAYER(SPECIES_WYNAUT) { HP(1); } + OPPONENT(SPECIES_ABRA) { HP(1); } + OPPONENT(SPECIES_KADABRA) { HP(1); } + OPPONENT(SPECIES_KADABRA); + } WHEN { + TURN { MOVE(playerLeft, MOVE_MIND_BLOWN, criticalHit: FALSE); } + } SCENE { + HP_BAR(playerLeft, hp: 0); + ANIMATION(ANIM_TYPE_MOVE, MOVE_MIND_BLOWN, playerLeft); + HP_BAR(opponentLeft, hp: 0); + MESSAGE("Foe Abra fainted!"); + HP_BAR(playerRight, hp: 0); + MESSAGE("Wynaut fainted!"); + HP_BAR(opponentRight, hp: 0); + MESSAGE("Foe Kadabra fainted!"); + MESSAGE("Wobbuffet fainted!"); + } +} diff --git a/test/move_effect_roar.c b/test/move_effect_roar.c new file mode 100644 index 0000000000..2d4eadda85 --- /dev/null +++ b/test/move_effect_roar.c @@ -0,0 +1,70 @@ +#include "global.h" +#include "test_battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_ROAR].effect == EFFECT_ROAR); +} + +SINGLE_BATTLE_TEST("Roar switches the target with a random non-fainted replacement") +{ + PASSES_RANDOMLY(1, 2); + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_BULBASAUR); + OPPONENT(SPECIES_CHARMANDER); + OPPONENT(SPECIES_SQUIRTLE) { HP(0); } + } WHEN { + TURN { MOVE(player, MOVE_ROAR); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROAR, player); + MESSAGE("Foe Bulbasaur was dragged out!"); + } +} + +DOUBLE_BATTLE_TEST("Roar switches the target with a random non-battler, non-fainted replacement") +{ + PASSES_RANDOMLY(1, 2); + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + OPPONENT(SPECIES_BULBASAUR); + OPPONENT(SPECIES_CHARMANDER); + OPPONENT(SPECIES_SQUIRTLE) { HP(0); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_ROAR, target: opponentRight); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROAR, playerLeft); + MESSAGE("Foe Bulbasaur was dragged out!"); + } +} + +SINGLE_BATTLE_TEST("Roar fails if no replacements") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_ROAR); } + } SCENE { + MESSAGE("Wobbuffet used Roar!"); + MESSAGE("But it failed!"); + } +} + +SINGLE_BATTLE_TEST("Roar fails if replacements fainted") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT) { HP(0); } + } WHEN { + TURN { MOVE(player, MOVE_ROAR); } + } SCENE { + MESSAGE("Wobbuffet used Roar!"); + MESSAGE("But it failed!"); + } +} diff --git a/test/move_effect_shell_trap.c b/test/move_effect_shell_trap.c new file mode 100644 index 0000000000..27dc4b7f64 --- /dev/null +++ b/test/move_effect_shell_trap.c @@ -0,0 +1,168 @@ +#include "global.h" +#include "test_battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_SHELL_TRAP].effect == EFFECT_SHELL_TRAP); + ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_WATER_GUN].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_LEER].split == SPLIT_STATUS); +} + +SINGLE_BATTLE_TEST("Shell Trap activates only if hit by a physical move") +{ + u32 move; + bool32 activate; + PARAMETRIZE { move = MOVE_TACKLE; activate = TRUE; } + PARAMETRIZE { move = MOVE_WATER_GUN; activate = FALSE; } + PARAMETRIZE { move = MOVE_LEER; activate = FALSE; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SHELL_TRAP); MOVE(opponent, move); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SHELL_TRAP_SETUP, player); + MESSAGE("Wobbuffet set a shell trap!"); + ANIMATION(ANIM_TYPE_MOVE, move, opponent); + + if (activate) { + MESSAGE("Wobbuffet used Shell Trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, player); + HP_BAR(opponent); + } else { + MESSAGE("Wobbuffet's shell trap didn't work!"); + NONE_OF { + MESSAGE("Wobbuffet used Shell Trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, player); + HP_BAR(opponent); + } + } + } +} + +SINGLE_BATTLE_TEST("Shell Trap does not activate if attacker's Sheer Force applied") +{ + u32 move; + bool32 activate; + PARAMETRIZE { move = MOVE_TACKLE; activate = TRUE; } + PARAMETRIZE { move = MOVE_STOMP; activate = FALSE; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_TAUROS) { Ability(ABILITY_SHEER_FORCE); } + } WHEN { + TURN { MOVE(player, MOVE_SHELL_TRAP); MOVE(opponent, move); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SHELL_TRAP_SETUP, player); + MESSAGE("Wobbuffet set a shell trap!"); + ANIMATION(ANIM_TYPE_MOVE, move, opponent); + if (activate) { + MESSAGE("Wobbuffet used Shell Trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, player); + HP_BAR(opponent); + } else { + MESSAGE("Wobbuffet's shell trap didn't work!"); + NONE_OF { + MESSAGE("Wobbuffet used Shell Trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, player); + HP_BAR(opponent); + } + } + } +} + +SINGLE_BATTLE_TEST("Shell Trap does not activate if battler faints before being able to activate it") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(1); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SHELL_TRAP); MOVE(opponent, MOVE_TACKLE); SEND_OUT(player, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SHELL_TRAP_SETUP, player); + MESSAGE("Wobbuffet set a shell trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + MESSAGE("Wobbuffet fainted!"); + MESSAGE("Go! Wobbuffet!"); + NONE_OF { + MESSAGE("Wobbuffet used Shell Trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, player); + HP_BAR(opponent); + } + } +} + +DOUBLE_BATTLE_TEST("Shell Trap activates immediately after being hit on turn 1 and attacks both opponents") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SHELL_TRAP].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_WOBBUFFET) { Speed(1); } + PLAYER(SPECIES_WOBBUFFET) { Speed(2); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(5); } + OPPONENT(SPECIES_WYNAUT) { Speed(1); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_SHELL_TRAP); MOVE(opponentLeft, MOVE_TACKLE, target:playerLeft); MOVE(playerRight, MOVE_CELEBRATE); MOVE(opponentRight, MOVE_CELEBRATE); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SHELL_TRAP_SETUP, playerLeft); + MESSAGE("Wobbuffet set a shell trap!"); + MESSAGE("Foe Wobbuffet used Tackle!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); + MESSAGE("Wobbuffet used Shell Trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, playerLeft); + HP_BAR(opponentLeft); + HP_BAR(opponentRight); + MESSAGE("Wobbuffet used Celebrate!"); + MESSAGE("Foe Wynaut used Celebrate!"); + } +} + +DOUBLE_BATTLE_TEST("Shell Trap activates immediately after being hit on turn 2 and attacks both opponents") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SHELL_TRAP].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_WOBBUFFET) { Speed(1); } + PLAYER(SPECIES_WOBBUFFET) { Speed(2); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(5); } + OPPONENT(SPECIES_WYNAUT) { Speed(6); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_SHELL_TRAP); MOVE(opponentLeft, MOVE_TACKLE, target:playerLeft); MOVE(playerRight, MOVE_CELEBRATE); MOVE(opponentRight, MOVE_CELEBRATE); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SHELL_TRAP_SETUP, playerLeft); + MESSAGE("Wobbuffet set a shell trap!"); + MESSAGE("Foe Wynaut used Celebrate!"); + MESSAGE("Foe Wobbuffet used Tackle!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); + MESSAGE("Wobbuffet used Shell Trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, playerLeft); + HP_BAR(opponentLeft); + HP_BAR(opponentRight); + MESSAGE("Wobbuffet used Celebrate!"); + } +} + +DOUBLE_BATTLE_TEST("Shell Trap activates immediately after being hit on turn 3 and attacks both opponents") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SHELL_TRAP].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_WOBBUFFET) { Speed(1); } + PLAYER(SPECIES_WOBBUFFET) { Speed(7); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(5); } + OPPONENT(SPECIES_WYNAUT) { Speed(6); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_SHELL_TRAP); MOVE(opponentLeft, MOVE_TACKLE, target:playerLeft); MOVE(playerRight, MOVE_CELEBRATE); MOVE(opponentRight, MOVE_CELEBRATE); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SHELL_TRAP_SETUP, playerLeft); + MESSAGE("Wobbuffet set a shell trap!"); + MESSAGE("Wobbuffet used Celebrate!"); + MESSAGE("Foe Wynaut used Celebrate!"); + MESSAGE("Foe Wobbuffet used Tackle!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); + MESSAGE("Wobbuffet used Shell Trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, playerLeft); + HP_BAR(opponentLeft); + HP_BAR(opponentRight); + } +} diff --git a/test/test.h b/test/test.h index cbcf117178..c69a4fa925 100644 --- a/test/test.h +++ b/test/test.h @@ -39,7 +39,6 @@ struct TestRunnerState u8 exitCode; s32 tests; s32 passes; - s32 skips; const char *skipFilename; const struct Test *test; u32 processCosts[MAX_PROCESSES]; diff --git a/test/test_runner.c b/test/test_runner.c index 3cb1f7c213..6620548dc7 100644 --- a/test/test_runner.c +++ b/test/test_runner.c @@ -7,7 +7,7 @@ #include "test.h" #include "test_runner.h" -#define TIMEOUT_SECONDS 30 +#define TIMEOUT_SECONDS 55 void CB2_TestRunner(void); @@ -60,7 +60,6 @@ void CB2_TestRunner(void) gTestRunnerState.exitCode = 0; gTestRunnerState.tests = 0; gTestRunnerState.passes = 0; - gTestRunnerState.skips = 0; gTestRunnerState.skipFilename = NULL; gTestRunnerState.test = __start_tests - 1; break; @@ -70,20 +69,15 @@ void CB2_TestRunner(void) if (gTestRunnerState.test == __stop_tests) { - MgbaPrintf_("%s%d/%d PASSED\e[0m", gTestRunnerState.exitCode == 0 ? "\e[32m" : "\e[31m", gTestRunnerState.passes, gTestRunnerState.tests); - if (gTestRunnerState.skips) - { - if (gTestRunnerSkipIsFail) - MgbaPrintf_("\e[31m%d SKIPPED\e[0m", gTestRunnerState.skips); - else - MgbaPrintf_("%d SKIPPED", gTestRunnerState.skips); - } gTestRunnerState.state = STATE_EXIT; return; } - if (!PrefixMatch(gTestRunnerArgv, gTestRunnerState.test->name)) + if (gTestRunnerState.test->runner != &gAssumptionsRunner + && !PrefixMatch(gTestRunnerArgv, gTestRunnerState.test->name)) + { return; + } // Greedily assign tests to processes based on estimated cost. // TODO: Make processCosts a min heap. @@ -111,6 +105,7 @@ void CB2_TestRunner(void) return; } + MgbaPrintf_(":N%s", gTestRunnerState.test->name); gTestRunnerState.state = STATE_REPORT_RESULT; gTestRunnerState.result = TEST_RESULT_PASS; gTestRunnerState.expectedResult = TEST_RESULT_PASS; @@ -130,7 +125,6 @@ void CB2_TestRunner(void) } else { - MgbaPrintf_(":N%s", gTestRunnerState.test->name); if (gTestRunnerState.test->runner->setUp) gTestRunnerState.test->runner->setUp(gTestRunnerState.test->data); gTestRunnerState.test->runner->run(gTestRunnerState.test->data); @@ -150,12 +144,6 @@ void CB2_TestRunner(void) if (gTestRunnerState.result != TEST_RESULT_PASS) gTestRunnerState.skipFilename = gTestRunnerState.test->filename; } - else if (gTestRunnerState.result == TEST_RESULT_SKIP) - { - gTestRunnerState.skips++; - if (gTestRunnerSkipIsFail) - gTestRunnerState.exitCode = 1; - } else { const char *color; @@ -206,7 +194,10 @@ void CB2_TestRunner(void) default: result = "UNKNOWN"; break; } - MgbaPrintf_(":R%s%s\e[0m", color, result); + if (gTestRunnerState.expectedResult == gTestRunnerState.result) + MgbaPrintf_(":P%s%s\e[0m", color, result); + else + MgbaPrintf_(":F%s%s\e[0m", color, result); } break; diff --git a/tools/mgba-rom-test-hydra/main.c b/tools/mgba-rom-test-hydra/main.c index 5dfc995176..4ce9b09bd0 100644 --- a/tools/mgba-rom-test-hydra/main.c +++ b/tools/mgba-rom-test-hydra/main.c @@ -38,6 +38,8 @@ struct Runner size_t output_buffer_size; size_t output_buffer_capacity; char *output_buffer; + int passes; + int results; }; static unsigned nrunners = 0; @@ -72,7 +74,11 @@ static void handle_read(struct Runner *runner) runner->test_name[eol - soc - 1] = '\0'; break; - case 'R': + case 'P': + case 'F': + if (soc[1] == 'P') + runner->passes++; + runner->results++; soc += 2; fprintf(stdout, "%s: ", runner->test_name); fwrite(soc, 1, eol - soc, stdout); @@ -404,6 +410,8 @@ int main(int argc, char *argv[]) // Reap test runners and collate exit codes. int exit_code = 0; + int passes = 0; + int results = 0; for (int i = 0; i < nrunners; i++) { int wstatus; @@ -412,8 +420,14 @@ int main(int argc, char *argv[]) perror("waitpid runners[i] failed"); exit(2); } + if (runners[i].output_buffer_size > 0) + fwrite(runners[i].output_buffer, 1, runners[i].output_buffer_size, stdout); if (WIFEXITED(wstatus) && WEXITSTATUS(wstatus) > exit_code) exit_code = WEXITSTATUS(wstatus); + passes += runners[i].passes; + results += runners[i].results; } + fprintf(stdout, "%d/%d \e[32mPASS\e[0med\n", passes, results); + fflush(stdout); return exit_code; }