// Mini-Raven
actor Utility_MiniRavenRed {
	MONSTER
	-SOLID
	+FLOORCLIP
	+QUICKTORETALIATE
	+NEVERRESPAWN
	+LOOKALLAROUND
	+NOICEDEATH
	Obituary "$OB_MINIRAVEN_RED" // "%o was pecked by a \cgRed \c-Mini-Raven."
	Health 750
	Radius 32
	Height 48
	Mass 200
	Speed 4
	PainChance 0

	// DamageFactor that are equal 1.0 can be safely removed.
	DamageFactor "Flash",			0.0
	DamageFactor "Fist",			0.75
	DamageFactor "Chemical",		0.5
	DamageFactor "ChemicalSpecial",	0.5
	DamageFactor "MassDriver",		2.0
	DamageFactor "Ice",				0.0
	DamageFactor "Disarm",			0.0
	DamageFactor "Mechstomp",		0.0

	BloodType "HHMetalHit"
	BloodColor "White"
	Scale 0.2
	MaxTargetRange 10000
	MinMissileChance 32
	Translation "112:127=228:246"
	States {
	Spawn:
		RAVN II 0 A_CheckSight("Death.Deconstruction")
		RAVN I 0 ACS_ExecuteWithResult(1026)
		RAVN I 0 Thing_SetSpecial (0, 84, 345, 0, TEAM_RED)
	Idle:
		RAVN I 2 A_LookEx(0,32,7072,512,180,"SeeFull") 
		Loop
	Stand:
		RAVN I 0 A_ChangeFlag("FRIENDLY",0)
		RAVN I 0 A_LookEx(0,32,7072,512,180,"SeeFull") 
		RAVN I 0 A_JumpIfCloser(128,"SeeFull")
		RAVN I 5 A_Jump(16,"See")
		loop
	//More like Wandering
	See:
		RAVN A 0 A_ChangeFlag("FRIENDLY",0)
		RAVN A 0 A_LookEx(0,32,7072,512,180,"SeeFull") 
		RAVN A 0 A_JumpIfCloser(128,"SeeFull")
		RAVN A 0 A_Jump(64,"Stand")
		RAVN AAABBBCCC 2 A_Wander
		RAVN C 0 A_LookEx(0,32,7072,512,180,"SeeFull") 
		RAVN D 0 A_PlaySoundEx("mech/idle","SoundSlot5",1,-1)
		RAVN DDD 2 A_Wander
		RAVN D 0 A_LookEx(0,32,7072,512,180,"SeeFull") 
		RAVN EEEFFFGGG 2 A_Wander
		RAVN H 0 A_LookEx(0,32,7072,512,180,"SeeFull") 
		RAVN HHH 2 A_Wander
		RAVN H 0 A_LookEx(0,32,7072,512,180,"SeeFull") 
		RAVN A 0 A_JumpIfInTargetInventory ("IsBlue", 1, "See")
		goto SeeWander
	SeeWander:
		RAVN A 0 A_ChangeFlag("FRIENDLY",0)
		RAVN A 0 A_Jump(64,"Stand")
		RAVN AAABBBCCC 2 A_Chase("","")
		RAVN D 0 A_PlaySoundEx("mech/idle","SoundSlot5",1,-1)
		RAVN DDD 2 A_Chase("","")
		RAVN EEEFFFGGG 2 A_Chase("","")
		RAVN HHH 2 A_Chase("","")
		RAVN H 0 A_ClearTarget
		goto See
	SeeFull:
		RAVN A 0 A_JumpIfInTargetInventory ("IsBlue", 1, 1)
		goto SeeWander
		RAVN A 0 A_ChangeFlag("FRIENDLY",0)
		RAVN AAABBBCCC 1 A_Chase("","")
		RAVN D 0 A_PlaySoundEx("mech/idle","SoundSlot5",1,-1)
		RAVN DDD 1 A_Chase("","")
		RAVN EEEFFFGGG 1 A_Chase("","")
		RAVN HHH 1 A_Chase("","Missile")
		RAVN H 0 A_FaceTarget
		RAVN H 0 A_JumpIfTargetInLOS("Missile",180)
		goto See
	Missile:
		RAVN A 0 A_JumpIfInTargetInventory ("IsBlue", 1, 1)
		goto SeeWander
		RAVN A 0 A_Jump(96,"Missile2")
		RAVN A 0 A_PlayWeaponSound("lrm/fire")
		RAVN A 0 A_CustomMissile("MiniRaven-LRM",48,random(-12,-16),random(-4,4),0)
		RAVN A 1 A_Chase("","")
		RAVN A 0 
		RAVN A 1 A_Chase("","")
		RAVN A 0 
		RAVN A 1 A_Chase("","")
		RAVN H 0 A_FaceTarget
		RAVN B 0 A_CustomMissile("MiniRaven-LRM",48,random(-12,-16),random(-4,4),0)
		RAVN B 1 A_Chase("","")
		RAVN H 0 A_FaceTarget
		RAVN B 0 
		RAVN BB 1 A_Wander
		RAVN CCC 1 A_Wander
		RAVN D 0 A_PlaySoundEx("mech/idle","SoundSlot5",1,-1)
		RAVN DDD 1 A_Wander
		RAVN EEEFFFGGG 1 A_Wander
		RAVN HHH 1 A_Wander
		goto Missile1Reload
	Missile1Reload:
		RAVN AAABBBCCC 1 A_Wander
		RAVN D 0 A_PlaySoundEx("mech/idle","SoundSlot5",1,-1)
		RAVN DDD 1 A_Wander
		RAVN EEEFFFGGG 1 A_Wander
		RAVN HHH 1 A_Wander
		RAVN H 0 A_GiveInventory("MechReloading",1)
		RAVN H 0 A_JumpIfInventory("MechReloading",3,1)
		Loop
		RAVN H 0 A_PlayWeaponSound("lrm/reload")
		RAVN H 0 A_TakeInventory("MechReloading",6)
		RAVN H 0 A_FaceTarget
		goto See
	Missile2:
		RAVN A 0 A_JumpIfInTargetInventory ("IsBlue", 1, 1)
		goto Missile2Reload
		RAVN A 0 A_CustomMissile("MiniRavenAC2",48,random(-12,-16),random(-4,4),0)
		RAVN H 0 A_FaceTarget
		RAVN AAA 1 A_Chase("","")
		RAVN BBB 1 A_Chase("","")
		RAVN CCC 1 A_Chase("","")
		RAVN D 0 A_PlaySoundEx("mech/idle","SoundSlot5",1,-1)
		RAVN DDD 1 A_Chase("","")
		RAVN C 0 A_CustomMissile("MiniRavenAC2",48,random(-12,-16),random(-4,4),0)
		RAVN EEE 1 A_Chase("","")
		RAVN FFFGGG 1 A_Chase("","")
		RAVN H 0 A_SpawnItemEx("MechStepSmokePuff", 0, 30, 4, 0, 0, 0, 0, 128, 0)
		RAVN HHH 1 A_Chase("","")
		RAVN H 0 A_GiveInventory("MechReloading",1)
		RAVN H 0 A_JumpIfInventory("MechReloading",3,1)
		loop
		RAVN H 0 A_TakeInventory("MechReloading",3)
		goto Missile2Reload
	Missile2Reload:
		RAVN AAABBBCCC 1 A_Wander
		RAVN D 0 A_PlaySoundEx("mech/idle","SoundSlot5",1,-1)
		RAVN DDD 1 A_Wander
		RAVN EEEFFFGGG 1 A_Wander
		RAVN HHH 1 A_Wander
		RAVN H 0 A_GiveInventory("MechReloading",1)
		RAVN H 0 A_JumpIfInventory("MechReloading",1,1)
		Loop
		RAVN H 0 A_TakeInventory("MechReloading",3)
		RAVN H 0 A_FaceTarget
		goto See
	Death:
		RAVN JKLMNOPQRS 4 A_NoBlocking
		RAVN T 0 A_StopSoundEx("SoundSlot5")
		RAVN T 0 A_StopSoundEx("Weapon")
		RAVN T 0 A_SpawnItemEx("ExplosionMain", 0, 0, 32, 0, 0, 0, 0, 128, 0)
		RAVN TTT 0 A_SpawnItemEx ("MechDeathJunk", 0, 0, random(16,32), random(-5,5), random(-5,5), random(4,7))
		RAVN T 0 A_SpawnItemEx("FlameWallDecay", 0, 0, 0, 0, 0, 0, 0, 0, 0)
		RAVN T 0 A_PlaySound("weapons/rocklx")
		TNT1 T 1
		Stop
	Death.StealthRemover:
	Death.Deconstruction:
		// [Dusk] we be breaking down birdies
		RAVN A 0 A_NoBlocking
		RAVN A 2 A_PlaySound("weapons/timedeath")
		RAVN AAAAAAAAAA 2 A_Fadeout(0.1) 
		stop
	}
}

actor Utility_MiniRavenBlue {
	MONSTER
	-SOLID
	+FLOORCLIP
	+QUICKTORETALIATE
	+NEVERRESPAWN
	+LOOKALLAROUND
	+NOICEDEATH
	obituary "$OB_MINIRAVEN_BLUE" // "%o was pecked by a \chBlue \c-Mini-Raven."
	Health 750
	Radius 32
	Height 48
	Mass 200
	Speed 4
	PainChance 0

	// DamageFactor that are equal 1.0 can be safely removed.
	DamageFactor "Flash",			0.0
	DamageFactor "Fist",			0.75
	DamageFactor "Chemical",		0.5
	DamageFactor "ChemicalSpecial",	0.5
	DamageFactor "MassDriver",		2.0
	DamageFactor "Ice",				0.0
	DamageFactor "Disarm",			0.0
	DamageFactor "Mechstomp",		0.0

	BloodType "HHMetalHit"
	BloodColor "White"
	Scale 0.2
	MaxTargetRange 10000
	MinMissileChance 32
	Translation "112:127=194:207"
	states
	{
	Spawn:
		RAVN II 0 A_CheckSight("Death.Deconstruction")
		RAVN I 0 ACS_ExecuteWithResult(1026)
		RAVN I 0 Thing_SetSpecial (0, 84, 345, 0, TEAM_BLUE)
	Idle:
		RAVN I 2 A_LookEx(0,32,7072,512,180,"SeeFull") 
		Loop
	Stand:
		RAVN I 0 A_ChangeFlag("FRIENDLY",0)
		RAVN I 0 A_LookEx(0,32,7072,512,180,"SeeFull") 
		RAVN I 0 A_JumpIfCloser(128,"SeeFull")
		RAVN I 5 A_Jump(16,"See")
		loop
	//More like Wandering
	See:
		RAVN H 0 A_ChangeFlag("FRIENDLY",0)
		RAVN H 0 A_LookEx(0,32,7072,512,180,"SeeFull") 
		RAVN H 0 A_JumpIfCloser(128,"SeeFull")
		RAVN H 0 A_Jump(64,"Stand")
		RAVN AAABBBCCC 2 A_Wander
		RAVN C 0 A_LookEx(0,32,7072,512,180,"SeeFull") 
		RAVN D 0 A_PlaySoundEx("mech/idle","SoundSlot5",1,-1)
		RAVN DDD 2 A_Wander
		RAVN E 0 A_LookEx(0,32,7072,512,180,"SeeFull") 
		RAVN EEEFFFGGG 2 A_Wander
		RAVN H 0 A_LookEx(0,32,7072,512,180,"SeeFull") 
		RAVN HHH 2 A_Wander
		RAVN H 0 A_LookEx(0,32,7072,512,180,"SeeFull") 
		RAVN H 0 A_JumpIfInTargetInventory ("IsRed", 1, "See")
		goto SeeWander
	SeeWander:
		RAVN H 0 A_ChangeFlag("FRIENDLY",0)
		RAVN H 0 A_Jump(64,"Stand")
		RAVN AAABBBCCC 2 A_Chase("","")
		RAVN D 0 A_PlaySoundEx("mech/idle","SoundSlot5",1,-1)
		RAVN DDD 2 A_Chase("","")
		RAVN EEEFFFGGG 2 A_Chase("","")
		RAVN HHH 2 A_Chase("","")
		RAVN H 0 A_ClearTarget
		goto See
	SeeFull:
		RAVN A 0 A_JumpIfInTargetInventory ("IsRed", 1, 1)
		goto SeeWander
		RAVN A 0 A_ChangeFlag("FRIENDLY",0)
		RAVN AAABBBCCC 1 A_Chase("","")
		RAVN D 0 A_PlaySoundEx("mech/idle","SoundSlot5",1,-1)
		RAVN DDD 1 A_Chase("","")
		RAVN EEEFFFGGG 1 A_Chase("","")
		RAVN HHH 1 A_Chase("","Missile")
		RAVN H 0 A_FaceTarget
		RAVN H 0 A_JumpIfTargetInLOS("Missile",180)
		goto See
	Missile:
		CIGN A 0 A_JumpIfInTargetInventory ("IsRed", 1, 1)
		goto SeeWander
		RAVN H 0 A_Jump(96,"Missile2")
		RAVN A 0 A_PlayWeaponSound("lrm/fire")
		RAVN A 0 A_CustomMissile("MiniRaven-LRM",48,random(-12,-16),random(-4,4),0)
		RAVN A 1 A_Chase("","")
		RAVN A 0 
		RAVN A 1 A_Chase("","")
		RAVN A 0 
		RAVN A 1 A_Chase("","")
		RAVN H 0 A_FaceTarget
		RAVN B 0 A_CustomMissile("MiniRaven-LRM",48,random(-12,-16),random(-4,4),0)
		RAVN B 1 A_Chase("","")
		RAVN H 0 A_FaceTarget
		RAVN B 0 
		RAVN BB 1 A_Wander
		RAVN CCC 1 A_Wander
		RAVN D 0 A_PlaySoundEx("mech/idle","SoundSlot5",1,-1)
		RAVN DDD 1 A_Wander
		RAVN EEEFFFGGG 1 A_Wander
		RAVN HHH 1 A_Wander
		goto Missile1Reload
	Missile1Reload:
		RAVN AAABBBCCC 1 A_Wander
		RAVN D 0 A_PlaySoundEx("mech/idle","SoundSlot5",1,-1)
		RAVN DDD 1 A_Wander
		RAVN EEEFFFGGG 1 A_Wander
		RAVN HHH 1 A_Wander
		RAVN H 0 A_GiveInventory("MechReloading",1)
		RAVN H 0 A_JumpIfInventory("MechReloading",3,1)
		Loop
		RAVN H 0 A_PlayWeaponSound("lrm/reload")
		RAVN H 0 A_TakeInventory("MechReloading",6)
		RAVN H 0 A_FaceTarget
		goto See
	Missile2:
		CIGN A 0 A_JumpIfInTargetInventory ("IsRed", 1, 1)
		goto Missile2Reload
		RAVN A 0 A_CustomMissile("MiniRavenAC2",48,random(-12,-16),random(-4,4),0)
		RAVN H 0 A_FaceTarget
		RAVN AAA 1 A_Chase("","")
		RAVN BBB 1 A_Chase("","")
		RAVN CCC 1 A_Chase("","")
		RAVN D 0 A_PlaySoundEx("mech/idle","SoundSlot5",1,-1)
		RAVN DDD 1 A_Chase("","")
		RAVN C 0 A_CustomMissile("MiniRavenAC2",48,random(-12,-16),random(-4,4),0)
		RAVN EEE 1 A_Chase("","")
		RAVN FFFGGG 1 A_Chase("","")
		RAVN H 0 A_SpawnItemEx("MechStepSmokePuff", 0, 30, 4, 0, 0, 0, 0, 128, 0)
		RAVN HHH 1 A_Chase("","")
		RAVN H 0 A_GiveInventory("MechReloading",1)
		RAVN H 0 A_JumpIfInventory("MechReloading",3,1)
		loop
		RAVN H 0 A_TakeInventory("MechReloading",3)
		goto Missile2Reload
	Missile2Reload:
		RAVN AAABBBCCC 1 A_Wander
		RAVN D 0 A_PlaySoundEx("mech/idle","SoundSlot5",1,-1)
		RAVN DDD 1 A_Wander
		RAVN EEEFFFGGG 1 A_Wander
		RAVN HHH 1 A_Wander
		RAVN H 0 A_GiveInventory("MechReloading",1)
		RAVN H 0 A_JumpIfInventory("MechReloading",1,1)
		Loop
		RAVN H 0 A_TakeInventory("MechReloading",3)
		RAVN H 0 A_FaceTarget
		goto See
	Death:
		RAVN A 0
		RAVN JKLMNOPQRS 4 A_NoBlocking
		RAVN T 0 A_StopSoundEx("SoundSlot5")
		RAVN T 0 A_StopSoundEx("Weapon")
		RAVN T 0 A_SpawnItemEx("ExplosionMain", 0, 0, 32, 0, 0, 0, 0, 128, 0)
		RAVN TTT 0 A_SpawnItemEx ("MechDeathJunk", 0, 0, random(16,32), random(-5,5), random(-5,5), random(4,7))
		RAVN T 0 A_SpawnItemEx("FlameWallDecay", 0, 0, 0, 0, 0, 0, 0, 0, 0)
		RAVN T 0 A_PlaySound("weapons/rocklx")
		TNT1 T 1 // ACS_ExecuteAlways(345,0,6,1,0)
		Stop
	Death.Knife:
	Death.Deconstruction:
		RAVN A 0 A_NoBlocking
		RAVN A 2 A_PlaySound("weapons/timedeath")
		RAVN AAAAAAAAAA 2 A_Fadeout(0.1) 
		stop
	}
}

actor MiniRaven-LRM {
	obituary "%o was pecked by a \cgRed \c-Mini-Raven."
	Radius 11
	Height 8
	Speed 20
	Damage (12)
	Projectile
	-RANDOMIZE
	+ROCKETTRAIL
	+SEEKERMISSILE
	DeathSound "weapons/rocklx"
	DamageType "Rifle"
	Scale 0.4
	RenderStyle Normal
	Alpha 1.0
	States
	{
	Spawn:
		MISL A 6 bright A_SeekerMissile(24,30)
		MISL A 0 bright A_PlaySoundEx("ambient/rocket","Body",1,-1)
		loop
	Death:
		TNT1 B 0 A_NoGravity
		TNT1 A 0 A_SetTranslucent(0.9,1)
		TNT1 B 0 bright A_StopSoundEx("Body")
		TNT1 A 0 A_SpawnItemEx("MiniRaven-LRMExplosion", -1, 0, 0, 0, 0, 0, 0, 0, 0)
		EXP1 ABCDEFGHIJ 3 bright 
		stop
	}
}

actor MiniRaven-LRMExplosion
{
	obituary "%o was pecked by a \cgRed \c-Mini-Raven."
	RenderStyle None
	-RANDOMIZE
	+NOCLIP
	PROJECTILE
	Speed 1
	Damage 0
	Scale 0.7
	DamageType "Rifle"
	states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 5 bright A_Explode(10,128,0)
		stop
	}	
}

actor MiniRavenAC2 : RavenAC2 {
	obituary "%o was pecked by a \cgRed \c-Mini-Raven."
	speed 40
	damage (25)
	scale 0.2
	states {
	Death:
		TNT1 A 0 A_SpawnItemEx ("ExplosionSmall")
		stop
	}
}
