mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-02-05 19:00:01 +01:00
Experience on caught mon
This commit is contained in:
parent
28b4d0d9dc
commit
39f9b1ddf0
@ -2,6 +2,7 @@
|
|||||||
#include "constants/battle_script_commands.h"
|
#include "constants/battle_script_commands.h"
|
||||||
#include "constants/battle_anim.h"
|
#include "constants/battle_anim.h"
|
||||||
#include "constants/battle_string_ids.h"
|
#include "constants/battle_string_ids.h"
|
||||||
|
#include "constants/battle_config.h"
|
||||||
#include "constants/items.h"
|
#include "constants/items.h"
|
||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
.include "asm/macros.inc"
|
.include "asm/macros.inc"
|
||||||
@ -61,10 +62,16 @@ BattleScript_SafariBallThrow::
|
|||||||
handleballthrow
|
handleballthrow
|
||||||
|
|
||||||
BattleScript_SuccessBallThrow::
|
BattleScript_SuccessBallThrow::
|
||||||
|
setbyte sMON_CAUGHT, TRUE
|
||||||
jumpifhalfword CMP_EQUAL, gLastUsedItem, ITEM_SAFARI_BALL, BattleScript_PrintCaughtMonInfo
|
jumpifhalfword CMP_EQUAL, gLastUsedItem, ITEM_SAFARI_BALL, BattleScript_PrintCaughtMonInfo
|
||||||
incrementgamestat 0xB
|
incrementgamestat 0xB
|
||||||
BattleScript_PrintCaughtMonInfo::
|
BattleScript_PrintCaughtMonInfo::
|
||||||
printstring STRINGID_GOTCHAPKMNCAUGHT
|
printstring STRINGID_GOTCHAPKMNCAUGHT
|
||||||
|
jumpifbyte CMP_NOT_EQUAL, sEXP_CATCH, TRUE, BattleScript_TryPrintCaughtMonInfo
|
||||||
|
setbyte sGIVEEXP_STATE, 0x0
|
||||||
|
getexp BS_TARGET
|
||||||
|
sethword gBattle_BG2_X, 0x0
|
||||||
|
BattleScript_TryPrintCaughtMonInfo:
|
||||||
trysetcaughtmondexflags BattleScript_TryNicknameCaughtMon
|
trysetcaughtmondexflags BattleScript_TryNicknameCaughtMon
|
||||||
printstring STRINGID_PKMNDATAADDEDTODEX
|
printstring STRINGID_PKMNDATAADDEDTODEX
|
||||||
waitstate
|
waitstate
|
||||||
|
@ -635,7 +635,7 @@ struct BattleScripting
|
|||||||
s32 painSplitHp;
|
s32 painSplitHp;
|
||||||
s32 bideDmg;
|
s32 bideDmg;
|
||||||
u8 multihitString[6];
|
u8 multihitString[6];
|
||||||
u8 unused_E;
|
bool8 expOnCatch;
|
||||||
u8 twoTurnsMoveStringId;
|
u8 twoTurnsMoveStringId;
|
||||||
u8 animArg1;
|
u8 animArg1;
|
||||||
u8 animArg2;
|
u8 animArg2;
|
||||||
@ -658,6 +658,7 @@ struct BattleScripting
|
|||||||
u8 field_23;
|
u8 field_23;
|
||||||
u8 windowsType; // 0 - normal, 1 - battle arena
|
u8 windowsType; // 0 - normal, 1 - battle arena
|
||||||
u8 multiplayerId;
|
u8 multiplayerId;
|
||||||
|
bool8 monCaught;
|
||||||
};
|
};
|
||||||
|
|
||||||
// rom_80A5C6C
|
// rom_80A5C6C
|
||||||
|
@ -12,5 +12,6 @@
|
|||||||
#define B_ABILITY_WEATHER GEN_6 // Up to gen5 - weather induced by abilities such as Drought or Drizzle lasted till the battle's end or weather change by a move. From Gen6 onwards, weather caused by abilities lasts the same amount of turns as induced from a move.
|
#define B_ABILITY_WEATHER GEN_6 // Up to gen5 - weather induced by abilities such as Drought or Drizzle lasted till the battle's end or weather change by a move. From Gen6 onwards, weather caused by abilities lasts the same amount of turns as induced from a move.
|
||||||
#define B_GALE_WINGS GEN_6 // Gen7 requires full hp.
|
#define B_GALE_WINGS GEN_6 // Gen7 requires full hp.
|
||||||
#define B_SOUND_SUBSTITUTE GEN_6 // Starting from gen6 sound moves bypass Substitute.
|
#define B_SOUND_SUBSTITUTE GEN_6 // Starting from gen6 sound moves bypass Substitute.
|
||||||
|
#define B_EXP_CATCH GEN_6 // Starting from gen6, pokemon get experience from catching.
|
||||||
|
|
||||||
#endif // GUARD_CONSTANTS_BATTLE_CONFIG_H
|
#endif // GUARD_CONSTANTS_BATTLE_CONFIG_H
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#define sPAINSPLIT_HP gBattleScripting
|
#define sPAINSPLIT_HP gBattleScripting
|
||||||
#define sBIDE_DMG gBattleScripting + 4
|
#define sBIDE_DMG gBattleScripting + 4
|
||||||
#define sMULTIHIT_STRING gBattleScripting + 8
|
#define sMULTIHIT_STRING gBattleScripting + 8
|
||||||
|
#define sEXP_CATCH gBattleScripting + 0xE
|
||||||
#define sTWOTURN_STRINGID gBattleScripting + 0xF
|
#define sTWOTURN_STRINGID gBattleScripting + 0xF
|
||||||
#define sB_ANIM_ARG1 gBattleScripting + 0x10
|
#define sB_ANIM_ARG1 gBattleScripting + 0x10
|
||||||
#define sB_ANIM_ARG2 gBattleScripting + 0x11
|
#define sB_ANIM_ARG2 gBattleScripting + 0x11
|
||||||
@ -27,6 +28,7 @@
|
|||||||
#define sFIELD_23 gBattleScripting + 0x23
|
#define sFIELD_23 gBattleScripting + 0x23
|
||||||
#define sFIELD_24 gBattleScripting + 0x24
|
#define sFIELD_24 gBattleScripting + 0x24
|
||||||
#define sMULTIPLAYER_ID gBattleScripting + 0x25
|
#define sMULTIPLAYER_ID gBattleScripting + 0x25
|
||||||
|
#define sMON_CAUGHT gBattleScripting + 0x26
|
||||||
|
|
||||||
#define cEFFECT_CHOOSER gBattleCommunication + 3
|
#define cEFFECT_CHOOSER gBattleCommunication + 3
|
||||||
#define cMULTISTRING_CHOOSER gBattleCommunication + 5
|
#define cMULTISTRING_CHOOSER gBattleCommunication + 5
|
||||||
|
@ -3036,6 +3036,8 @@ static void BattleStartClearSetData(void)
|
|||||||
gHitMarker |= HITMARKER_NO_ANIMATIONS;
|
gHitMarker |= HITMARKER_NO_ANIMATIONS;
|
||||||
|
|
||||||
gBattleScripting.battleStyle = gSaveBlock2Ptr->optionsBattleStyle;
|
gBattleScripting.battleStyle = gSaveBlock2Ptr->optionsBattleStyle;
|
||||||
|
gBattleScripting.expOnCatch = (B_EXP_CATCH >= GEN_6);
|
||||||
|
gBattleScripting.monCaught = FALSE;
|
||||||
|
|
||||||
gMultiHitCounter = 0;
|
gMultiHitCounter = 0;
|
||||||
gBattleOutcome = 0;
|
gBattleOutcome = 0;
|
||||||
|
@ -233,6 +233,8 @@ static void CreateBattlerSprite(u8 battler)
|
|||||||
{
|
{
|
||||||
if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0)
|
if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0)
|
||||||
return;
|
return;
|
||||||
|
if (gBattleScripting.monCaught) // Don't create opponent sprite if it has been caught.
|
||||||
|
return;
|
||||||
|
|
||||||
SetMultiuseSpriteTemplateToPokemon(GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler));
|
SetMultiuseSpriteTemplateToPokemon(GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler));
|
||||||
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, sub_80A82E4(battler));
|
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, sub_80A82E4(battler));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user