try it with koopakoot athena 02. probed vs kamemaze and vans rugals, it seems something doesn´t work fine.
;---------------------------------------------------------------------------
;Psycho reflect
[Statedef 1020]
type = S
movetype= A
physics = S
juggle = 7
ctrl = 0
anim = 1020
poweradd= 0
velset = 0, 0
sprpriority = 2
facep2=1
[State 1000: Helper]
type = Helper
trigger1 = animelem = 4
helpertype = Normal
id = 10020
pos = 0, 0 ;50
postype = p1
facing = 1
stateno = 10020
keyctrl = 0
ownpal = 1
supermovetime = 0
pausemovetime = 0
[State 1000: Helper]
type = Helper
trigger1 = animelem = 7
helpertype = Normal
id = 10021
pos = 0, 0 ;50
postype = p1
facing = 1
stateno = 10025
keyctrl = 0
ownpal = 1
supermovetime = 0
pausemovetime = 0
[State 200, snd]
type=playsnd
trigger1= animelem=1
value=200,7
channel=0
;volume = 200
[State 1000, ChangeAnim]
type = ChangeAnim
triggerall = anim = 1020
trigger1 = !animtime
trigger2 = ProjContact1020 = 1
trigger3 = numhelper(10021)
trigger3 = helper(10021), stateno = 10029
value = 1021
ignorehitpause = 0
[State 1000, 6]
type = ChangeState
triggerall = AnimTime = 0
trigger1 = anim = 1021
value = 0
ctrl = 1
;---------------------------------------------------------------------------
[Statedef 10020]
type = S
movetype = A
physics = N
ctrl = 0
velset = 0, 0
ownpal = 1
anim = 1024
sprpriority = 4
[State 200, snd]
type=playsnd
trigger1= time = 1
value=1000,3
volume = -100
[State 10005]
type = BindToParent
trigger1 = 1
pos = 30,-30
ignorehitpause = 1
[State 7001, Assert]
type = AssertSpecial
trigger1 = 1
flag = noshadow
ignorehitpause = 1
[State 1000, DestroySelf]
type = DestroySelf
trigger1 = root, stateno != 1020
trigger2 = Root,MoveType = H
[State 10005, ChangeAnim]
type = ChangeState
trigger1 = root, anim = 1021
value = 10021
persistent = 0
[Statedef 10021]
type = S
movetype = A
physics = N
ctrl = 0
velset = 0, 0
ownpal = 1
anim = 1025
sprpriority = 4
;---------------------------------------------------------------------------
[State Reflector Compatability]
type = VarSet
trigger1 = !time
sysvar(0) = 262144
;Include the ReversalDef for projectiles
[State 0, ReversalDef] ;ReversalDef prioritized over HitOverride
type = ReversalDef
trigger1 = 1
reversal.attr = SCA,NP,SP
pausetime = 0,0
sparkno = -1
hitsound = -1
p1stateno = 100000 ;Your Reflectors next state
p2stateno = 821337 ;Send proj to reflected stateno (shared)
;Include the HitOverride for projectiles to be Re-Reflected
[State 0, HitOverride]
type = HitOverride
trigger1 = 1
attr = SCA, NP, SP
stateno = 100001 ;RE-REFLECT OVERRIDE, this will be different
ignorehitpause = 1 ;than the one in ReversalDef
[State Obtain Target Projetcile ID if Compatible]
type = VarSet
triggerall = !Var(0)
trigger1 = numtarget
trigger1 = target, ishelper
var(0) = target, ID
ignorehitpause = 1
[State 0, Not Compatible? Send Your Own!]
type = VarSet
trigger1 = sysvar(0)
trigger1 = !playeridexist(var(0))
sysvar(0) = 0
[State Proximity Blocker, Attach to Reflected Projectile]
type = Helper
trigger1 = playeridexist(var(0))
name = "Proximity Blocker" ;Note 2, this Helper will be explained later!
ID = 821338 ;ID can be whatever you like
stateno = 821338 ;Statedef can also be whatever you like!
ownpal = 0 ;This helper is generated by your Reflector!
persistent = 0
;......etc etc more code for your reflector!
[State Noncompatible Projectile Helper] ;No compatible projectile? Send one of your own.
type = Helper
trigger1 = numhelper(821337) ;Unique Reflector Helper ID
trigger1 = helper(821337), sysvar(0) = 0 ;Unique Reflector SysVar was reset to 0
trigger1 = AnimElem = 4
trigger1 = anim = 1307
ID = 1050
stateno = 1050
name = "Non-compatible projectile reflected"
postype = p1
pos = 36,-62
ownpal = 1
;---------------------------------------------
[State 7001, Assert]
type = AssertSpecial
trigger1 = 1
flag = noshadow
ignorehitpause = 1
[State 10002, DestroySelf]
type = DestroySelf
trigger1 = animtime = 0
;Psycho Reflector Helper (Reflector)
[Statedef 10025]
type = A
movetype = A
physics = N
ctrl = 0
velset = 0, 0
ownpal = 1
anim = 1022
sprpriority = 4
[State 1000, 5]
type = Projectile
triggerall = root,prevstateno != 1043
trigger1 = time = 1
ProjAnim = 1023
Projhitanim = -1
ProjID = 1020
projpriority = 1
projremovetime = 25
offset = 0, 0
velocity = 0,0
hitflag = MA
attr = S, SA
damage = 99,5
animtype = Hard
guardflag = M
pausetime = 0,12
guard.pausetime = 0,2
hitsound = s3+(parent,var(32)*2),3
guardsound = s3+(parent,var(32)*2), 12
sparkno = 2;+(parent,var(31)*10000)
sparkxy = 70, -77
guard.sparkno = 41;+(parent,var(31)*10000)
ground.type = High
ground.slidetime = 19
ground.hittime = 19
ground.velocity = -4,-9.77564102564102564102564102563869
air.type = High
air.velocity = -4,-9.77564102564102564102564102563869
air.hittime = 13
air.juggle = parent,var(42)*1000
fall = 1
fall.recover = 1
fall.recovertime = 120
getpower = 78,78
givepower = 16,16
ground.cornerpush.veloff = 0
guard.cornerpush.veloff = 0
air.cornerpush.veloff = 0
id = 1020
nochainID = 1020
yaccel = .5
[State 1000, 5]
type = Projectile
triggerall = root,prevstateno = 1043
trigger1 = time = 1
ProjAnim = 1023
Projhitanim = -1
ProjID = 1020
projpriority = 1
projremovetime = 25
offset = 0, 0
velocity = 0,0
hitflag = MAF
attr = S, SA
damage = 99,5
animtype = Hard
guardflag = M
pausetime = 0,12
guard.pausetime = 0,2
hitsound = s3+(parent,var(32)*2),3
guardsound = s3+(parent,var(32)*2), 12
sparkno = 2;+(parent,var(31)*10000)
sparkxy = 70, -77
guard.sparkno = 41;+(parent,var(31)*10000)
ground.type = High
ground.slidetime = 19
ground.hittime = 19
ground.velocity = -4,-9.77564102564102564102564102563869
air.type = High
air.velocity = -4,-9.77564102564102564102564102563869
air.hittime = 13
air.juggle = parent,var(42)*1000
fall = 1
fall.recover = 1
fall.recovertime = 120
getpower = 78,78
givepower = 16,16
ground.cornerpush.veloff = 0
guard.cornerpush.veloff = 0
air.cornerpush.veloff = 0
id = 1020
nochainID = 1020
yaccel = .5
[State 10005, AEGIS]
type = HitOverRide
trigger1 = 1
attr = SCA, AP
stateno = 10029
ignorehitpause = 0
[State 10005]
type = BindToParent
trigger1 = 1
pos = 0,0
ignorehitpause = 1
[State 10021, Hitby]
type = HitBy
trigger1 = 1
value = SCA, AP
ignorehitpause = 1
;[State 10021 REFLECTOR]
;type = reversaldef
;trigger1 = time = 0
;reversal.attr = SCA,AP
;pausetime = 0,0
;sparkno = -1
;sparkxy = 0,0
;p2stateno = 1580
;p1stateno = 10029
[State 7001, Assert]
type = AssertSpecial
trigger1 = 1
flag = noshadow
ignorehitpause = 1
[State 1000, DestroySelf]
type = DestroySelf
trigger1 = root, stateno != 1020
trigger2 = Root,MoveType = H
trigger3 = time = 25
;Psycho Ball Helper
;Projectile
[Statedef 10000]
type = A
physics = N
ctrl = 0
VelSet = parent,var(15),0
ownpal = 1
sprpriority = 4
anim = 1003
;sysvar(0) ;Vans compatability
;sysvar(1) ;Reflected state behavior (Vans compatabilty)
;sysvar(2) ;Saved Stateno for Reflection/Re-reflection
;sysvar(4) ;Reflection Status (0 = Normal/Re-Reflected, 1 = Reflected)
;----------------------------------------
; Reflection Compatability
;----------------------------------------
[State VANS COMPATIBILITY]
type = VarSet
trigger1 = !time
sysvar(0) = 131072 ;VANS COMPATABILITY
[State VANS COMPATIBILITY REFLECTED STATE]
type = VarSet
trigger1 = !time
sysvar(1) = 821337 ;SHARED REFLECTED STATE, YOU CAN RENAME THIS IF NECESSARY
[State SaveState for Reflection]
type = VarSet
trigger1 = !time
sysvar(2) = StateNo ;Use the same Stateno as this Projectile
;NOTE 1, this State will be explained later.
[State Re-Reflect Compatibility]
type = ChangeState
triggerall = sysvar(4) = 1 ;In Reflected Status
triggerall = MoveContact = 1 ;On 1st Contact
trigger1 = root, numprojID(262144) ;Unique ProjID spawned (VANS)
trigger1 = NumHelper(821337) ;UNIQUE REFLECTOR HELPER
trigger2 = NumPartner ;Partner?
trigger2 = partner, numprojID(262144) ;Partner spawns Unique ProjID (VANS)
trigger2 = partner, NumHelper(821337) ;Partner has UNIQUE REFLECTOR
value = sysvar(1) ;Reflection/Re-Reflect State
ignorehitpause = 1 ;This must be 1
[State 200, snd]
type=playsnd
trigger1= animelem=1
value=1000,1
[State 1000, 5]
type = Projectile
;-------------------------------------
Triggerall = SysVar(4) = 0 ;Normal/Re-Reflected
;-------------------------------------
trigger1 = time = 1
trigger1 != root,NumProjID(1000) = 0
ProjAnim = 1002
Projhitanim = -1
ProjID = 1000
projpriority = 1
offset = 0, 0
velocity = parent,var(15),0
hitflag = MAF
attr = S, SP
damage = 99,5
animtype = Hard
guardflag = M
pausetime = 1,12
guard.pausetime = 0,2
hitsound = s3+(parent,var(32)*2),3
guardsound = s3+(parent,var(32)*2), 12
sparkno = 2;+(parent,var(31)*10000)
sparkxy = 20, -75
guard.sparkno = 41;+(parent,var(31)*10000)
ground.type = High
ground.slidetime = 19
ground.hittime = 19
ground.velocity = -12.61205725171355925864938338293
air.type = High
air.velocity = -4,-7.77564102564102564102564102563869
air.hittime = 13
air.juggle = parent,var(42)*1000+6
air.fall = 1
fall.recover = 1
fall.recovertime = 120
getpower = 78,78
givepower = 16,16
ground.cornerpush.veloff = 0
guard.cornerpush.veloff = 0
air.cornerpush.veloff = 0
yaccel = .5
[State 1000, 5]
type = Projectile
;-------------------------------------
Triggerall = SysVar(4) = 1 ;Normal/Re-Reflected
;-------------------------------------
trigger1 = time = 1
trigger1 != root,NumProjID(1000) = 0
ProjAnim = 1002
Projhitanim = -1
ProjID = 1000
projpriority = 1
offset = 0, 0
velocity = parent,var(15),0
hitflag = MAF
attr = S, SP
damage = 99,5
animtype = Hard
guardflag = M
pausetime = 1,12
guard.pausetime = 0,2
hitsound = s3+(parent,var(32)*2),3
guardsound = s3+(parent,var(32)*2), 12
sparkno = 2;+(parent,var(31)*10000)
sparkxy = 20, -75
guard.sparkno = 41;+(parent,var(31)*10000)
ground.type = High
ground.slidetime = 19
ground.hittime = 19
ground.velocity = -12.61205725171355925864938338293
air.type = High
air.velocity = -4,-7.77564102564102564102564102563869
air.hittime = 13
air.juggle = parent,var(42)*1000+6
air.fall = 1
fall.recover = 1
fall.recovertime = 120
;-------------------------------------
;REFLECTION STATUS
guard.dist = 0 ;NO GUARDDIST FOR OPPONENT
affectteam = F ;ATTACK TEAM MATES
fall.kill = 0 ;RE-REFLECTOR GETHITVAR TRIGGER
;-------------------------------------
getpower = 78,78
givepower = 16,16
ground.cornerpush.veloff = 0
guard.cornerpush.veloff = 0
air.cornerpush.veloff = 0
yaccel = .5
[State 7001, Assert]
type = AssertSpecial
trigger1 = 1
flag = noshadow
ignorehitpause = 1
[State 1000, DestroySelf]
type = DestroySelf
triggerall = time > 1
trigger1 = FrontEdgeDist <= -40
[State 1000, 4]
type = ChangeState
triggerall = time > 1
trigger1 = root,NumProjID(1000) = 0
value = 10001
[Statedef 10001]
type = S
movetype = A
physics = N
ctrl = 0
velset = 0, 0
ownpal = 1
anim = 1004
sprpriority = 4
[State 7001, Assert]
type = AssertSpecial
trigger1 = 1
flag = noshadow
ignorehitpause = 1
[State 10002, DestroySelf]
type = DestroySelf
trigger1 = animtime = 0