actor GorillaCaptain : ZBaseActor 19125
{
  obituary "%o was destroyed by the Gorilla Captain."
  health 300
  radius 20
  height 90
  mass 1000
  speed 12
  seesound "lord/sight"
  painsound "lord/pain"
  deathsound "lord/death"
  activesound "lord/active"
  MONSTER
  +FLOORCLIP
  scale 0.9
  dropitem "RPGAmmo" 64 5
  damagefactor "Expander", 0.5
  damagefactor "AlienzShrinker", 0.0
  damagefactor "Shrinkerhit", 0.0
  damagefactor "Explosion", 0.65
  damagefactor "RocketExplosion", 0.65
  damagefactor "ShellExplosion", 0.8
  damagefactor "Fire", 0.5
  damagefactor "BulletFlame", 0.84
  painchance 64
  Painchance "Shrinker", 256
  painchance "BootStun", 256
  painchance "MicrowaveBlast", 256
  +BOSS
  minmissilechance 1
  Species "Gorillas"
  +DOHARMSPECIES
  +NOINFIGHTSPECIES
  +DONTHARMCLASS
  WoundHealth 10
  states
  {
  Spawn:
    GORC A 0
    "####" "#" 0 Thing_ChangeTID(0,1000)
    GORC AA 10 A_Look
    loop
  See:
    GORC A 1
    "####" "#" 0
    GORC AABB 4 A_ChaseD3D
    GORC CCDD 4 A_ChaseD3D
    loop
  Missile:
    "####" "#" 0 A_JumpIfCloser(400,"Missile2")
    GORC E 15 A_FaceTarget
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON, 3, 0, ATTN_NORM)
    "####" "#" 0 A_CustomMissile("BattleLordAttack",32,16,0,2,32)
    GORC F 15 BRIGHT A_CustomMissile("MuzzleFlashSmall",32,16,0)
    GORC E 15 A_FaceTarget
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON, 3, 0, ATTN_NORM)
    "####" "#" 0 A_CustomMissile("BattleLordAttack",32,16,0,2,32)
    GORC F 15 BRIGHT A_CustomMissile("MuzzleFlashSmall",32,16,0)
    GORC E 15 A_FaceTarget
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON, 3, 0, ATTN_NORM)
    "####" "#" 0 A_CustomMissile("BattleLordAttack",32,16,0,2,32)
    GORC F 15 BRIGHT A_CustomMissile("MuzzleFlashSmall",32,16,0)
    goto See
  Missile2:
    GORC E 15 A_FaceTarget
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON, 3, 0, ATTN_NORM)
    "####" "#" 0 A_CustomMissile("PigCopNade1",32,16,0,2,32)
    GORC F 15 BRIGHT A_CustomMissile("MuzzleFlashSmall",32,16,0)
    GORC E 15 A_FaceTarget
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON, 3, 0, ATTN_NORM)
    "####" "#" 0 A_CustomMissile("PigCopNade1",32,16,0,2,32)
    GORC F 15 BRIGHT A_CustomMissile("MuzzleFlashSmall",32,16,0)
    GORC E 15 A_FaceTarget
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON, 3, 0, ATTN_NORM)
    "####" "#" 0 A_CustomMissile("PigCopNade1",32,16,0,2,32)
    GORC F 15 BRIGHT A_CustomMissile("MuzzleFlashSmall",32,16,0)
    goto See
  Pain:
    "####" "#" 0 A_Jump(128,"Pain2")
    GORC G 3
    GORC G 3 A_PlayVoiceSoundPitch("Pain")
    goto See
  Pain2:
    GORC M 3
    GORC M 3 A_PlayVoiceSoundPitch("Pain")
    goto See
  Pain.MicrowaveBlast:
    GORC G 1
    "####" "#" 0 A_CheckThump("Pain")
    loop
  Death:
    GORC G 20 A_PlayVoiceSoundPitch("Death")
    GORC H 10
    GORC I 10 A_NoBlocking
    GORC JK 10
    GORC L 1 {A_BossDeath; A_SpawnItemEx("DeadGorillaCaptain", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL|SXF_SETMASTER);}
    TNT1 A -1
    stop
  Pain.Shrinker:
    "####" "#" 0 A_PlaySound("shrinker/shrink")
    "####" "#" 0 A_InvulnerablePlus(1)
    GORC G 5 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_CustomMissile("ShrinkEffect",8,0,0)
  Shrink:
    GORC G 2 {A_SetScale(ScaleX - 0.04, ScaleY - 0.04); A_SpawnItemEx("ShrunkBlur",0,0,0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE);}
    "####" "#" 0 A_JumpIf(ScaleX > 0.2 && ScaleY > 0.2, "Shrink")
    "####" "#" 0 A_Shrink
    "####" "#" 0 A_Remove(AAPTR_DEFAULT)
    stop
  Wound.Expander:
   "####" "#" 0 A_Die("Expander")
  Death.Expander:
    "####" "#" 0 A_ChangeFlag("DONTCORPSE",1)
    "####" "#" 0 A_PlaySound("expander/expand")
    "####" "#" 0 {A_UnsetShootable; A_UnsetSolid;}
  Expand:
    GORC G 1 A_SetScale(ScaleX + 0.01, ScaleY + 0.01)
    "####" "#" 0 A_JumpIf(ScaleX < 1.3 && ScaleY < 1.3, "Expand")
    GORC GGGGG 1
    "####" "#" 0 A_SetScale(0.9, 0.9)
    "####" "#" 0 A_PlayVoiceSoundPitch("Death","",4)
    "####" "#" 0 A_SpawnItemEx("ExpanderExplosion",0,0,32,0,0,0,0,1,0)
    "####" "#" 0 A_XScream
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_BossDeath
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB4 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 35 A_Gravity
    GIB4 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_FadeOut(0.1)
    stop
  Wound.Ice:
    "####" "#" 0 A_Freeze("See")
    "####" "#" 0 A_Remove(AAPTR_DEFAULT)
    TNT1 A 1
    stop
  Deathceiling:
   "####" "#" 0 A_Die
    TNT1 A 1
    stop
  Death.Headshot:
  Death.RocketHeadshot:
    "####" "#" 0 A_XScream
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    3ORC G 40 A_NoBlocking
    3ORC H 10
    3ORC I 10
    3ORC JK 10
    3ORC L 1 {A_BossDeath; A_SpawnItemEx("DeadGorillaCaptainBehead", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL);}
    stop
  Possessed:
    "####" "#" 0 A_ChangeFlag("NOPAIN", 1)
    GORC L 7 {A_XScream; A_AdjustTics(1.0,1.0);}
    GORC K 7 {A_XScream; A_AdjustTics(1.0,1.0);}
    GORC J 7 A_AdjustTics(1.0,1.0)
    GORC I 7 A_AdjustTics(1.0,1.0)
    GORC H 7 A_AdjustTics(1.0,1.0)
    GORC G 7 A_AdjustTics(0,1.0)
    "####" "#" 0 A_ChangeFlag("NOPAIN", 0)
    goto See
  }
}

actor DeadGorillaCaptain : DeadDukeNukemLargeP 19126
{
  Radius 20
  Height 35
  scale 0.9
  States
  {
  Spawn:
    GORC L -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadGorillaCaptain", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    GORC L 5 A_GenericFreezeDeath
    GORC L 1 A_FreezeDeathChunks
    wait
  }
}

actor DeadGorillaCaptainBehead : DeadDukeNukemLarge
{
  Radius 20
  Height 35
  scale 0.9
  States
  {
  Spawn:
    3ORC L -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadGorillaCaptainBehead", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    3ORC L 5 A_GenericFreezeDeath
    3ORC L 1 A_FreezeDeathChunks
    wait
  }
}