actor ArteryCoreWep_NormalBar : NormalBar{args 68, 231}
actor ArteryCoreWep_ScriptBar : ScriptBar {}

Actor ArteryCoreWep : BaseMM8BDMWep
{
Weapon.AmmoUse 1
Weapon.AmmoGive 40
Weapon.SlotNumber 3
Obituary "$OB_ARTERYCORE"
Tag "$TAG_ARTERYCORE"
Inventory.Pickupmessage "$PU_ARTERYCORE"
weapon.ammotype "ArteryCoreAmmo"
inventory.icon "ARCRICON"
States
{
SpawnLoop:
ARCR Z -1
loop
Ready:
ARCR A 0 ACS_NamedExecuteWithResult("core_weaponcolor",CLR_ARTERYCORE)
ARCR A 1 A_WeaponReady
Goto Ready+1
Deselect:
ARCR A 0
Goto DeselectSwap
Select:
ARCR A 0
Goto SelectSwap
Fire:
ARCR A 0 A_JumpIfNoAmmo("NoAmmo")
ARCR A 0 A_PlaySoundEx("weapons/burst/arterycoreshot","Weapon")
ARCR A 0 A_FireCustomMissile("ArteryCoreShot",0,1,4,0,0,0)
ARCR BC 1
ARCR CA 1
ARCR A 0 A_Refire("Hold")
Goto Ready+1
Hold:
ARCR A 0 A_JumpIfNoAmmo("NoAmmo")
BASB B 0 A_JumpIfInventory("WeaponCharge", 8, "Fire4")
ARCR A 0 A_PlaySoundEx("weapons/burst/arterycoreshot","Weapon")
BASB B 0 A_GiveInventory("WeaponCharge", 1)
BASB B 0 A_JumpIfInventory("WeaponCharge", 4, "Fire2")
ARCR A 0 A_FireCustomMissile("ArteryCoreShot",random(-4.0,4.0),1,4,0,0,random(-2.0,2.0))
goto FireAnim
Fire2:
ARCR A 0 A_FireCustomMissile("ArteryCoreShot",random(-1.75,1.75),1,4,0,0,random(-1.0,1.0))
goto FireAnim
FireAnim:
ARCR BC 1
ARCR CA 1
ARCR A 0 A_Refire("Hold")
ARCR A 2 A_TakeInventory("WeaponCharge",10)
Goto Ready+1
Fire4:
ARCR A 0 A_TakeInventory("WeaponCharge",10)
ARCR A 0 A_PlaySoundEx("weapons/burst/arterycorebigshot","Weapon")
ARCR A 0 A_FireCustomMissile("ArteryCoreBigShot",0,1,4,0,0,0)
ARC0 ABCDEF 2
ARC0 G 22
ARC0 G 0 ACS_NamedExecuteWithResult("burst_clientsound", ISND_ARTERYRELOAD)
ARC0 HIJK 2
ARCD A 0 A_Refire("Fire")
Goto Ready+1

Altfire:
ARCR A 0 A_JumpIfNoAmmo("NoAmmo")
ARCR A 0 A_PlaySoundEx("weapons/burst/arterycoreshot","Weapon")
ARCR A 0 A_FireCustomMissile("ArteryCoreShot",random(-4.0,4.0),1,4,0,0,random(-2.0,2.0))
ARCR BC 1
ARCR CA 1
ARCR A 0 A_Refire
goto Ready+1

NoAmmo:
ARCR A 0 A_TakeInventory("WeaponCharge",10)
ARCR A 0 ACS_NamedExecuteAlways("core_noammo",0)
Goto Ready+1
}
}

Actor ArteryCoreAmmo : Ammo
{
	Inventory.Amount 1
	Inventory.MaxAmount 40
	+INVENTORY.IGNORESKILL
}

actor ArteryCoreShot : BasicProjectile
{
Obituary "$OB_ARTERYCORE"
damagetype "ArteryCore"
Damage (CallACS("burst_cbm_damage",8))
Radius 8
Height 8
speed 48
scale 2.0
States
{
Spawn:
ARCR DEF 2
loop
Death:
ARCR L 0 A_SetScale(2.5,2.5)
ARCR LMNO 2
stop
}
}

actor ArteryCoreBigShot : BasicProjectile
{
var int user_PierceRipper;
+RIPPER
Obituary "$OB_ARTERYCORE"
damagetype "ArteryCore2"
Damage (0)
Radius 12
Height 12
speed 25
States
{
Spawn:
ARCR G 1 A_Explode(CallACS("burst_cbm_damage",44),36,0,0,36)
ARCR GG 0 A_SpawnItemEx("ArteryCoreFlameFX", -4, frandom(-28,28), frandom(-28,28), 0, 0, 0, 0, SXF_TRANSFERPITCH|SXF_WEPFXCOLOR)
ARCR G 1 A_Explode(CallACS("burst_cbm_damage",44),36,0,0,36)
ARCR GG 0 A_SpawnItemEx("ArteryCoreFlameFX", -4, frandom(-28,28), frandom(-28,28), 0, 0, 0, 0, SXF_TRANSFERPITCH|SXF_WEPFXCOLOR)
ARCR G 1 A_Explode(CallACS("burst_cbm_damage",44),36,0,0,36)
ARCR GG 0 A_SpawnItemEx("ArteryCoreFlameFX", -4, frandom(-28,28), frandom(-28,28), 0, 0, 0, 0, SXF_TRANSFERPITCH|SXF_WEPFXCOLOR)
ARCR H 1 A_Explode(CallACS("burst_cbm_damage",44),36,0,0,36)
ARCR HH 0 A_SpawnItemEx("ArteryCoreFlameFX", -4, frandom(-28,28), frandom(-28,28), 0, 0, 0, 0, SXF_TRANSFERPITCH|SXF_WEPFXCOLOR)
ARCR H 1 A_Explode(CallACS("burst_cbm_damage",44),36,0,0,36)
ARCR HH 0 A_SpawnItemEx("ArteryCoreFlameFX", -4, frandom(-28,28), frandom(-28,28), 0, 0, 0, 0, SXF_TRANSFERPITCH|SXF_WEPFXCOLOR)
ARCR H 1 A_Explode(CallACS("burst_cbm_damage",44),36,0,0,36)
ARCR HH 0 A_SpawnItemEx("ArteryCoreFlameFX", -4, frandom(-28,28), frandom(-28,28), 0, 0, 0, 0, SXF_TRANSFERPITCH|SXF_WEPFXCOLOR)
loop
Death:
ARCR A 0 A_PlaySoundEx("weapons/burst/arterycoreboom","Weapon")
ARCR P 0 A_SpawnItemEx("OilPitIgnite",0,0,-16)
ARCR PQRS 2
stop
}
}

actor ArteryCoreFlameFX : BasicGraphicEffect
{
scale 1.75
+FORCEXYBILLBOARD
+BRIGHT
States
{
SpawnFrame:
ARCR IJ 2
ARCR I 0 A_SetScale(1.3125,1.3125)
ARCR KJ 2
ARCR I 0 A_SetScale(0.875,0.875)
ARCR KI 2
ARCR I 0 A_SetScale(0.4375,0.4375)
ARCR JK 2
stop
}
}
