actor PetalSproutWep_NormalBar : NormalBar{args 4, 17}
actor PetalSproutWep : BaseMM8BDMWep
{
Weapon.AmmoUse 2
Weapon.AmmoGive 28
Weapon.SlotNumber 4
Inventory.Pickupmessage "$PU_PETALSPROUT"
Obituary "$OB_PETALSPROUT"
Tag "$TAG_PETALSPROUT"
weapon.ammotype "PetalSproutAmmo"
inventory.icon "PSPTICON"
States
{
SpawnLoop:
PSPT Z 1
loop
Ready:
PSPT A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_PETALSPROUT)
PSPT A 0 A_JumpIfNoAmmo("ReadyNoAmmo")
PSPT A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
ReadyNoAmmo:
PSPT U 1 A_WeaponReady
PSPT U 0 A_JumpIfNoAmmo("ReadyNoAmmo")
Goto Ready+1
Deselect:
PSPT A 0
goto DeselectSwap
Select:
PSPT A 0
goto SelectSwap
Fire:
PSPT B 0 A_JumpIfNoAmmo("NoAmmo")
PSPT A 0 A_PlaySoundEx("weapon/joegrenade","Weapon")
PSPT B 0 A_FireCustomMissile("PetalSprout",0,1,8,0)
PSPT CDEFGH 3
PSPT A 0 A_JumpIfNoAmmo("EndNoAmmo")
PSPT A 3 Offset(0,42)
PSPT A 3 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
PSPT A 0 
goto Ready+1
EndNoAmmo:
PSPT U 3 Offset(0,42)
PSPT U 3 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
PSPT U 0 
goto Ready+1
NoAmmo:
PSPT U 1 ACS_NamedExecute("core_noammo",0)
goto Ready+1

}
}

actor PetalSproutAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

actor PetalSprout : BasicProjectile
{
PROJECTILE
Radius 16
Height 16
Scale 2.5
Damage (CallACS("vile_cbm_damage",4))
-NOGRAVITY
+DONTSPLASH
Damagetype "PetalSprout"
Obituary "$OB_PETALSPROUT"
Speed 20
States
{
Spawn:
TNT1 A 0
TNT1 A 1 ThrustThingZ(0, 12, 0, 1)
PSPT I -1
wait
Death:
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_SpawnItemEx("ExplosionEffect1")
TNT1 AAA 3 A_GiveInventory("PetalSprout_P",1)
stop
}
}


actor PetalSproutPetal : BasicProjectile
{
+BRIGHT
damagetype "PetalSprout"
Obituary "$OB_PETALSPROUT"
Speed 24
+THRUACTORS
scale 2.5
Damage (CallACS("vile_cbm_damage",10))
radius 16
height 16
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_ChangeFlag("THRUACTORS",0)
goto SpawnLoop
SpawnLoop:
PSPT JKLK 3
loop
Death:
PSPT A 0
stop
}
}

actor PetalSproutPetalUp : PetalSproutPetal
{
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_ChangeFlag("THRUACTORS",0)
goto SpawnLoop
SpawnLoop:
PSPT MNPN 3
loop
}
}

actor PetalSproutPetalDown : PetalSproutPetal
{
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_ChangeFlag("THRUACTORS",0)
goto SpawnLoop
SpawnLoop:
PSPT QRSR 3
loop
}
}

actor PetalSprout_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/RhythmBuster","Weapon")
TNT1 F 0 A_SpawnItemEx("PetalSproutPetal",0,0,8,24,0,0,90*0,SXF_NOCHECKPOSITION)
TNT1 F 0 A_SpawnItemEx("PetalSproutPetal",0,0,8,24,0,0,90*1,SXF_NOCHECKPOSITION)
TNT1 F 0 A_SpawnItemEx("PetalSproutPetal",0,0,8,24,0,0,90*2,SXF_NOCHECKPOSITION)
TNT1 F 0 A_SpawnItemEx("PetalSproutPetal",0,0,8,24,0,0,90*3,SXF_NOCHECKPOSITION)

TNT1 F 0 A_SpawnItemEx("PetalSproutPetalUp",0,0,0,0,0,24,0,SXF_NOCHECKPOSITION)
TNT1 F 0 A_SpawnItemEx("PetalSproutPetalDown",0,0,0,0,0,-24,0,SXF_NOCHECKPOSITION)

stop
}
}