Unified Sonic Boom & Dragon Rage
Not really in scope, but what the hell
This commit is contained in:
parent
9d68f4ab6f
commit
e7de08eca2
17 changed files with 40 additions and 37 deletions
|
@ -1810,6 +1810,10 @@
|
|||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro setargtobattledamage
|
||||
various BS_ATTACKER, VARIOUS_SET_ARG_TO_BATTLE_DAMAGE
|
||||
.endm
|
||||
|
||||
.macro tryhitswitchtarget failInstr:req
|
||||
various BS_ATTACKER, VARIOUS_TRY_HIT_SWITCH_TARGET
|
||||
.4byte \failInstr
|
||||
|
|
|
@ -56,7 +56,7 @@ gBattleScriptsForMoveEffects::
|
|||
.4byte BattleScript_EffectOHKO @ EFFECT_OHKO
|
||||
.4byte BattleScript_EffectHit @ EFFECT_FUSION_COMBO
|
||||
.4byte BattleScript_EffectSuperFang @ EFFECT_SUPER_FANG
|
||||
.4byte BattleScript_EffectDragonRage @ EFFECT_DRAGON_RAGE
|
||||
.4byte BattleScript_EffectArgFixedDamage @ EFFECT_ARG_FIXED_DAMAGE
|
||||
.4byte BattleScript_EffectHit @ EFFECT_UNUSED_35
|
||||
.4byte BattleScript_EffectHealBlock @ EFFECT_HEAL_BLOCK
|
||||
.4byte BattleScript_EffectRecoilIfMiss @ EFFECT_RECOIL_IF_MISS
|
||||
|
@ -132,7 +132,7 @@ gBattleScriptsForMoveEffects::
|
|||
.4byte BattleScript_EffectBatonPass @ EFFECT_BATON_PASS
|
||||
.4byte BattleScript_EffectHit @ EFFECT_PURSUIT
|
||||
.4byte BattleScript_EffectRapidSpin @ EFFECT_RAPID_SPIN
|
||||
.4byte BattleScript_EffectSonicboom @ EFFECT_SONICBOOM
|
||||
.4byte BattleScript_EffectHit @ EFFECT_UNUSED_110
|
||||
.4byte BattleScript_EffectCaptivate @ EFFECT_CAPTIVATE
|
||||
.4byte BattleScript_EffectMorningSun @ EFFECT_MORNING_SUN
|
||||
.4byte BattleScript_EffectSynthesis @ EFFECT_SYNTHESIS
|
||||
|
@ -3827,17 +3827,6 @@ BattleScript_EffectSuperFang::
|
|||
damagetohalftargethp
|
||||
goto BattleScript_HitFromAtkAnimation
|
||||
|
||||
BattleScript_EffectDragonRage::
|
||||
attackcanceler
|
||||
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
||||
attackstring
|
||||
ppreduce
|
||||
typecalc
|
||||
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
||||
setword gBattleMoveDamage, 40
|
||||
adjustdamage
|
||||
goto BattleScript_HitFromAtkAnimation
|
||||
|
||||
BattleScript_EffectRecoilIfMiss::
|
||||
attackcanceler
|
||||
accuracycheck BattleScript_MoveMissedDoDamage, ACC_CURR_MOVE
|
||||
|
@ -4854,14 +4843,14 @@ BattleScript_EffectRapidSpinEnd::
|
|||
goto BattleScript_EffectHit
|
||||
.endif
|
||||
|
||||
BattleScript_EffectSonicboom::
|
||||
BattleScript_EffectArgFixedDamage::
|
||||
attackcanceler
|
||||
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
||||
attackstring
|
||||
ppreduce
|
||||
typecalc
|
||||
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
||||
setword gBattleMoveDamage, 20
|
||||
setargtobattledamage
|
||||
adjustdamage
|
||||
goto BattleScript_HitFromAtkAnimation
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
#define EFFECT_OHKO 31
|
||||
#define EFFECT_FUSION_COMBO 32
|
||||
#define EFFECT_SUPER_FANG 33
|
||||
#define EFFECT_DRAGON_RAGE 34
|
||||
#define EFFECT_ARG_FIXED_DAMAGE 34
|
||||
#define EFFECT_UNUSED_35 35
|
||||
#define EFFECT_HEAL_BLOCK 36
|
||||
#define EFFECT_RECOIL_IF_MISS 37
|
||||
|
@ -111,7 +111,7 @@
|
|||
#define EFFECT_BATON_PASS 107
|
||||
#define EFFECT_PURSUIT 108
|
||||
#define EFFECT_RAPID_SPIN 109
|
||||
#define EFFECT_SONICBOOM 110
|
||||
#define EFFECT_UNUSED_110 110
|
||||
#define EFFECT_CAPTIVATE 111
|
||||
#define EFFECT_MORNING_SUN 112
|
||||
#define EFFECT_SYNTHESIS 113
|
||||
|
|
|
@ -140,7 +140,7 @@
|
|||
#define VARIOUS_TRY_SOAK 48
|
||||
#define VARIOUS_HANDLE_MEGA_EVO 49
|
||||
#define VARIOUS_TRY_LAST_RESORT 50
|
||||
#define VARIOUS_UNUSED_51 51
|
||||
#define VARIOUS_SET_ARG_TO_BATTLE_DAMAGE 51
|
||||
#define VARIOUS_TRY_HIT_SWITCH_TARGET 52
|
||||
#define VARIOUS_TRY_AUTOTOMIZE 53
|
||||
#define VARIOUS_ABILITY_POPUP 54
|
||||
|
|
|
@ -1381,7 +1381,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
|||
//case EFFECT_BIDE:
|
||||
//case EFFECT_COUNTER:
|
||||
case EFFECT_PRESENT:
|
||||
case EFFECT_SONICBOOM:
|
||||
case EFFECT_ARG_FIXED_DAMAGE:
|
||||
//case EFFECT_MIRROR_COAT:
|
||||
case EFFECT_FOCUS_PUNCH:
|
||||
//case EFFECT_ENDEAVOR:
|
||||
|
|
|
@ -768,11 +768,8 @@ s32 AI_CalcDamage(u32 move, u32 battlerAtk, u32 battlerDef, u8 *typeEffectivenes
|
|||
case EFFECT_PSYWAVE:
|
||||
dmg = gBattleMons[battlerAtk].level * (aiData->abilities[battlerAtk] == ABILITY_PARENTAL_BOND ? 2 : 1);
|
||||
break;
|
||||
case EFFECT_DRAGON_RAGE:
|
||||
dmg = 40 * (aiData->abilities[battlerAtk] == ABILITY_PARENTAL_BOND ? 2 : 1);
|
||||
break;
|
||||
case EFFECT_SONICBOOM:
|
||||
dmg = 20 * (aiData->abilities[battlerAtk] == ABILITY_PARENTAL_BOND ? 2 : 1);
|
||||
case EFFECT_ARG_FIXED_DAMAGE:
|
||||
dmg = gBattleMoves[move].argument * (aiData->abilities[battlerAtk] == ABILITY_PARENTAL_BOND ? 2 : 1);
|
||||
break;
|
||||
case EFFECT_MULTI_HIT:
|
||||
dmg *= (aiData->abilities[battlerAtk] == ABILITY_SKILL_LINK
|
||||
|
|
|
@ -436,11 +436,10 @@ static u8 GetMaxPowerTier(u16 move)
|
|||
case EFFECT_TERRAIN_PULSE:
|
||||
case EFFECT_PUNISHMENT:
|
||||
case EFFECT_TRUMP_CARD:
|
||||
case EFFECT_SONICBOOM:
|
||||
case EFFECT_ARG_FIXED_DAMAGE:
|
||||
case EFFECT_SPIT_UP:
|
||||
case EFFECT_NATURAL_GIFT:
|
||||
case EFFECT_MIRROR_COAT:
|
||||
case EFFECT_DRAGON_RAGE:
|
||||
case EFFECT_FINAL_GAMBIT:
|
||||
//case EFFECT_DRAGON_DARTS:
|
||||
return MAX_POWER_TIER_2;
|
||||
|
|
|
@ -9597,6 +9597,12 @@ static void Cmd_various(void)
|
|||
gBattlescriptCurrInstr = cmd->failInstr;
|
||||
return;
|
||||
}
|
||||
case VARIOUS_SET_ARG_TO_BATTLE_DAMAGE:
|
||||
{
|
||||
VARIOUS_ARGS();
|
||||
gBattleMoveDamage = gBattleMoves[gCurrentMove].argument;
|
||||
break;
|
||||
}
|
||||
case VARIOUS_TRY_HIT_SWITCH_TARGET:
|
||||
{
|
||||
VARIOUS_ARGS(const u8 *failInstr);
|
||||
|
|
|
@ -120,7 +120,6 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] =
|
|||
[EFFECT_OHKO] = 7,
|
||||
// [EFFECT_RAZOR_WIND] = 1,
|
||||
[EFFECT_SUPER_FANG] = 5,
|
||||
[EFFECT_DRAGON_RAGE] = 2,
|
||||
// [EFFECT_HIGH_CRITICAL] = 1,
|
||||
// [EFFECT_DOUBLE_HIT] = 1,
|
||||
[EFFECT_RECOIL_IF_MISS] = 1,
|
||||
|
@ -193,7 +192,7 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] =
|
|||
[EFFECT_BATON_PASS] = 7,
|
||||
[EFFECT_PURSUIT] = 2,
|
||||
[EFFECT_RAPID_SPIN] = 2,
|
||||
[EFFECT_SONICBOOM] = 1,
|
||||
[EFFECT_ARG_FIXED_DAMAGE] = 1,
|
||||
[EFFECT_MORNING_SUN] = 4,
|
||||
[EFFECT_SYNTHESIS] = 4,
|
||||
[EFFECT_MOONLIGHT] = 4,
|
||||
|
|
|
@ -795,7 +795,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
|||
|
||||
[MOVE_SONIC_BOOM] =
|
||||
{
|
||||
.effect = EFFECT_SONICBOOM,
|
||||
.effect = EFFECT_ARG_FIXED_DAMAGE,
|
||||
.power = 1,
|
||||
.type = TYPE_NORMAL,
|
||||
.accuracy = 90,
|
||||
|
@ -803,6 +803,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
|||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.category = BATTLE_CATEGORY_SPECIAL,
|
||||
.argument = 20,
|
||||
},
|
||||
|
||||
[MOVE_DISABLE] =
|
||||
|
@ -1350,7 +1351,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
|||
|
||||
[MOVE_DRAGON_RAGE] =
|
||||
{
|
||||
.effect = EFFECT_DRAGON_RAGE,
|
||||
.effect = EFFECT_ARG_FIXED_DAMAGE,
|
||||
.power = 1,
|
||||
.type = TYPE_DRAGON,
|
||||
.accuracy = 100,
|
||||
|
@ -1359,6 +1360,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
|||
.priority = 0,
|
||||
.category = BATTLE_CATEGORY_SPECIAL,
|
||||
.ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_4) || (B_UPDATED_MOVE_FLAGS < GEN_3),
|
||||
.argument = 40,
|
||||
},
|
||||
|
||||
[MOVE_FIRE_SPIN] =
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gItems[ITEM_LIECHI_BERRY].holdEffect == HOLD_EFFECT_ATTACK_UP);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].effect == EFFECT_DRAGON_RAGE);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].effect == EFFECT_ARG_FIXED_DAMAGE);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].argument == 40);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Liechi Berry raises the holder's Attack by one stage when HP drops to 1/4 or below")
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gItems[ITEM_LANSAT_BERRY].holdEffect == HOLD_EFFECT_CRITICAL_UP);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].effect == EFFECT_DRAGON_RAGE);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].effect == EFFECT_ARG_FIXED_DAMAGE);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].argument == 40);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Lansat Berry raises the holder's critical-hit-ratio by two stages when HP drops to 1/4 or below")
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gItems[ITEM_GANLON_BERRY].holdEffect == HOLD_EFFECT_DEFENSE_UP);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].effect == EFFECT_DRAGON_RAGE);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].effect == EFFECT_ARG_FIXED_DAMAGE);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].argument == 40);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Ganlon Berry raises the holder's Defense by one stage when HP drops to 1/4 or below")
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gItems[ITEM_MICLE_BERRY].holdEffect == HOLD_EFFECT_MICLE_BERRY);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].effect == EFFECT_DRAGON_RAGE);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].effect == EFFECT_ARG_FIXED_DAMAGE);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].argument == 40);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Micle Berry raises the holder's accuracy by 1.2 when HP drops to 1/4 or below")
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gItems[ITEM_PETAYA_BERRY].holdEffect == HOLD_EFFECT_SP_ATTACK_UP);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].effect == EFFECT_DRAGON_RAGE);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].effect == EFFECT_ARG_FIXED_DAMAGE);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].argument == 40);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Petaya Berry raises the holder's Sp. Atk by one stage when HP drops to 1/4 or below")
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gItems[ITEM_APICOT_BERRY].holdEffect == HOLD_EFFECT_SP_DEFENSE_UP);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].effect == EFFECT_DRAGON_RAGE);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].effect == EFFECT_ARG_FIXED_DAMAGE);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].argument == 40);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Apicot Berry raises the holder's Sp. Def by one stage when HP drops to 1/4 or below")
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gItems[ITEM_SALAC_BERRY].holdEffect == HOLD_EFFECT_SPEED_UP);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].effect == EFFECT_DRAGON_RAGE);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].effect == EFFECT_ARG_FIXED_DAMAGE);
|
||||
ASSUME(gBattleMoves[MOVE_DRAGON_RAGE].argument == 40);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Salac Berry raises the holder's Speed by one stage when HP drops to 1/4 or below")
|
||||
|
|
Loading…
Reference in a new issue