Mind blown (#302)

* Mind Blown Part 1 (Definition and self-damage)

* Mind Blown Part 2 (Damp interaction)
This commit is contained in:
Eduardo Alvaro Quezada D'Ottone 2020-04-14 03:27:29 -04:00 committed by GitHub
parent 51e1639513
commit 2b9eb00486
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 47 additions and 2 deletions

View File

@ -1782,6 +1782,10 @@
manipulatedamage DMG_CURR_ATTACKER_HP
.endm
.macro dmg_1_2_attackerhp
manipulatedamage DMG_1_2_ATTACKER_HP
.endm
.macro jumpifflowerveil jumpptr:req
jumpifnottype BS_TARGET, TYPE_GRASS, 1f
jumpifability BS_TARGET_SIDE, ABILITY_FLOWER_VEIL, \jumpptr

View File

@ -356,6 +356,7 @@ gBattleScriptsForMoveEffects:: @ 82D86A8
.4byte BattleScript_EffectIncinerate
.4byte BattleScript_EffectBugBite
.4byte BattleScript_EffectStrengthSap
.4byte BattleScript_EffectMindBlown
BattleScript_EffectStrengthSap:
setstatchanger STAT_ATK, 1, TRUE
@ -2227,6 +2228,19 @@ BattleScript_ExplosionMissed:
tryfaintmon BS_ATTACKER, FALSE, NULL
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:
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED
attackanimation

View File

@ -344,5 +344,6 @@
#define EFFECT_INCINERATE 338
#define EFFECT_BUG_BITE 339
#define EFFECT_STRENGTH_SAP 340
#define EFFECT_MIND_BLOWN 341
#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H

View File

@ -149,7 +149,7 @@
#define VARIOUS_GET_STAT_VALUE 86
#define VARIOUS_JUMP_IF_FULL_HP 87
// Cmd_manipulatedmg
// Cmd_manipulatedamage
#define DMG_CHANGE_SIGN 0
#define DMG_RECOIL_FROM_MISS 1
#define DMG_DOUBLED 2
@ -157,6 +157,7 @@
#define DMG_FULL_ATTACKER_HP 4
#define DMG_CURR_ATTACKER_HP 5
#define DMG_BIG_ROOT 6
#define DMG_1_2_ATTACKER_HP 7
// Cmd_jumpifcantswitch
#define SWITCH_IGNORE_ESCAPE_PREVENTION 0x80

View File

@ -690,8 +690,9 @@
#define MOVE_ZING_ZAP 670
#define MOVE_NATURES_MADNESS 671
#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

View File

@ -316,6 +316,7 @@ static const u16 sDiscouragedPowerfulMoveEffects[] =
EFFECT_SUPERPOWER,
EFFECT_ERUPTION,
EFFECT_OVERHEAT,
EFFECT_MIND_BLOWN,
0xFFFF
};

View File

@ -8112,6 +8112,9 @@ static void Cmd_manipulatedamage(void)
case DMG_BIG_ROOT:
gBattleMoveDamage = GetDrainedBigRootHp(gBattlerAttacker, gBattleMoveDamage);
break;
case DMG_1_2_ATTACKER_HP:
gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2;
break;
}
gBattlescriptCurrInstr += 2;

View File

@ -9443,4 +9443,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED,
.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,
},
};

View File

@ -2533,6 +2533,10 @@ static const u8 sMULTI_ATTACKDescription[] = _(
"An attack that changes\n"
"with Memories.");
static const u8 sMIND_BLOWNDescription[] = _(
"It explodes the user's head\n"
"to damage everything around.");
static const u8 sNotDoneYetDescription[] = _(
"Not done yet.");
@ -3212,4 +3216,5 @@ const u8 *const gMoveDescriptionPointers[MOVES_COUNT - 1] =
[MOVE_ZING_ZAP - 1] = sZING_ZAPDescription,
[MOVE_NATURES_MADNESS - 1] = sNATURES_MADNESSDescription,
[MOVE_MULTI_ATTACK - 1] = sMULTI_ATTACKDescription,
[MOVE_MIND_BLOWN - 1] = sMIND_BLOWNDescription,
};

View File

@ -673,4 +673,5 @@ const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] =
[MOVE_ZING_ZAP] = _("Zing Zap"),
[MOVE_NATURES_MADNESS] = _("Nature's Mad"),
[MOVE_MULTI_ATTACK] = _("Multi-Attack"),
[MOVE_MIND_BLOWN] = _("Mind Blown"),
};