From 263da90d9fc41d945c92312b181a15f18aba1950 Mon Sep 17 00:00:00 2001 From: Sha0den <119825539+Sha0den@users.noreply.github.com> Date: Sun, 7 Sep 2025 19:46:45 -0400 Subject: [PATCH] Better descriptions for attack effect parameters in card data --- src/constants/card_data_constants.asm | 13 +- src/data/cards.asm | 192 +++++++++++++------------- src/engine/duel/ai/attacks.asm | 11 +- src/engine/duel/ai/core.asm | 2 +- src/engine/duel/ai/energy.asm | 6 +- 5 files changed, 115 insertions(+), 109 deletions(-) diff --git a/src/constants/card_data_constants.asm b/src/constants/card_data_constants.asm index 7d94efd..9e10724 100644 --- a/src/constants/card_data_constants.asm +++ b/src/constants/card_data_constants.asm @@ -203,8 +203,8 @@ DEF HEAL_USER_F EQU %001 DEF NULLIFY_OR_WEAKEN_ATTACK_F EQU %010 DEF DISCARD_ENERGY_F EQU %011 DEF ATTACHED_ENERGY_BOOST_F EQU %100 -DEF FLAG_2_BIT_5_F EQU %101 -DEF FLAG_2_BIT_6_F EQU %110 +DEF IGNORE_THIS_ATTACK_F EQU %101 +DEF ENCOURAGE_THIS_ATTACK_F EQU %110 DEF FLAG_2_BIT_7_F EQU %111 ; CARD_DATA_ATTACK*_FLAG3 constants @@ -230,8 +230,8 @@ DEF HEAL_USER EQU $1 << HEAL_USER_F DEF NULLIFY_OR_WEAKEN_ATTACK EQU $1 << NULLIFY_OR_WEAKEN_ATTACK_F DEF DISCARD_ENERGY EQU $1 << DISCARD_ENERGY_F DEF ATTACHED_ENERGY_BOOST EQU $1 << ATTACHED_ENERGY_BOOST_F -DEF FLAG_2_BIT_5 EQU $1 << FLAG_2_BIT_5_F -DEF FLAG_2_BIT_6 EQU $1 << FLAG_2_BIT_6_F +DEF IGNORE_THIS_ATTACK EQU $1 << IGNORE_THIS_ATTACK_F +DEF ENCOURAGE_THIS_ATTACK EQU $1 << ENCOURAGE_THIS_ATTACK_F DEF FLAG_2_BIT_7 EQU $1 << FLAG_2_BIT_7_F ; CARD_DATA_ATTACK*_FLAG3_F constants @@ -247,6 +247,11 @@ DEF UNABLE_RETREAT EQU $64 DEF FIRST_ATTACK_OR_PKMN_POWER EQU $0 DEF SECOND_ATTACK EQU $1 +; special EFFECT_PARAM values to be used with the HEAL_USER flag +DEF HEALING_EQUALS_10_HP EQU $1 +DEF HEALING_EQUALS_HALF_DAMAGE_DEALT EQU $2 +DEF HEALING_EQUALS_DAMAGE_DEALT EQU $3 + ; whether attack with the ATTACHED_ENERGY_BOOST flag ; has limit on attached energy cards boost. DEF MAX_ENERGY_BOOST_IS_LIMITED EQU $2 diff --git a/src/data/cards.asm b/src/data/cards.asm index b9e65bb..f7c89e0 100644 --- a/src/data/cards.asm +++ b/src/data/cards.asm @@ -257,7 +257,7 @@ BulbasaurCard: db NONE ; flags 1 db HEAL_USER ; flags 2 db NONE ; flags 3 - db 1 + db HEALING_EQUALS_10_HP ; used to calculate the HEAL_USER attack score bonus db ATK_ANIM_DRAIN ; animation ; attack 2 @@ -373,7 +373,7 @@ VenusaurLv64Card: db NONE ; flags 1 db HEAL_USER ; flags 2 db NONE ; flags 3 - db 2 + db HEALING_EQUALS_HALF_DAMAGE_DEALT ; used to calculate the HEAL_USER attack score bonus db ATK_ANIM_DRAIN ; animation db 2 ; retreat cost @@ -577,7 +577,7 @@ ButterfreeCard: db NONE ; flags 1 db HEAL_USER ; flags 2 db NONE ; flags 3 - db 2 + db HEALING_EQUALS_HALF_DAMAGE_DEALT ; used to calculate the HEAL_USER attack score bonus db ATK_ANIM_DRAIN ; animation db 0 ; retreat cost @@ -1124,7 +1124,7 @@ NidokingCard: db LOW_RECOIL ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 0 + db 0 ; amount of recoil damage (used to determine the LOW_RECOIL attack score penalty) db ATK_ANIM_MULTIPLE_SLASH ; animation ; attack 2 @@ -1136,9 +1136,9 @@ NidokingCard: db DAMAGE_NORMAL ; category dw NidokingToxicEffectCommands ; effect commands db INFLICT_POISON ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 db NONE ; flags 3 - db 2 + db 2 ; attack score bonus for ENCOURAGE_THIS_ATTACK (negated if Defending Pokémon is already Double Poisoned) db ATK_ANIM_TOXIC ; animation db 3 ; retreat cost @@ -1189,7 +1189,7 @@ ZubatCard: db NONE ; flags 1 db HEAL_USER ; flags 2 db NONE ; flags 3 - db 3 + db HEALING_EQUALS_DAMAGE_DEALT ; used to calculate the HEAL_USER attack score bonus db ATK_ANIM_DRAIN ; animation db 0 ; retreat cost @@ -1240,7 +1240,7 @@ GolbatCard: db NONE ; flags 1 db HEAL_USER ; flags 2 db NONE ; flags 3 - db 3 + db HEALING_EQUALS_DAMAGE_DEALT ; used to calculate the HEAL_USER attack score bonus db ATK_ANIM_DRAIN ; animation db 0 ; retreat cost @@ -1326,9 +1326,9 @@ GloomCard: db DAMAGE_NORMAL ; category dw GloomPoisonPowderEffectCommands ; effect commands db INFLICT_POISON ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 db NONE ; flags 3 - db 3 + db 3 ; attack score bonus for ENCOURAGE_THIS_ATTACK (-2 if Defending Pokémon is already Double Poisoned) db ATK_ANIM_POISON_POWDER ; animation ; attack 2 @@ -1377,9 +1377,9 @@ VileplumeCard: db POKEMON_POWER ; category dw VileplumeHealEffectCommands ; effect commands db NONE ; flags 1 - db HEAL_USER ; flags 2 + db HEAL_USER ; flags 2 (not an attack, so this isn't used) db NONE ; flags 3 - db 1 + db HEALING_EQUALS_10_HP ; used to calculate the HEAL_USER attack score bonus (if this were an attack) db ATK_ANIM_PKMN_POWER_1 ; animation ; attack 2 @@ -1546,7 +1546,7 @@ VenonatCard: db NONE ; flags 1 db HEAL_USER ; flags 2 db NONE ; flags 3 - db 3 + db HEALING_EQUALS_DAMAGE_DEALT ; used to calculate the HEAL_USER attack score bonus db ATK_ANIM_DRAIN ; animation db 1 ; retreat cost @@ -1748,9 +1748,9 @@ VictreebelCard: db DAMAGE_NORMAL ; category dw VictreebelAcidEffectCommands ; effect commands db NONE ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 db NONE ; flags 3 - db 1 + db 1 ; attack score bonus for ENCOURAGE_THIS_ATTACK db ATK_ANIM_GOO ; animation db 2 ; retreat cost @@ -1903,7 +1903,7 @@ ExeggcuteCard: db NONE ; flags 1 db HEAL_USER ; flags 2 db NONE ; flags 3 - db 1 + db HEALING_EQUALS_10_HP ; used to calculate the HEAL_USER attack score bonus db ATK_ANIM_DRAIN ; animation db 1 ; retreat cost @@ -2056,7 +2056,7 @@ WeezingCard: db HIGH_RECOIL ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 60 + db 60 ; amount of recoil damage (used to determine the HIGH_RECOIL attack score penalty) db ATK_ANIM_SELFDESTRUCT ; animation db 1 ; retreat cost @@ -2311,7 +2311,7 @@ CharmanderCard: db NONE ; flags 1 db DISCARD_ENERGY ; flags 2 db NONE ; flags 3 - db 3 + db 3 ; attack score penalty for DISCARD_ENERGY db ATK_ANIM_SMALL_FLAME ; animation db 1 ; retreat cost @@ -2362,7 +2362,7 @@ CharmeleonCard: db NONE ; flags 1 db DISCARD_ENERGY ; flags 2 db NONE ; flags 3 - db 3 + db 3 ; attack score penalty for DISCARD_ENERGY db ATK_ANIM_BIG_FLAME ; animation db 1 ; retreat cost @@ -2413,7 +2413,7 @@ CharizardCard: db NONE ; flags 1 db DISCARD_ENERGY ; flags 2 db NONE ; flags 3 - db 6 + db 6 ; attack score penalty for DISCARD_ENERGY db ATK_ANIM_FIRE_SPIN ; animation db 3 ; retreat cost @@ -2515,7 +2515,7 @@ NinetalesLv32Card: db NONE ; flags 1 db DISCARD_ENERGY ; flags 2 db NONE ; flags 3 - db 3 + db 3 ; attack score penalty for DISCARD_ENERGY db ATK_ANIM_FIRE_SPIN ; animation db 1 ; retreat cost @@ -2668,7 +2668,7 @@ ArcanineLv34Card: db NONE ; flags 1 db DISCARD_ENERGY ; flags 2 db BOOST_IF_TAKEN_DAMAGE ; flags 3 - db 6 + db 6 ; attack score penalty for DISCARD_ENERGY db ATK_ANIM_FIRE_SPIN ; animation db 1 ; retreat cost @@ -2705,7 +2705,7 @@ ArcanineLv45Card: db NONE ; flags 1 db DISCARD_ENERGY ; flags 2 db NONE ; flags 3 - db 3 + db 3 ; attack score penalty for DISCARD_ENERGY db ATK_ANIM_BIG_FLAME ; animation ; attack 2 @@ -2719,7 +2719,7 @@ ArcanineLv45Card: db LOW_RECOIL ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 30 + db 30 ; amount of recoil damage (used to determine the LOW_RECOIL attack score penalty) db ATK_ANIM_HIT_RECOIL ; animation db 3 ; retreat cost @@ -2819,7 +2819,7 @@ RapidashCard: db DAMAGE_NORMAL ; category dw RapidashAgilityEffectCommands ; effect commands db NONE ; flags 1 - db NULLIFY_OR_WEAKEN_ATTACK | FLAG_2_BIT_6 ; flags 2 + db NULLIFY_OR_WEAKEN_ATTACK | ENCOURAGE_THIS_ATTACK ; flags 2 (this shouldn't have ENCOURAGE_THIS_ATTACK) db NONE ; flags 3 db 0 db ATK_ANIM_QUICK_ATTACK ; animation @@ -2872,7 +2872,7 @@ MagmarLv24Card: db NONE ; flags 1 db DISCARD_ENERGY ; flags 2 db NONE ; flags 3 - db 3 + db 3 ; attack score penalty for DISCARD_ENERGY db ATK_ANIM_BIG_FLAME ; animation db 2 ; retreat cost @@ -3025,7 +3025,7 @@ FlareonLv28Card: db NONE ; flags 1 db DISCARD_ENERGY ; flags 2 db NONE ; flags 3 - db 3 + db 3 ; attack score penalty for DISCARD_ENERGY db ATK_ANIM_BIG_FLAME ; animation db 1 ; retreat cost @@ -3060,7 +3060,7 @@ MoltresLv35Card: db RESIDUAL ; category dw MoltresWildfireEffectCommands ; effect commands db NONE ; flags 1 - db FLAG_2_BIT_5 ; flags 2 + db IGNORE_THIS_ATTACK ; flags 2 db NONE ; flags 3 db 0 db ATK_ANIM_GLOW_EFFECT ; animation @@ -3315,9 +3315,9 @@ PsyduckCard: db RESIDUAL ; category dw PsyduckHeadacheEffectCommands ; effect commands db NONE ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 db NONE ; flags 3 - db 2 + db 2 ; attack score bonus for ENCOURAGE_THIS_ATTACK db ATK_ANIM_GLOW_EFFECT ; animation ; attack 2 @@ -3533,9 +3533,9 @@ PoliwrathCard: db DAMAGE_NORMAL ; category dw PoliwrathWhirlpoolEffectCommands ; effect commands db NONE ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 db NONE ; flags 3 - db 3 + db 3 ; attack score bonus for ENCOURAGE_THIS_ATTACK db ATK_ANIM_WHIRLPOOL ; animation db 3 ; retreat cost @@ -3570,7 +3570,7 @@ TentacoolCard: db POKEMON_POWER ; category dw TentacoolCowardiceEffectCommands ; effect commands db NONE ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 (not an attack, so this isn't used) db NONE ; flags 3 db 0 db ATK_ANIM_PKMN_POWER_1 ; animation @@ -4235,7 +4235,7 @@ StarmieCard: db NONE ; flags 1 db DISCARD_ENERGY ; flags 2 db NONE ; flags 3 - db 3 + db 3 ; attack score penalty for DISCARD_ENERGY db ATK_ANIM_RECOVER ; animation ; attack 2 @@ -4657,7 +4657,7 @@ ArticunoLv35Card: db DAMAGE_TO_OPPONENT_BENCH ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 10 + db 10 ; damage done to opponent's Bench (not used for anything) db ATK_ANIM_BLIZZARD ; animation db 2 ; retreat cost @@ -4706,9 +4706,9 @@ ArticunoLv37Card: db RESIDUAL ; category dw ArticunoIceBreathEffectCommands ; effect commands db DAMAGE_TO_OPPONENT_BENCH ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 db NONE ; flags 3 - db 3 + db 3 ; attack score bonus for ENCOURAGE_THIS_ATTACK db ATK_ANIM_WHIRLWIND_ZIGZAG ; animation db 2 ; retreat cost @@ -4759,7 +4759,7 @@ PikachuLv12Card: db LOW_RECOIL ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 0 + db 0 ; amount of recoil damage (used to determine the LOW_RECOIL attack score penalty) db ATK_ANIM_THUNDERSHOCK ; animation db 1 ; retreat cost @@ -4796,7 +4796,7 @@ PikachuLv14Card: db DAMAGE_TO_OPPONENT_BENCH ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 10 + db 10 ; damage done to opponent's Bench (not used for anything) db ATK_ANIM_THUNDER_WHOLE_SCREEN ; animation ; attack 2 @@ -4847,7 +4847,7 @@ PikachuLv16Card: db NONE ; flags 1 db NULLIFY_OR_WEAKEN_ATTACK ; flags 2 db NONE ; flags 3 - db 10 + db 10 ; not used for anything db ATK_ANIM_SUPERSONIC ; animation ; attack 2 @@ -4898,7 +4898,7 @@ PikachuAltLv16Card: db NONE ; flags 1 db NULLIFY_OR_WEAKEN_ATTACK ; flags 2 db NONE ; flags 3 - db 10 + db 10 ; not used for anything db ATK_ANIM_SUPERSONIC ; animation ; attack 2 @@ -5113,7 +5113,7 @@ RaichuLv40Card: db 60 ; damage db DAMAGE_NORMAL ; category dw RaichuThunderEffectCommands ; effect commands - db NONE ; flags 1 + db NONE ; flags 1 (this should probably have LOW_RECOIL) db NONE ; flags 2 db NONE ; flags 3 db 0 @@ -5153,7 +5153,7 @@ RaichuLv45Card: db DAMAGE_TO_OPPONENT_BENCH ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 10 + db 10 ; damage done to opponent's Bench (not used for anything) db ATK_ANIM_THUNDER_WHOLE_SCREEN ; animation ; attack 2 @@ -5218,7 +5218,7 @@ MagnemiteLv13Card: db HIGH_RECOIL ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 40 + db 40 ; amount of recoil damage (used to determine the HIGH_RECOIL attack score penalty) db ATK_ANIM_SELFDESTRUCT ; animation db 1 ; retreat cost @@ -5267,7 +5267,7 @@ MagnemiteLv15Card: db RESIDUAL ; category dw MagnemiteMagneticStormEffectCommands ; effect commands db NONE ; flags 1 - db FLAG_2_BIT_5 ; flags 2 + db IGNORE_THIS_ATTACK ; flags 2 db NONE ; flags 3 db 0 db ATK_ANIM_MAGNETIC_STORM ; animation @@ -5320,7 +5320,7 @@ MagnetonLv28Card: db HIGH_RECOIL ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 80 + db 80 ; amount of recoil damage (used to determine the HIGH_RECOIL attack score penalty) db ATK_ANIM_BIG_SELFDESTRUCTION ; animation db 1 ; retreat cost @@ -5371,7 +5371,7 @@ MagnetonLv35Card: db HIGH_RECOIL ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 100 + db 100 ; amount of recoil damage (used to determine the HIGH_RECOIL attack score penalty) db ATK_ANIM_BIG_SELFDESTRUCTION ; animation db 2 ; retreat cost @@ -5626,7 +5626,7 @@ ElectabuzzLv35Card: db LOW_RECOIL ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 0 + db 0 ; amount of recoil damage (used to determine the LOW_RECOIL attack score penalty) db ATK_ANIM_THUNDERPUNCH ; animation db 2 ; retreat cost @@ -5765,7 +5765,7 @@ ZapdosLv40Card: db LOW_RECOIL | DAMAGE_TO_OPPONENT_BENCH ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 0 + db 0 ; amount of recoil damage (used to determine the LOW_RECOIL attack score penalty) db ATK_ANIM_THUNDERSTORM ; animation ; attack 2 @@ -5816,7 +5816,7 @@ ZapdosLv64Card: db LOW_RECOIL ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 0 + db 0 ; amount of recoil damage (used to determine the LOW_RECOIL attack score penalty) db ATK_ANIM_THUNDER ; animation ; attack 2 @@ -5830,7 +5830,7 @@ ZapdosLv64Card: db NONE ; flags 1 db DISCARD_ENERGY ; flags 2 db NONE ; flags 3 - db 9 + db 9 ; attack score penalty for DISCARD_ENERGY db ATK_ANIM_THUNDERBOLT ; animation db 3 ; retreat cost @@ -5864,7 +5864,7 @@ ZapdosLv68Card: db 0 ; damage db POKEMON_POWER ; category dw ZapdosPealOfThunderEffectCommands ; effect commands - db DAMAGE_TO_OPPONENT_BENCH ; flags 1 + db DAMAGE_TO_OPPONENT_BENCH ; flags 1 (not an attack, so this isn't used) db NONE ; flags 2 db NONE ; flags 3 db 0 @@ -6120,7 +6120,7 @@ MankeyCard: db POKEMON_POWER ; category dw MankeyPeekEffectCommands ; effect commands db NONE ; flags 1 - db FLAG_2_BIT_5 ; flags 2 + db IGNORE_THIS_ATTACK ; flags 2 (not an attack, so this isn't used) db NONE ; flags 3 db 0 db ATK_ANIM_PKMN_POWER_1 ; animation @@ -6289,7 +6289,7 @@ MachokeCard: db LOW_RECOIL ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 20 + db 20 ; amount of recoil damage (used to determine the LOW_RECOIL attack score penalty) db ATK_ANIM_HIT_RECOIL ; animation db 3 ; retreat cost @@ -6493,7 +6493,7 @@ GolemCard: db HIGH_RECOIL ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 100 + db 100 ; amount of recoil damage (used to determine the HIGH_RECOIL attack score penalty) db ATK_ANIM_BIG_SELFDESTRUCTION ; animation db 4 ; retreat cost @@ -6581,7 +6581,7 @@ CuboneCard: db NONE ; flags 1 db NULLIFY_OR_WEAKEN_ATTACK ; flags 2 db NONE ; flags 3 - db 10 + db 10 ; not used for anything db ATK_ANIM_CRY ; animation ; attack 2 @@ -6732,9 +6732,9 @@ HitmonleeCard: db RESIDUAL ; category dw HitmonleeStretchKickEffectCommands ; effect commands db DAMAGE_TO_OPPONENT_BENCH ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 db NONE ; flags 3 - db 3 + db 3 ; attack score bonus for ENCOURAGE_THIS_ATTACK db ATK_ANIM_STRETCH_KICK ; animation ; attack 2 @@ -6901,7 +6901,7 @@ RhydonCard: db LOW_RECOIL ; flags 1 db SWITCH_OPPONENT_POKEMON ; flags 2 db NONE ; flags 3 - db 20 + db 20 ; amount of recoil damage (used to determine the LOW_RECOIL attack score penalty) db ATK_ANIM_HIT_RECOIL ; animation db 3 ; retreat cost @@ -7003,7 +7003,7 @@ KabutopsCard: db NONE ; flags 1 db HEAL_USER ; flags 2 db NONE ; flags 3 - db 2 + db HEALING_EQUALS_HALF_DAMAGE_DEALT ; used to calculate the HEAL_USER attack score bonus db ATK_ANIM_DRAIN ; animation db 1 ; retreat cost @@ -7142,7 +7142,7 @@ KadabraCard: db NONE ; flags 1 db DISCARD_ENERGY ; flags 2 db NONE ; flags 3 - db 3 + db 3 ; attack score penalty for DISCARD_ENERGY db ATK_ANIM_RECOVER ; animation ; attack 2 @@ -7256,9 +7256,9 @@ SlowpokeLv9Card: db DAMAGE_NORMAL ; category dw SlowpokeAmnesiaEffectCommands ; effect commands db NONE ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 db NONE ; flags 3 - db 2 + db 2 ; attack score bonus for ENCOURAGE_THIS_ATTACK db ATK_ANIM_AMNESIA ; animation db 1 ; retreat cost @@ -7295,7 +7295,7 @@ SlowpokeLv18Card: db NONE ; flags 1 db HEAL_USER ; flags 2 db NONE ; flags 3 - db 1 + db HEALING_EQUALS_10_HP ; used to calculate the HEAL_USER attack score bonus db ATK_ANIM_NONE ; animation ; attack 2 @@ -7309,7 +7309,7 @@ SlowpokeLv18Card: db NONE ; flags 1 db DISCARD_ENERGY ; flags 2 db NONE ; flags 3 - db 2 + db 2 ; attack score penalty for DISCARD_ENERGY db ATK_ANIM_GLOW_EFFECT ; animation db 1 ; retreat cost @@ -7344,7 +7344,7 @@ SlowbroCard: db POKEMON_POWER ; category dw SlowbroStrangeBehaviorEffectCommands ; effect commands db NONE ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 (not an attack, so this isn't used) db NONE ; flags 3 db 0 db ATK_ANIM_PKMN_POWER_1 ; animation @@ -7409,9 +7409,9 @@ GastlyLv8Card: db RESIDUAL ; category dw GastlyDestinyBondEffectCommands ; effect commands db NONE ; flags 1 - db NONE ; flags 2 + db NONE ; flags 2 (this should probably have ENCOURAGE_THIS_ATTACK) db SPECIAL_AI_HANDLING ; flags 3 - db 3 + db 3 ; not used for anything db ATK_ANIM_GLOW_EFFECT ; animation db 0 ; retreat cost @@ -7459,10 +7459,10 @@ GastlyLv17Card: db 0 ; damage db RESIDUAL ; category dw GastlyEnergyConversionEffectCommands ; effect commands - db NONE ; flags 1 + db NONE ; flags 1 (this should probably have LOW_RECOIL) db NONE ; flags 2 db SPECIAL_AI_HANDLING ; flags 3 - db 10 + db 10 ; amount of recoil damage db ATK_ANIM_ENERGY_CONVERSION ; animation db 0 ; retreat cost @@ -7615,7 +7615,7 @@ GengarCard: db DAMAGE_TO_OPPONENT_BENCH ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 10 + db 10 ; damage done to opponent's Bench (not used for anything) db ATK_ANIM_DARK_MIND ; animation db 1 ; retreat cost @@ -7701,7 +7701,7 @@ HypnoCard: db RESIDUAL ; category dw HypnoProphecyEffectCommands ; effect commands db NONE ; flags 1 - db FLAG_2_BIT_5 ; flags 2 + db IGNORE_THIS_ATTACK ; flags 2 db NONE ; flags 3 db 0 db ATK_ANIM_GLOW_EFFECT ; animation @@ -7717,7 +7717,7 @@ HypnoCard: db DAMAGE_TO_OPPONENT_BENCH ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 10 + db 10 ; damage done to opponent's Bench (not used for anything) db ATK_ANIM_DARK_MIND ; animation db 2 ; retreat cost @@ -7870,7 +7870,7 @@ MewtwoLv53Card: db NONE ; flags 1 db NULLIFY_OR_WEAKEN_ATTACK | DISCARD_ENERGY ; flags 2 db NONE ; flags 3 - db 2 + db 2 ; attack score penalty for DISCARD_ENERGY db ATK_ANIM_BARRIER ; animation db 3 ; retreat cost @@ -8225,9 +8225,9 @@ PidgeottoCard: db DAMAGE_NORMAL ; category dw PidgeottoMirrorMoveEffectCommands ; effect commands db NONE ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 db NONE ; flags 3 - db 0 + db 0 ; attack score bonus for ENCOURAGE_THIS_ATTACK db ATK_ANIM_MIRROR_MOVE ; animation db 1 ; retreat cost @@ -8262,9 +8262,9 @@ PidgeotLv38Card: db RESIDUAL ; category dw PidgeotSlicingWindEffectCommands ; effect commands db DAMAGE_TO_OPPONENT_BENCH ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 db NONE ; flags 3 - db 2 + db 2 ; attack score bonus for ENCOURAGE_THIS_ATTACK db ATK_ANIM_WHIRLWIND_ZIGZAG ; animation ; attack 2 @@ -8480,9 +8480,9 @@ SpearowCard: db DAMAGE_NORMAL ; category dw SpearowMirrorMoveEffectCommands ; effect commands db NONE ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 db NONE ; flags 3 - db 0 + db 0 ; attack score bonus for ENCOURAGE_THIS_ATTACK db ATK_ANIM_MIRROR_MOVE ; animation db 0 ; retreat cost @@ -8582,9 +8582,9 @@ ClefairyCard: db RESIDUAL ; category dw ClefairyMetronomeEffectCommands ; effect commands db NONE ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 db NONE ; flags 3 - db 0 + db 0 ; attack score bonus for ENCOURAGE_THIS_ATTACK db ATK_ANIM_NONE ; animation db 1 ; retreat cost @@ -8619,9 +8619,9 @@ ClefableCard: db RESIDUAL ; category dw ClefableMetronomeEffectCommands ; effect commands db NONE ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 db NONE ; flags 3 - db 0 + db 0 ; attack score bonus for ENCOURAGE_THIS_ATTACK db ATK_ANIM_NONE ; animation ; attack 2 @@ -8635,7 +8635,7 @@ ClefableCard: db NONE ; flags 1 db NULLIFY_OR_WEAKEN_ATTACK ; flags 2 db NONE ; flags 3 - db 20 + db 20 ; not used for anything db ATK_ANIM_PROTECT ; animation db 2 ; retreat cost @@ -8672,7 +8672,7 @@ JigglypuffLv12Card: db NONE ; flags 1 db HEAL_USER ; flags 2 db NONE ; flags 3 - db 1 + db HEALING_EQUALS_10_HP ; used to calculate the HEAL_USER attack score bonus db ATK_ANIM_RECOVER ; animation ; attack 2 @@ -8686,7 +8686,7 @@ JigglypuffLv12Card: db LOW_RECOIL ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 20 + db 20 ; amount of recoil damage (used to determine the LOW_RECOIL attack score penalty) db ATK_ANIM_HIT_RECOIL ; animation db 1 ; retreat cost @@ -8737,7 +8737,7 @@ JigglypuffLv13Card: db NONE ; flags 1 db NULLIFY_OR_WEAKEN_ATTACK ; flags 2 db NONE ; flags 3 - db 10 + db 10 ; not used for anything db ATK_ANIM_EXPAND ; animation db 1 ; retreat cost @@ -8874,9 +8874,9 @@ MeowthLv14Card: db RESIDUAL ; category dw MeowthCatPunchEffectCommands ; effect commands db DAMAGE_TO_OPPONENT_BENCH ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 db NONE ; flags 3 - db 2 + db 2 ; attack score bonus for ENCOURAGE_THIS_ATTACK db ATK_ANIM_CAT_PUNCH ; animation ; attack 2 @@ -8992,7 +8992,7 @@ PersianCard: db NONE ; flags 1 db NULLIFY_OR_WEAKEN_ATTACK ; flags 2 db NONE ; flags 3 - db 10 + db 10 ; not used for anything db ATK_ANIM_HIT ; animation db 0 ; retreat cost @@ -9247,7 +9247,7 @@ ChanseyCard: db HIGH_RECOIL ; flags 1 db NONE ; flags 2 db NONE ; flags 3 - db 80 + db 80 ; amount of recoil damage (used to determine the HIGH_RECOIL attack score penalty) db ATK_ANIM_HIT_RECOIL ; animation db 1 ; retreat cost @@ -9333,9 +9333,9 @@ TaurosCard: db DAMAGE_PLUS ; category dw TaurosStompEffectCommands ; effect commands db NONE ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 db NONE ; flags 3 - db 1 + db 1 ; attack score bonus for ENCOURAGE_THIS_ATTACK (maybe to discourage Rampage?) db ATK_ANIM_HIT ; animation ; attack 2 @@ -9398,9 +9398,9 @@ DittoCard: db RESIDUAL ; category dw DittoMorphEffectCommands ; effect commands db NONE ; flags 1 - db FLAG_2_BIT_6 ; flags 2 + db ENCOURAGE_THIS_ATTACK ; flags 2 db NONE ; flags 3 - db 3 + db 3 ; attack score bonus for ENCOURAGE_THIS_ATTACK db ATK_ANIM_GLOW_EFFECT ; animation db 1 ; retreat cost diff --git a/src/engine/duel/ai/attacks.asm b/src/engine/duel/ai/attacks.asm index 94d75b0..39a96f5 100644 --- a/src/engine/duel/ai/attacks.asm +++ b/src/engine/duel/ai/attacks.asm @@ -540,7 +540,7 @@ GetAIScoreOfAttack: call AIDiscourage .asm_16ca6 - ld a, ATTACK_FLAG2_ADDRESS | FLAG_2_BIT_6_F + ld a, ATTACK_FLAG2_ADDRESS | ENCOURAGE_THIS_ATTACK_F call CheckLoadedAttackFlag jr nc, .check_nullify_flag ld a, [wLoadedAttackEffectParam] @@ -567,14 +567,15 @@ GetAIScoreOfAttack: call CheckLoadedAttackFlag jr nc, .check_status_effect ld a, [wLoadedAttackEffectParam] - cp 1 + cp HEALING_EQUALS_10_HP jr z, .tally_heal_score ld a, [wTempAI] call ConvertHPToDamageCounters_Bank5 ld b, a ld a, [wLoadedAttackEffectParam] - cp 3 + cp HEALING_EQUALS_DAMAGE_DEALT jr z, .asm_16cec + ; must be HEALING_EQUALS_HALF_DAMAGE_DEALT srl b jr nc, .asm_16cec inc b @@ -615,7 +616,7 @@ GetAIScoreOfAttack: ; encourage a poison inflicting attack if opposing Pokémon ; isn't (doubly) poisoned already. ; if opposing Pokémon is only poisoned and not double poisoned, -; and this attack has FLAG_2_BIT_6 set, discourage it +; and this attack has ENCOURAGE_THIS_ATTACK set, discourage it ; (possibly to make Nidoking's Toxic attack less likely to be chosen ; if the other Pokémon is poisoned.) ld a, ATTACK_FLAG1_ADDRESS | INFLICT_POISON_F @@ -626,7 +627,7 @@ GetAIScoreOfAttack: jr z, .add_poison_score and $40 ; only double poisoned? jr z, .check_sleep - ld a, ATTACK_FLAG2_ADDRESS | FLAG_2_BIT_6_F + ld a, ATTACK_FLAG2_ADDRESS | ENCOURAGE_THIS_ATTACK_F call CheckLoadedAttackFlag jr nc, .check_sleep ld a, 2 diff --git a/src/engine/duel/ai/core.asm b/src/engine/duel/ai/core.asm index bdbe92e..4ad9c59 100644 --- a/src/engine/duel/ai/core.asm +++ b/src/engine/duel/ai/core.asm @@ -364,7 +364,7 @@ CheckIfSelectedAttackIsUnusable: .bench call CheckEnergyNeededForAttack ret c ; can't be used - ld a, ATTACK_FLAG2_ADDRESS | FLAG_2_BIT_5_F + ld a, ATTACK_FLAG2_ADDRESS | IGNORE_THIS_ATTACK_F call CheckLoadedAttackFlag ret diff --git a/src/engine/duel/ai/energy.asm b/src/engine/duel/ai/energy.asm index 27ec040..54a0970 100644 --- a/src/engine/duel/ai/energy.asm +++ b/src/engine/duel/ai/energy.asm @@ -480,7 +480,7 @@ DetermineAIScoreOfAttackEnergyRequirement: jr .asm_166c5 .not_enough_energy - ld a, ATTACK_FLAG2_ADDRESS | FLAG_2_BIT_5_F + ld a, ATTACK_FLAG2_ADDRESS | IGNORE_THIS_ATTACK_F call CheckLoadedAttackFlag jr nc, .check_color_needed ld a, 5 @@ -554,12 +554,12 @@ DetermineAIScoreOfAttackEnergyRequirement: ld [hl], b ; check for energy still needed for evolution to attack. -; if FLAG_2_BIT_5 is not set, check what color is needed. +; if IGNORE_THIS_ATTACK is not set, check what color is needed. ; if the energy card color needed is in hand, increase AI score. ; if a colorless card is needed, increase AI score. call CheckEnergyNeededForAttack jr nc, .done - ld a, ATTACK_FLAG2_ADDRESS | FLAG_2_BIT_5_F + ld a, ATTACK_FLAG2_ADDRESS | IGNORE_THIS_ATTACK_F call CheckLoadedAttackFlag jr c, .done ld a, b