
Actor EffectBase // This actor was made by TheCamaleonMaligno to be used as base for effects (actor taken from  lo-mio)
{
	RenderStyle Add
	+NOINTERACTION
	+CLIENTSIDEONLY
	+FORCEXYBILLBOARD
	+NOBLOCKMAP
	+DONTSPLASH
	+THRUACTORS
	+NOTRIGGER
	+NOBLOCKMONST
//	+NOTONAUTOMAP
	Radius 0.5
	Height 1
	Gravity 0.66
	Species "VFX"
}
Actor InvBoolean : Inventory { +INVENTORY.UNDROPPABLE }
Actor Q2BulletPuff : BulletPuff Replaces BulletPuff
{
	-ALLOWPARTICLES
	VSpeed 0
	DamageType Bullet
	Decal BulletChip
	States
	{
	Spawn:
		TNT1 AAAAAAAAAAAAA 0 A_SpawnItemEx(Q2BulletPuffParticle,FRandom(0,12),0,FRandom(-8,15),FRandom(0,0.5),0,FRandom(-1,-0.1),Random(1,360))
		TNT1 A 0 A_Jump(128,"Null")
		TNT1 A 0 A_PlaySound("World/Ricochet",1,0.5)
		TNT1 A 0 A_SpawnItem(Q2BulletPuffFlash)
		Stop
	}
}
Actor Q2BulletPuffParticle : EffectBase
{
	+BRIGHT
	RenderStyle Normal
	Scale 1.5
	States
	{
	Spawn:
		P001 ABCDEFGH 0 A_Jump(64,"Fade")
		Loop
	Fade:
		"----" A 5
		"----" A 1 A_FadeOut
		Wait
	}
}
Actor Q2BulletPuffFlash : EffectBase
{
	States
	{
	Spawn:	
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx(Q2BulletPuffSmoke,0,0,0,0,0,FRandom(0,0.5))
		PUFF A 5 Bright
		PUFF B 1 Bright
		Stop
	}
}
Actor Q2BulletPuffSmoke : EffectBase
{
	RenderStyle Translucent
	States
	{
	Spawn:	
		TNT1 A 0
		PUFF ABC 4 A_FadeOut(0.25)
		PUFF D 2
		Stop
	}
}
Actor Q2Blood : Blood Replaces Blood
{
	-ALLOWPARTICLES
	Translation "80:100=[255,128,0]:[255,0,0]", "101:111=[255,0,0]:[98,0,0]"
	States
	{
	Spawn:
		TNT1 AAAAAAAAAAAAA 0 A_SpawnItemEx(Q2BulletPuffParticle,FRandom(0,12),0,FRandom(-8,15),FRandom(0,0.5),0,FRandom(-1,-0.1),Random(1,360),SXF_TRANSFERTRANSLATION)
		Stop
	}
}
Actor Q2BloodSplatter : Q2Blood Replaces BloodSplatter {}
Actor Q2GibSpawner : EffectBase
{
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_XScream
		TNT1 AAAAAAAA 0 A_SpawnItemEx(Q2Gib,Random2(20),0,Random(0,50),Random(0,5),0,Random(0,10),Random(1,360))
		TNT1 A 1
		Stop
	}
}
Actor Q2Gib : EffectBase
{
	Projectile
	RenderStyle Normal
	-DONTSPLASH -NOINTERACTION -NOGRAVITY +DOOMBOUNCE +MOVEWITHSECTOR
	BounceFactor 0.5
	BounceCount 2
	Speed 10
	Scale 1.5
	Var Int User_Angle;
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetUserVar(User_Angle,Random(6,20))
		Goto Decide
		TNT1 A 0 A_SetUserVar(User_Angle,Random(-20,-6))
		Goto Decide
	Decide:
		NULL ABC 0 A_Jump(64,"Flying")
		Loop
	Flying:
		"----" AAA 0 A_SpawnItemEx(Q2GibTrail,FRandom(0,8),0,FRandom(-8,8),FRandom(0,0.25),0,-0.33,Random(1,360))
		"----" A 0 A_SetPitch(Pitch+User_Angle)
		"----" A 1 A_SetAngle(Angle+User_Angle)
		Loop
	Death:
		"----" A 700
		"----" A 35 A_CheckSight("Null")
		Wait
	}
}
Actor Q2GibTrail : Q2BulletPuffParticle
{
	Translation "80:100=[255,128,0]:[255,0,0]", "101:111=[255,0,0]:[98,0,0]"
	States
	{
	Fade:
		"----" A 20
		"----" A 1 A_FadeOut
		Wait
	}
}
Actor Q2Explosion : EffectBase
{
	RenderStyle Translucent
	+BRIGHT
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_SetAngle(Random(1,360))
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(Q2ExplosionParticle,0,0,Random(0,15),FRandom(-5,5),Random(-5,5),Random(-5,5))
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(Q2ExplosionParticle,0,0,Random(0,15),FRandom(-5,5),Random(-5,5),Random(-5,5))
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(Q2ExplosionParticle,0,0,Random(0,15),FRandom(-5,5),Random(-5,5),Random(-5,5))
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(Q2ExplosionParticle,0,0,Random(0,15),FRandom(-5,5),Random(-5,5),Random(-5,5))
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(Q2ExplosionParticle,0,0,Random(0,15),FRandom(-5,5),Random(-5,5),Random(-5,5))
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(Q2ExplosionParticle,0,0,Random(0,15),FRandom(-5,5),Random(-5,5),Random(-5,5))
	Decide:
		TNT1 A 0 A_Jump(256,"Spawn1","Spawn2","Spawn3")
		Stop
	Spawn1:
		XPL0 AB 3 Light(Explosion_X1)
		XPL0 CD 3 Light(Explosion_X2)
		XPL0 EF 3 Light(Explosion_X3)
		XPL0 GH 3 Light(Explosion_X4)
		XPL0 IJ 3 Light(Explosion_X5) A_FadeOut(0.16)
		XPL0 KL 3 Light(Explosion_X6) A_FadeOut(0.16)
		XPL0 MN 3 Light(Explosion_X7) A_FadeOut(0.16)
		Stop
	Spawn2:
		XPL1 AB 3 Light(Explosion_X1)
		XPL1 CD 3 Light(Explosion_X2)
		XPL1 EF 3 Light(Explosion_X3)
		XPL1 GH 3 Light(Explosion_X4)
		XPL1 IJ 3 Light(Explosion_X5) A_FadeOut(0.16)
		XPL1 KL 3 Light(Explosion_X6) A_FadeOut(0.16)
		XPL1 MNO 3 Light(Explosion_X7) A_FadeOut(0.16)
		Stop
	Spawn3:
		TNT1 A 0 A_CheckFloor(1)
		Goto Decide
		XPL2 ABC 2 Light(Explosion_X1)
		XPL2 DEF 3 Light(Explosion_X2)
		XPL2 GHI 2 Light(Explosion_X3)
		XPL2 JKL 3 Light(Explosion_X4)
		XPL2 MNO 2 Light(Explosion_X5) A_FadeOut(0.16)
		XPL2 OP 3 Light(Explosion_X6) A_FadeOut(0.16)
		XPL2 QRS 2 Light(Explosion_X7) A_FadeOut(0.16)
		Stop
	}
}
Actor Q2ExplosionParticle : Q2BulletPuffParticle
{
	Translation "80:111=208:223"
	Scale 1
	States
	{
	Fade:
		"----" A 0 A_Jump(128,3,4,5)
		"----" AAAAA 4 Bright
		Stop
	}
}
Actor GreenPuff : EffectBase
{
	Translation "80:95=[255,255,0]:[0,255,0]", "96:111=[0,255,0]:[0,32,0]"
	Scale 1
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_PlaySound("Weapons/LaserHit")
		TNT1 AAAAAAAAAAAAA 0 A_SpawnItemEx(Q2BulletPuffParticleAdd,FRandom(0,5),0,FRandom(-5,5),FRandom(0,0.5),0,FRandom(-1,-0.1),Random(1,360),1|SXF_TRANSFERSCALE)
		Stop
	}
}
Actor Q2BulletPuffParticleAdd : Q2BulletPuffParticle { RenderStyle Add } // cuz SXF_TRANSFERRENDERSTYLE flag does not work in zandronum 3.0
Actor Q2TeleportFog : TeleportFog Replaces TeleportFog
{
	+NOINTERACTION +CLIENTSIDEONLY
	Translation "80:101=[255,255,0]:[0,255,0]", "102:111=[0,255,0]:[0,64,0]"
	Scale 1.1
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_JumpIfCloser(64,2)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_NOCHECKPOSITION)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(Q2BulletPuffParticleAdd,Random(0,24),0,Random(0,64),FRandom(0,1),0,FRandom(-2,0),Random(1,360),1|SXF_TRANSFERSCALE)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(Q2BulletPuffParticleAdd,Random(0,24),0,Random(0,64),FRandom(0,1),0,FRandom(-2,0),Random(1,360),1|SXF_TRANSFERSCALE)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(Q2BulletPuffParticleAdd,Random(0,24),0,Random(0,64),FRandom(0,1),0,FRandom(-2,0),Random(1,360),1|SXF_TRANSFERSCALE)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(Q2BulletPuffParticleAdd,Random(0,24),0,Random(0,64),FRandom(0,1),0,FRandom(-2,0),Random(1,360),1|SXF_TRANSFERSCALE,128)
		Stop
	}
}
Actor HUDLowHP : InvBoolean {} 
Actor HUDHPDown : InvBoolean {} 
Actor HUDArmorDown : InvBoolean {} 
Actor wea : Q2BulletPuffParticle
{
	+NOTIMEFREEZE Scale 2 
	Var Int User_Offset[3];
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_Warp(AAPTR_TARGET,User_Offset[0],User_Offset[1],User_Offset[2],0,WARPF_NOCHECKPOSITION)
		Goto Super::Spawn
	}
}
#Include "Actors/Player.q2"
#Include "Actors/Weapons.q2"
#Include "Actors/Items.q2"
#Include "Actors/Enemies.q2"
#Include "Actors/Decoration.q2"
#Include "Actors/casing.q2"