
;===========================================================================
; JALAPENO - BOSS / VERY HARD AI
; Integrated into states.cns [Statedef -3].
; Active only when M.U.G.E.N controls the character (AILevel > 0).
; Designed for AILevel 8: aggressive pressure, anti-air choices, punishes,
; meter management, throws, rushdown and defensive reactions.
;===========================================================================

;---------------------------- DEFENSE / REACTION ---------------------------
[State -3, Boss Guard High]
type = ChangeState
value = 120
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = P2MoveType = A
triggerall = P2StateType != A
triggerall = abs(P2BodyDist X) < 120
triggerall = Random < (260 + AILevel * 45)
trigger1 = StateType = S

[State -3, Boss Guard Low]
type = ChangeState
value = 131
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = P2MoveType = A
triggerall = P2StateType = C
triggerall = abs(P2BodyDist X) < 115
triggerall = Random < (220 + AILevel * 45)
trigger1 = StateType = S

;---------------------------- PUNISHING ------------------------------------
; Hit the opponent immediately after their attack leaves them vulnerable.
[State -3, Boss Punish Close]
type = ChangeState
value = 210
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = P2MoveType = H
triggerall = abs(P2BodyDist X) < 110
triggerall = Random < (500 + AILevel * 45)
trigger1 = 1

[State -3, Boss Punish Mid]
type = ChangeState
value = 1000
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = P2MoveType = H
triggerall = abs(P2BodyDist X) >= 80
triggerall = abs(P2BodyDist X) < 190
triggerall = Power >= 500
triggerall = Random < (380 + AILevel * 40)
trigger1 = 1

;---------------------------- SUPERS ---------------------------------------
[State -3, Boss Fire Mayhem]
type = ChangeState
value = 4750
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = Power >= 2500
triggerall = FVar(32) = 1.0
triggerall = abs(P2BodyDist X) < 330
triggerall = (P2MoveType = H || P2StateType = A || Life < 350)
triggerall = Random < (170 + AILevel * 22)
trigger1 = 1

[State -3, Boss Flame Burst]
type = ChangeState
value = 2000
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = Power >= 1000
triggerall = abs(P2BodyDist X) < 205
triggerall = Random < (250 + AILevel * 28)
trigger1 = 1

[State -3, Boss Blue Cloud]
type = ChangeState
value = 3000
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = Power >= 1500
triggerall = abs(P2BodyDist X) > 100
triggerall = abs(P2BodyDist X) < 430
triggerall = Random < (190 + AILevel * 25)
trigger1 = 1

;---------------------------- SPECIALS -------------------------------------
[State -3, Boss Spikes EX]
type = ChangeState
value = 920
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = Power >= 250
triggerall = abs(P2BodyDist X) > 75
triggerall = abs(P2BodyDist X) < 390
triggerall = Random < (260 + AILevel * 30)
trigger1 = 1

[State -3, Boss Spikes Close]
type = ChangeState
value = 900
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = FVar(32) = 1.0
triggerall = abs(P2BodyDist X) < 165
triggerall = Random < (300 + AILevel * 30)
trigger1 = 1

[State -3, Boss Spikes Far]
type = ChangeState
value = 910
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = FVar(32) = 1.0
triggerall = abs(P2BodyDist X) >= 165
triggerall = abs(P2BodyDist X) < 430
triggerall = Random < (230 + AILevel * 28)
trigger1 = 1

[State -3, Boss Tentacle]
type = ChangeState
value = 1000
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = Power >= 500
triggerall = abs(P2BodyDist X) < 205
triggerall = Random < (250 + AILevel * 28)
trigger1 = 1

[State -3, Boss Sweep]
type = ChangeState
value = 1200
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = abs(P2BodyDist X) < 145
triggerall = Random < (300 + AILevel * 30)
trigger1 = 1

[State -3, Boss Slam]
type = ChangeState
value = 1300
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = abs(P2BodyDist X) < 115
triggerall = P2StateType = S
triggerall = P2MoveType != H
triggerall = Random < (260 + AILevel * 30)
trigger1 = 1

[State -3, Boss Squeeze]
type = ChangeState
value = 1100
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = abs(P2BodyDist X) < 110
triggerall = Random < (260 + AILevel * 28)
trigger1 = 1

;---------------------------- THROW / CLOSE PRESSURE -----------------------
[State -3, Boss Throw]
type = ChangeState
value = 800
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = abs(P2BodyDist X) < 24
triggerall = P2StateType = S
triggerall = P2MoveType != H
triggerall = Random < (450 + AILevel * 40)
trigger1 = 1

[State -3, Boss Standing MP]
type = ChangeState
value = 210
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = abs(P2BodyDist X) < 78
triggerall = Random < (430 + AILevel * 35)
trigger1 = 1

[State -3, Boss Standing MK]
type = ChangeState
value = 240
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = abs(P2BodyDist X) < 105
triggerall = Random < (400 + AILevel * 35)
trigger1 = 1

[State -3, Boss Crouch MP]
type = ChangeState
value = 410
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = C
triggerall = abs(P2BodyDist X) < 85
triggerall = Random < (410 + AILevel * 35)
trigger1 = 1

[State -3, Boss Crouch MK]
type = ChangeState
value = 440
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = C
triggerall = abs(P2BodyDist X) < 105
triggerall = Random < (410 + AILevel * 35)
trigger1 = 1

;---------------------------- ANTI-AIR / AIR GAME --------------------------
[State -3, Boss AntiAir]
type = ChangeState
value = 210
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = P2StateType = A
triggerall = abs(P2BodyDist X) < 100
triggerall = P2BodyDist Y > -160
triggerall = Random < (500 + AILevel * 40)
trigger1 = 1

[State -3, Boss Air Boomerang]
type = ChangeState
value = 700
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = A
triggerall = abs(P2BodyDist X) < 220
triggerall = Random < (350 + AILevel * 30)
trigger1 = 1

[State -3, Boss Air Drill]
type = ChangeState
value = 730
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = A
triggerall = abs(P2BodyDist X) < 140
triggerall = P2StateType != A
triggerall = Random < (320 + AILevel * 30)
trigger1 = 1

;---------------------------- MOVEMENT / RUSHDOWN --------------------------
[State -3, Boss Run]
type = ChangeState
value = 100
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = abs(P2BodyDist X) > 100
triggerall = abs(P2BodyDist X) < 520
triggerall = Random < (520 + AILevel * 35)
trigger1 = 1

[State -3, Boss Jump In]
type = ChangeState
value = 40
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = abs(P2BodyDist X) > 135
triggerall = abs(P2BodyDist X) < 310
triggerall = P2StateType = S
triggerall = Random < (170 + AILevel * 18)
trigger1 = 1

;---------------------------- SURVIVAL ------------------------------------
[State -3, Boss Heal]
type = ChangeState
value = 1500
triggerall = AILevel > 0
triggerall = Ctrl
triggerall = StateType = S
triggerall = Life < 500
triggerall = abs(P2BodyDist X) > 190
triggerall = Random < (90 + AILevel * 12)
trigger1 = 1
