; KFM's constants and state file.
; There are comments scattered through this file, so you may like to
; take a look if would like to learn more about the cns.

; これはKFMの定数と状態のファイルです。
; このファイルの中には注釈が散らされているので、CNSを習いたいお方は
; 読んでみたらいいです。

[Data]
;Amount of life to start with
;体力ゲージの初期値
life = 1000
;Amount of power stocks to have (divided by 1000). Defaults to 3000
power = 3000
;attack power (more is stronger)
;攻撃ダメージ
attack = 100
;defensive power (more is stronger)
;体力パワー
defence = 100
;Percentage to increase defense everytime player is knocked down
fall.defence_up = 50
;Time which player lies down for, before getting up
liedown.time = 60
;Number of points for juggling
airjuggle = 15
;Default hit spark number for HitDefs
sparkno = 2
;Default guard spark number
guard.sparkno = 40
;1 to enable echo on KO
KO.echo = 0
;Volume offset (negative for softer)
volume = 0
;Variables with this index and above will not have their values
;reset to 0 between rounds or matches. There are 60 int variables,
;indexed from 0 to 59, and 40 float variables, indexed from 0 to 39.
;If omitted, then it defaults to 60 and 40 for integer and float
;variables repectively, meaning that none are persistent, i.e. all
;are reset. If you want your variables to persist between matches,
;you need to override state 5900 from common1.cns.
IntPersistIndex = 60
FloatPersistIndex = 40

[Size]
xscale = 1           ;Horizontal scaling factor.
yscale = 1           ;Vertical scaling factor.
ground.back = 15     ;Player width (back, ground)
ground.front = 16    ;Player width (front, ground)
air.back = 12        ;Player width (back, air)
air.front = 12       ;Player width (front, air)
height = 60          ;Height of player (for opponent to jump over)
attack.dist = 160    ;Default attack distance
proj.attack.dist = 90 ;Default attack distance for projectiles
proj.doscale = 0     ;Set to 1 to scale projectiles too
head.pos = -5, -90   ;Approximate position of head
mid.pos = -5, -60    ;Approximate position of midsection
shadowoffset = 0     ;Number of pixels to vertically offset the shadow
draw.offset = 0,0    ;Player drawing offset in pixels (x, y)

[Velocity]
walk.fwd  = 2.4      ;Walk forward
walk.back = -2.2     ;Walk backward
run.fwd  = 4.6, 0    ;Run forward (x, y)
run.back = -4.5,-3.8 ;Hop backward (x, y)
jump.neu = 0,-8.4    ;Neutral jumping velocity (x, y)
jump.back = -2.55    ;Jump back Speed (x, y)
jump.fwd = 2.5       ;Jump forward Speed (x, y)
runjump.back = -2.55,-8.1 ;Running jump speeds (opt)
runjump.fwd = 4,-8.1      ;.
airjump.neu = 0,-8.1      ;.
airjump.back = -2.55      ;Air jump speeds (opt)
airjump.fwd = 2.5         ;.

[Movement]
airjump.num = 1      ;Number of air jumps allowed (opt)
airjump.height = 35  ;Minimum distance from ground before you can air jump (opt)
yaccel = .44         ;Vertical acceleration
stand.friction = .85  ;Friction coefficient when standing
crouch.friction = .82 ;Friction coefficient when crouching

;---------------------------------------------------------------------------
; Variable usage:
; This is a record of the variables that KFM uses. Keeping a record of your
; variable usage helps you avoid careless mistakes later.
; var(1)  - Used in kfm.cmd for combo condition (updated every tick)
; var(2)  - Used in Kung Fu Throw (state 800) to remember if fwd was being
;           held (remembered from state 800 through state 810).

[Command]
name = "a"
command = a

[statedef -1]

[state -1]
type = changestate
value = 5900
triggerall = roundstate = 0
trigger1 = 1

;---------------------------------------------------------------------------
; Initialize (at the start of the round)
[Statedef 5900]
type = U
movetype = U
physics = N
ctrl = 0
movehitpersist = 1
hitdefpersist = 1

[State ]
type = Changestate
trigger1 = name!="AtemiMashiro"
value = ifelse(ishelper,1000045,1000043)
ignorehitpause = 1

[State 5900, 1] ;Clear all int variables
type = VarRangeSet
trigger1 = !ishelper
trigger1 = roundno = 2
value = 0

[State 5900, 2] ;Clear all float variables
type = VarRangeSet
trigger1 = !ishelper
trigger1 = roundno = 2
fvalue = 0

[State 5900, 3] ;Intro for round 1
type = SelfState
trigger1 = !ishelper
trigger1 = !(var(22)=52 || var(22)=64 || var(22)=67 || var(22)=75)
value = ifelse(!!var(22), 1145140 + var(22), 999997)
ignorehitpause = 1

[state -2]
type = SelfState
triggerall = !ishelper
triggerall = var(22) = 52
trigger1 = 1
value = 35
ignorehitpause = 1

[state -2]
type = SelfState
triggerall = !ishelper
triggerall = var(22) = 64
trigger1 = 1
value = 19
ignorehitpause = 1

[state -2]
type = SelfState
triggerall = !ishelper
triggerall = var(22) = 67
trigger1 = 1
value = 200
ignorehitpause = 1

[state -2]
type = SelfState
triggerall = !ishelper
triggerall = var(22) = 75
trigger1 = 1
value = 18888
ignorehitpause = 1

;[statedef 5150]
;type = U
;movetype = U
;physics = U
;hitdefpersist = 1
;movehitpersist = 1

;[state ]
;type = ChangeAnim
;triggerall = !ishelper||ishelper
;trigger1 = anim != 8888
;value = 8888
;ignorehitpause = 1

;[State ]
;type = PosSet
;trigger1 = ishelper(1000)
;x = helper(120),pos x
;y = helper(120),pos y
;ignorehitpause = 1

;[state ]
;type = selfstate
;triggerall = ishelper(500)
;trigger1 = 
;trigger1 = (roundstate != [2,3])||(root,var(4) >= 17000)
;value = 500
;persistent = 256
;ignorehitpause = 1

[statedef 999997]
type = S
movetype = i
physics = N
ctrl = 0

[state ]
type = changeAnim
trigger1 = !ishelper
trigger1 = anim != 10010
value = 10010
ignorehitpause = 1

[State ]
type = VelSet
trigger1 =!ishelper
x = 99
y = 99
ignorehitpause =1

[State ]
type = Screenbound
trigger1 = !ishelper
value = 0
ignorehitpause = 1

[State ];特殊断言
type = Assertspecial
trigger1 = !ishelper
flag = invisible;不可见
flag2 = noshadow;无影子
ignorehitpause = 1

[statedef 999999]
type = S
movetype = A
physics = N
ctrl = 0

[state ]
type = changeAnim
trigger1 = !ishelper
trigger1 = anim != 10010
value = 10010
ignorehitpause = 1

[State ]
type = VelSet
trigger1 =!ishelper
x = 99
y = 99
ignorehitpause =1

[State ]
type = Screenbound
trigger1 = !ishelper
value = 0
ignorehitpause = 1

[state ];狀態改變
type = StateTypeSet
trigger1 = !ishelper
trigger1 = var(4) = [1,9499]
MoveType = i
IgnoreHitPause = 1

[state ];狀態改變
type = StateTypeSet
trigger1 = !ishelper
trigger1 = var(4) > 9499
MoveType = A
IgnoreHitPause = 1

[State ];特殊断言
type = Assertspecial
trigger1 = !ishelper
flag = invisible;不可见
flag2 = noshadow;无影子
ignorehitpause = 1

[state ]
type = HitDef
trigger1 = !ishelper && !winko && roundstate < 3
trigger1 = var(4) = [0,16999]
attr = sca,aa,at,ap
;hitflag = MAF
guardflag =
damage = 0,0
pausetime = 100,ifelse(roundstate < 2,30,0)
ignorehitpause = 1

[state ]
type = HitDef
trigger1 = !ishelper && !winko && roundstate < 3
trigger1 = var(4) > 16999
trigger1 = var(2) < 21000
attr = sca,aa,at,ap
hitflag = MAF
guardflag =
ground.type = none
damage = 0,0
pausetime = 100,ifelse(roundstate < 2,30,0)
ignorehitpause = 1

[state ]
type = Changestate
trigger1 =!ishelper
trigger1 = var(2) >= 12500
trigger1 = palno< 13
trigger1 = hitpausetime > 1
value = 10000002
ignorehitpause = 1

[state ]
type = Changestate
trigger1 =!ishelper
trigger1 = var(2) >= 12500
trigger1 = alive!= -1
trigger1 = hitpausetime > 1
value = 10000000
ignorehitpause = 1

[statedef 999998]
type = S
movetype = A
physics = N
ctrl = 0

[state ]
type = changeAnim
trigger1 = !ishelper
trigger1 = anim != 10010
value = 10010
ignorehitpause = 1

[State ]
type = VelSet
trigger1 =!ishelper
x = 99
y = 99
ignorehitpause =1

[State ]
type = Screenbound
trigger1 = !ishelper
value = 0
ignorehitpause = 1

[state ];狀態改變
type = StateTypeSet
trigger1 = !ishelper
trigger1 = var(4) = [1,9499]
MoveType = i
IgnoreHitPause = 1

[state ];狀態改變
type = StateTypeSet
trigger1 = !ishelper
trigger1 = var(4) > 9499
MoveType = A
IgnoreHitPause = 1

[State ];特殊断言
type = Assertspecial
trigger1 = !ishelper
flag = invisible;不可见
flag2 = noshadow;无影子
ignorehitpause = 1

[state ]
type = HitDef
trigger1 = !ishelper && !winko && roundstate < 3
trigger1 = var(4) = [0,16999]
attr = sca,aa,at,ap
;hitflag = MAF
guardflag =
damage = 0,0
pausetime = 100,ifelse(roundstate < 2,30,0)
ignorehitpause = 1

[state ]
type = HitDef
trigger1 = !ishelper && !winko && roundstate < 3
trigger1 = var(4) > 16999
trigger1 = var(2) < 21000
attr = sca,aa,at,ap
hitflag = MAF
guardflag =
ground.type = none
damage = 0,0
pausetime = 100,ifelse(roundstate < 2,30,0)
ignorehitpause = 1

[statedef 514]
type = U    ;Leave state type unchanged
physics = N ;Leave physics unchanged
movetype = U
ctrl = 0
movehitpersist = 1
hitdefpersist = 1

[State ]
type = Changestate
trigger1 = name!="AtemiMashiro"
value = ifelse(ishelper,1000045,1000043)
ignorehitpause = 1

[State 120, 1]
type = ChangeAnim
triggerall = ishelper(120)
triggerall = roundstate <= 1
trigger1 = anim != 190
value = 190
ignorehitpause = 1

[State 120]
type = Posset
trigger1 = ishelper(120)
x = -100 + 200*(teamside - 1)
y = 0
ignorehitpause =1

[State 120, 1]
type = ChangeAnim
triggerall = ishelper(120)
triggerall = roundstate = [2,3]
triggerall = root,var(0) = 1
trigger1 = anim != 4300
value = 4300
ignorehitpause = 1

[State 120, 1]
type = ChangeAnim
triggerall = ishelper(120)
triggerall = roundstate = [2,3]
triggerall = root,var(0) != 1
trigger1 = anim != 0
value = 0
ignorehitpause = 1

[State 120, 1]
type = ChangeAnim
triggerall = ishelper(120)
triggerall = roundstate >= 4
trigger1 = win
trigger1 = anim != 185
value = 185
ignorehitpause = 1

[State 120, 1]
type = ChangeAnim
triggerall = ishelper(120)
triggerall = roundstate >= 4
trigger1 = lose || drawgame
trigger1 = anim != 198
value = 198
ignorehitpause = 1

[State 10000, Explod]
type = Explod
triggerall = ishelper(120)
triggerall = root,var(0) = 1
triggerall = anim = 4300
trigger1 = roundstate = [2,3]
trigger1 = !numexplod(214)
ID = 214
anim = 4973
pos = 0,0
postype = back
facing = 1
vfacing = 1
bindtime = -1
removetime = -2
supermove = 1
sprpriority = 9
ignorehitpause = 1

[state 500]
type = PlaySnd
triggerall = ishelper(120)
trigger1 = anim = 4300 && animelemtime(1) = 1
value = 1,2
channel = -1
ignorehitpause = 1

[state 500]
type = PlaySnd
triggerall = ishelper(120)
trigger1 = anim = 190 && animelemtime(1) = 0
value = 1,12
channel = -1
ignorehitpause = 1

[statedef 500]
type = U    
physics = U
movetype = U
ctrl = 0
movehitpersist = 1
hitdefpersist = 1

[State ]
type = Changestate
trigger1 = name!="AtemiMashiro"
value = ifelse(ishelper,1000045,1000043)
ignorehitpause = 1

[state 500]
type = ChangeAnim
triggerall = ishelper(500)
;trigger1 = (roundstate != [2,3]) || root,var(4) >= 11000
trigger1 = anim != 10020
value = 10020
ignorehitpause = 1

[State ];動畫鎖定
type = Changeanim
triggerall = 0
triggerall = ishelper(500)
trigger1 = roundstate = [2,3]
trigger1 = root,var(4) = [0,10999]
trigger1 = anim!= 8888
value = 8888
ignorehitpause = 1

[state ];狀態改變
type = StateTypeSet
trigger1 = ishelper(500)
;trigger1 = (roundstate != [2,3]) || root,var(4) >= 11000
MoveType = A;攻擊
IgnoreHitPause = 1

[state ];狀態改變
type = StateTypeSet
triggerall = 0
trigger1 = ishelper(500)
trigger1 = (roundstate = [2,3]) && (root,var(4) = [0,10999])
MoveType = I
IgnoreHitPause = 1

[State ];不可控
type = Ctrlset
trigger1 = ishelper(500)
value = 0
ignorehitpause = 1

[State ];保持在画面内
type = Screenbound
trigger1 = ishelper(500)
value = 0
ignorehitpause = 1

[State ];特殊断言
type = Assertspecial
trigger1 = ishelper(500)
flag = invisible;不可见
flag2 = noshadow;无影子
ignorehitpause = 1

[State ]
type = PosSet
trigger1 = ishelper(500)
x = helper(120),pos x
y = helper(120),pos y
ignorehitpause = 1

[State ];不会被推挤
type = Playerpush
trigger1 = ishelper(500)
value = 0
ignorehitpause = 1

[State 0, VarSet]
type = VarSet
triggerall = ishelper(500)
trigger1 = numtarget
trigger1 = !target,ishelper
trigger1 = target,teamside != teamside
sysvar(1) = target,life
ignorehitpause = 1

[State ]
type = Reversaldef
triggerall = ishelper(500)
trigger1 = roundstate = 1
trigger2 = roundstate = [2,3]
trigger2 = (root,var(2) = [0,20999]) || (root,var(2) >= 39000)
reversal.attr = SCA, AA, AT, AP;全属性当身
pausetime = 0,20
fall.damage = ifelse(random%2=0,99999999999999999999,-99999999999)
fall = 1
fall.recover = 0
sparkno = -1
hitsound = -1
ignorehitpause = 1

[State 500]
type = LifeSet
trigger1 = IsHelper(500)
value = LifeMax
ignorehitpause = 1

[state 500]
type = VarSet
triggerall = ishelper(500)
trigger1 = numtarget
trigger1 = !target,ishelper
trigger1 = target,teamside != teamside
trigger1 = target,stateno = [1,10000]
var(1) = target,stateno
ignorehitpause = 1

[state ]
type = TargetDrop
;triggerall = 0
triggerall = ishelper(500)
triggerall = roundstate = [2,3]
trigger1 = target,ishelper
trigger1 = root,var(2) >= 21000
excludeid = enemy,id
ignorehitpause = 1

[state 500]
type = TargetLifeAdd
triggerall = ishelper(500)
triggerall = roundstate = [2,3]
trigger1 = numtarget
trigger1 = !target,ishelper
value = -2147483647
ignorehitpause = 1

[state 500]
type = TargetVelAdd
triggerall = ishelper(500)
triggerall = roundstate < 2
trigger1 = numtarget = 1
trigger1 = !target,ishelper
trigger1 = target,teamside != teamside
x = 21474836479
y = 21474836479
ignorehitpause = 1 

[state 500]
type = TargetVelSet
triggerall = ishelper(500)
triggerall = roundstate = 2
triggerall = target,stateno = 5100
triggerall = target,sysvar(1) + sysvar(1) = target,lifemax
trigger1 = numtarget
trigger1 = !target,ishelper
trigger1 = target,teamside != teamside
y = 0
x = 0
ignorehitpause = 1 

[state 500]
type = TargetVelAdd
triggerall = ishelper(500)
triggerall = roundstate = 2
triggerall = target,stateno = 5100
triggerall = target,sysvar(1) + sysvar(1) = target,lifemax
trigger1 = numtarget
trigger1 = !target,ishelper
trigger1 = target,teamside != teamside
y = target,lifemax + 1
ignorehitpause = 1 

[state 500]
type = TargetState
triggerall = ishelper(500)
triggerall = roundstate = [2,3]
triggerall = root,var(2) = [0,18899]
trigger1 = numtarget
trigger1 = !target,ishelper
trigger1 = target,hitpausetime>0
value = ifelse((!!var(1)),var(1),1000043)
ignorehitpause = 1

[state 500]
type = TargetState
triggerall = ishelper(500)
triggerall = roundstate = [2,3]
triggerall = root,var(2) = [18900,20999]
trigger1 = numtarget
trigger1 = !target,ishelper
trigger1 = target,hitpausetime>0
value = ifelse((gametime%60=[0,29]),5900,5150)
ignorehitpause = 1

[state 500]
type = TargetState
triggerall = ishelper(500)
triggerall = roundstate = [2,3]
triggerall = root,var(2) = [1,20999]
trigger1 = numtarget
trigger1 = target,ishelper
value = 1000045
ignorehitpause = 1

[State , 非凍結!time貫通當身]
type = reversaldef
triggerall = ishelper(500)
triggerall = roundstate = [2,3]
triggerall = root,var(4) >= 17000
triggerall = root,var(2) = [0,20999]
trigger1 = numtarget
trigger1 = !target,ishelper
reversal.attr = SCA,AA,AT,AP;全屬性當身
pausetime = 0,0
sparkno   = -1
hitsound = -1
numhits = 0
p2stateno = -1;重要
P2GetP1State = 1;重要，!time貫通不是state返所以不能為0
ignorehitpause = 1

[State , 当身state返]
type = Reversaldef
triggerall = ishelper(500)
;triggerall = numtarget
;triggerall = !target,ishelper
trigger1 = roundstate = [2,3]
trigger1 = root,var(2) = [21000,22999]
;trigger1 = root,var(2)%1000 = [0,99]
reversal.attr = SCA, AA, AT, AP;全属性当身
pausetime = 0,0
p2stateno = ifelse(random %2,5100+10*random%2,ifelse(random%2 , 5070+random%2 , 5080+random%2))
fall = 1
fall.damage = ifelse((root,gametime%60=[0,29]), enemy,lifemax, 2147483647)
fall.recover = 0
p2getp1state = 0;重要，返回敌方自己的state
sparkno = -1
hitsound = -1
ignorehitpause = 1

[State , 当身state返]
type = Reversaldef
triggerall = ishelper(500)
;triggerall = numtarget
;triggerall = !target,ishelper
trigger1 = roundstate = [2,3]
trigger1 = root,var(2) = [23000,25999]
;trigger1 = root,var(2)%1000 = [100,299]
reversal.attr = SCA, AA, AT, AP;全属性当身
pausetime = 0,0
p2stateno = ifelse(gametime%2,ifelse(random%2,random*99999,139),150)
p2getp1state = 0;重要，返回敌方自己的state
sparkno = -1
hitsound = -1
ignorehitpause = 1

[State , 当身state返]
type = Reversaldef
triggerall = ishelper(500)
;triggerall = numtarget
;triggerall = !target,ishelper
trigger1 = roundstate = [2,3]
trigger1 = root,var(2) = [26000,28999]
;trigger1 = root,var(2)%1000 = [300,499]
reversal.attr = SCA, AA, AT, AP;全属性当身
pausetime = 0,0
p2stateno = ifelse(random%2,ifelse(random%2,ifelse(gametime%2,132,155),5080),ifelse(random%2,40+(random%3)*5,51+random%2))
p2getp1state = 0;重要，返回敌方自己的state
sparkno = -1
hitsound = -1
ignorehitpause = 1

[State , 当身state返]
type = Reversaldef
triggerall = ishelper(500)
;triggerall = numtarget
;triggerall = !target,ishelper
trigger1 = roundstate = [2,3]
trigger1 = root,var(2) = [29000,30999]
;trigger1 = root,var(2)%1000 = [500,699]
reversal.attr = SCA, AA, AT, AP;全属性当身
pausetime = 0,0
p2stateno = ifelse(random%2,110+(random%2)*5,ifelse(random%2,6266,ifelse(random%2,1028,5210)))
p2getp1state = 0;重要，返回敌方自己的state
sparkno = -1
hitsound = -1
ignorehitpause = 1

[State , 当身state返]
type = Reversaldef
triggerall = ishelper(500)
;triggerall = numtarget
;triggerall = !target,ishelper
trigger1 = roundstate = [2,3]
trigger1 = root,var(2) = [31000,33999]
;trigger1 = root,var(2)%1000 = [700,799]
reversal.attr = SCA, AA, AT, AP;全属性当身
pausetime = 0,0
p2stateno = 5900
p2getp1state = 0;重要，返回敌方自己的state
sparkno = -1
hitsound = -1
ignorehitpause = 1

[State , 当身state返]
type = Reversaldef
triggerall = ishelper(500)
trigger1 = roundstate = [2,3]
trigger1 = root,var(2) = [34000,35999]
;trigger1 = root,var(2)%1000 = [800,899]
reversal.attr = SCA, AA, AT, AP;全属性当身
pausetime = 0,ifelse((root,gametime%60=[0,29]), 3, 20)
p2stateno =ifelse((playerid(root,fvar(0)),var(0)>-1), playerid(root,fvar(0)),var(0+Random%(playerID(ceil(root,fvar(0))),var(12))), 1000043+random%2)
p2getp1state = 0;重要，返回敌方自己的state
sparkno = -1
hitsound = -1
ignorehitpause = 1

[State , 当身state返]
type = Reversaldef
triggerall = ishelper(500)
triggerall = playerid(root,fvar(0)),var(5)>-1
trigger1 = roundstate = [2,3]
trigger1 = root,var(2) = [36000,38999]
;trigger1 = root,var(2)%1000 = [900,999]
reversal.attr = SCA, AA, AT, AP;全属性当身
pausetime = 0,0
p2stateno = playerid(root,fvar(0)),var(5+Random%(playerID(ceil(root,fvar(0))),var(13)))
p2getp1state = 0;重要，返回敌方自己的state
sparkno = -1
hitsound = -1
ignorehitpause = 1

[state ]
type = selfstate
triggerall = 0
triggerall = ishelper(500)
trigger1 = root,var(4) = [0,16999]
trigger1 = roundstate = [2,3]
value = 5150
persistent = 256
ignorehitpause = 1

[state 500]
type = ParentVarset
triggerall = ishelper(500)
triggerall = parent,id = root,id
trigger1 = enemy,hitdefattr = SCA,AA,AT,AP
trigger2 = numtarget
var(0) = 1
ignorehitpause = 1

[state 500]
type = Destroyself
triggerall = ishelper(500)
trigger1 = roundstate > 1
trigger1 = root,var(4) < 17000
ignorehitpause = 1

[Statedef 1000]
type = U
movetype = U
physics = U
hitdefpersist = 1
movehitpersist = 1
ctrl = 0

[State ]
type = Changestate
trigger1 = name!="AtemiMashiro"
value = ifelse(ishelper,1000045,1000043)
ignorehitpause = 1

[State ];動畫鎖定
type = Changeanim
trigger1 = ishelper(1000)
trigger1 = anim!= 10026
value = 10026;攻擊框動畫
ignorehitpause = 1

;[state ]
;type = selfstate
;triggerall = ishelper(1000)
;trigger1 = root,var(4) >= 3600
;value = 5900
;persistent = 256
;ignorehitpause = 1

[state ];狀態改變
type = StateTypeSet
trigger1 = ishelper(1000)
MoveType = A;攻擊
IgnoreHitPause = 1

[State ]
type = Hitdef
trigger1 = ishelper(1000)
trigger1 = gametime%10 = 0
attr = SCA, AA, AT, AP
damage = 0,0
hitflag = 
guardflag = 
pausetime = 0,0
numhits = 0
priority = 7, hit
sparkno = -1
guard.sparkno = -1
ignorehitpause = 1

[State ]
type = PosSet
trigger1 = ishelper(1000)
x = helper(120),pos x
y = helper(120),pos y
ignorehitpause = 1

[State ];不可控
type = Ctrlset
trigger1 = ishelper(1000)
value = 0
ignorehitpause = 1

[State ];保持在畫面內
type = Screenbound
trigger1 = ishelper(1000)
value = 0
ignorehitpause = 1

[State ];特殊斷言
type = Assertspecial
trigger1 = ishelper(1000)
flag = invisible;不可見
flag2 = noshadow;無影子
ignorehitpause = 1

[State ];不會被推擠
type = Playerpush
trigger1 = ishelper(1000)
value = 0
ignorehitpause = 1

[State ];無敵，防止被干擾
type = NotHitBy
trigger1 = IsHelper(1000)
value = SCA;S站立 C下蹲 A空中
ignorehitpause = 1

[State ]
type = LifeSet
trigger1 = IsHelper(1000)
value = LifeMax
ignorehitpause = 1

[State ]
type = ParentVarSet
trigger1 = IsHelper(1000)
trigger1 = Parent,id = root,id
fvar(0) = id
ignorehitpause = 1

[statedef 700]
type = U
movetype = U
physics = U
hitdefpersist = 1
movehitpersist = 1
ctrl = 0

[State ]
type = Changestate
trigger1 = name!="AtemiMashiro"
value = ifelse(ishelper,1000045,1000043)
ignorehitpause = 1

[state ]
type = ChangeAnim
triggerall = ishelper(700)
trigger1 = anim != 8888
value = 8888
ignorehitpause = 1

[State ]
type = Ctrlset
trigger1 = ishelper(700)
value = 0
ignorehitpause = 1

[State ]
type = Screenbound
trigger1 = ishelper(700)
value = 0
ignorehitpause = 1

[State ]
type = Assertspecial
trigger1 = ishelper(700)
flag = invisible
flag2 = noshadow
ignorehitpause = 1

[State ]
type = PosSet
trigger1 = ishelper(700)
x = helper(120),pos x
y = helper(120),pos y
ignorehitpause = 1

[State ]
type = Playerpush
trigger1 = ishelper(700)
value = 0
ignorehitpause = 1

[State ]
type = NotHitBy
trigger1 = IsHelper(700)
value = SCA,AA,AT,AP
ignorehitpause = 1

[State ]
type = LifeSet
trigger1 = IsHelper(700)
value = LifeMax
ignorehitpause = 1

[state ];變量修復用變量記憶
type = null
triggerall = ishelper(700)
triggerall = root,var(2) = [0,20999]
triggerall = root,var(2)%2100 != [1350,1949]
trigger1 = 1 || var(0) := enemy,var(0)
trigger1 = 1 || var(1) := enemy,var(1)
trigger1 = 1 || var(2) := enemy,var(2)
trigger1 = 1 || var(3) := enemy,var(3)
trigger1 = 1 || var(4) := enemy,var(4)
trigger1 = 1 || var(5) := enemy,var(5)
trigger1 = 1 || var(6) := enemy,var(6)
trigger1 = 1 || var(7) := enemy,var(7)
trigger1 = 1 || var(8) := enemy,var(8)
trigger1 = 1 || var(9) := enemy,var(9)
trigger1 = 1 || var(10) := enemy,var(10)
trigger1 = 1 || var(11) := enemy,var(11)
trigger1 = 1 || var(12) := enemy,var(12)
trigger1 = 1 || var(13) := enemy,var(13)
trigger1 = 1 || var(14) := enemy,var(14)
trigger1 = 1 || var(15) := enemy,var(15)
trigger1 = 1 || var(16) := enemy,var(16)
trigger1 = 1 || var(17) := enemy,var(17)
trigger1 = 1 || var(18) := enemy,var(18)
trigger1 = 1 || var(19) := enemy,var(19)
trigger1 = 1 || var(20) := enemy,var(20)
trigger1 = 1 || var(21) := enemy,var(21)
trigger1 = 1 || var(22) := enemy,var(22)
trigger1 = 1 || var(23) := enemy,var(23)
trigger1 = 1 || var(24) := enemy,var(24)
trigger1 = 1 || var(25) := enemy,var(25)
trigger1 = 1 || var(26) := enemy,var(26)
trigger1 = 1 || var(27) := enemy,var(27)
trigger1 = 1 || var(28) := enemy,var(28)
trigger1 = 1 || var(29) := enemy,var(29)
trigger1 = 1 || var(30) := enemy,var(30)
trigger1 = 1 || var(31) := enemy,var(31)
trigger1 = 1 || var(32) := enemy,var(32)
trigger1 = 1 || var(33) := enemy,var(33)
trigger1 = 1 || var(34) := enemy,var(34)
trigger1 = 1 || var(35) := enemy,var(35)
trigger1 = 1 || var(36) := enemy,var(36)
trigger1 = 1 || var(37) := enemy,var(37)
trigger1 = 1 || var(38) := enemy,var(38)
trigger1 = 1 || var(39) := enemy,var(39)
trigger1 = 1 || var(40) := enemy,var(40)
trigger1 = 1 || var(41) := enemy,var(41)
trigger1 = 1 || var(42) := enemy,var(42)
trigger1 = 1 || var(43) := enemy,var(43)
trigger1 = 1 || var(44) := enemy,var(44)
trigger1 = 1 || var(45) := enemy,var(45)
trigger1 = 1 || var(46) := enemy,var(46)
trigger1 = 1 || var(47) := enemy,var(47)
trigger1 = 1 || var(48) := enemy,var(48)
trigger1 = 1 || var(49) := enemy,var(49)
trigger1 = 1 || var(50) := enemy,var(50)
trigger1 = 1 || var(51) := enemy,var(51)
trigger1 = 1 || var(52) := enemy,var(52)
trigger1 = 1 || var(53) := enemy,var(53)
trigger1 = 1 || var(54) := enemy,var(54)
trigger1 = 1 || var(55) := enemy,var(55)
trigger1 = 1 || var(56) := enemy,var(56)
trigger1 = 1 || var(57) := enemy,var(57)
trigger1 = 1 || var(58) := enemy,var(58)
trigger1 = 1 || var(59) := enemy,var(59)
trigger1 = 1 || fvar(0) := enemy,fvar(0)
trigger1 = 1 || fvar(1) := enemy,fvar(1)
trigger1 = 1 || fvar(2) := enemy,fvar(2)
trigger1 = 1 || fvar(3) := enemy,fvar(3)
trigger1 = 1 || fvar(4) := enemy,fvar(4)
trigger1 = 1 || fvar(5) := enemy,fvar(5)
trigger1 = 1 || fvar(6) := enemy,fvar(6)
trigger1 = 1 || fvar(7) := enemy,fvar(7)
trigger1 = 1 || fvar(8) := enemy,fvar(8)
trigger1 = 1 || fvar(9) := enemy,fvar(9)
trigger1 = 1 || fvar(10) := enemy,fvar(10)
trigger1 = 1 || fvar(11) := enemy,fvar(11)
trigger1 = 1 || fvar(12) := enemy,fvar(12)
trigger1 = 1 || fvar(13) := enemy,fvar(13)
trigger1 = 1 || fvar(14) := enemy,fvar(14)
trigger1 = 1 || fvar(15) := enemy,fvar(15)
trigger1 = 1 || fvar(16) := enemy,fvar(16)
trigger1 = 1 || fvar(17) := enemy,fvar(17)
trigger1 = 1 || fvar(18) := enemy,fvar(18)
trigger1 = 1 || fvar(19) := enemy,fvar(19)
trigger1 = 1 || fvar(20) := enemy,fvar(20)
trigger1 = 1 || fvar(21) := enemy,fvar(21)
trigger1 = 1 || fvar(22) := enemy,fvar(22)
trigger1 = 1 || fvar(23) := enemy,fvar(23)
trigger1 = 1 || fvar(24) := enemy,fvar(24)
trigger1 = 1 || fvar(25) := enemy,fvar(25)
trigger1 = 1 || fvar(26) := enemy,fvar(26)
trigger1 = 1 || fvar(27) := enemy,fvar(27)
trigger1 = 1 || fvar(28) := enemy,fvar(28)
trigger1 = 1 || fvar(29) := enemy,fvar(29)
trigger1 = 1 || fvar(30) := enemy,fvar(30)
trigger1 = 1 || fvar(31) := enemy,fvar(31)
trigger1 = 1 || fvar(32) := enemy,fvar(32)
trigger1 = 1 || fvar(33) := enemy,fvar(33)
trigger1 = 1 || fvar(34) := enemy,fvar(34)
trigger1 = 1 || fvar(35) := enemy,fvar(35)
trigger1 = 1 || fvar(36) := enemy,fvar(36)
trigger1 = 1 || fvar(37) := enemy,fvar(37)
trigger1 = 1 || fvar(38) := enemy,fvar(38)
trigger1 = 1 || fvar(39) := enemy,fvar(39)

[State ]
type = ParentVarSet
trigger1 = IsHelper(700)
trigger1 = Parent,id = root,id
fvar(1) = id
ignorehitpause = 1

;时止解除-领域占有helper
[Statedef 8005]
type = U
movetype = U
physics = U
hitdefpersist = 1
movehitpersist = 1
ctrl = 0

[State ]
type = Changestate
trigger1 = name!="AtemiMashiro"
value = ifelse(ishelper,1000045,1000043)
ignorehitpause = 1

[State ];状态改变
type = statetypeset
trigger1 = ishelper(8005)
statetype = S;站立
movetype = I;闲置
physics = N;站立
ignorehitpause = 1

[State ];动画锁定
type = Changeanim
trigger1 = ishelper(8005)
trigger1 = anim!= 8888
value = 8888;无框动画
ignorehitpause = 1

[State ];位置绑定本体
type = BindToroot
trigger1 = ishelper(8005)
time = -1
facing = 1
pos = 0, 0
ignorehitpause = 1

[State ];不可控
type = Ctrlset
trigger1 = ishelper(8005)
value = 0
ignorehitpause = 1

[State ];保持在画面内
type = Screenbound
trigger1 = ishelper(8005)
value = 0
ignorehitpause = 1

[State ];特殊断言
type = Assertspecial
trigger1 = ishelper(8005)
flag = invisible;不可见
flag2 = noshadow;无影子
ignorehitpause = 1

[State ];不会推挤
type = Playerpush
trigger1 = ishelper(8005)
value = 0
ignorehitpause = 1

[State ];无敌，防止被干扰
type = NotHitBy
trigger1 = IsHelper(8005)
value = SCA;S站立 C下蹲 A空中
ignorehitpause = 1

[State ];自毁
type = DestroySelf
trigger1 = ishelper(8005)
trigger1 = root,Numhelper(8006);helper(8006)存在时
ignorehitpause = 1

;时止解除-召唤helper
[Statedef 8006]
type = U
movetype = U
physics = U
hitdefpersist = 1
movehitpersist = 1
ctrl = 0

[State ]
type = Changestate
trigger1 = name!="AtemiMashiro"
value = ifelse(ishelper,1000045,1000043)
ignorehitpause = 1

[State ];状态改变
type = statetypeset
trigger1 = ishelper(8006)
statetype = S;站立
movetype = I;闲置
physics = N;站立
ignorehitpause = 1

[State ];动画锁定
type = Changeanim
trigger1 = ishelper(8006)
trigger1 = anim!= 8888
value = 8888;无框动画
ignorehitpause = 1

[State ];位置绑定本体
type = BindToroot
trigger1 = ishelper(8006)
time = -1
facing = 1
pos = 0, 0
ignorehitpause = 1

[State ];不可控
type = Ctrlset
trigger1 = ishelper(8006)
value = 0
ignorehitpause = 1

[State ];保持在画面内
type = Screenbound
trigger1 = ishelper(8006)
value = 0
ignorehitpause = 1

[State ];特殊断言
type = Assertspecial
trigger1 = ishelper(8006)
flag = invisible;不可见
flag2 = noshadow;无影子
ignorehitpause = 1

[State ];不会推挤
type = Playerpush
trigger1 = ishelper(8006)
value = 0
ignorehitpause = 1

[State ];无敌，防止被干扰
type = NotHitBy
trigger1 = IsHelper(8006)
value = SCA;S站立 C下蹲 A空中
ignorehitpause = 1

[State -2];生成解除helper
type = Helper
trigger1 = PlayerIDExist(id)
trigger1 = ishelper(8006)
trigger1 =!numHelper(8007)
name = "remove-hold"
helpertype = Player
ID = 8007
stateno = 8007
pausemovetime = 2147483647
supermovetime = 2147483647
ignorehitpause = 1

[state -2]
type = Helper
triggerall = ishelper
triggerall = !root,var(22)
triggerall = !numhelper(56284)
trigger1 = root,var(4) = [8601,9800]
name = "normal"
ID = 56284
helpertype = Normal
stateno = 56284
pausemovetime = 2147483647
supermovetime = 2147483647
ignorehitpause = 1

[State 0, SelfState]
type = SelfState
triggerall = ishelper && root,var(22) = 76
trigger1 = enemy,stateno = 20
value = 5150
ignorehitpause = 1

[State 0, SelfState]
type = SelfState
triggerall = ishelper && (root,var(22) = 80 || root,var(22) = 120)
trigger1 = 1
value = 5150
ignorehitpause = 1

[State 0, SelfState]
type = SelfState
triggerall = ishelper && root,var(22) = 81
trigger1 = enemy,life >= 200
value = 5150
ignorehitpause = 1

[state -2]
type = Helper
triggerall = ishelper
triggerall = numhelper(0) < 4
trigger1 = root,var(22) = 56
trigger2 = root,var(22) = 69
trigger2 = root,var(4) > 600
name = "normal"
ID = 0
helpertype = Normal
stateno = 0
pausemovetime = 2147483647
supermovetime = 2147483647
ignorehitpause = 1

;时止解除-解除helper
[Statedef 8007]
type = U
movetype = U
physics = U
hitdefpersist = 1
movehitpersist = 1
ctrl = 0

[State ]
type = Changestate
trigger1 = name!="AtemiMashiro"
value = ifelse(ishelper,1000045,1000043)
ignorehitpause = 1

[State ];状态改变
type = statetypeset
trigger1 = ishelper(8007)
statetype = S;站立
movetype = I;闲置
physics = N;站立
ignorehitpause = 1

[State ];动画锁定
type = Changeanim
trigger1 = ishelper(8007)
trigger1 = anim!= 8888
value = 8888;无框动画
ignorehitpause = 1

[State ];位置绑定本体
type = BindToroot
trigger1 = ishelper(8007)
time = -1
facing = 1
pos = 0, 0
ignorehitpause = 1

[State ];不可控
type = Ctrlset
trigger1 = ishelper(8007)
value = 0
ignorehitpause = 1

[State ];保持在画面内
type = Screenbound
trigger1 = ishelper(8007)
value = 0
ignorehitpause = 1

[State ];特殊断言
type = Assertspecial
trigger1 = ishelper(8007)
flag = invisible;不可见
flag2 = noshadow;无影子
ignorehitpause = 1

[State ];不会推挤
type = Playerpush
trigger1 = ishelper(8007)
value = 0
ignorehitpause = 1

[State ];无敌，防止被干扰
type = NotHitBy
trigger1 = IsHelper(8007)
value = SCA;S站立 C下蹲 A空中
ignorehitpause = 1

;时止解除
[State ];暂停
type = Pause
trigger1 = ishelper(8007)
time = 0;时止持续时间，使其为0便可解除时止
movetime = 0;时止中可活动时间，不可大于持续时间
ignorehitpause = 1

[State ];超级暂停
type = Superpause
trigger1 = ishelper(8007)
anim = -1
time = 0;时止持续时间，使其为0便可解除时止
movetime = 0;时止中可活动时间，不可大于持续时间
darken = 0
p2defmul = 1
unhittable = 0
ignorehitpause = 1

;時止
[State ];暫停
type = Pause
triggerall = ishelper(8007)
trigger1 = roundstate = [2,3]
trigger1 = enemy(0),movetype = A||enemy(1),movetype = A
trigger1 = Gametime%20 = [1,5]
trigger2 = root,win && root,var(5) < 700
trigger3 = roundstate > 2 && root,var(5) < 700
trigger4 = (enemy,stateno=140140140||enemy,anim=1000100)&&enemy,numhelper(233233233)
trigger4 = enemy,life && enemy,alive
trigger5 = root,var(22) = 122 && roundstate = 2
time = 2
movetime = 2
ignorehitpause = 1

[State ];超級暫停
type = Superpause
triggerall = ishelper(8007)
trigger1 = roundstate = [2,3]
trigger1 = enemy(0),movetype = A||enemy(1),movetype = A
trigger1 = Gametime%20 = [1,5]
trigger2 = root,win && root,var(5) < 700
trigger3 = roundstate > 2 && root,var(5) < 700
trigger4 = (enemy,stateno=140140140||enemy,anim=1000100)&&enemy,numhelper(233233233)
trigger4 = enemy,life && enemy,alive
trigger5 = root,var(22) = 122 && roundstate = 2
anim = -1
time = 2
movetime = 2
darken = 0
p2defmul = 1
unhittable = 0
ignorehitpause = 1

[State 0, SelfState]
type = SelfState
triggerall = ishelper && root,var(22) = 76
trigger1 = enemy,stateno = 20
value = 5150
ignorehitpause = 1

[State 0, SelfState]
type = SelfState
triggerall = ishelper && (root,var(22) = 80 || root,var(22) = 120)
trigger1 = 1
value = 5150
ignorehitpause = 1

[State 0, SelfState]
type = SelfState
triggerall = ishelper && root,var(22) = 81
trigger1 = enemy,life >= 200
value = 5150
ignorehitpause = 1

[State ];暫停
type = Pause
triggerall = ishelper(8007)
triggerall = playerid(root,var(33)),ishelper(778899)
trigger1 = enemy,anim != 3900
trigger1 = root,var(34) || enemy,anim = 0
trigger1 = playerID(root,var(33)),movetype = H
time = 2;時止持續時間，使其為0便可解除時止
movetime = 2;時止中可活動時間，不可大於持續時間
ignorehitpause = 1

[State ];超級暫停
type = Superpause
triggerall = ishelper(8007)
triggerall = playerid(root,var(33)),ishelper(778899)
trigger1 = enemy,anim != 3900
trigger1 = root,var(34) || enemy,anim = 0
trigger1 = playerID(root,var(33)),movetype = H
anim = -1
time = 2;時止持續時間，使其為0便可解除時止
movetime = 2;時止中可活動時間，不可大於持續時間
darken = 0
p2defmul = 1
unhittable = 0
ignorehitpause = 1

[State ];自毁
type = DestroySelf
trigger1 = ishelper(8007)
trigger1 = AnimElemTime(1) > 0;召唤达到1帧及以上时
trigger1 = roundstate < 3;战斗结束前
ignorehitpause = 1

[statedef 514514]
type = U
movetype = U
physics = U
hitdefpersist = 1
movehitpersist = 1

[State ];動畫鎖定
type = Changeanim
trigger1 = ishelper(514514)
trigger1 = anim!= 8888
value = 8888
ignorehitpause = 1

[State ];位置綁定本體
type = PosSet
trigger1 = ishelper(514514)
x = enemy,pos x
y = enemy,pos y
ignorehitpause = 1

[State ];不可控
type = Ctrlset
trigger1 = ishelper(514514)
value = 0
ignorehitpause = 1

[State ];保持在畫面內
type = Screenbound
trigger1 = ishelper(514514)
value = 0
ignorehitpause = 1

[State ];特殊斷言
type = Assertspecial
trigger1 = ishelper(514514)
flag = invisible;不可見
flag2 = noshadow;無影子
ignorehitpause = 1

[State ];不會被推擠
type = Playerpush
trigger1 = ishelper(514514)
value = 0
ignorehitpause = 1

[State ]
type = LifeSet
trigger1 = ishelper(514514)
value = LifeMax
ignorehitpause = 1

[state ,ステートタイマー]
type=null
triggerall=ishelper(514514)&&root,var(4)=[1100,16999];X
trigger1=var(10)-stateno
trigger1=1||var(10):=stateno&&var(11):=0
trigger2=var(11):=var(11)+1
ignorehitpause=1
[State ,終了判断]
type=varset
triggerall=ishelper(514514)&&root,var(4)=[1100,16999];X
trigger1=var(11)=0
trigger1=1||(fvar(37):=(enemy,life*1.0/enemy,lifemax*1.0)&&var(16):=enemy,life)
trigger2=var(11)=6000;一定期間後の削れ具合を見る
trigger2=abs(fvar(37)-(enemy,life*1.0/enemy,lifemax*1.0))<=0.33
trigger3=0
trigger4=var(17):=var(17)+abs(var(16)-enemy,life)
trigger4=var(17)*1.0/300.0>0.1
trigger5=var(16):=enemy,life
trigger6=var(11)%300=0
trigger6=var(17):=0
sysvar(4)=sysvar(4);ここで終了フラグを立てる
ignorehitpause=1

;ソート(昇順)------------------------------------
[state ]
type=null
triggerall=ishelper(514514)&&root,var(4)=[1100,16999];X
triggerall=fvar(10)&&fvar(11);ソートが必要な数のデータが入力されているか
trigger1=fvar(10)>fvar(11)&&fvar(11)
trigger1=var(18):=var(30)||fvar(38):=fvar(10);一時避難
trigger1=var(30):=var(31)||fvar(10):=fvar(11);移し変え
trigger1=var(31):=var(18)||fvar(11):=fvar(38);復元
trigger2=fvar(10+1)>fvar(11+1)&&fvar(11+1)
trigger2=var(18):=var(30+1)||fvar(38):=fvar(10+1)
trigger2=var(30+1):=var(31+1)||fvar(10+1):=fvar(11+1)
trigger2=var(31+1):=var(18)||fvar(11+1):=fvar(38)
trigger3=fvar(10+2)>fvar(11+2)&&fvar(11+2)
trigger3=var(18):=var(30+2)||fvar(38):=fvar(10+2)
trigger3=var(30+2):=var(31+2)||fvar(10+2):=fvar(11+2)
trigger3=var(31+2):=var(18)||fvar(11+2):=fvar(38)
trigger4=fvar(10+3)>fvar(11+3)&&fvar(11+3)
trigger4=var(18):=var(30+3)||fvar(38):=fvar(10+3)
trigger4=var(30+3):=var(31+3)||fvar(10+3):=fvar(11+3)
trigger4=var(31+3):=var(18)||fvar(11+3):=fvar(38)
ignorehitpause=1

;------------------------------------------------

;有効ダメージ調査--------------------------------
[state ]
type=projectile
triggerall=ishelper(514514)&&root,var(4)=[1100,16999];X
triggerall=!(var(39)&1)&&!(var(39)&2)
triggerall=1||var(38):=(var(12))/180%22 ;%22の部分は対応パターン数に応じて変更
trigger1=var(38)%100=-1+1
trigger1=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger1=var(59):=1
trigger2=var(38)%100=-1+2
trigger2=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger2=var(59):=49-random%(1+(var(30)%100!=var(31)%100))
trigger3=var(38)%100=-1+3
trigger3=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger3=var(59):=99
trigger4=var(38)%100=-1+4
trigger4=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger4=var(59):=199-random%100
trigger5=var(38)%100=-1+5
trigger5=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger5=var(59):=399-random%100
trigger6=var(38)%100=-1+6
trigger6=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger6=var(59):=599-random%100
trigger7=var(38)%100=-1+7
trigger7=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger7=var(59):=799-random%100
trigger8=var(38)%100=-1+8
trigger8=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger8=var(59):=999-random%100
trigger9=var(38)%100=-1+9
trigger9=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger9=var(59):=1000
trigger10=0
trigger11=var(38)%100=8+1
trigger11=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger11=var(59):=floor(enemy,lifemax*0.001*1)||1
trigger12=var(38)%100=8+2
trigger12=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger12=var(59):=floor(enemy,lifemax*0.001*49)
trigger13=var(38)%100=8+3
trigger13=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger13=var(59):=floor(enemy,lifemax*0.001*99)
trigger14=var(38)%100=8+4
trigger14=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger14=var(59):=floor(enemy,lifemax*0.001*(199-random%100))
trigger15=var(38)%100=8+5
trigger15=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger15=var(59):=floor(enemy,lifemax*0.001*(399-random%100))
trigger16=var(38)%100=8+6
trigger16=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger16=var(59):=floor(enemy,lifemax*0.001*(599-random%100))
trigger17=var(38)%100=8+7
trigger17=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger17=var(59):=floor(enemy,lifemax*0.001*(799-random%100))
trigger18=var(38)%100=8+8
trigger18=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger18=var(59):=floor(enemy,lifemax*0.001*(999-random%100))
trigger19=var(38)%100=8+9
trigger19=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger19=var(59):=floor(enemy,lifemax*0.001*1000)
trigger20=0
trigger21=var(38)%100=17+1
trigger21=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger21=var(59):=random
trigger22=var(38)%100=17+2
trigger22=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger22=var(59):=256*256-random%100
trigger23=var(38)%100=17+3
trigger23=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger23=var(59):=256*256*256-random%100
trigger24=var(38)%100=17+4
trigger24=var(12)%(ifelse(var(12)<3000,60,5))=0
trigger24=var(59):=256*256*256*128-1-random%100
projid=10000000
projanim=778899
attr=sca,aa,at,ap
damage=var(59),var(59)
getpower=0,0
givepower=0,0
sparkno=-1
projremove=1
projremovetime=ifelse(var(12)<3000,59,4)
projpriority=7
guard.dist=0
postype=l
guard.dist=0
offset=(enemynear(numenemy>1&&enemynear,alive),screenpos x),-220+(enemynear(numenemy>1&&enemynear,alive),screenpos y)
affectteam=e
projedgebound=ceil(2.0**30)
projstagebound=ceil(2.0**30)
projheightbound=-ceil(2.0**30),ceil(2.0**30)
supermovetime=ceil(2.0**31)-1
pausemovetime=ceil(2.0**31)-1
ignorehitpause=1
[state ]
type=null
triggerall=ishelper(514514)&&root,var(4)=[1100,16999];X
triggerall=!(var(39)&1)&&!(var(39)&2)
triggerall=var(12):=var(12)+1
triggerall=var(12)%180=0
trigger1=!fvar(1)||enemy,life-enemy,lifemax
trigger1=1||fvar(38):=(enemy,life*1.0/enemy,lifemax*1.0)
trigger1=1||fvar(1):=abs(fvar(0)-fvar(38))
trigger1=fvar(1)>=0.0011;最低限許容する変動値
trigger1=fvar(1)>=fvar(10)
trigger1=var(30+!!var(30)+!!var(31)+!!var(32)+!!var(33)):=var(38)
trigger1=var(39):=(var(39)|1)
trigger1=1||var(12):=0
trigger1=0&&fvar(10+(!!var(30)+!!var(31)+!!var(32)+!!var(33)+!!var(34) -1)):=fvar(1)
trigger2=fvar(0):=enemy,life*1.0/enemy,lifemax*1.0
ignorehitpause=1
;------------------------------------------------

;有効密度調査------------------------------------
[state ]
type=projectile
triggerall=ishelper(514514)&&root,var(4)=[1100,16999];X
triggerall=(var(39)&1)&&!(var(39)&2)
triggerall=1||var(38):=var(30)+(var(12)/180%4)*100  ;%4の部分は対応パターン数に応じて変更
trigger1=var(38)%100=-1+1
trigger1=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger1=var(59):=1
trigger2=var(38)%100=-1+2
trigger2=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger2=var(59):=49-random%(1+(var(30)%100!=var(31)%100))
trigger3=var(38)%100=-1+3
trigger3=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger3=var(59):=99
trigger4=var(38)%100=-1+4
trigger4=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger4=var(59):=199-random%100
trigger5=var(38)%100=-1+5
trigger5=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger5=var(59):=399-random%100
trigger6=var(38)%100=-1+6
trigger6=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger6=var(59):=599-random%100
trigger7=var(38)%100=-1+7
trigger7=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger7=var(59):=799-random%100
trigger8=var(38)%100=-1+8
trigger8=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger8=var(59):=999-random%100
trigger9=var(38)%100=-1+9
trigger9=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger9=var(59):=1000
trigger10=0
trigger11=var(38)%100=8+1
trigger11=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger11=var(59):=floor(enemy,lifemax*0.001*1)||1
trigger12=var(38)%100=8+2
trigger12=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger12=var(59):=floor(enemy,lifemax*0.001*49)
trigger13=var(38)%100=8+3
trigger13=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger13=var(59):=floor(enemy,lifemax*0.001*99)
trigger14=var(38)%100=8+4
trigger14=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger14=var(59):=floor(enemy,lifemax*0.001*(199-random%100))
trigger15=var(38)%100=8+5
trigger15=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger15=var(59):=floor(enemy,lifemax*0.001*(399-random%100))
trigger16=var(38)%100=8+6
trigger16=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger16=var(59):=floor(enemy,lifemax*0.001*(599-random%100))
trigger17=var(38)%100=8+7
trigger17=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger17=var(59):=floor(enemy,lifemax*0.001*(799-random%100))
trigger18=var(38)%100=8+8
trigger18=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger18=var(59):=floor(enemy,lifemax*0.001*(999-random%100))
trigger19=var(38)%100=8+9
trigger19=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger19=var(59):=floor(enemy,lifemax*0.001*1000)
trigger20=0
trigger21=var(38)%100=17+1
trigger21=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger21=var(59):=random
trigger22=var(38)%100=17+2
trigger22=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger22=var(59):=256*256-random%100
trigger23=var(38)%100=17+3
trigger23=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger23=var(59):=256*256*256-random%100
trigger24=var(38)%100=17+4
trigger24=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger24=var(59):=256*256*256*128-1-random%100
projid=10000000
projanim=778899
attr=sca,aa,at,ap
damage=var(59),var(59)
getpower=0,0
givepower=0,0
sparkno=-1
projremove=1
projremovetime=ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1)))
projpriority=7
guard.dist=0
postype=l
guard.dist=0
offset=(enemynear(numenemy>1&&enemynear,alive),screenpos x),-220+(enemynear(numenemy>1&&enemynear,alive),screenpos y)
affectteam=e
projedgebound=ceil(2.0**30)
projstagebound=ceil(2.0**30)
projheightbound=-ceil(2.0**30),ceil(2.0**30)
supermovetime=ceil(2.0**31)-1
pausemovetime=ceil(2.0**31)-1
ignorehitpause=1
[state ]
type=null
triggerall=ishelper(514514)&&root,var(4)=[1100,16999];X
triggerall=(var(39)&1)&&!(var(39)&2)
triggerall=var(12):=var(12)+1
triggerall=var(12)%180=0
trigger1=!fvar(1)||enemy,life-enemy,lifemax
trigger1=1||fvar(38):=(enemy,life*1.0/enemy,lifemax*1.0)
trigger1=1||fvar(1):=abs(fvar(0)-fvar(38))
trigger1=fvar(1)>=0.0011
trigger1=fvar(1)>=fvar(10)
trigger1=var(30+(!!var(30)+!!var(31)+!!var(32)+!!var(33)+!!var(34) -1)):=var(38)
trigger1=0&&fvar(10+(!!var(30)+!!var(31)+!!var(32)+!!var(33)+!!var(34) -1)):=fvar(1)
trigger2=1||fvar(0):=enemy,life*1.0/enemy,lifemax*1.0
trigger2=var(12)>=480
trigger2=var(39):=(var(39)|2)
trigger2=1||var(12):=0
ignorehitpause=1
;------------------------------------------------

;削り本体----------------------------------------
[state ]
type=projectile
triggerall=ishelper(514514)&&root,var(4)=[1100,16999];X
triggerall=(var(39)&1)&&(var(39)&2)
triggerall=1||var(38):=var(30+(!!var(30)+!!var(31)+!!var(32)+!!var(33)+!!var(34) -1))
trigger1=var(38)%100=-1+1
trigger1=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger1=var(59):=1
trigger2=var(38)%100=-1+2
trigger2=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger2=var(59):=49-random%(1+(var(30)%100!=var(31)%100))
trigger3=var(38)%100=-1+3
trigger3=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger3=var(59):=99
trigger4=var(38)%100=-1+4
trigger4=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger4=var(59):=199-random%100
trigger5=var(38)%100=-1+5
trigger5=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger5=var(59):=399-random%100
trigger6=var(38)%100=-1+6
trigger6=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger6=var(59):=599-random%100
trigger7=var(38)%100=-1+7
trigger7=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger7=var(59):=799-random%100
trigger8=var(38)%100=-1+8
trigger8=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger8=var(59):=999-random%100
trigger9=var(38)%100=-1+9
trigger9=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger9=var(59):=1000
trigger10=0
trigger11=var(38)%100=8+1
trigger11=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger11=var(59):=floor(enemy,lifemax*0.001*1)||1
trigger12=var(38)%100=8+2
trigger12=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger12=var(59):=floor(enemy,lifemax*0.001*49)
trigger13=var(38)%100=8+3
trigger13=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger13=var(59):=floor(enemy,lifemax*0.001*99)
trigger14=var(38)%100=8+4
trigger14=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger14=var(59):=floor(enemy,lifemax*0.001*(199-random%100))
trigger15=var(38)%100=8+5
trigger15=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger15=var(59):=floor(enemy,lifemax*0.001*(399-random%100))
trigger16=var(38)%100=8+6
trigger16=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger16=var(59):=floor(enemy,lifemax*0.001*(599-random%100))
trigger17=var(38)%100=8+7
trigger17=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger17=var(59):=floor(enemy,lifemax*0.001*(799-random%100))
trigger18=var(38)%100=8+8
trigger18=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger18=var(59):=floor(enemy,lifemax*0.001*(999-random%100))
trigger19=var(38)%100=8+9
trigger19=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger19=var(59):=floor(enemy,lifemax*0.001*1000)
trigger20=0
trigger21=var(38)%100=17+1
trigger21=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger21=var(59):=random
trigger22=var(38)%100=17+2
trigger22=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger22=var(59):=256*256-random%100
trigger23=var(38)%100=17+3
trigger23=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger23=var(59):=256*256*256-random%100
trigger24=var(38)%100=17+4
trigger24=var(12)%(ifelse(var(38)/100%100=0,36,ifelse(var(38)/100%100=1,12,ifelse(var(38)/100%100=2,6,1))))=0
trigger24=var(59):=256*256*256*128-1-random%100
projid=10000000
projanim=778899
attr=sca,aa,at,ap
damage=var(59),var(59)
getpower=0,0
hitflag=MAF
givepower=0,0
sparkno=-1
projremove=1
projremovetime=4
projpriority=7
guard.dist=0
postype=l
guard.dist=0
offset=(enemynear(numenemy>1&&enemynear,alive),screenpos x),-220+(enemynear(numenemy>1&&enemynear,alive),screenpos y)
affectteam=e
projedgebound=ceil(2.0**30)
projstagebound=ceil(2.0**30)
projheightbound=-ceil(2.0**30),ceil(2.0**30)
supermovetime=ceil(2.0**31)-1
pausemovetime=ceil(2.0**31)-1
ignorehitpause=1
[state ]
type=null
triggerall=ishelper(514514)&&root,var(4)=[1100,16999];X
triggerall=(var(39)&1)&&(var(39)&2)
triggerall=var(12):=var(12)+1
triggerall=var(12)%360=0
trigger1=!fvar(1)||enemy,life-enemy,lifemax
trigger1=1||fvar(1):=abs(fvar(0)-(enemy,life*1.0/enemy,lifemax*1.0))
trigger1=fvar(1)<0.02;減少量が極端に少ない→条件が変化した可能性を疑って再調査
trigger1=1||var(39):=(var(39)|(1+2))-(1+2)
trigger1=var(12):=0
trigger2=fvar(0):=enemy,life*1.0/enemy,lifemax*1.0
ignorehitpause=1

[state ]
type = Destroyself
triggerall = ishelper(514514)
trigger1 = roundstate > 1
trigger1 = root,var(4) >= 17000
ignorehitpause = 1

;normalヘルパー
[statedef 56284]
type = U
movetype = U
physics = U
hitdefpersist = 1
movehitpersist = 1
ctrl = 0

[state ]
type = ChangeAnim
triggerall = ishelper(56284)
trigger1 = anim != 8888
value = 8888
ignorehitpause = 1

[State ]
type = Ctrlset
trigger1 = ishelper(56284)
value = 0
ignorehitpause = 1

[State ]
type = Screenbound
trigger1 = ishelper(56284)
value = 0
ignorehitpause = 1

[State ]
type = Assertspecial
trigger1 = ishelper(56284)
flag = invisible
flag2 = noshadow
ignorehitpause = 1

[State ]
type = PosSet
trigger1 = ishelper(56284)
x = helper(120),pos x
y = helper(120),pos y
ignorehitpause = 1

[State ]
type = Playerpush
trigger1 = ishelper(56284)
value = 0
ignorehitpause = 1

[State ]
type = NotHitBy
trigger1 = IsHelper(56284)
value = SCA,AA,AT,AP
ignorehitpause = 1

[State ]
type = LifeSet
trigger1 = IsHelper(56284)
value = LifeMax
ignorehitpause = 1

[State 0, DestroySelf]
type = DestroySelf
trigger1 = root,var(4) > 9800
ignorehitpause = 1

;专用演出helper
[statedef 1981145]
type = U
movetype = U
physics = U
hitdefpersist = 1
movehitpersist = 1

[state ]
type = ChangeAnim
triggerall = ishelper(1981145)
trigger1 = root,var(22) != 96
value = ifelse(roundstate<3,5500,180)
ignorehitpause = 1

[state ]
type = ChangeAnim
triggerall = ishelper(1981145)
trigger1 = root,var(22) = 96
value = 131
ignorehitpause = 1

[State ]
type = PosSet
trigger1 = ishelper(1981145)
x = -100 + 2*(teamside-1)
y = 0
ignorehitpause = 1

;专用helper夺取用marking helper
[statedef 12345]
type = U
movetype = U
physics = N
ctrl = 0
hitdefpersist = 1
movehitpersist = 1

[State ]
type = Changeanim
triggerall = ishelper(12345)
trigger1 = numtarget
trigger1 = target,ishelper
value = 8888
ignorehitpause = 1

[state ]
type = changeanim
triggerall = ishelper(12345)
trigger1 = !numtarget
value = 10026
ignorehitpause = 1

[State ]
type = Statetypeset
triggerall = ishelper(12345)
trigger1 = !numtarget
trigger2 = numtarget
trigger2 = !target,ishelper
statetype = A
movetype = A
physics = N
ignorehitpause = 1

[State ]
type = Statetypeset
triggerall = ishelper(12345)
trigger1 = numtarget
trigger1 = target,ishelper
statetype = A
movetype = i
physics = N
ignorehitpause = 1

[State ]
type = HitDef
triggerall = ishelper(12345)
trigger1 = !numtarget
attr = , AA, AT, AP
animtype = hard
damage = 0
guard.dist = 0
guardflag = 
pausetime = 0,0
sparkno = -1
guard.sparkno = -1
hitsound = -1
guardsound = -1
numhits = 0
affectteam = E
ignorehitpause = 1

[State ]
type = Targetdrop
triggerall = ishelper(12345)
trigger1 = numtarget
trigger1 = !target,ishelper
ignorehitpause = 1

[State 永续]
type = ReversalDef
triggerall = ishelper(12345)
trigger1 = numtarget
trigger1 = target,ishelper
reversal.attr = SCA, AA, AT, AP
numhits = 0
guard.dist = 0
guardflag = 
pausetime = 0,0
sparkno = -1
guard.sparkno = -1
hitsound = -1
guardsound = -1
ignorehitpause = 1

[state ]
type = targetlifeadd
triggerall = ishelper(12345)
trigger1 = numtarget && target,ishelper
value = enemy,lifemax
absolute = 1
persistent = 256
ignorehitpause = 1

[state ]
type = targetstate 
triggerall = ishelper(12345)
triggerall = numtarget
triggerall = target,ishelper
trigger1 = 1
value = 775870
persistent = 256
ignorehitpause = 1

[statedef 54321]
type    = S
movetype= H
physics = N
ctrl = 0
hitdefpersist = 1
movehitpersist = 1

[State 0, ChangeAnim]
type = ChangeAnim
trigger1 = ishelper(54321)
trigger1 = anim != 54321
value = 54321
ignorehitpause = 1

[State 0, AssertSpecial]
type = AssertSpecial
trigger1 = ishelper(54321)
flag = invisible
flag2 = noshadow
ignorehitpause = 1

[State 0, HitBy]
type = HitBy
trigger1 = ishelper(54321) && root,var(22) != 23
value = SCA,AA,AT,AP
value2 = SCA,AA,AP,AT
ignorehitpause = 1

[State 0, HitBy]
type = HitBy
trigger1 = ishelper(54321) && root,var(22) = 23
value =
value2 =
ignorehitpause = 1

[State 0, BindToRoot]
type = BindToRoot
trigger1 = ishelper(54321)
pos = 0,0
ignorehitpause = 1

[State 0]
Type = ScreenBound
trigger1 = ishelper(54321)
Value = 0
movecamera = 0
IgnoreHitPause = 1

[State 0]
Type = PlayerPush
trigger1 = ishelper(54321)
Value = 0
IgnoreHitPause = 1

[State 0, StateTypeSet]
type = StateTypeSet
trigger1 = ishelper(54321)
movetype = I
ignorehitpause = 1

;专用本体marking
[statedef 26000]
type = U    
physics = U
movetype = U
movehitpersist = 1
Ctrl = 0

[State ];動畫鎖定
type = Changeanim
trigger1 = ishelper(26000)
trigger1 =!numtarget;
trigger1 = anim!= 778899
value = 778899
ignorehitpause = 1

[state ];動畫鎖定
type = changeanim
trigger1 = ishelper(26000)
trigger1 = numtarget;取得target時
trigger1 = anim!= 8888
value = 8888
ignorehitpause = 1

[state ];狀態改變
type = StateTypeSet
trigger1 = ishelper(26000)
MoveType = A;攻擊(重要，保證hitdef打中及保持永續)
IgnoreHitPause = 1

[state ];狀態改變
type = StateTypeSet
trigger1 = ishelper(26000)
trigger1 = sysvar(1)&1
MoveType = I;閒置(確定取得敵方本體target後即可閒置)
IgnoreHitPause = 1

[state ];永續當身，以保持target不消失
type = reversalDef
trigger1 = ishelper(26000)
reversal.attr = SCA,AA,AT,AP
ignorehitpause = 1

[State ];位置綁定本體
type = BindToroot
trigger1 = ishelper(26000)
time = -1
facing = 1
pos = 0, 0
ignorehitpause = 1

[State ];不可控
type = Ctrlset
trigger1 = ishelper(26000)
value = 0
ignorehitpause = 1

[State ];保持在畫面內
type = Screenbound
trigger1 = ishelper(26000)
value = 0
ignorehitpause = 1

[State ];特殊斷言
type = Assertspecial
trigger1 = ishelper(26000)
flag = invisible;不可見
flag2 = noshadow;無影子
ignorehitpause = 1

[State ];不會被推擠
type = Playerpush
trigger1 = ishelper(26000)
value = 0
ignorehitpause = 1

[State ];無敵，防止被干擾
type = NotHitBy
trigger1 = IsHelper(26000)
value = SCA;S站立 C下蹲 A空中
ignorehitpause = 1

[state ]
type = lifeset
trigger1 = ishelper(26000)
value = lifemax
ignorehitpause=1

[State ]
type = TargetDrop
trigger1 = IsHelper(26000)
trigger1 = target,ishelper
keepone = 0
ignorehitpause=1

[State ]
type = TargetDrop
trigger1 = IsHelper(26000)
trigger1 = NumTarget > 1
keepone = 1
ignorehitpause=1

[state ]
type = reversalDef
trigger1 = ishelper(26000)
trigger1 =!numtarget;未取得target時
reversal.attr = SCA,AA,AT,AP
pausetime = 0,0
sparkno = -1
hitsound = -1
ignorehitpause = 1

[State ]
type = hitdef
trigger1 = ishelper(26000)
trigger1 =!numtarget;未取得target時
trigger1 = gametime%5 = 0
attr = ,NA
damage = 0,0
numhits = 0
guardflag =
hitflag = MAFDP
priority = 7,hit
pausetime = 0,20
affectteam = E
ignorehitpause = 1

[state ]
type = varset
trigger1 = ishelper(26000)
trigger1 = numtarget = 1
trigger1 =!target,ishelper
sysvar(1) = (sysvar(1)|1)
ignorehitpause = 1

[State ]
type = TargetState
triggerall = ishelper(26000)
triggerall = target,name = "I-orin"
trigger1 = target,hitpausetime > 1
value = 1000044
ignorehitpause = 1

[State ]
type = TargetState
triggerall = ishelper(26000)
triggerall = target,name = "Dc-014"
trigger1 = !target,hitpausetime
value = 635789
ignorehitpause = 1

[State ]
type = TargetState
triggerall = ishelper(26000)
triggerall = target,name = "Dc-014"
trigger1 = !target,hitpausetime
value = 635789
ignorehitpause = 1

[State ]
type = TargetState
triggerall = ishelper(26000)
triggerall = target,name = "Null Existence-X"
trigger1 = roundstate = 2
value = 5150
ignorehitpause = 1

[statedef 160000]
type = U
movetype = U
physics = N
ctrl = 0
hitdefpersist = 1
movehitpersist = 1

[State ];動畫鎖定
type = Changeanim
trigger1 = anim!= 1110
value = 1110
ignorehitpause = 1

[State ]
type = PosSet
trigger1 = 1
x = 0
y = 0
ignorehitpause = 1