[Statedef -3, OPTIONS N' AI]

[state options]
type=null

;i-frame tick counter
trigger1=1||var(2):= (60) ;default=60

;toggle origin mode (0=on|1=off)
trigger1=1||var(5):= (0) ;default=0

;amount of power to gain when charging
trigger1=1||var(6):= (9) ;default=9

;auto power regen (0=on|1=off)
trigger1=1||var(7):= (0) ;default=0

;origin power gained when charging
trigger1=1||var(8):= (2) ;default=2

;afterimage helpers (0=on|1=off)
trigger1=1||var(9):= (0) ;default=0

;origin mode power drain
trigger1=1||var(10):= (2) ;default=2

;amount of origin power to gain when hit (when attacking, this value is in half. set to -1 to base off damage recieved)
trigger1=1||var(11):= (15) ;default=15

;only enable this for debugging purposes (0=on|1=off)
;this auto-enables Origin Mode when you press C, so please do not enable this UNLESS if you are editing this character. thanks -- Kuro Aonix
trigger1=1||var(16):= (1) ;default=1

;toggle Origin Mode number display (0=on|1=off)
trigger1=1||var(17):= (0) ;default=0

;amount of power to start with (1000 = 1 power bar. set to -1 to keep power values between rounds)
trigger1=1||var(20):= (0) ;default=0

;amount of power to drain when taunting (power you gain is halved, 1000 = 1 power bar)
trigger1=1||var(21):= (1000) ;default=1000

;toggle 1.0 alert message (0=on|1=off)
trigger1=1||var(22):= (0) ;default=0

;tell her to stfu (0=on|1=off)
trigger1=1||var(23):= (1) ;default=1

;toggle AI parrying (0=on|1=off)
trigger1=1||var(24):= (0) ;default=0

;toggle AI grabbing (0=on|1=off)
trigger1=1||var(25):= (0) ;default=0

;toggle AI guard break (0=on|1=off)
trigger1=1||var(26):= (0) ;default=0

;run back or hop back? (0=run back|1=hop back)
trigger1=1||var(31):= (1) ;default=1

;Y position of Origin Mode number display?
trigger1=1||var(506):= (225) ;default=225

;debug mode Origin Mode number display offset amount
trigger1=1||var(507):= (25) ;default=25

;remove Debug Flood?
trigger1=1||var(508):= (1) ;default=1

;toggle old sound effects?
trigger1=1||var(509):= (0) ;default=0 

;Super Dash cooldown amount
trigger1=1||var(510):= (180) ;default=180 (3 seconds. 60 ticks = 1 second)

;Power Cleave cooldown amount
trigger1=1||var(511):= (300) ;default=300 (5 seconds. 60 ticks = 1 second)

;Block Slam cooldown amount
trigger1=1||var(512):= (180) ;default=180 (3 seconds. 60 ticks = 1 second)

;Energy Slice EX cooldown amount
trigger1=1||var(513):= (240) ;default=240 (4 seconds. 60 ticks = 1 second)

;toggle Damage Dampener. might cause some issues with the character (0=off|1=on)
trigger1=1||var(514):= (0) ;default=0

;Dodging power consumption
trigger1=1||var(515):= (250) ;default=250

;Statedef 120 bug for Power Charge? (0=off|1=on|2=statedef 5150)
trigger1=1||var(516):= (1) ;default=1

;Self-damage scaling?
trigger1=1||var(517):= (0) ;default=0

;toggle BG during Strong Specials? (0=off|1=on)
trigger1=1||var(518):= (1) ;default=1

;toggle new hitsparks? (0=off|1=on)
trigger1=1||var(519):= (1) ;default=1

;Origin Mode attack power multiplier amount
trigger1=1||fvar(0):= (1.5) ;default=1.5

;AI level (valid values: 1-8. set to 0 to be MUGEN's Difficulty value)
trigger1=1||var(58):= (8) ;default=8

;do not touch this!!!
triggerall=!ishelper&&roundstate=0
ignorehitpause=1

[State vs. Boss Mode Overrides] ;This activates if Vibri is fighting a boss or a minigame.
type = Null
triggerall=!ishelper
triggerall = var(28)=1
trigger1=1||var(510):=0 ;Super Dash cooldown amount (default 180)
trigger1=1||var(511):=0 ;Power Cleave cooldown amount (default 300)
trigger1=1||var(512):=0 ;Block Slam cooldown amount (default 180)
trigger1=1||var(513):=0 ;Energy Slice EX cooldown amount (default 240)
trigger1=1||var(514):=0 ;Toggle Damage Dampener (default 0)
ignorehitpause = 1

;---------------------------------------------------------------------------
; AI DOCUMENTATION STUFF
; The order AI is supposed to go is usually Supers, Specials, Normals, and Movement (so Kuro, please remember this :3
; This code is partially built off JUS Yagwick, Donald (The Evil Awakens 2) and my older characters AI

;ALSO PLEASE DO NOT MODIFY ANY OF THIS DOWN BELOW (unless if you're making an AI patch)
;---------------------------------------------------------------------------

[State ]
type = null
trigger1=0
[State ====================]
type = null
trigger1=0
[State =====AI START]
type = null
trigger1=0
[State ====================]
type = null
trigger1=0
[State ]
type = null
trigger1=0

[State Ultimate]
type = selfstate
value = 4000
triggerall=var(28)<=0
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype = S
triggerall = p2bodydist x = [-10,120]
triggerall = p2bodydist y = [-120,30]
triggerall = var(1)=1
triggerall = var(5)=0
triggerall = var(3)<=1000
triggerall = enemynear,life <= enemynear,lifemax/3
triggerall = random < (var(59) * (var(59)*12))/4
trigger1 = ctrl
trigger2=var(27)

[State Hyper Art: Soulbuster]
type = selfstate
value = 3030
triggerall=var(28)<=0
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype = S
triggerall = p2statetype != L
triggerall = p2bodydist x = [-10,120]
triggerall = power>=3000
triggerall = random < (var(59) * (var(59)*12))/3
trigger1 = ctrl
trigger2=var(27)

[State Super 3]
type = selfstate
value = 3020
triggerall=var(28)<=0
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype = S
triggerall = p2statetype != L
triggerall = p2bodydist x = [-10,120]
triggerall = p2bodydist y = [-85,65]
triggerall = power>=2000
triggerall = random < (var(59) * (var(59)*12))/2
trigger1 = ctrl
trigger2=var(27)

[State Super 2]
type = selfstate
value = 3010
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype = S
triggerall = p2statetype != L
triggerall = p2bodydist x = [-10,120]
triggerall = power>=1000
triggerall = random < (var(59) * (var(59)*12))/2
trigger1 = ctrl
trigger2=var(27)

[State Dash n' Slash]
type = selfstate
value = 3000
triggerall=var(28)<=0
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype != A
triggerall = p2bodydist x = [-10,120]
triggerall = power>=1000
triggerall = random < (var(59) * (var(59)*12))/2
trigger1 = ctrl
trigger2=var(27)

[State Guard Break]
type = selfstate
value = 360
triggerall=var(28)<=0
triggerall = var(59)>=1
triggerall = var(26)=0 ;GUARD BREAK ON
triggerall = roundstate = 2
triggerall = ctrl && statetype != A
triggerall = p2statetype!=l
triggerall = p2bodydist x = [-10,150]
triggerall=!numhelper(66672)
triggerall = power>=250
triggerall = random < (var(59) * (var(59)*12))*2
trigger1 = ctrl
trigger2=var(27)

[State Taunt]
type = SelfState
value = 198
triggerall = var(59)>=1
triggerall = p2bodydist x > 70
triggerall=!numexplod(66673)
triggerall = random < (var(59) * (var(59)*12))/6
trigger1 = statetype = S
trigger1 = enemynear,statetype = L
trigger1 = ctrl
trigger2 = statetype = S
trigger2 = ctrl

[State Grab]
type = selfstate
value = 350
triggerall=var(28)<=0
triggerall = var(59)>=1
triggerall = var(25)=0 ;GRAB ON
triggerall = roundstate = 2
triggerall = ctrl && statetype != A
triggerall = p2statetype!=l
triggerall = p2bodydist x = [-10,70]
triggerall=!numhelper(66671)
triggerall = power>=150
triggerall = random < (var(59) * (var(59)*12))
trigger1 = ctrl
trigger2=var(27)&&pos y=0

[State Power Cleave]
type = selfstate
value = 1070
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype = A
triggerall = p2bodydist x = [20,240]
triggerall=!numhelper(66673)
triggerall = power>=500
triggerall = random < (var(59) * (var(59)*12))/3
trigger1 = ctrl
trigger2=var(27)

[State Energy Slice EX]
type = selfstate
value = 1060
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype != A
triggerall = p2bodydist x = [-10,240]
triggerall = p2bodydist y = [-130,65]
triggerall=!numhelper(66670)
triggerall = power>=500
triggerall = random < (var(59) * (var(59)*12))/3
trigger1 = ctrl
trigger2=var(27)&&pos y=0
[State Block Slam]
type = selfstate
value = 1050
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype != A
triggerall = p2bodydist x = [-10,120]
triggerall = p2bodydist y = [-110,65]
triggerall=!numhelper(66669)
triggerall = power>=500
triggerall = random < (var(59) * (var(59)*12))/3
trigger1 = ctrl
trigger2=var(27)&&pos y=0

[State The really stupid reversal attack]
type = selfstate
value = 1040
triggerall = var(59)>=1
triggerall = random < (var(59) * (var(59)*12))/2
triggerall = roundstate = 2
triggerall = p2movetype = A ;Enemy is attacking
triggerall = enemynear,movetype = A ;Failsafe?
triggerall = facing=-enemynear,facing ;Am I facing the same direction the enemy is?
triggerall = ctrl ;Can I control myself?
triggerall=statetype=S ;Am I standing?
triggerall = inguarddist ;Am I in guarding distance?
trigger1 = stateno=100 ;So she doesn't get hit while running, since Ctrl is 0 when she is running when AI is active
trigger2 = enemynear,hitdefattr=sca,aa,ap ;Standing Crouching Air, All Attacks, All Projectiles
trigger3 = enemynear,numproj>0 ;Is there a projectile near me? If so, start blocking pls
trigger4 = enemynear,numproj ;Just the same thing above but slightly different. Only here if something goes wrong

[State Energy Slice]
type = selfstate
value = 1030
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl ;&& statetype != A
triggerall = p2bodydist x >= 20
triggerall = p2bodydist y = [-95,95]
triggerall=numhelper(1031)=0 ;This is so she doesn't spam it as much
triggerall = random < (var(59) * (var(59)*12))/3
trigger1 = ctrl
trigger2=var(27)

[State Sword Spin]
type = selfstate
value = 1020
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype != A
triggerall = p2statetype!=l
triggerall = p2bodydist x = [-10,50]
triggerall = random < (var(59) * (var(59)*12))/3
trigger1 = ctrl
trigger2=var(27)&&pos y=0

[State Special 2]
type = selfstate
value = 1010
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype != A
triggerall = p2statetype!=l
triggerall = p2bodydist x = [-10,70]
triggerall = random < (var(59) * (var(59)*12))/2
trigger1 = ctrl
trigger2=var(27)&&pos y=0

[State Spike Throw]
type = selfstate
value = 1000
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype != A
triggerall = p2statetype!=l
triggerall = p2bodydist x = [20,120]
triggerall=numhelper(1001)=0
triggerall = random < (var(59) * (var(59)*12))/2
trigger1 = ctrl
trigger2=var(27)&&pos y=0

[State Attempt to parry the attacks pls (AI) ]
type = hitoverride
triggerall = var(59)>=1
triggerall = var(24)=0 ;PARRY ON
triggerall=stateno!=[195,198]
triggerall = random < (var(59) * (var(59)*12))
triggerall = power>=250
triggerall = roundstate = 2
trigger1 = movetype!=A
trigger1 = movetype!=H
stateno = 311
attr = SCA,NA,SA,HA,NP,SP,HP,NT,ST,HT
time = 2

[State Dodge the attacks pls (AI) ]
type = selfstate
value = ifelse(random%2=1,300,ifelse(random%2=1,301,302))
triggerall = var(59)>=1
triggerall = random < (var(59) * (var(59)*12))/2
triggerall = power>=var(515)
triggerall = roundstate = 2
triggerall = ctrl && statetype = S ;Can I control myself, and am I standing?
triggerall = p2movetype = A ;Enemy is attacking
triggerall = p2bodydist x = [-5,100]
trigger1 = enemynear,hitdefattr=sca,aa,ap,at ;Standing Crouching Air, All Attacks, All Projectiles, All Throws
trigger2 = enemynear,numproj>0 ;Is there a projectile near me? If so, start blocking pls
trigger3 = enemynear,numproj ;Just the same thing above but slightly different. Only here if something goes wrong

[State Don't guard pls (AI) ]
type = AssertSpecial
trigger1 = var(59)>=1
flag = nostandguard
flag2= nocrouchguard
flag3 = noairguard
ignorehitpause = 1

[State Guard]
type = SelfState
value = 120
triggerall = var(59)
triggerall = StateNo!=[120,155]
triggerall = Ctrl||stateno=10100
trigger1 = inguarddist

[State Super Dash]
type = selfstate
value = 800
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype != C
triggerall = p2bodydist x >=20
triggerall=!numhelper(66668)
triggerall = power>=500
triggerall = random < (var(59) * (var(59)*12))/2
trigger1 = ctrl
trigger2=var(27)

[State Combo Breaker]
type = SelfState
value = 750
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = statetype != C
triggerall = var(1)=1
triggerall = var(5)=0
triggerall = var(3)<=1000
triggerall=!numhelper(66667)
triggerall = random < (var(59) * (var(59)*12))
trigger1 = movetype = H

[State Cool fucking spin move]
type = selfstate
value = 630
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype = A
triggerall = p2bodydist x = [-10,90]
triggerall = p2bodydist y = [-90,110]
triggerall=stateno!=630
triggerall = random < (var(59) * (var(59)*12))
trigger1 = ctrl
trigger2=stateno=[600,622]
trigger2=movecontact

[State Air Z]
type = selfstate
value = 620
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype = A
triggerall=var(32)<1
triggerall = p2bodydist x = [-10,60]
triggerall = p2bodydist y = [-45,110]
triggerall = prevstateno!=620
triggerall = random < (var(59) * (var(59)*12))
trigger1 = ctrl
trigger2=stateno=420&&movecontact

[State Air Y]
type = selfstate
value = 610
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = stateno!=630
triggerall = ctrl && statetype = A
triggerall = p2bodydist x = [-10,50]
triggerall = random < (var(59) * (var(59)*12))
trigger1 = ctrl
trigger2=stateno=420&&movecontact

[State Air X]
type = selfstate
value = 600
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = stateno!=630
triggerall = ctrl && statetype = A
triggerall = p2bodydist x = [-10,50]
triggerall = random < (var(59) * (var(59)*12))
trigger1 = ctrl
trigger2=stateno=420&&movecontact

[State Crouch Z]
type = selfstate
value = 420
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype = S
;triggerall = p2statetype!=l
triggerall = p2bodydist x = [-10,50]
triggerall = p2bodydist y = [-120,30]
triggerall = random < (var(59) * (var(59)*12))
trigger1 = ctrl
trigger2=var(27)&&(pos y=[-1,1])

[State Crouch Y]
type = selfstate
value = 410
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype = S
triggerall = p2statetype=l
triggerall = p2bodydist x = [-10,50]
triggerall = random < (var(59) * (var(59)*12))
trigger1 = ctrl

[State Z]
type = selfstate
value = 220
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype = S
triggerall = p2statetype!=l
triggerall = p2bodydist x = [-10,70]
triggerall = random < (var(59) * (var(59)*12))
trigger1 = ctrl

[State Y]
type = selfstate
value = 210
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype = S
triggerall = p2statetype!=l
triggerall = p2bodydist x = [-10,40]
triggerall = random < (var(59) * (var(59)*12))
trigger1 = ctrl

[State X]
type = selfstate
value = 200
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype = S
triggerall = p2statetype!=l
triggerall = p2bodydist x = [-10,40]
triggerall = random < (var(59) * (var(59)*12))
trigger1 = ctrl

[State Charge] ;Regular options
type = SelfState
value = 195
triggerall = var(59)>=1
triggerall = var(1)=0
triggerall = var(5)=0
triggerall = var(3)<1000 ;Origin power
triggerall = p2bodydist x > 100
triggerall=enemy,alive ;This is so she doesn't charge when the enemy is dead
triggerall = random < (var(59) * (var(59)*12))/4
trigger1 = statetype != A
trigger1 = ctrl
trigger2 = statetype = S
trigger2 = enemynear,statetype = L
trigger2 = ctrl
[State Charge] ;Origin Mode is enabled
type = SelfState
value = 195
triggerall = var(59)>=1
triggerall = var(1)=1
triggerall = power<powermax
triggerall = p2bodydist x > 100
triggerall=enemy,alive ;This is so she doesn't charge when the enemy is dead
triggerall = random < (var(59) * (var(59)*12))/4
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = statetype = S
trigger2 = enemynear,statetype = L
trigger2 = ctrl
[State Charge] ;Origin Mode is enabled
type = SelfState
value = 195
triggerall = var(59)>=1
triggerall = var(1)=1
triggerall = power<powermax&&var(3)>=1000
triggerall = p2bodydist x > 100
triggerall=enemy,alive ;This is so she doesn't charge when the enemy is dead
triggerall = random < (var(59) * (var(59)*12))/4
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = statetype = S
trigger2 = enemynear,statetype = L
trigger2 = ctrl
[State Charge]
type = SelfState
value = 195
triggerall = var(59)>=1
triggerall = var(1)=0
triggerall = var(5)=1
triggerall = power<powermax
triggerall = p2bodydist x > 100
triggerall=enemy,alive ;This is so she doesn't charge when the enemy is dead
triggerall = random < (var(59) * (var(59)*12))/4
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = statetype = S
trigger2 = enemynear,statetype = L
trigger2 = ctrl

[State Block the attacks pls (AI) ]
type = null;selfstate
value = 120
triggerall = var(59)>=1
;triggerall = random < (var(59) * (var(59)*12))
triggerall = roundstate = 2
triggerall = p2movetype = A ;Enemy is attacking
triggerall = enemynear,movetype = A ;Failsafe?
triggerall = facing=-enemynear,facing ;Am I facing the same direction the enemy is?
triggerall = ctrl ;Can I control myself?
triggerall = inguarddist ;Am I in guarding distance?
trigger1 = stateno=10100 ;So she doesn't get hit while running, since Ctrl is 0 when she is running when AI is active
trigger2 = enemynear,hitdefattr=sca,aa,ap,at ;Standing Crouching Air, All Attacks, All Projectiles, All Throws
trigger3 = enemynear,numproj>0 ;Is there a projectile near me? If so, start blocking pls
trigger4 = enemynear,numproj ;Just the same thing above but slightly different. Only here if something goes wrong

[State Run or walk to the enemy (AI)]
type = selfstate
value = 10100
triggerall = var(59)>=1
triggerall = roundstate = 2
triggerall = ctrl && statetype = S
triggerall = p2bodydist x = [19,500] ;this is just a direct copypaste from yagjus lmfao
triggerall=random < (var(59) * (var(59)*12))/2
trigger1 = ctrl