mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-27 20:24:18 +01:00
Fix crits and do Worry Seed
This commit is contained in:
parent
6570324432
commit
567a0240f3
@ -1243,6 +1243,11 @@
|
|||||||
.4byte \ptr
|
.4byte \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
.macro tryworryseed ptr
|
||||||
|
.byte 0xfe
|
||||||
|
.4byte \ptr
|
||||||
|
.endm
|
||||||
|
|
||||||
@ various command changed to more readable macros
|
@ various command changed to more readable macros
|
||||||
.macro cancelmultiturnmoves bank
|
.macro cancelmultiturnmoves bank
|
||||||
various \bank, VARIOUS_CANCEL_MULTI_TURN_MOVES
|
various \bank, VARIOUS_CANCEL_MULTI_TURN_MOVES
|
||||||
|
@ -177,7 +177,7 @@ gBattleScriptsForMoveEffects:: @ 82D86A8
|
|||||||
.4byte BattleScript_EffectStockpile
|
.4byte BattleScript_EffectStockpile
|
||||||
.4byte BattleScript_EffectSpitUp
|
.4byte BattleScript_EffectSpitUp
|
||||||
.4byte BattleScript_EffectSwallow
|
.4byte BattleScript_EffectSwallow
|
||||||
.4byte BattleScript_EffectUnusedA3
|
.4byte BattleScript_EffectWorrySeed
|
||||||
.4byte BattleScript_EffectHail
|
.4byte BattleScript_EffectHail
|
||||||
.4byte BattleScript_EffectTorment
|
.4byte BattleScript_EffectTorment
|
||||||
.4byte BattleScript_EffectFlatter
|
.4byte BattleScript_EffectFlatter
|
||||||
@ -271,6 +271,18 @@ gBattleScriptsForMoveEffects:: @ 82D86A8
|
|||||||
.4byte BattleScript_EffectPowerSplit
|
.4byte BattleScript_EffectPowerSplit
|
||||||
.4byte BattleScript_EffectGuardSplit
|
.4byte BattleScript_EffectGuardSplit
|
||||||
|
|
||||||
|
BattleScript_EffectWorrySeed:
|
||||||
|
attackcanceler
|
||||||
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
||||||
|
attackstring
|
||||||
|
ppreduce
|
||||||
|
tryworryseed BattleScript_ButItFailed
|
||||||
|
attackanimation
|
||||||
|
waitanimation
|
||||||
|
printstring STRINGID_PKMNACQUIREDABILITY
|
||||||
|
waitmessage 0x40
|
||||||
|
goto BattleScript_MoveEnd
|
||||||
|
|
||||||
BattleScript_EffectPowerSplit:
|
BattleScript_EffectPowerSplit:
|
||||||
attackcanceler
|
attackcanceler
|
||||||
attackstring
|
attackstring
|
||||||
@ -357,10 +369,10 @@ BattleScript_EffectStealthRock:
|
|||||||
attackcanceler
|
attackcanceler
|
||||||
attackstring
|
attackstring
|
||||||
ppreduce
|
ppreduce
|
||||||
setstealthrock STRINGID_POINTEDSTONESFLOAT
|
setstealthrock BattleScript_ButItFailed
|
||||||
attackanimation
|
attackanimation
|
||||||
waitanimation
|
waitanimation
|
||||||
printstring STRINGID_POISONSPIKESSCATTERED
|
printstring STRINGID_POINTEDSTONESFLOAT
|
||||||
waitmessage 0x40
|
waitmessage 0x40
|
||||||
goto BattleScript_MoveEnd
|
goto BattleScript_MoveEnd
|
||||||
|
|
||||||
@ -492,7 +504,6 @@ BattleScript_EffectAlwaysCrit:
|
|||||||
BattleScript_EffectUnused6e:
|
BattleScript_EffectUnused6e:
|
||||||
BattleScript_EffectPursuit:
|
BattleScript_EffectPursuit:
|
||||||
BattleScript_EffectUnused8d:
|
BattleScript_EffectUnused8d:
|
||||||
BattleScript_EffectUnusedA3:
|
|
||||||
BattleScript_EffectPlaceholder200:
|
BattleScript_EffectPlaceholder200:
|
||||||
BattleScript_EffectPlaceholder209:
|
BattleScript_EffectPlaceholder209:
|
||||||
BattleScript_EffectHit::
|
BattleScript_EffectHit::
|
||||||
|
@ -164,7 +164,7 @@
|
|||||||
#define EFFECT_STOCKPILE 160
|
#define EFFECT_STOCKPILE 160
|
||||||
#define EFFECT_SPIT_UP 161
|
#define EFFECT_SPIT_UP 161
|
||||||
#define EFFECT_SWALLOW 162
|
#define EFFECT_SWALLOW 162
|
||||||
#define EFFECT_UNUSED_A3 163
|
#define EFFECT_WORRY_SEED 163
|
||||||
#define EFFECT_HAIL 164
|
#define EFFECT_HAIL 164
|
||||||
#define EFFECT_TORMENT 165
|
#define EFFECT_TORMENT 165
|
||||||
#define EFFECT_FLATTER 166
|
#define EFFECT_FLATTER 166
|
||||||
|
@ -4660,7 +4660,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_GEN6] =
|
|||||||
.split = SPLIT_PHYSICAL,
|
.split = SPLIT_PHYSICAL,
|
||||||
},
|
},
|
||||||
{ // MOVE_WORRY_SEED
|
{ // MOVE_WORRY_SEED
|
||||||
.effect = EFFECT_PLACEHOLDER_209,
|
.effect = EFFECT_WORRY_SEED,
|
||||||
.power = 0,
|
.power = 0,
|
||||||
.type = TYPE_GRASS,
|
.type = TYPE_GRASS,
|
||||||
.accuracy = 100,
|
.accuracy = 100,
|
||||||
@ -5764,7 +5764,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_GEN6] =
|
|||||||
.split = SPLIT_PHYSICAL,
|
.split = SPLIT_PHYSICAL,
|
||||||
},
|
},
|
||||||
{ // MOVE_STORM_THROW
|
{ // MOVE_STORM_THROW
|
||||||
.effect = EFFECT_PLACEHOLDER_209,
|
.effect = EFFECT_ALWAYS_CRIT,
|
||||||
.power = 60,
|
.power = 60,
|
||||||
.type = TYPE_FIGHTING,
|
.type = TYPE_FIGHTING,
|
||||||
.accuracy = 100,
|
.accuracy = 100,
|
||||||
@ -6292,7 +6292,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_GEN6] =
|
|||||||
.split = SPLIT_PHYSICAL,
|
.split = SPLIT_PHYSICAL,
|
||||||
},
|
},
|
||||||
{ // MOVE_FROST_BREATH
|
{ // MOVE_FROST_BREATH
|
||||||
.effect = EFFECT_PLACEHOLDER_209,
|
.effect = EFFECT_ALWAYS_CRIT,
|
||||||
.power = 60,
|
.power = 60,
|
||||||
.type = TYPE_ICE,
|
.type = TYPE_ICE,
|
||||||
.accuracy = 90,
|
.accuracy = 90,
|
||||||
|
@ -752,6 +752,7 @@ static bool32 AI_GetIfCrit(u32 move, u8 battlerAtk, u8 battlerDef)
|
|||||||
else
|
else
|
||||||
isCrit = FALSE;
|
isCrit = FALSE;
|
||||||
break;
|
break;
|
||||||
|
case -2:
|
||||||
case 3:
|
case 3:
|
||||||
case 4:
|
case 4:
|
||||||
isCrit = TRUE;
|
isCrit = TRUE;
|
||||||
|
@ -543,7 +543,7 @@ static const u8 sText_PkmnsAbilitySuppressed[] = _("{B_DEF_NAME_WITH_PREFIX}’s
|
|||||||
static const u8 sText_ShieldedFromCriticalHits[] = _("The {B_CURRENT_MOVE} shielded your\nteam from critical hits!");
|
static const u8 sText_ShieldedFromCriticalHits[] = _("The {B_CURRENT_MOVE} shielded your\nteam from critical hits!");
|
||||||
static const u8 sText_SwitchedAtkAndSpAtk[] = _("{B_ATK_NAME_WITH_PREFIX} switched all its\nchanges to its Attack and\pSp. Atk with the target!");
|
static const u8 sText_SwitchedAtkAndSpAtk[] = _("{B_ATK_NAME_WITH_PREFIX} switched all its\nchanges to its Attack and\pSp. Atk with the target!");
|
||||||
static const u8 sText_SwitchedDefAndSpDef[] = _("{B_ATK_NAME_WITH_PREFIX} switched all its\nchanges to its Defense and\pSp. Def with the target!");
|
static const u8 sText_SwitchedDefAndSpDef[] = _("{B_ATK_NAME_WITH_PREFIX} switched all its\nchanges to its Defense and\pSp. Def with the target!");
|
||||||
static const u8 sText_PkmnAcquiredAbility[] = _("{B_DEF_NAME_WITH_PREFIX} acquired\n{B_LAST_ABILITY}!");
|
static const u8 sText_PkmnAcquiredAbility[] = _("{B_DEF_NAME_WITH_PREFIX} acquired\n{B_DEF_ABILITY}!");
|
||||||
static const u8 sText_PoisonSpikesScattered[] = _("Poison Spikes were scattered\nall around the foe’s team’s\pfeet!");
|
static const u8 sText_PoisonSpikesScattered[] = _("Poison Spikes were scattered\nall around the foe’s team’s\pfeet!");
|
||||||
static const u8 sText_PkmnSwitchedStatChanges[] = _("{B_ATK_NAME_WITH_PREFIX} switched stat changes\nwith the target!");
|
static const u8 sText_PkmnSwitchedStatChanges[] = _("{B_ATK_NAME_WITH_PREFIX} switched stat changes\nwith the target!");
|
||||||
static const u8 sText_PkmnSurroundedWithVeilOfWater[] = _("{B_ATK_NAME_WITH_PREFIX} surrounded itself\nwith a veil of water!");
|
static const u8 sText_PkmnSurroundedWithVeilOfWater[] = _("{B_ATK_NAME_WITH_PREFIX} surrounded itself\nwith a veil of water!");
|
||||||
|
@ -345,6 +345,7 @@ static void atkFA_swapstatstages(void);
|
|||||||
static void atkFB_averagestats(void);
|
static void atkFB_averagestats(void);
|
||||||
static void atkFC_jumpifoppositegenders(void);
|
static void atkFC_jumpifoppositegenders(void);
|
||||||
static void atkFD_trygetbaddreamstarget(void);
|
static void atkFD_trygetbaddreamstarget(void);
|
||||||
|
static void atkFE_tryworryseed(void);
|
||||||
|
|
||||||
void (* const gBattleScriptingCommandsTable[])(void) =
|
void (* const gBattleScriptingCommandsTable[])(void) =
|
||||||
{
|
{
|
||||||
@ -602,6 +603,7 @@ void (* const gBattleScriptingCommandsTable[])(void) =
|
|||||||
atkFB_averagestats,
|
atkFB_averagestats,
|
||||||
atkFC_jumpifoppositegenders,
|
atkFC_jumpifoppositegenders,
|
||||||
atkFD_trygetbaddreamstarget,
|
atkFD_trygetbaddreamstarget,
|
||||||
|
atkFE_tryworryseed,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct StatFractions
|
struct StatFractions
|
||||||
@ -1316,7 +1318,7 @@ s32 CalcCritChanceStage(u8 battlerAtk, u8 battlerDef, u32 move, bool32 recordAbi
|
|||||||
|| gBattleMoves[move].effect == EFFECT_ALWAYS_CRIT
|
|| gBattleMoves[move].effect == EFFECT_ALWAYS_CRIT
|
||||||
|| (abilityAtk == ABILITY_MERCILESS && gBattleMons[battlerDef].status1 & STATUS1_PSN_ANY))
|
|| (abilityAtk == ABILITY_MERCILESS && gBattleMons[battlerDef].status1 & STATUS1_PSN_ANY))
|
||||||
{
|
{
|
||||||
critChance = 4;
|
critChance = -2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1350,6 +1352,8 @@ static void atk04_critcalc(void)
|
|||||||
gIsCriticalHit = FALSE;
|
gIsCriticalHit = FALSE;
|
||||||
else if (critChance == -1)
|
else if (critChance == -1)
|
||||||
gIsCriticalHit = FALSE;
|
gIsCriticalHit = FALSE;
|
||||||
|
else if (critChance == -2)
|
||||||
|
gIsCriticalHit = TRUE;
|
||||||
else if (Random() % sCriticalHitChanceGen3[critChance] == 0)
|
else if (Random() % sCriticalHitChanceGen3[critChance] == 0)
|
||||||
gIsCriticalHit = TRUE;
|
gIsCriticalHit = TRUE;
|
||||||
else
|
else
|
||||||
@ -10400,3 +10404,20 @@ static void atkFD_trygetbaddreamstarget(void)
|
|||||||
else
|
else
|
||||||
gBattlescriptCurrInstr += 5;
|
gBattlescriptCurrInstr += 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void atkFE_tryworryseed(void)
|
||||||
|
{
|
||||||
|
switch (gBattleMons[gBattlerTarget].ability)
|
||||||
|
{
|
||||||
|
case ABILITY_INSOMNIA:
|
||||||
|
case ABILITY_MULTITYPE:
|
||||||
|
case ABILITY_TRUANT:
|
||||||
|
case ABILITY_STANCE_CHANGE:
|
||||||
|
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
gBattleMons[gBattlerTarget].ability = ABILITY_INSOMNIA;
|
||||||
|
gBattlescriptCurrInstr += 5;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user