Mia's AI Manipulation Instructional Academy

Plain Text AI Guide

This is the plain text guide. No examples, images, or clarifications will be given here, simply the bare minimum list of operations for those already familiar with AI rules to easily follow.

No Rival Domains/Grand Conquest specific rules at the moment.

Disclaimer: I don't claim this guide as the truth, but merely rules that I've determined based on my research. I am liable to mistakes, so please let me know when I've slipped up. Topics I am not 100% certain on: Rival Domains/Grand Conquest exclusive rules.

I. Evaluate and store turn-wide states:

A. Evaluate and perform obstacle related processes:

1. For each unit, grant "pass" status if it has a skill that allows movement through foe's spaces, and the requirements of the skill is met
2. Create an Ally Obstacle List (used by enemies), storing the location of all tiles that are occupied by allies
3. Create an Enemy Obstacle List (used by allies), storing the location of all tiles that are occupied by enemies
4. Create a Block Obstacle List (used by both sides), storing the location of all tiles that have blocks

B. Create Movement Order List using these tiebreaks:

1. Have assist: N > Y
2. Attack type: Melee > Ranged > Weaponless
3. Distance to closest enemy: lowest #
4. Slot order: lowest #

C. Store movement range of each unit

II. Assess Threats:

A. If no units have actions, skip to Step IX [End Turn]
B. For each ally unit with a weapon equipped, give "threatens enemy" status if at least 1 enemy is in unit's threat range (based on unit's current movement including Warp, NOT the movement stored from step I.C)
C. For each enemy unit with a weapon equipped, give "threatens enemy" status if at least 1 enemy is in unit's threat range (based on unit's current movement NOT including Warp, and NOT the movement stored from step I.C)
D. For each unit, give "threatened by enemy" status if unit is in at least 1 enemy's threat range. Calculate threat range of each enemy based on enemy's stored movement range (step I.C) and accounting for blocks based on the Block Obstacle List (step I.A.4), and if an enemy has the "pass" status, factor in obstacles from their respective foes' Obstacle List and the Block Obstacle List(step I.A.2-4)


III. Calculate Combat Results For Assist Evaluation:

A. Create attacker list containing each unit with action that has the "threatens enemy" status; if list is empty, skip to Step VII [Evaluate Post-Combat Assists]
B. For each attacker in the list, populate a target list containing each enemy that can be attacked; remove each attacker with no attackble targets and if list is empty, skip to Step IV [Evaluate Pre-Combat Assists]
C. For each target in each list, determine the optimal tile from which to attack using these tiebreaks:

1. Defense tile: Y > N
2. Enemy threat: lowest #
3. Requires teleportation: Y > N
4. Special terrain: Flier Terrain > Forest > Trench >= Regular (Trench > Regular only if cavalry)
5. Movement required: lowest #
6. Tile priority value: highest #

D. Calculate combat result for each target for each attacker, based on tile selected in previous step


IV. Evaluate Pre-Combat Assists:

A. Check each unit with action with assist equipped for pre-combat eligibility and evaluate assist type using Chart A
B. Create assist list with each unit that meets pre-combat eligibility from previous step; if list is empty, skip to Step VI [Evaluate Attacks]
C. For each assister on the list, populate a target list with each ally its assist can be used on
D. Check each target's pre-combat eligibility using Chart B
E. Remove ineligible targets from each assister's target list and remove assisters with no targets from assist list; if assist list is empty, skip to Step VI [Evaluate Attacks]
F. For each target for each assister with non-movement assist, determine the optimal tile from which to assist the target using these tiebreaks:

1. Defense tile: Y > N
2. Enemy threat: lowest #
3. Requires teleportation: Y > N
4. Special terrain: Flier Terrain > Forest > Trench >= Regular (Trench > Regular only if cavalry)
5. Movement required: lowest #
6. Tile priority value: highest #

G. For each target for each assister with movement assist, determine the optimal tile from which to assist the target using these tiebreaks:

1. Enemy threat: lowest # (special note for Draw Back: this assist examines the tile that the user would end up on for lowest enemy threat)
2. Requires teleportation: Y > N
3. Movement required: lowest #
4. Tile priority value: highest #

H. For each target of each assister with Sacrifice, Reciprocal Aid, or Ardent Sacrifice, if amount of enemy threat on assister at optimal assist tile is greater than amount of enemy threat on target, then that assist is ineligible to be performed.

I. For each assister with non-Restore or non-movement assist, determine best target to assist using these tiebreaks:

1. Has "threatens enemy" status: Y > N (compare refreshers only)
2. Amount of stats actually buffed: highest # (compare ralliers only, but ignore if using "Rally Up")
3. Amount healed: highest # (compare healers only)
4. Distance from closest enemy: lowest # (compare ralliers only)
5. Visible stat total: highest #
6. Slot order: highest #

J. If assister is using "Rally Up," divide all of its targets into three categories: let "eligible targets" be targets remaining after step E, let "intended target" be the target chosen from them in step I and let "ineligible targets" be targets discarded during step E. Choose a target that's within 2 spaces of intended target to assist using these tiebreaks:

1. Number of eligible targets buffed as a result: highest #
2. Is intended target and is not the lowest slot among all other eligible targets: Y > N
3. Is intended or ineligible target : Y > N
4. Slot order: highest #

K. For each assister with Restore, determine best target to assist using these tiebreaks:

1. Has no debuffs: Y > N
2. If no debuffs, amount healed: highest #
3. If no debuffs, visible stat total: highest #
4. Slot order: highest #

L. For each assister with movement assist, determine best target to assist using these tiebreaks:

1. Assisted with teleport skill: Y > N
2. Assister distance from target: lowest #
3. Slot order of adjacent blocked enemies: highest #
4. Tile priority value: highest #

M. Determine the best assister from the list using these tiebreaks:

1. Non-movement assist: Y > N
2. Has no weapon: Y > N
3. Distance from closest enemy: highest #
4. Slot order: lowest #

N. The best assister uses its assist on its best target from the optimal tile

O. If the assister has Canto status, determine best tile to move to using the following tiebreaks:

1. Enemy threat: lowest #
2. Distance from current tile: highest #
3. Defense tile: Y > N
4. Tiles from diagonal to current tile: lowest #
5. Special terrain: Flier Terrain > Forest > Trench >= Regular (Trench > Regular only if cavalry)
6. Requires teleportation: Y > N
7. Movement required: lowest #
8. Tile priotiy value: highest #

P. Clear all states except for those from Step I and return to Step II [Assess Threats]


V. Calculate Combat Results For Attack Evaluation:

A. Create attacker list containing each unit with action that has the "threatens enemy" status
B. For each attacker in the list, populate a target list containing each enemy that can be attacked; remove each attacker with no attackble targets.
C. For each target in each list, determine the optimal tile from which to attack using these tiebreaks:

1. Best combat result: Win > Draw > Loss
2. Damage ratio: highest #
3. Defense tile: Y > N
4. Enemy threat: lowest #
5. Requires teleportation: Y > N
6. Special terrain: Flier Terrain > Forest > Trench >= Regular (Trench > Regular only if cavalry)
7. Movement required: lowest #
8. Tile priority value: lowest #

D. Calculate combat result for each target for each attacker, based on tile selected in previous step


VI. Evaluate Attacks

A. For each attacker in the attacker list created in Step V [Calculate Combat Results For Attack Evaluation], give it the "debuffer" status if it has any skill in Chart G equipped
B. For each attacker in the list, give it the "afflictor" status if it has any skill in Chart H equipped
C. For each attacker in the list, determine best target to attack using these tiebreaks:

1. Best combat result: Win > Draw > Loss
2. Able to debuff target by at least 2 uncombined points in def or res: Y > N (compare attacker with "debuffer" status only)
3. Damage ratio: highest #
4. Special charge increased: Y > N
5. Slot order: highest #

D. Determine the best attacker from the list using these tiebreaks:

1. Best combat result: Win > Draw > Loss
2. Has debuffer status and able to debuff its target by at least 2 uncombined points in def or res: Y > N
3. Has afflictor status against its best target: Y > N
4. Damage ratio: highest #
5. Movement range: highest #
6. Target's special charge increased: Y > N
7. Slot order: highest #

E. The best attacker attacks its best target from the optimal tile.

F. If the attacker lives and has Canto status, determine best tile to move to using the following tiebreaks:

1. Enemy threat: lowest #
2. Distance from current tile: highest #
3. Defense tile: Y > N
4. Tiles from diagonal to starting tile: lowest #
5. Special terrain: Flier Terrain > Forest > Trench >= Regular (Trench > Regular only if cavalry)
6. Requires teleportation: Y > N
7. Movement required: lowest #
8. Tile priotiy value: highest #

G. If an enemy was defeated OR if an enemy's location was displaced (i.e. drag back, lunge), for each unit with the "pass" status, check if their skill granting "pass" is still active; if not, remove "pass" status from that unit. In addition, for each tile in each Obstacle List (step I.A.2-4), if there is no longer an ally, enemy, or block occupying it, remove that tile from the respective Obstacle List. Clear all states except for those from Step I and return to Step II [Assess Threats]


VII. Evaluate Post-Combat Assists:

A. Add each unit with action with assist equipped to the assist list
B. For each assister on the list, populate a target list with each ally its assist can be used on
C. Check each target's post-combat eligibility using Chart D
D. Remove ineligible targets from each assister's target list and remove assisters with no targets from assist list; if assist list is empty, skip to Step VIII [Evaluate Movement]
E. For each assister, evaluate assist type using Chart C
F. For each target for each assister with non-movement assist, determine the optimal tile from which to assist the target using these tiebreaks:

1. Defense tile: Y > N
2. Enemy threat: lowest #
3. Requires teleportation: Y >
4. Special terrain: Flier Terrain > Forest > Trench >= Regular (Trench > Regular only if cavalry)
5. Movement required: lowest #
6. Tile priority value: highest #

G. For each target for each assister with movement assist, determine the optimal tile from which to assist the target using these tiebreaks:

1. Able to bodyblock and prevent a melee enemy from attacking the ally ("blocker" status only; target MUST be eligible for assist)
2. Enemy threat: lowest # (special note for Draw Back: this assist examines the tile that the user would end up on for lowest enemy threat)
3. Requires teleportation: Y > N
4. Movement required: lowest #: Y > N
5. Tile priority value: highest #

H. For each target of each assister with Sacrifice, Reciprocal Aid, or Ardent Sacrifice, if amount of enemy threat on assister at optimal assist tile is greater than amount of enemy threat on target, then that assist is ineligible to be performed.

I. For each assister with non-Restore or non-movement assist, determine best target to assist using these tiebreaks:

1. Threatens Enemy: Y > N (compare refreshers only)
2. Amount healed: highest # (compare healers only)
3. Amount of stats actually buffed: highest # (compare ralliers only)
4. Distance from closest enemy: lowest # (compare ralliers only)
5. Visible stat total: highest #
6. Slot order: highest #

J. If assister is using "Rally Up," divide all of its targets into three categories: let "eligible targets" be targets remaining after step D, let "intended target" be the target chosen from them in step I and let "ineligible targets" be targets discarded during step D. Choose a target that's within 2 spaces of intended target to assist using these tiebreaks:

1. Number of other eligible targets buffed as a result: highest #
2. Is intended target and is not the lowest slot among all other eligible targets: Y > N
3. Is intended or ineligible target : Y > N
4. Slot order: highest #

K. For each assister with Restore, determine best target to assist using these tiebreaks:

1. Has no debuffs and meets pre-combat HP threshold in Chart F: Y > N (yes this is for post-combat still)
2. Has no debuffs: Y > N
3. If no debuffs, amount healed: highest #
4. If no debuffs, visible stat total: highest #
5. Slot order: highest #

L. For each assister with movement assist, determine best target to assist using these tiebreaks:

1. Assisted with teleport skill: Y > N
2. Visible stat total: highest #
3. Distance from target: lowest #
4. Slot number: highest #

M. Determine the best assister from the list using these tiebreaks:

1. Assist type (!W = Weaponless): !W Refresh = !W Heal = !W Restore = !W Donor Heal > Dance = Heal = Restore > !W Rally > Donor Heal = Rally > !W Movement > Movement
2. Is a staff user or has the Sacrifice assist Y > N (compare healers only)
3. Distance from closest enemy: highest #
4. Slot order: lowest #

N. The best assister its assist on its best target from the optimal tile

O. If the assister has Canto status, determine best tile to move to using the following tiebreaks:

1. Enemy threat: lowest #
2. Distance from current tile: highest #
3. Defense tile: Y > N
4. Tiles from diagonal to starting tile: lowest #
5. Special terrain: Flier Terrain > Forest > Trench >= Regular (Trench > Regular only if cavalry)
6. Requires teleportation: Y > N
7. Movement required: lowest #
8. Tile priotiy value: highest #

P. Clear all states except for those from Step I and return to Step II [Assess Threats]


VIII. Evaluate Movement:

A. If all units with actions have "cede move" status, skip to Step IX [End Turn]
B. For first unit on movement order list with action and no "cede move" status, check if unit satisfies conditions for "shuffle" status in Glossary Section 2d
C. For first unit on movement order list with action and no "cede move" status, if it has a weapon equipped, determine enemy target using the following tiebreaks:

1. Chase priority value: highest # (see Glossary 4.J)
2. Slot order: highest #

D. If no target was able to be determined from previous step (whether due to no weapon or no target), if all allies have a defined distance, determine ally to target using the following tiebreakers:

1. Distance: lowest #
2. Slot order: highest #

E. If no target was able to be determined from either step C or step D, unit gains "cede move" status; repeat Step VIII [Evaluate Movement]

F. If unit has "shuffle" status, determine that best tile to move using the following tiebreaks:

1. Standing still: N > Y
2. Distance to target: lowest #
3. Defense tile: Y > N
4. Enemy threat: lowest #
5. Requires teleportation: Y > N
6. Special terrain: Flier Terrain > Forest > Trench >= Regular (Trench > Regular only if cavalry)
7. Tile priority value: highest #

G. Determine best tile to move to using the following tiebreaks: (SPECIAL NOTE: if enemy cannot be directly pathed to, unit paths toward closest tile from which they can attack. Choose by highest tile priority value if there is a tie. This only applies when chasing enemies.)

1. Distance from target: lowest #
2. Defense tile: Y > N
3. Enemy threat: lowest #
4. Requires teleportation: Y > N
5. Tiles from diagonal to target: lowest #
6. Special terrain: Flier Terrain > Forest > Trench >= Regular (Trench > Regular only if cavalry)
7. Movement required: lowest #
8. Tile priority value: highest #

H. Create a list of eligible blocks to be broken that satisfy at least one of the following conditions:

1. Distance of block to target (using unit's movement) < distance of best tile from step G to target
2. Distance of block to target (using unit's movement) is undefined

I. If unit is already standing on optimal movement tile in step G, and there exists at least one eligible block in step H, return to step G and re-evaluate optimal movement tile, disqualifying unit's current tile as an option.

J. For each eligible block from step H, choose optimal tile from which to attack each block using the following tiebreaks:

1. Defense tile: Y > N
2. Enemy threat: lowest #
3. Requires teleportation: Y > N
4. Special terrain: Flier Terrain > Forest > Trench >= Regular (Trench > Regular only if cavalry)
5. Movement required: lowest #
6. Tile priority value: highest #

K. If there is at least one eligible block, choose the best block to breakusing the following tiebreaks:

1. Distance from best tile from step G: lowest #
2. Optimal attack tile is defense tile: Y > N
3. Optimal attack tile's enemy threat: lowest #
4. Tile priority value: highest #

L. Unit breaks the best block from Step K using its optimal tile from Step J.

M. If the unit has Canto status, determine best tile to move to using the following tiebreaks:

1. Enemy threat: lowest #
2. Distance from current tile: highest #
3. Defense tile: Y > N
4. Tiles from diagonal to current tile: lowest #
5. Special terrain: Flier Terrain > Forest > Trench >= Regular (Trench > Regular only if cavalry)
6. Requires teleportation: Y > N
7. Movement required: lowest #
8. Tile priotiy value: highest #

N. If a block was broken in Step L, clear all states except for those from Step I and return to Step II [Assess Threats]

O. If unit has Pivot, determine best Pivot tile using the following tiebreaks:

1. Distance from target: lowest#
2. Defense tile: Y > N
3. Enemy threat: lowest #
4. Tile priority value, based on tile from which Pivot is being used: highest #

P. If unit has Pivot, determine which between best tile from step G and best Pivot tile from step O is the optimal move using the following tiebreaks:

1. Distance from target: lowest#
2. Defense tile: Y > N
3. Enemy threat: lowest #
4. Requires teleportation: Y > N (Pivot is implied N)
5. Requires Pivot: N > Y

Q. If unit has Rally assist, create list of eligible assist targets adjacent to best tile according to Chart E and choose best target to assist using the following tiebreaks

1. Amount of stats actually buffed: highest #
2. Distance from closest enemy: lowest #
3. Visible stat total: highest #
4. Slot order: highest #

R. If assister is using "Rally Up," choose target that's within 2 spaces of target chosen in step Q to assist using these tiebreaks:

1. Eligible target in step P but was not chosen: N > Y
2. Slot order: highest #

S. If the unit has Canto status, determine best tile to move to using the following tiebreaks:

1. Enemy threat: lowest #
2. Distance to starting tile: highest #
3. Defense tile: Y > N
4. Tiles from diagonal to starting tile: lowest #
5. Special terrain: Flier Terrain > Forest > Trench >= Regular (Trench > Regular only if cavalry)
6. Requires teleportation: Y > N
7. Movement required: lowest #
8. Tile priotiy value: highest #

T. If current tile is the best tile, unit gains "cede move" status; repeat Step VIII [Evaluate Movement]
R. Unit moves to the best tile/Pivot tile; clear all states except for those from Step I and return to Step II [Assess Threats]


IX. End Turn