; Light Arrow
[Statedef 1100]
type = S
movetype = A
physics = S
poweradd = 70*(1000+var(24))/1000*ifelse((var(15)||var(16)),0,1)
velset = 0,0
ctrl = 0
[State 1000, Position]
type = PosSet
trigger1 = AnimElem = 1
y = 0
[State 1000, VarSet]
type = VarSet
trigger1 = Time = 0
var(5) = ifelse(Command = "ƒTƒ“ƒVƒ…[ƒg1", 0, ifelse(Command = "ƒTƒ“ƒVƒ…[ƒg1", 1, 2))
[State 1000, ChangeAnim]
type = ChangeAnim
Trigger1 = Time = 0
value = 1100
[State 1000, Effect]
type = PlaySnd
trigger1 = AnimElem = 3
value = 1000,0
[State 1000, Voice]
type = PlaySnd
trigger1 = AnimElem = 4
value = 0,1
[State 1000, Voice]
type = PlaySnd
trigger1 = AnimElem = 6
value = 1300,0
[State 1000,Super]
type = Explod
trigger1 = AnimElem = 6
anim = 7002
name = "arrow1_effect"
pos = 50,0
postype = P1
keyctrl = 0
ownpal = 1
ontop = 1
ignorehitpause = 0
removeongethit = 1
facing = 1
scale = .5,.5
[State 1000,Super]
type = Helper
trigger1 = AnimElem = 6
id = 7300
name = "arrow1"
pos = 50,0
postype = P1
stateno = 7300
helpertype = normal
keyctrl = 0
ownpal = 1
ignorehitpause = 1
size.xscale = .5
size.yscale = .5
[State 1000, ChangeState]
type = ChangeState
trigger1 = AnimTime = 0
value = 12
ctrl = 1
;---------------------------------------------------------------------------
The helper (projectile "statedef 7300" and the destroy self code)
; Light Arrow (Projectile)
[Statedef 7300]
type = S
movetype = I
physics = N
ctrl = 0
velset = 0,0
anim = 7300
sprpriority = 4
[State 9000, Assert]
type = AssertSpecial
trigger1 = 1
flag = noshadow
ignorehitpause = 1
[State 3001, VarSet]
type = VarSet
trigger1 = 1
ignorehitpause = 1
var(5) = parent,var(5)
[State 3001, VarSet]
type = VarSet
trigger1 = 1
ignorehitpause = 1
var(15) = parent,var(15)
[State 3001, VarSet]
type = VarSet
trigger1 = 1
ignorehitpause = 1
var(16) = parent,var(16)
[State 3001, VarSet]
type = VarSet
trigger1 = 1
ignorehitpause = 1
var(17) = parent,var(17)
[State 3001, VarSet]
type = VarSet
trigger1 = 1
ignorehitpause = 1
var(24) = parent,var(24)
[State 3001, VarSet]
type = VarSet
trigger1 = 1
ignorehitpause = 1
var(41) = parent,var(41)
[State 3001, VarSet]
type = VarSet
trigger1 = 1
ignorehitpause = 1
fvar(10) = parent,fvar(10)
[State 1100, Velocity]
type = VelSet
trigger1 = time = 1
x = 8.37851
[State 1000,Super]
type = Explod
trigger1 = !Time
anim = 7301
ID = 7301
name = "arrow1_effect"
pos = -10,-3
postype = P1
keyctrl = 0
ownpal = 1
ontop = 1
bindtime = 999999
removetime = -1
removeongethit = 1
ignorehitpause = 0
facing = 1
scale = .45,.45
[State 1000,RemoveExplod]
type = RemoveExplod
trigger1 = root,ProjContactTime(1005) = 1
trigger2 = frontedgedist <= -40
ID = 7301
ignorehitpause = 1
[State 1000, Proj]
type = Projectile
trigger1 = Time = 1
projanim = 7350
Projhitanim = -1
Projremanim = -1
projcancelanim = -1
offset = 0, 0
projpriority = 1
projsprpriority = 4
velocity = vel X, vel Y
attr = S, SP
damage=ceil(ifelse(((ifelse(var(5),56,49))*fvar(10))<7,7,((ifelse(var(5),56,49))*fvar(10)))),ceil(ifelse(((ifelse(var(5),56,49))*fvar(10)/8)<7,7,((ifelse(var(5),56,49))*fvar(10)/8)))
animtype = Heavy
hitflag = MAF
guardflag = MA
pausetime = 4,ceil(15*(2-(var(16)>0))/2)
sparkno = S8230+(random%4)
guard.sparkno = S8105
sparkxy = 30,0
hitsound = S2,11
guardsound = S1,1
ground.type = High
ground.slidetime = 18
ground.hittime = 18
air.hittime = 18
guard.ctrltime = 18
ground.velocity = -5.59
guard.velocity = -8
air.velocity = -5.59, -6
airguard.velocity = -5.33,-1
air.juggle = ifelse(root,var(45)||root,var(22)=-1||root,var(23)=1,0,8)
fall = 0
fall.recover = 0
air.fall = 1
air.recover = 0
envshake.time = 10
envshake.ampl = 2
envshake.freq = 120
fall.envshake.time = 8
fall.envshake.ampl = 2
fall.envshake.freq = 120
ProjID = 1005
getpower = ifelse(var(17),70,143)*(1000+var(24))/1000*ifelse((var(15)||var(16)),0,1),35*(1000+var(24))/1000*ifelse((var(15)||var(16)),0,1)
givepower = 35, 35
palfx.time = 12*var(41)
palfx.add = 255,255,255
palfx.mul = 128,128,128
forcestand = 1
yaccel = .5
nochainID = root,var(40)
[State 3001, VarSet]
type = VarSet
trigger1 = var(1) = 4
ignorehitpause = 1
var(1) = 0
[State 3001, VarSet]
type = VarSet
trigger1 = root,ProjContactTime(1005) = 1
ignorehitpause = 1
var(1) = 1
[State 3001, VarSet]
type = VarAdd
trigger1 = var(1)
ignorehitpause = 1
var(1) = 1
[State 1000, 0]
type = PosFreeze
trigger1 = var(1)
value = 1
ignorehitpause = 1
persistent = 1
[State -3, Blocking5]
type = helper
triggerall = root,fvar(8) = 1 || root,fvar(8) = -2
trigger1 = root,projhittime(1005) = 1
id = 8130
name = "COUNTER HIT EFFECT"
pos = 0,0
postype = P1
stateno = 8130
helpertype = normal
keyctrl = 0
ownpal = 1
ignorehitpause = 1
pausemovetime = 99999
supermovetime = 99999
size.xscale = 1
size.yscale = 1
[State 4110, DestroySelf]
type = DestroySelf
triggerall = time > 1
trigger1 = FrontEdgeDist <= -40 && !var(1)
[State 900, 4]
type = ChangeState
triggerall = time > 1
trigger1 = !root,NumProjID(1005)
value = 7205 ; I'll use 7205 instead of 7305
;---------------------------------------------------------------------------
; Light Arrow Destroyself
[Statedef 7205]
type = S
movetype = I
physics = N
ctrl = 0
velset = 0,0
anim = 7205
[State -3, Blocking5]
type = helper
triggerall = !NumHelper(8130)
triggerall = root,fvar(8) = 1 || root,fvar(8) = -2
trigger1 = root,projhittime(1005) = 1
id = 8130
name = "COUNTER HIT EFFECT"
pos = 0,0
postype = P1
stateno = 8130
helpertype = normal
keyctrl = 0
ownpal = 1
ignorehitpause = 1
pausemovetime = 99999
supermovetime = 99999
size.xscale = 1
size.yscale = 1
[State 9000, Assert]
type = AssertSpecial
trigger1 = 1
flag = noshadow
ignorehitpause = 1
[State 4110, DestroySelf]
type = DestroySelf
trigger1 = AnimTime = 0
;---------------------------------------------------------------------------