ACTOR ChainsawZombie : RifleZombie 3204
{ 
  //$Title "Chainsaw Zombie"
  //$Category XV117Monsters
    Health 40 
    Radius 20 
    Height 56 
    Speed 8
    MeleeDamage 2
	
   PainChance 200
	PainChance "Avoid", 10
	PainChance "Head", 255
	PainChance "Kick", 255
	PainChance "Melee", 255
	PainChance "Taunt", 255
	PainChance "HelperMarineFatality", 255
	damagefactor "Crush", 5.0
	damagefactor "GibRemoving", 0.0
	damagefactor "DontCallTheBaron", 0.0
	PainChance "MonsterKnocked", 255
	damagefactor "HelperMarineFatallity", 3.0
	damagefactor "Avoid", 1.0
	damagefactor "SSG", 50.0
	PainChance "ExplosiveImpact", 255
	damagefactor "TeleportRemover", 0.0
	PainChance "Trample", 255
	damagetype "Saw"
	damagefactor "Kick", 0.4
	damagefactor "Shrapnel", 0.4
	damagefactor "ExplosiveImpact", 0.6
	damagefactor "Blood", 0.0 damagefactor "BlueBlood", 0.0 damagefactor "GreenBlood", 0.0
	
    MONSTER 
    +FLOORCLIP 
    Obituary "%o was sliced by a madman zombie with a chainsaw!" 
    Tag "Chainsaw Zombie"
    SeeSound "grunt/sight" 
    MeleeSound "weapons/sawhit" 
    PainSound "grunt/pain" 
    DeathSound "grunt/death" 
    ActiveSound "grunt/active" 
	AttackSound "weapons/sawhit" 
    DropItem ChainsawSpawner
    States 
    { 
    Spawn: 
        CHAN A 2 A_Look 
        CHAN A 2 A_PlayWeaponSound("weapons/chainsaw/idle") 
        CHAN A 2 A_Look 
        CHAN B 2 A_PlayWeaponSound("weapons/chainsaw/idle") 
        CHAN B 2 A_Look 
        CHAN B 2 A_PlayWeaponSound("weapons/chainsaw/idle") 
        Loop 
		
		  SpawnNO:
			TNT1 A 0 A_ChangeFlag("THRUACTORS", 1)
		TNT1 A 0 A_ChangeFlag("COUNTKILL", 0)
		TNT1 A 0 A_SpawnItemEx ("RifleZombie",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
		Stop
		
    See: 
        CHAN AA 2 A_Chase
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 42,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
		TNT1 A 0  A_PlayWeaponSound("weapons/chainsaw/idle") 
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
        CHAN B 0  A_PlayWeaponSound("weapons/chainsaw/idle") 
        CHAN BB 2 A_Chase 
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 5, 42,0)
		TNT1 A 0 A_SpawnItem ("LegTargetBase", 10)
        Loop 
    Melee: 
        CHAN E 1 A_FaceTarget 
		TNT1 A 0 Radius_Quake (2,3,0,2,0)//(intensity, duration, damrad, tremrad, tid)
        CHAN F 3 A_CustomMissile("SawAttack",10,0,0,0)
        Goto See 
		Missile:
		goto See
  
    Raise: 
        CHAN NMLKJIH 5 
        Goto See 
		
		
		     //If the monster is hit by the "Killme" damage (which is "exploded" by the captured marine), automatically start firing at the target.
    Pain.KillMe:
        TNT1 A 0
        Goto Missile
	//Emergency manuever in case the monster gets killed by an "alerter" actor	
	    TNT1 A 0
		TNT1 A 0 A_ChangeFlag("SOLID", 0)
        TNT1 A 0 A_SpawnItem("RifleZombie")
		TNT1 A 0
        Stop

	Pain:
	    
        TNT1 A 0 A_JumpIfInventory ("IsDown", 1, 9)

		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 0, 40,0)
		CHAN G 5
		TNT1 A 0 A_TakeInventory("SKZombieman", 1)
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 0, 40,0)
		CHAN G 5 A_Pain
		TNT1 A 0 A_Jump(196, "Missile")
	    Goto See
        TNT1 AAAA 0
        TNT1 A 0 A_Pain
        ID11 F 6
        Goto GetUp
		
	Pain.LowKick:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("IsDown", 1, "Death.LowKick")
		Goto Pain
		
	Death.LowKick:
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 A_GiveToTarget("GoFatality", 1)
        TNT1 A 0 A_GiveToTarget("IsCurbstompingZombieman", 1)
        Stop	

    Pain.Melee:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("SKZombieman", 1, "GotoStealthKill")
        TNT1 A 0 A_JumpIfInventory ("IsDown", 1, 8)
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 0, 40,0)
	    POSS G 4
		TNT1 A 0 A_SpawnItem ("HeadshotTarget4", 0, 40,0)
		POSS G 4 A_Pain
		Goto See
        TNT1 AAAA 0
        TNT1 A 0 A_Pain
        ID11 FRRRQ 10
		TNT1 A 0 A_TakeInventory("SKZombieman", 1)
        TNT1 A 0 A_TakeInventory("IsDown", 1)
        Goto See
		
		GotoStealthKill:
		TNT1 A 1
		TNT1 A 0 A_Explode(100, 1, 1)
		TNT1 A 1
		Goto See
	
	Pain.ExtremePunches:
	Pain.ExplosiveImpact:
	Pain.Explosive:
	     TNT1 A 0
		 TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
	     TNT1 A 0 A_Pain
		 TNT1 A 0 A_JumpIfInventory ("IsDown", 1, "Pain")
		 TNT1 A 0 A_TakeInventory("SKZombieman", 1)
         TNT1 A 0 A_GiveInventory("IsDown", 1)
         TNT1 A 0 ThrustThingZ(0,40,0,1)
         POS4 UVWXY 5
		 Goto FallingAfterImpact
			
    Pain.Kick:
	Pain.HeavyImpact:
         TNT1 A 0
		 TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
		 TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
         POS4 U 0 A_Pain
		 TNT1 A 0 A_ChangeFlag("NOPAIN", 0)
		 TNT1 A 0 A_ChangeFlag("FORCEXYBILLBOARD", 1)
		 TNT1 A 0 A_JumpIfInventory ("IsDown", 1, "Pain")
		 TNT1 A 0 A_TakeInventory("SKZombieman", 1)
		 POS4 U 1 A_facetarget
         TNT1 A 0 ThrustThingZ(0,30,0,1)
		 TNT1 A 0 A_FaceTarget
         POS4 U 3 ThrustThing(angle*256/360+128, 10, 0, 0)
		 TNT1 A 0 A_GiveInventory("IsDown", 1)
		 
         POS4 UVWXY 3
		 Goto FallingAfterImpact
		
	FallingAfterImpact:
		ID11 F 1 A_GiveInventory ("FallingHeight", 1)
		ID11 F 1 A_CheckFloor ("GetUp")
		NULL A 0 A_JumpIf (momz == 0, "GetUp")
		Loop
		
	GetUp:
		TNT1 A 0
		TNT1 A 0 A_SpawnItem("LargeMassWaterImpact")
		TNT1 A 0 A_JumpIfInventory ("FallingHeight", 5, "FallingDie")
		TNT1 A 0 A_TakeInventory("FallingHeight", 100)
		TNT1 A 0 A_Stop
		TNT1 A 0 A_ChangeFlag("GHOST", 1)
		SA11 RRRRRRRRRR 5 A_JumpIf(momz < 0, "FallingAfterImpact")
        TNT1 A 0 A_TakeInventory("IsDown", 1)
		SA11 Q 10
		TNT1 A 0 A_ChangeFlag("FORCEXYBILLBOARD", 0)
        Goto See

        Stop
		
	Raise:
		TNT1 A 2 A_CustomMissile ("RealFlameTrailsSmall", 6, 0, random (0, 360), 2, random (70, 110))
		TNT1 A 0 A_SpawnItem("PentagramSpawner", 0, 60)
		TNT1 A 2 A_CustomMissile ("RealFlameTrailsSmall", 6, 0, random (0, 360), 2, random (70, 110))
		TNT1 A 0 A_SpawnItem("PentagramSpawner", 0, 60)
		TNT1 A 0 A_SpawnItem("TeleportFog")
		TNT1 A 0 A_NoBlocking
        TNT1 A 0 A_SpawnItem ("RifleZombie")
		Stop
	}
}
		
ACTOR SawAttack: BaronBall
{
	Radius 10
	Height 18
	DamageType Saw
	Projectile 
	+RANDOMIZE
    Damage 1
	+FORCEXYBILLBOARD
    +THRUGHOST
    +BLOODSPLATTER 
	RenderStyle Add
	Alpha 0.6
	HitObituary "$OB_IMPHIT"
    Obituary "$OB_IMPHIT"
	+DONTHURTSPECIES

	SeeSound "None"
	DeathSound "none"
	Decal "none"
    Speed 20
	States
	{
	Spawn:
		TNT1 A 4 BRIGHT
		Stop
	Death:
        //TNT1 A 0 A_PlaySound("RIP")
		TNT1 A 0 BRIGHT
		Stop
	}
}

