refactor done
This commit is contained in:
parent
0bb86e4437
commit
6a906a3fc1
@ -5841,8 +5841,6 @@ BattleScript_LearnedNewMove::
|
||||
BattleScript_LearnMoveReturn::
|
||||
return
|
||||
|
||||
@@@ === NEW WEATHER SCRIPT
|
||||
|
||||
BattleScript_WeatherContinues::
|
||||
printfromtable gWeatherTurnStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
@ -5857,31 +5855,19 @@ BattleScript_WeatherFaded::
|
||||
call BattleScript_ActivateWeatherAbilities
|
||||
end2
|
||||
|
||||
@@@ === NEW WEATHER SCRIPT
|
||||
|
||||
BattleScript_RainContinuesOrEnds::
|
||||
@printfromtable gRainContinuesStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_RAIN_STOPPED, BattleScript_RainContinuesOrEndsEnd
|
||||
playanimation BS_ATTACKER, B_ANIM_RAIN_CONTINUES
|
||||
BattleScript_RainContinuesOrEndsEnd::
|
||||
call BattleScript_ActivateWeatherAbilities
|
||||
end2
|
||||
|
||||
BattleScript_DamagingWeatherContinues::
|
||||
@printfromtable gSandStormHailSnowContinuesStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
playanimation_var BS_ATTACKER, sB_ANIM_ARG1
|
||||
setbyte gBattleCommunication, 0
|
||||
end2
|
||||
|
||||
BattleScript_DamagingWeather::
|
||||
@printfromtable gSandStormHailDmgStringIds
|
||||
printfromtable gSandStormHailDmgStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
effectivenesssound
|
||||
hitanimation BS_SCRIPTING
|
||||
goto BattleScript_DoTurnDmg
|
||||
|
||||
BattleScript_FogEnded_Ret::
|
||||
printstring STRINGID_FOGLIFTED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
call BattleScript_ActivateWeatherAbilities
|
||||
return
|
||||
|
||||
BattleScript_IceBodyHeal::
|
||||
call BattleScript_AbilityPopUpScripting
|
||||
playanimation BS_SCRIPTING, B_ANIM_SIMPLE_HEAL
|
||||
@ -5891,42 +5877,6 @@ BattleScript_IceBodyHeal::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_SandStormHailSnowEnds::
|
||||
@printfromtable gSandStormHailSnowEndStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
call BattleScript_ActivateWeatherAbilities
|
||||
end2
|
||||
|
||||
BattleScript_SunlightContinues::
|
||||
printstring STRINGID_SUNLIGHTSTRONG
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
playanimation BS_ATTACKER, B_ANIM_SUN_CONTINUES
|
||||
call BattleScript_ActivateWeatherAbilities
|
||||
end2
|
||||
|
||||
BattleScript_SunlightFaded::
|
||||
printstring STRINGID_SUNLIGHTFADED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
call BattleScript_ActivateWeatherAbilities
|
||||
end2
|
||||
|
||||
BattleScript_FogContinues::
|
||||
printstring STRINGID_FOGISDEEP
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
playanimation BS_ATTACKER, B_ANIM_FOG_CONTINUES
|
||||
call BattleScript_ActivateWeatherAbilities
|
||||
end2
|
||||
|
||||
BattleScript_FogEnded_Ret::
|
||||
printstring STRINGID_FOGLIFTED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
call BattleScript_ActivateWeatherAbilities
|
||||
return
|
||||
|
||||
BattleScript_FogEnded::
|
||||
call BattleScript_FogEnded_Ret
|
||||
end2
|
||||
|
||||
BattleScript_OverworldStatusStarts::
|
||||
printfromtable gStartingStatusStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
|
||||
@ -50,21 +50,12 @@ extern const u8 BattleScript_DoSwitchOut[];
|
||||
extern const u8 BattleScript_MoveSwitchOpenPartyScreen[];
|
||||
extern const u8 BattleScript_Pausex20[];
|
||||
extern const u8 BattleScript_LevelUp[];
|
||||
|
||||
extern const u8 BattleScript_WeatherContinues[];
|
||||
extern const u8 BattleScript_WeatherFaded[];
|
||||
|
||||
extern const u8 BattleScript_RainContinuesOrEnds[];
|
||||
extern const u8 BattleScript_SnowContinuesOrEnds[];
|
||||
extern const u8 BattleScript_DamagingWeatherContinues[];
|
||||
extern const u8 BattleScript_DamagingWeather[];
|
||||
extern const u8 BattleScript_IceBodyHeal[];
|
||||
extern const u8 BattleScript_SandStormHailSnowEnds[];
|
||||
extern const u8 BattleScript_SunlightContinues[];
|
||||
extern const u8 BattleScript_SunlightFaded[];
|
||||
extern const u8 BattleScript_FogContinues[];
|
||||
extern const u8 BattleScript_FogEnded_Ret[];
|
||||
extern const u8 BattleScript_FogEnded[];
|
||||
extern const u8 BattleScript_IceBodyHeal[];
|
||||
extern const u8 BattleScript_OverworldStatusStarts[];
|
||||
extern const u8 BattleScript_OverworldWeatherStarts[];
|
||||
extern const u8 BattleScript_OverworldTerrain[];
|
||||
|
||||
@ -288,27 +288,26 @@ enum BattleWeather
|
||||
BATTLE_WEATHER_RAIN,
|
||||
BATTLE_WEATHER_RAIN_PRIMAL,
|
||||
BATTLE_WEATHER_RAIN_DOWNPOUR,
|
||||
BATTLE_WEATHER_SANDSTORM,
|
||||
BATTLE_WEATHER_SUN,
|
||||
BATTLE_WEATHER_SUN_PRIMAL,
|
||||
BATTLE_WEATHER_SANDSTORM,
|
||||
BATTLE_WEATHER_HAIL,
|
||||
BATTLE_WEATHER_SNOW,
|
||||
BATTLE_WEATHER_FOG,
|
||||
BATTLE_WEATHER_STRONG_WINDS,
|
||||
BATTLE_WEATHER_COUNT,
|
||||
};
|
||||
|
||||
#define BATTLE_WEATHER_COUNT 10
|
||||
|
||||
// Battle Weather flags
|
||||
#define B_WEATHER_NONE 0
|
||||
#define B_WEATHER_RAIN_NORMAL (1 << BATTLE_WEATHER_RAIN)
|
||||
#define B_WEATHER_RAIN_PRIMAL (1 << BATTLE_WEATHER_RAIN_PRIMAL)
|
||||
#define B_WEATHER_RAIN_DOWNPOUR (1 << BATTLE_WEATHER_RAIN_DOWNPOUR) // unused
|
||||
#define B_WEATHER_RAIN (B_WEATHER_RAIN_NORMAL | B_WEATHER_RAIN_PRIMAL | B_WEATHER_RAIN_DOWNPOUR)
|
||||
#define B_WEATHER_SANDSTORM (1 << BATTLE_WEATHER_SANDSTORM)
|
||||
#define B_WEATHER_SUN_NORMAL (1 << BATTLE_WEATHER_SUN)
|
||||
#define B_WEATHER_SUN_PRIMAL (1 << BATTLE_WEATHER_SUN_PRIMAL)
|
||||
#define B_WEATHER_SUN (B_WEATHER_SUN_NORMAL | B_WEATHER_SUN_PRIMAL)
|
||||
#define B_WEATHER_SANDSTORM (1 << BATTLE_WEATHER_SANDSTORM)
|
||||
#define B_WEATHER_HAIL (1 << BATTLE_WEATHER_HAIL)
|
||||
#define B_WEATHER_SNOW (1 << BATTLE_WEATHER_SNOW)
|
||||
#define B_WEATHER_FOG (1 << BATTLE_WEATHER_FOG)
|
||||
|
||||
@ -1521,12 +1521,6 @@ enum
|
||||
ENDTURN_TAILWIND,
|
||||
ENDTURN_WISH,
|
||||
ENDTURN_WEATHER,
|
||||
// ENDTURN_RAIN,
|
||||
// ENDTURN_SANDSTORM,
|
||||
// ENDTURN_SUN,
|
||||
// ENDTURN_HAIL,
|
||||
// ENDTURN_SNOW,
|
||||
// ENDTURN_FOG,
|
||||
ENDTURN_DAMAGE_NON_TYPES,
|
||||
ENDTURN_GRAVITY,
|
||||
ENDTURN_WATER_SPORT,
|
||||
@ -1570,6 +1564,8 @@ static bool32 EndTurnTerrain(u32 terrainFlag, u32 stringTableId)
|
||||
|
||||
struct BattleWeatherInfo
|
||||
{
|
||||
u16 flag;
|
||||
u8 rock;
|
||||
u8 endMessage;
|
||||
u8 continuesMessage;
|
||||
u8 animation;
|
||||
@ -1579,6 +1575,17 @@ static const struct BattleWeatherInfo sBattleWeatherInfo[BATTLE_WEATHER_COUNT] =
|
||||
{
|
||||
[BATTLE_WEATHER_RAIN] =
|
||||
{
|
||||
.flag = B_WEATHER_RAIN_NORMAL,
|
||||
.rock = HOLD_EFFECT_DAMP_ROCK,
|
||||
.endMessage = B_MSG_WEATHER_END_RAIN,
|
||||
.continuesMessage = B_MSG_WEATHER_TURN_RAIN,
|
||||
.animation = B_ANIM_RAIN_CONTINUES,
|
||||
},
|
||||
|
||||
[BATTLE_WEATHER_RAIN_PRIMAL] =
|
||||
{
|
||||
.flag = B_WEATHER_RAIN_PRIMAL,
|
||||
.rock = HOLD_EFFECT_DAMP_ROCK,
|
||||
.endMessage = B_MSG_WEATHER_END_RAIN,
|
||||
.continuesMessage = B_MSG_WEATHER_TURN_RAIN,
|
||||
.animation = B_ANIM_RAIN_CONTINUES,
|
||||
@ -1586,6 +1593,8 @@ static const struct BattleWeatherInfo sBattleWeatherInfo[BATTLE_WEATHER_COUNT] =
|
||||
|
||||
[BATTLE_WEATHER_RAIN_DOWNPOUR] =
|
||||
{
|
||||
.flag = B_WEATHER_RAIN_NORMAL,
|
||||
.rock = HOLD_EFFECT_DAMP_ROCK,
|
||||
.endMessage = B_MSG_WEATHER_END_RAIN,
|
||||
.continuesMessage = B_MSG_WEATHER_TURN_DOWNPOUR,
|
||||
.animation = B_ANIM_RAIN_CONTINUES,
|
||||
@ -1593,6 +1602,17 @@ static const struct BattleWeatherInfo sBattleWeatherInfo[BATTLE_WEATHER_COUNT] =
|
||||
|
||||
[BATTLE_WEATHER_SUN] =
|
||||
{
|
||||
.flag = B_WEATHER_SUN_NORMAL,
|
||||
.rock = HOLD_EFFECT_HEAT_ROCK,
|
||||
.endMessage = B_MSG_WEATHER_END_SUN,
|
||||
.continuesMessage = B_MSG_WEATHER_TURN_SUN,
|
||||
.animation = B_ANIM_SUN_CONTINUES,
|
||||
},
|
||||
|
||||
[BATTLE_WEATHER_SUN_PRIMAL] =
|
||||
{
|
||||
.flag = B_WEATHER_SUN_PRIMAL,
|
||||
.rock = HOLD_EFFECT_HEAT_ROCK,
|
||||
.endMessage = B_MSG_WEATHER_END_SUN,
|
||||
.continuesMessage = B_MSG_WEATHER_TURN_SUN,
|
||||
.animation = B_ANIM_SUN_CONTINUES,
|
||||
@ -1600,6 +1620,8 @@ static const struct BattleWeatherInfo sBattleWeatherInfo[BATTLE_WEATHER_COUNT] =
|
||||
|
||||
[BATTLE_WEATHER_SANDSTORM] =
|
||||
{
|
||||
.flag = B_WEATHER_SANDSTORM,
|
||||
.rock = HOLD_EFFECT_SMOOTH_ROCK,
|
||||
.endMessage = B_MSG_WEATHER_END_SANDSTORM,
|
||||
.continuesMessage = B_MSG_WEATHER_TURN_SANDSTORM,
|
||||
.animation = B_ANIM_SANDSTORM_CONTINUES,
|
||||
@ -1607,6 +1629,8 @@ static const struct BattleWeatherInfo sBattleWeatherInfo[BATTLE_WEATHER_COUNT] =
|
||||
|
||||
[BATTLE_WEATHER_HAIL] =
|
||||
{
|
||||
.flag = B_WEATHER_HAIL,
|
||||
.rock = HOLD_EFFECT_ICY_ROCK,
|
||||
.endMessage = B_MSG_WEATHER_END_HAIL,
|
||||
.continuesMessage = B_MSG_WEATHER_TURN_HAIL,
|
||||
.animation = B_ANIM_HAIL_CONTINUES,
|
||||
@ -1614,6 +1638,8 @@ static const struct BattleWeatherInfo sBattleWeatherInfo[BATTLE_WEATHER_COUNT] =
|
||||
|
||||
[BATTLE_WEATHER_SNOW] =
|
||||
{
|
||||
.flag = B_WEATHER_SNOW,
|
||||
.rock = HOLD_EFFECT_ICY_ROCK,
|
||||
.endMessage = B_MSG_WEATHER_END_SNOW,
|
||||
.continuesMessage = B_MSG_WEATHER_TURN_SNOW,
|
||||
.animation = B_ANIM_SNOW_CONTINUES,
|
||||
@ -1621,6 +1647,8 @@ static const struct BattleWeatherInfo sBattleWeatherInfo[BATTLE_WEATHER_COUNT] =
|
||||
|
||||
[BATTLE_WEATHER_FOG] =
|
||||
{
|
||||
.flag = B_WEATHER_FOG,
|
||||
.rock = HOLD_EFFECT_NONE,
|
||||
.endMessage = B_MSG_WEATHER_END_FOG,
|
||||
.continuesMessage = B_MSG_WEATHER_TURN_FOG,
|
||||
.animation = B_ANIM_FOG_CONTINUES,
|
||||
@ -1628,6 +1656,8 @@ static const struct BattleWeatherInfo sBattleWeatherInfo[BATTLE_WEATHER_COUNT] =
|
||||
|
||||
[BATTLE_WEATHER_STRONG_WINDS] =
|
||||
{
|
||||
.flag = B_WEATHER_STRONG_WINDS,
|
||||
.rock = HOLD_EFFECT_NONE,
|
||||
.endMessage = B_MSG_WEATHER_END_STRONG_WINDS,
|
||||
.continuesMessage = B_MSG_WEATHER_TURN_STRONG_WINDS,
|
||||
.animation = B_ANIM_STRONG_WINDS,
|
||||
@ -1650,14 +1680,7 @@ static bool32 TryEndTurnWeather(void)
|
||||
if (currBattleWeather == 0xFF)
|
||||
return effect;
|
||||
|
||||
if (gBattleWeather & B_WEATHER_PRIMAL_ANY) // Might be redundant. handled in else case?
|
||||
{
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = sBattleWeatherInfo[currBattleWeather].continuesMessage;
|
||||
gBattleScripting.animArg1 = sBattleWeatherInfo[currBattleWeather].animation;
|
||||
BattleScriptExecute(BattleScript_WeatherContinues);
|
||||
effect++;
|
||||
}
|
||||
else if (gWishFutureKnock.weatherDuration > 0 && --gWishFutureKnock.weatherDuration == 0)
|
||||
if (gWishFutureKnock.weatherDuration > 0 && --gWishFutureKnock.weatherDuration == 0)
|
||||
{
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = sBattleWeatherInfo[currBattleWeather].endMessage;
|
||||
BattleScriptExecute(BattleScript_WeatherFaded);
|
||||
@ -1910,126 +1933,6 @@ u8 DoFieldEndTurnEffects(void)
|
||||
effect = TryEndTurnWeather();
|
||||
gBattleStruct->turnCountersTracker++;
|
||||
break;
|
||||
// case ENDTURN_RAIN:
|
||||
// if (gBattleWeather & B_WEATHER_RAIN)
|
||||
// {
|
||||
// if (!(gBattleWeather & B_WEATHER_RAIN_PRIMAL)
|
||||
// && gWishFutureKnock.weatherDuration > 0
|
||||
// && --gWishFutureKnock.weatherDuration == 0)
|
||||
// {
|
||||
// gBattleWeather &= ~(B_WEATHER_RAIN | B_WEATHER_RAIN_DOWNPOUR);
|
||||
// gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_RAIN_STOPPED;
|
||||
// }
|
||||
// else if (gBattleWeather & B_WEATHER_RAIN_DOWNPOUR)
|
||||
// gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DOWNPOUR_CONTINUES;
|
||||
// else
|
||||
// gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_RAIN_CONTINUES;
|
||||
|
||||
// BattleScriptExecute(BattleScript_RainContinuesOrEnds);
|
||||
// effect++;
|
||||
// }
|
||||
// gBattleStruct->turnCountersTracker++;
|
||||
// break;
|
||||
// case ENDTURN_SANDSTORM:
|
||||
// if (gBattleWeather & B_WEATHER_SANDSTORM)
|
||||
// {
|
||||
// if (gWishFutureKnock.weatherDuration > 0 && --gWishFutureKnock.weatherDuration == 0)
|
||||
// {
|
||||
// gBattleWeather &= ~B_WEATHER_SANDSTORM;
|
||||
// gBattlescriptCurrInstr = BattleScript_SandStormHailSnowEnds;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues;
|
||||
// }
|
||||
|
||||
// gBattleScripting.animArg1 = B_ANIM_SANDSTORM_CONTINUES;
|
||||
// gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SANDSTORM;
|
||||
// BattleScriptExecute(gBattlescriptCurrInstr);
|
||||
// effect++;
|
||||
// }
|
||||
// gBattleStruct->turnCountersTracker++;
|
||||
// break;
|
||||
// case ENDTURN_SUN:
|
||||
// if (gBattleWeather & B_WEATHER_SUN)
|
||||
// {
|
||||
// if (!(gBattleWeather & B_WEATHER_SUN_PRIMAL)
|
||||
// && gWishFutureKnock.weatherDuration > 0
|
||||
// && --gWishFutureKnock.weatherDuration == 0)
|
||||
// {
|
||||
// for (i = 0; i < gBattlersCount; i++)
|
||||
// gDisableStructs[i].weatherAbilityDone = FALSE;
|
||||
// gBattleWeather &= ~B_WEATHER_SUN;
|
||||
// gBattlescriptCurrInstr = BattleScript_SunlightFaded;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// gBattlescriptCurrInstr = BattleScript_SunlightContinues;
|
||||
// }
|
||||
|
||||
// BattleScriptExecute(gBattlescriptCurrInstr);
|
||||
// effect++;
|
||||
// }
|
||||
// gBattleStruct->turnCountersTracker++;
|
||||
// break;
|
||||
// case ENDTURN_HAIL:
|
||||
// if (gBattleWeather & B_WEATHER_HAIL)
|
||||
// {
|
||||
// if (gWishFutureKnock.weatherDuration > 0 && --gWishFutureKnock.weatherDuration == 0)
|
||||
// {
|
||||
// gBattleWeather &= ~B_WEATHER_HAIL;
|
||||
// gBattlescriptCurrInstr = BattleScript_SandStormHailSnowEnds;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues;
|
||||
// }
|
||||
|
||||
// gBattleScripting.animArg1 = B_ANIM_HAIL_CONTINUES;
|
||||
// gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_HAIL;
|
||||
// BattleScriptExecute(gBattlescriptCurrInstr);
|
||||
// effect++;
|
||||
// }
|
||||
// gBattleStruct->turnCountersTracker++;
|
||||
// break;
|
||||
// case ENDTURN_SNOW:
|
||||
// if (gBattleWeather & B_WEATHER_SNOW)
|
||||
// {
|
||||
// if (gWishFutureKnock.weatherDuration > 0 && --gWishFutureKnock.weatherDuration == 0)
|
||||
// {
|
||||
// gBattleWeather &= ~B_WEATHER_SNOW;
|
||||
// gBattlescriptCurrInstr = BattleScript_SandStormHailSnowEnds;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues;
|
||||
// }
|
||||
|
||||
// gBattleScripting.animArg1 = B_ANIM_SNOW_CONTINUES;
|
||||
// gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SNOW;
|
||||
// BattleScriptExecute(gBattlescriptCurrInstr);
|
||||
// effect++;
|
||||
// }
|
||||
// gBattleStruct->turnCountersTracker++;
|
||||
// break;
|
||||
// case ENDTURN_FOG:
|
||||
// if (gBattleWeather & B_WEATHER_FOG)
|
||||
// {
|
||||
// if (gWishFutureKnock.weatherDuration > 0 && --gWishFutureKnock.weatherDuration == 0)
|
||||
// {
|
||||
// gBattleWeather &= ~B_WEATHER_FOG;
|
||||
// gBattlescriptCurrInstr = BattleScript_FogEnded;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// gBattlescriptCurrInstr = BattleScript_FogContinues;
|
||||
// }
|
||||
|
||||
// BattleScriptExecute(gBattlescriptCurrInstr);
|
||||
// effect++;
|
||||
// }
|
||||
// gBattleStruct->turnCountersTracker++;
|
||||
// break;
|
||||
case ENDTURN_DAMAGE_NON_TYPES:
|
||||
while (gBattleStruct->turnSideTracker < 2)
|
||||
{
|
||||
@ -2349,6 +2252,7 @@ u8 DoBattlerEndTurnEffects(void)
|
||||
gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 16;
|
||||
if (gBattleStruct->moveDamage[battler] == 0)
|
||||
gBattleStruct->moveDamage[battler] = 1;
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SANDSTORM;
|
||||
BattleScriptExecute(BattleScript_DamagingWeather);
|
||||
effect++;
|
||||
}
|
||||
@ -2375,6 +2279,7 @@ u8 DoBattlerEndTurnEffects(void)
|
||||
gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 16;
|
||||
if (gBattleStruct->moveDamage[battler] == 0)
|
||||
gBattleStruct->moveDamage[battler] = 1;
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_HAIL;
|
||||
BattleScriptExecute(BattleScript_DamagingWeather);
|
||||
effect++;
|
||||
}
|
||||
@ -3995,19 +3900,6 @@ bool32 HasNoMonsToSwitch(u32 battler, u8 partyIdBattlerOn1, u8 partyIdBattlerOn2
|
||||
}
|
||||
}
|
||||
|
||||
static const u16 sWeatherFlagsInfo[][2] =
|
||||
{
|
||||
[BATTLE_WEATHER_RAIN] = {B_WEATHER_RAIN_NORMAL, HOLD_EFFECT_DAMP_ROCK},
|
||||
[BATTLE_WEATHER_RAIN_PRIMAL] = {B_WEATHER_RAIN_PRIMAL, HOLD_EFFECT_DAMP_ROCK},
|
||||
[BATTLE_WEATHER_SUN] = {B_WEATHER_SUN_NORMAL, HOLD_EFFECT_HEAT_ROCK},
|
||||
[BATTLE_WEATHER_SUN_PRIMAL] = {B_WEATHER_SUN_PRIMAL, HOLD_EFFECT_HEAT_ROCK},
|
||||
[BATTLE_WEATHER_SANDSTORM] = {B_WEATHER_SANDSTORM, HOLD_EFFECT_SMOOTH_ROCK},
|
||||
[BATTLE_WEATHER_HAIL] = {B_WEATHER_HAIL, HOLD_EFFECT_ICY_ROCK},
|
||||
[BATTLE_WEATHER_STRONG_WINDS] = {B_WEATHER_STRONG_WINDS, HOLD_EFFECT_NONE},
|
||||
[BATTLE_WEATHER_SNOW] = {B_WEATHER_SNOW, HOLD_EFFECT_ICY_ROCK},
|
||||
[BATTLE_WEATHER_FOG] = {B_WEATHER_FOG, HOLD_EFFECT_NONE},
|
||||
};
|
||||
|
||||
bool32 TryChangeBattleWeather(u32 battler, u32 battleWeatherId, bool32 viaAbility)
|
||||
{
|
||||
u16 battlerAbility = GetBattlerAbility(battler);
|
||||
@ -4018,15 +3910,17 @@ bool32 TryChangeBattleWeather(u32 battler, u32 battleWeatherId, bool32 viaAbilit
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
else if (B_ABILITY_WEATHER < GEN_6 && viaAbility && !(gBattleWeather & sWeatherFlagsInfo[battleWeatherId][0]))
|
||||
else if (B_ABILITY_WEATHER < GEN_6 && viaAbility && !(gBattleWeather & sBattleWeatherInfo[battleWeatherId].flag))
|
||||
{
|
||||
gBattleWeather = (sWeatherFlagsInfo[battleWeatherId][0] | sWeatherFlagsInfo[battleWeatherId][0]);
|
||||
gBattleWeather = sBattleWeatherInfo[battleWeatherId].flag;
|
||||
return TRUE;
|
||||
}
|
||||
else if (!(gBattleWeather & (sWeatherFlagsInfo[battleWeatherId][0] | sWeatherFlagsInfo[battleWeatherId][0])))
|
||||
else if (!(gBattleWeather & sBattleWeatherInfo[battleWeatherId].flag))
|
||||
{
|
||||
gBattleWeather = (sWeatherFlagsInfo[battleWeatherId][0]);
|
||||
if (GetBattlerHoldEffect(battler, TRUE) == sWeatherFlagsInfo[battleWeatherId][1])
|
||||
gBattleWeather = sBattleWeatherInfo[battleWeatherId].flag;
|
||||
if (gBattleWeather & B_WEATHER_PRIMAL_ANY)
|
||||
gWishFutureKnock.weatherDuration = 0;
|
||||
if (GetBattlerHoldEffect(battler, TRUE) == sBattleWeatherInfo[battleWeatherId].rock)
|
||||
gWishFutureKnock.weatherDuration = 8;
|
||||
else
|
||||
gWishFutureKnock.weatherDuration = 5;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user