//Powerprotect increased: 4 > 19
//Crazy shot wave only happens once now, other shots will be a much weaker spread
actor Sprinklan
{
translation "192:192=[248,112,96]:[248,112,96]"
+DOOMBOUNCE
-BOUNCEONACTORS
-BOUNCEONFLOORS
+MISSILE
+LOOKALLAROUND
+NOTARGETSWITCH
+STANDSTILL
+SHOOTABLE
+NOEXPLODEFLOOR
+SEEKERMISSILE
+RIPPER
-EXTREMEDEATH
+NOBLOOD
+FLOORHUGGER
+DONTREFLECT
health 99999
painchance 256
mass 99999
height 16
radius 21
speed 0
damage (7)
damagetype "Bikky"//"Gayo"
Obituary "$OB_SPRINKLAN"
species "SprinklanType"
+THRUSPECIES
WallBounceFactor 1
Scale 2.5
var int user_hitOnce;

States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
TNT1 A 0 A_GiveInventory("WeaponCharge",35)
5PR1 A 0 A_GiveInventory("LimitFlag", 1, AAPTR_TARGET)
goto Move

Move:
TNT1 A 0 A_JumpIfInventory("WeaponCharge",35,"SetFlag")
TNT1 A 0 A_JumpIfInventory("CutterFlag",525,"Death")
5PR1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_GiveInventory("WeaponCharge",1)
5PR1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
5PR1 A 0 A_ChangeVelocity(7, 0, 0, CVF_RELATIVE | CVF_REPLACE)
5PR1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
5PR1 A 1 A_FaceTracer(15, 0)
loop

SetFlag:
TNT1 A 0 A_ChangeFlag("SHOOTABLE",1)
goto Move+1

Pain:
5PR1 B 0 A_Stop
5PR1 B 0 A_ChangeFlag("INVULNERABLE",1)
5PR1 B 0 A_PlaySoundEx("mm9/reflect","Auto")
5PR1 B 2
5PR1 B 0 A_JumpIf(user_hitOnce == 1,"Pain2")
TNT1 AAAAAAAA 0 A_SpawnItemEx("SprinklanShot",0,0,16,random(1,14),0,random(8,24),random(0,359))
5PR1 C 1 A_PlaySoundEx("misc/brgillusion","Body")
TNT1 AAAAAAAA 0 A_SpawnItemEx("SprinklanShot",0,0,16,random(1,14),0,random(8,24),random(0,359))
5PR1 C 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 BAD 2
TNT1 AAAAAAAA 0 A_SpawnItemEx("SprinklanShot",0,0,16,random(1,14),0,random(8,24),random(0,359))
5PR1 E 1 A_PlaySoundEx("misc/brgillusion","Body")
TNT1 AAAAAAAA 0 A_SpawnItemEx("SprinklanShot",0,0,16,random(1,14),0,random(8,24),random(0,359))
5PR1 E 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 DF 2 A_SetUserVar("user_hitOnce",1)
PainEnd:
5PR1 B 0 A_ChangeFlag("INVULNERABLE",0)
TNT1 A 0 A_GiveInventory("CutterFlag",16)
TNT1 A 0 A_TakeInventory("WeaponCharge",999)
TNT1 A 0 A_ChangeFlag("SHOOTABLE",0)
goto Move

Pain2:
TNT1 A 0 A_SpawnItemEx("SprinklanShot",0,0,16,14,0,12,0)
TNT1 A 0 A_SpawnItemEx("SprinklanShot",0,0,16,14,0,12,90)
TNT1 A 0 A_SpawnItemEx("SprinklanShot",0,0,16,14,0,12,180)
TNT1 A 0 A_SpawnItemEx("SprinklanShot",0,0,16,14,0,12,270)
TNT1 A 0 A_SpawnItemEx("SprinklanShot",0,0,16,0,0,12,0)

5PR1 C 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 C 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 BAD 2
TNT1 A 0 A_SpawnItemEx("SprinklanShot",0,0,16,14,0,12,0)
TNT1 A 0 A_SpawnItemEx("SprinklanShot",0,0,16,14,0,12,45)
TNT1 A 0 A_SpawnItemEx("SprinklanShot",0,0,16,14,0,12,135)
TNT1 A 0 A_SpawnItemEx("SprinklanShot",0,0,16,14,0,12,225)
//TNT1 AAAAAAAA 0 A_SpawnItemEx("SprinklanShot",0,0,16,random(1,14),0,random(8,24),random(0,359))
5PR1 E 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 E 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 DF 2 A_SetUserVar("user_hitOnce",1)
5PR1 D 1 A_Jump(256,"PainEnd")
wait

Death:
5PR1 A 0 A_SpawnItemEx("GenericAssistDeath", 0, 0, height/2)
5PR1 A 0 A_TakeInventory("LimitFlag", 1, 0, AAPTR_TARGET)
stop
}
}

actor SprinklanShot
{
radius 5
height 5
Obituary "$OB_SPRINKLAN"
PROJECTILE
scale 2.5
species "SprinklanType"
+THRUSPECIES
-NOGRAVITY
gravity 1.5
damage(5)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
6ULT X 1
wait
Death:
MMFX BCDE 1 A_ChangeFlag("NOGRAVITY",1)
stop
}
}

actor Sprinklan2 : Sprinklan
{
translation "192:192=251:251"
Obituary "$OB_SPRINKLAN2"
States
{
Pain:
5PR1 B 0 A_Stop
5PR1 B 0 A_ChangeFlag("INVULNERABLE",1)
5PR1 B 0 A_PlaySoundEx("mm9/reflect","Auto")
5PR1 B 2
5PR1 B 0 A_JumpIf(user_hitOnce == 1,"Pain2")
TNT1 AAAAAAAA 0 A_SpawnItemEx("SprinklanShot",0,0,16,random(1,14),0,random(8,24),random(0,359))
5PR1 C 1 A_PlaySoundEx("misc/brgillusion","Body")
TNT1 AAAAAAAA 0 A_SpawnItemEx("SprinklanShot",0,0,16,random(1,14),0,random(8,24),random(0,359))
5PR1 C 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 BAD 2
TNT1 AAAAAAAA 0 A_SpawnItemEx("SprinklanShot",0,0,16,random(1,14),0,random(8,24),random(0,359))
5PR1 E 1 A_PlaySoundEx("misc/brgillusion","Body")
TNT1 AAAAAAAA 0 A_SpawnItemEx("SprinklanShot",0,0,16,random(1,14),0,random(8,24),random(0,359))
5PR1 E 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 DF 2 A_SetUserVar("user_hitOnce",1)
PainEnd:
5PR1 B 0 A_ChangeFlag("INVULNERABLE",0)
TNT1 A 0 A_GiveInventory("CutterFlag",16)
TNT1 A 0 A_TakeInventory("WeaponCharge",999)
TNT1 A 0 A_ChangeFlag("SHOOTABLE",0)
goto Move

Pain2:
TNT1 A 0 A_SpawnItemEx("SprinklanShot2",0,0,16,14,0,12,0)
TNT1 A 0 A_SpawnItemEx("SprinklanShot2",0,0,16,14,0,12,90)
TNT1 A 0 A_SpawnItemEx("SprinklanShot2",0,0,16,14,0,12,180)
TNT1 A 0 A_SpawnItemEx("SprinklanShot2",0,0,16,14,0,12,270)
TNT1 A 0 A_SpawnItemEx("SprinklanShot2",0,0,16,0,0,12,0)

5PR1 C 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 C 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 BAD 2
TNT1 A 0 A_SpawnItemEx("SprinklanShot2",0,0,16,14,0,12,0)
TNT1 A 0 A_SpawnItemEx("SprinklanShot2",0,0,16,14,0,12,45)
TNT1 A 0 A_SpawnItemEx("SprinklanShot2",0,0,16,14,0,12,135)
TNT1 A 0 A_SpawnItemEx("SprinklanShot2",0,0,16,14,0,12,225)
//TNT1 AAAAAAAA 0 A_SpawnItemEx("SprinklanShot",0,0,16,random(1,14),0,random(8,24),random(0,359))
5PR1 E 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 E 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 DF 2 A_SetUserVar("user_hitOnce",1)
5PR1 D 1 A_Jump(256,"PainEnd")
wait
}
}

actor SprinklanShot2 : SprinklanShot
{
Obituary "$OB_SPRINKLAN2"
}

actor Sprinklan3 : Sprinklan
{
translation "192:192=205:205"
Obituary "$OB_SPRINKLAN3"
States
{
Pain:
5PR1 B 0 A_Stop
5PR1 B 0 A_ChangeFlag("INVULNERABLE",1)
5PR1 B 0 A_PlaySoundEx("mm9/reflect","Auto")
5PR1 B 2
5PR1 B 0 A_JumpIf(user_hitOnce == 1,"Pain2")
TNT1 AAAAAAAA 0 A_SpawnItemEx("SprinklanShot",0,0,16,random(1,14),0,random(8,24),random(0,359))
5PR1 C 1 A_PlaySoundEx("misc/brgillusion","Body")
TNT1 AAAAAAAA 0 A_SpawnItemEx("SprinklanShot",0,0,16,random(1,14),0,random(8,24),random(0,359))
5PR1 C 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 BAD 2
TNT1 AAAAAAAA 0 A_SpawnItemEx("SprinklanShot",0,0,16,random(1,14),0,random(8,24),random(0,359))
5PR1 E 1 A_PlaySoundEx("misc/brgillusion","Body")
TNT1 AAAAAAAA 0 A_SpawnItemEx("SprinklanShot",0,0,16,random(1,14),0,random(8,24),random(0,359))
5PR1 E 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 DF 2 A_SetUserVar("user_hitOnce",1)
PainEnd:
5PR1 B 0 A_ChangeFlag("INVULNERABLE",0)
TNT1 A 0 A_GiveInventory("CutterFlag",16)
TNT1 A 0 A_TakeInventory("WeaponCharge",999)
TNT1 A 0 A_ChangeFlag("SHOOTABLE",0)
goto Move

Pain2:
TNT1 A 0 A_SpawnItemEx("SprinklanShot3",0,0,16,14,0,12,0)
TNT1 A 0 A_SpawnItemEx("SprinklanShot3",0,0,16,14,0,12,90)
TNT1 A 0 A_SpawnItemEx("SprinklanShot3",0,0,16,14,0,12,180)
TNT1 A 0 A_SpawnItemEx("SprinklanShot3",0,0,16,14,0,12,270)
TNT1 A 0 A_SpawnItemEx("SprinklanShot3",0,0,16,0,0,12,0)

5PR1 C 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 C 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 BAD 2
TNT1 A 0 A_SpawnItemEx("SprinklanShot3",0,0,16,14,0,12,0)
TNT1 A 0 A_SpawnItemEx("SprinklanShot3",0,0,16,14,0,12,45)
TNT1 A 0 A_SpawnItemEx("SprinklanShot3",0,0,16,14,0,12,135)
TNT1 A 0 A_SpawnItemEx("SprinklanShot3",0,0,16,14,0,12,225)
//TNT1 AAAAAAAA 0 A_SpawnItemEx("SprinklanShot",0,0,16,random(1,14),0,random(8,24),random(0,359))
5PR1 E 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 E 1 A_PlaySoundEx("misc/brgillusion","Body")
5PR1 DF 2 A_SetUserVar("user_hitOnce",1)
5PR1 D 1 A_Jump(256,"PainEnd")
wait
}
}

actor SprinklanShot3 : SprinklanShot
{
Obituary "$OB_SPRINKLAN3"
}

actor SprinklanSummon : GenericAssistCapsule
{
-NOGRAVITY
States
{
Assist:
TNT1 A 0 A_Jump(256, "Assist1", "Assist2", "Assist3")
Assist1:
TNT1 A 0 A_SpawnItemEx("Sprinklan", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
goto Death+2
Assist2:
TNT1 A 0 A_SpawnItemEx("Sprinklan2", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
goto Death+2
Assist3:
TNT1 A 0 A_SpawnItemEx("Sprinklan3", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
goto Death+2
}
}