Enemy AI
Notes on Enemy AI are currently incomplete; eventually, data will be decoded and added into Temporal Flux for functionality. Enemy AI information will be updated as new stuff comes.
Offsets
Directly from Geiger's Offsets.txt ___________________________________________________________________ 0C8B08 0C8D07 PTR No No Pointers to Enemy AI (local) 6/21/2004 0C8D08 0CCBC8 AI No No Enemy AI 7/14/2003 ___________________________________________________________________ WaddlerD's conversation to me: ___________________________________________________________________ WaddlerD 85: The AI tactics is quite interesting. WaddlerD 85: All the monsters has 2 main patterns. WaddlerD 85: A "normal", move on will pattern and a "counter, move with the response of an attack or action, pattern. WaddlerD 85: It's always seperated by FE FF WaddlerD 85: The stuff between the FE FF is simple and complicated in a way. WaddlerD 85: The first 4 bytes are ALWAYS to going to be a precondition. WaddlerD 85: followed by a FE WaddlerD 85: to seperate the precondition from the actual actions. WaddlerD 85: I haven't found out all the preconditions yet, as there are quite a few, but usually 00 00 00 00 is the default. WaddlerD 85: As it means, "If the monster is alive" probaby. WaddlerD 85: probably* WaddlerD 85: You can put more than one precondition in a pattern, though. WaddlerD 85: Like for instance. WaddlerD 85: FE FF 00 00 00 00 FE Blah blah blah FE 00 00 00 00 FE Blah Blah FE FF <--- Normal attack pattern WaddlerD 85: The four bytes. WaddlerD 85: Though it's also good to know that the precondition can be expanded into some big "and" precondition. WaddlerD 85: Like for instance 01 03 00 00 15 40 00 00 = "When HP is at 50% AND Monster is hit with Shadow based elemental attack. WaddlerD 85: There is quite a few interesting preconditions that I found out so far. WaddlerD 85: Somewhat sloppy, but it should be good enough WaddlerD 85: Byte #1: 00 = No Attack 01 = Attack Byte #2: 00 = Normal Attack 01 = Secondary Attack Byte #3: (Target?) Byte #4: Animation that is done before attack 01 = Up Close 04 = Stand Still Action 0A = Circle around 0E = Going Astray 02 XX 05 XX XX XX Byte #1: 02 = Techs/Magic Byte #2: XX = Attack Type Byte #3: Targeting style? Byte #4: Double Tech targeting? Byte #5: Triple Tech targeting? Byte #6: Message 0A XX XX Byte #1: 0A = Disables Enemy XX = Special Attack XX = Message 0B XX XX 00 XX Byte #1: 0B = Setting Stat Byte #2: XX = Stat Type Byte #3: XX = Stat set Byte #4: 00 = ? Byte #5: XX = Message 0C 3D XX XX Byte #1: 0C = Adding Stat Byte #2: 3D = Offense 39 = Magic 3B = Evade 38 = Speed 3E = Defense 3F = Lightning Defense 40 = Shadow Defense 41 = Water Defense 42 = Fire Defense Byte #3: Increment Byte #4: Message 0D XX 0F XX Byte #1: 0F = Message Enable Byte #2: XX = Message Attack/Counterattack Preconditions 15 XX = Counters with Type of Attack 20 00 00 00 = Final Attack 17 XX 00 00 = Chances Pattern will be used 1F 04 XX 00 = Distance 07 01 00 00 = Custom Pattern is active 11 00 00 00 = Physical Attack 12 XX 01 = Magic Attack 01 03 = HP is at 50% 05 XX = Number of Monsters in battle WaddlerD 85: Here's the first bit of attacks that I have found out. WaddlerD 85: 00 = Flash 01 = Enemy Cure (Target problems, they cure YOU...) 02 = Lock 03 = Bird Screech 04 = Slow Gas Attack 05 = Nagaette's Slow Spell 06 = Mune Attack 07 = Jump n' Land Strike 08 = Sleep Wave 09 = Dust Breath Attack 0A = Fire Breath Attack 0B = Grinder Plowing Attack 0C = Dragon Tank Missile Salvo 0D = Bubble 0E = Yakra's Needlespin 0F = Sleep Bomb 10 = Cybot Singing 11 = Spewing Volcano 12 = Rasp 13 = Venomous Gas 14 = Laser Beam 15 = Laser Beam Again 16 = Missile Salvo 17 = Orb Bomb 18 = Area Bomb 19 = Amplifire 1A = Delta Attack 1B = Ink Blast 1C = Harmful Gas 1D = Attack, Attack, Attack/Bugged 1E = Chaos Bell 1F = Azala Break 20 = Yes Indeed! 21 = Whirlwind Dance/Bugged Alone 22 = X-Strike/Bugged Alone 23 = Whirlwind Blast 24 = Less Hitting Poison Gas 25 = Fire Trail or Enemy Fire 1 26 = Pushback Attack 27 = Static Shock (ALL) 28 = Static Shock (ONE) 29 = Shower 2A = Enemy Ice 1 2B = Enemy Lightning 1 2C = Self-Destruct 2D = Nuke 2E = Bugged? 2F = Point Flare WaddlerD 85: Found out another precondition. WaddlerD 85: I think 40 00 XX 01 points out "When Monster XX is dead" WaddlerD 85: So if you put 40 00 CF 01 in there, it says "When Monster "Bit" is dead", do this. WaddlerD 85: Ok, should be simple enough. WaddlerD 85: You know though... WaddlerD 85: There may be something more than what I put down for 1F 04 XX XX WaddlerD 85: A lot more... WaddlerD 85: Because Gato has 1F 06 00 00 for his counter attack precondition... WaddlerD 85: Well, 1F usually deals with distance WaddlerD 85: So I guess the three bytes after it have to do with something...
Other Findings
Justin3009
38910 - Marle Invisible Monster's transform
34341/33345/59108/42312/34523/34112/32198/33333/35312/35464/34921/32421/35353/(44217/45217)(Counter Attack) - Enemy Melee
45629 - Weird Attack by enemy (almost like golem's)
43212 - Robot/Dragon Tank Moves?
46645/43217 - robot move
54332 - Span Death/ Arm Revives Body (Kills Hero and 2 Enemies)
54512/54651/54325 - Barrier Change Message Repeating
56654 - Hexagon Mist/Water Message Repeating
45333 - Zeal (Hands/Head Moves)
51652 - (Magus Moves)
42217 - Low Life
48217 - Automatic Win
59217 - Area Change?/Hero's Attack Themselves?
52217 - Area Bomb Message Appears
12341/12741 - Strange Win?
23411/15297/59231/12347/23409/23421/958/951/14512 - Freezes Game
43123 - Copy Cat Ability/Copies Phycics message repeating
38764 - 1 hit win
42978 - Dragon Tank
55789/54129/54213/53451/54643/53750 - Barrier Change Message Repeating
49876/50000 - Unfinished Double techs
29873 - Gaia Magnade/Fire Message Repeating
39065 - Absorbs More Elemental Damage
19824/24312 - Slows Game
48971 - Strange Effects...
49441 - The Parts on the Right Store Energy...Message Repeating
43298/43291 - Automatic win/Apart Masa and Mune Are Powerless Msg..
42831 - 1 Yakra Move
12478 - Double Part Attack/Dark Plasma Message Repeating
45123 - hero takes over enemy
42312/38312(Close Range) - Enemy Steals Life
12973 - Defense Down Message Appears and Freezes Game
47819 - Dragon Tank Missles
5309 - Grand Stone/ Ultimnate physical attack (Freezes game)
61470 - Dark Gear/ Shadow Message Repeating
40395 - Enemy Uses weird move (Screen turns red and rocks fall)
24341 - Either Slows game or Slows Battle Stances
45432 - Counter Attack/ Life Shaver
51312 - Counter Attack: Flare
52312 - Gives weird mana drains all items and Barrier Change/Ding-Aling-Chaos message
49312 - Lavos Moves/Yakra Move?
47312 - Steals life/ Shakes the Ground/Tornado Energy Neutralized message
44312 - Destroy's Graphics/ Bad Impulse ---- (Couldn't read rest of message)
43312 - Attacks Hero, but when attacked, Apart Masa and Mune Are Powerless (Ends Battle)
36312 - Shoots a Bunch of Flames
51112 - Area Bomb on Enemy
51012 - Go ahead...Try and attack (Shoot's Flame)
51002 - Lavos Core is Defended! (Shoot's Flame)
51119 - Area Bomb On Hero's
51149 - Golem Boss Run Away Move
56512 - Removes third party menu over and over
34523 - Walk Around and Attack
57298/12451/41931 - destroys graphics (does many things)
32489 - Freezes game
40000 - Shoots Laser
47800 - Shoots Missles
57212 - Hero's attack themselves and Reprogramming/Chaos Message Appears
57212 - Hero's attack themselves and Reprogramming/Chaos Message Appears
3561 - Span Death/Arm Revives Main Body.. Message Repeats
10294 - After any attack game screen goes black and dissappears
9931 - Kills enemy after 3 turns and constantly plays enemy death sound then game freezes
16528/15460 - Enemy tries to run then game freezes
13256 - Attack/will attack with no center bit.
15555 - Double-Part Attack/Dark-Plasma
43216 - Copy Cat Ability/Copies Phycics message repeating (Does Missle Attack, Laser Beam, and Time Stop)
49216 - Blue scout fights all mag but "water".
46216 - Eats hero for life and uses some strange fire attack that hits everything
10896 - 1st person in slot shakes head and game freezes
59230 - Lavos Core is Defended! message repeats
42190 - Makes game skippy
42956 - Shoots yellow laser beam
43956 - Slashes's Attacks
45956 - Robo's Heal Beam?
47956 - Missles
50956 - Lavos Bit Attacks?
51956 - Fire 2, Lightning 2, Ice 2
57956 - Js theot ththingver: Th Message appears (automatic win) But drains life
61956 - Mutant Gas/Poison Message Repeats
39956 - Blue scout fights all mag but "lightning". Then does MP Buster
37956 - Shoots Dirt at Heroes and Melee attacks
16956 - Napalm Message Repeats (hero Attacks enemy but then attacks a hero)
12956 - Shadow Slay Message Repeats
5956 - Freeze/stop message repeats
61258 - ♪-- ♪- ♪♪--/chaos message repeats
45874 - Sand Breath/Darkness (Def powered up when attack) Steals Life
41874 - If hero attack Enemy runs away (Attack pwr up) Message repeats
39874 - 10,000 Hz/sleep strike from the heavens above
38874 - Physical defense on If attacked Magical Defense on if Magic
37874 - If attacked does hallation
36874 - If attacked uses Cure 2?
40874 - Does slash and slow
24874 - Crying Heavens/Hidden Below message repeats
16874 - Double-Part Attack/Dark-Plasma Message repeats If hero lands a strike, Hero attacks him/herself
15874 - Obstacle message repeats
11523 - Counter-Attack
10523 - Plays enemy death sound when enemy is defeated over and over. Then says destruction zone, screws up the graphics, anything other then that turns into a robot laser.
9523 - Plays enemy death sound when enemy is defeated over and over. Then says Mortal Blow, screws up the graphics, anything other then that turns into a robot laser.
45523 - Doom, Doom Doom Doom... - Screws up Graphics and does some odd attack.
59632 - Attacks enemy then shakes head left to right
10203 - hero dissappears enemy dissappears turns into a "nu" or so they say and screws up graphics on hero
50314 - Shoots flames and eats hero
13620 - Counter attacks during battle message repeats
60340 - Pain... Message appears at the beginning of the battle
32056 - Counter-Attacks
16450 - Life Shaver/ Hp goes to 1 - If successful hit hero attacks themselves and takes no dmg
63190 - Waltz of the wind (insert heart symbol here)/chaos
40210 - Barghest's shield destroyed... message appears after the first attack
Chickenlump
09 XX XX = Attack to use These attacks do absolutely no damage (not even 0), but the attack effect plays out. I've seen these in 2 unnamed monster's scripts (lavos support monsters I think, they have no name, #'s B5 and B6). 28 XX YY - Change Stats XX - Stat to change YY - Amount to change You can change HP, MP, wounded, etc. stats of characters with this one.
Vehek
07 XX YY ZZ - Become different monster XX - Type of monster to become YY - Attack animation to use. Not all attacks update the sprite and name. ZZ - Haven't really investigated; affects whether it keeps its current HP when it changes. This requires the location events to be set up in a certain way.
Summary
Enemy AI is split into two sections seperated by the bytes FE FF.
XXXXXXXXXXXXXXX FE FF YYYYYYYYYYYYYYYY
The first section is the normal enemy moves. The second section is the counter section is used if the enemy is hit. Each section has the following layout.
<condition_1> FE <action_1> FE <condition_2> FE <action_2> .... FE <condition_n> FE <action_n>
Each condition is a multiple of 4 bytes. Every 4 bytes is a boolean statement (see below conditions). If there are more than one statements they must all evaluate to true in order to do the corresponding action.
Know Conditions
00 00 00 00 - Normal attack./enemy alive 01 03 00 00 - HP is at 50% or less. 09 00 00 00 - Physical Counter. 10 00 00 00 - Always Counter. 11 00 00 00 - Magical Counter. 15 XX 00 00 - Elemental Counter - 20 Ice, 10 Fire, 80 Lightning, 40 Shadow, 00 Physical. (02 and 04 have been used, only saw them skimming the listings) 1F 04 XX 00 - Is enemy distant (non-zero) or up close (zero)? 20 00 00 00 - Final attack.
Know Actions
00 WW XX YY ZZ - wander mode ZZ is how you wonder, WW animation related? 02 WW 05 XX YY ZZ - Spell WW, Message ZZ, XX YY for double/triple? 07 XX YY ZZ - Become different monster XX using animation YY. ZZ affects keeping HP requires event code 09 XX - Pretend to do attack XX 0A XX YY- - Disable do animation XX display Message YY 0B XX YY 00 ZZ - Set stat type XX, Stat YY, with message ZZ 0C XX YY ZZ - Add stat XX by YY message ZZ 0F XX - Display Message XX 28 XX YY - Change Stat XX by YY
From: Offsets (Chrono Trigger)