mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 11:37:40 +01:00
Parabolic Charge anim
This commit is contained in:
parent
cf73a3ba28
commit
1c73e61a2b
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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())
|
||||
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user