Actor QueenSpit: SpitterSpit
{
 poisondamage 8
 damage 6
 scale 1.4
 states
 {
   death:
    TNT1 A 0 A_Explode(3, 10)
	BAL7 EFGHIJ 3 bright
	stop
  }
}

Actor QueenCloud : AcidCloud
{
 damage 4
}

ACTOR XenoQueen replaces Cyberdemon
{
 bloodcolor orange
 species Xenomorph
 bloodtype QueenBlood
 health 4500
 meleerange 120
 radius 40
 height 110
 mass 1000
 painchance 10
 speed 28
 scale 0.6
 monster
 +BOSS
 +BOSSDEATH
 +NOFEAR
 +FLOAT
 +FLOORCLIP
 +DONTHARMSPECIES
 +DONTHURTSPECIES
 +FASTER
 +FASTMELEE
 +CANBLAST
 +QUICKTORETALIATE
 seesound "queen/sight"
 deathsound "queen/death"
 meleesound "queen/sight"
 damagefactor "PulseRifle", 0.6
 painchance "PulseRifle", 10
 obituary "%o stood in awe of the Queen."
 states
 {
  Spawn:
		TNT1 A 1
		// ExecuteAlways, 802, 0, <Threat Level>
		// 1 - Small blip
		// 2 - Medium blip
		// 3 - Large blip
		TNT1 A 0 ACS_ExecuteAlways(802, 0, 2)
		Goto Idle
	Idle:
	NGUE A 4
	TNT1 A 0 A_Look
	NGUE A 4
	TNT1 A 0 A_Look
	NGUE A 4
	TNT1 A 0 A_Look
	NGUE A 4
	TNT1 A 0 A_Look
	NGUE A 4
	TNT1 A 0 A_Jump(18, 4)
	TNT1 A 0 A_Jump(186, 7)
	NGUE A 6
	loop
	NGUE A 4 A_Look
	NGUE A 1 A_PlaySound("xeno/active")
	loop
	ALIN A 1 A_Look
  Stand:
	TNT1 A 0 A_ChangeFlag("lookallaround",1)
	TNT1 A 0 A_Look
	NGUE A 4 A_SetAngle(angle+random(-2, 2))
	TNT1 A 0 A_Look
	TNT1 A 0 A_Jump(248, 2)
	TNT1 A 0 A_PlaySound("xeno/active")
	NGUE A 4 A_SetAngle(angle+random(-2, 2))
	TNT1 A 0 A_ChangeFlag("lookallaround",0)
	goto Idle
  See:
	TNT1 A 0 A_ChangeFlag("lookallaround",0)
	TNT1 A 0 A_JumpIfTargetInLOS("ChaseHard")
	NGUE ABCDEFG 3 A_Chase
	TNT1 A 0 A_PlaySound("queen/step2", CHAN_AUTO)
	TNT1 A 0 Radius_Quake(18, 4, 0, 180, 0)
	TNT1 A 0 Radius_Quake(16, 4, 0, 200, 0)
	TNT1 A 0 Radius_Quake(14, 4, 0,  220, 0)
	TNT1 A 0 Radius_Quake(12, 4, 0,  240, 0)
	TNT1 A 0 Radius_Quake(10, 4, 0,  260, 0)
	TNT1 A 0 Radius_Quake(8, 4, 0,  280, 0)
	TNT1 A 0 A_JumpIfTargetInLOS("ChaseHard")
	NGUE HIJKL 3 A_Chase
	TNT1 A 0 A_PlaySound("queen/step1", CHAN_AUTO)
	TNT1 A 0 Radius_Quake(18, 4, 0, 180, 0)
	TNT1 A 0 Radius_Quake(16, 4, 0, 200, 0)
	TNT1 A 0 Radius_Quake(14, 4, 0,  220, 0)
	TNT1 A 0 Radius_Quake(12, 4, 0,  240, 0)
	TNT1 A 0 Radius_Quake(10, 4, 0,  260, 0)
	TNT1 A 0 Radius_Quake(8, 4, 0,  280, 0)
	TNT1 A 0 A_JumpIfTargetInLOS("ChaseHard")
	NGUE ABCDEFG 3 A_Chase
	TNT1 A 0 A_PlaySound("queen/step2", CHAN_AUTO)
	TNT1 A 0 Radius_Quake(18, 4, 0, 180, 0)
	TNT1 A 0 Radius_Quake(16, 4, 0, 200, 0)
	TNT1 A 0 Radius_Quake(14, 4, 0,  220, 0)
	TNT1 A 0 Radius_Quake(12, 4, 0,  240, 0)
	TNT1 A 0 Radius_Quake(10, 4, 0,  260, 0)
	TNT1 A 0 Radius_Quake(8, 4, 0,  280, 0)
	TNT1 A 0 A_JumpIfTargetInLOS("ChaseHard")
	NGUE HIJKL 3 A_Chase
	TNT1 A 0 A_PlaySound("queen/step1", CHAN_AUTO)
	TNT1 A 0 Radius_Quake(18, 4, 0, 180, 0)
	TNT1 A 0 Radius_Quake(16, 4, 0, 200, 0)
	TNT1 A 0 Radius_Quake(14, 4, 0,  220, 0)
	TNT1 A 0 Radius_Quake(12, 4, 0,  240, 0)
	TNT1 A 0 Radius_Quake(10, 4, 0,  260, 0)
	TNT1 A 0 Radius_Quake(8, 4, 0,  280, 0)
	TNT1 A 0 A_Jump(248, 2)
	TNT1 A 0 A_PlaySound("xeno/active")
	TNT1 A 0
	loop
  ChaseHard:
	ALIN AA 0 A_Chase
	NGUE ABCDEFG 2 A_Chase
	TNT1 A 0 A_PlaySound("queen/step2", CHAN_AUTO)
	TNT1 A 0 Radius_Quake(18, 4, 0, 180, 0)
	TNT1 A 0 Radius_Quake(16, 4, 0, 200, 0)
	TNT1 A 0 Radius_Quake(14, 4, 0,  220, 0)
	TNT1 A 0 Radius_Quake(12, 4, 0,  240, 0)
	TNT1 A 0 Radius_Quake(10, 4, 0,  260, 0)
	TNT1 A 0 Radius_Quake(8, 4, 0,  280, 0)
	ALIN AA 0 A_Chase
	NGUE HIJKL 2 A_Chase
	TNT1 A 0 A_PlaySound("queen/step1", CHAN_AUTO)
	TNT1 A 0 Radius_Quake(18, 4, 0, 180, 0)
	TNT1 A 0 Radius_Quake(16, 4, 0, 200, 0)
	TNT1 A 0 Radius_Quake(14, 4, 0,  220, 0)
	TNT1 A 0 Radius_Quake(12, 4, 0,  240, 0)
	TNT1 A 0 Radius_Quake(10, 4, 0,  260, 0)
	TNT1 A 0 Radius_Quake(8, 4, 0,  280, 0)
	ALIN AA 0 A_Chase
	NGUE ABCDEFG 2 A_Chase
	TNT1 A 0 A_PlaySound("queen/step2", CHAN_AUTO)
	TNT1 A 0 Radius_Quake(18, 4, 0, 180, 0)
	TNT1 A 0 Radius_Quake(16, 4, 0, 200, 0)
	TNT1 A 0 Radius_Quake(14, 4, 0,  220, 0)
	TNT1 A 0 Radius_Quake(12, 4, 0,  240, 0)
	TNT1 A 0 Radius_Quake(10, 4, 0,  260, 0)
	TNT1 A 0 Radius_Quake(8, 4, 0,  280, 0)
	ALIN AA 0 A_Chase
	NGUE HIJKL 2 A_Chase
	TNT1 A 0 A_PlaySound("queen/step1", CHAN_AUTO)
	TNT1 A 0 Radius_Quake(18, 4, 0, 180, 0)
	TNT1 A 0 Radius_Quake(16, 4, 0, 200, 0)
	TNT1 A 0 Radius_Quake(14, 4, 0,  220, 0)
	TNT1 A 0 Radius_Quake(12, 4, 0,  240, 0)
	TNT1 A 0 Radius_Quake(10, 4, 0,  260, 0)
	TNT1 A 0 Radius_Quake(8, 4, 0,  280, 0)
	TNT1 A 0 A_Jump(248, 2)
	TNT1 A 0 A_PlaySound("xeno/active")
	TNT1 A 0
	goto See
  melee: 
	TNT1 A 0 A_Jump(255, "TailMelee", "HeadBite", "Bite", "Claw")
  Claw:
    NQUE ABCDE 4 A_FaceTarget
	NQUE F 2 A_CustomMeleeAttack(random(8, 14)*6, "xeno/hack", "xeno/claw")
	NQUE G 2 A_CustomMeleeAttack(random(8, 14)*6, "xeno/hack", "xeno/claw")
	NQUE H 2 A_CustomMeleeAttack(random(8, 14)*6, "xeno/hack", "xeno/claw")
	NQUE IJK 4
	TNT1 A 0 A_Jump(255,"Missile3", "Missile")
	goto See
  tailmelee:
	NGUE MNOPQRUST 4 A_FaceTarget
	NGUE U 2 A_CustomMeleeAttack(random(8, 14)*6, "xeno/hack", "queen/hit")
	goto See
  HeadBite:
	TNT1 A 0 A_Jump(255, "Missile3", "RealBite")
  RealBite:
	NGUE VWXY 4 A_FaceTarget
	NGUE Z 2 A_CustomMeleeAttack(random(8, 14)*6, "xeno/hack", "queen/hit")
	goto See
  Bite:
	NQUE UV 4 A_FaceTarget
	NQUE W 2 A_CustomMeleeAttack(random(8, 14)*6, "xeno/hack", "queen/hit")
	NQUE XYZ 4
	goto See
  missile:
	TNT1 A 0 A_Jump(200, "jumpcheck")
	TNT1 A 0 A_Jump(180, "Missile2")
	NQUE ABCDE 4 A_FaceTarget
	NQUE F 2
	NQUE G 2 A_PainAttack
	NQUE H 2 A_PainAttack
	NQUE I 2
	NQUE JK 4 A_FaceTarget
	goto See
  missile3:
	NQUE ABCDE 4 A_FaceTarget
	ALIN A 0 A_PlaySound("xeno/acidbelch")
	NQUE FFF 2 A_CustomMissile("queencloud", 38, 0, 0)
	ALIN A 0 A_PlaySound("xeno/acidbelch")
	NQUE GGG 2 A_CustomMissile("queencloud", 38, 0, 45)
	ALIN A 0 A_PlaySound("xeno/acidbelch")
	NQUE HHH 2 A_CustomMissile("queencloud", 38, 0, 90)
	ALIN A 0 A_PlaySound("xeno/acidbelch")
	NQUE III 2 A_CustomMissile("queencloud", 38, 0, 45)
	ALIN A 0 A_PlaySound("xeno/acidbelch")
	NQUE JJJ 2 A_CustomMissile("queencloud", 38, 0, 0)
	NQUE K 4 A_FaceTarget
	goto See
  missile2:
	TNT1 A 0 A_Jump(150, "jumpcheck")
	NQUE ABCDE 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("xeno/spitacid")
	NQUE FFF 2 A_CustomMissile("queenspit", 38, 0, 20)
	TNT1 AA 0 A_CustomMissile("queenspit", 38, 0, 15)
	TNT1 A 0 A_CustomMissile("queenspit", 38, 0, 10)
	TNT1 A 0 A_PlaySound("xeno/spitacid")
	NQUE G 2 A_CustomMissile("queenspit", 38, 0, 0)
	TNT1 A 0 A_PlaySound("xeno/spitacid")
	TNT1 A 0 A_CustomMissile("queenspit", 38, 0, -10)
	TNT1 AA 0 A_CustomMissile("queenspit", 38, 0, -15)
	NQUE HHH 2 A_CustomMissile("queenspit", 38, 0, -20)
	NQUE IJK 4 A_FaceTarget
	goto See
  pain:
	NQUP ABCDE 2 A_Pain
	TNT1 A 0 A_AlertMonsters //alerting the horde
	goto See
  xdeath:
  death:
	TNT1 A 0 A_AlertMonsters //I'm being really mean here
	TNT1 A 0 A_Scream
	TNT1 A 0 Radius_Quake(12, 50, 0, 280, 0)
	NQUE KLMNOPQRST 3
	NQUE SRQPONM 3
	NQUP F 9 A_PlaySound("queen/pain", CHAN_AUTO)
	NQUP G 9 
	NQUP H 9
	TNT1 A 0 A_PlaySound("queen/step1", CHAN_AUTO)
	TNT1 A 0 Radius_Quake(18, 4, 0,  280, 0)
	NQUP I 1
	NQUP I 7 A_PlaySound("queen/pain", CHAN_AUTO)
	NQUP J 8
	NQUP K 8 A_NoBlocking
	TNT1 A 0 A_SpawnItemEx("QueenPuke",0, 6, 0)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	NQUP L 24
	TNT1 A 0 A_PlaySound("queen/pain", CHAN_AUTO)
	NQUP L 18
	TNT1 A 0 A_SpawnItemEx("QueenPuke2",0, 6, 0)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	NQUP L 24
	TNT1 A 0 A_PlaySound("queen/pain", CHAN_AUTO)
	NQUP L 18
	NQUP M 7
	NQUP N 6
	NQUP O 6 
	NQUP P 5
	NQUP Q 5
	NQUP R 4 A_PlaySound("queen/pain", CHAN_AUTO)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	TNT1 A 0 A_SpawnDebris("HeavyXenoBlood",0,frandom(-8,8),1)
	NQUP S 4 A_PlaySound("xeno/crack", CHAN_AUTO)
	NQUP T 2
	TNT1 A 0 A_PlaySound("queen/step1", CHAN_AUTO)
	TNT1 A 0 Radius_Quake(18, 4, 0,  280, 0)
	NQUP S 2
	NQUP T 1 
	NQUP T -1 A_BossDeath
	stop
  jumpcheck:
	TNT1 A 0 A_JumpIfTargetinLOS("JumpCheck2")
	goto see
  jumpcheck2:
	TNT1 A 0 A_JumpIfCloser(100, "melee")
	TNT1 A 0 A_CheckSight("see")
  pounce:
	NGUE V 2 A_FaceTarget
    NGUE A 0 A_PlaySound ("xeno/attack")
    NGUE A 0 ThrustThingZ (0, 14, 0, 0)
    NGUE A 0 ThrustThing (angle*256/360, 18, 0, 0)
	NGUE A 0 A_CustomMeleeAttack(random(1, 3)*3, "xeno/hack", "xeno/claw")
  JumpUp:
    NGUE WXYZ 1
  JumpDown:
	TNT1 A 0 A_JumpIfCloser(100, "tailmelee")
    NGUE Z 1 A_CheckFloor ("Land")
    loop
  Land:
    NGUE Z 2 A_Stop
    goto see
  }
}

Actor XenoEmpress : XenoQueen replaces SpiderMastermind
{
 bloodcolor orange
 species Xenomorph
 bloodtype QueenBlood
 health 6000
 scale 0.8
 meleerange 180
 radius 50
 height 140
 mass 1000
 painchance 5
 speed 45
 monster
 +BOSS
 +BOSSDEATH
 +FLOAT
 +FLOORCLIP
 +DONTHARMSPECIES
 +DONTHURTSPECIES
 +FASTER
 +FASTMELEE
 +CANBLAST
 +QUICKTORETALIATE
 +MISSILEMORE
 +MISSILEEVENMORE
 seesound "queen/sight"
 deathsound "queen/death"
 painsound "queen/pain"
 meleesound "queen/sight"
 damagefactor "PulseRifle", 0.5
  painchance "PulseRifle", 15
 obituary "%o stood in awe of the Xenomorph Empress."
}