// 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"
	step 4
	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"
	step 2
	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
}

// te_railtrail, used with Quake 2 railgun and also used with
// TeamFortress engineer railgun
r_part railtrailinner
{
	step 30
	scale 5
	die 1
	alpha 0.5
	rgb 255 255 255
	blend add
	type beam
	spawnvel 2 2
}

r_part railtrail240
{
	step 15
	scale 3
	die 1
	alpha 0
	rgb 32 32 255
	rampmode delta
	ramp -255 -255 0 -2.5 0
	ramp 0 0 0 0.65 0
	ramp 0 0 0 0.65 0
	ramp 0 0 0 0.65 0
	ramp 0 0 -128 0.65 10
	blend add
	type beam
	spawnmode spiral
	spawnparam1 256
	spawnparam2 240
	spawnvel 12
	assoc railtrailinner
}

r_part railtrail120
{
	step 15
	scale 3
	die 1
	alpha 0
	rgb 32 32 255
	rampmode delta
	ramp -255 -255 0 -2.5 0
	ramp 0 0 0 0.65 0
	ramp 0 0 0 0.65 0
	ramp 0 0 0 0.65 0
	ramp 0 0 -128 0.65 10
	blend add
	type beam
	spawnmode spiral
	spawnparam1 256
	spawnparam2 120
	spawnvel 12
	assoc railtrail240
}

r_part te_railtrail
{
	step 15
	scale 3
	die 1
	alpha 0
	rgb 32 32 255
	rampmode delta
	ramp -255 -255 0 -2.5 0
	ramp 0 0 0 0.65 0
	ramp 0 0 0 0.65 0
	ramp 0 0 0 0.65 0
	ramp 0 0 -128 0.65 10
	blend add
	type beam
	spawnmode spiral
	spawnparam1 256
	spawnvel 12
	assoc railtrail120
}

r_part shortfume
{
	texture "particles/smoke"
	scale 15
	scaledelta 20
	alpha 0.5
	step 8
	die 0.3
	randomvel 12
	scaledelta 0.81
	rgb 150 150 150
}

r_part t_grenade
{
	texture "particles/smoke"
	step 24
	scale 16
	scaledelta 4
	alpha 0.3
	die 4
	randomvel 8
	veladd 15
	rgb 140 140 140
	rgbdelta -55 -55 -55
	gravity -50
	scalefactor 0.0
	assoc shortfume
}

//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 3
	scale 20
	alpha 0.4
	die 2
	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 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
}

//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 gunshotsmoke
{
	texture "particles/smoke"
	count 3
	scale 25
	scalefactor 1
	die 0.8
	alpha 0.12
	rgb 32 32 32
	blend add
	spawnmode ball
	spawnorg	2
	spawnvel	20
	veladd -20
}

r_part te_gunshot
{
	type texturedspark
	texture "ball"
	count 3
	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
	assoc gunshotsmoke
}

r_part spikecore
{
	texture "ball"
	count 1
	scale 1
	scalefactor 1
	scaledelta 190
	die 0.1
	alpha 0.6
	rgb 255 128 0
	blend add
	assoc gunshotsmoke
}

r_part te_spike
{
	type sparkfan
	count 10
	scale 1
	scalefactor 1
	alpha 0.5
	die 0.2
	rgb 255 128 0
	blend add
	spawnmode ball
	spawnorg 12
	spawnvel 300
	assoc spikecore
}

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
	alphadelta 0
	rgb 192 160 255
	blend add
	scalefactor 1
	assoc empcore
}

r_part te_tarexplosion
{
	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
}

r_part pe_default
{
	texture "particles/quake"
	count 1
	scale 4
	veladd 15
	die 0.4
	alphadelta 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
	alphadelta 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