// spikeset, originally by Spike
// with contributions from TimeServ, purplehaze, Jedilamma
// and some others I probably forgot to mention
/////////////////////////////////////////////////
//rocket trails (derived from purplehaze's, with only minor tweeks)
r_part rockettrail
{
	texture "particles/smoke.tga"
	count 0.25
	scale 30
	alpha 0.3
	die 1.4
	diesubrand 0.7
	randomvel 1
	rgb 255 50 10
	rgbdelta -230 -45 -9
	gravity -25
	scalefactor 1
	assoc rocketsmoke
}

r_part t_rocket
{
	texture "particles/rfire"
	count 0.5
	scale 10
	alpha 0.6
	die 0.25
	rgb 255 192 128
	rgbdelta -14 -300 -300
	blend add
	assoc rockettrail
	scalefactor 0.8
	scaledelta -10
}

r_part rocketsmoke
{
	texture "particles/rtrail"
	step 8
	scale 7.5
	alpha 0.8
	die 2
	randomvel 3
	rgb 10 10 10
	blend modulate
	spawnmode spiral
	scalefactor 1
	spawnvel 10
}

r_part rockettail
{
	texture "particles/rtrail"
	step 7
	scale 10
	alpha 0.3
	die 10
	randomvel 64
	veladd 512
	rgb 192 192 192
	gravity 100
	cliptype rockettail
}

r_part t_altrocket
{
	texture "particles/rtrail"
	step 4
	scale 10
	alpha 0.3
	die 0.7
	randomvel 32
	veladd 32
	rgb 255 198 128
	rgbdelta -64 0 0
	gravity -100
	blend add
	assoc rockettail
}

//TeamFortress railgun (by model - this is also the effect used with the TE_LIGHTNING1 extension)
r_part te_railtrail
{
	texture "particles/b_rocket3"
	step 15
	scale 10
	die 1
	rgb 255 255 255
	blend add
	type beam
	spawnmode spiral
	spawnvel 100 0
	cliptype te_railtrail
	friction 0.7
}

r_part t_grenade
{
	texture "particles/rtrail"
	step 10
	scale 10
	alpha 0.3
	die 10
	randomvel 32
	veladd 16
	rgb 128 128 128
	rgbdelta 0 0 0
	gravity 100
}

//cool's blood trails (cos they're cooler)
r_part t_gib
{
	texture "particles/blood"
	step 32
	scale 64
	alpha 0.6
	die 1
	randomvel 64
	veladd 10
	rotationspeed 90
	rotationstart 0 360
	rgb 128 0 0
	gravity 200
	scalefactor 0.8
	scaledelta -10
	stains 5
}

r_part t_zomgib
{
	texture "particles/blood"
	step 64
	scale 64
	alpha 0.6
	die 1
	randomvel 64
	veladd 10
	rotationspeed 90
	rotationstart 0 360
	rgb 32 0 0
	gravity 200
	scalefactor 0.8
	scaledelta -10
	stains 5
}

r_part t_tracer
{
	texture "particles/tracer"
	scale 15
	step 5
	alpha 0.6
	rgb 192 192 48
	die 1
	veladd 50
	randomvel 50
	friction 4
	scalefactor 0.825
}

r_part t_tracer2
{
	texture "particles/tracer"
	scale 15
	step 5
	alpha 0.6
	die 1
	rgb 192 96 48
	veladd 50
	randomvel 50
	friction 4
	scalefactor 0.825
}

r_part t_tracer3
{
	texture "particles/tracer"
	scale 10
	scaledelta -10
	step 5
	alpha 0.9
	die 0.75
	rgb 192 96 192
	veladd 20
	randomvel 5
	spawnmode spiral
	spawnvel 60 0
	friction 4
	scalefactor 0.825
}

//qw blood
r_part te_lightningblood
{
	texture "particles/bloodtrail"
	count 1
	scale 15
	alpha 0.3
	die 10
	randomvel 32
	veladd 32
	rgb 192 0 0
	rgbdelta -128 0 0
	gravity 100
	friction 1
	stains 1
	blend add
}

//qw blood
r_part te_blood
{
	texture "particles/blood"
	count 10
	scale 10
	alpha 0.3
	die 2
	randomvel 40
	rgb 220 0 0
	rgbdelta -100 0 0
	gravity 200
	stains 2
	scalefactor 0.9
	rotationstart 0 360
}

//nq blood
r_part pe_73
{
	texture "particles/blood"
	count 1
	scale 20
	alpha 0.3
	die 2
	randomvel 40
	rgb 220 0 0
	rgbdelta -100 0 0
	gravity 200
	stains 2
	scalefactor 0.9
	rotationstart 0 360
}

/////////////////////////////////////////////////
//rocket explosions
r_part randomspark
{
	count 1
	texture "ball"
	rgb 255 128 76
	gravity 400
	spawnmode ball
	die 2
	blend add
	randomvel 128
	cliptype randomspark
	type texturedspark
}

r_part insaneshrapnal
{
	count 24
	texture "ball"
	rgb 255 128 76
	gravity 400
	die 2
	blend add
	randomvel 512
	veladd 1
	cliptype randomspark
	clipcount 5
	type texturedspark
}

r_part ember
{
	count 1
	texture "particles/explosion"
	rgb 255 128 76
	alpha 0
	scale 15
	scalefactor 1
	friction 8
	gravity 50
	die 1
	blend add
	randomvel 5
	veladd 1
	rampmode delta //fade it in then out.
	ramp 0    0    0    -0.5   0
	ramp 0    0    0    0.1    0
	ramp 0    0    0    0.1    0
	ramp 0    0    0    0.1    0
	ramp 0    0    0    0.1    0
	ramp 0    0    0    0.1    0
}

//the bits that fly off
r_part expgib
{
	cliptype expgib
	texture "particles/explosion"
	alpha 0
	count	16
	die 1
	randomvel 128
	gravity 50
	friction 2
	emit ember
	emitinterval 0.01
	spawnmode circle
	assoc insaneshrapnal
}

//the heart of the explosion
r_part te_explosion
{
	texture "particles/explosion"
	count	1
	scale 200
	scalefactor 1
	die 1
	rgb 255 128 76
	rgbdelta 0 -32 -32
	friction 1
	blend add
	assoc expgib
}

r_part gunshotsparks
{
	scalefactor -3
	type texturedspark
	texture "ball"
	count 5
	scale 2
	scalefactor 1
	alpha 0.5
	die 0.8
	rgb 255 128 0
	blend add
	spawnmode ball
	spawnorg 1
	spawnvel 100
	veladd -80
	friction 0.3
	gravity 400
}

r_part te_gunshot
{
	texture "particles/smoke"
	count 3
	scale 25
	scalefactor 1
	die 0.8
	alpha 0.12
	rgb 64 64 64
	spawnmode ball
	spawnorg	2
	spawnvel	20
	veladd -20
	blend add
	assoc gunshotsparks
}

r_part te_lavasplash
{
	texture "default"
	count	654
	scale 15
	alpha 0.7
	die 4
	randomvel 64
	rgb 255 128 128
	gravity 50
	blend add
	spawnorg 192 64
	up 48
}

//////////////////////////////////////////////////
//Teleport splash

//two rings moving upwards, costs less
r_part teleportsplashdown
{
	texture "textures/smoke"
	count	32
	scale 32
	scalefactor 1
	alpha 0.3
	die 1
	veladd -52
	rgb 255 255 255
	friction 1
	spawnorg 32 0
	spawnmode uniformcircle
}
r_part te_teleportsplash
{
	texture "textures/smoke"
	count	32
	scale 32
	scalefactor 1
	alpha 0.3
	die 1
	veladd 52
	rgb 255 255 255
	friction 1
	spawnorg 32 0
	spawnmode uniformcircle
	assoc teleportsplashdown
}

//flame effect
r_part cu_flame
{
	texture "particles/flame"
	count	1024
	scale 0.4
	scalerand 6
	scalefactor 1
	alpha 0.4
	die 0.8
	randomvel 4 24
	veladd -24
	rgb 255 128 76
	blend add
	up -8
	spawnorg 6 0
	spawnvel -15 0
}

//flame effect
r_part cu_torch
{
	texture "particles/flame"
	count	256
	scale 3
	scalefactor 1
	alpha 0.7
	die 0.5
	randomvel 8
	veladd -32
	rgb 255 128 76
	blend add
	spawnmode circle
	spawnorg 4 1
	spawnvel -12 -8
}

r_part explodesprite
{
	texture "particles/flame"
	count 180
	scale 70
	scaledelta -140
	scalefactor 1
	alpha 0.2
	die 0.5
	randomvel 23
	veladd -20
	rgb 255 128 76
	blend add
	spawnorg 4 1
	spawnvel -8 -2
	up -8
}

//you'll probably never see this one
r_part ef_entityparticles
{
	texture "j"
	count	1
	scale 15
	alpha 0.2
	die 0
	veladd 16
	rgb 255 128 128
	blend add
}

// emp effect, based off of purplehaze's idea
r_part empshocktrail
{
	texture "particles/spark"
	step 3.2
	scale 3
	alpha 0.7
	die 0.2
	rgb 64 0 255
	blend add
	scalefactor 1
	spawnorg 12 0
}

r_part empcore
{
	texture "particles/flame"
	count 90
	scale 55
	scaledelta -110
	die 0.55
	rgb 168 128 255
	spawnmode circle
	spawnorg 12
	spawnvel -192
	blend add
	scalefactor 0.8
	emit empshocktrail
	emitinterval -1
}


r_part empflash
{
	die 0.1
	texture "particles/flash"
	alpha 1
	count 1
	scale 400
	scaledelta -4000
	alphachange 0
	rgb 192 160 255
	blend add
	scalefactor 1
	assoc empcore
}

r_part te_blob
{
	texture "particles/emp"
	count	120
	scale 35
	die 0.75
	alpha 0.4
	rgb 128 0 255
	rampmode delta
	ramp -32 0 0 0
	ramp -32 0 0 0
	ramp -32 0 0 2 
	friction -0.9
	blend add
	spawnmode uniformcircle
	spawnorg 24 0 
	spawnvel 280 0
	scalefactor 1
	emit empshocktrail
	emitinterval -1
	assoc empflash
}

// TE_LIGHTNING2 replacement, (c) 2005 TimeServ
// If you steal this GPLed code you will be violating several international laws
// as well as several laws of physics.
r_part tlightningflash
{
	spawntime 0.1
	spawnchance 0.1
	die 0.25
	type beam
	alpha 1
	step 80
	scale 14
	scaledelta -52
	rgb 255 255 255
	spawnmode distball
	spawnorg 16
	spawnparam1 0.5
	averageout
	nospreadfirst
	blend add
}

r_part tlightningglow
{
	step 50
	scale 35
	scalefactor 1
	alpha 1
	die 0
	rgb 1 1 8
	blend add
	assoc tlightningflash
}

r_part tlightningfade
{
	spawntime 0.05
	die 0.2
	type beam
	alpha 2
	step 96
	scale 1.5
	rgb 16 16 64
	spawnmode distball
	spawnorg 9
	spawnparam1 0.9
	blend add
	averageout
	nospreadfirst
	assoc tlightningglow
}

r_part te_lightning2
{
	die 0
	type beam
	alpha 2
	step 96
	scale 4
	rgb 196 196 255
	spawnmode distball
	spawnorg 9
	spawnparam1 0.9
	blend add
	averageout
	nospreadfirst
	assoc tlightningfade
}

r_part lbolttrail
{
	die 0.5
	type beam
	alpha 2
	step 32
	scale 1
	rgb 196 196 255
	rgbdelta -512 -512 -128
	spawnmode distball
	spawnorg 5
	spawnvel 4
	spawnparam1 0.5
	blend add
}

r_part lbolt
{
	die 0.5
	count 1
	spawnmode circle
	spawnvel 2000
	spawnorg 1
	emit lbolttrail
	emitinterval -1
}

r_part lemit
{
	die 0.1
	count 1
	spawnchance 1
	emit lbolt
	emitinterval 100
	spawnchance 0.1
	cliptype lemit
	clipcount 1
	clipbounce 0
}

r_part lflash
{
	die 0.1
	texture "particles/lflash"
	count 1
	alpha 1
	scale 100
	scalefactor 1
	scaledelta -500
	rgb 255 255 255
	blend add
	assoc lemit
}

r_part te_lightning2_end
{
	die 0.3
	alpha 1
	count 8
	scale 2
	rgb 128 128 255
	rgbrand 63 63 0
	rgbrandsync 1
	spawnvel 100
	spawnorg 5
	blend add
	assoc lflash
}

r_part pe_default
{
	texture "particles/quake"
	count 1
	scale 4
	veladd 15
	die 0.4
	alphachange 0
	diesubrand 0.4
	gravity 40
	spawnorg 8
}

r_part pe_defaulttrail
{
	texture "particles/quake"
	step 12
	die 1
	scale 10
	scaledelta -10
	veladd 15
	spawnorg 1
	scalefactor 0.8
}

r_part pe_pointfile
{
	texture "particles/quake"
	count 1
	scale 50
	die 30
	alphachange 0
	rgb 255 255 0
}

r_effect "progs/s_explod.spr" explodesprite 1
r_effect "progs/flame.spr" explodesprite 1

r_effect "progs/flame2.mdl" cu_flame 1
r_effect "progs/flame.mdl" cu_torch
r_trail "progs/e_spike1.mdl" te_railtrail