Three pointless moves

Celebrate, Hold Hands and Happy Hour. Yay(!)
Update: turns out Pay Day works differently to how I thought, so I added a new move effect for Happy Hour doubling prize money.
Made all three effects subset of EFFECT_SPLASH, now called EFFECT_DUMB, as per Egg's instructions ( ͡° ͜ʖ ͡°)
This commit is contained in:
Papa Cancer 2019-04-03 20:33:37 +01:00
parent 79fec8a38d
commit 4c8bc9d526
8 changed files with 43 additions and 10 deletions

View File

@ -100,7 +100,7 @@ gBattleScriptsForMoveEffects:: @ 82D86A8
.4byte BattleScript_EffectMimic
.4byte BattleScript_EffectMetronome
.4byte BattleScript_EffectLeechSeed
.4byte BattleScript_EffectSplash
.4byte BattleScript_EffectDoNothing
.4byte BattleScript_EffectDisable
.4byte BattleScript_EffectLevelDamage
.4byte BattleScript_EffectPsywave
@ -345,7 +345,7 @@ gBattleScriptsForMoveEffects:: @ 82D86A8
.4byte BattleScript_EffectPartingShot
.4byte BattleScript_EffectSpectralThief
.4byte BattleScript_EffectVCreate
BattleScript_EffectVCreate:
setmoveeffect MOVE_EFFECT_V_CREATE | MOVE_EFFECT_AFFECTS_USER
goto BattleScript_EffectHit
@ -2835,16 +2835,33 @@ BattleScript_DoLeechSeed::
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectSplash::
BattleScript_EffectDoNothing::
attackcanceler
attackstring
ppreduce
jumpifmove MOVE_HOLD_HANDS, BattleScript_EffectHoldHands
attackanimation
waitanimation
jumpifmove MOVE_CELEBRATE, BattleScript_EffectCelebrate
jumpifmove MOVE_HAPPY_HOUR, BattleScript_EffectHappyHour
incrementgamestat GAME_STAT_USED_SPLASH
printstring STRINGID_BUTNOTHINGHAPPENED
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectHoldHands:
jumpifsideaffecting BS_TARGET, SIDE_STATUS_CRAFTY_SHIELD, BattleScript_ButItFailed
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_DOUBLE, BattleScript_ButItFailed
attackanimation
waitanimation
goto BattleScript_MoveEnd
BattleScript_EffectCelebrate:
printstring STRINGID_CELEBRATEMESSAGE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectHappyHour:
setmoveeffect MOVE_EFFECT_HAPPY_HOUR
seteffectprimary
goto BattleScript_MoveEnd
BattleScript_EffectDisable::
attackcanceler

View File

@ -326,6 +326,7 @@
#define MOVE_EFFECT_FEINT 0x3E
#define MOVE_EFFECT_SPECTRAL_THIEF 0x3F
#define MOVE_EFFECT_V_CREATE 0x40
#define MOVE_EFFECT_HAPPY_HOUR 0x41
#define MOVE_EFFECT_AFFECTS_USER 0x4000
#define MOVE_EFFECT_CERTAIN 0x8000

View File

@ -86,7 +86,7 @@
#define EFFECT_MIMIC 82
#define EFFECT_METRONOME 83
#define EFFECT_LEECH_SEED 84
#define EFFECT_SPLASH 85
#define EFFECT_DO_NOTHING 85
#define EFFECT_DISABLE 86
#define EFFECT_LEVEL_DAMAGE 87
#define EFFECT_PSYWAVE 88

View File

@ -527,6 +527,7 @@
#define STRINGID_FLOWERVEILPROTECTED 523
#define STRINGID_SWEETVEILPROTECTED 524
#define STRINGID_AROMAVEILPROTECTED 525
#define STRINGID_CELEBRATEMESSAGE 526
#define BATTLESTRINGS_COUNT 529

View File

@ -653,9 +653,11 @@ static const u8 sText_SafetyGooglesProtected[] = _("{B_DEF_NAME_WITH_PREFIX} is
static const u8 sText_FlowerVeilProtected[] = _("{B_DEF_NAME_WITH_PREFIX} surrounded itself\nwith a veil of petals!");
static const u8 sText_SweetVeilProtected[] = _("{B_DEF_NAME_WITH_PREFIX} surrounded itself\nwith a veil of sweetness!");
static const u8 sText_AromaVeilProtected[] = _("{B_DEF_NAME_WITH_PREFIX} is protected\nby an aromatic veil!");
static const u8 sText_CelebrateMessage[] = _("Congratulations, {B_PLAYER_NAME}!");
const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] =
{
[STRINGID_CELEBRATEMESSAGE - 12] = sText_CelebrateMessage,
[STRINGID_AROMAVEILPROTECTED - 12] = sText_AromaVeilProtected,
[STRINGID_SWEETVEILPROTECTED - 12] = sText_SweetVeilProtected,
[STRINGID_FLOWERVEILPROTECTED - 12] = sText_FlowerVeilProtected,

View File

@ -2006,6 +2006,11 @@ void SetMoveEffect(bool32 primary, u32 certain)
affectsUser = MOVE_EFFECT_AFFECTS_USER;
gBattleScripting.battler = gBattlerTarget; // theoretically the attacker
}
// Just in case this flag is still set
if (gBattleScripting.moveEffect & MOVE_EFFECT_CERTAIN)
gBattleScripting.moveEffect &= ~(MOVE_EFFECT_CERTAIN);
else
{
gEffectBattler = gBattlerTarget;
@ -2364,6 +2369,13 @@ void SetMoveEffect(bool32 primary, u32 certain)
BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleScripting.moveEffect];
break;
case MOVE_EFFECT_HAPPY_HOUR:
if (GET_BATTLER_SIDE(gBattlerAttacker) == B_SIDE_PLAYER)
{
gBattleStruct->moneyMultiplier *= 2;
}
gBattlescriptCurrInstr++;
break;
case MOVE_EFFECT_TRI_ATTACK:
if (gBattleMons[gEffectBattler].status1)
{

View File

@ -3700,7 +3700,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
{
case HOLD_EFFECT_DOUBLE_PRIZE:
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
gBattleStruct->moneyMultiplier = 2;
gBattleStruct->moneyMultiplier *= 2;
break;
case HOLD_EFFECT_RESTORE_STATS:
for (i = 0; i < NUM_BATTLE_STATS; i++)

View File

@ -2103,7 +2103,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_SPLASH] =
{
.effect = EFFECT_SPLASH,
.effect = EFFECT_DO_NOTHING,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
@ -8463,7 +8463,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_HAPPY_HOUR] =
{
.effect = EFFECT_PLACEHOLDER, // Needs a custom move effect
.effect = EFFECT_DO_NOTHING,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
@ -8505,7 +8505,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_CELEBRATE] =
{
.effect = EFFECT_PLACEHOLDER, // Needs a custom move effect
.effect = EFFECT_DO_NOTHING,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
@ -8519,13 +8519,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_HOLD_HANDS] =
{
.effect = EFFECT_PLACEHOLDER, // Needs a custom move effect
.effect = EFFECT_DO_NOTHING,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 40,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_USER,
.target = MOVE_TARGET_ALLY,
.priority = 0,
.flags = 0,
.split = SPLIT_STATUS,