Commit graph

80 commits

Author SHA1 Message Date
Nephrite
9dfa0d264f Merge branch 'upcoming' into secondary_effects_overhaul 2023-12-30 23:54:01 +09:00
Nephrite
b6da1a1e1d Tweaked helper functions 2023-12-30 17:42:53 +09:00
Martin Griffin
ab900e38df Merge remote-tracking branch 'rhh/master' into upcoming 2023-12-29 19:48:21 +00:00
Nephrite
7c38056da7 Review fixes
Added more move effect considerations to AI; redid way it calculates secondaryEffectChance; misc fixes
2023-12-29 12:04:42 +09:00
Nephrite
77c722ea09 Obsoleted 22 more effects
Also added a better way of calculating battle_tv score properly; to do: Make it Rain
2023-12-27 17:43:20 +09:00
Nephrite
cda445c2f5 Merge remote-tracking branch 'rhh/upcoming' into secondary_effects_overhaul_rebase 2023-12-25 12:19:38 +09:00
DizzyEggg
cd0b4db09b
same lists for healing moves (#3787)
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2023-12-21 14:07:54 +01:00
DizzyEggg
8d238c88b9
Follow -1, 1, 0 convention for comparision functions (#3777)
* change comparision functions to use -1, 1, 0

* m
2023-12-20 14:47:14 +01:00
Eduardo Quezada D'Ottone
442620cf6b
Renamed Battle Move "Split" to the proper "Category" (#3774) 2023-12-20 10:08:26 +01:00
Nephrite
bec0fea7f6 Flinching moves
All work fine - all tests pass
2023-11-23 17:14:50 +09:00
Alex
be42d4eafb
Increase score of secondary effects only at 100% chance (#3583)
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
2023-11-21 11:30:20 +01:00
Pawkkie
b93dfb9d59
Smarter SwitchAI Mon Choices | HasBadOdds Switch Check (#3253)
* SwitchAI makes much smarter mon choices

* Add HasHadOdds check to ShouldSwitch decision

* Remove early return

* Rework Baton Pass check as per discussion with Alex

* Forgot to adjust a comment

* Don't program before breakfast lol (if / else if fix)

* Switch AI_CalcDamage for AI_DATA->simulatedDmg in HasBadOdds

Thanks Alex! :D

* Typo in a hitToKO comparison

* Remove and replace AI_CalcPartyMonBestMoveDamage and IsAiPartyMonOHKOBy from https://github.com/rh-hideout/pokeemerald-expansion/pull/3146

See https://discord.com/channels/419213663107416084/1144447521960251472 for details

* Major refactor, new struct, switchin considers damage / healing from hazards / status / held item / weather

* Forgot Snow exists and heals Ice Body, haven't played Switch games lol

* (766a1a27a7) Compatibility, use new struct field instead of function call

* Fixing oversight from previous upstream merge

* Improve TSpikes handling to make GetSwitchinHazardDamage more applicable

Small fixes:
- EFFECT_EXPLOSION typo (!= to ==)
- Order of if statements near bestResistEffective
- Spacing of terms in big HasBadOdds if statements

* Forgot to uncomment blocks disabled for debugging what turned out to be vanilla behaviour lol

* Remove another holdover from debugging, sorry :/

* Lastly, undoing my debug trainer

* Type matchup based on species type rather than current type

Suggested by BLourenco on Discord, the idea is that a mon that's had its type affected by a move like Soak will still have moves as though it was its regular typing, and so prioritizing the temporary typing wouldn't be ideal.
https://discord.com/channels/419213663107416084/1144447521960251472/1146644578141736970

* gActiveBattler upcoming merge fixes

* Egg changes part 1

* Egg changes part 2, just need to address EWRAM still

* Move SwitchinCandidate struct to AiLogicData

* Consider Steel type when checking TSpikes

* Comment about CanBePoisoned compatibility

* Changes for Egg's 2nd review

* Put period back in comment, whoops lol

* Latest upcoming merge fixes

* Missed a few u32 updates

* Combine GetBestMonIntegrate functions / flags, some modularization

* Fix merge error

* Make modern fixes

* Two tests done, two to go

* Accidentally pushed reference test, removing it

* Type matchup switching tests

* Tests for defensive vs offense switches

---------

Co-authored-by: DizzyEggg <jajkodizzy@wp.pl>
2023-11-11 14:37:35 +01:00
Alex
e79583be63
Remove function GetMoveDamageResult (#3536)
* Remove function GetMoveDamageResult

* fix test

* test clean up

---------

Co-authored-by: DizzyEggg <jajkodizzy@wp.pl>
2023-11-09 20:53:14 +01:00
Alex
53b7e4bf66
Remove powerfulMoveEffects array (#3515)
* Remove powerfulMoveEffects array

* Solar Beam test
2023-11-02 08:44:23 +01:00
Alex
64ba52d214
Remove redundant AI score increases (#3504)
* Remove redundant AI score increases

* review applied

* fix score
2023-10-31 13:41:22 +01:00
kittenchilly
33a0fdbbc6
Add new move flags and update all flags for every move (#3425)
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
2023-10-19 20:16:37 -03:00
Alex
28506b4cf8
Use move flags instead of lists for AI calcs (#3389) 2023-10-07 18:31:25 +01:00
DizzyEggg
be5683e899
AI battle tests + AI logic fixes (#3361) 2023-10-04 18:53:29 +01:00
DizzyEggg
c69d8e0960
Improve how AI chooses damaging moves (#3199)
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
2023-10-01 20:36:57 -03:00
DizzyEggg
7d9555dadb change some more variables to u32 2023-09-24 11:06:45 +02:00
DizzyEggg
5d77123c50 merge with master 2023-09-24 10:52:41 +02:00
ghoulslash
b77dec1234
Transform updates AI_PARTY data (#3295)
* Cmd_transformdataexecution overwrite AI_PARTY data

* remove whitespace

* add RecordAllMoves

---------

Co-authored-by: ghoulslash <pokevoyager0@gmail.com>
2023-09-23 10:44:30 +02:00
DizzyEggg
bb9501449c final ai optimizations 2023-09-14 11:05:00 +02:00
DizzyEggg
38dcb3c66c ai weather optimization 2023-09-13 17:28:26 +02:00
DizzyEggg
9031f5a063 get battlers' speed only once 2023-09-13 14:04:25 +02:00
DizzyEggg
1a64938c9b optimize dmg move result and ai who is faster 2023-09-13 13:23:19 +02:00
DizzyEggg
406209f738 score to s32 2023-09-13 09:27:49 +02:00
DizzyEggg
44bd830d2a optimize dmg calc and ai dmg calc to reduce lag 2023-09-12 23:20:09 +02:00
DizzyEggg
fec8f14fff IsAiAiBattle function 2023-08-09 15:57:22 +02:00
DizzyEggg
f4dc5e931f some more stuff 2023-07-18 12:01:25 +02:00
DizzyEggg
1bd4f9c7a8 rework incoming surviability 2023-07-18 11:36:09 +02:00
Martin Griffin
17f8f50a59 Merge remote-tracking branch 'rhh/master' into upcoming 2023-07-16 07:46:34 +01:00
DizzyEggg
3c5c68ac58
Fix how AI categorizes Weak moves and give priority to always hits moves when needed (#3109)
* ai weak move fix and always hits move prioritarizing
2023-07-16 07:24:59 +01:00
sbird
6482279fa3 [battle, math] refactor damage calculation to use proper fp type and inlined multiplication 2023-07-07 18:51:23 +02:00
Eduardo Quezada D'Ottone
1fa9a05470
Convert move flags and bans into GCC bitfields (#2952)
* Slicing moves to new bitfield

* Wind moves to new bitfield

* Two-strike moves to new bitfield

* Forgot to add flagTwoStrikes to battle_moves.h

* Removed "flag" from field names

* FLAG_HIT_IN_SUBSTITUTE and FLAG_THAW_USER

* Airborne moves

* FLAG_POWDER, FLAG_TARGET_ABILITY_IGNORED and FLAG_DANCE

* FLAG_BALLISTIC and FLAG_PROTECTION_MOVE

* Fixed missing uses of MOVE_UNAVAILABLE in battle_ai_util.c

* FLAG_SOUND

* FLAG_DMG_UNDERGROUND and FLAG_DMG_UNDERWATER

* FLAG_DMG_MINIMIZE

* Cleanup

* FLAG_STAT_STAGES_IGNORED

* Updated Pollen Puff's ballistic flag

* FLAG_STRONG_JAW_BOOST and FLAG_MEGA_LAUNCHER_BOOST

* thaw

* FLAG_THREE_STRIKES

* FLAG_IRON_FIST_BOOST

* FLAG_RECKLESS_BOOST

* FLAG_HIGH_CRIT

* Removed empty flags

* Moves that fail when called by Me First + added missing Shell Trap

* Moves that fail when Gravity is active

* Better names for banned fields

* Moves that fail when called by Instruct

* Cleanup

* Contact Moves + Fixed Wandering Spirit skipping contact checks

* Inverted FLAG_PROTECT_AFFECTED so that there's a flag for moves that SKIP protect.

* Simplified B_MOVE_FLAGS configs

* FORBIDDEN_METRONOME

* Renamed hitsPastSubstitute to ignoresSubstitute

* FORBIDDEN_PARENTAL_BOND

* Struggle uncallable by Metronome

* FORBIDDEN_MIMIC

* FLAG_KINGS_ROCK_AFFECTED

* Made a single config for move flags

* Macro for checking move flags

* FLAG_MAGIC_COAT_AFFECTED

* Fixed HasMagicCoatAffectedMove

* FLAG_SNATCH_AFFECTED

* Removed unused EFFECT_FLINCH_MINIMIZE_HIT

* Fixed Stench/King's Rock interaction

* Removed sMovesNotAffectedByStench in favor of checking move effects

* Removed EFFECT_TWISTER, which was a repeat of EFFECT_FLINCH_HIT

* Changed Gen2 configs to less than Gen 3

* FORBIDDEN_SLEEP_TALK

* Cleanup

* Inverted FLAG_MIRROR_MOVE_AFFECTED

* FLAG_SHEER_FORCE_BOOST

* Ordered

* FORBIDDEN_ASSIST and FORBIDDEN_COPYCAT

* Removed TestMoveFlags and TestMoveFlagsInMoveset + flags field

* Fixed Triple Arrows test
2023-07-03 10:01:59 +02:00
Eduardo Quezada D'Ottone
d0e6ea7612
Optimized battle gender checks (#3020)
* Optimized battle gender checks

* Apply suggestions from code review

Co-authored-by: AgustinGDLV <103095241+AgustinGDLV@users.noreply.github.com>

---------

Co-authored-by: AgustinGDLV <103095241+AgustinGDLV@users.noreply.github.com>
2023-05-27 17:23:02 -04:00
CallmeEchoo
76721b16f8 add snow weather 2023-05-02 16:25:26 +02:00
Bassoonian
a2bc21d902 Update battle_ai_util.h
Co-Authored-By: Salem <65783283+callmeechoo@users.noreply.github.com>
2023-04-24 14:05:35 +02:00
Bassoonian
0b8d148c26 Let AI take Frostbite into account 2023-04-23 20:53:51 +02:00
ghoulslash
e3ca217d64 rename IsBattlerAIControlled 2023-04-10 11:36:17 -04:00
ghoulslash
5f4bfd9bb4 Merge branch 'upcoming' of https://github.com/rh-hideout/pokeemerald-expansion into be/aiflag 2023-04-10 09:48:49 -04:00
ghoulslash
00d695ac2b add AI_FLAG_OMNISCIENT 2023-03-28 10:38:48 -04:00
Eduardo Quezada
0b8285737a Fixed Comatose AI checks 2023-03-27 09:19:48 -03:00
Eduardo Quezada
03498d7240 Applied remaining instances of BATTLE_OPPOSITE and BATTLE_PARTNER 2022-09-02 23:57:43 -04:00
ghoulslash
6b84a9f0b3 merge w be 2022-07-17 12:40:43 -04:00
ghoulslash
e4bf99d777 merge w be 2022-07-03 16:20:05 -04:00
ghoulslash
b33a8b0cb4 move ai score calc to STATE_TURN_START_RECORD so AI can consider move selection for item use 2022-06-05 11:09:04 -04:00
ghoulslash
c694e0cb90 merge w be 2022-06-05 08:22:24 -04:00
sneed
2e855b204a ai accounts for a third type 2022-05-29 04:55:37 +03:00
BuffelSaft
746d9ea6c5 Add AI_GetBattlerMoveTargetType()
Add AI version of the function that handles move target selection, as it needs to have ability and item info that it may not have access to.
2022-04-27 22:23:20 +12:00