
ACTOR RLArachnotronBase : RLMonster
{
  Health 500
  GibHealth -70
  Radius 58
  Height 56
  Speed 12
  Mass 600
  
  PainChance 128
  
  DamageFactor "Scrapper", 3.0 // LegenDoom Damagetype
  
  SeeSound "baby/sight"
  PainSound "arachnotron/pain"
  DeathSound "baby/death"
  ActiveSound "baby/active"
  
  +AVOIDMELEE
  +FLOORCLIP
  +BOSSDEATH
  
  Obituary "%o was blasted to ashes by an Arachnotron."
  Species "RLSpidermind"
  Tag "Arachnotron"
  
	//Guncaster extras
   
	//Resists & Weaknesses
	DamageFactor CloseCombat, 1.2
	DamageFactor Shoelaces, 1.2
	DamageFactor SuperCloseCombat, 1.2
	DamageFactor SuperShoelaces, 1.2
	DamageFactor SuperMidasCloseCombat, 1.2
	DamageFactor SuperMidasShoelaces, 1.2
	DamageFactor Lightning, 1.25
	DamageFactor LightningBlue, 1.25
	DamageFactor Pound, 3.0
	DamageFactor BlueTiberium, 0.7
	DamageFactor Tiberium, 0.7
 
	//Chance Effects
	PainChance Crow, 2
	PainChance Crow2, 2
	PainChance Lightning, 128
	PainChance LightningBlue, 16
	PainChance Manuel, 160
	PainChance Fire, 96
  States
  {	
  MissileFriendlyCheck:
    "####" "#" 0 A_CheckFlag ("FRIENDLY", "MissileSpecialAttackCheck")
    "####" "#" 0 A_CheckFlag ("FRIENDLY", "MissileSpecialAttackCheck", AAPTR_TARGET)
    "####" "#" 0 A_JumpIf(CheckClass("Arachnotron", AAPTR_TARGET, TRUE), "FriendlyTarget")
    "####" "#" 0 A_JumpIf(CheckClass("SpiderMastermind", AAPTR_TARGET, TRUE), "FriendlyTarget")
    "####" "#" 0 A_JumpIf(CheckClass("Archvile", AAPTR_TARGET, TRUE), "FriendlyTarget")
    "####" "#" 0 A_JumpIf(CheckClass("RLArachnotronBase", AAPTR_TARGET, TRUE), "FriendlyTarget")
    "####" "#" 0 A_JumpIf(CheckClass("RLSpiderMastermindBase", AAPTR_TARGET, TRUE), "FriendlyTarget")
    "####" "#" 0 A_JumpIf(CheckClass("RLArchvileBase", AAPTR_TARGET, TRUE), "FriendlyTarget")
    "####" "#" 0 A_JumpIf(1, "MissileSpecialAttackCheck")
	Goto MissileSpecialAttackCheck
	
  TeleportEscape: // Summoned DRPG monsters will teleport out if you kill them with the console
    TNT1 A 0 A_BossDeath
    TNT1 A 0 A_SpawnItemEx ("TeleportFog", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
    Stop
//==============================================================================
//					--	GunCaster Compatibility Stuff  --
//==============================================================================
// Override death states to drop the larger mana items in Guncaster
  Death:
    "####" "#" 0 A_StopSound(5)
    "####" "#" 0 A_StopSound(6)
    "####" "#" 0 A_StopSound(7)
    "####" "#" 0 A_StopSound(CHAN_ITEM)
    "####" "#" 0 A_StopSound(CHAN_WEAPON)
    "####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
	"####" "#" 0 A_DropItem("MajorManaPod",-1,224)
    "####" "#" 0 A_JumpIf(1, "DeathMain")
    Goto DeathMain
  XDeath:
    "####" "#" 0 A_StopSound(5)
    "####" "#" 0 A_StopSound(6)
    "####" "#" 0 A_StopSound(7)
    "####" "#" 0 A_StopSound(CHAN_ITEM)
    "####" "#" 0 A_StopSound(CHAN_WEAPON)
    "####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
	"####" "#" 0 A_DropItem("MajorManaPod",-1,224)
    "####" "#" 0 A_JumpIf(1, "XDeathMain")
    Goto XDeathMain
	
	GenericFreezeMana:
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPod",-1,54)
		"####" "#" 0 A_BossDeath
		"####" "#" 0 A_JumpIf(1,"GenericFreezeDeathMain")
		Goto GenericFreezeDeathMain
		
//------------------------------------------------------------------------------

	Death.MidasCloseCombat:
	Death.MidasShoelaces:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 A_JumpIfInTargetInventory("Mana",0,2)
		TNT1 A 0 A_DropItem("MajorManaPod",-1,54)
		TNT1 A 0 A_Pain
		TNT1 A 0 A_PlaySound("Midas/Touched")
		TNT1 A 0 A_BossDeath
		TNT1 A 0 A_JumpIf(1, "MidasFrame1")
		Goto MidasFrame1
		
	//Scourgebreath
	Death.Breath:
		"####" "#" 0 A_StopSound(5)
		"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
		"####" "#" 0 A_DropItem("MajorManaPod",-1,54)
		"####" "#" 0 A_BossDeath
		"####" "#" 0 A_JumpIf(1,"DeathBreathContinue")
		Goto DeathBreathContinue
		
			//Corpseblast
	CorpseBlastA:
		"####" "#" 0 A_SpawnItemEx("ArachnotronBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
		Stop
	CorpseBlastB:
		"####" "#" 0 A_SpawnItemEx("ArachnotronBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
		"####" "#" 0 A_TakeInventory("CorpseTrigger2",1)
		"####" "#" 0 A_JumpIf(1,"DeathEnd")
		Goto DeathEnd
	CorpseBlastC:
		"####" "#" 0 A_SpawnItemEx("ArachnotronBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
		"####" "#" 0 A_TakeInventory("CorpseTrigger2",1)
		"####" "#" 0 A_JumpIf(1,"XDeathEnd")
		Goto XDeathEnd
  }
}
