From d5d2cac60c9e8733648787ae674be1a0d1a5bd89 Mon Sep 17 00:00:00 2001 From: Evan Date: Wed, 6 Jan 2021 14:42:45 -0700 Subject: [PATCH] init branch --- include/constants/battle_script_commands.h | 55 ++++++++++++---------- include/constants/hold_effects.h | 8 ++++ src/battle_script_commands.c | 13 +++++ 3 files changed, 50 insertions(+), 26 deletions(-) diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index 2f52da3197..5e27fe3004 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -193,32 +193,35 @@ #define STAT_CHANGE_CANT_PREVENT 0x8 // cases for Cmd_moveend -#define MOVEEND_PROTECT_LIKE_EFFECT 0 -#define MOVEEND_RAGE 1 -#define MOVEEND_DEFROST 2 -#define MOVEEND_SYNCHRONIZE_TARGET 3 -#define MOVEEND_ABILITIES 4 -#define MOVEEND_ABILITIES_ATTACKER 5 -#define MOVEEND_STATUS_IMMUNITY_ABILITIES 6 -#define MOVEEND_SYNCHRONIZE_ATTACKER 7 -#define MOVEEND_CHOICE_MOVE 8 -#define MOVEEND_CHANGED_ITEMS 9 -#define MOVEEND_ATTACKER_INVISIBLE 10 -#define MOVEEND_ATTACKER_VISIBLE 11 -#define MOVEEND_TARGET_VISIBLE 12 -#define MOVEEND_ITEM_EFFECTS_TARGET 13 -#define MOVEEND_MOVE_EFFECTS2 14 -#define MOVEEND_ITEM_EFFECTS_ALL 15 -#define MOVEEND_KINGSROCK_SHELLBELL 16 -#define MOVEEND_SUBSTITUTE 17 -#define MOVEEND_UPDATE_LAST_MOVES 18 -#define MOVEEND_MIRROR_MOVE 19 -#define MOVEEND_NEXT_TARGET 20 -#define MOVEEND_LIFE_ORB 21 -#define MOVEEND_DANCER 22 -#define MOVEEND_EMERGENCY_EXIT 23 -#define MOVEEND_CLEAR_BITS 24 -#define MOVEEND_COUNT 25 +#define MOVEEND_PROTECT_LIKE_EFFECT 0 +#define MOVEEND_RAGE 1 +#define MOVEEND_DEFROST 2 +#define MOVEEND_SYNCHRONIZE_TARGET 3 +#define MOVEEND_ABILITIES 4 +#define MOVEEND_ABILITIES_ATTACKER 5 +#define MOVEEND_STATUS_IMMUNITY_ABILITIES 6 +#define MOVEEND_SYNCHRONIZE_ATTACKER 7 +#define MOVEEND_CHOICE_MOVE 8 +#define MOVEEND_CHANGED_ITEMS 9 +#define MOVEEND_ATTACKER_INVISIBLE 10 +#define MOVEEND_ATTACKER_VISIBLE 11 +#define MOVEEND_TARGET_VISIBLE 12 +#define MOVEEND_ITEM_EFFECTS_TARGET 13 +#define MOVEEND_MOVE_EFFECTS2 14 +#define MOVEEND_ITEM_EFFECTS_ALL 15 +#define MOVEEND_KINGSROCK_SHELLBELL 16 +#define MOVEEND_SUBSTITUTE 17 +#define MOVEEND_UPDATE_LAST_MOVES 18 +#define MOVEEND_MIRROR_MOVE 19 +#define MOVEEND_NEXT_TARGET 20 +#define MOVEEND_EJECT_BUTTON 21 +#define MOVEEND_RED_CARD 22 +#define MOVEEND_EJECT_PACK 23 +#define MOVEEND_LIFE_ORB 24 +#define MOVEEND_DANCER 25 +#define MOVEEND_EMERGENCY_EXIT 26 +#define MOVEEND_CLEAR_BITS 27 +#define MOVEEND_COUNT 28 // stat flags for Cmd_playstatchangeanimation #define BIT_HP 0x1 diff --git a/include/constants/hold_effects.h b/include/constants/hold_effects.h index 85017cb405..c90f356517 100644 --- a/include/constants/hold_effects.h +++ b/include/constants/hold_effects.h @@ -136,6 +136,14 @@ #define HOLD_EFFECT_MEMORY 153 #define HOLD_EFFECT_PLATE 154 +// Gen8 hold effects +#define HOLD_EFFECT_EJECT_PACK 132 +#define HOLD_EFFECT_ROOM_SERVICE 133 +#define HOLD_EFFECT_BLUNDER_POLICY 134 +#define HOLD_EFFECT_HEAVY_DUTY_BOOTS 135 +#define HOLD_EFFECT_UTILITY_UMBRELLA 136 +#define HOLD_EFFECT_THROAT_SPRAY 137 + #define HOLD_EFFECT_CHOICE(holdEffect)((holdEffect == HOLD_EFFECT_CHOICE_BAND || holdEffect == HOLD_EFFECT_CHOICE_SCARF || holdEffect == HOLD_EFFECT_CHOICE_SPECS)) #endif // GUARD_HOLD_EFFECTS_H diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index bc427698ef..45075ca374 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -5006,6 +5006,19 @@ static void Cmd_moveend(void) RecordLastUsedMoveBy(gBattlerAttacker, gCurrentMove); gBattleScripting.moveendState++; break; + case MOVEEND_EJECT_BUTTON: + if (gCurrentMove != MOVE_DRAGON_TAIL && gCurrentMove != MOVE_CIRCLE_THROW) + { + u8 battlers[4] = {0, 1, 2, 3}; + SortBattlersBySpeed + } + + BattleScript_ForceRandomSwitch + + case MOVEEND_RED_CARD: + + case MOVEEND_EJECT_PACK: + case MOVEEND_LIFE_ORB: if (GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_LIFE_ORB && IsBattlerAlive(gBattlerAttacker)