// Gib generator fixed by LilWhiteMouse - thanks LWM!
actor CHRandom_GibGenerator {
    +NotOnAutomap
    +NOCLIP
    +NOSECTOR
    +NOBLOCKMAP
    +NOINTERACTION
	Radius 0
    Height 0
states 
	{ 
	Spawn: 
     TNT1 A 0 NODELAY A_Jump(255,1,2,3,4,5,6,7,8) 
	 1:
	 TNT1 A 0 A_SpawnItemEx ("CHGore_Gib1", FRandom(-16,16),FRandom(-16,16),FRandom(0,56),VelX+FRandom(0,7),VelY+FRandom(0,7),VelZ+FRandom(0,7),FRandom(0,360),  SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION | SXF_USEBLOODCOLOR | SXF_NOCHECKPOSITION)
     stop 
	 2:
	 TNT1 A 0 A_SpawnItemEx ("CHGore_Gib2", FRandom(-16,16),FRandom(-16,16),FRandom(0,56),VelX+FRandom(0,7),VelY+FRandom(0,7),VelZ+FRandom(0,7),FRandom(0,360),SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION | SXF_USEBLOODCOLOR | SXF_NOCHECKPOSITION)
     stop 
	 	 3:
	 TNT1 A 0 A_SpawnItemEx ("CHGore_Gib3",  FRandom(-16,16),FRandom(-16,16),FRandom(0,56),VelX+FRandom(0,7),VelY+FRandom(0,7),VelZ+FRandom(0,7),FRandom(0,360),SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION | SXF_USEBLOODCOLOR | SXF_NOCHECKPOSITION)
     stop 
	 	 4:
	 TNT1 A 0 A_SpawnItemEx ("CHGore_Gib4",  FRandom(-16,16),FRandom(-16,16),FRandom(0,56),VelX+FRandom(0,7),VelY+FRandom(0,7),VelZ+FRandom(0,7),FRandom(0,360),SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION | SXF_USEBLOODCOLOR | SXF_NOCHECKPOSITION)
     stop 
	 	 5:
	 TNT1 A 0 A_SpawnItemEx ("CHGore_Gib5",  FRandom(-16,16),FRandom(-16,16),FRandom(0,56),VelX+FRandom(0,7),VelY+FRandom(0,7),VelZ+FRandom(0,7),FRandom(0,360),SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION | SXF_USEBLOODCOLOR | SXF_NOCHECKPOSITION)
     stop 
	 	 6:
	 TNT1 A 0 A_SpawnItemEx ("CHGore_Gib6",  FRandom(-16,16),FRandom(-16,16),FRandom(0,56),VelX+FRandom(0,7),VelY+FRandom(0,7),VelZ+FRandom(0,7),FRandom(0,360), SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION | SXF_USEBLOODCOLOR | SXF_NOCHECKPOSITION)
     stop 
	 	 7:
	 TNT1 A 0 A_SpawnItemEx ("CHGore_Gib7",  FRandom(-16,16),FRandom(-16,16),FRandom(0,56),VelX+FRandom(0,7),VelY+FRandom(0,7),VelZ+FRandom(0,7),FRandom(0,360),SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION | SXF_USEBLOODCOLOR | SXF_NOCHECKPOSITION)
     stop 
	 8:
	 TNT1 A 0 A_SpawnItemEx ("CHGore_Gib8", FRandom(-16,16),FRandom(-16,16),FRandom(0,56),VelX+FRandom(0,7),VelY+FRandom(0,7),VelZ+FRandom(0,7),FRandom(0,360),SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION | SXF_USEBLOODCOLOR | SXF_NOCHECKPOSITION)
     stop 
   } 
} 

 

 
/*
// Gib generator
actor NashGore_GibGenerator
{
states
	{
	Spawn:
	TNT1 A 0
	TNT1 A 1 A_Jump(32,8)
	TNT1 A 1 A_Jump(64,9)
	TNT1 A 1 A_Jump(96,10)
	TNT1 A 1 A_Jump(128,11)
	TNT1 A 1 A_Jump(160,12)
	TNT1 A 1 A_Jump(192,13)
	TNT1 A 1 A_Jump(224,14)
	TNT1 A 1 A_Jump(255,15)
	TNT1 A 1 A_SpawnDebris("NashGore_Gib1")
	TNT1 A 1 A_Jump(255,15)
	TNT1 A 1 A_SpawnDebris("NashGore_Gib2")
	TNT1 A 1 A_Jump(255,13)
	TNT1 A 1 A_SpawnDebris("NashGore_Gib3")
	TNT1 A 1 A_Jump(255,11)
	TNT1 A 1 A_SpawnDebris("NashGore_Gib4")
	TNT1 A 1 A_Jump(255,9)
	TNT1 A 1 A_SpawnDebris("NashGore_Gib5")
	TNT1 A 1 A_Jump(255,7)
	TNT1 A 1 A_SpawnDebris("NashGore_Gib6")
	TNT1 A 1 A_Jump(255,5)
	TNT1 A 1 A_SpawnDebris("NashGore_Gib7")
	TNT1 A 1 A_Jump(255,3)
	TNT1 A 1 A_SpawnDebris("NashGore_Gib8")
	TNT1 A 1 A_Jump(255,1)
	TNT1 A 1
	stop
	}
}
*/
Actor CH_cactus
{

radius 3
height 6
speed 5
scale 1
damage 0
projectile
    +DOOMBOUNCE
    +MOVEWITHSECTOR
	+CANNOTPUSH
    -NOGRAVITY
+NotOnAutomap
bouncefactor 0.45
states
{
spawn:
	 TNT1 A 0
	 TNT1 A 0 ThrustThingZ (0, 65, 0, 1)
	 Goto wee
	 wee:
	 CACT ABAC random(3,6)
	 loop
	 crash:
CACT B -1
stop
death:
CACT B -1
stop
}
}

Actor CH_Soul
{  
  Radius 1
  Height 1
  Speed 1
  Projectile
      +MOVEWITHSECTOR
	+CANNOTPUSH
+NotOnAutomap
  States
  {
  Spawn:
    SSUL ABCD 10 ThrustThingZ (0, 5, 0, 1)
	SSUL D 6 
    Stop 
  }
}

Actor CH_cirno
{
radius 3
height 6
speed 1
scale 1
damage 0
projectile
    +MOVEWITHSECTOR
	+CANNOTPUSH
    -NOGRAVITY
+NotOnAutomap
gravity 0.05
states
{
spawn:
	 TNT1 A 0
	 TNT1 A 0 ThrustThingZ (0, 5, 0, 1)
	 Goto wee
	 wee:
	 CIRN A 5
	 loop
	 crash:
CIRN A -1
stop
death:
CIRN A -1
stop
}
}

Actor CH_BoneGib
{
radius 2
height 3
projectile
damage 0
speed 2
projectile
    +DOOMBOUNCE
    +MOVEWITHSECTOR
	+CANNOTPUSH
    -NOGRAVITY
+NotOnAutomap
bouncefactor 0.5
states
{
spawn:
	 TNT1 A 0 
	 TNT1 A 0 ThrustThingZ (0, 55, 0, 1)
	 Goto wee
	 wee:
	 BBBN ABCD random(3,6)
	 loop
	 crash:
BBBN ABD 1
BBBN C 850
stop
death:
BBBN ABD 1
BBBN C 850
stop
}
}


Actor CHgold_teeth
{

radius 3
height 6
speed 7
scale 1
damage 0
projectile
    +DOOMBOUNCE
    +MOVEWITHSECTOR
	+CANNOTPUSH
    -NOGRAVITY
+NotOnAutomap
bouncefactor 0.7
states
{
spawn:
	 TNT1 A 0
	 TNT1 A 0 ThrustThingZ (0, 45, 0, 1)
	 Goto wee
	 wee:
	 GTEE ABC random(3,6)
	 loop
	 crash:
GTEE C -1
stop
death:
GTEE C -1
stop
}
}

Actor CH_Pantsu
{
radius 3
height 6
speed 1
scale 1
damage 0
projectile
    +MOVEWITHSECTOR
	+CANNOTPUSH
    -NOGRAVITY
+NotOnAutomap
+thruactors
gravity 0.03
states
{
spawn:
	 TNT1 A 0
	 TNT1 A 0 ThrustThingZ (0, 5, 0, 1)
	 Goto fall
	 fall: 
PTSU A 6
PTSU A 6 ThrustThing(angle+45,2,1,0)
PTSU B 9
PTSU B 9
PTSU C 6 
PTSU C 7
PTSU D 7
PTSU D 7 ThrustThing(angle-90,2,1,0)
PTSU A 5
loop
crash:
PTSU A 0 A_setscale(1.2,0.5)
PTSU A -1
stop
death:
PTSU A 0 A_setscale(1.2,0.5)
PTSU A -1
stop
}
}


// Gib 1
actor CHGore_Gib1
{
radius 3
height 6
speed 7
scale 0.75
damage 0
projectile
    +DOOMBOUNCE
    +MOVEWITHSECTOR
	+CANNOTPUSH
    -NOGRAVITY
+NotOnAutomap
bouncefactor 0.4
gravity 0.5
states
	{
	Spawn:
	 TNT1 A 0
	 TNT1 A 0 ThrustThingZ (0, 75, 0, 1)
	 Goto Wee
	 wee:
	 GIB1 A Random(4,5) A_SpawnItemEx ("CHNashGore_Blood", 0,0,-5, VelX,VelY,VelZ, 0, SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION)
	  GIB1 A Random(3,4) ThrustThingZ(0,6,1,1)
	 loop
	Crash:
	 GIB1 A -1
	 stop
	 Death:
	 GIB1 A 800
	 stop
	}
}

// Gib 2
actor CHGore_Gib2 : CHGore_Gib1
{
states
	{
	Spawn:
	 TNT1 A 0 ThrustThingZ (0, 75, 0, 1)
	 	 Goto Wee
	 wee:
	 GIB2 A Random(4,5) A_SpawnItemEx ("CHNashGore_Blood", 0,0,-5, VelX,VelY,VelZ, 0, SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION)
	  GIB2 A Random(4,5) ThrustThingZ(0,6,1,1)
	 loop
	Crash:
	 GIB2 A -1
	 stop
	 	 Death:
	 GIB2 A 800
	 stop
	}
}

// Gib 3
actor CHGore_Gib3 : CHGore_Gib1
{
states
	{
	Spawn:
	 TNT1 A 0 ThrustThingZ (0, 75, 0, 1)
	 	 Goto Wee
	 wee:
	 GIB3 A Random(4,5) A_SpawnItemEx ("CHNashGore_Blood", 0,0,-5, VelX,VelY,VelZ, 0, SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION)
	 GIB3 A Random(4,5) ThrustThingZ(0,6,1,1)
	 loop
	Crash:
	 GIB3 A -1
	 stop
	 	 Death:
	 GIB3 A 800
	 stop
	}
}

// Gib 4
actor CHGore_Gib4 : CHGore_Gib1
{

states
	{
	Spawn:
	 TNT1 A 0 ThrustThingZ (0, 75, 0, 1)
	 	 Goto Wee
	 wee:
	 GIB4 A Random(4,5) A_SpawnItemEx ("CHNashGore_Blood", 0,0,-5, VelX,VelY,VelZ, 0, SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION)
	 GIB4 A Random(4,5) ThrustThingZ(0,6,1,1)
	 loop
	Crash:
	 GIB4 A -1
	 stop
	 	 Death:
	 GIB4 A 800
	 stop
	}
}

// Gib 5
actor CHGore_Gib5 : CHGore_Gib1
{

states
	{
	Spawn:
	 TNT1 A 0 ThrustThingZ (0, 75, 0, 1)
	 	 Goto Wee
	 wee:
	 GIB5 A Random(4,5) A_SpawnItemEx ("CHNashGore_Blood", 0,0,-5, VelX,VelY,VelZ, 0, SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION)
	 GIB5 A Random(4,5) ThrustThingZ(0,6,1,1)
	 loop
	Crash:
	 GIB5 A -1
	 stop
	 	 Death:
	 GIB5 A 800
	 stop
	}
}

// Gib 6
actor CHGore_Gib6 : CHGore_Gib1
{

states
	{
	Spawn:
	 TNT1 A 0 ThrustThingZ (0, 75, 0, 1)
	 	 Goto Wee
	 wee:
	 GIB6 A Random(4,5) A_SpawnItemEx ("CHNashGore_Blood", 0,0,-5, VelX,VelY,VelZ, 0, SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION)
	 GIB6 A Random(4,5) ThrustThingZ(0,6,1,1)
	 loop
	Crash:
	 GIB6 A -1
	 stop
	 	 Death:
	 GIB6 A 800
	 stop
	}
}

// Gib 7
actor CHGore_Gib7 : CHGore_Gib1
{

states
	{
	Spawn:
	 TNT1 A 0 ThrustThingZ (0, 75, 0, 1)
	 	 Goto Wee
	 wee:
	 GIB7 A Random(4,5) A_SpawnItemEx ("CHNashGore_Blood", 0,0,-5, VelX,VelY,VelZ, 0, SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION)
	 GIB7 A Random(4,5) ThrustThingZ(0,6,1,1)
	 loop
	Crash:
	 GIB7 A -1
	 stop
	 	 Death:
	 GIB7 A 800
	 stop
	}
}

// Gib 8
actor CHGore_Gib8 : CHGore_Gib1
{

states
	{
	Spawn:
	 TNT1 A 0 ThrustThingZ (0, 75, 0, 1)
	 	 Goto Wee
	 wee:
	 GIB8 A Random(4,5) A_SpawnItemEx ("CHNashGore_Blood", 0,0,-5, VelX,VelY,VelZ, 0, SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION)
	 GIB8 A Random(4,5) ThrustThingZ(0,6,1,1)
	 loop
	Crash:
	 GIB8 A -1
	 stop
	 	 Death:
	 GIB8 A 800
	 stop
	}
}

// Gib 9 (hand)
actor CHGore_Gib9 : CHGore_Gib1
{

states
	{
	Spawn:
	 TNT1 A 0 ThrustThingZ (0, 75, 0, 1)
	 	 Goto Wee
	 wee:
	 GIB9 A Random(4,5) A_SpawnItemEx ("CHNashGore_Blood", 0,0,-5, VelX,VelY,VelZ, 0, SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION)
	 GIB9 A Random(4,5) ThrustThingZ(0,6,1,1)
	 loop
	Crash:
	 GIB9 A -1
	 stop
	 	 Death:
	 GIB9 A 800
	 stop
	}
}

// Gib 10 (arm)
actor CHGore_Gib10 : CHGore_Gib1
{

states
	{
	Spawn:
	 TNT1 A 0 ThrustThingZ (0, 75, 0, 1)
	 	 Goto Wee
	 wee:
	 GIB0 A Random(4,5) A_SpawnItemEx ("CHNashGore_Blood", 0,0,-5, VelX,VelY,VelZ, 0, SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION)
	 GIB0 A Random(4,5) ThrustThingZ(0,6,1,1)
	 loop
	Crash:
	 GIB0 A -1
	 stop
	 	 Death:
	 GIB0 A 800
	 stop
	}
}

// Gib 11 (eyeball)
actor CHGore_Gib11 : CHGore_Gib1
{

states
	{
	Spawn:
	 TNT1 A 0 ThrustThingZ (0, 75, 0, 1)
	 	 Goto Wee
	 wee:
	 GIBI A Random(4,5) A_SpawnItemEx ("CHNashGore_Blood", 0,0,-5, VelX,VelY,VelZ, 0, SXF_ABSOLUTEMOMENTUM | SXF_TRANSFERTRANSLATION)
	 GIBI A Random(4,5) ThrustThingZ(0,6,1,1)
	 loop
	Crash:
	 GIBI A -1
	 stop
	 	 Death:
	 GIBI A 800
	 stop
	}
}

