ACTOR SparkFlare_O1
{
    Height 0
    Radius 0
    Mass 0
    +MISSILE
    +NOBLOCKMAP
    +NOCLIP
    +NOGRAVITY
    +NOINTERACTION
    +CLIENTSIDEONLY
    RenderStyle Add
    Scale 0.25
    States
    {
    Spawn:
        SPK0 A 1 Bright A_FadeOut(0.1)
        Loop
    }
}

ACTOR SparkFlare_O2 : SparkFlare_O1 { States { Spawn: SPKO B 1 Bright A_FadeOut (0.1) Loop } }
ACTOR SparkFlare_O3 : SparkFlare_O1 { States { Spawn: SPKO C 1 Bright A_FadeOut (0.1) Loop } }
ACTOR SparkFlare_O4 : SparkFlare_O1 { States { Spawn: SPKO D 1 Bright A_FadeOut (0.1) Loop } }
ACTOR SparkFlare_O5 : SparkFlare_O1 { States { Spawn: SPKO E 1 Bright A_FadeOut (0.1) Loop } }
ACTOR SparkFlare_O6 : SparkFlare_O1 { States { Spawn: SPKO F 1 Bright A_FadeOut (0.1) Loop } }

ACTOR OrangeSparkSpawner 6666
{    
    //$Category "Ghouls vs Humans Decoration"
    //$Title Orange Spark
    Height 8
    Radius 4
    +NOBLOCKMAP
    +NOGRAVITY
    +NOINTERACTION
    +CLIENTSIDEONLY
    +NOCLIP
    States
    {
    Spawn:
        TNT1 A 0
        //TNT1 A 0 A_JumpIf(Args[2]>0,"Inactive")
        TNT1 A 10 A_Jump(Args[1]/16,"Active")
        Loop
    Active:
        TNT1 A 0
        TNT1 A 0 A_PlaySound("World/Spark")
        TNT1 A 0 A_Jump(256,1,2,3,4,5,6)
        TNT1 A 1 A_SpawnItemEx("SparkFlare_O1",0,0,0,0,0,0,0,128)
        Goto SpawnSparks
        TNT1 A 1 A_SpawnItemEx("SparkFlare_O2",0,0,0,0,0,0,0,128)
        Goto SpawnSparks
        TNT1 A 1 A_SpawnItemEx("SparkFlare_O3",0,0,0,0,0,0,0,128)
        Goto SpawnSparks
        TNT1 A 1 A_SpawnItemEx("SparkFlare_O4",0,0,0,0,0,0,0,128)
        Goto SpawnSparks
        TNT1 A 1 A_SpawnItemEx("SparkFlare_O5",0,0,0,0,0,0,0,128)
        Goto SpawnSparks
        TNT1 A 1 A_SpawnItemEx("SparkFlare_O6",0,0,0,0,0,0,0,128)
        Goto SpawnSparks
    SpawnSparks:
        TNT1 A 0 A_JumpIf(Args[0]==1,"SpawnDown")
        TNT1 A 0 A_JumpIf(Args[0]>1,"SpawnSide")
        Goto SpawnUp
    SpawnUp:
        TNT1 AA 0 A_CustomMissile("Spark_O1",0,0,Random(0,360),2,Random(67,113))
        TNT1 AA 0 A_CustomMissile("Spark_O2",0,0,Random(0,360),2,Random(67,113))
        TNT1 AA 0 A_CustomMissile("Spark_O3",0,0,Random(0,360),2,Random(67,113))
        TNT1 AA 0 A_CustomMissile("Spark_O4",0,0,Random(0,360),2,Random(67,113))
        TNT1 AA 0 A_CustomMissile("Spark_O5",0,0,Random(0,360),2,Random(67,113))
        TNT1 AA 0 A_CustomMissile("Spark_O6",0,0,Random(0,360),2,Random(67,113))
        TNT1 AA 0 A_CustomMissile("Spark_O7",0,0,Random(0,360),2,Random(67,113))
        TNT1 AA 0 A_CustomMissile("Spark_O8",0,0,Random(0,360),2,Random(67,113))
        TNT1 AA 0 A_CustomMissile("Spark_O9",0,0,Random(0,360),2,Random(67,113))
        TNT1 AA 0 A_CustomMissile("Spark_O10",0,0,Random(0,360),2,Random(67,113))
        TNT1 AA 0 A_CustomMissile("Spark_O11",0,0,Random(0,360),2,Random(67,113))
        TNT1 AA 0 A_CustomMissile("Spark_O12",0,0,Random(0,360),2,Random(67,113))
        TNT1 AA 0 A_CustomMissile("Spark_O13",0,0,Random(0,360),2,Random(67,113))
        TNT1 AA 0 A_CustomMissile("Spark_O14",0,0,Random(0,360),2,Random(67,113))
        TNT1 AA 0 A_CustomMissile("Spark_O15",0,0,Random(0,360),2,Random(67,113))
        TNT1 AA 0 A_CustomMissile("Spark_O16",0,0,Random(0,360),2,Random(67,113))
        TNT1 A 1 A_JumpIf(Args[2]>0,1)
        Goto Spawn
        TNT1 A 1
        Goto Inactive
    SpawnDown:
        TNT1 AA 0 A_CustomMissile("Spark_O1",0,0,Random(0,360),2,Random(-67,-113))
        TNT1 AA 0 A_CustomMissile("Spark_O2",0,0,Random(0,360),2,Random(-67,-113))
        TNT1 AA 0 A_CustomMissile("Spark_O3",0,0,Random(0,360),2,Random(-67,-113))
        TNT1 AA 0 A_CustomMissile("Spark_O4",0,0,Random(0,360),2,Random(-67,-113))
        TNT1 AA 0 A_CustomMissile("Spark_O5",0,0,Random(0,360),2,Random(-67,-113))
        TNT1 AA 0 A_CustomMissile("Spark_O6",0,0,Random(0,360),2,Random(-67,-113))
        TNT1 AA 0 A_CustomMissile("Spark_O7",0,0,Random(0,360),2,Random(-67,-113))
        TNT1 AA 0 A_CustomMissile("Spark_O8",0,0,Random(0,360),2,Random(-67,-113))
        TNT1 AA 0 A_CustomMissile("Spark_O9",0,0,Random(0,360),2,Random(-67,-113))
        TNT1 AA 0 A_CustomMissile("Spark_O10",0,0,Random(0,360),2,Random(-67,-113))
        TNT1 AA 0 A_CustomMissile("Spark_O11",0,0,Random(0,360),2,Random(-67,-113))
        TNT1 AA 0 A_CustomMissile("Spark_O12",0,0,Random(0,360),2,Random(-67,-113))
        TNT1 AA 0 A_CustomMissile("Spark_O13",0,0,Random(0,360),2,Random(-67,-113))
        TNT1 AA 0 A_CustomMissile("Spark_O14",0,0,Random(0,360),2,Random(-67,-113))
        TNT1 AA 0 A_CustomMissile("Spark_O15",0,0,Random(0,360),2,Random(-67,-113))
        TNT1 AA 0 A_CustomMissile("Spark_O16",0,0,Random(0,360),2,Random(-67,-113))
        TNT1 A 1 A_JumpIf(Args[2]>0,1)
        Goto Spawn
        TNT1 A 1
        Goto Inactive
    SpawnSide:
        TNT1 AA 0 A_CustomMissile("Spark_O1",0,0,Random(-23,23),2,Random(157,203))
        TNT1 AA 0 A_CustomMissile("Spark_O2",0,0,Random(-23,23),2,Random(157,203))
        TNT1 AA 0 A_CustomMissile("Spark_O3",0,0,Random(-23,23),2,Random(157,203))
        TNT1 AA 0 A_CustomMissile("Spark_O4",0,0,Random(-23,23),2,Random(157,203))
        TNT1 AA 0 A_CustomMissile("Spark_O5",0,0,Random(-23,23),2,Random(157,203))
        TNT1 AA 0 A_CustomMissile("Spark_O6",0,0,Random(-23,23),2,Random(157,203))
        TNT1 AA 0 A_CustomMissile("Spark_O7",0,0,Random(-23,23),2,Random(157,203))
        TNT1 AA 0 A_CustomMissile("Spark_O8",0,0,Random(-23,23),2,Random(157,203))
        TNT1 AA 0 A_CustomMissile("Spark_O9",0,0,Random(-23,23),2,Random(157,203))
        TNT1 AA 0 A_CustomMissile("Spark_O10",0,0,Random(-23,23),2,Random(157,203))
        TNT1 AA 0 A_CustomMissile("Spark_O11",0,0,Random(-23,23),2,Random(157,203))
        TNT1 AA 0 A_CustomMissile("Spark_O12",0,0,Random(-23,23),2,Random(157,203))
        TNT1 AA 0 A_CustomMissile("Spark_O13",0,0,Random(-23,23),2,Random(157,203))
        TNT1 AA 0 A_CustomMissile("Spark_O14",0,0,Random(-23,23),2,Random(157,203))
        TNT1 AA 0 A_CustomMissile("Spark_O15",0,0,Random(-23,23),2,Random(157,203))
        TNT1 AA 0 A_CustomMissile("Spark_O16",0,0,Random(-23,23),2,Random(157,203))
        TNT1 A 1 A_JumpIf(Args[2]>0,1)
        Goto Spawn
        TNT1 A 1
        Goto Inactive
    Inactive:
        TNT1 A -1
        Loop
    }
}

ACTOR Spark_O1
{
    Height 1
    Radius 2
    Mass 0
    Speed 0.25
    +MISSILE
    +NOBLOCKMAP
    +LOWGRAVITY
    +CLIENTSIDEONLY
    RenderStyle Add
    Scale 0.025
    States
    {
    Spawn:
        SP0O E 1 Bright
        Loop
    Death:
        SP0O E 1 Bright A_FadeOut(0.1)
        Loop
    }
}

ACTOR Spark_O2 : Spark_O1  { Speed 0.5  }
ACTOR Spark_O3 : Spark_O1  { Speed 0.75 }
ACTOR Spark_O4 : Spark_O1  { Speed 1.0  }
ACTOR Spark_O5 : Spark_O1  { Speed 1.25 }
ACTOR Spark_O6 : Spark_O1  { Speed 1.5  }
ACTOR Spark_O7 : Spark_O1  { Speed 1.75 }
ACTOR Spark_O8 : Spark_O1  { Speed 2.0  }
ACTOR Spark_O9 : Spark_O1  { Speed 2.25 }
ACTOR Spark_O10 : Spark_O1 { Speed 2.5  }
ACTOR Spark_O11 : Spark_O1 { Speed 2.75 }
ACTOR Spark_O12 : Spark_O1 { Speed 3.0  }
ACTOR Spark_O13 : Spark_O1 { Speed 3.25 }
ACTOR Spark_O14 : Spark_O1 { Speed 3.5  }
ACTOR Spark_O15 : Spark_O1 { Speed 3.75 }
ACTOR Spark_O16 : Spark_O1 { Speed 4.0  }


ACTOR GvH23SteamSpawner 666
{    
    //$Category "Ghouls vs Humans Decoration"
    //$Title Steam 4
    Height 2
    Radius 1
    Mass 0
    +NOBLOCKMAP
    +NOGRAVITY
    +NOINTERACTION
    +CLIENTSIDEONLY
    States
    {
    Spawn:
    Active:
        TNT1 A 0
        TNT1 A 0 A_JumpIf(Args[0]==1,"Down")
        TNT1 A 0 A_JumpIf(Args[0]>1,"Forward")
        TNT1 A 0 A_JumpIf(Args[1]>0,"UpBurst")
        TNT1 A 0 A_JumpIf(Args[3]>0,2)
	    TNT1 A 0 A_PlaySound("Steam/Loop",7,0.5,1,ATTN_NORM)
        TNT1 A 1 A_SpawnItemEx("SteamParticle",0,0,1,(0.1)*Random(0,4),0,(0.1)*Random(35,40),Random(0,360),128)
        Loop
    Down:
        TNT1 A 0 A_JumpIf(Args[1]>0,"DownBurst")
        TNT1 A 0 A_JumpIf(Args[3]>0,2)
	    TNT1 A 0 A_PlaySound("Steam/Loop",7,0.5,1,ATTN_NORM)
        TNT1 A 1 A_SpawnItemEx("SteamParticle",0,0,0,(0.1)*Random(0,4),0,(-0.1)*Random(35,40),Random(0,360),128)
        Loop
    Forward:
        TNT1 A 0 A_JumpIf(Args[1]>0,"ForwardBurst")
        TNT1 A 0 A_JumpIf(Args[3]>0,2)
	    TNT1 A 0 A_PlaySound("Steam/Loop",7,0.5,1,ATTN_NORM)
        TNT1 A 1 A_SpawnItemEx("SteamParticle",0,0,0,(0.1)*Random(35,40),0,(0.1)*Random(-5,5),Random(-8,8),128)
        Loop
    UpBurst:
        TNT1 A 1 A_Jump(Args[2]/16,1)
        Loop
        TNT1 A 0 A_JumpIf(Args[3]>0,2)
        TNT1 A 0 A_PlaySoundEx("Steam/Fire","SoundSlot7",0)
        TNT1 AAAAAAAAAA 1 A_SpawnItemEx("SteamParticle",0,0,1,(0.1)*Random(0,4),0,(0.1)*Random(35,40),Random(0,360),128)
        TNT1 AAAAAAAAAA 1 A_SpawnItemEx("SteamParticle",0,0,1,(0.1)*Random(0,4),0,(0.1)*Random(35,40),Random(0,360),128)
        TNT1 AAAAAAAAAA 1 A_SpawnItemEx("SteamParticle",0,0,1,(0.1)*Random(0,4),0,(0.1)*Random(35,40),Random(0,360),128)
        Loop
    DownBurst:
        TNT1 A 1 A_Jump(Args[2]/16,1)
        Loop
        TNT1 A 0 A_JumpIf(Args[3]>0,2)
        TNT1 A 0 A_PlaySoundEx("Steam/Fire","SoundSlot7",0)
        TNT1 AAAAAAAAAA 1 A_SpawnItemEx("SteamParticle",0,0,0,(0.1)*Random(0,4),0,(-0.1)*Random(35,40),Random(0,360),128)
        TNT1 AAAAAAAAAA 1 A_SpawnItemEx("SteamParticle",0,0,0,(0.1)*Random(0,4),0,(-0.1)*Random(35,40),Random(0,360),128)
        TNT1 AAAAAAAAAA 1 A_SpawnItemEx("SteamParticle",0,0,0,(0.1)*Random(0,4),0,(-0.1)*Random(35,40),Random(0,360),128)
        Loop
    ForwardBurst:
        TNT1 A 1 A_Jump(Args[2]/16, 1)
        Loop
        TNT1 A 0 A_JumpIf(Args[3]>0,2)
        TNT1 A 0 A_PlaySoundEx("Steam/Fire","SoundSlot7",0)
        TNT1 AAAAAAAAAA 1 A_SpawnItemEx("SteamParticle",0,0,0,(0.1)*Random(35,40),0,(0.1)*Random(-5,5),Random(-8,8),128)
        TNT1 AAAAAAAAAA 1 A_SpawnItemEx("SteamParticle",0,0,0,(0.1)*Random(35,40),0,(0.1)*Random(-5,5),Random(-8,8),128)
        TNT1 AAAAAAAAAA 1 A_SpawnItemEx("SteamParticle",0,0,0,(0.1)*Random(35,40),0,(0.1)*Random(-5,5),Random(-8,8),128)
        Loop
    Inactive:
        TNT1 A 1 A_StopSoundEx("SoundSlot7")
        TNT1 A 1
        Goto Inactive+1
    }
}

ACTOR SteamParticle
{
    Height 1
    Radius 1
    +MISSILE
    +NOGRAVITY
    +NOBLOCKMAP
    RenderStyle Add
    Scale 0.4
    Alpha 0.65
    States
    {
    Spawn:
        STEM A 2 A_SetTranslucent(0.6, 1)
        STEM B 2 A_SetTranslucent(0.55, 1)
        STEM C 2 A_SetTranslucent(0.5, 1)
        STEM D 2 A_SetTranslucent(0.45, 1)
        STEM E 2 A_SetTranslucent(0.4, 1)
        STEM F 2 A_SetTranslucent(0.35, 1)
        STEM G 2 A_SetTranslucent(0.3, 1)
        STEM H 2 A_SetTranslucent(0.25, 1)
        STEM I 2 A_SetTranslucent(0.2, 1)
        STEM J 2 A_SetTranslucent(0.15, 1)
        STEM K 2 A_SetTranslucent(0.1, 1)
        STEM L 2 A_SetTranslucent(0.05, 1)
        Stop
    }
}
