actor KaminariKogoro
{
Projectile
+LOOKALLAROUND
+SEEKERMISSILE
-NOTARGETSWITCH
+HITTRACER
+DONTREFLECT
height 16
radius 16

speed 100
damage (0)

scale 2.5

var int user_z;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
TNT1 A 0 A_SetUserVar("user_z",400)
TNT1 AAAAAAAAAAAAAAAA 1 A_SeekerMissile(90, 90, SMF_LOOK|SMF_CURSPEED, 256)
stop
Death:
Crash:
XDeath:
TNT1 A 1 A_JumpIfInventory("CanBeGrabBustered", 1, "TeamCheck", AAPTR_TRACER)
stop
TeamCheck:
TNT1 A 0 A_JumpIfInventory("LightTeamFlag", 1, "LightCheck", AAPTR_TARGET)
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag", 1, "WilyCheck", AAPTR_TARGET)
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag", 1, "CossackCheck", AAPTR_TARGET)
TNT1 A 1 A_JumpIfInventory("KingTeamFlag", 1, "KingCheck", AAPTR_TARGET)
goto OK
LightCheck:
TNT1 A 0 A_JumpIfInventory("LightTeamFlag", 1, "Failed", AAPTR_TRACER)
TNT1 A 1 A_JumpIf(true, "OK")
wait
WilyCheck:
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag", 1, "Failed", AAPTR_TRACER)
TNT1 A 1 A_JumpIf(true, "OK")
wait
CossackCheck:
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag", 1, "Failed", AAPTR_TRACER)
TNT1 A 1 A_JumpIf(true, "OK")
wait
KingCheck:
TNT1 A 0 A_JumpIfInventory("KingTeamFlag", 1, "Failed", AAPTR_TRACER)
TNT1 A 1 A_JumpIf(true, "OK")
wait
OK:
TNT1 A 0 A_GiveInventory("LimitFlag", 1, AAPTR_MASTER)
TNT1 AA 1 A_Warp(AAPTR_TRACER,0,0,300,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO A 1 A_Warp(AAPTR_TRACER,0,0,291,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO A 1 A_Warp(AAPTR_TRACER,0,0,282,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO A 1 A_Warp(AAPTR_TRACER,0,0,273,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO A 1 A_Warp(AAPTR_TRACER,0,0,264,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO A 1 A_Warp(AAPTR_TRACER,0,0,255,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO B 1 A_Warp(AAPTR_TRACER,0,0,246,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO B 1 A_Warp(AAPTR_TRACER,0,0,237,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO B 1 A_Warp(AAPTR_TRACER,0,0,228,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO B 1 A_Warp(AAPTR_TRACER,0,0,219,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO B 1 A_Warp(AAPTR_TRACER,0,0,210,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO C 1 A_Warp(AAPTR_TRACER,0,0,201,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO C 1 A_Warp(AAPTR_TRACER,0,0,192,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO C 1 A_Warp(AAPTR_TRACER,0,0,183,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO C 1 A_Warp(AAPTR_TRACER,0,0,174,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO C 1 A_Warp(AAPTR_TRACER,0,0,165,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO D 1 A_Warp(AAPTR_TRACER,0,0,156,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO D 1 A_Warp(AAPTR_TRACER,0,0,147,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO D 1 A_Warp(AAPTR_TRACER,0,0,138,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO D 1 A_Warp(AAPTR_TRACER,0,0,129,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KAKO D 1 A_Warp(AAPTR_TRACER,0,0,120,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
KAKO AAAAABBBBBCCCCCDDDDDAAAAAAAA 1 A_Warp(AAPTR_TRACER,0,0,120,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
KAKO D 0 A_PlaySoundEx("assist/kaminari","Body")
KAKO EFGEFGEFGEFGAAAAAAAAAAAAAAA 1 A_Warp(AAPTR_TRACER,0,0,120,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
KAKO D 0 A_PlaySoundEx("assist/kaminari","Body")
KAKO EFGEFGEFGEFGAAAAAAAAAAAAAAA 1 A_Warp(AAPTR_TRACER,0,0,120,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
KAKO D 0 A_PlaySoundEx("assist/kaminari","Body")
KAKO EFGEFGEFGEFGAA 1 A_Warp(AAPTR_TRACER,0,0,120,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
KAKO D 0 A_PlaySoundEx("weapon/cloudbolt","Body")
KAKO D 0 A_PlaySoundEx("weapon/thunderbolt","Auto")
KAKO D 0 A_SpawnItemEx("KaminariBolt",0,0,0,0,0,-20,0,1)
KAKO EFGEFGEFGEFGEFGEFGAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
KAKO DDDDDCCCCCBBBBBAAAAADDDDDCCCCCBBBBBAAAAA 1 ThrustThingZ(0,30,0,0)
KAKO D 0 A_TakeInventory("LimitFlag", 1, AAPTR_MASTER)
stop
Failed:
TNT1 A 0
stop
}
}

actor KaminariBolt
{
radius 8
height 8
scale 2.5
PROJECTILE
+RIPPER
damagetype "KaminariKogoro"
Obituary "$OB_KAMI"
damage(6)
+DONTBLAST
+SKYEXPLODE
+DONTREFLECT
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
KAKO J 1 A_SpawnItemEx("KamiBoltTrail1",0,0,0,0,0,0,0,1)
KAKO J 1 A_SpawnItemEx("KamiBoltTrail2",0,0,0,0,0,0,0,1)
goto Spawn+2
Death:
TNT1 A 0
stop
}
}

actor KamiBoltTrail1 : KaminariBolt
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1
KAKO H 7
stop
}
}

actor KamiBoltTrail2 : KaminariBolt
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1
KAKO I 7
stop
}
}

actor KaminariKogoroProtect : PowerProtection
{
Powerup.Duration 35
DamageFactor "KaminariKogoro", 0.0
}

actor KamiDebuffWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+DONTREFLECT
+MISSILE
Renderstyle add
scale 1.5
reactiontime 29//59
States
{
Spawn:
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_PlaySoundEx("assist/kamishock","Body")
TNT1 A 0 A_GiveToTarget("GalaxyFlySlow",1)
KAKO KN 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
KAKO LO 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
KAKO MP 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 0 A_TakeFromTarget("GalaxyFlySlow",1)
stop
}
}