ACTOR Motorsaw : Weapon Replaces Chainsaw
{
	Weapon.SelectionOrder 2200
	Weapon.SlotNumber 1
	Inventory.PickupMessage "A Chain saw! Find some meat!"
	Inventory.PickupSound "weapons/chainsaw/up"
	Obituary "%o was made into lumber by %k's chain saw"
	Decal "ChainsawPuff"
	+WEAPON.MELEEWEAPON
	+WEAPON.WIMPY_WEAPON
	+WEAPON.NOALERT
	+WEAPON.AMMO_CHECKBOTH
	+EXTREMEDEATH
	Weapon.BobStyle "Smooth"
	Weapon.BobSpeed 2.0
	Weapon.BobRangeX 0.30
	Weapon.BobRangeY 0.40
	Tag "Chain Saw"
	States
	{
	Deselect:
		TNT1 A 0 A_StopsoundEx("Body")
		SAWN A 1 A_PlaySoundEx ("weapons/chainsaw/lower","Body")
		Goto ReallyDeselect
	ReallyDeselect:
		SAWN A 1 Offset(5,35)
		SAWN A 1 Offset(15,39)
		SAWN A 1 Offset(30,45)
		SAWN A 1 Offset(40,52)
		SAWN A 1 Offset(45,60)
		SAWN A 1 Offset(49,75)
		SAWN A 1 Offset(51,90)
		TNT1 A 3 Offset(0,32)
		TNT1 A 0 A_StopsoundEx("Body")
		TNT1 A 0 A_Lower
		Wait
	Select:
		TNT1 A 0 A_Raise
		Loop
	Ready:
		TNT1 A 2
		TNT1 A 0 A_PlaySoundEx("weapons/chainsaw/start","Weapon")
		SLCE C 1 Offset(-200,32)
		SLCE C 1 Offset(-160,32)
		SLCE C 1 Offset(-100,32) A_PlaysoundEx("weapons/chainsaw/stop","Weapon")
		SLCE C 1 Offset(-70,32)
		SLCE C 1 Offset(-40,32)
		TNT1 A 0 A_Saw("","slice/flesh",2*Random(6,12),"ChainsawPuffSpawner",0)
		SLCE D 1 Offset(-20,32)
		SLCE D 1 Offset(0,32)
		TNT1 A 4 Offset(0,32)
		SAWN A 2 offset(30,60)
		SAWN A 2 offset(20,40)
		SAWN A 2 offset(15,36)
		SAWN A 1 offset(0,32)
	ReadyII:
	    TNT1 A 0 A_PlaySoundEx ("weapons/chainsaw/idle","Body")
		TNT1 A 0 A_FireCustomMissile("GunSmokeSpawner",0,0,0,-5)
		SAWN AZ 4 A_WeaponReady
		Loop
	Fire:
		TNT1 A 0 A_StopsoundEx("Body")
		TNT1 A 0 A_PlaySoundEx("weapons/chainsaw/start","Weapon")
		SAWN BCDEFG 1
		TNT1 A 0 A_AlertMonsters
	Hold:
		TNT1 A 0 A_PlaySoundEx("weapons/chainsaw/loop","Weapon")
		TNT1 A 0 A_Jump (128,"Hold1")
		TNT1 AAAA 0 A_FireCustomMissile("GunSmokeSpawner",0,0,0,-5)
		SAWF A 1 Offset(0,32) A_Custompunch(random[Saw](1, 10),1,CPF_PULLIN,"ChainsawPuffSpawner",96,0,0,"ArmorBonus","saw/flesh",0)
		SAWF B 1 Offset(-1,33)
		SAWF A 1 Offset(1,34)
		SAWF B 1 Offset(2,32)
		TNT1 A 0 A_Refire
		TNT1 A 0 A_StopsoundEx("Weapon")
		SAWN G 1 A_PlaySoundEx("weapons/chainsaw/stop","Weapon")
		SAWN FEDCB 1
		Goto ReadyII
	Hold1:
		TNT1 A 0 A_PlaySoundEx("weapons/chainsaw/loop","Weapon")
		SAWF A 1 Offset(1,33) A_Saw("","saw/flesh",random[Saw](1, 10),"ChainsawPuffSpawner", 0)
		SAWF B 1 Offset(0,34)
		SAWF A 1 Offset(2,32)
		SAWF B 1 Offset(-1,33)
		TNT1 A 0 A_Refire
		TNT1 A 0 A_StopsoundEx("Weapon")
		SAWN G 1 A_PlaySoundEx("weapons/chainsaw/stop","Weapon")
		SAWN FEDCB 1
		Goto ReadyII
	AltFire:
		SAWN A 2 Offset(-20,32)
		SAWN A 2 Offset(-40,32)
		SAWN A 2 Offset(-60,32)
	AltHold:
		TNT1 A 0 A_StopsoundEx("Weapon")
		TNT1 A 0 A_PlayWeaponSound("weapons/chainsaw/idle")
		TNT1 A 0 A_FireCustomMissile("GunSmokeSpawner",0,0,-12,0)
		SLCE A 4 
		SLCE Z 4
		TNT1 A 0 A_Refire
		TNT1 A 0 A_StopsoundEx("Weapon")
		TNT1 A 0 A_PlaySoundEx("weapons/chainsaw/start","Weapon")
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_Recoil (-4)
		TNT1 A 0 A_FireCustomMissile("GunSmokeSpawner",0,0,-6,0)
		SLCE AABB 1
		TNT1 A 0 A_StopsoundEx("Weapon")
		TNT1 A 0 A_Saw("","slice/flesh",2*Random(6,12),"ChainsawPuffSpawner", 0)
		SLCE C 1 A_PlaysoundEx("weapons/chainsaw/stop","Weapon")
		SLCE D 1
		SLCE D 1
		TNT1 A 4
		SAWN A 2 Offset(30,60)
		SAWN A 2 Offset(20,40)
		SAWN A 2 Offset(15,36)
		SAWN A 1 Offset(0,32)
		Goto ReadyII
	Spawn:
		CSAW Z -1
	Stop
	}
}

Actor ChainsawPuffSpawner
{
	+DONTSPLASH
	+NOGRAVITY
	+NOINTERACTION
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItem("ChainsawPuff",0,-14)
		Stop
	}
}

Actor ChainsawPuff
{
	Scale 0.2
	Alpha 0.6
	SeeSound "saw/flesh"
	States
	{
	Spawn:
		TNT1 A 0 
		TNT1 A 0 A_SpawnItem("ShotSmoke")
		TNT1 A 0 A_Jump(100,2)
		TNT1 A 0 A_SpawnItem("RicochetSaw")
		PUFF ABCD 1 Bright
		Stop
	}
}

Actor RicochetSaw
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("weapons/chainsaw/hitwall")
		TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("RicochetSparks",0,0,random(0,360),2,random(10,60))
		Stop
	}
}

ACTOR SawFuel : Ammo
{
	+IGNORESKILL
	Inventory.Amount 60
	Inventory.MaxAmount 200
	Ammo.BackpackAmount 60
	Ammo.BackpackMaxAmount 400
}