ACTOR PullAttempts : Inventory
{
	Inventory.MaxAmount 3
}

ACTOR ChainsawSmoke
{
	Renderstyle Add
	+NOGRAVITY
	+NOBLOCKMAP
	+NOCLIP
	Scale 0.2
	States
	{
	Spawn:
	SMKQ ABCDEFGHIJKLMN 1 A_FadeOut(0.07)
	Stop
	}
}

ACTOR InvisiPuff
{
	+NOGRAVITY
	+NOBLOCKMAP
	+NOCLIP
	+NOINTERACTION
	DamageType "Melee"
	States
	{
	Spawn:
	Melee:
	TNT1 A 0
	TNT1 A 1
	Stop
	}
}

ACTOR PuffSimulator
{
	+NOGRAVITY
	+NOBLOCKMAP
	+NOCLIP
	+NOINTERACTION
	DamageType "Melee"
	States
	{
	Spawn:
	PUFF B 5
	Stop
	}
}

ACTOR PseudoPuff
{
	Projectile
	Speed 15
	Radius 1
	Height 2
	Damage 10
	+NOEXTREMEDEATH
	-ACTIVATEPCROSS
	DamageType "Melee"
	States
	{
	Spawn:
	TNT1 A 3
	Stop
	XDeath:
	TNT1 A 0
	TNT1 A 0 A_Stop
	TNT1 A 0 A_GiveToTarget("HitSomething",1)
	TNT1 A 0 A_PlaySoundEx("katana/flesh",CHAN_WEAPON)
	TNT1 A 3
	Stop
	Death:
	TNT1 A 0
	TNT1 A 0 A_Stop
	TNT1 A 0 A_SpawnItemEx("BulletPuff2",0,0,0)
	TNT1 A 0 A_PlaySoundEx("katana/concrete",CHAN_WEAPON)
	Stop
	}
}

ACTOR PseudoPuffRight : PseudoPuff
{
	DamageType "MeleeRight"
}

ACTOR PseudoPuffLeft : PseudoPuff
{
	DamageType "MeleeLeft"
}

ACTOR DWChainsaw : Weapon
{
  +WEAPON.NOAUTOAIM
  Weapon.Kickback 0
  Weapon.SelectionOrder 2200
  Inventory.PickupMessage "$GOTCHAINSAW"
  Obituary "$OB_MPCHAINSAW"
  Tag "$TAG_CHAINSAW"
  +WEAPON.MELEEWEAPON
  Weapon.BobStyle Smooth
  Weapon.BobSpeed 2.5
  Weapon.BobRangeX 0.5
  Weapon.BobRangeY 0.3
  States
  {
  Ready:
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCI A 0 A_SetPitch(pitch+0.75)
	DWCI A 1 A_WeaponReady
	DWCI A 0 A_SetPitch(pitch-0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCI D 1 A_WeaponReady
	DWCI A 0 A_SetPitch(pitch+0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCI C 1 A_WeaponReady
	DWCI A 0 A_SetPitch(pitch-0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCI B 1 A_WeaponReady
    Loop
  Deselect:
	DWCI A 0 A_PlaySoundEx("chainsaw/die","Weapon")
	DWCI ABABAB 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI ABAB 2 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI AB 3 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI AB 4 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI A 10 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI EFGH 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
  Deselecting:
	TNT1 AAAAAAAAAAAAAAAAA 0 A_Lower
	TNT1 A 1 A_Lower
	Loop
	
	Select:
	TNT1 A 0 A_SetCrosshair(16)
	DWCI A 0 A_StopSoundEx("Weapon")
	TNT1 AA 0 A_Raise
	TNT1 A 1 A_WeaponReady
	Goto SelectAnim
	
	SelectAnim:
	TNT1 A 0 A_StopSoundEx("Weapon")
	DWCB ABCDEFGHIJK 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	Goto PullAttempt
	
	PullAttempt:
	TNT1 A 0 A_JumpIfInventory("PullAttempts",2,"SuccessfulPull")
	TNT1 A 0 A_Jump(64,"SuccessfulPull")
	TNT1 A 0 A_GiveInventory("PullAttempts",1)
	DWCB K 8 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB K 0 A_PlaySoundEx("chainsaw/pull","SoundSlot6")
	DWCB L 2 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB MN 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB O 3 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB P 5 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB O 3 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB NM 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 2 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	Loop
	
	SuccessfulPull:
	DWCB K 0 A_TakeInventory("PullAttempts",5)
	DWCB K 6 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB K 0 A_AlertMonsters
	DWCB K 0 A_PlaySoundEx("chainsaw/start","SoundSlot6")
	DWCB K 0 A_PlaySoundEx("chainsaw/idle","Weapon",true)
	DWCB L 0 A_SetPitch(pitch+0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB L 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch-0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB L 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch+0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB M 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch-0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB N 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch+0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB O 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch-0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB R 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch+0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB S 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch-0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB T 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch+0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB U 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch-0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB V 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch+0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB V 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch-0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB W 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch+0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB W 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch-0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB W 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch+0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB X 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch-0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB X 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch+0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB Y 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch-0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCB Z 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch+0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCC A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch-0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCC B 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch+0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCC C 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCB L 0 A_SetPitch(pitch-0.75)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCC D 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	Goto Ready
	
  Fire:
	PUNG A 0 A_JumpIf(0 == (ACS_ExecuteWithResult(559,0,0,0)), "AltSwing2")
	PUNG A 0 A_JumpIf(1 == (ACS_ExecuteWithResult(559,0,0,0)), "AltSwing1")
	DWCA A 0 A_Jump(255,"FireAnim1","FireAnim2")
	Goto FireAnim1
  FireAnim1:
	DWCA A 0 A_PlaySoundEx("chainsaw/startsaw","SoundSlot6")
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCA A 2 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCA B 2 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCA C 2 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCA A 0 A_PlaySoundEx("chainsaw/loopsaw","Weapon",true)
	Goto Holding
  Holding:
	DWCA A 0 
	DWCA D 0 A_Saw("","",2,"ZTMeleePuff",0,90)
	DWCB L 0 A_SetPitch(pitch+random(-5.5,-1.0))
	DWCB L 0 A_SetAngle(angle+random(-5.5,-1.0))
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCA D 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCA E 0 A_Saw("","",2,"ZTMeleePuff",0,90)
	DWCB L 0 A_SetPitch(pitch+random(1.0,5.5))
	DWCB L 0 A_SetAngle(angle+random(1.0,5.5))
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCA E 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
    SAWG B 0 A_ReFire("Holding")
    Goto StopSaw
  StopSaw:
	DWCA A 0 A_PlaySoundEx("chainsaw/idle","Weapon",true)
	DWCA A 0 A_PlaySoundEx("chainsaw/stopsaw","SoundSlot6")
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCA C 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCA B 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCA A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	Goto Ready
	
  FireAnim2:
	DWCA A 0 A_PlaySoundEx("chainsaw/startsaw","SoundSlot6")
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCZ AA 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCZ BB 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCZ CC 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCZ DD 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCZ A 0 A_PlaySoundEx("chainsaw/loopsaw","Weapon",true)
	Goto Holding2
	
  Holding2:
	DWCZ A 0 
	DWCZ D 0 A_Saw("","",2,"ZTMeleePuff",0,90)
	DWCB L 0 A_SetPitch(pitch+random(-5.5,-1.0))
	DWCB L 0 A_SetAngle(angle+random(-5.5,-1.0))
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCZ E 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCZ E 0 A_Saw("","",2,"ZTMeleePuff",0,90)
	DWCB L 0 A_SetPitch(pitch+random(1.0,5.5))
	DWCB L 0 A_SetAngle(angle+random(1.0,5.5))
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCZ F 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
    DWCZ B 0 A_ReFire("Holding2")
    Goto StopSaw2
	
  StopSaw2:
	DWCZ A 0 A_PlaySoundEx("chainsaw/idle","Weapon",true)
	DWCZ A 0 A_PlaySoundEx("chainsaw/stopsaw","SoundSlot6")
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCZ D 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCZ C 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCZ B 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI A 0 A_SpawnItemEx("ChainsawSmoke",10,15,30,0,0,random(2,4))
	DWCZ A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	Goto Ready
	
  //==============================================
  // ALTFIRE: Swing
  //==============================================
  
  AltSwing1:
	DWC1 A 0 A_PlaySoundEx("chainsaw/startsaw","SoundSlot5")
	DWCI A 0 A_SetPitch(pitch+0.75)
	DWC1 A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI A 0 A_SetPitch(pitch-0.75)
	DWC1 A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWCI A 0 A_SetPitch(pitch+0.75)
	DWC1 A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	TNT1 A 0 A_SetPitch(pitch-0.75)
	TNT1 A 1
	TNT1 A 0 A_SetPitch(pitch+0.75)
	TNT1 A 1
	TNT1 A 0 A_SetPitch(pitch-0.75)
	TNT1 A 1
	TNT1 A 0 A_SetPitch(pitch+0.75)
	TNT1 A 1
	TNT1 A 0 A_SetPitch(pitch-0.75)
	TNT1 A 1
	DWC1 A 0 A_PlaySoundEx("chainsaw/slash","SoundSlot6")
	DWC2 B 0 A_FireCustomMissile("PseudoPuffRight",0,0,-40,-10)
	TNT1 A 0 A_SetPitch(pitch+0.75)
	DWC1 D 1
	DWC2 B 0 A_FireCustomMissile("PseudoPuffRight",0,0,-40,-10)
	TNT1 A 0 A_SetPitch(pitch-0.75)
	DWC1 E 1
	DWC2 B 0 A_FireCustomMissile("PseudoPuffRight",0,0,-35,-8)
	TNT1 A 0 A_SetPitch(pitch+0.75)
	DWC1 F 1
	DWC2 B 0 A_FireCustomMissile("PseudoPuffRight",0,0,-33,-6)
	TNT1 A 0 A_SetPitch(pitch-0.75)
	DWC1 G 1
	DWC2 B 0 A_FireCustomMissile("PseudoPuffRight",0,0,-30,-2)
	TNT1 A 0 A_SetPitch(pitch+0.75)
	DWC1 H 1
	DWCA A 0 A_PlaySoundEx("chainsaw/loopsaw","SoundSlot5",true)
	DWC2 B 0 A_FireCustomMissile("PseudoPuffRight",0,0,-20,0)
	TNT1 A 0 A_SetPitch(pitch-0.75)
	DWC1 I 1
	Goto LoopCheck1
  LoopCheck1:
	DWC2 B 0 A_TakeInventory("HitSomething",1)
	DWCZ D 0 A_Saw("","",2,"ZTMeleePuff",0,90)
	TNT1 A 0 A_SetPitch(pitch+0.75)
	DWC1 J 1
	DWC2 B 0 A_TakeInventory("HitSomething",1)
	DWCZ D 0 A_Saw("","",2,"ZTMeleePuff",0,90)
	TNT1 A 0 A_SetPitch(pitch-0.75)
	DWC1 Z 1
	DWC1 J 0 A_JumpIfInventory("HitSomething",1,"LoopCheck1")
	Goto EndSwing1
  EndSwing1:
	DWC2 B 0 A_FireCustomMissile("PseudoPuffRight",0,0,12,3)
	TNT1 A 0 A_SetPitch(pitch-0.75)
	DWC1 K 1
	DWCA A 0 A_StopSoundEx("SoundSlot5")
	DWCA A 0 A_PlaySoundEx("chainsaw/stopsaw","SoundSlot5")
	DWC2 B 0 A_FireCustomMissile("PseudoPuffRight",0,0,20,-4)
	TNT1 A 0 A_SetPitch(pitch+0.75)
	DWC1 L 1
	DWC2 B 0 A_FireCustomMissile("PseudoPuffRight",0,0,28,-8)
	TNT1 A 0 A_SetPitch(pitch-0.75)
	DWC1 M 1
	DWC2 B 0 A_FireCustomMissile("PseudoPuffRight",0,0,34,-12)
	TNT1 A 0 A_SetPitch(pitch+0.75)
	DWC1 N 1
	DWC2 B 0 A_FireCustomMissile("PseudoPuffRight",0,0,40,-14)
	TNT1 A 0 A_SetPitch(pitch-0.75)
	DWC1 O 1
	TNT1 A 0 A_SetPitch(pitch+0.75)
	TNT1 A 1
	TNT1 A 0 A_SetPitch(pitch-0.75)
	TNT1 A 1
	TNT1 A 0 A_SetPitch(pitch+0.75)
	TNT1 A 1
	TNT1 A 0 A_SetPitch(pitch-0.75)
	TNT1 A 1
	
	DWCI A 0 A_SetPitch(pitch+0.75)
	DWCI H 1
	DWCI A 0 A_SetPitch(pitch-0.75)
	DWCI G 1
	DWCI A 0 A_SetPitch(pitch+0.75)
	DWCI F 1
	DWCI A 0 A_SetPitch(pitch-0.75)
	DWCI E 1
	Goto Ready
  AltSwing2:
	DWC1 A 0 A_PlaySoundEx("chainsaw/startsaw","SoundSlot5")
	DWC1 A 0 A_SetPitch(pitch-0.75)
	DWC1 A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWC1 B 0 A_SetPitch(pitch+0.75)
	DWC1 B 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWC1 C 0 A_SetPitch(pitch-0.75)
	DWC1 C 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	DWC1 C 0 A_SetPitch(pitch+0.75)
	TNT1 A 1
	DWC1 C 0 A_SetPitch(pitch-0.75)
	TNT1 A 1
	DWC1 C 0 A_SetPitch(pitch+0.75)
	TNT1 A 1
	DWC1 C 0 A_SetPitch(pitch-0.75)
	TNT1 A 1
	DWC1 C 0 A_SetPitch(pitch+0.75)
	TNT1 A 1
	DWC1 A 0 A_PlaySoundEx("chainsaw/slash","SoundSlot6")
	DWC1 C 0 A_SetPitch(pitch-0.75)
	DWC2 A 1
	DWC2 B 0 A_FireCustomMissile("PseudoPuffLeft",0,0,40,-5)
	DWC1 C 0 A_SetPitch(pitch+0.75)
	DWC2 B 1
	DWC2 B 0 A_FireCustomMissile("PseudoPuffLeft",0,0,28,-1)
	DWC1 C 0 A_SetPitch(pitch-0.75)
	DWC2 C 1
	DWCA A 0 A_PlaySoundEx("chainsaw/loopsaw","SoundSlot5",true)
	DWC2 B 0 A_FireCustomMissile("PseudoPuffLeft",0,0,15,0)
	DWC1 C 0 A_SetPitch(pitch+0.75)
	DWC2 D 1
	DWC2 B 0 A_FireCustomMissile("PseudoPuffLeft",0,0,5,1)
	DWC1 C 0 A_SetPitch(pitch-0.75)
	DWC2 E 1 //A_Saw("","",10,"InvisiPuff")
	Goto LoopCheck2
  LoopCheck2:
	DWC2 B 0 A_TakeInventory("HitSomething",1)
	DWCZ D 0 A_Saw("","",2,"ZTMeleePuff",0,90)
	TNT1 A 0 A_SetPitch(pitch+0.75)
	DWC2 F 1
	DWC2 B 0 A_TakeInventory("HitSomething",1)
	DWCZ D 0 A_Saw("","",2,"ZTMeleePuff",0,90)
	TNT1 A 0 A_SetPitch(pitch-0.75)
	DWC2 Z 1
	DWC1 J 0 A_JumpIfInventory("HitSomething",1,"LoopCheck2")
	Goto EndSwing2
  EndSwing2:
	DWC1 C 0 A_SetPitch(pitch-0.75)
	DWC2 G 1 //A_Saw("","",10,"InvisiPuff")
	DWCA A 0 A_StopSoundEx("SoundSlot5")
	DWCA A 0 A_PlaySoundEx("chainsaw/stopsaw","SoundSlot5")
	DWC2 B 0 A_FireCustomMissile("PseudoPuffLeft",0,0,-22,-8)
	DWC1 C 0 A_SetPitch(pitch+0.75)
	DWC2 H 1
	DWC2 B 0 A_FireCustomMissile("PseudoPuffLeft",0,0,-35,-14)
	DWC1 C 0 A_SetPitch(pitch-0.75)
	DWC2 I 1
	DWC1 C 0 A_SetPitch(pitch+0.75)
	DWC2 J 1
	DWC1 C 0 A_SetPitch(pitch-0.75)
	TNT1 A 1
	DWC1 C 0 A_SetPitch(pitch+0.75)
	TNT1 A 1
	DWC1 C 0 A_SetPitch(pitch-0.75)
	TNT1 A 1
	DWC1 C 0 A_SetPitch(pitch+0.75)
	TNT1 A 1
	DWCI A 0 A_SetPitch(pitch-0.75)
	DWCI H 1
	DWCI A 0 A_SetPitch(pitch+0.75)
	DWCI G 1
	DWCI A 0 A_SetPitch(pitch-0.75)
	DWCI F 1
	DWCI A 0 A_SetPitch(pitch+0.75)
	DWCI E 1
	Goto Ready
  Spawn:
    DWCS Z -1
    Stop
  }
}