Enemy AI

From Chrono Compendium
Revision as of 17:33, 1 July 2008 by Jsondag3 (Talk | contribs)

Jump to: navigation, search

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)