mirror of
https://github.com/rh-hideout/pokeemerald-expansion.git
synced 2026-04-26 02:14:22 -05:00
More battle environment updates (#8809)
This commit is contained in:
parent
2183fa748a
commit
f6be01e92c
|
|
@ -27523,7 +27523,7 @@ gBattleAnimMove_RazorLeaf::
|
|||
end
|
||||
|
||||
gBattleAnimMove_NaturePower::
|
||||
@ No actual animation, uses the animation of a move from gBattleEnvironmentInfo.naturePower instead
|
||||
@ No actual animation, uses the animation of a move from src/data/battle_environment.h instead
|
||||
|
||||
gBattleAnimMove_AncientPower::
|
||||
loadspritegfx ANIM_TAG_ROCKS
|
||||
|
|
@ -30306,7 +30306,7 @@ gBattleAnimMove_SkyUppercut::
|
|||
end
|
||||
|
||||
gBattleAnimMove_SecretPower::
|
||||
@ No actual animation, uses the animation of a move from gBattleEnvironmentInfo.secretPowerAnimation instead
|
||||
@ No actual animation, uses the animation of a move from src/data/battle_environment.h instead
|
||||
|
||||
gBattleAnimMove_Twister::
|
||||
loadspritegfx ANIM_TAG_LEAF
|
||||
|
|
|
|||
|
|
@ -101,6 +101,9 @@ void LoadMoveBg(u16 bgId);
|
|||
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
|
||||
void DrawBattlerOnBg(int bgId, u8 x, u8 y, u8 battlerPosition, u8 paletteId, u8 *tiles, u16 *tilemap, u16 tilesOffset);
|
||||
void HandleIntroSlide(u8 environment);
|
||||
void BattleIntroSlide1(u8 taskId);
|
||||
void BattleIntroSlide2(u8 taskId);
|
||||
void BattleIntroSlide3(u8 taskId);
|
||||
int GetAnimBgAttribute(u8 bgId, u8 attributeId);
|
||||
|
||||
// battle_anim_mons.c
|
||||
|
|
|
|||
|
|
@ -6,11 +6,14 @@
|
|||
|
||||
struct BattleEnvironment
|
||||
{
|
||||
u8 name[26];
|
||||
u16 naturePower;
|
||||
const void *secretPowerAnimation;
|
||||
u16 secretPowerEffect;
|
||||
enum Type camouflageType;
|
||||
u16 camouflageBlend;
|
||||
struct BattleBackground background;
|
||||
TaskFunc battleIntroSlide;
|
||||
};
|
||||
|
||||
extern const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT];
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "battle_anim.h"
|
||||
#include "battle_environment.h"
|
||||
#include "contest.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "graphics.h"
|
||||
|
|
@ -104,41 +105,7 @@ void AnimTask_BlendBattleAnimPalExclude(u8 taskId)
|
|||
void AnimTask_SetCamouflageBlend(u8 taskId)
|
||||
{
|
||||
u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]);
|
||||
switch (gBattleEnvironment)
|
||||
{
|
||||
case BATTLE_ENVIRONMENT_GRASS:
|
||||
gBattleAnimArgs[4] = RGB(12, 24, 2);
|
||||
break;
|
||||
case BATTLE_ENVIRONMENT_LONG_GRASS:
|
||||
gBattleAnimArgs[4] = RGB(0, 15, 2);
|
||||
break;
|
||||
case BATTLE_ENVIRONMENT_SAND:
|
||||
gBattleAnimArgs[4] = RGB(30, 24, 11);
|
||||
break;
|
||||
case BATTLE_ENVIRONMENT_UNDERWATER:
|
||||
gBattleAnimArgs[4] = RGB(0, 0, 18);
|
||||
break;
|
||||
case BATTLE_ENVIRONMENT_WATER:
|
||||
gBattleAnimArgs[4] = RGB(11, 22, 31);
|
||||
break;
|
||||
case BATTLE_ENVIRONMENT_POND:
|
||||
gBattleAnimArgs[4] = RGB(11, 22, 31);
|
||||
break;
|
||||
case BATTLE_ENVIRONMENT_MOUNTAIN:
|
||||
gBattleAnimArgs[4] = RGB(22, 16, 10);
|
||||
break;
|
||||
case BATTLE_ENVIRONMENT_CAVE:
|
||||
gBattleAnimArgs[4] = RGB(14, 9, 3);
|
||||
break;
|
||||
case BATTLE_ENVIRONMENT_BUILDING:
|
||||
gBattleAnimArgs[4] = RGB_WHITE;
|
||||
break;
|
||||
case BATTLE_ENVIRONMENT_PLAIN:
|
||||
default:
|
||||
gBattleAnimArgs[4] = RGB_WHITE;
|
||||
break;
|
||||
}
|
||||
|
||||
gBattleAnimArgs[4] = gBattleEnvironmentInfo[gBattleEnvironment].camouflageBlend;
|
||||
StartBlendAnimSpriteColor(taskId, selectedPalettes);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -609,7 +609,7 @@ const struct WindowTemplate *const gBattleWindowTemplates[] =
|
|||
};
|
||||
|
||||
// If current map scene equals any of the values in sMapBattleSceneMapping,
|
||||
// use its battle terrain value. Otherwise, use the default.
|
||||
// use its battle environment value. Otherwise, use the default.
|
||||
static u8 GetBattleEnvironmentByMapScene(u8 mapBattleScene)
|
||||
{
|
||||
int i;
|
||||
|
|
@ -621,26 +621,26 @@ static u8 GetBattleEnvironmentByMapScene(u8 mapBattleScene)
|
|||
return BATTLE_ENVIRONMENT_PLAIN;
|
||||
}
|
||||
|
||||
// Loads the initial battle terrain.
|
||||
static void LoadBattleEnvironmentGfx(u16 terrain)
|
||||
// Loads the initial battle environment.
|
||||
static void LoadBattleEnvironmentGfx(u16 environment)
|
||||
{
|
||||
if (terrain >= NELEMS(gBattleEnvironmentInfo))
|
||||
terrain = BATTLE_ENVIRONMENT_PLAIN; // If higher than the number of entries in gBattleEnvironmentInfo, use the default.
|
||||
if (environment >= NELEMS(gBattleEnvironmentInfo))
|
||||
environment = BATTLE_ENVIRONMENT_PLAIN; // If higher than the number of entries in gBattleEnvironmentInfo, use the default.
|
||||
// Copy to bg3
|
||||
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[terrain].background.tileset, (void *)(BG_CHAR_ADDR(2)));
|
||||
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[terrain].background.tilemap, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadPalette(gBattleEnvironmentInfo[terrain].background.palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[environment].background.tileset, (void *)(BG_CHAR_ADDR(2)));
|
||||
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[environment].background.tilemap, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadPalette(gBattleEnvironmentInfo[environment].background.palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
}
|
||||
|
||||
// Loads the entry associated with the battle terrain.
|
||||
// Loads the entry associated with the battle environment.
|
||||
// This can be the grass moving on the screen at the start of a wild encounter in tall grass.
|
||||
static void LoadBattleEnvironmentEntryGfx(u16 terrain)
|
||||
static void LoadBattleEnvironmentEntryGfx(u16 environment)
|
||||
{
|
||||
if (terrain >= NELEMS(gBattleEnvironmentInfo))
|
||||
terrain = BATTLE_ENVIRONMENT_PLAIN;
|
||||
if (environment >= NELEMS(gBattleEnvironmentInfo))
|
||||
environment = BATTLE_ENVIRONMENT_PLAIN;
|
||||
// Copy to bg1
|
||||
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[terrain].background.entryTileset, (void *)BG_CHAR_ADDR(1));
|
||||
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[terrain].background.entryTilemap, (void *)BG_SCREEN_ADDR(28));
|
||||
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[environment].background.entryTileset, (void *)BG_CHAR_ADDR(1));
|
||||
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[environment].background.entryTilemap, (void *)BG_SCREEN_ADDR(28));
|
||||
}
|
||||
|
||||
static u8 GetBattleEnvironmentOverride(void)
|
||||
|
|
@ -1049,48 +1049,21 @@ void DrawBattleEntryBackground(void)
|
|||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY)
|
||||
{
|
||||
switch (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL))
|
||||
{
|
||||
case SPECIES_GROUDON:
|
||||
LoadBattleEnvironmentEntryGfx(BATTLE_ENVIRONMENT_CAVE);
|
||||
break;
|
||||
case SPECIES_KYOGRE:
|
||||
LoadBattleEnvironmentEntryGfx(BATTLE_ENVIRONMENT_UNDERWATER);
|
||||
break;
|
||||
case SPECIES_RAYQUAZA:
|
||||
LoadBattleEnvironmentEntryGfx(BATTLE_ENVIRONMENT_RAYQUAZA);
|
||||
break;
|
||||
default:
|
||||
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[gBattleEnvironment].background.entryTileset, (void *)(BG_CHAR_ADDR(1)));
|
||||
DecompressDataWithHeaderVram(gBattleEnvironmentInfo[gBattleEnvironment].background.entryTilemap, (void *)(BG_SCREEN_ADDR(28)));
|
||||
break;
|
||||
}
|
||||
LoadBattleEnvironmentEntryGfx(GetBattleEnvironmentOverride());
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
|
||||
{
|
||||
enum TrainerClassID trainerClass = GetTrainerClassFromId(TRAINER_BATTLE_PARAM.opponentA);
|
||||
if (trainerClass == TRAINER_CLASS_LEADER)
|
||||
if (trainerClass == TRAINER_CLASS_LEADER || trainerClass == TRAINER_CLASS_CHAMPION)
|
||||
{
|
||||
LoadBattleEnvironmentEntryGfx(BATTLE_ENVIRONMENT_BUILDING);
|
||||
return;
|
||||
}
|
||||
else if (trainerClass == TRAINER_CLASS_CHAMPION)
|
||||
{
|
||||
LoadBattleEnvironmentEntryGfx(BATTLE_ENVIRONMENT_BUILDING);
|
||||
LoadBattleEnvironmentEntryGfx(GetBattleEnvironmentOverride());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (GetCurrentMapBattleScene() == MAP_BATTLE_SCENE_NORMAL)
|
||||
{
|
||||
LoadBattleEnvironmentEntryGfx(gBattleEnvironment);
|
||||
}
|
||||
else
|
||||
{
|
||||
LoadBattleEnvironmentEntryGfx(gBattleEnvironment);
|
||||
}
|
||||
LoadBattleEnvironmentEntryGfx(gBattleEnvironment);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#include "global.h"
|
||||
#include "battle.h"
|
||||
#include "battle_anim.h"
|
||||
#include "battle_environment.h"
|
||||
#include "battle_main.h"
|
||||
#include "battle_setup.h"
|
||||
#include "bg.h"
|
||||
|
|
@ -13,29 +14,15 @@
|
|||
#include "constants/battle_partner.h"
|
||||
#include "constants/trainers.h"
|
||||
|
||||
static void BattleIntroSlide1(u8);
|
||||
static void BattleIntroSlide2(u8);
|
||||
static void BattleIntroSlide3(u8);
|
||||
void BattleIntroSlide1(u8);
|
||||
void BattleIntroSlide2(u8);
|
||||
void BattleIntroSlide3(u8);
|
||||
static void BattleIntroSlideLink(u8);
|
||||
static void BattleIntroSlidePartner(u8);
|
||||
static void BattleIntroNoSlide(u8);
|
||||
|
||||
static const u8 sBattleAnimBgCnts[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT};
|
||||
|
||||
static const TaskFunc sBattleIntroSlideFuncs[] =
|
||||
{
|
||||
[BATTLE_ENVIRONMENT_GRASS] = BattleIntroSlide1,
|
||||
[BATTLE_ENVIRONMENT_LONG_GRASS] = BattleIntroSlide1,
|
||||
[BATTLE_ENVIRONMENT_SAND] = BattleIntroSlide2,
|
||||
[BATTLE_ENVIRONMENT_UNDERWATER] = BattleIntroSlide2,
|
||||
[BATTLE_ENVIRONMENT_WATER] = BattleIntroSlide2,
|
||||
[BATTLE_ENVIRONMENT_POND] = BattleIntroSlide1,
|
||||
[BATTLE_ENVIRONMENT_MOUNTAIN] = BattleIntroSlide1,
|
||||
[BATTLE_ENVIRONMENT_CAVE] = BattleIntroSlide1,
|
||||
[BATTLE_ENVIRONMENT_BUILDING] = BattleIntroSlide3,
|
||||
[BATTLE_ENVIRONMENT_PLAIN] = BattleIntroSlide3,
|
||||
};
|
||||
|
||||
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value)
|
||||
{
|
||||
if (bgId < 4)
|
||||
|
|
@ -125,10 +112,10 @@ void HandleIntroSlide(u8 environment)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (environment >= NELEMS(sBattleIntroSlideFuncs)
|
||||
|| sBattleIntroSlideFuncs[environment] == NULL)
|
||||
if (environment >= NELEMS(gBattleEnvironmentInfo)
|
||||
|| gBattleEnvironmentInfo[environment].battleIntroSlide == NULL)
|
||||
environment = BATTLE_ENVIRONMENT_PLAIN;
|
||||
taskId = CreateTask(sBattleIntroSlideFuncs[environment], 0);
|
||||
taskId = CreateTask(gBattleEnvironmentInfo[environment].battleIntroSlide, 0);
|
||||
}
|
||||
|
||||
gTasks[taskId].tState = 0;
|
||||
|
|
@ -202,7 +189,7 @@ static void BattleIntroNoSlide(u8 taskId)
|
|||
}
|
||||
}
|
||||
|
||||
static void BattleIntroSlide1(u8 taskId)
|
||||
void BattleIntroSlide1(u8 taskId)
|
||||
{
|
||||
int i;
|
||||
if (B_FAST_INTRO_NO_SLIDE || gTestRunnerHeadless)
|
||||
|
|
@ -289,7 +276,7 @@ static void BattleIntroSlide1(u8 taskId)
|
|||
}
|
||||
}
|
||||
|
||||
static void BattleIntroSlide2(u8 taskId)
|
||||
void BattleIntroSlide2(u8 taskId)
|
||||
{
|
||||
int i;
|
||||
if (B_FAST_INTRO_NO_SLIDE || gTestRunnerHeadless)
|
||||
|
|
@ -403,7 +390,7 @@ static void BattleIntroSlide2(u8 taskId)
|
|||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[4], 0));
|
||||
}
|
||||
|
||||
static void BattleIntroSlide3(u8 taskId)
|
||||
void BattleIntroSlide3(u8 taskId)
|
||||
{
|
||||
int i;
|
||||
if (B_FAST_INTRO_NO_SLIDE || gTestRunnerHeadless)
|
||||
|
|
|
|||
|
|
@ -47,6 +47,24 @@ const u32 gBattleEnvironmentTilemap_Building[] = INCBIN_U32("graphics/battle_env
|
|||
.palette = gBattleEnvironmentPalette_##background, \
|
||||
}
|
||||
|
||||
#define DEFAULT_CAMOUFLAGE_BLEND RGB_WHITE
|
||||
|
||||
// Cave values. Used for BATTLE_ENVIRONMENT_CAVE as well as BATTLE_ENVIRONMENT_GROUDON and BATTLE_ENVIRONMENT_KYOGRE
|
||||
#if B_NATURE_POWER_MOVES >= GEN_6
|
||||
#define CAVE_NATURE_POWER MOVE_POWER_GEM
|
||||
#elif B_NATURE_POWER_MOVES >= GEN_4
|
||||
#define CAVE_NATURE_POWER MOVE_ROCK_SLIDE
|
||||
#else
|
||||
#define CAVE_NATURE_POWER MOVE_SHADOW_BALL
|
||||
#endif
|
||||
#define CAVE_SECRET_POWER_ANIMATION B_SECRET_POWER_ANIMATION >= GEN_4 ? gBattleAnimMove_RockThrow : gBattleAnimMove_Bite
|
||||
#define CAVE_SECRET_POWER_EFFECT MOVE_EFFECT_FLINCH
|
||||
#define CAVE_CAMOUFLAGE_TYPE TYPE_ROCK
|
||||
#define CAVE_CAMOUFLAGE_BLEND RGB(14, 9, 3)
|
||||
#define CAVE_BATTLE_INTRO_SLIDE BattleIntroSlide1
|
||||
|
||||
// Building values. Used for BATTLE_ENVIRONMENT_BUILDING as well as the environments that come from the vanilla MAP_BATTLE_SCENEs: BATTLE_ENVIRONMENT_PLAIN, BATTLE_ENVIRONMENT_FRONTIER, BATTLE_ENVIRONMENT_GYM, BATTLE_ENVIRONMENT_LEADER, BATTLE_ENVIRONMENT_MAGMA, BATTLE_ENVIRONMENT_AQUA, BATTLE_ENVIRONMENT_SIDNEY, BATTLE_ENVIRONMENT_PHOEBE, BATTLE_ENVIRONMENT_GLACIA, BATTLE_ENVIRONMENT_DRAKE, BATTLE_ENVIRONMENT_CHAMPION
|
||||
#define BUILDING_NATURE_POWER B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT
|
||||
#if B_SECRET_POWER_ANIMATION >= GEN_7
|
||||
#define BUILDING_SECRET_POWER_ANIMATION gBattleAnimMove_SpitUp
|
||||
#elif B_SECRET_POWER_ANIMATION >= GEN_4
|
||||
|
|
@ -54,13 +72,39 @@ const u32 gBattleEnvironmentTilemap_Building[] = INCBIN_U32("graphics/battle_env
|
|||
#else
|
||||
#define BUILDING_SECRET_POWER_ANIMATION gBattleAnimMove_Strength,
|
||||
#endif
|
||||
|
||||
#define BUILDING_SECRET_POWER_EFFECT MOVE_EFFECT_PARALYSIS
|
||||
#define BUILDING_CAMOUFLAGE_TYPE TYPE_NORMAL
|
||||
#define BUILDING_CAMOUFLAGE_BLEND RGB_WHITE
|
||||
#define BUILDING_BATTLE_INTRO_SLIDE BattleIntroSlide3
|
||||
|
||||
// Plain values. USED for BATTLE_ENVIRONMENT_PLAIN as well as BATTLE_ENVIRONMENT_RAYQUAZA
|
||||
// (BATTLE_ENVIRONMENT_SKY_PILLAR wasn't introduced until Gen6, so Sky Pillar's roof counts as a Route which uses Plain)
|
||||
#if B_NATURE_POWER_MOVES >= GEN_6
|
||||
#define PLAIN_NATURE_POWER MOVE_TRI_ATTACK
|
||||
#elif B_NATURE_POWER_MOVES >= GEN_4
|
||||
#define PLAIN_NATURE_POWER MOVE_EARTHQUAKE
|
||||
#else
|
||||
#define PLAIN_NATURE_POWER MOVE_SWIFT
|
||||
#endif
|
||||
#if B_SECRET_POWER_ANIMATION >= GEN_7
|
||||
#define PLAIN_SECRET_POWER_ANIMATION gBattleAnimMove_SpitUp
|
||||
#elif B_SECRET_POWER_ANIMATION == GEN_6
|
||||
#define PLAIN_SECRET_POWER_ANIMATION gBattleAnimMove_BodySlam
|
||||
#elif B_SECRET_POWER_ANIMATION >= GEN_4
|
||||
#define PLAIN_SECRET_POWER_ANIMATION gBattleAnimMove_MudSlap
|
||||
#else
|
||||
#define PLAIN_SECRET_POWER_ANIMATION gBattleAnimMove_Slam
|
||||
#endif
|
||||
#define PLAIN_SECRET_POWER_EFFECT (B_SECRET_POWER_EFFECT == GEN_4 || B_SECRET_POWER_EFFECT == GEN_5) ? MOVE_EFFECT_ACC_MINUS_1 : MOVE_EFFECT_PARALYSIS
|
||||
#define PLAIN_CAMOUFLAGE_TYPE (B_CAMOUFLAGE_TYPES == GEN_4 || B_CAMOUFLAGE_TYPES == GEN_5) ? TYPE_GROUND : TYPE_NORMAL
|
||||
#define PLAIN_CAMOUFLAGE_BLEND RGB_WHITE
|
||||
#define PLAIN_BATTLE_INTRO_SLIDE BattleIntroSlide3
|
||||
|
||||
const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT] =
|
||||
{
|
||||
[BATTLE_ENVIRONMENT_GRASS] =
|
||||
{
|
||||
.name = _("Grass "),
|
||||
#if B_NATURE_POWER_MOVES >= GEN_6
|
||||
.naturePower = MOVE_ENERGY_BALL,
|
||||
#elif B_NATURE_POWER_MOVES >= GEN_4
|
||||
|
|
@ -71,11 +115,14 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.secretPowerAnimation = gBattleAnimMove_NeedleArm,
|
||||
.secretPowerEffect = B_SECRET_POWER_EFFECT >= GEN_4 ? MOVE_EFFECT_SLEEP : MOVE_EFFECT_POISON,
|
||||
.camouflageType = TYPE_GRASS,
|
||||
.camouflageBlend = RGB(12, 24, 2),
|
||||
.background = ENVIRONMENT_BACKGROUND(TallGrass),
|
||||
.battleIntroSlide = BattleIntroSlide1,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_LONG_GRASS] =
|
||||
{
|
||||
.name = _("Long Grass "),
|
||||
#if B_NATURE_POWER_MOVES >= GEN_6
|
||||
.naturePower = MOVE_ENERGY_BALL,
|
||||
#elif B_NATURE_POWER_MOVES >= GEN_4
|
||||
|
|
@ -83,50 +130,65 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
#else
|
||||
.naturePower = MOVE_RAZOR_LEAF,
|
||||
#endif
|
||||
.secretPowerAnimation = gBattleAnimMove_MagicalLeaf,
|
||||
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_4 ? gBattleAnimMove_NeedleArm : gBattleAnimMove_MagicalLeaf,
|
||||
.secretPowerEffect = MOVE_EFFECT_SLEEP,
|
||||
.camouflageType = TYPE_GRASS,
|
||||
.camouflageBlend = RGB(0, 15, 2),
|
||||
.background = ENVIRONMENT_BACKGROUND(LongGrass),
|
||||
.battleIntroSlide = BattleIntroSlide1,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_SAND] =
|
||||
{
|
||||
.name = _("Sand "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_6 ? MOVE_EARTH_POWER : MOVE_EARTHQUAKE,
|
||||
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_4 ? gBattleAnimMove_MudSlap : gBattleAnimMove_MudShot,
|
||||
.secretPowerEffect = MOVE_EFFECT_ACC_MINUS_1,
|
||||
.camouflageType = TYPE_GROUND,
|
||||
.camouflageBlend = RGB(30, 24, 11),
|
||||
.background = ENVIRONMENT_BACKGROUND(Sand),
|
||||
.battleIntroSlide = BattleIntroSlide2,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_UNDERWATER] =
|
||||
{
|
||||
.name = _("Underwater "),
|
||||
.naturePower = MOVE_HYDRO_PUMP,
|
||||
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_6 ? gBattleAnimMove_WaterPulse : gBattleAnimMove_Waterfall,
|
||||
.secretPowerEffect = B_SECRET_POWER_EFFECT >= GEN_6 ? MOVE_EFFECT_ATK_MINUS_1 : MOVE_EFFECT_DEF_MINUS_1,
|
||||
.camouflageType = TYPE_WATER,
|
||||
.camouflageBlend = RGB(0, 0, 18),
|
||||
.background = ENVIRONMENT_BACKGROUND(Underwater),
|
||||
.battleIntroSlide = BattleIntroSlide2,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_WATER] =
|
||||
{
|
||||
.name = _("Water "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_HYDRO_PUMP : MOVE_SURF,
|
||||
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_4 ? gBattleAnimMove_WaterPulse : gBattleAnimMove_Surf,
|
||||
.secretPowerEffect = MOVE_EFFECT_ATK_MINUS_1,
|
||||
.camouflageType = TYPE_WATER,
|
||||
.camouflageBlend = RGB(11, 22, 31),
|
||||
.background = ENVIRONMENT_BACKGROUND(Water),
|
||||
.battleIntroSlide = BattleIntroSlide2,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_POND] =
|
||||
{
|
||||
.name = _("Pond "),
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_HYDRO_PUMP : MOVE_BUBBLE_BEAM,
|
||||
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_4 ? gBattleAnimMove_WaterPulse : gBattleAnimMove_BubbleBeam,
|
||||
.secretPowerEffect = B_SECRET_POWER_EFFECT >= GEN_4 ? MOVE_EFFECT_ATK_MINUS_1 : MOVE_EFFECT_SPD_MINUS_1,
|
||||
.camouflageType = TYPE_WATER,
|
||||
.camouflageBlend = RGB(11, 22, 31),
|
||||
.background = ENVIRONMENT_BACKGROUND(PondWater),
|
||||
.battleIntroSlide = BattleIntroSlide1,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_MOUNTAIN] =
|
||||
{
|
||||
.name = _("Mountain "),
|
||||
#if B_NATURE_POWER_MOVES >= GEN_6
|
||||
.naturePower = MOVE_EARTH_POWER,
|
||||
#elif B_NATURE_POWER_MOVES >= GEN_5
|
||||
|
|
@ -137,59 +199,49 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_5 ? gBattleAnimMove_MudSlap : gBattleAnimMove_RockThrow,
|
||||
#if B_SECRET_POWER_EFFECT >= GEN_5
|
||||
.secretPowerEffect = MOVE_EFFECT_ACC_MINUS_1,
|
||||
#elif B_SECRET_POWER_EFFECT >= GEN_4
|
||||
#elif B_SECRET_POWER_EFFECT == GEN_4
|
||||
.secretPowerEffect = MOVE_EFFECT_FLINCH,
|
||||
#else
|
||||
.secretPowerEffect = MOVE_EFFECT_CONFUSION,
|
||||
#endif
|
||||
.camouflageType = B_CAMOUFLAGE_TYPES >= GEN_5 ? TYPE_GROUND : TYPE_ROCK,
|
||||
.camouflageBlend = RGB(22, 16, 10),
|
||||
.background = ENVIRONMENT_BACKGROUND(Rock),
|
||||
.battleIntroSlide = BattleIntroSlide1,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_CAVE] =
|
||||
{
|
||||
#if B_NATURE_POWER_MOVES >= GEN_6
|
||||
.naturePower = MOVE_POWER_GEM,
|
||||
#elif B_NATURE_POWER_MOVES >= GEN_4
|
||||
.naturePower = MOVE_ROCK_SLIDE,
|
||||
#else
|
||||
.naturePower = MOVE_SHADOW_BALL,
|
||||
#endif
|
||||
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_4 ? gBattleAnimMove_RockThrow : gBattleAnimMove_Bite,
|
||||
.secretPowerEffect = MOVE_EFFECT_FLINCH,
|
||||
.camouflageType = TYPE_ROCK,
|
||||
.name = _("Cave "),
|
||||
.naturePower = CAVE_NATURE_POWER,
|
||||
.secretPowerAnimation = CAVE_SECRET_POWER_ANIMATION,
|
||||
.secretPowerEffect = CAVE_SECRET_POWER_EFFECT,
|
||||
.camouflageType = CAVE_CAMOUFLAGE_TYPE,
|
||||
.camouflageBlend = CAVE_CAMOUFLAGE_BLEND,
|
||||
.background = ENVIRONMENT_BACKGROUND(Cave),
|
||||
.battleIntroSlide = CAVE_BATTLE_INTRO_SLIDE,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_BUILDING] =
|
||||
{
|
||||
.naturePower = B_NATURE_POWER_MOVES >= GEN_4 ? MOVE_TRI_ATTACK : MOVE_SWIFT,
|
||||
.name = _("Building "),
|
||||
.naturePower = BUILDING_NATURE_POWER,
|
||||
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
|
||||
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
|
||||
.camouflageType = TYPE_NORMAL,
|
||||
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
|
||||
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
|
||||
.background = ENVIRONMENT_BACKGROUND(Building),
|
||||
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_PLAIN] =
|
||||
{
|
||||
#if B_NATURE_POWER_MOVES >= GEN_6
|
||||
.naturePower = MOVE_TRI_ATTACK,
|
||||
#elif B_NATURE_POWER_MOVES >= GEN_4
|
||||
.naturePower = MOVE_EARTHQUAKE,
|
||||
#else
|
||||
.naturePower = MOVE_SWIFT,
|
||||
#endif
|
||||
#if B_SECRET_POWER_ANIMATION >= GEN_7
|
||||
.secretPowerAnimation = gBattleAnimMove_SpitUp,
|
||||
#elif B_SECRET_POWER_ANIMATION >= GEN_6
|
||||
.secretPowerAnimation = gBattleAnimMove_BodySlam,
|
||||
#elif B_SECRET_POWER_ANIMATION >= GEN_4
|
||||
.secretPowerAnimation = gBattleAnimMove_MudSlap,
|
||||
#else
|
||||
.secretPowerAnimation = gBattleAnimMove_Slam,
|
||||
#endif
|
||||
.secretPowerEffect = (B_SECRET_POWER_EFFECT == GEN_4 || B_SECRET_POWER_EFFECT == GEN_5) ? MOVE_EFFECT_ACC_MINUS_1 : MOVE_EFFECT_PARALYSIS,
|
||||
.camouflageType = (B_CAMOUFLAGE_TYPES == GEN_4 || B_CAMOUFLAGE_TYPES == GEN_5) ? TYPE_GROUND : TYPE_NORMAL,
|
||||
.name = _("Plain "),
|
||||
.naturePower = PLAIN_NATURE_POWER,
|
||||
.secretPowerAnimation = PLAIN_SECRET_POWER_ANIMATION,
|
||||
.secretPowerEffect = PLAIN_SECRET_POWER_EFFECT,
|
||||
.camouflageType = PLAIN_CAMOUFLAGE_TYPE,
|
||||
.camouflageBlend = PLAIN_CAMOUFLAGE_BLEND,
|
||||
.background =
|
||||
{
|
||||
.tileset = gBattleEnvironmentTiles_Building,
|
||||
|
|
@ -198,12 +250,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
|
||||
.palette = gBattleEnvironmentPalette_Plain,
|
||||
},
|
||||
.battleIntroSlide = PLAIN_BATTLE_INTRO_SLIDE,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_FRONTIER] =
|
||||
{
|
||||
.name = _("Frontier "),
|
||||
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
|
||||
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
|
||||
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
|
||||
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
|
||||
.background =
|
||||
{
|
||||
.tileset = gBattleEnvironmentTiles_Building,
|
||||
|
|
@ -212,12 +268,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
|
||||
.palette = gBattleEnvironmentPalette_Frontier,
|
||||
},
|
||||
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_GYM] =
|
||||
{
|
||||
.name = _("Gym "),
|
||||
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
|
||||
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
|
||||
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
|
||||
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
|
||||
.background =
|
||||
{
|
||||
.tileset = gBattleEnvironmentTiles_Building,
|
||||
|
|
@ -226,12 +286,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
|
||||
.palette = gBattleEnvironmentPalette_BuildingGym,
|
||||
},
|
||||
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_LEADER] =
|
||||
{
|
||||
.name = _("Leader "),
|
||||
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
|
||||
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
|
||||
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
|
||||
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
|
||||
.background =
|
||||
{
|
||||
.tileset = gBattleEnvironmentTiles_Building,
|
||||
|
|
@ -240,12 +304,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
|
||||
.palette = gBattleEnvironmentPalette_BuildingLeader,
|
||||
},
|
||||
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_MAGMA] =
|
||||
{
|
||||
.name = _("Magma "),
|
||||
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
|
||||
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
|
||||
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
|
||||
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
|
||||
.background =
|
||||
{
|
||||
.tileset = gBattleEnvironmentTiles_Stadium,
|
||||
|
|
@ -254,12 +322,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
|
||||
.palette = gBattleEnvironmentPalette_StadiumMagma,
|
||||
},
|
||||
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_AQUA] =
|
||||
{
|
||||
.name = _("Aqua "),
|
||||
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
|
||||
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
|
||||
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
|
||||
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
|
||||
.background =
|
||||
{
|
||||
.tileset = gBattleEnvironmentTiles_Stadium,
|
||||
|
|
@ -268,12 +340,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
|
||||
.palette = gBattleEnvironmentPalette_StadiumAqua,
|
||||
},
|
||||
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_SIDNEY] =
|
||||
{
|
||||
.name = _("Sidney "),
|
||||
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
|
||||
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
|
||||
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
|
||||
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
|
||||
.background =
|
||||
{
|
||||
.tileset = gBattleEnvironmentTiles_Stadium,
|
||||
|
|
@ -282,12 +358,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
|
||||
.palette = gBattleEnvironmentPalette_StadiumSidney,
|
||||
},
|
||||
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_PHOEBE] =
|
||||
{
|
||||
.name = _("Phoebe "),
|
||||
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
|
||||
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
|
||||
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
|
||||
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
|
||||
.background =
|
||||
{
|
||||
.tileset = gBattleEnvironmentTiles_Stadium,
|
||||
|
|
@ -296,12 +376,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
|
||||
.palette = gBattleEnvironmentPalette_StadiumPhoebe,
|
||||
},
|
||||
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_GLACIA] =
|
||||
{
|
||||
.name = _("Glacia "),
|
||||
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
|
||||
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
|
||||
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
|
||||
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
|
||||
.background =
|
||||
{
|
||||
.tileset = gBattleEnvironmentTiles_Stadium,
|
||||
|
|
@ -310,12 +394,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
|
||||
.palette = gBattleEnvironmentPalette_StadiumGlacia,
|
||||
},
|
||||
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_DRAKE] =
|
||||
{
|
||||
.name = _("Drake "),
|
||||
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
|
||||
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
|
||||
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
|
||||
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
|
||||
.background =
|
||||
{
|
||||
.tileset = gBattleEnvironmentTiles_Stadium,
|
||||
|
|
@ -324,12 +412,16 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
|
||||
.palette = gBattleEnvironmentPalette_StadiumDrake,
|
||||
},
|
||||
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_CHAMPION] =
|
||||
{
|
||||
.name = _("Champion "),
|
||||
.secretPowerAnimation = BUILDING_SECRET_POWER_ANIMATION,
|
||||
.secretPowerEffect = BUILDING_SECRET_POWER_EFFECT,
|
||||
.camouflageType = BUILDING_CAMOUFLAGE_TYPE,
|
||||
.camouflageBlend = BUILDING_CAMOUFLAGE_BLEND,
|
||||
.background =
|
||||
{
|
||||
.tileset = gBattleEnvironmentTiles_Stadium,
|
||||
|
|
@ -338,10 +430,17 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.entryTilemap = gBattleEnvironmentAnimTilemap_Building,
|
||||
.palette = gBattleEnvironmentPalette_StadiumWallace,
|
||||
},
|
||||
.battleIntroSlide = BUILDING_BATTLE_INTRO_SLIDE,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_GROUDON] =
|
||||
{
|
||||
.name = _("Groudon "),
|
||||
.naturePower = CAVE_NATURE_POWER,
|
||||
.secretPowerAnimation = CAVE_SECRET_POWER_ANIMATION,
|
||||
.secretPowerEffect = CAVE_SECRET_POWER_EFFECT,
|
||||
.camouflageType = CAVE_CAMOUFLAGE_TYPE,
|
||||
.camouflageBlend = CAVE_CAMOUFLAGE_BLEND,
|
||||
.background =
|
||||
{
|
||||
.tileset = gBattleEnvironmentTiles_Cave,
|
||||
|
|
@ -350,10 +449,17 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.entryTilemap = gBattleEnvironmentAnimTilemap_Cave,
|
||||
.palette = gBattleEnvironmentPalette_Groudon,
|
||||
},
|
||||
.battleIntroSlide = CAVE_BATTLE_INTRO_SLIDE,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_KYOGRE] =
|
||||
{
|
||||
.name = _("Kyogre "),
|
||||
.naturePower = CAVE_NATURE_POWER,
|
||||
.secretPowerAnimation = CAVE_SECRET_POWER_ANIMATION,
|
||||
.secretPowerEffect = CAVE_SECRET_POWER_EFFECT,
|
||||
.camouflageType = CAVE_CAMOUFLAGE_TYPE,
|
||||
.camouflageBlend = CAVE_CAMOUFLAGE_BLEND,
|
||||
.background =
|
||||
{
|
||||
.tileset = gBattleEnvironmentTiles_Water,
|
||||
|
|
@ -362,10 +468,17 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.entryTilemap = gBattleEnvironmentAnimTilemap_Underwater,
|
||||
.palette = gBattleEnvironmentPalette_Kyogre,
|
||||
},
|
||||
.battleIntroSlide = CAVE_BATTLE_INTRO_SLIDE,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_RAYQUAZA] =
|
||||
{
|
||||
.name = _("Rayquaza "),
|
||||
.naturePower = PLAIN_NATURE_POWER,
|
||||
.secretPowerAnimation = PLAIN_SECRET_POWER_ANIMATION,
|
||||
.secretPowerEffect = PLAIN_SECRET_POWER_EFFECT,
|
||||
.camouflageType = PLAIN_CAMOUFLAGE_TYPE,
|
||||
.camouflageBlend = PLAIN_CAMOUFLAGE_BLEND,
|
||||
.background =
|
||||
{
|
||||
.tileset = gBattleEnvironmentTiles_Rayquaza,
|
||||
|
|
@ -374,61 +487,75 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.entryTilemap = gBattleEnvironmentAnimTilemap_Rayquaza,
|
||||
.palette = gBattleEnvironmentPalette_Rayquaza,
|
||||
},
|
||||
.battleIntroSlide = PLAIN_BATTLE_INTRO_SLIDE,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_SOARING] =
|
||||
{
|
||||
.name = _("Soaring "),
|
||||
.naturePower = MOVE_AIR_SLASH,
|
||||
.secretPowerAnimation = gBattleAnimMove_Gust,
|
||||
.secretPowerEffect = MOVE_EFFECT_SPD_MINUS_1,
|
||||
.camouflageType = TYPE_FLYING,
|
||||
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_SKY_PILLAR] =
|
||||
{
|
||||
.name = _("Sky Pillar "),
|
||||
.naturePower = MOVE_AIR_SLASH,
|
||||
.secretPowerAnimation = gBattleAnimMove_Gust,
|
||||
.secretPowerEffect = MOVE_EFFECT_SPD_MINUS_1,
|
||||
.camouflageType = TYPE_FLYING,
|
||||
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_BURIAL_GROUND] =
|
||||
{
|
||||
.name = _("Burial Ground "),
|
||||
.naturePower = MOVE_SHADOW_BALL,
|
||||
.secretPowerAnimation = gBattleAnimMove_ShadowSneak,
|
||||
.secretPowerEffect = MOVE_EFFECT_FLINCH,
|
||||
.camouflageType = TYPE_GHOST,
|
||||
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_PUDDLE] =
|
||||
{
|
||||
.name = _("Puddle "),
|
||||
.naturePower = MOVE_MUD_BOMB,
|
||||
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_5 ? gBattleAnimMove_MudShot : gBattleAnimMove_MudSlap,
|
||||
.secretPowerEffect = B_SECRET_POWER_EFFECT >= GEN_5 ? MOVE_EFFECT_SPD_MINUS_1 : MOVE_EFFECT_ACC_MINUS_1,
|
||||
.camouflageType = TYPE_GROUND,
|
||||
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_MARSH] =
|
||||
{
|
||||
.name = _("Marsh "),
|
||||
.naturePower = MOVE_MUD_BOMB,
|
||||
.secretPowerAnimation = gBattleAnimMove_MudShot,
|
||||
.secretPowerEffect = MOVE_EFFECT_SPD_MINUS_1,
|
||||
.camouflageType = TYPE_GROUND,
|
||||
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_SWAMP] =
|
||||
{
|
||||
.name = _("Swamp "),
|
||||
.naturePower = MOVE_MUD_BOMB,
|
||||
.secretPowerAnimation = gBattleAnimMove_MudShot,
|
||||
.secretPowerEffect = MOVE_EFFECT_SPD_MINUS_1,
|
||||
.camouflageType = TYPE_GROUND,
|
||||
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_SNOW] =
|
||||
{
|
||||
.name = _("Snow "),
|
||||
#if B_NATURE_POWER_MOVES >= GEN_7
|
||||
.naturePower = MOVE_ICE_BEAM,
|
||||
#elif B_NATURE_POWER_MOVES >= GEN_6
|
||||
#elif B_NATURE_POWER_MOVES == GEN_6
|
||||
.naturePower = MOVE_FROST_BREATH,
|
||||
#else
|
||||
.naturePower = MOVE_BLIZZARD,
|
||||
|
|
@ -436,46 +563,57 @@ const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]
|
|||
.secretPowerAnimation = B_SECRET_POWER_ANIMATION >= GEN_7 ? gBattleAnimMove_IceShard : gBattleAnimMove_Avalanche,
|
||||
.secretPowerEffect = MOVE_EFFECT_FREEZE_OR_FROSTBITE,
|
||||
.camouflageType = TYPE_ICE,
|
||||
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_ICE] =
|
||||
{
|
||||
.name = _("Ice "),
|
||||
.naturePower = MOVE_ICE_BEAM,
|
||||
.secretPowerAnimation = gBattleAnimMove_IceShard,
|
||||
.secretPowerEffect = MOVE_EFFECT_FREEZE_OR_FROSTBITE,
|
||||
.camouflageType = TYPE_ICE,
|
||||
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_VOLCANO] =
|
||||
{
|
||||
.name = _("Volcano "),
|
||||
.naturePower = MOVE_LAVA_PLUME,
|
||||
.secretPowerAnimation = gBattleAnimMove_Incinerate,
|
||||
.secretPowerEffect = MOVE_EFFECT_BURN,
|
||||
.camouflageType = TYPE_FIRE,
|
||||
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_DISTORTION_WORLD] =
|
||||
{
|
||||
.name = _("Distortion World "),
|
||||
.naturePower = MOVE_TRI_ATTACK,
|
||||
.secretPowerAnimation = gBattleAnimMove_Pound,
|
||||
.secretPowerEffect = MOVE_EFFECT_PARALYSIS,
|
||||
.camouflageType = TYPE_NORMAL,
|
||||
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_SPACE] =
|
||||
{
|
||||
.name = _("Space "),
|
||||
.naturePower = MOVE_DRACO_METEOR,
|
||||
.secretPowerAnimation = gBattleAnimMove_Swift,
|
||||
.secretPowerEffect = MOVE_EFFECT_FLINCH,
|
||||
.camouflageType = TYPE_DRAGON,
|
||||
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
|
||||
},
|
||||
|
||||
[BATTLE_ENVIRONMENT_ULTRA_SPACE] =
|
||||
{
|
||||
.name = _("Ultra Space "),
|
||||
.naturePower = MOVE_PSYSHOCK,
|
||||
.secretPowerAnimation = gBattleAnimMove_Psywave,
|
||||
.secretPowerEffect = MOVE_EFFECT_DEF_MINUS_1,
|
||||
.camouflageType = TYPE_PSYCHIC,
|
||||
.camouflageBlend = DEFAULT_CAMOUFLAGE_BLEND,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -338,33 +338,6 @@ const u8 gFrontAnimNames[][34] =
|
|||
[ANIM_SHAKE_GLOW_PURPLE_SLOW] = _("SHAKE GLOW PURPLE SLOW"),
|
||||
};
|
||||
|
||||
const u8 gBattleEnvironmentBackgroundNames[][17] =
|
||||
{
|
||||
[BATTLE_ENVIRONMENT_GRASS] = _("GRASS "),
|
||||
[BATTLE_ENVIRONMENT_LONG_GRASS] = _("LONG GRASS "),
|
||||
[BATTLE_ENVIRONMENT_SAND] = _("SAND "),
|
||||
[BATTLE_ENVIRONMENT_UNDERWATER] = _("UNDERWATER "),
|
||||
[BATTLE_ENVIRONMENT_WATER] = _("WATER "),
|
||||
[BATTLE_ENVIRONMENT_POND] = _("POND "),
|
||||
[BATTLE_ENVIRONMENT_MOUNTAIN] = _("MOUNTAIN "),
|
||||
[BATTLE_ENVIRONMENT_CAVE] = _("CAVE "),
|
||||
[BATTLE_ENVIRONMENT_BUILDING] = _("BUILDING "),
|
||||
[BATTLE_ENVIRONMENT_PLAIN] = _("PLAIN "),
|
||||
[BATTLE_ENVIRONMENT_FRONTIER] = _("FRONTIER "),
|
||||
[BATTLE_ENVIRONMENT_GYM] = _("GYM "),
|
||||
[BATTLE_ENVIRONMENT_LEADER] = _("LEADER "),
|
||||
[BATTLE_ENVIRONMENT_MAGMA] = _("MAGMA "),
|
||||
[BATTLE_ENVIRONMENT_AQUA] = _("AQUA "),
|
||||
[BATTLE_ENVIRONMENT_SIDNEY] = _("SIDNEY "),
|
||||
[BATTLE_ENVIRONMENT_PHOEBE] = _("PHOEBE "),
|
||||
[BATTLE_ENVIRONMENT_GLACIA] = _("GLACIA "),
|
||||
[BATTLE_ENVIRONMENT_DRAKE] = _("DRAKE "),
|
||||
[BATTLE_ENVIRONMENT_CHAMPION] = _("CHAMPION "),
|
||||
[BATTLE_ENVIRONMENT_GROUDON] = _("GROUDON "),
|
||||
[BATTLE_ENVIRONMENT_KYOGRE] = _("KYOGRE "),
|
||||
[BATTLE_ENVIRONMENT_RAYQUAZA] = _("RAYQUAZA "),
|
||||
};
|
||||
|
||||
const u8 sShadowSizeLabels[][4] =
|
||||
{
|
||||
[SHADOW_SIZE_S] = _(" S"),
|
||||
|
|
@ -902,7 +875,7 @@ static void PrintBattleBgName(u8 taskId)
|
|||
u8 fontId = 0;
|
||||
u8 text[30+1];
|
||||
|
||||
StringCopy(text, gBattleEnvironmentBackgroundNames[data->battleEnvironment]);
|
||||
StringCopy(text, gBattleEnvironmentInfo[data->battleEnvironment].name);
|
||||
AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, 0, 24, 0, NULL);
|
||||
}
|
||||
|
||||
|
|
@ -910,30 +883,18 @@ static void UpdateBattleBg(u8 taskId, bool8 increment)
|
|||
{
|
||||
struct PokemonSpriteVisualizer *data = GetStructPtr(taskId);
|
||||
|
||||
if (data->battleEnvironment == BATTLE_ENVIRONMENT_GRASS)
|
||||
{
|
||||
if (increment)
|
||||
data->battleEnvironment += 1;
|
||||
else
|
||||
data->battleEnvironment = BATTLE_ENVIRONMENT_RAYQUAZA;
|
||||
}
|
||||
else if (data->battleEnvironment == BATTLE_ENVIRONMENT_RAYQUAZA)
|
||||
{
|
||||
if (increment)
|
||||
data->battleEnvironment = BATTLE_ENVIRONMENT_GRASS;
|
||||
else
|
||||
data->battleEnvironment -= 1;
|
||||
if (increment) {
|
||||
data->battleEnvironment = (data->battleEnvironment + 1) % (BATTLE_ENVIRONMENT_RAYQUAZA + 1); // Can use BATTLE_ENVIRONMENT_COUNT once the remaining environments have sprites
|
||||
}
|
||||
else
|
||||
{
|
||||
if (increment)
|
||||
data->battleEnvironment += 1;
|
||||
if (data->battleEnvironment == BATTLE_ENVIRONMENT_GRASS)
|
||||
data->battleEnvironment = BATTLE_ENVIRONMENT_RAYQUAZA;
|
||||
else
|
||||
data->battleEnvironment -= 1;
|
||||
}
|
||||
|
||||
PrintBattleBgName(taskId);
|
||||
|
||||
LoadBattleBg(data->battleEnvironment);
|
||||
}
|
||||
|
||||
|
|
@ -1755,7 +1716,7 @@ static void HandleInput_PokemonSpriteVisualizer(u8 taskId)
|
|||
SetArrowInvisibility(data);
|
||||
PrintInstructionsOnWindow(data);
|
||||
UpdateMonAnimNames(taskId);
|
||||
|
||||
|
||||
if (data->followerspriteId != 0)
|
||||
gSprites[data->followerspriteId].invisible = FALSE;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user