Been pummeling him with Aqualung and Limits but he does not seem to want to transform.
I checked his AI and the counters to transform are there but I can't quite make sense of why he's not utilizing them.
Main script ( dont worry about the not matching attack spell ID, it works fine. replaced bolt2 with twister and updated the values in question )
0x000 If (LocalVar:0060 == 0)
0x000 {
0x008 TargetMask <- RandomBit(AllOpponentMask)
0x010 Perform("Punch"[0185], EnemyAttack)
0x016 If (Not (Random MOD LocalVar:0080) )
0x016 {
0x01F TargetMask <- RandomBit(AllOpponentMask)
0x027 Perform("Punch"[0185], EnemyAttack)
0x02D If (Not (Random MOD 3) )
0x02D {
0x035 LocalVar:0060 <- 2
0x03B }
0x03B Else
0x03B {
0x03E LocalVar:0060 <- 1
0x044 }
0x044 Else
0x044 {
0x047 }
0x047 Else
0x047 {
0x04A If (LocalVar:0060 == 1)
0x04A {
0x04F TargetMask <- RandomBit(AllOpponentMask)
0x057 Perform("Punch"[0185], EnemyAttack)
0x05D If ( ( (TargetMask.Status:Death == 0) And Not (Random MOD LocalVar:0080) ) )
0x05D {
0x071 TargetMask <- RandomBit(AllOpponentMask)
0x079 Perform("Punch"[0185], EnemyAttack)
0x07F If (Not (Random MOD 3) )
0x07F {
0x087 LocalVar:0060 <- 2
0x08D }
0x08D Else
0x08D {
0x090 LocalVar:0060 <- 0
0x096 }
0x096 Else
0x096 {
0x099 }
0x099 Else
0x099 {
0x09C If ( ( (Self.MP >= MPCost(Bolt2 [0031])) And (AllOpponentMask.Status:Reflect == 0) ) )
0x09C {
0x0B5 TargetMask <- RandomBit( (AllOpponentMask.Status:Reflect == 0) )
0x0C4 Perform("Bolt2"[0031], EnemyAttack)
0x0C9 }
0x0C9 Else
0x0C9 {
0x0CC TargetMask <- RandomBit(AllOpponentMask)
0x0D4 Perform("Punch"[0185], EnemyAttack)
0x0DA If (Not (Random MOD LocalVar:0080) )
0x0DA {
0x0E3 If ( ( (Self.MP >= MPCost(Bolt2 [0031])) And (AllOpponentMask.Status:Reflect == 0) ) )
0x0E3 {
0x0FC TargetMask <- RandomBit( (AllOpponentMask.Status:Reflect == 0) )
0x10B Perform("Bolt2"[0031], EnemyAttack)
0x110 }
0x110 Else
0x110 {
0x113 TargetMask <- RandomBit(AllOpponentMask)
0x11B Perform("Punch"[0185], EnemyAttack)
0x121 If (Not (Random MOD 2) )
0x121 {
0x129 LocalVar:0060 <- 0
0x12F }
0x12F Else
0x12F {
0x132 LocalVar:0060 <- 1
0x138 }
0x138 Else
0x138 {
0x13BPOP(LocalVar:0060)
0x13CSCRIPT END
general counter
0x000 If ( ( (Self.HP <= Self.MHP / 6 * 3) And (LocalVar:0080 == 4) ) )
0x000 {
0x01F LocalVar:0080 <- 3
0x025 }
0x025 Else
0x025 {
0x028 If ( ( (Self.HP <= Self.MHP / 6 * 4) And (LocalVar:0080 == 5) ) )
0x028 {
0x047 LocalVar:0080 <- 4
0x04D }
0x04D Else
0x04D {
0x050 If ( ( (Self.HP <= Self.MHP / 6 * 5) And (LocalVar:0080 == 6) ) )
0x050 {
0x06F LocalVar:0080 <- 5
0x075 }
0x075 Else
0x075 {
0x078 LocalVar:0080 <- 6
0x07ESCRIPT END
physical counter
0x000 If ( ( ( (Self.Status:Paralysis == 0) And (Self.Status:Stop == 0) ) And (Self.Status:Sleep == 0) ) )
0x000 {
0x023 If ( (LocalVar:0080 <= 3) )
0x023 {
0x02C TargetMask <- Self
0x033 Perform([0120], EnemyAttack)
0x039 LocalVar:0020.Flag:Unknown(00000001) <- 1
0x043 LocalVar:0020.Flag:Enabled? <- 1
0x04D LocalVar:0020.Flag:Unknown(00000004) <- 1
0x057 LocalVar:0020.Flag:MainScriptActive <- 1
0x061 TransferStatus(Self, LocalVar:0020)
0x068 Self.Flag:Unknown(00000001) <- 0
0x072 Self.Flag:Enabled? <- 0
0x07C Self.Flag:Unknown(00000004) <- 0
0x086 Self.Flag:MainScriptActive <- 0
0x090SCRIPT END
magic counter
0x000 If ( ( ( (Self.Status:Paralysis == 0) And (Self.Status:Stop == 0) ) And (Self.Status:Sleep == 0) ) )
0x000 {
0x023 If ( (LocalVar:0080 <= 3) )
0x023 {
0x02C TargetMask <- Self
0x033 Perform([011F], EnemyAttack)
0x039 LocalVar:0040.Flag:Unknown(00000001) <- 1
0x043 LocalVar:0040.Flag:Enabled? <- 1
0x04D LocalVar:0040.Flag:Unknown(00000004) <- 1
0x057 LocalVar:0040.Flag:MainScriptActive <- 1
0x061 TransferStatus(Self, LocalVar:0040)
0x068 Self.Flag:Unknown(00000001) <- 0
0x072 Self.Flag:Enabled? <- 0
0x07C Self.Flag:Unknown(00000004) <- 0
0x086 Self.Flag:MainScriptActive <- 0
0x090SCRIPT END