actor ArrowBuster : LaserBuster
{
Inventory.Pickupmessage "$PU_ARROWBUSTER"
Obituary "$OB_ARROWBUSTER"
Tag "$TAG_ARROWBUSTER"
States
{
SpawnLoop:
WEA4 L 1
stop
Fire3:
BUST B 0 A_TakeInventory("WeaponCharge",999)
BUST B 0 A_PlaySoundEx("weapon/cfire","Weapon")
BUST B 0 
BUST C 0 ACS_ExecuteAlways(991,0,0)
BUST C 0 A_FireCustomMissile("ArrowShot",0,0,8,0)
BUST CD 3 
BUST C 9
BUST B 0 A_Refire
goto Ready2+2
BotFire:
BUST B 0 A_Jump(16, "Fire3")
CHBU H 0 A_Refire
Goto Fire3
Charge1:
BUST B 0 A_JumpIfInventory("WeaponCharge",35,"Charge2Start")
CHBU H 1 ACS_ExecuteAlways(991,0,92)
CHBU H 0 A_Refire("Charge1.a")
Goto Fire2
Charge1.a:
BUST B 1 ACS_ExecuteAlways(991,0,0)
BUST B 0 A_GiveInventory("WeaponCharge_RC",1)
CHBU H 0 A_Refire("Charge1")
Goto Fire2
Charge2Start:
BUST B 0 A_GunFlash("Sound.BusterCharge", GFF_NOEXTCHANGE)
Goto Charge2
Charge2:
BUST B 1 ACS_ExecuteAlways(991,0,93)
CHBU H 0 A_Refire("Charge2.a")
Goto Fire3
Charge2.a:
CHBU I 1 ACS_ExecuteAlways(991,0,94)
CHBU H 0 A_Refire("Charge2.b")
Goto Fire3
Charge2.b:
CHBU J 1 ACS_ExecuteAlways(991,0,0)
BUST B 0 A_JumpIfInventory("IsBot", 1, "BotFire")
BUST B 0 A_JumpIfInventory("WeaponCharge", 35, 2)
BUST B 0 A_GiveInventory("WeaponCharge_RC",1)
BUST B 0 A_Refire("Charge2")
Goto Fire3
}
}

actor MidShot
{
PROJECTILE
+BRIGHT
damagetype "ChargeBuster"
Obituary "$OB_MEGABUSTER"
//seesound "weapon/mbuster"
Speed 26
Damage (15)
radius 20
height 20
scale 2.5
States
{
Spawn:
TNT1 A 2
MBUS AB 2
Goto Spawn+1
}
}


actor ArrowShot
{
PROJECTILE
+FORCEXYBILLBOARD
+BRIGHT
damagetype "ArrowBuster"
Obituary "$OB_ARROWBUSTER"
Speed 54
Damage (20)
radius 20
height 16
scale 2.5
States
{
Spawn:
ARRS ABACAD 1
Loop
Death:
ARRS F 0 A_PlaySoundEx("weapon/napalm", "Weapon")
ARRS F 0 A_SpawnItemEx ("ArrowFrag1",0,0,0,54,0,0,165,0,0)
ARRS F 0 A_SpawnItemEx ("ArrowFrag1",0,0,0,54,0,0,150,0,0)
ARRS F 0 A_SpawnItemEx ("ArrowFrag1",0,0,0,54,0,0,135,0,0)
ARRS F 0 A_SpawnItemEx ("ArrowFrag1",0,0,0,54,0,0,-135,0,0)
ARRS F 0 A_SpawnItemEx ("ArrowFrag1",0,0,0,54,0,0,-150,0,0)
ARRS F 0 A_SpawnItemEx ("ArrowFrag1",0,0,0,54,0,0,-165,0,0)
stop
}
}

actor ArrowFrag1
{
PROJECTILE
+NOINTERACTION
+FORCEXYBILLBOARD
+BRIGHT
damagetype "ArrowBuster"
Obituary "$OB_ARROWBUSTER"
Damage (7)
radius 5
height 5
scale 1.5
Speed 26
States
{
Spawn:
ARRS G 1
ARRS G 1
ARRS G 0 A_Stop
ARRS G 0 A_ChangeFlag("NOINTERACTION", 0)
ARRS GGGG 1 A_SetScale(scalex + 0.28, scaley + 0.28)
ARRS G 0 A_SpawnItemEx("ArrowFrag2",0,0,0,cos(-pitch)*60,0,sin(-pitch)*60,180,0,0)
Stop
Death:
TNT1 A 0 
TNT1 A 0
stop
}
}

actor ArrowFrag2 : ArrowFrag1
{
-NOINTERACTION
-NOCLIP
States
{
Spawn:
ARRS G 3
ARRS H 1
Goto Spawn+1
}
}
