Finger Guard

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
No Parameters - Returns Nothing

If Unit can react and is using Finger Guard
  - Roll react chances (random from 0 to 100 Vs Target's Brave)
  - If Target is reacting:- Set Action hit flag to MISS
                           - Store 0x1c0 as reaction ID 
                           - Set Evade type = 0x0b
--------------------------------------------------------------------------------------------
001882f8: 3c048019 lui r4,0x8019            |
001882fc: 8c842d98 lw r4,0x2d98(r4)         |r2 = Target data pointer Load Defender's Stats
00188300: 27bdffe8 addiu r29,r29,-0x0018    |
00188304: afbf0010 sw r31,0x0010(r29)       |
00188308: 0c063248 jal 0x0018c920           |-->Check if unit can react 1 r2 = 0x00 if unit can react (check status, depth, action state etc..)
0018830c: 00000000 nop                      |
00188310: 14400022 bne r2,r0,0x0018839c     #If Unit can react /Else branch to  END
00188314: 00000000 nop                          |
00188318: 3c058019 lui r5,0x8019                |
0018831c: 8ca52d98 lw r5,0x2d98(r5)             |r5 = Target data pointer
00188320: 00000000 nop                          |
00188324: 90a2008e lbu r2,0x008e(r5)            |r2 = Target Reaction Abilities (4th set)
00188328: 00000000 nop                          |
0018832c: 30420020 andi r2,r2,0x0020            |r2 = 0x20 if Target uses Finger Guard
00188330: 1040001a beq r2,r0,0x0018839c         #If Target uses Finger Guard /Else branch to  END
00188334: 34020064 ori r2,r0,0x0064                 |r2 = 0x64 (100)
00188338: 90a30024 lbu r3,0x0024(r5)                |r3 = Target Brave
0018833c: 3c048019 lui r4,0x8019                    |
00188340: 8c842d90 lw r4,0x2d90(r4)                 |r4 = Target Current Action (TCA) data pointer
00188344: 00431023 subu r2,r2,r3                    |r2 = 100 - Target's Brave
00188348: 1040000a beq r2,r0,0x00188374             #If Target Brave < 100 /Else 100% of guarding, branch to Attack fail section
0018834c: a482002a sh r2,0x002a(r4)                 |Set TCA Hit% = 100 - Brave
00188350: 0c0634e1 jal 0x0018d384                       |-->Chance_to_React Returns r2 = 0x00 if Target is reacting ( Random (0 to 100) < Target Brave)
00188354: 00a02021 addu r4,r5,r0                        |r4 = Target data pointer
00188358: 14400010 bne r2,r0,0x0018839c                 #If Target is reacting /Else branch to  END
0018835c: 00000000 nop                                      |
00188360: 3c028019 lui r2,0x8019                            |
00188364: 8c42f5fc lw r2,-0x0a04(r2)                        |r2 = Action State
00188368: 00000000 nop                                      |
0018836c: 1440000b bne r2,r0,0x0018839c                     #If Action is being executed /Else branch to  END
00188370: 00000000 nop                                          |
00188374: 3c028019 lui r2,0x8019                    #E          |
00188378: 8c422d90 lw r2,0x2d90(r2)                             |r2 = TCA data pointer
0018837c: 00000000 nop                                          |
00188380: a0400000 sb r0,0x0000(r2)                             |Set TCA hit flag to MISS
00188384: 3c038019 lui r3,0x8019                                |
00188388: 8c632d90 lw r3,0x2d90(r3)                             |r3 = TCA data pointer
0018838c: 340201c0 ori r2,r0,0x01c0                             |r2 = 0x1c0 (Finger Guard ID)
00188390: a462000e sh r2,0x000e(r3)                             |Store Finger Guard ID in TCA Reaction ID
00188394: 3402000b ori r2,r0,0x000b                             |r2 = 0x0b
00188398: a0620002 sb r2,0x0002(r3)                             |Store TCA Evade Type = 0x0b (shared with blade grasp)
0018839c: 8fbf0010 lw r31,0x0010(r29)       END
001883a0: 27bd0018 addiu r29,r29,0x0018
001883a4: 03e00008 jr r31
001883a8: 00000000 nop

Return locations

Battle.bin
00189a20: 2A_Hit_(MA%2BX)%25_//_AffectBraveOrFaith(Y)