actor MasterMindClass : PlayerPawn
{
  Speed 0.30
  Health 3000
  Radius 100
  Height 100
  Mass 1000
  PainChance 40
  player.maxhealth 3000
  player.soundclass "MasterMindClass"
  Player.DisplayName "SpiderMasterMind"
  Player.MorphWeapon "MasterMindGun"
  Player.WeaponSlot 1, MasterMindGun
  
  DamageFactor "MarineDamage", 1
  DamageFactor "MarineRLDamage", 1
  DamageFactor "MarineRail", 0.8
  DamageFactor "CybRLDamage", 0
  DamageFactor "ImpBallDamage", 0
  DamageFactor "CacoDamage", 0
  DamageFactor "SkelDamage", 0
  DamageFactor "FatsoDamage", 0
  DamageFactor "KnightDamage", 0
  DamageFactor "ArachDamage", 0
  DamageFactor "ZombiesDamage", 0
  DamageFactor "viledamage", 0

  DamageFactor "Control", 0
  DamageFactor "Slime", 0
  
  Player.JumpZ 0
  Player.ViewHeight 70
  
  -PICKUP
  +NOSKIN
  +NOPAIN
  -FRIENDLY
  +NOTARGET

  states
  {
  Spawn:
    SPID AB 10 
    loop
  See:
    SPID A 3 A_PlaySoundEx ("spider/walk","body")
    SPID ABB 3 
    SPID C 3 A_PlaySoundEx ("spider/walk","body")
    SPID CDD 3 
    SPID E 3 A_PlaySoundEx ("spider/walk","body")
    SPID EFF 3 
    loop
  Missile:
    SPID G 2 Bright
    SPID H 2
    SPID G 2 Bright
    SPID H 3
    goto spawn
  Death:
    TNT1 A 0 A_GiveToTarget ("MarineExp",25)
    SPID J 20 A_Scream 
    SPID K 10 A_NoBlocking
    SPID LMNOPQR 10
    TNT1 A 0 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
  DeathWait:
    SPID S 4 A_CheckSight("Removecorpse")
    loop
  Removecorpse:
    TNT1 A 0 Thing_Remove (0)
    stop
  }
}

ACTOR MasterMindGun : Weapon
{
  OBITUARY "%o was perforated by %k."
  ATTACKSOUND "weapons/shotgf"
  weapon.kickback 60
  Weapon.AmmoUse 0
  +WEAPON.NOALERT
  +WEAPON.DONTBOB
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.CHEATNOTWEAPON
  +INVENTORY.UNDROPPABLE

  states
  {
  Spawn:
    TNT1 A 0 Thing_Remove (0)
    Stop
  Ready:
    CHGG A 4 A_WeaponReady
    CHGG A 0 A_JumpIfInventory ("Mskull",0,5)
    CHGG A 4 A_WeaponReady
    CHGG A 0 A_JumpIfInventory ("Mskull",4,3)
    CHGG A 4 A_WeaponReady
    CHGG A 0 A_JumpIfInventory ("Mskull",2,1)
    Loop
    CHGG A 0 HealThing(2)
    goto ready 
  DeSelect: 
    CHGG A 1 A_Lower
    Loop
  Select:
    CHGG A 1 A_Raise
    goto ready
  Fire:
    TNT1 A 0 SetPlayerProperty (0, 1, 0)
    CHGG A 0 A_Gunflash
    CHGG A 2 A_FireBullets (7.7,3.7,3,random(2,3)*3, "FBulletPuff") 
    CHGG B 2
    CHGG C 2 A_FireBullets (7.7,3.7,3,random(2,3)*3, "FBulletPuff") 
    CHGG D 2
    TNT1 A 0 SetPlayerProperty (0, 0, 0)
    goto Ready
  AltFire:
    CHGG A 5 ACS_ExecuteAlways (419,0,14)
    goto ready
  Flash:
    CHGF A 2 bright A_Light1
    TNT1 A 2 bright A_Light2
    CHGF B 2 bright A_Light1
    TNT1 A 2 bright A_Light2
    TNT1 A 2 bright A_Light1
    TNT1 A 0 A_Light0
    Stop
  }
}