//i know file names aren't limited to 8 digits but i like how compact it looks ok
//this file is just for things like states, objects, sprites, sounds, that kinda stuff
//(made by tempest aka krimps)

freeslot("SKINCOLOR_TRIDENT","SKINCOLOR_SUPERFRESH1","SKINCOLOR_SUPERFRESH2","SKINCOLOR_SUPERFRESH3","SKINCOLOR_SUPERFRESH4","SKINCOLOR_SUPERFRESH5")
freeslot("SPR_ETRL","SPR_CNDT","SPR_TARW","SPR_CSPK")
freeslot("S_STEPWAVE","S_STEPWAVE2","S_STEPWAVE3","S_STEPWAVE4","S_STEPWAVE5","S_CONDUIT_MOVING","S_CONDUIT_FLASH_PRE","S_CONDUIT_FLASH","S_CONDUIT","S_CONDUIT_ACTIVATED","S_ELECTRAIL","S_HEADARROWS","S_CONDUIT_SPARK1","S_CONDUIT_SPARK2","S_CONDUIT_BLAST")
freeslot("MT_STEPWAVE","MT_CONDUIT","MT_ELECTRAIL","MT_HEADARROWS","MT_CONDUIT_SPARK1","MT_CONDUIT_SPARK2","MT_CONDUIT_BLAST")
freeslot("S_TEMPEST_CHARGE","S_TEMPEST_CHARGE_CONDUIT","S_TEMPEST_CONDUIT","S_TEMPEST_CONDUIT_DOWN","S_TEMPEST_GRIND","S_TEMPEST_FUNKIN","S_TEMPEST_GRINDING","S_TEMPEST_FUNKIN_PRE","S_TEMPEST_SNAP","S_TEMPEST_FUNKIN_POSES","S_TEMPEST_BOOF","S_TEMPEST_FUNKIN_INSTRUMENTS")
freeslot("sfx_grind","sfx_boof","sfx_cement")
freeslot("SPR2_FUNK","SPR2_SURF","SPR2_PFNK","SPR2_FPSE","SPR2_INST")

sfxinfo[sfx_grind].caption = "Rail grinding"
sfxinfo[sfx_boof].caption = "doobie"
sfxinfo[sfx_cement].caption = "SFM funny moment"

skincolors[SKINCOLOR_TRIDENT] = {
    name = "Trident",
    ramp = {0,88,88,89,89,98,100,102,102,125,125,126,127,127,138,138},
    invcolor = SKINCOLOR_VIOLET,
    invshade = 5,
    chatcolor = V_GREENMAP,
    accessible = true
}

skincolors[SKINCOLOR_SUPERFRESH1] = {
	name = "Super Fresh 1",
	ramp = {0,0,0,0,0,0,0,0,0,0,88,88,89,89,96,100},
	accessible = false
}

skincolors[SKINCOLOR_SUPERFRESH2] = {
	name = "Super Fresh 2",
	ramp = {0,0,0,0,88,88,89,96,96,96,97,100,100,101,102,127},
	accessible = false
}

skincolors[SKINCOLOR_SUPERFRESH3] = {
	name = "Super Fresh 3",
	ramp = {0,88,88,89,89,96,97,98,100,100,101,102,127,127,138,138},
	accessible = false
}

skincolors[SKINCOLOR_SUPERFRESH4] = {
	name = "Super Fresh 4",
	ramp = {96,96,97,100,101,101,102,102,126,127,127,138,138,139,139,254},
	accessible = false
}

skincolors[SKINCOLOR_SUPERFRESH5] = {
	name = "Super Fresh 5",
	ramp = {120,121,121,123,124,102,102,103,104,104,106,106,107,108,109,110},
	accessible = false
}

mobjinfo[MT_STEPWAVE] = {
	spawnstate = S_STEPWAVE,
	doomednum = -1,
	flags = MF_NOCLIP|MF_SCENERY|MF_NOGRAVITY
}

states[S_STEPWAVE] = {
	sprite = SPR_ETRL,
	frame = FF_PAPERSPRITE|C,
	tics = 2,
	nextstate = S_STEPWAVE2
}

states[S_STEPWAVE2] = {
	sprite = SPR_ETRL,
	frame = TR_TRANS20|FF_PAPERSPRITE|C,
	tics = 2,
	nextstate = S_STEPWAVE3
}

states[S_STEPWAVE3] = {
	sprite = SPR_ETRL,
	frame = TR_TRANS40|FF_PAPERSPRITE|C,
	tics = 2,
	nextstate = S_STEPWAVE4
}

states[S_STEPWAVE4] = {
	sprite = SPR_ETRL,
	frame = TR_TRANS60|FF_PAPERSPRITE|C,
	tics = 2,
	nextstate = S_STEPWAVE5
}

states[S_STEPWAVE5] = {
	sprite = SPR_ETRL,
	frame = TR_TRANS70|FF_PAPERSPRITE|C,
	tics = 2,
	nextstate = S_NULL
}

states[S_TEMPEST_CHARGE] = {
	sprite = SPR_PLAY,
	frame = SPR2_TWIN,
	tics = -1,
	nextstate = S_TEMPEST_CHARGE,
}

mobjinfo[MT_CONDUIT] = {
	spawnstate = S_CONDUIT_MOVING,
	deathstate = S_CONDUIT_ACTIVATED,
	attacksound = sfx_itemup,
	deathsound = sfx_cdfm35,
	doomednum = -1,
	spawnhealth = 1000,
	radius = 28<<16,
	height = 32<<16,
	speed = 20<<16,
	flags = MF_SPECIAL|MF_NOGRAVITY|MF_BOUNCE|MF_NOCLIPTHING,
}

states[S_CONDUIT_MOVING] = {
	sprite = SPR_CNDT,
	frame = FF_ANIMATE|H,
	tics = 21,
	var1 = 1,
	var2 = 2,
	nextstate = S_CONDUIT_FLASH_PRE
}

states[S_CONDUIT_FLASH_PRE] = {
	sprite = SPR_CNDT,
	frame = H,
	tics = 0,
	action = A_SetObjectFlags,
	var1 = MF_NOCLIPTHING,
	var2 = 1,
	nextstate = S_CONDUIT_FLASH
}

states[S_CONDUIT_FLASH] = {
	sprite = SPR_CNDT,
	frame = FF_FULLBRIGHT|J,
	tics = 2,
	action = A_PlayAttackSound,
	nextstate = S_CONDUIT
}

states[S_CONDUIT] = {
	sprite = SPR_CNDT,
	frame = FF_ANIMATE|A,
	tics = -1,
	var1 = 3,
	var2 = 3,
	nextstate = S_CONDUIT
}

states[S_CONDUIT_ACTIVATED] = {
	sprite = SPR_CNDT,
	frame = FF_ANIMATE|E,
	tics = 9,
	action = A_PlayActiveSound,
	var1 = 2,
	var2 = 3,
	nextstate = S_NULL
}

states[S_TEMPEST_CHARGE_CONDUIT] = {
	sprite = SPR_PLAY,
	frame = FF_ANIMATE|SPR2_BNCE,
	tics = 9,
	var1 = 3,
	var2 = 3,
	nextstate = S_TEMPEST_CONDUIT
}

states[S_TEMPEST_CONDUIT] = {
	sprite = SPR_PLAY,
	frame = FF_ANIMATE|SPR2_GLID,
	tics = 9,
	var1 = 3,
	var2 = 3,
	nextstate = S_PLAY_FALL
}

mobjinfo[MT_ELECTRAIL] = {
	spawnstate = S_ELECTRAIL,
	doomednum = -1,
	flags = MF_NOCLIP|MF_SCENERY|MF_NOGRAVITY
}

states[S_ELECTRAIL] = {
	sprite = SPR_ETRL,
	frame = FF_FULLBRIGHT|TR_TRANS20|FF_ANIMATE|A,
	tics = 4,
	var1 = 2,
	var2 = 2,
	nextstate = S_NULL
}

states[S_TEMPEST_CONDUIT_DOWN] = {
	sprite = SPR_PLAY,
	frame = FF_ANIMATE|SPR2_FLT_,
	tics = 9,
	var1 = 3,
	var2 = 3,
	nextstate = S_PLAY_FALL
}

states[S_TEMPEST_GRIND] = {
	sprite = SPR_PLAY,
	frame = FF_ANIMATE|SPR2_ROLL,
	tics = -1,
	var1 = 4,
	var2 = 2,
	nextstate = S_TEMPEST_GRIND
}

spr2defaults[SPR2_FUNK] = SPR2_STND

states[S_TEMPEST_FUNKIN] = {
	sprite = SPR_PLAY,
	frame = FF_ANIMATE|SPR2_FUNK,
	tics = -1,
	var1 = 2,
	var2 = 5,
	nextstate = S_TEMPEST_FUNKIN
}

states[S_HEADARROWS] = {
	sprite = SPR_TARW,
	frame = TR_TRANS20|A,
	tics = -1,
	nextstate = S_NULL
}

mobjinfo[MT_HEADARROWS] = {
	spawnstate = S_HEADARROWS,
	deathstate = S_NULL,
	doomednum = -1,
	spawnhealth = 1000,
	radius = 16<<16,
	height = 16<<16,
	flags = MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY
}

states[S_CONDUIT_SPARK1] = {
	sprite = SPR_CSPK,
	frame = FF_ANIMATE|A,
	tics = 16,
	var1 = 4,
	var2 = 4,
	nextstate = S_NULL
}

states[S_CONDUIT_SPARK2] = {
	sprite = SPR_CSPK,
	frame = FF_ANIMATE|F,
	tics = 12,
	var1 = 3,
	var2 = 4,
	nextstate = S_NULL
}

mobjinfo[MT_CONDUIT_SPARK1] = {
	spawnstate = S_CONDUIT_SPARK1,
	deathstate = S_NULL,
	doomednum = -1,
	spawnhealth = 1000,
	radius = 12<<16,
	height = 12<<16,
	speed = 20<<16,
	flags = MF_NOGRAVITY|MF_NOCLIP
}

mobjinfo[MT_CONDUIT_SPARK2] = {
	spawnstate = S_CONDUIT_SPARK2,
	deathstate = mobjinfo[MT_CONDUIT_SPARK1].deathstate,
	doomednum = mobjinfo[MT_CONDUIT_SPARK1].doomednum,
	spawnhealth = mobjinfo[MT_CONDUIT_SPARK1].spawnhealth,
	radius = mobjinfo[MT_CONDUIT_SPARK1].radius,
	height = mobjinfo[MT_CONDUIT_SPARK1].height,
	speed = mobjinfo[MT_CONDUIT_SPARK1].speed,
	flags = mobjinfo[MT_CONDUIT_SPARK1].flags
}

spr2defaults[SPR2_SURF] = SPR2_ROLL --wanted to call this spr2_rail but might as well add support for dirk while i'm at it :p

states[S_TEMPEST_GRINDING] = {
	sprite = SPR_PLAY,
	frame = FF_ANIMATE|SPR2_SURF,
	tics = -1,
	var1 = 2,
	var2 = 5,
	nextstate = S_TEMPEST_GRINDING
}

spr2defaults[SPR2_PFNK] = SPR2_FUNK

states[S_TEMPEST_FUNKIN_PRE] = {
	sprite = SPR_PLAY,
	frame = FF_ANIMATE|SPR2_PFNK,
	tics = 2,
	var1 = 2,
	var2 = 5,
	nextstate = S_PLAY_STND
}

states[S_TEMPEST_SNAP] = {
	sprite = SPR_PLAY,
	frame = FF_ANIMATE|SPR2_FIRE,
	tics = 16,
	var1 = 3,
	var2 = 4,
	nextstate = S_PLAY_STND
}

spr2defaults[SPR2_FPSE] = SPR2_FUNK

states[S_TEMPEST_FUNKIN_POSES] = {
	sprite = SPR_PLAY,
	frame = SPR2_FPSE,
	tics = 10,
	nextstate = S_TEMPEST_FUNKIN
}

states[S_TEMPEST_BOOF] = {
	sprite = SPR_PLAY,
	frame = FF_ANIMATE|SPR2_MLEL,
	tics = 12,
	var1 = 2,
	var2 = 4,
	nextstate = S_PLAY_STND
}

spr2defaults[SPR2_INST] = SPR2_FPSE

states[S_TEMPEST_FUNKIN_INSTRUMENTS] = {
	sprite = SPR_PLAY,
	frame = SPR2_INST,
	tics = 10,
	nextstate = S_TEMPEST_FUNKIN
}

states[S_CONDUIT_BLAST] = {
	sprite = SPR_CNDT,
	frame = FF_ANIMATE|FF_TRANS50|K,
	tics = 9,
	var1 = 2,
	var2 = 3,
	nextstate = S_NULL
}

mobjinfo[MT_CONDUIT_BLAST] = {
	spawnstate = S_CONDUIT_BLAST,
	deathstate = S_NULL,
	doomednum = -1,
	spawnhealth = 1000,
	radius = 0<<16,
	height = 0<<16,
	speed = 0,
	flags = MF_NOGRAVITY|MF_NOCLIP|MF_NOBLOCKMAP|MF_SCENERY,
}