Actor BEARTRAP : CustomInventory 
{
  +COUNTITEM
  +INVENTORY.INVBAR
  Inventory.maxAmount 3
  Inventory.Icon "TRAPF0"
  Inventory.PickupMessage "$GOTTRAP"
  inventory.pickupsound "Claymore/Place"
  painchance "disarm", 256 DamageFactor "DISARM", 1000.0
 Scale 0.5
 health 100
 tag "Bear trap"
 +shootable
 +CANNOTPUSH
  States
  {
  Spawn:
   TRAP E -1
    Stop
  Use:
    TNT1 A 1 A_SpawnItemEx ("BEARTRAPSET", 5, 0, 5, 2, 0,0, 0)
    Stop
	
  Death:
   TNT1 A 0 A_SpawnItem ("BEARTRAPRIP")
	STOP
	
 Pain.Disarm:
  Death.Disarm:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem ("SCRAPMETAL", 0, 7, 0, 0)
    stop
	}
}

ACTOR BEARTRAPSET : SWITCHABLEDECORATION
{
 damagetype "Beartrap"
  Health 100
  Radius 25
  Height 25
  MaxTargetRange 25
  Scale 0.5
  Speed 50
  painchance "disarm", 256
  SPECIES "PROXBOMBS"
   +USESPECIAL
  Activation THINGSPEC_Switch
  +SHOOTABLE
  +cannotpush
  +vulnerable
   +NEVERTARGET
  +floorclip
  +NOBLOOD
  +FRIENDLY
  Obituary "%o strayed too close to a trap."
  damagefactor "GibRemoving", 0.0	damagefactor "Trample", 0.0 damagefactor "headkick", 0.0
	damagefactor "TeleportRemover", 0.0
  	DamageFactor "CauseSplash", 0.0 DamageFactor "CauseObjectsToSplashSlime", 0.0 DamageFactor "CauseObjectsToSplashNukage", 0.0
	DamageFactor "CauseObjectsToSplashBlood", 0.0 DamageFactor "CauseObjectsToSplashLava", 0.0 
	DamageFactor "DISARM", 1000.0
  
  States
  {
  Spawn:
	CLAP A 0
    TRAP EEH 1
	TNT1 A 0 A_PlaySound ("Claymore/Place")
	CLAP A 0 A_changeflag("nodamage",0)
   Goto waiting
   
   waiting:
    TRAP A 1 A_LookEx (LOF_NOSOUNDCHECK, 0, 25, 25, 360, "SEE")
    Loop
		
  See:
    TRAP AA 1 A_Chase ("TRIGGER", 0)
    Loop

  TRIGGER:
	TNT1 A 0 A_PlaySound ("Weapons/NailHitBleed")
	TNT1 A 0 A_explode(1, 25,0,0,40,0,0,"hitpuff","beartrap")
	TRAP F 0 A_DamageTarget(50,"BEARTRAP",DMSS_AFFECTARMOR)
	TRAP HBCDE 1
	stop
	
	Active:
	TNT1 A 0 A_PlaySound ("Claymore/Place")
	TNT1 A 0 A_SpawnItem ("BEARTRAP", 0, 0, 0, 0)
	STOP
	
  Death:
   TNT1 A 0 A_SpawnItem ("BEARTRAPRIP")
	STOP
	
 Pain.Disarm:
  Death.Disarm:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem ("SCRAPMETAL", 0, 7, 0, 0)
    stop
  }
}

Actor BearTrapTriggered : StickyChild
{
Scale 0.5
Damagetype "Beartrap"
Health 100
  Radius 15
  Height 7
  painchance "disarm", 256
+USESPECIAL
  Activation THINGSPEC_Switch
 +SHOOTABLE
 +NEVERTARGET
 +NOTARGETSWITCH
  +floorclip
  +FRIENDLY
	DamageFactor "DISARM", 1000.0
	  States
  {
  Spawn:
  TRAP F 0 
  TNT1 A 0 A_SpawnItem ("TRAPtarget")
  TRAP E  1 a_lookex(LOF_NOSOUNDCHECK, 0, 35, 35, 360, "gonnabiteyou")
  Gonnabiteyou:
  TRAP F 0 A_facetarget
   TRAP F 0 A_JUMPIFINVENTORY("TRAPDESTROYER",1,"DEATH")
  TRAP EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
   TRAP F 0 A_DamageTarget(10,"BEARTRAP",DMSS_AFFECTARMOR)
   loop
   
   Death:
   TRAP G 1 a_stop
    TNT1 A 0 A_SpawnItem ("BEARTRAPRIP")
	STOP	

	Death.crush:
		TNT1 A 0
		STOP
	
DeadMaster:
	TRAP G 1
	TNT1 A 0 A_PlaySound ("Claymore/Place")
	TNT1 A 0 A_JUMP(60,2)
	TNT1 A 0 A_SpawnItem ("BEARTRAP")
	STOP
	TNT1 A 0 A_SpawnItem ("BEARTRAPRIP")
	STOP

 Pain.Disarm:
  Death.Disarm:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem ("SCRAPMETAL", 0, 7, 0, 0)
    stop
}}
  
 ACTOR BEARTRAPRIP
{
  Radius 25
  Height 25
  Scale 0.5
  painchance "disarm", 256
  HEALTH 100
  +floorclip
+SHOOTABLE
+noblood
  damagefactor "GibRemoving", 0.0	damagefactor "Trample", 0.0 damagefactor "headkick", 0.0
	damagefactor "TeleportRemover", 0.0
  	DamageFactor "CauseSplash", 0.0 DamageFactor "CauseObjectsToSplashSlime", 0.0 DamageFactor "CauseObjectsToSplashNukage", 0.0
	DamageFactor "CauseObjectsToSplashBlood", 0.0 DamageFactor "CauseObjectsToSplashLava", 0.0 
	DamageFactor "DISARM", 1000.0
  
  States
  {
  Spawn:
	CLAP A 0
    TRAP G 1
    Loop

  Death:
    TNT1 A -1
	STOP
	
 Pain.Disarm:
  Death.Disarm:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem ("SCRAPMETAL", 0, 7, 0, 0)
    stop
  }
} 

ACTOR TRAPTARGET : stickychild
{
  Radius 25
  Height 25
  Scale 0.5
  HEALTH 50
+SHOOTABLE
+dontthrust
+noblood
damagefactor "trample", 0.0 damagefactor "headkick", 0.0

  States
  {
  Spawn:
	TNT1 A 1 NoDelay Thing_ChangeTID(0,9988)
	TNT1 AA 30 A_Warp(AAPTR_MASTER,20,20,5,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	TNT1 A 1 A_radiusgive("TrapHater",150,RGF_MONSTERS,1)
    Loop

  Death:
    TNT1 A 1 a_radiusgive("trapdestroyer", 80, RGF_OBJECTS,1,"beartraptriggered")
	STOP

  }
} 

ACTOR trapdestroyer : Inventory { Inventory.MaxAmount 1 }
ACTOR istrapped : Inventory { Inventory.MaxAmount 1 }