Parabolic Charge anim

This commit is contained in:
DizzyEggg 2019-04-08 16:48:04 +02:00
parent cf73a3ba28
commit 1c73e61a2b
4 changed files with 93 additions and 27 deletions

View File

@ -2035,80 +2035,80 @@ Move_LEAF_STORM:
waitforvisualfinish
monbgprio_28 ANIM_TARGET
setalpha 12, 8
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -16, 19, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 12, 19, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -20, 23, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 16, 23, 0, 0
delay 3
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 5, 0, 50, 1
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -24, 27, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 20, 27, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -24, 27, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 20, 27, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -20, 23, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 16, 23, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -16, 19, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 12, 19, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -8, 11, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -16, 19, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 12, 19, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -20, 23, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 16, 23, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -24, 27, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 20, 27, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -24, 27, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 20, 27, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -20, 23, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 16, 23, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -16, 19, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 12, 19, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -16, 19, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 12, 19, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -20, 23, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 16, 23, 0, 0
delay 3
playsewithpan SE_W026, 192
playsewithpan SE_W026, SOUND_PAN_ATTACKER
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -24, 27, 0, 0
createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 20, 27, 0, 0
delay 3
@ -2120,7 +2120,7 @@ Move_LEAF_STORM:
createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, 0, 36, 10
createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, -24, 12, 10
createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, -24, -12, 10
playsewithpan SE_W013, 63
playsewithpan SE_W013, SOUND_PAN_TARGET
delay 2
createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, 36, 0, 10
createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, 12, -24, 10
@ -2129,7 +2129,6 @@ Move_LEAF_STORM:
createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, -12, 24, 10
createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, -12, -24, 10
waitforvisualfinish
clearmonbg ANIM_DEF_PARTNER
blendoff
delay 0
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 12, 0, RGB(13, 31, 12)
@ -2643,7 +2642,59 @@ Move_ION_DELUGE:
end
Move_PARABOLIC_CHARGE:
loadspritegfx ANIM_TAG_ELECTRIC_ORBS
loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT
loadspritegfx ANIM_TAG_SPARK
loadspritegfx ANIM_TAG_LIGHTNING
loadspritegfx ANIM_TAG_ORBS
loadspritegfx ANIM_TAG_BLUE_STAR
monbg ANIM_ATTACKER
setalpha 12, 8
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 6, RGB(18, 16, 3)
waitforvisualfinish
createvisualtask sub_810AAFC, 2, ANIM_ATTACKER, 3, 20, 20
playsewithpan SE_W129, SOUND_PAN_ATTACKER
delay 12
createsprite gUnknown_08595A18, ANIM_ATTACKER, 2
delay 30
jumpifdoublebattle ParabolicChargeDouble
createvisualtask sub_810B29C, 5, ANIM_TARGET
delay 12
waitforvisualfinish
createvisualtask sub_810B55C, 5, ANIM_TARGET
playsewithpan SE_W070, SOUND_PAN_TARGET
waitforvisualfinish
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 6, 18, 1
createvisualtask sub_8116620, 5, 4, 0, 16, 16, RGB_BLACK
delay 4
createvisualtask sub_8116620, 5, 4, 0, 0, 0, RGB_BLACK
ParabolicChargeHeal:
waitforvisualfinish
clearmonbg ANIM_ATTACKER
waitforvisualfinish
call HealingEffect
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 6, 0, RGB(18, 16, 3)
waitforvisualfinish
blendoff
end
ParabolicChargeDouble:
createvisualtask sub_810B29C, 5, ANIM_TARGET
createvisualtask sub_810B29C, 5, ANIM_DEF_PARTNER
createvisualtask sub_810B29C, 5, ANIM_ATK_PARTNER
delay 12
waitforvisualfinish
createvisualtask sub_810B55C, 5, ANIM_TARGET
createvisualtask sub_810B55C, 5, ANIM_DEF_PARTNER
createvisualtask sub_810B55C, 5, ANIM_ATK_PARTNER
playsewithpan SE_W070, SOUND_PAN_TARGET
waitforvisualfinish
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 6, 18, 1
createvisualtask AnimTask_ShakeMon, 2, ANIM_DEF_PARTNER, 0, 6, 18, 1
createvisualtask AnimTask_ShakeMon, 2, ANIM_ATK_PARTNER, 0, 6, 18, 1
createvisualtask sub_8116620, 5, 4 | 8 | 0x10, 0, 16, 16, RGB_BLACK
delay 4
createvisualtask sub_8116620, 5, 4 | 8 | 0x10, 0, 0, 0, RGB_BLACK
goto ParabolicChargeHeal;
Move_FORESTS_CURSE:
end
@ -6956,10 +7007,10 @@ Move_SHOCK_WAVE:
delay 12
createsprite gUnknown_08595A18, ANIM_ATTACKER, 2
delay 30
createvisualtask sub_810B29C, 5
createvisualtask sub_810B29C, 5, ANIM_TARGET
delay 12
waitforvisualfinish
createvisualtask sub_810B55C, 5
createvisualtask sub_810B55C, 5, ANIM_TARGET
playsewithpan SE_W161B, SOUND_PAN_TARGET
waitforvisualfinish
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 6, 18, 1

View File

@ -57,6 +57,7 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo
void DestroyAnimSprite(struct Sprite *sprite);
void DestroyAnimVisualTask(u8 taskId);
void DestroyAnimSoundTask(u8 taskId);
u8 GetAnimBattlerId(u8 wantedBattler);
bool8 IsBattlerSpriteVisible(u8 battlerId);
void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible);
bool8 IsContest(void);

View File

@ -2269,6 +2269,18 @@ static void ScriptCmd_monbg(void)
gAnimScriptCallback = WaitAnimFrameCount;
}
u8 GetAnimBattlerId(u8 wantedBattler)
{
if (wantedBattler == ANIM_ATTACKER)
return gBattleAnimAttacker;
else if (wantedBattler == ANIM_TARGET)
return gBattleAnimTarget;
else if (wantedBattler == ANIM_ATK_PARTNER)
return BATTLE_PARTNER(gBattleAnimAttacker);
else
return BATTLE_PARTNER(gBattleAnimTarget);
}
bool8 IsBattlerSpriteVisible(u8 battlerId)
{
if (IsContest())

View File

@ -1137,6 +1137,7 @@ static void sub_810B23C(struct Sprite *sprite)
void sub_810B29C(u8 taskId)
{
struct Task *task = &gTasks[taskId];
u8 target = GetAnimBattlerId(gBattleAnimArgs[0]);
switch (task->data[0])
{
@ -1144,7 +1145,7 @@ void sub_810B29C(u8 taskId)
task->data[6] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
task->data[7] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
task->data[8] = 4;
task->data[10] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
task->data[10] = GetBattlerSpriteCoord(target, BATTLER_COORD_X_2);
task->data[9] = (task->data[10] - task->data[6]) / 5;
task->data[4] = 7;
task->data[5] = -1;
@ -1261,19 +1262,20 @@ static void sub_810B51C(struct Sprite *sprite)
void sub_810B55C(u8 taskId)
{
struct Task *task = &gTasks[taskId];
u8 target = GetAnimBattlerId(gBattleAnimArgs[0]);
switch (task->data[0])
{
case 0:
task->data[15] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 32;
task->data[15] = GetBattlerSpriteCoord(target, BATTLER_COORD_Y) + 32;
task->data[14] = task->data[15];
while (task->data[14] > 16)
{
task->data[14] -= 32;
}
task->data[13] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
task->data[12] = GetBattlerSpriteSubpriority(gBattleAnimTarget) - 2;
task->data[13] = GetBattlerSpriteCoord(target, BATTLER_COORD_X_2);
task->data[12] = GetBattlerSpriteSubpriority(target) - 2;
task->data[0]++;
break;
case 1: