Syrup Bomb move and special speed drop anim, Credits to Dat.H A (#3474)
This commit is contained in:
parent
9d2be9f3a6
commit
f2fddf4ee1
15 changed files with 354 additions and 15 deletions
|
@ -1009,6 +1009,7 @@ gBattleAnims_General::
|
|||
.4byte General_SaltCureDamage @ B_ANIM_SALT_CURE_DAMAGE
|
||||
.4byte General_DynamaxGrowth @ B_ANIM_DYNAMAX_GROWTH
|
||||
.4byte General_SetWeather @ B_ANIM_MAX_SET_WEATHER
|
||||
.4byte General_SyrupBombSpeedDrop @ B_ANIM_SYRUP_BOMB_SPEED_DROP
|
||||
|
||||
.align 2
|
||||
gBattleAnims_Special::
|
||||
|
@ -16524,6 +16525,113 @@ Move_DOUBLE_SHOCK::
|
|||
blendoff
|
||||
end
|
||||
|
||||
Move_SYRUP_BOMB::
|
||||
createvisualtask AnimTask_SyrupBomb, 0x5
|
||||
jumpargeq 0x0, FALSE, Move_SYRUP_BOMB_RED
|
||||
jumpargeq 0x0, TRUE, Move_SYRUP_BOMB_YELLOW
|
||||
|
||||
@ Credits to Dat.H A
|
||||
Move_SYRUP_BOMB_RED:
|
||||
loadspritegfx ANIM_TAG_SYRUP_BLOB_RED
|
||||
loadspritegfx ANIM_TAG_SYRUP_SPLAT_RED
|
||||
loadspritegfx ANIM_TAG_SYRUP_SHELL_RED
|
||||
call SyrupBombProjectileRed
|
||||
call SyrupBombProjectileRed
|
||||
call SyrupBombProjectileRed
|
||||
call SyrupBombProjectileRed
|
||||
call SyrupBombProjectileRed
|
||||
call SyrupBombProjectileRed
|
||||
call SyrupBombProjectileRed
|
||||
call SyrupBombProjectileRed
|
||||
call SyrupBombProjectileRed
|
||||
call SyrupBombProjectileRed
|
||||
createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 3, 0, 15, 1
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 2, 0, 12, RGB(20, 3, 3)
|
||||
createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 27, 20
|
||||
createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, -27, 44, 20
|
||||
createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, 39, -28, 20
|
||||
createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, -42, -42, 20
|
||||
playsewithpan SE_M_DIG, SOUND_PAN_TARGET
|
||||
delay 5
|
||||
createsprite gSyrupBombRedShellSpriteTemplate, ANIM_TARGET, 1, ANIM_TARGET, 100
|
||||
createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, 0, 40, 20
|
||||
createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, -8, -44, 20
|
||||
createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, -46, -28, 20
|
||||
createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, 46, 9, 20
|
||||
playsewithpan SE_M_DIG, SOUND_PAN_TARGET
|
||||
delay 5
|
||||
waitsound
|
||||
waitforvisualfinish
|
||||
end
|
||||
SyrupBombProjectileRed:
|
||||
playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER
|
||||
createsprite gSyrupRedProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0
|
||||
delay 3
|
||||
return
|
||||
|
||||
Move_SYRUP_BOMB_YELLOW:
|
||||
loadspritegfx ANIM_TAG_SYRUP_BLOB_YELLOW
|
||||
loadspritegfx ANIM_TAG_SYRUP_SPLAT_YELLOW
|
||||
loadspritegfx ANIM_TAG_SYRUP_SHELL_YELLOW
|
||||
call SyrupBombProjectileYellow
|
||||
call SyrupBombProjectileYellow
|
||||
call SyrupBombProjectileYellow
|
||||
call SyrupBombProjectileYellow
|
||||
call SyrupBombProjectileYellow
|
||||
call SyrupBombProjectileYellow
|
||||
call SyrupBombProjectileYellow
|
||||
call SyrupBombProjectileYellow
|
||||
call SyrupBombProjectileYellow
|
||||
call SyrupBombProjectileYellow
|
||||
createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 3, 0, 15, 1
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 2, 0, 12, RGB(23, 13, 1)
|
||||
createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 27, 20
|
||||
createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, -27, 44, 20
|
||||
createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, 39, -28, 20
|
||||
createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, -42, -42, 20
|
||||
playsewithpan SE_M_DIG, SOUND_PAN_TARGET
|
||||
delay 5
|
||||
createsprite gSyrupBombYellowShellSpriteTemplate, ANIM_TARGET, 1, ANIM_TARGET, 100
|
||||
createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, 0, 40, 20
|
||||
createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, -8, -44, 20
|
||||
createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, -46, -28, 20
|
||||
createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, 46, 9, 20
|
||||
playsewithpan SE_M_DIG, SOUND_PAN_TARGET
|
||||
delay 5
|
||||
waitsound
|
||||
waitforvisualfinish
|
||||
end
|
||||
SyrupBombProjectileYellow:
|
||||
playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER
|
||||
createsprite gSyrupYellowProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0
|
||||
delay 3
|
||||
return
|
||||
|
||||
General_SyrupBombSpeedDrop::
|
||||
createvisualtask AnimTask_StickySyrup, 0x5
|
||||
jumpargeq 0x0, FALSE, SyrupBombSpeedDropRed
|
||||
jumpargeq 0x0, TRUE, SyrupBombSpeedDropYellow
|
||||
|
||||
SyrupBombSpeedDropRed:
|
||||
loadspritegfx ANIM_TAG_SYRUP_BLOB_RED
|
||||
loadspritegfx ANIM_TAG_SYRUP_SHELL_RED
|
||||
loopsewithpan SE_M_TOXIC, SOUND_PAN_TARGET, 13, 6
|
||||
createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 3, 0, 15, 1
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 2, 0, 12, RGB(20, 3, 3)
|
||||
createsprite gSyrupBombRedShellBSpriteTemplate, ANIM_TARGET, 1, ANIM_TARGET, 60
|
||||
waitforvisualfinish
|
||||
end
|
||||
|
||||
SyrupBombSpeedDropYellow:
|
||||
loadspritegfx ANIM_TAG_SYRUP_BLOB_YELLOW
|
||||
loadspritegfx ANIM_TAG_SYRUP_SHELL_YELLOW
|
||||
loopsewithpan SE_M_TOXIC, SOUND_PAN_TARGET, 13, 6
|
||||
createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 3, 0, 15, 1
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 2, 0, 12, RGB(23, 13, 1)
|
||||
createsprite gSyrupBombYellowShellBSpriteTemplate, ANIM_TARGET, 1, ANIM_TARGET, 60
|
||||
waitforvisualfinish
|
||||
end
|
||||
|
||||
Move_TERA_BLAST::
|
||||
Move_AXE_KICK::
|
||||
Move_LAST_RESPECTS::
|
||||
|
@ -16572,7 +16680,6 @@ Move_PSYBLADE::
|
|||
Move_HYDRO_STEAM::
|
||||
Move_BLOOD_MOON::
|
||||
Move_MATCHA_GOTCHA::
|
||||
Move_SYRUP_BOMB::
|
||||
Move_IVY_CUDGEL::
|
||||
end @to do
|
||||
|
||||
|
|
|
@ -454,7 +454,8 @@ BattleScript_SyrupBombActivates::
|
|||
return
|
||||
|
||||
BattleScript_SyrupBombEndTurn::
|
||||
playstatchangeanimation BS_ATTACKER, BIT_SPEED, STAT_CHANGE_NEGATIVE
|
||||
flushtextbox
|
||||
playanimation BS_ATTACKER, B_ANIM_SYRUP_BOMB_SPEED_DROP
|
||||
setstatchanger STAT_SPEED, 1, TRUE
|
||||
statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_SyrupBombTurnDmgEnd
|
||||
printfromtable gStatDownStringIds
|
||||
|
@ -7344,7 +7345,7 @@ BattleScript_StealthRockFree::
|
|||
printstring STRINGID_PKMNBLEWAWAYSTEALTHROCK
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
|
||||
|
||||
BattleScript_SteelsurgeFree::
|
||||
printstring STRINGID_PKMNBLEWAWAYSHARPSTEEL
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
|
|
BIN
graphics/battle_anims/sprites/syrup_bomb_blob.png
Normal file
BIN
graphics/battle_anims/sprites/syrup_bomb_blob.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
BIN
graphics/battle_anims/sprites/syrup_bomb_shell.png
Normal file
BIN
graphics/battle_anims/sprites/syrup_bomb_shell.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
BIN
graphics/battle_anims/sprites/syrup_bomb_splat.png
Normal file
BIN
graphics/battle_anims/sprites/syrup_bomb_splat.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.8 KiB |
19
graphics/battle_anims/sprites/syrup_red.pal
Normal file
19
graphics/battle_anims/sprites/syrup_red.pal
Normal file
|
@ -0,0 +1,19 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
30 255 0
|
||||
242 242 242
|
||||
255 194 173
|
||||
255 129 110
|
||||
224 51 38
|
||||
161 24 26
|
||||
110 30 36
|
||||
13 2 4
|
||||
200 224 240
|
||||
200 224 240
|
||||
200 224 240
|
||||
200 224 240
|
||||
200 224 240
|
||||
200 224 240
|
||||
200 224 240
|
||||
200 224 240
|
19
graphics/battle_anims/sprites/syrup_yellow.pal
Normal file
19
graphics/battle_anims/sprites/syrup_yellow.pal
Normal file
|
@ -0,0 +1,19 @@
|
|||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
30 255 0
|
||||
242 242 242
|
||||
255 255 168
|
||||
255 235 82
|
||||
255 192 0
|
||||
185 104 4
|
||||
107 59 19
|
||||
13 2 4
|
||||
200 224 240
|
||||
200 224 240
|
||||
200 224 240
|
||||
200 224 240
|
||||
200 224 240
|
||||
200 224 240
|
||||
200 224 240
|
||||
200 224 240
|
|
@ -106,6 +106,7 @@ struct DisableStruct
|
|||
u8 stickyWebDone:1;
|
||||
u8 stealthRockDone:1;
|
||||
u8 syrupBombTimer;
|
||||
u8 syrupBombIsShiny:1;
|
||||
u8 steelSurgeDone:1;
|
||||
};
|
||||
|
||||
|
|
|
@ -399,7 +399,12 @@
|
|||
#define ANIM_TAG_TEAPOT (ANIM_SPRITES_START + 385)
|
||||
#define ANIM_TAG_WOOD_HAMMER_HAMMER (ANIM_SPRITES_START + 386)
|
||||
#define ANIM_TAG_SNOWFLAKES (ANIM_SPRITES_START + 387)
|
||||
|
||||
#define ANIM_TAG_SYRUP_BLOB_RED (ANIM_SPRITES_START + 388)
|
||||
#define ANIM_TAG_SYRUP_SHELL_RED (ANIM_SPRITES_START + 389)
|
||||
#define ANIM_TAG_SYRUP_BLOB_YELLOW (ANIM_SPRITES_START + 390)
|
||||
#define ANIM_TAG_SYRUP_SHELL_YELLOW (ANIM_SPRITES_START + 391)
|
||||
#define ANIM_TAG_SYRUP_SPLAT_RED (ANIM_SPRITES_START + 392)
|
||||
#define ANIM_TAG_SYRUP_SPLAT_YELLOW (ANIM_SPRITES_START + 393)
|
||||
|
||||
// battlers
|
||||
#define ANIM_ATTACKER 0
|
||||
|
@ -553,6 +558,7 @@
|
|||
#define B_ANIM_SALT_CURE_DAMAGE 38
|
||||
#define B_ANIM_DYNAMAX_GROWTH 39
|
||||
#define B_ANIM_MAX_SET_WEATHER 40
|
||||
#define B_ANIM_SYRUP_BOMB_SPEED_DROP 41
|
||||
|
||||
// special animations table (gBattleAnims_Special)
|
||||
#define B_ANIM_LVL_UP 0
|
||||
|
|
|
@ -10349,6 +10349,11 @@ extern const u32 gBattleAnimSpriteGfx_WoodHammerHammer[];
|
|||
extern const u32 gBattleAnimSpritePal_WoodHammerHammer[];
|
||||
extern const u32 gBattleAnimSpriteGfx_Snowflakes[];
|
||||
extern const u32 gBattleAnimSpritePal_Snowflakes[];
|
||||
extern const u32 gBattleAnimSpriteGfx_SyrupBlob[];
|
||||
extern const u32 gBattleAnimSpriteGfx_SyrupShell[];
|
||||
extern const u32 gBattleAnimSpriteGfx_SyrupSplat[];
|
||||
extern const u32 gBattleAnimSpritePal_SyrupRed[];
|
||||
extern const u32 gBattleAnimSpritePal_SyrupYellow[];
|
||||
|
||||
extern const u32 gBattleAnimBgImage_Dark[];
|
||||
extern const u32 gBattleAnimBgImage_Ghost[];
|
||||
|
|
|
@ -9148,3 +9148,22 @@ void AnimTask_GetWeatherToSet(u8 taskId)
|
|||
}
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void AnimTask_SyrupBomb(u8 taskId)
|
||||
{
|
||||
struct Pokemon *party = GetBattlerParty(gBattleAnimAttacker);
|
||||
u32 isShiny = IsMonShiny(&party[gBattlerPartyIndexes[gBattleAnimAttacker]]);
|
||||
|
||||
gDisableStructs[gBattleAnimTarget].syrupBombIsShiny = isShiny;
|
||||
gBattleAnimArgs[0] = isShiny;
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void AnimTask_StickySyrup(u8 taskId)
|
||||
{
|
||||
if (gDisableStructs[gBattleAnimTarget].syrupBombIsShiny)
|
||||
gBattleAnimArgs[0] = TRUE;
|
||||
else
|
||||
gBattleAnimArgs[0] = FALSE;
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ static void AnimSuckerPunch(struct Sprite *sprite);
|
|||
static void AnimGunkShotParticlesStep(struct Sprite *sprite);
|
||||
static void AnimGunkShotParticles(struct Sprite *sprite);
|
||||
static void AnimGunkShotImpact(struct Sprite *sprite);
|
||||
static void AnimAnimSyrupBomb(struct Sprite *);
|
||||
|
||||
static const union AnimCmd sAnim_ToxicBubble[] =
|
||||
{
|
||||
|
@ -305,6 +306,123 @@ const struct SpriteTemplate gGunkShotImpactSpriteTemplate =
|
|||
.callback = AnimGunkShotImpact,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_SyrupCoat[] =
|
||||
{
|
||||
ANIMCMD_FRAME(128, 10),
|
||||
ANIMCMD_FRAME(64, 5),
|
||||
ANIMCMD_FRAME(0, 45),
|
||||
ANIMCMD_FRAME(64, 15),
|
||||
ANIMCMD_FRAME(128, 15),
|
||||
ANIMCMD_FRAME(192, 20),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_SyrupStick[] =
|
||||
{
|
||||
ANIMCMD_FRAME(192, 5),
|
||||
ANIMCMD_FRAME(128, 35),
|
||||
ANIMCMD_FRAME(192, 20),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sAnims_SyrupCoat[] =
|
||||
{
|
||||
sAnim_SyrupCoat,
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sAnims_SyrupStick[] =
|
||||
{
|
||||
sAnim_SyrupStick,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSyrupRedProjectileSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_SYRUP_BLOB_RED,
|
||||
.paletteTag = ANIM_TAG_SYRUP_BLOB_RED,
|
||||
.oam = &gOamData_AffineDouble_ObjNormal_16x16,
|
||||
.anims = gAnims_PoisonProjectile,
|
||||
.images = NULL,
|
||||
.affineAnims = gAffineAnims_PoisonProjectile,
|
||||
.callback = AnimSludgeProjectile,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSyrupYellowProjectileSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_SYRUP_BLOB_YELLOW,
|
||||
.paletteTag = ANIM_TAG_SYRUP_BLOB_YELLOW,
|
||||
.oam = &gOamData_AffineDouble_ObjNormal_16x16,
|
||||
.anims = gAnims_PoisonProjectile,
|
||||
.images = NULL,
|
||||
.affineAnims = gAffineAnims_PoisonProjectile,
|
||||
.callback = AnimSludgeProjectile,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSyrupBombRedHitParticleSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_SYRUP_SPLAT_RED,
|
||||
.paletteTag = ANIM_TAG_SYRUP_BLOB_RED,
|
||||
.oam = &gOamData_AffineNormal_ObjNormal_16x16,
|
||||
.anims = gAnims_PoisonProjectile,
|
||||
.images = NULL,
|
||||
.affineAnims = sAffineAnims_SludgeBombHit,
|
||||
.callback = AnimSludgeBombHitParticle,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSyrupBombYellowHitParticleSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_SYRUP_SPLAT_YELLOW,
|
||||
.paletteTag = ANIM_TAG_SYRUP_BLOB_YELLOW,
|
||||
.oam = &gOamData_AffineNormal_ObjNormal_16x16,
|
||||
.anims = gAnims_PoisonProjectile,
|
||||
.images = NULL,
|
||||
.affineAnims = sAffineAnims_SludgeBombHit,
|
||||
.callback = AnimSludgeBombHitParticle,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSyrupBombRedShellSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_SYRUP_SHELL_RED,
|
||||
.paletteTag = ANIM_TAG_SYRUP_BLOB_RED,
|
||||
.oam = &gOamData_AffineOff_ObjNormal_64x64,
|
||||
.anims = sAnims_SyrupCoat,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = AnimAnimSyrupBomb,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSyrupBombYellowShellSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_SYRUP_SHELL_YELLOW,
|
||||
.paletteTag = ANIM_TAG_SYRUP_BLOB_YELLOW,
|
||||
.oam = &gOamData_AffineOff_ObjNormal_64x64,
|
||||
.anims = sAnims_SyrupCoat,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = AnimAnimSyrupBomb,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSyrupBombRedShellBSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_SYRUP_SHELL_RED,
|
||||
.paletteTag = ANIM_TAG_SYRUP_BLOB_RED,
|
||||
.oam = &gOamData_AffineOff_ObjNormal_64x64,
|
||||
.anims = sAnims_SyrupStick,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = AnimAnimSyrupBomb,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSyrupBombYellowShellBSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_SYRUP_SHELL_YELLOW,
|
||||
.paletteTag = ANIM_TAG_SYRUP_BLOB_YELLOW,
|
||||
.oam = &gOamData_AffineOff_ObjNormal_64x64,
|
||||
.anims = sAnims_SyrupStick,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = AnimAnimSyrupBomb,
|
||||
};
|
||||
|
||||
static void AnimGunkShotImpact(struct Sprite *sprite)
|
||||
{
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
||||
|
@ -534,3 +652,26 @@ static void AnimBubbleEffect_Step(struct Sprite *sprite)
|
|||
if (sprite->affineAnimEnded)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
static void AnimSyrupBomb_Step(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[1] > sprite->data[0] - 10)
|
||||
sprite->invisible = sprite->data[1] & 1;
|
||||
|
||||
if (sprite->data[1] == sprite->data[0])
|
||||
DestroyAnimSprite(sprite);
|
||||
|
||||
sprite->data[1]++;
|
||||
}
|
||||
|
||||
static void AnimAnimSyrupBomb(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[0] == ANIM_TARGET)
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 2;
|
||||
}
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[1];
|
||||
sprite->callback = AnimSyrupBomb_Step;
|
||||
}
|
||||
|
|
|
@ -1449,6 +1449,12 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
|
|||
{gBattleAnimSpriteGfx_Teapot, 0x1800, ANIM_TAG_TEAPOT},
|
||||
{gBattleAnimSpriteGfx_WoodHammerHammer, 0x800, ANIM_TAG_WOOD_HAMMER_HAMMER},
|
||||
{gBattleAnimSpriteGfx_Snowflakes, 0x0700, ANIM_TAG_SNOWFLAKES},
|
||||
{gBattleAnimSpriteGfx_SyrupBlob, 0x400, ANIM_TAG_SYRUP_BLOB_RED},
|
||||
{gBattleAnimSpriteGfx_SyrupShell, 0x2000, ANIM_TAG_SYRUP_SHELL_RED},
|
||||
{gBattleAnimSpriteGfx_SyrupBlob, 0x400, ANIM_TAG_SYRUP_BLOB_YELLOW},
|
||||
{gBattleAnimSpriteGfx_SyrupShell, 0x2000, ANIM_TAG_SYRUP_SHELL_YELLOW},
|
||||
{gBattleAnimSpriteGfx_SyrupSplat, 0x400, ANIM_TAG_SYRUP_SPLAT_RED},
|
||||
{gBattleAnimSpriteGfx_SyrupSplat, 0x400, ANIM_TAG_SYRUP_SPLAT_YELLOW},
|
||||
};
|
||||
|
||||
const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
|
||||
|
@ -1898,6 +1904,12 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
|
|||
{gBattleAnimSpritePal_Teapot, ANIM_TAG_TEAPOT},
|
||||
{gBattleAnimSpritePal_WoodHammerHammer, ANIM_TAG_WOOD_HAMMER_HAMMER},
|
||||
{gBattleAnimSpritePal_RainDrops, ANIM_TAG_SNOWFLAKES},
|
||||
{gBattleAnimSpritePal_SyrupRed, ANIM_TAG_SYRUP_BLOB_RED},
|
||||
{gBattleAnimSpritePal_SyrupRed, ANIM_TAG_SYRUP_SHELL_RED},
|
||||
{gBattleAnimSpritePal_SyrupYellow, ANIM_TAG_SYRUP_BLOB_YELLOW},
|
||||
{gBattleAnimSpritePal_SyrupYellow, ANIM_TAG_SYRUP_SHELL_YELLOW},
|
||||
{gBattleAnimSpritePal_SyrupRed, ANIM_TAG_SYRUP_SPLAT_RED},
|
||||
{gBattleAnimSpritePal_SyrupYellow, ANIM_TAG_SYRUP_SPLAT_YELLOW},
|
||||
};
|
||||
|
||||
const struct BattleAnimBackground gBattleAnimBackgroundTable[] =
|
||||
|
|
|
@ -451,6 +451,12 @@ const u32 gBattleAnimSpritePal_WoodHammerHammer[] = INCBIN_U32("graphics/battle_
|
|||
const u32 gBattleAnimSpriteGfx_Snowflakes[] = INCBIN_U32("graphics/battle_anims/sprites/snowflakes.4bpp.lz");
|
||||
const u32 gBattleAnimSpritePal_Snowflakes[] = INCBIN_U32("graphics/battle_anims/sprites/snowflakes.gbapal.lz");
|
||||
|
||||
const u32 gBattleAnimSpriteGfx_SyrupBlob[] = INCBIN_U32("graphics/battle_anims/sprites/syrup_bomb_blob.4bpp.lz");
|
||||
const u32 gBattleAnimSpriteGfx_SyrupShell[] = INCBIN_U32("graphics/battle_anims/sprites/syrup_bomb_shell.4bpp.lz");
|
||||
const u32 gBattleAnimSpriteGfx_SyrupSplat[] = INCBIN_U32("graphics/battle_anims/sprites/syrup_bomb_splat.4bpp.lz");
|
||||
const u32 gBattleAnimSpritePal_SyrupRed[] = INCBIN_U32("graphics/battle_anims/sprites/syrup_red.gbapal.lz");
|
||||
const u32 gBattleAnimSpritePal_SyrupYellow[] = INCBIN_U32("graphics/battle_anims/sprites/syrup_yellow.gbapal.lz");
|
||||
|
||||
// old battle interface data, unused
|
||||
|
||||
const u32 gOldBattleInterfaceGfx[] = INCBIN_U32("graphics/unused/obi1.4bpp.lz");
|
||||
|
|
|
@ -16,14 +16,14 @@ SINGLE_BATTLE_TEST("Syrup Bomb covers the foe in sticky syrup for 3 turns")
|
|||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player);
|
||||
HP_BAR(opponent);
|
||||
MESSAGE("Foe Wobbuffet got covered in sticky syrup!");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent);
|
||||
MESSAGE("Foe Wobbuffet's Speed fell!");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent);
|
||||
MESSAGE("Foe Wobbuffet's Speed fell!");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent);
|
||||
MESSAGE("Foe Wobbuffet's Speed fell!");
|
||||
NONE_OF {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent);
|
||||
MESSAGE("Foe Wobbuffet's Speed fell!");
|
||||
}
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ SINGLE_BATTLE_TEST("Sticky Syrup isn't applied again if the target is already co
|
|||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player);
|
||||
HP_BAR(opponent);
|
||||
MESSAGE("Foe Wobbuffet got covered in sticky syrup!");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent);
|
||||
MESSAGE("Foe Wobbuffet's Speed fell!");
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player);
|
||||
HP_BAR(opponent);
|
||||
|
@ -89,9 +89,9 @@ SINGLE_BATTLE_TEST("Sticky Syrup speed reduction is prevented by Clear Body, Whi
|
|||
{
|
||||
MESSAGE("Foe Beldum got covered in sticky syrup!");
|
||||
ABILITY_POPUP(opponent, ABILITY_CLEAR_BODY);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent);
|
||||
MESSAGE("Foe Beldum's Clear Body prevents stat loss!");
|
||||
NONE_OF {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("Foe Beldum's Speed fell!");
|
||||
}
|
||||
}
|
||||
|
@ -99,9 +99,9 @@ SINGLE_BATTLE_TEST("Sticky Syrup speed reduction is prevented by Clear Body, Whi
|
|||
{
|
||||
MESSAGE("Foe Torkoal got covered in sticky syrup!");
|
||||
ABILITY_POPUP(opponent, ABILITY_WHITE_SMOKE);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent);
|
||||
MESSAGE("Foe Torkoal's White Smoke prevents stat loss!");
|
||||
NONE_OF {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("Foe Torkoal's Speed fell!");
|
||||
}
|
||||
}
|
||||
|
@ -109,9 +109,9 @@ SINGLE_BATTLE_TEST("Sticky Syrup speed reduction is prevented by Clear Body, Whi
|
|||
{
|
||||
MESSAGE("Foe Solgaleo got covered in sticky syrup!");
|
||||
ABILITY_POPUP(opponent, ABILITY_FULL_METAL_BODY);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent);
|
||||
MESSAGE("Foe Solgaleo's Full Metal Body prevents stat loss!");
|
||||
NONE_OF {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("Foe Solgaleo's Speed fell!");
|
||||
}
|
||||
}
|
||||
|
@ -131,7 +131,7 @@ SINGLE_BATTLE_TEST("Sticky Syrup speed reduction is prevented by Clear Amulet")
|
|||
MESSAGE("Foe Wobbuffet got covered in sticky syrup!");
|
||||
MESSAGE("Foe Wobbuffet's Clear Amulet prevents its stats from being lowered!");
|
||||
NONE_OF {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent);
|
||||
MESSAGE("Foe Wobbuffet's Speed fell!");
|
||||
}
|
||||
}
|
||||
|
@ -150,13 +150,16 @@ SINGLE_BATTLE_TEST("Sticky syrup will not decrease speed further then minus six"
|
|||
TURN { MOVE(player, MOVE_SYRUP_BOMB); }
|
||||
TURN {}
|
||||
} SCENE {
|
||||
for (j = 0; j < 3; j++) { ANIMATION(ANIM_TYPE_MOVE, MOVE_SCARY_FACE, player); }
|
||||
for (j = 0; j < 3; j++) {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCARY_FACE, player);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
}
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player);
|
||||
HP_BAR(opponent);
|
||||
MESSAGE("Foe Wobbuffet got covered in sticky syrup!");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent);
|
||||
MESSAGE("Foe Wobbuffet's Speed won't go lower!");
|
||||
NONE_OF {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("Foe Wobbuffet's Speed fell!");
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue