Mind blown (#302)
* Mind Blown Part 1 (Definition and self-damage) * Mind Blown Part 2 (Damp interaction)
This commit is contained in:
parent
51e1639513
commit
2b9eb00486
10 changed files with 47 additions and 2 deletions
|
@ -1782,6 +1782,10 @@
|
||||||
manipulatedamage DMG_CURR_ATTACKER_HP
|
manipulatedamage DMG_CURR_ATTACKER_HP
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
.macro dmg_1_2_attackerhp
|
||||||
|
manipulatedamage DMG_1_2_ATTACKER_HP
|
||||||
|
.endm
|
||||||
|
|
||||||
.macro jumpifflowerveil jumpptr:req
|
.macro jumpifflowerveil jumpptr:req
|
||||||
jumpifnottype BS_TARGET, TYPE_GRASS, 1f
|
jumpifnottype BS_TARGET, TYPE_GRASS, 1f
|
||||||
jumpifability BS_TARGET_SIDE, ABILITY_FLOWER_VEIL, \jumpptr
|
jumpifability BS_TARGET_SIDE, ABILITY_FLOWER_VEIL, \jumpptr
|
||||||
|
|
|
@ -356,6 +356,7 @@ gBattleScriptsForMoveEffects:: @ 82D86A8
|
||||||
.4byte BattleScript_EffectIncinerate
|
.4byte BattleScript_EffectIncinerate
|
||||||
.4byte BattleScript_EffectBugBite
|
.4byte BattleScript_EffectBugBite
|
||||||
.4byte BattleScript_EffectStrengthSap
|
.4byte BattleScript_EffectStrengthSap
|
||||||
|
.4byte BattleScript_EffectMindBlown
|
||||||
|
|
||||||
BattleScript_EffectStrengthSap:
|
BattleScript_EffectStrengthSap:
|
||||||
setstatchanger STAT_ATK, 1, TRUE
|
setstatchanger STAT_ATK, 1, TRUE
|
||||||
|
@ -2227,6 +2228,19 @@ BattleScript_ExplosionMissed:
|
||||||
tryfaintmon BS_ATTACKER, FALSE, NULL
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
||||||
end
|
end
|
||||||
|
|
||||||
|
BattleScript_EffectMindBlown::
|
||||||
|
attackcanceler
|
||||||
|
attackstring
|
||||||
|
ppreduce
|
||||||
|
faintifabilitynotdamp
|
||||||
|
dmg_1_2_attackerhp
|
||||||
|
healthbarupdate BS_ATTACKER
|
||||||
|
datahpupdate BS_ATTACKER
|
||||||
|
waitstate
|
||||||
|
jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_ExplosionDoAnimStartLoop
|
||||||
|
call BattleScript_PreserveMissedBitDoMoveAnim
|
||||||
|
goto BattleScript_ExplosionLoop
|
||||||
|
|
||||||
BattleScript_PreserveMissedBitDoMoveAnim:
|
BattleScript_PreserveMissedBitDoMoveAnim:
|
||||||
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
||||||
attackanimation
|
attackanimation
|
||||||
|
|
|
@ -344,5 +344,6 @@
|
||||||
#define EFFECT_INCINERATE 338
|
#define EFFECT_INCINERATE 338
|
||||||
#define EFFECT_BUG_BITE 339
|
#define EFFECT_BUG_BITE 339
|
||||||
#define EFFECT_STRENGTH_SAP 340
|
#define EFFECT_STRENGTH_SAP 340
|
||||||
|
#define EFFECT_MIND_BLOWN 341
|
||||||
|
|
||||||
#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
|
#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
|
||||||
|
|
|
@ -149,7 +149,7 @@
|
||||||
#define VARIOUS_GET_STAT_VALUE 86
|
#define VARIOUS_GET_STAT_VALUE 86
|
||||||
#define VARIOUS_JUMP_IF_FULL_HP 87
|
#define VARIOUS_JUMP_IF_FULL_HP 87
|
||||||
|
|
||||||
// Cmd_manipulatedmg
|
// Cmd_manipulatedamage
|
||||||
#define DMG_CHANGE_SIGN 0
|
#define DMG_CHANGE_SIGN 0
|
||||||
#define DMG_RECOIL_FROM_MISS 1
|
#define DMG_RECOIL_FROM_MISS 1
|
||||||
#define DMG_DOUBLED 2
|
#define DMG_DOUBLED 2
|
||||||
|
@ -157,6 +157,7 @@
|
||||||
#define DMG_FULL_ATTACKER_HP 4
|
#define DMG_FULL_ATTACKER_HP 4
|
||||||
#define DMG_CURR_ATTACKER_HP 5
|
#define DMG_CURR_ATTACKER_HP 5
|
||||||
#define DMG_BIG_ROOT 6
|
#define DMG_BIG_ROOT 6
|
||||||
|
#define DMG_1_2_ATTACKER_HP 7
|
||||||
|
|
||||||
// Cmd_jumpifcantswitch
|
// Cmd_jumpifcantswitch
|
||||||
#define SWITCH_IGNORE_ESCAPE_PREVENTION 0x80
|
#define SWITCH_IGNORE_ESCAPE_PREVENTION 0x80
|
||||||
|
|
|
@ -690,8 +690,9 @@
|
||||||
#define MOVE_ZING_ZAP 670
|
#define MOVE_ZING_ZAP 670
|
||||||
#define MOVE_NATURES_MADNESS 671
|
#define MOVE_NATURES_MADNESS 671
|
||||||
#define MOVE_MULTI_ATTACK 672
|
#define MOVE_MULTI_ATTACK 672
|
||||||
|
#define MOVE_MIND_BLOWN 673
|
||||||
|
|
||||||
#define MOVES_COUNT_GEN7 673
|
#define MOVES_COUNT_GEN7 674
|
||||||
|
|
||||||
#define MOVES_COUNT MOVES_COUNT_GEN7
|
#define MOVES_COUNT MOVES_COUNT_GEN7
|
||||||
|
|
||||||
|
|
|
@ -316,6 +316,7 @@ static const u16 sDiscouragedPowerfulMoveEffects[] =
|
||||||
EFFECT_SUPERPOWER,
|
EFFECT_SUPERPOWER,
|
||||||
EFFECT_ERUPTION,
|
EFFECT_ERUPTION,
|
||||||
EFFECT_OVERHEAT,
|
EFFECT_OVERHEAT,
|
||||||
|
EFFECT_MIND_BLOWN,
|
||||||
0xFFFF
|
0xFFFF
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -8112,6 +8112,9 @@ static void Cmd_manipulatedamage(void)
|
||||||
case DMG_BIG_ROOT:
|
case DMG_BIG_ROOT:
|
||||||
gBattleMoveDamage = GetDrainedBigRootHp(gBattlerAttacker, gBattleMoveDamage);
|
gBattleMoveDamage = GetDrainedBigRootHp(gBattlerAttacker, gBattleMoveDamage);
|
||||||
break;
|
break;
|
||||||
|
case DMG_1_2_ATTACKER_HP:
|
||||||
|
gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
gBattlescriptCurrInstr += 2;
|
gBattlescriptCurrInstr += 2;
|
||||||
|
|
|
@ -9443,4 +9443,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
|
||||||
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
|
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
|
||||||
.split = SPLIT_PHYSICAL,
|
.split = SPLIT_PHYSICAL,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
[MOVE_MIND_BLOWN] =
|
||||||
|
{
|
||||||
|
.effect = EFFECT_MIND_BLOWN,
|
||||||
|
.power = 150,
|
||||||
|
.type = TYPE_FIRE,
|
||||||
|
.accuracy = 100,
|
||||||
|
.pp = 5,
|
||||||
|
.secondaryEffectChance = 0,
|
||||||
|
.target = MOVE_TARGET_FOES_AND_ALLY,
|
||||||
|
.priority = 0,
|
||||||
|
.flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
|
||||||
|
.split = SPLIT_PHYSICAL,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -2533,6 +2533,10 @@ static const u8 sMULTI_ATTACKDescription[] = _(
|
||||||
"An attack that changes\n"
|
"An attack that changes\n"
|
||||||
"with Memories.");
|
"with Memories.");
|
||||||
|
|
||||||
|
static const u8 sMIND_BLOWNDescription[] = _(
|
||||||
|
"It explodes the user's head\n"
|
||||||
|
"to damage everything around.");
|
||||||
|
|
||||||
static const u8 sNotDoneYetDescription[] = _(
|
static const u8 sNotDoneYetDescription[] = _(
|
||||||
"Not done yet.");
|
"Not done yet.");
|
||||||
|
|
||||||
|
@ -3212,4 +3216,5 @@ const u8 *const gMoveDescriptionPointers[MOVES_COUNT - 1] =
|
||||||
[MOVE_ZING_ZAP - 1] = sZING_ZAPDescription,
|
[MOVE_ZING_ZAP - 1] = sZING_ZAPDescription,
|
||||||
[MOVE_NATURES_MADNESS - 1] = sNATURES_MADNESSDescription,
|
[MOVE_NATURES_MADNESS - 1] = sNATURES_MADNESSDescription,
|
||||||
[MOVE_MULTI_ATTACK - 1] = sMULTI_ATTACKDescription,
|
[MOVE_MULTI_ATTACK - 1] = sMULTI_ATTACKDescription,
|
||||||
|
[MOVE_MIND_BLOWN - 1] = sMIND_BLOWNDescription,
|
||||||
};
|
};
|
||||||
|
|
|
@ -673,4 +673,5 @@ const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] =
|
||||||
[MOVE_ZING_ZAP] = _("Zing Zap"),
|
[MOVE_ZING_ZAP] = _("Zing Zap"),
|
||||||
[MOVE_NATURES_MADNESS] = _("Nature's Mad"),
|
[MOVE_NATURES_MADNESS] = _("Nature's Mad"),
|
||||||
[MOVE_MULTI_ATTACK] = _("Multi-Attack"),
|
[MOVE_MULTI_ATTACK] = _("Multi-Attack"),
|
||||||
|
[MOVE_MIND_BLOWN] = _("Mind Blown"),
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue