Merge branch '_RHH/master' into _RHH/upcoming
This commit is contained in:
commit
a34a3cad36
BIN
graphics/pokemon/duraludon/anim_front.png
Normal file
BIN
graphics/pokemon/duraludon/anim_front.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 891 B |
@ -8,7 +8,7 @@ JASC-PAL
|
||||
16 16 16
|
||||
81 96 101
|
||||
226 157 109
|
||||
253 248 236
|
||||
242 211 111
|
||||
118 138 154
|
||||
149 163 164
|
||||
8 36 82
|
||||
|
||||
@ -1029,8 +1029,8 @@ void InitAnimLinearTranslation(struct Sprite *sprite)
|
||||
u16 xDelta = abs(x) << 8;
|
||||
u16 yDelta = abs(y) << 8;
|
||||
|
||||
xDelta = xDelta / sprite->data[0];
|
||||
yDelta = yDelta / sprite->data[0];
|
||||
xDelta = SAFE_DIV(xDelta, sprite->data[0]);
|
||||
yDelta = SAFE_DIV(yDelta, sprite->data[0]);
|
||||
|
||||
if (movingLeft)
|
||||
xDelta |= 1;
|
||||
|
||||
@ -7844,8 +7844,8 @@ static void SpriteCB_MindBlownBall(struct Sprite *sprite)
|
||||
sprite->data[3] = gBattleAnimArgs[2];
|
||||
sprite->data[4] = sprite->x << 4;
|
||||
sprite->data[5] = sprite->y << 4;
|
||||
sprite->data[6] = ((oldPosX - sprite->x) << 4) / (gBattleAnimArgs[0] << 1);
|
||||
sprite->data[7] = ((oldPosY - sprite->y) << 4) / (gBattleAnimArgs[0] << 1);
|
||||
sprite->data[6] = SAFE_DIV((oldPosX - sprite->x) << 4, gBattleAnimArgs[0] << 1);
|
||||
sprite->data[7] = SAFE_DIV((oldPosY - sprite->y) << 4, gBattleAnimArgs[0] << 1);
|
||||
sprite->callback = AnimMindBlownBallStep;
|
||||
}
|
||||
static void AnimMindBlownBallStep(struct Sprite *sprite)
|
||||
|
||||
@ -10831,16 +10831,16 @@ static void Cmd_various(void)
|
||||
switch (GetBattlerHoldEffectParam(battler))
|
||||
{
|
||||
case HOLD_EFFECT_PARAM_ELECTRIC_TERRAIN:
|
||||
effect = TryHandleSeed(battler, STATUS_FIELD_ELECTRIC_TERRAIN, STAT_DEF, item, ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN);
|
||||
effect = TryHandleSeed(battler, STATUS_FIELD_ELECTRIC_TERRAIN, STAT_DEF, item, ITEMEFFECT_NONE);
|
||||
break;
|
||||
case HOLD_EFFECT_PARAM_GRASSY_TERRAIN:
|
||||
effect = TryHandleSeed(battler, STATUS_FIELD_GRASSY_TERRAIN, STAT_DEF, item, ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN);
|
||||
effect = TryHandleSeed(battler, STATUS_FIELD_GRASSY_TERRAIN, STAT_DEF, item, ITEMEFFECT_NONE);
|
||||
break;
|
||||
case HOLD_EFFECT_PARAM_MISTY_TERRAIN:
|
||||
effect = TryHandleSeed(battler, STATUS_FIELD_MISTY_TERRAIN, STAT_SPDEF, item, ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN);
|
||||
effect = TryHandleSeed(battler, STATUS_FIELD_MISTY_TERRAIN, STAT_SPDEF, item, ITEMEFFECT_NONE);
|
||||
break;
|
||||
case HOLD_EFFECT_PARAM_PSYCHIC_TERRAIN:
|
||||
effect = TryHandleSeed(battler, STATUS_FIELD_PSYCHIC_TERRAIN, STAT_SPDEF, item, ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN);
|
||||
effect = TryHandleSeed(battler, STATUS_FIELD_PSYCHIC_TERRAIN, STAT_SPDEF, item, ITEMEFFECT_NONE);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@ -24186,7 +24186,7 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_
|
||||
#endif //P_FAMILY_ARCTOVISH
|
||||
|
||||
#if P_FAMILY_DURALUDON
|
||||
const u32 gMonFrontPic_Duraludon[] = INCBIN_U32("graphics/pokemon/duraludon/front.4bpp.lz");
|
||||
const u32 gMonFrontPic_Duraludon[] = INCBIN_U32("graphics/pokemon/duraludon/anim_front.4bpp.lz");
|
||||
const u32 gMonPalette_Duraludon[] = INCBIN_U32("graphics/pokemon/duraludon/normal.gbapal.lz");
|
||||
const u32 gMonBackPic_Duraludon[] = INCBIN_U32("graphics/pokemon/duraludon/back.4bpp.lz");
|
||||
const u32 gMonShinyPalette_Duraludon[] = INCBIN_U32("graphics/pokemon/duraludon/shiny.gbapal.lz");
|
||||
|
||||
@ -10839,7 +10839,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] =
|
||||
.priority = 0,
|
||||
.category = DAMAGE_CATEGORY_STATUS,
|
||||
.zMove = { .effect = Z_EFFECT_ACC_UP_1 },
|
||||
//.ignoresSubstitute = TRUE,
|
||||
//.ignoresSubstitute = TRUE, In Gen5+, the evasion drop will no longer bypass Substitute. However, this is tricky to code
|
||||
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
|
||||
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
|
||||
.contestCategory = CONTEST_CATEGORY_BEAUTY,
|
||||
@ -13335,7 +13335,6 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] =
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.category = DAMAGE_CATEGORY_SPECIAL,
|
||||
//.windMove = TRUE,
|
||||
.additionalEffects = ADDITIONAL_EFFECTS({
|
||||
.moveEffect = MOVE_EFFECT_ACC_MINUS_1,
|
||||
.chance = 50,
|
||||
@ -20364,7 +20363,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] =
|
||||
.argument = { .absorbPercentage = 50 },
|
||||
.thawsUser = TRUE,
|
||||
.metronomeBanned = TRUE,
|
||||
.healingMove = B_EXTRAPOLATED_MOVE_FLAGS,
|
||||
.healingMove = TRUE,
|
||||
.additionalEffects = ADDITIONAL_EFFECTS({
|
||||
.moveEffect = MOVE_EFFECT_BURN,
|
||||
.chance = 20,
|
||||
|
||||
@ -6097,8 +6097,12 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
|
||||
.frontPic = gMonFrontPic_Duraludon,
|
||||
.frontPicSize = MON_COORDS_SIZE(56, 64),
|
||||
.frontPicYOffset = 0,
|
||||
.frontAnimFrames = sAnims_SingleFramePlaceHolder,
|
||||
//.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,
|
||||
.frontAnimFrames = ANIM_FRAMES(
|
||||
ANIMCMD_FRAME(0, 20),
|
||||
ANIMCMD_FRAME(1, 60),
|
||||
ANIMCMD_FRAME(0, 2),
|
||||
),
|
||||
.frontAnimId = ANIM_SHAKE_FLASH_YELLOW_FAST,
|
||||
.backPic = gMonBackPic_Duraludon,
|
||||
.backPicSize = MON_COORDS_SIZE(64, 64),
|
||||
.backPicYOffset = 0,
|
||||
|
||||
@ -1,62 +1,131 @@
|
||||
#include "global.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gItemsInfo[ITEM_ELECTRIC_SEED].holdEffect == HOLD_EFFECT_SEEDS);
|
||||
ASSUME(gItemsInfo[ITEM_ELECTRIC_SEED].holdEffectParam == HOLD_EFFECT_PARAM_ELECTRIC_TERRAIN);
|
||||
ASSUME(gItemsInfo[ITEM_GRASSY_SEED].holdEffect == HOLD_EFFECT_SEEDS);
|
||||
ASSUME(gItemsInfo[ITEM_GRASSY_SEED].holdEffectParam == HOLD_EFFECT_PARAM_GRASSY_TERRAIN);
|
||||
ASSUME(gItemsInfo[ITEM_MISTY_SEED].holdEffect == HOLD_EFFECT_SEEDS);
|
||||
ASSUME(gItemsInfo[ITEM_MISTY_SEED].holdEffectParam == HOLD_EFFECT_PARAM_MISTY_TERRAIN);
|
||||
ASSUME(gItemsInfo[ITEM_PSYCHIC_SEED].holdEffect == HOLD_EFFECT_SEEDS);
|
||||
ASSUME(gItemsInfo[ITEM_PSYCHIC_SEED].holdEffectParam == HOLD_EFFECT_PARAM_PSYCHIC_TERRAIN);
|
||||
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Electric Seed raises the holder's Defense on Electric Terrain")
|
||||
{
|
||||
u32 ability, item;
|
||||
PARAMETRIZE { ability = ABILITY_TELEPATHY; item = ITEM_NONE; }
|
||||
PARAMETRIZE { ability = ABILITY_TELEPATHY; item = ITEM_ELECTRIC_SEED; }
|
||||
PARAMETRIZE { ability = ABILITY_ELECTRIC_SURGE; item = ITEM_NONE; }
|
||||
PARAMETRIZE { ability = ABILITY_ELECTRIC_SURGE; item = ITEM_ELECTRIC_SEED; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[ITEM_ELECTRIC_SEED].holdEffect == HOLD_EFFECT_SEEDS);
|
||||
ASSUME(gItemsInfo[ITEM_ELECTRIC_SEED].holdEffectParam == HOLD_EFFECT_PARAM_ELECTRIC_TERRAIN);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_ELECTRIC_SEED); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_ELECTRIC_SEED); }
|
||||
OPPONENT(SPECIES_TAPU_KOKO) { Ability(ability); Item(item); }
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_ELECTRIC_TERRAIN); }
|
||||
if (ability == ABILITY_TELEPATHY)
|
||||
TURN { MOVE(player, MOVE_ELECTRIC_TERRAIN); }
|
||||
TURN { SWITCH(player, 1); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
|
||||
MESSAGE("Using Electric Seed, the Defense of Wobbuffet rose!");
|
||||
if (item == ITEM_ELECTRIC_SEED) {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("Using Electric Seed, the Defense of the opposing Tapu Koko rose!");
|
||||
}
|
||||
SWITCH_OUT_MESSAGE("Wobbuffet");
|
||||
SEND_IN_MESSAGE("Wobbuffet");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
|
||||
MESSAGE("Using Electric Seed, the Defense of Wobbuffet rose!");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Grassy Seed raises the holder's Defense on Grassy Terrain")
|
||||
{
|
||||
u32 ability, item;
|
||||
PARAMETRIZE { ability = ABILITY_TELEPATHY; item = ITEM_NONE; }
|
||||
PARAMETRIZE { ability = ABILITY_TELEPATHY; item = ITEM_GRASSY_SEED; }
|
||||
PARAMETRIZE { ability = ABILITY_GRASSY_SURGE; item = ITEM_NONE; }
|
||||
PARAMETRIZE { ability = ABILITY_GRASSY_SURGE; item = ITEM_GRASSY_SEED; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[ITEM_GRASSY_SEED].holdEffect == HOLD_EFFECT_SEEDS);
|
||||
ASSUME(gItemsInfo[ITEM_GRASSY_SEED].holdEffectParam == HOLD_EFFECT_PARAM_GRASSY_TERRAIN);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_GRASSY_SEED); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_GRASSY_SEED); }
|
||||
OPPONENT(SPECIES_TAPU_BULU) { Ability(ability); Item(item); }
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_GRASSY_TERRAIN); }
|
||||
if (ability == ABILITY_TELEPATHY)
|
||||
TURN { MOVE(player, MOVE_GRASSY_TERRAIN); }
|
||||
TURN { SWITCH(player, 1); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
|
||||
MESSAGE("Using Grassy Seed, the Defense of Wobbuffet rose!");
|
||||
if (item == ITEM_GRASSY_SEED) {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("Using Grassy Seed, the Defense of the opposing Tapu Bulu rose!");
|
||||
}
|
||||
SWITCH_OUT_MESSAGE("Wobbuffet");
|
||||
SEND_IN_MESSAGE("Wobbuffet");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
|
||||
MESSAGE("Using Grassy Seed, the Defense of Wobbuffet rose!");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Misty Seed raises the holder's Sp. Defense on Misty Terrain")
|
||||
{
|
||||
u32 ability, item;
|
||||
PARAMETRIZE { ability = ABILITY_TELEPATHY; item = ITEM_NONE; }
|
||||
PARAMETRIZE { ability = ABILITY_TELEPATHY; item = ITEM_MISTY_SEED; }
|
||||
PARAMETRIZE { ability = ABILITY_MISTY_SURGE; item = ITEM_NONE; }
|
||||
PARAMETRIZE { ability = ABILITY_MISTY_SURGE; item = ITEM_MISTY_SEED; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[ITEM_MISTY_SEED].holdEffect == HOLD_EFFECT_SEEDS);
|
||||
ASSUME(gItemsInfo[ITEM_MISTY_SEED].holdEffectParam == HOLD_EFFECT_PARAM_MISTY_TERRAIN);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_MISTY_SEED); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_MISTY_SEED); }
|
||||
OPPONENT(SPECIES_TAPU_FINI) { Ability(ability); Item(item); }
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_MISTY_TERRAIN); }
|
||||
if (ability == ABILITY_TELEPATHY)
|
||||
TURN { MOVE(player, MOVE_MISTY_TERRAIN); }
|
||||
TURN { SWITCH(player, 1); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
|
||||
MESSAGE("Using Misty Seed, the Sp. Def of Wobbuffet rose!");
|
||||
if (item == ITEM_MISTY_SEED) {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("Using Misty Seed, the Sp. Def of the opposing Tapu Fini rose!");
|
||||
}
|
||||
SWITCH_OUT_MESSAGE("Wobbuffet");
|
||||
SEND_IN_MESSAGE("Wobbuffet");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
|
||||
MESSAGE("Using Misty Seed, the Sp. Def of Wobbuffet rose!");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Psychic Seed raises the holder's Sp. Defense on Psychic Terrain")
|
||||
{
|
||||
u32 ability, item;
|
||||
PARAMETRIZE { ability = ABILITY_TELEPATHY; item = ITEM_NONE; }
|
||||
PARAMETRIZE { ability = ABILITY_TELEPATHY; item = ITEM_PSYCHIC_SEED; }
|
||||
PARAMETRIZE { ability = ABILITY_PSYCHIC_SURGE; item = ITEM_NONE; }
|
||||
PARAMETRIZE { ability = ABILITY_PSYCHIC_SURGE; item = ITEM_PSYCHIC_SEED; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[ITEM_PSYCHIC_SEED].holdEffect == HOLD_EFFECT_SEEDS);
|
||||
ASSUME(gItemsInfo[ITEM_PSYCHIC_SEED].holdEffectParam == HOLD_EFFECT_PARAM_PSYCHIC_TERRAIN);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_PSYCHIC_SEED); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_PSYCHIC_SEED); }
|
||||
OPPONENT(SPECIES_TAPU_LELE) { Ability(ability); Item(item); }
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_PSYCHIC_TERRAIN); }
|
||||
if (ability == ABILITY_TELEPATHY)
|
||||
TURN { MOVE(player, MOVE_PSYCHIC_TERRAIN); }
|
||||
TURN { SWITCH(player, 1); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
|
||||
MESSAGE("Using Psychic Seed, the Sp. Def of Wobbuffet rose!");
|
||||
if (item == ITEM_PSYCHIC_SEED) {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("Using Psychic Seed, the Sp. Def of the opposing Tapu Lele rose!");
|
||||
}
|
||||
SWITCH_OUT_MESSAGE("Wobbuffet");
|
||||
SEND_IN_MESSAGE("Wobbuffet");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
|
||||
MESSAGE("Using Psychic Seed, the Sp. Def of Wobbuffet rose!");
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user