ACTOR SpectreClass : PlayerPawn
{
  health 350
  gibhealth 99999 //added - actor can not be gibbed
  painchance 180
  speed 1.5 //1
  radius 30
  height 56
  mass 400
  Player.DisplayName "Spectre"
  Player.MaxHealth 150
  Player.SoundClass "Mdemon"
  Player.JumpZ 15 //10
  Player.ViewHeight 30
  Player.MorphWeapon "SpectreMouth"
  Player.WeaponSlot 1, SpectreMouth 
  BloodColor "Green"
  DamageFactor "Suicide", 0 // puppetmaster can not suicide a monster
  DamageFactor "MarineDamage", 0.6
  DamageFactor "MarineRLDamage", 0.6
  DamageFactor "BFGSplash", 0.6
  DamageFactor "MarineRail", 0.6
  
  DamageFactor "CybRLDamage", 0.25
  DamageFactor "ImpBallDamage", 0
  DamageFactor "CacoDamage", 0
  DamageFactor "SkelDamage", 0
  DamageFactor "FatsoDamage", 0
  DamageFactor "KnightDamage", 0
  DamageFactor "ArachDamage", 0
  DamageFactor "viledamage", 0
  DamageFactor "Control", 0
  DamageFactor "ZombiesDamage", 0
  DamageFactor "Slime", 0
  DamageFactor "ZombieTankDamage", 0
  
  //RenderStyle OptFuzzy
  -PICKUP
  +NOSKIN
  +NOPAIN
  -FRIENDLY
  +NOTARGET
  +LONGMELEERANGE //added
  +NOTRIGGER //added - avoid issues in level design
  RenderStyle Shaded
  Stencilcolor "Green"
  Alpha 0.4
  MeleeRange 100
  
  states
  {
  Spawn:
	SARG AB 10 BRIGHT
	SARG AB 10
	SARG A 0 BRIGHT HealThing(10)
    loop
  See:
    SARG A 3 BRIGHT A_Jump(240,2) 
	SARG B 3 BRIGHT A_PlaySoundEx ("demon/active","body") 
    SARG AB 3
	SARG A 0 BRIGHT HealThing(10) 
    loop
  Missile:
    SARG EFG 8
    goto Spawn
  Death:
    SARG I 8 A_GiveToTarget ("MarineExp",2)
    SARG J 8 A_PlaySoundEx ("demon/death","body")
    SARG K 4 Thing_changeTid(144,0)
    SARG L 4 A_NoBlocking
    SARG M 4
	SARG M 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
	SARG N -1
    stop	
  XDeath:
    SARG O 8 A_GiveToTarget ("MarineExp",3)
    SARG P 8 A_XScream
    SARG Q 4 A_NoBlocking
	SARG Q 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
    SARG R 4 Thing_changeTid(144,0)
    SARG STU 4
	SARG V -1
    stop
  }
}

ACTOR SpectreMouth : Weapon
{
  obituary "%o was Irradiated by %k."
  weapon.kickback 60
  +ammo_optional
  +WEAPON.NOALERT
  +WEAPON.DONTBOB
  +WEAPON.CHEATNOTWEAPON
  //+INVENTORY.UNDROPPABLE //added
  states
  {
  Spawn:
    TNT1 A 0 Thing_Remove (0)
    Stop
  Select:
    DEMH A 1 A_Raise
    Goto Ready
  Ready:
    DEMH A 3 A_WeaponReady
    Loop
  DeSelect:
    DEMH A -1
    Loop
  Fire:
    DEMH A 0 A_JumpIfInventory ("Mskull",0,"AdFire")
    DEMH A 0 A_PlaySoundEx ("demon/melee","Weapon")
	DEMH A 8 A_CustomPunch (15,0,0,"FBulletPuff",60)
	DEMH A 7 A_CustomPunch (15,0,0,"FBulletPuff",60)
    DEMH A 6 A_CustomPunch (15,0,0,"FBulletPuff",60)	
    Goto Ready
  AdFire:
    DEMH A 0 A_PlaySoundEx ("demon/melee","Weapon")
	DEMH A 7 A_CustomPunch (15,0,0,"FBulletPuff",60)
	DEMH A 6 A_CustomPunch (15,0,0,"FBulletPuff",60)
    DEMH A 5 A_CustomPunch (15,0,0,"FBulletPuff",60)	
    Goto Ready
  AltFire:
    DEMH A 5 ACS_ExecuteAlways (419,0,11)
	goto ready	
  }
}

actor MSpectreTraceRun
{
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  RenderStyle Shaded
  Stencilcolor "Green"
  Alpha 0.4

  States
  {	
  Spawn:
    WARG AB 2
    stop
  }
}

