Actor LilCaleb2 : LilCaleb Replaces LilCaleb //Smol bastards
{
+THRUSPECIES
+DONTHARMSPECIES
Species "Creatures"
tag "Mini Caleb"
States
{
  Spawn:
	TNT1 A 1 //They turn invisible otherwise
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CreatureSpawner") == 2,1)
	Goto NULL
  Idle:
    CAL8 G 0 A_JumpIfinventory("LilCalebTaunt",1,"Taunt")
	CAL8 G 0 A_Jump(10,"TauntIdle")
	TNT1 A 0 A_Look
	CAL8 AA 3 A_Wander
	TNT1 A 0 A_Look
	CAL8 BB 3 A_Wander
	TNT1 A 0 A_Look
	CAL8 CC 3 A_Wander
	TNT1 A 0 A_Look
	CAL8 DD 3 A_Wander
	TNT1 A 0 A_Look
	CAL8 EE 3 A_Wander
	TNT1 A 0 A_Look
	CAL8 FF 3 A_Wander
	Loop
  TauntIdle:
	CAL8 G 0 A_PlaySound("lilcaleb/kill",CHAN_VOICE)
	CAL8 G 0 A_TakeInventory("LilCalebTaunt",1)
	Goto Idle
  Taunt:
	CAL8 G 0 A_PlaySound("lilcaleb/kill",CHAN_VOICE,0,1,ATTN_NONE)
	CAL8 G 0 A_TakeInventory("LilCalebTaunt",1)
	Goto Idle
	}
}

ACTOR SmallBatSpawner
{
Radius 24
Height 8
Speed 17
Monster
-SHOOTABLE
-COUNTKILL
-SOLID
States
{
   Spawn:
    TNT1 A 0
	TNT1 A 1
   Death:
    TNT1 A 5 A_SpawnItemEx("SmallBat",0,0,60)
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor SmallBat 30459
{
    Health 30
    Radius 12
    Height 24
    Speed 14
	FloatSpeed 4
    PainChance 200
    MONSTER 
    +NOGRAVITY
    +FLOAT
	+THRUSPECIES
	+DONTHARMSPECIES
	-FLOORCLIP
	-CANUSEWALLS
	-COUNTKILL
    SeeSound "batfam/idle"
    PainSound "batfam/pain"
    DeathSound "batfam/death"
    ActiveSound "batfam/idle"
    HitObituary "%o was scratched by a bat"
	Species "Creatures"
	Tag "\c[a4]Bat\c-"
    States
    {
	Spawn:
	    TNT1 A 1
	    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CreatureSpawner") == 2,1)
		Goto NULL
	Idle:
	    TNT1 A 0 A_Look
        BFAM A 3 A_Wander
		TNT1 A 0 A_Look
		BFAM B 3 A_Wander
		TNT1 A 0 A_Look
		BFAM C 3 A_Wander
		TNT1 A 0 A_Look
		BFAM B 3 A_Wander
        TNT1 A 0 A_Jump(30,1)
		Loop
		TNT1 A 0 A_PlaySound("batfam/idle")
		Loop
    See:
        BFAM ABCB 3 A_Chase
        Loop
    Melee:
        BFAM A 3 A_FaceTarget
        BFAM B 3 A_CustomMeleeAttack(Random(1,8)*1,"batfam/idle")
        BFAM CB 3 A_FaceTarget
        Goto See
    Pain:
        BFAM A 2
        BFAM A 2 A_Pain
        Goto See
    Death:
        TNT1 A 0 A_Die
        TNT1 A 0 A_NoBlocking 
        BFAM D 5 A_Scream
        BFAM E 5
        BFAM FDEF 5
        Goto Death+5
    Crash:
	    TNT1 A 0 A_SetFloorClip
        BFAM G 6 A_PlaySound("batfam/crash")
        BFAM H 7
        BFAM I 8
        BFAM J -1
        Stop
    }
}

Actor SmallSpider 30460
{	
	Health 30
  	Mass 20
  	Speed 12
  	PainChance 128
  	SeeSound "smallspider/see"
  	PainSound "baby/pain"
  	DeathSound "smallspider/death"
  	ActiveSound "smallspider/see"
	MeleeRange 16
	Radius 8
	Height 8
	Scale 0.25
  	MONSTER
  	+FLOORCLIP
	+THRUSPECIES
	+DONTHARMSPECIES
	-CANUSEWALLS
	-COUNTKILL
	-SOLID
	Obituary"%o was webbed by a Spider."
	Species "Creatures"
	Tag "\c[d5]Spider\c-"
	States
 	{
	Spawn:
	    TNT1 A 1
	    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CreatureSpawner") == 2,1)
		Goto NULL
	Idle:
	    TNT1 A 0 A_Look
		ZPID A 5 A_Wander
		TNT1 A 0 A_Look
		ZPID B 5 A_Wander
		TNT1 A 0 A_Jump(15,1)
		Loop
		TNT1 A 0 A_PlaySound("smallspider/see")
		Loop
  	See:
		ZPID A 20
		ZPID AABBCCDDEEFF 3 A_Chase
		Goto See+1
	Melee:
		ZPID A 4 A_FaceTarget
		ZPID G 4 A_CustomMeleeAttack(Random(1,8)*2)
		ZPID H 4
		Goto See+1
  	Pain:
		ZPID I 3
		ZPID I 3 A_Pain
		Goto See+1
  	Death:
		ZPID J 2 A_Scream
		ZPID K 2 A_NoBlocking
		ZPID LMN 2
		ZPID O -1 
		Stop
  	Raise:
		ZPID ONMLKJ 5
		Goto See+1
  	}
}

ACTOR SmallRat 30461
{
	Health 30
	Radius 8
	Height 28
	Mass 200
	Speed 3
	PainChance 64
	SeeSound "RatSpawn/Sight"
	PainSound "RatHit/Pain"
	DeathSound "RatDead/Death"
	Obituary "%o was nibbled by a Small Rat."
	MONSTER
	+FLOORCLIP
    +NOINFIGHTING
	+THRUSPECIES
	+DONTHARMSPECIES
	-CANUSEWALLS
	-COUNTKILL
	-SOLID
	Species "Creatures"
	Tag "\c[c8]Rat\c-"
	States
	{
	Spawn:
	    TNT1 A 1
	    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CreatureSpawner") == 2,1)
		Goto NULL
	Idle:
		TNT1 A 0 A_Look
		RATA AAAA 1 A_Wander
		TNT1 A 0 A_Look
		RATA BBBB 1 A_Wander
		TNT1 A 0 A_Look
		RATA CCCC 1 A_Wander
		TNT1 A 0 A_Jump(15,1)
		Loop
		TNT1 A 0 A_PlaySound("RatSpawn/Sight")
		Loop
	See:
		RATA AAAABBBBCCCC 1 A_Chase
		Loop
	Melee:
    	RATA A 20 A_FaceTarget
    	RATA B 3 A_CustomMeleeAttack(1,0,0,0,0)
		TNT1 A 0 A_PlaySound("RatAttack/Attack")
    	Goto See
	Pain:
		TNT1 A 0 A_Pain
		Goto See
	Death:
		RATD A 1 A_Scream
		RATD A 1 A_NoBlocking
		RATD AABBBBCCCC 1
		Stop

	}
}

ACTOR CrowWander2L 30462 //Wandering version. Flees when player gets close. No reaction to weapon fire. Faces left.
{
  Mass 99999
  Health 60
  Radius 6
  Height 6
  Scale 0.7
  Monster
  Alpha 1
  -COUNTKILL
  -SOLID
  +NEVERTARGET
  +NODAMAGETHRUST
  +FLOORHUGGER
  +FLOORCLIP
  -CANUSEWALLS
  -NOGRAVITY
  +NOTAUTOAIMED
  +LOOKALLAROUND
  +BOUNCEONWALLS
  +THRUSPECIES
  +DONTHARMSPECIES
  -NOBLOOD
  PainChance 255
  MeleeDamage 0
  MeleeRange 310
  Species "Creatures"
  Tag "\c[v9]Crow\c-"
  States
  {
  Spawn: 
     TNT1 A 0
	 TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK ,0,310,800,0,"Pain")
	 TNT1 A 0 A_StopSound(5)
	 TNT1 A 0 A_JumpIfTargetInsideMeleeRange("Pain")
	 TNT1 A 0 A_ChangeFlag("FLOORHUGGER",1)
	 TNT1 A 0 A_ChangeFlag("NOGRAVITY",0)
     CRW1 A 25
	 TNT1 A 0 A_Jump(60,"LookDown","Peck","ForwardLook")
	 TNT1 A 0 A_Jump(15,"Caw")
	 TNT1 A 0 A_Jump(10,"WanderFly")
	 Loop
  See:
     TNT1 A 0 A_StopSound(5)
	 TNT1 A 0 A_FaceTarget
	 TNT1 A 0 A_JumpIfTargetInsideMeleeRange("Pain")
	 TNT1 A 0 A_JumpIfInventory("CrowGroupFlee",1,"Pain")
	 TNT1 A 0 A_ChangeFlag("FLOORHUGGER",1)
	 TNT1 A 0 A_ChangeFlag("NOGRAVITY",0)
     CRW1 A 25
	 TNT1 A 0 A_Jump(60,"LookDown","Peck","ForwardLook")
	 TNT1 A 0 A_Jump(15,"Caw")
	 TNT1 A 0 A_Jump(10,"WanderFly")
	 Goto Spawn
  Melee:	
     TNT1 A 0
	 Goto Pain
  LookDown:
     TNT1 A 0 A_JumpIfTargetInsideMeleeRange("Pain")
	 TNT1 A 0 A_JumpIfInventory("CrowGroupFlee",1,"Pain")
	 TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK ,0,310,800,0,"Pain")
     CRW1 C 5
	 TNT1 A 0 A_Jump(60,"Spawn","Peck")
	 Loop	
  Peck:
     TNT1 A 0 A_JumpIfTargetInsideMeleeRange("Pain")
	 TNT1 A 0 A_JumpIfInventory("CrowGroupFlee",1,"Pain")
	 TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK ,0,310,800,0,"Pain")
     CRW1 C 5
	 CRW1 EC 2
	 TNT1 A 0 A_Jump(60,"Spawn","LookDown")
	 Loop
  Caw:
     TNT1 A 0 A_JumpIfTargetInsideMeleeRange("Pain")
	 TNT1 A 0 A_JumpIfInventory("CrowGroupFlee",1,"Pain")
	 TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK ,0,310,800,0,"Pain")
	 TNT1 A 0 A_Jump(60,4) //To play one caw on occasion.
	 TNT1 A 0 A_PlaySound("CRWCAW1",6,0.3,0)
     CRW1 A 12
	 CRW1 M 6
	 Goto Spawn
	 TNT1 A 0 A_PlaySound("CRWCAW3",6,0.3,0)
	 CRW1 A 12
	 Goto Spawn
  ForwardLook:
     TNT1 A 0 A_JumpIfTargetInsideMeleeRange("Pain")
	 TNT1 A 0 A_JumpIfInventory("CrowGroupFlee",1,"Pain")
	 TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK ,0,310,800,0,"Pain")
     CRW1 G 16
	 TNT1 A 0 A_Jump(120,"Spawn")
	 Loop	 
  WanderFly:
     TNT1 A 0
	 TNT1 A 0 A_PlaySound("CRWFLP",5,0.3,1)
	 TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
	 TNT1 A 0 A_ChangeFlag("FLOORHUGGER",0)
	 TNT1 A 0 ThrustThing(random(0,360), random(4,8), 0, 0)
	 CRW1 IK 2
	 TNT1 A 0 ThrustThingZ(0,random(4,8),0,1)
	 TNT1 A 0 A_Jump(20,"Flight")
	 Goto WanderFly+4
  Flight:
     TNT1 A 0
	 TNT1 A 0 A_PlaySound("CRWFLP",5,0.3,1)
	 TNT1 A 0 ThrustThing(random(0,360), random(3,6), 0, 0)
	 CRW1 IK 2
	 TNT1 A 0 A_Jump(35,"FlyDown")
	 Goto Flight+2
  FlyDown:	 
	 TNT1 A 0 A_Stop
	 CRW1 IK 2
	 TNT1 A 0 A_PlaySound("CRWFLP",5,0.3,1)
	 TNT1 A 0 ThrustThing(random(0,360), random(3,6), 0, 0)
	 TNT1 A 0 ThrustThingZ(0,-2,0,1)
	 TNT1 A 0 A_CheckFloor("Spawn")
	 Goto FlyDown+1
  Pain:
     TNT1 A 0
	 TNT1 A 0 A_RadiusGive("CrowGroupFlee",160,RGF_OBJECTS,1)
	 TNT1 A 0 A_Jump(25,2)
	 TNT1 A 0 A_PlaySound("CRWCAW2",6,0.4,0)
	 TNT1 A 0 A_PlaySound("CRWFLP",5,0.3,1)
	 TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
	 TNT1 A 0 A_ChangeFlag("FLOORHUGGER",0)
	 TNT1 A 0 ThrustThing(random(0,360), random(6,12), 0, 0)
	 CRW1 IK 2
	 TNT1 A 0 ThrustThingZ(0,random(12,20),0,1)
	 TNT1 A 0 A_FadeOut(0.1)
	 Goto Pain+6
  Death:
	 RATD A 1
	 RATD A 1 A_NoBlocking
	 RATD AABBBBCCCC 1
	 Stop
  }
}

ACTOR CrowWander2R 30463 //Wandering version. Flees when player gets close. No reaction to weapon fire. Faces right.
{
  Mass 99999
  Health 60
  Radius 6
  Height 6
  Scale 0.7
  Monster
  Alpha 1
  -COUNTKILL
  -SOLID
  +NEVERTARGET
  +NODAMAGETHRUST
  +FLOORHUGGER
  +FLOORCLIP
  -CANUSEWALLS
  -NOGRAVITY
  +NOTAUTOAIMED
  +LOOKALLAROUND
  +BOUNCEONWALLS
  +THRUSPECIES
  +DONTHARMSPECIES
  -NOBLOOD
  PainChance 255
  MeleeDamage 0
  MeleeRange 310
  Species "Creatures"
  Tag "\c[v9]Crow\c-"
  States
  {
  Spawn: 
     TNT1 A 0
	 TNT1 A 0 A_Stop
	 TNT1 A 0 A_JumpIfInventory("CrowGroupFlee",1,"Pain")
	 TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK ,0,310,800,0,"Pain")
	 TNT1 A 0 A_StopSound(5)
	 TNT1 A 0 A_JumpIfTargetInsideMeleeRange("Pain")
	 TNT1 A 0 A_ChangeFlag("FLOORHUGGER",1)
	 TNT1 A 0 A_ChangeFlag("NOGRAVITY",0)
     CRW1 B 25
	 TNT1 A 0 A_Jump(60,"LookDown","Peck","ForwardLook")
	 TNT1 A 0 A_Jump(15,"Caw")
	 TNT1 A 0 A_Jump(10,"WanderFly")
	 Loop
  See:
     TNT1 A 0 A_StopSound(5)
	 TNT1 A 0 A_FaceTarget
	 TNT1 A 0 A_JumpIfInventory("CrowGroupFlee",1,"Pain")
	 TNT1 A 0 A_JumpIfTargetInsideMeleeRange("Pain")
	 TNT1 A 0 A_ChangeFlag("FLOORHUGGER",1)
	 TNT1 A 0 A_ChangeFlag("NOGRAVITY",0)
     CRW1 B 25
	 TNT1 A 0 A_Jump(60,"LookDown","Peck","ForwardLook")
	 TNT1 A 0 A_Jump(15,"Caw")
	 TNT1 A 0 A_Jump(10,"WanderFly")
	 Goto Spawn
  Melee:	
     TNT1 A 0
	 Goto Pain
  LookDown:
     TNT1 A 0 A_JumpIfTargetInsideMeleeRange("Pain")
	 TNT1 A 0 A_JumpIfInventory("CrowGroupFlee",1,"Pain")
	 TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK ,0,310,800,0,"Pain")
     CRW1 D 5
	 TNT1 A 0 A_Jump(60,"Spawn","Peck")
	 Loop	
  Peck:
     TNT1 A 0 A_JumpIfTargetInsideMeleeRange("Pain")
	 TNT1 A 0 A_JumpIfInventory("CrowGroupFlee",1,"Pain")
	 TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK ,0,310,800,0,"Pain")
     CRW1 D 5
	 CRW1 FD 2
	 TNT1 A 0 A_Jump(60,"Spawn","LookDown")
	 Loop
  Caw:
     TNT1 A 0 A_JumpIfTargetInsideMeleeRange("Pain")
	 TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK ,0,310,800,0,"Pain")
	 TNT1 A 0 A_JumpIfInventory("CrowGroupFlee",1,"Pain")
	 TNT1 A 0 A_Jump(60,4) //To play one caw on occasion.
	 TNT1 A 0 A_PlaySound("CRWCAW1",6,0.3,0)
     CRW1 B 12
	 CRW1 N 6
	 Goto Spawn
	 TNT1 A 0 A_PlaySound("CRWCAW3",6,0.3,0)
	 CRW1 B 12
	 Goto Spawn
  ForwardLook:
     TNT1 A 0 A_JumpIfTargetInsideMeleeRange("Pain")
	 TNT1 A 0 A_JumpIfInventory("CrowGroupFlee",1,"Pain")
	 TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK ,0,310,800,0,"Pain")
     CRW1 H 16
	 TNT1 A 0 A_Jump(120,"Spawn")
	 Loop	 
  WanderFly:
     TNT1 A 0
	 TNT1 A 0 A_PlaySound("CRWFLP",5,0.3,1)
	 TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
	 TNT1 A 0 A_ChangeFlag("FLOORHUGGER",0)
	 TNT1 A 0 ThrustThing(random(0,360), random(4,8), 0, 0)
	 CRW1 JL 2
	 TNT1 A 0 ThrustThingZ(0,random(4,8),0,1)
	 TNT1 A 0 A_Jump(20,"Flight")
	 Goto WanderFly+4
  Flight:
     TNT1 A 0
	 TNT1 A 0 A_PlaySound("CRWFLP",5,0.3,1)
	 TNT1 A 0 ThrustThing(random(0,360), random(3,6), 0, 0)
	 CRW1 JL 2
	 TNT1 A 0 A_Jump(35,"FlyDown")
	 Goto Flight+2
  FlyDown:	 
	 TNT1 A 0 A_Stop
	 CRW1 JL 2
	 TNT1 A 0 A_PlaySound("CRWFLP",5,0.3,1)
	 TNT1 A 0 ThrustThing(random(0,360), random(3,6), 0, 0)
	 TNT1 A 0 ThrustThingZ(0,-2,0,1)
	 TNT1 A 0 A_CheckFloor("Spawn")
	 Goto FlyDown+1
  Pain:
     TNT1 A 0
	 TNT1 A 0 A_RadiusGive("CrowGroupFlee",160,RGF_OBJECTS,1)
	 TNT1 A 0 A_Jump(25,2)
	 TNT1 A 0 A_PlaySound("CRWCAW2",6,0.4,0)
	 TNT1 A 0 A_PlaySound("CRWFLP",5,0.3,1)
	 TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
	 TNT1 A 0 A_ChangeFlag("FLOORHUGGER",0)
	 TNT1 A 0 ThrustThing(random(0,360), random(6,12), 0, 0)
	 CRW1 JL 2
	 TNT1 A 0 ThrustThingZ(0,random(12,20),0,1)
	 TNT1 A 0 A_FadeOut(0.1)
	 Goto Pain+6
  Death:
	 RATD A 1
	 RATD A 1 A_NoBlocking
	 RATD AABBBBCCCC 1
	 Stop
  }
}

Actor CrowGroupFlee : Inventory { Inventory.MaxAmount 1 }