--SHI-Springs Freeslots And States
--Wrote BY MR.LOGAN
--ORIGINAL SOC BY CHAOBROTHER'S 2.2 SPRING BACKPORT
--Organized and touched up by Ashnal

if ShihoSprings then return end -- Prevents this from loading twice
rawset(_G, "ShihoSprings", 1)

--FREESLOTS: MTs
freeslot("MT_SHYSPRG", "MT_SHRSPRG", "MT_SHBSPRG", "MT_SHGSPRG")
freeslot("MT_SVYSPRG", "MT_SVRSPRG", "MT_SVBSPRG", "MT_SVGSPRG")
freeslot("MT_SDYSPRG", "MT_SDRSPRG", "MT_SDBSPRG", "MT_SDGSPRG")

--FREESLOTS: SPRITES
freeslot("SPR_SHYS", "SPR_SHRS", "SPR_SHBS", "SPR_SHGS")
freeslot("SPR_SHHY", "SPR_SHHR", "SPR_SHHB", "SPR_SHHG")
freeslot("SPR_SHDY", "SPR_SHDR", "SPR_SHDB", "SPR_SHDG")

--FREESLOTS: STATES
--Yellow Springs
freeslot("S_SHYSPRG", "S_SHYSPRG2", "S_SHYSPRG3", "S_SHYSPRG4", "S_SHYSPRG5")
freeslot("S_SVYSPRG", "S_SVYSPRG2", "S_SVYSPRG3", "S_SVYSPRG4", "S_SVYSPRG5")
freeslot("S_SDYSPRG", "S_SDYSPRG2", "S_SDYSPRG3", "S_SDYSPRG4", "S_SDYSPRG5")
--Red Springs
freeslot("S_SHRSPRG", "S_SHRSPRG2", "S_SHRSPRG3", "S_SHRSPRG4", "S_SHRSPRG5")
freeslot("S_SVRSPRG", "S_SVRSPRG2", "S_SVRSPRG3", "S_SVRSPRG4", "S_SVRSPRG5")
freeslot("S_SDRSPRG", "S_SDRSPRG2", "S_SDRSPRG3", "S_SDRSPRG4", "S_SDRSPRG5")
--Blue Springs
freeslot("S_SHBSPRG", "S_SHBSPRG2", "S_SHBSPRG3", "S_SHBSPRG4", "S_SHBSPRG5")
freeslot("S_SDBSPRG", "S_SDBSPRG2", "S_SDBSPRG3", "S_SDBSPRG4", "S_SDBSPRG5")
freeslot("S_SVBSPRG", "S_SVBSPRG2", "S_SVBSPRG3", "S_SVBSPRG4", "S_SVBSPRG5")
--Grey Springs
freeslot("S_SHGSPRG", "S_SHGSPRG2", "S_SHGSPRG3", "S_SHGSPRG4", "S_SHGSPRG5")
freeslot("S_SVGSPRG", "S_SVGSPRG2", "S_SVGSPRG3", "S_SVGSPRG4", "S_SVGSPRG5")
freeslot("S_SDGSPRG", "S_SDGSPRG2", "S_SDGSPRG3", "S_SDGSPRG4", "S_SDGSPRG5")


--Mobj Info
--Gray Spring

mobjinfo[MT_SVGSPRG] = {
    --$Name Gray Spring
    --$Sprite SHGSA0
    --$Category Ashnal Mapping Tools
    doomednum = 3030,
    spawnstate = S_SHGSPRG,
    spawnhealth = 1000,
    seestate = S_NULL,
    seesound = sfx_None,
    reactiontime = 0,
    attacksound = sfx_None,
    painstate = S_NULL,
    painchance = 0,
    painsound = sfx_s3kb1,
    meleestate = S_NULL,
    missilestate = S_NULL,
    deathstate = S_NULL,
    xdeathstate = S_NULL,
    deathsound = sfx_None,
    speed = 0,
    radius = 32*FRACUNIT,
    height = 20*FRACUNIT,
    dispoffset = 0,
    mass = 12*FRACUNIT,
    damage = 0,
    activesound = sfx_None,
    flags = MF_SPRING|MF_SOLID|MF_DONTENCOREMAP,
    raisestate = S_SHGSPRG2
}

--Yellow Spring

mobjinfo[MT_SVYSPRG] = {
    --$Name Yellow Spring
    --$Sprite SHYSA0
    --$Category Ashnal Mapping Tools
    doomednum = 3031,
    spawnstate = S_SHYSPRG,
    spawnhealth = 1000,
    seestate = S_NULL,
    seesound = sfx_None,
    reactiontime = 0,
    attacksound = sfx_None,
    painstate = S_NULL,
    painchance = 0,
    painsound = sfx_s3kb1,
    meleestate = S_NULL,
    missilestate = S_NULL,
    deathstate = S_NULL,
    xdeathstate = S_NULL,
    deathsound = sfx_None,
    speed = 0,
    radius = 32*FRACUNIT,
    height = 20*FRACUNIT,
    dispoffset = 0,
    mass = 20*FRACUNIT,
    damage = 0,
    activesound = sfx_None,
    flags = MF_SPRING|MF_SOLID|MF_DONTENCOREMAP,
    raisestate = S_SHYSPRG2
}

--Red Spring

mobjinfo[MT_SVRSPRG] = {
    --$Name Red Spring
    --$Sprite SHRSA0
    --$Category Ashnal Mapping Tools
    doomednum = 3032,
    spawnstate = S_SHRSPRG,
    spawnhealth = 1000,
    seestate = S_NULL,
    seesound = sfx_None,
    reactiontime = 0,
    attacksound = sfx_None,
    painstate = S_NULL,
    painchance = 0,
    painsound = sfx_s3kb1,
    meleestate = S_NULL,
    missilestate = S_NULL,
    deathstate = S_NULL,
    xdeathstate = S_NULL,
    deathsound = sfx_None,
    speed = 0,
    radius = 32*FRACUNIT,
    height = 20*FRACUNIT,
    dispoffset = 0,
    mass = 32*FRACUNIT,
    damage = 0,
    activesound = sfx_None,
    flags = MF_SPRING|MF_SOLID|MF_DONTENCOREMAP,
    raisestate = S_SHRSPRG2
}

--Blue Spring

mobjinfo[MT_SVBSPRG] = {
    --$Name Blue Spring
    --$Sprite SHBSA0
    --$Category Ashnal Mapping Tools
    doomednum = 3033,
    spawnstate = S_SHBSPRG,
    spawnhealth = 1000,
    seestate = S_NULL,
    seesound = sfx_None,
    reactiontime = 0,
    attacksound = sfx_None,
    painstate = S_NULL,
    painchance = 0,
    painsound = sfx_s3kb1,
    meleestate = S_NULL,
    missilestate = S_NULL,
    deathstate = S_NULL,
    xdeathstate = S_NULL,
    deathsound = sfx_None,
    speed = 0,
    radius = 32*FRACUNIT,
    height = 20*FRACUNIT,
    dispoffset = 0,
    mass = 42*FRACUNIT,
    damage = 0,
    activesound = sfx_None,
    flags = MF_SPRING|MF_SOLID|MF_DONTENCOREMAP,
    raisestate = S_SHBSPRG2
}

--
--====================--
-- HORIZONTAL SPRINGS --
--====================--
--

--Gray Horizontal Springs

mobjinfo[MT_SHGSPRG] = {
    --$Name Gray Horizontal Spring
    --$Sprite SHHGA3A7
    --$Category Ashnal Mapping Tools
    doomednum = 3034,
    spawnstate = S_SVGSPRG,
    spawnhealth = 1000,
    seestate = S_NULL,
    seesound = sfx_None,
    reactiontime = 0,
    attacksound = sfx_None,
    painstate = S_NULL,
    painchance = 0,
    painsound = sfx_s3kb1,
    meleestate = S_NULL,
    missilestate = S_NULL,
    deathstate = S_NULL,
    xdeathstate = S_NULL,
    deathsound = sfx_None,
    speed = 0,
    radius = 32*FRACUNIT,
    height = 64*FRACUNIT,
    dispoffset = 0,
    mass = 0,
    damage = 14*FRACUNIT,
    activesound = sfx_None,
    flags = MF_SPRING|MF_NOGRAVITY|MF_SOLID|MF_DONTENCOREMAP,
    raisestate = S_SVGSPRG2
}

--Yellow Horizontal Springs

mobjinfo[MT_SHYSPRG] = {
    --$Name Yellow Horizontal Spring
    --$Sprite SHHYA3A7
    --$Category Ashnal Mapping Tools
    doomednum = 3035,
    spawnstate = S_SVYSPRG,
    spawnhealth = 1000,
    seestate = S_NULL,
    seesound = sfx_None,
    reactiontime = 0,
    attacksound = sfx_None,
    painstate = S_NULL,
    painchance = 0,
    painsound = sfx_s3kb1,
    meleestate = S_NULL,
    missilestate = S_NULL,
    deathstate = S_NULL,
    xdeathstate = S_NULL,
    deathsound = sfx_None,
    speed = 0,
    radius = 32*FRACUNIT,
    height = 64*FRACUNIT,
    dispoffset = 0,
    mass = 0,
    damage = 23*FRACUNIT,
    activesound = sfx_None,
    flags = MF_SPRING|MF_NOGRAVITY|MF_SOLID|MF_DONTENCOREMAP,
    raisestate = S_SVYSPRG2
}

--Red Horizontal Springs

mobjinfo[MT_SHRSPRG] = {
    --$Name Red Horizontal Spring
    --$Sprite SHHRA3A7
    --$Category Ashnal Mapping Tools
    doomednum = 3036,
    spawnstate = S_SVRSPRG,
    spawnhealth = 1000,
    seestate = S_NULL,
    seesound = sfx_None,
    reactiontime = 0,
    attacksound = sfx_None,
    painstate = S_NULL,
    painchance = 0,
    painsound = sfx_s3kb1,
    meleestate = S_NULL,
    missilestate = S_NULL,
    deathstate = S_NULL,
    xdeathstate = S_NULL,
    deathsound = sfx_None,
    speed = 0,
    radius = 32*FRACUNIT,
    height = 64*FRACUNIT,
    dispoffset = 0,
    mass = 0,
    damage = 36*FRACUNIT,
    activesound = sfx_None,
    flags = MF_SPRING|MF_NOGRAVITY|MF_SOLID|MF_DONTENCOREMAP,
    raisestate = S_SVRSPRG2
}

--Blue Horizontal Springs

mobjinfo[MT_SHBSPRG] = {
    --$Name Blue Horizontal Spring
    --$Sprite SHHBA3A7
    --$Category Ashnal Mapping Tools
    doomednum = 3037,
    spawnstate = S_SVBSPRG,
    spawnhealth = 1000,
    seestate = S_NULL,
    seesound = sfx_None,
    reactiontime = 0,
    attacksound = sfx_None,
    painstate = S_NULL,
    painchance = 0,
    painsound = sfx_s3kb1,
    meleestate = S_NULL,
    missilestate = S_NULL,
    deathstate = S_NULL,
    xdeathstate = S_NULL,
    deathsound = sfx_None,
    speed = 0,
    radius = 32*FRACUNIT,
    height = 64*FRACUNIT,
    dispoffset = 0,
    mass = 0,
    damage = 56*FRACUNIT,
    activesound = sfx_None,
    flags = MF_SPRING|MF_NOGRAVITY|MF_SOLID|MF_DONTENCOREMAP,
    raisestate = S_SVBSPRG2
}

--
--====================--
--  DIAGONAL SPRINGS  --
--====================--
--

--Gray Diagonal Spring

mobjinfo[MT_SDGSPRG] = {
    --$Name Gray Diagonal Spring
    --$Sprite SHDGA2A8
    --$Category Ashnal Mapping Tools
    doomednum = 3038,
    spawnstate = S_SDGSPRG,
    spawnhealth = 1000,
    seestate = S_NULL,
    seesound = sfx_None,
    reactiontime = 0,
    attacksound = sfx_None,
    painstate = S_NULL,
    painchance = 0,
    painsound = sfx_s3kb1,
    meleestate = S_NULL,
    missilestate = S_NULL,
    deathstate = S_NULL,
    xdeathstate = S_NULL,
    deathsound = sfx_None,
    speed = 0,
    radius = 32*FRACUNIT,
    height = 32*FRACUNIT,
    dispoffset = 0,
    mass = 12*FRACUNIT,
    damage = 12*FRACUNIT,
    activesound = sfx_None,
    flags = MF_SPRING|MF_NOGRAVITY|MF_SOLID|MF_DONTENCOREMAP,
    raisestate = S_SDGSPRG2
}

--Yellow Diagonal Spring

mobjinfo[MT_SDYSPRG] = {
    --$Name Yellow Diagonal Spring
    --$Sprite SHDYA2A8
    --$Category Ashnal Mapping Tools
    doomednum = 3039,
    spawnstate = S_SDYSPRG,
    spawnhealth = 1000,
    seestate = S_NULL,
    seesound = sfx_None,
    reactiontime = 0,
    attacksound = sfx_None,
    painstate = S_NULL,
    painchance = 0,
    painsound = sfx_s3kb1,
    meleestate = S_NULL,
    missilestate = S_NULL,
    deathstate = S_NULL,
    xdeathstate = S_NULL,
    deathsound = sfx_None,
    speed = 0,
    radius = 32*FRACUNIT,
    height = 32*FRACUNIT,
    dispoffset = 0,
    mass = 20*FRACUNIT,
    damage = 20*FRACUNIT,
    activesound = sfx_None,
    flags = MF_SPRING|MF_NOGRAVITY|MF_SOLID|MF_DONTENCOREMAP,
    raisestate = S_SDYSPRG2
}

--Red Diagonal Spring

mobjinfo[MT_SDRSPRG] = {
    --$Name Red Diagonal Spring
    --$Sprite SHDRA2A8
    --$Category Ashnal Mapping Tools
    doomednum = 3040,
    spawnstate = S_SDRSPRG,
    spawnhealth = 1000,
    seestate = S_NULL,
    seesound = sfx_None,
    reactiontime = 0,
    attacksound = sfx_None,
    painstate = S_NULL,
    painchance = 0,
    painsound = sfx_s3kb1,
    meleestate = S_NULL,
    missilestate = S_NULL,
    deathstate = S_NULL,
    xdeathstate = S_NULL,
    deathsound = sfx_None,
    speed = 0,
    radius = 32*FRACUNIT,
    height = 32*FRACUNIT,
    dispoffset = 0,
    mass = 32*FRACUNIT,
    damage = 32*FRACUNIT,
    activesound = sfx_None,
    flags = MF_SPRING|MF_NOGRAVITY|MF_SOLID|MF_DONTENCOREMAP,
    raisestate = S_SDRSPRG2
}

--Blue Diagonal Spring

mobjinfo[MT_SDBSPRG] = {
    --$Name Blue Diagonal Spring
    --$Sprite SHDBA2A8
    --$Category Ashnal Mapping Tools
    doomednum = 3041,
    spawnstate = S_SDBSPRG,
    spawnhealth = 1000,
    seestate = S_NULL,
    seesound = sfx_None,
    reactiontime = 0,
    attacksound = sfx_None,
    painstate = S_NULL,
    painchance = 0,
    painsound = sfx_s3kb1,
    meleestate = S_NULL,
    missilestate = S_NULL,
    deathstate = S_NULL,
    xdeathstate = S_NULL,
    deathsound = sfx_None,
    speed = 0,
    radius = 32*FRACUNIT,
    height = 32*FRACUNIT,
    dispoffset = 0,
    mass = 42*FRACUNIT,
    damage = 42*FRACUNIT,
    activesound = sfx_None,
    flags = MF_SPRING|MF_NOGRAVITY|MF_SOLID|MF_DONTENCOREMAP,
    raisestate = S_SDBSPRG2
}

--STATES : Gray SPRINGS
--Gray Vertical Springs
 
states[S_SHGSPRG] = {SPR_SHGS, A, -1, nill , 0, 0, S_NULL}
states[S_SHGSPRG2] = {SPR_SHGS, E, 4, A_PAIN, 0, 0, S_SHGSPRG3}
states[S_SHGSPRG3] = {SPR_SHGS, D, 1, nil, 0, 0, S_SHGSPRG4}
states[S_SHGSPRG4] = {SPR_SHGS, C, 1, nil, 0, 0, S_SHGSPRG5}
states[S_SHGSPRG5] = {SPR_SHGS, B, 1, nil, 0, 0, S_SHGSPRG}

--Gray Horizontal Springs

states[S_SVGSPRG] = {SPR_SHHG, A, -1, nil , 0, 0, S_NULL}
states[S_SVGSPRG2] = {SPR_SHHG, E, 4, A_PAIN, 0, 0, S_SVGSPRG3}
states[S_SVGSPRG3] = {SPR_SHHG, D, 1, nil, 0, 0, S_SVGSPRG4}
states[S_SVGSPRG4] = {SPR_SHHG, C, 1, nil, 0, 0, S_SVGSPRG5}
states[S_SVGSPRG5] = {SPR_SHHG, B, 1, nil, 0, 0, S_SVGSPRG}

--Gray Diagonal Springs

states[S_SDGSPRG] = {SPR_SHDG, A, -1, nil , 0, 0, S_NULL}
states[S_SDGSPRG2] = {SPR_SHDG, E, 4, A_PAIN, 0, 0, S_SDGSPRG3}
states[S_SDGSPRG3] = {SPR_SHDG, D, 1, nil, 0, 0, S_SDGSPRG4}
states[S_SDGSPRG4] = {SPR_SHDG, C, 1, nil, 0, 0, S_SDGSPRG5}
states[S_SDGSPRG5] = {SPR_SHDG, B, 1, nil, 0, 0, S_SDGSPRG}

--STATES : Yellow SPRINGS
--Yellow Vertical Springs
 
states[S_SHYSPRG] = {SPR_SHYS, A, -1, nil, 0, 0, S_NULL}
states[S_SHYSPRG2] = {SPR_SHYS, E, 4, A_PAIN, 0, 0, S_SHYSPRG3}
states[S_SHYSPRG3] = {SPR_SHYS, D, 1, nil, 0, 0, S_SHYSPRG4}
states[S_SHYSPRG4] = {SPR_SHYS, C, 1, nil, 0, 0, S_SHYSPRG5}
states[S_SHYSPRG5] = {SPR_SHYS, B, 1, nil, 0, 0, S_SHYSPRG}

--Yellow Horizontal Springs

states[S_SVYSPRG] = {SPR_SHHY, A, -1, nil , 0, 0, S_NULL}
states[S_SVYSPRG2] = {SPR_SHHY, E, 4, A_PAIN, 0, 0, S_SVYSPRG3}
states[S_SVYSPRG3] = {SPR_SHHY, D, 1, nil, 0, 0, S_SVYSPRG4}
states[S_SVYSPRG4] = {SPR_SHHY, C, 1, nil, 0, 0, S_SVYSPRG5}
states[S_SVYSPRG5] = {SPR_SHHY, B, 1, nil, 0, 0, S_SVYSPRG}

--Yellow Diagonal Springs

states[S_SDYSPRG] = {SPR_SHDY, A, -1, nil , 0, 0, S_NULL}
states[S_SDYSPRG2] = {SPR_SHDY, E, 4, A_PAIN, 0, 0, S_SDYSPRG3}
states[S_SDYSPRG3] = {SPR_SHDY, D, 1, nil, 0, 0, S_SDYSPRG4}
states[S_SDYSPRG4] = {SPR_SHDY, C, 1, nil, 0, 0, S_SDYSPRG5}
states[S_SDYSPRG5] = {SPR_SHDY, B, 1, nil, 0, 0, S_SDYSPRG}

--STATES : Red SPRINGS
--Red Vertical Springs
 
states[S_SHRSPRG] = {SPR_SHRS, A, -1, nil, 0, 0, S_NULL}
states[S_SHRSPRG2] = {SPR_SHRS, E, 4, A_PAIN, 0, 0, S_SHRSPRG3}
states[S_SHRSPRG3] = {SPR_SHRS, D, 1, nil, 0, 0, S_SHRSPRG4}
states[S_SHRSPRG4] = {SPR_SHRS, C, 1, nil, 0, 0, S_SHRSPRG5}
states[S_SHRSPRG5] = {SPR_SHRS, B, 1, nil, 0, 0, S_SHRSPRG}

--Red Horizontal Springs

states[S_SVRSPRG] = {SPR_SHHR, A, -1, nil , 0, 0, S_NULL}
states[S_SVRSPRG2] = {SPR_SHHR, E, 4, A_PAIN, 0, 0, S_SVRSPRG3}
states[S_SVRSPRG3] = {SPR_SHHR, D, 1, nil, 0, 0, S_SVRSPRG4}
states[S_SVRSPRG4] = {SPR_SHHR, C, 1, nil, 0, 0, S_SVRSPRG5}
states[S_SVRSPRG5] = {SPR_SHHR, B, 1, nil, 0, 0, S_SVRSPRG}

--Red Diagonal Springs

states[S_SDRSPRG] = {SPR_SHDR, A, -1, nil , 0, 0, S_NULL}
states[S_SDRSPRG2] = {SPR_SHDR, E, 4, A_PAIN, 0, 0, S_SDRSPRG3}
states[S_SDRSPRG3] = {SPR_SHDR, D, 1, nil, 0, 0, S_SDRSPRG4}
states[S_SDRSPRG4] = {SPR_SHDR, C, 1, nil, 0, 0, S_SDRSPRG5}
states[S_SDRSPRG5] = {SPR_SHDR, B, 1, nil, 0, 0, S_SDRSPRG}

--STATES : Blue SPRINGS
--Blue Vertical Springs
 
states[S_SHBSPRG] = {SPR_SHBS, A, -1, nil, 0, 0, S_NULL}
states[S_SHBSPRG2] = {SPR_SHBS, E, 4, A_PAIN, 0, 0, S_SHBSPRG3}
states[S_SHBSPRG3] = {SPR_SHBS, D, 1, nil, 0, 0, S_SHBSPRG4}
states[S_SHBSPRG4] = {SPR_SHBS, C, 1, nil, 0, 0, S_SHBSPRG5}
states[S_SHBSPRG5] = {SPR_SHBS, B, 1, nil, 0, 0, S_SHBSPRG}

--Blue Horizontal Springs

states[S_SVBSPRG] = {SPR_SHHB, A, -1, nil , 0, 0, S_NULL}
states[S_SVBSPRG2] = {SPR_SHHB, E, 4, A_PAIN, 0, 0, S_SVBSPRG3}
states[S_SVBSPRG3] = {SPR_SHHB, D, 1, nil, 0, 0, S_SVBSPRG4}
states[S_SVBSPRG4] = {SPR_SHHB, C, 1, nil, 0, 0, S_SVBSPRG5}
states[S_SVBSPRG5] = {SPR_SHHB, B, 1, nil, 0, 0, S_SVBSPRG}

--Blue Diagonal Springs

states[S_SDBSPRG] = {SPR_SHDB, A, -1, nil , 0, 0, S_NULL}
states[S_SDBSPRG2] = {SPR_SHDB, E, 4, A_PAIN, 0, 0, S_SDBSPRG3}
states[S_SDBSPRG3] = {SPR_SHDB, D, 1, nil, 0, 0, S_SDBSPRG4}
states[S_SDBSPRG4] = {SPR_SHDB, C, 1, nil, 0, 0, S_SDBSPRG5}
states[S_SDBSPRG5] = {SPR_SHDB, B, 1, nil, 0, 0, S_SDBSPRG}