// Dirt clump (spawned by spike) -------------------------------------------- class DirtClump : Actor { Default { +NOBLOCKMAP +NOTELEPORT } States { Spawn: TSPK C 20; Loop; } } // Spike (thrust floor) ----------------------------------------------------- class ThrustFloor : Actor native { Default { Radius 20; Height 128; } native void A_ThrustRaise(); native void A_ThrustImpale(); native void A_ThrustLower(); native void A_ThrustInitDn(); native void A_ThrustInitUp(); States { ThrustRaising: TSPK A 2 A_ThrustRaise; Loop; BloodThrustRaising: TSPK B 2 A_ThrustRaise; Loop; ThrustLower: TSPK A 2 A_ThrustLower; Loop; BloodThrustLower: TSPK B 2 A_ThrustLower; Loop; ThrustInit1: TSPK A 3; TSPK A 4 A_ThrustInitDn; TSPK A -1; Loop; BloodThrustInit1: TSPK B 3; TSPK B 4 A_ThrustInitDn; TSPK B -1; Loop; ThrustInit2: TSPK A 3; TSPK A 4 A_ThrustInitUp; TSPK A 10; Loop; BloodThrustInit2: TSPK B 3; TSPK B 4 A_ThrustInitUp; TSPK B 10; Loop; ThrustRaise: TSPK A 8 A_ThrustRaise; TSPK A 6 A_ThrustRaise; TSPK A 4 A_ThrustRaise; TSPK A 3 A_SetSolid; TSPK A 2 A_ThrustImpale; Loop; BloodThrustRaise: TSPK B 8 A_ThrustRaise; TSPK B 6 A_ThrustRaise; TSPK B 4 A_ThrustRaise; TSPK B 3 A_SetSolid; TSPK B 2 A_ThrustImpale; Loop; } } // Spike up ----------------------------------------------------------------- class ThrustFloorUp : ThrustFloor { Default { +SOLID +NOTELEPORT +FLOORCLIP } States { Spawn: Goto ThrustInit2; } } // Spike down --------------------------------------------------------------- class ThrustFloorDown : ThrustFloor { Default { +NOTELEPORT +FLOORCLIP +INVISIBLE } States { Spawn: Goto ThrustInit1; } }