actor ForestTossWep_NormalBar : NormalBar{args 103, 110}
actor ForestTossWep : BaseMM8BDMWep
{
Weapon.AmmoUse 6
Weapon.AmmoGive 30
Weapon.SlotNumber 4
Inventory.Pickupmessage "$PU_FORESTTOSS"
Obituary "$OB_FORESTTOSS"
Tag "$TAG_FORESTTOSS"
weapon.ammotype "ForestTossAmmo"
inventory.icon "FRTSICON"
States
{
SpawnLoop:
FRTS Z -1
loop
Ready:
FRTS A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_FORESTTOSS)
FRTS A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
FRTS A 0 
goto DeselectSwap
Select:
FRTS A 0 
goto SelectSwap
Fire:
FRTS A 0 A_JumpIfNoAmmo("NoAmmo")
FRTS B 2
FRTS C 3
FRTS D 0 A_FireCustomMissile("ForestTossShieldThrown",0,1,0,0)
FRTS E 0 A_PlaySoundEx("weapon/leafshieldcounter", "Weapon")
FRTS E 12 
FRTS E 0 A_TakeInventory("WeaponCharge", 9999)
FRTS DCB 3
FRTS A 12
goto Ready+1
NoAmmo:
FRTS A 1 ACS_NamedExecuteAlways("core_noammo",0)
Goto Ready+1
}
}

actor ForestTossAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 30
+INVENTORY.IGNORESKILL
}

actor ForestTossShieldThrown : BasicProjectile
{
translation "104:104=103:103"
height 16
radius 16
Obituary "$OB_FORESTTOSS"
Damagetype "ForestToss"
-SOLID
+RIPPER
+MISSILE
-NOGRAVITY
gravity 0.8
damage (0)
speed 25
reactiontime 15
states
{
	Spawn:
	LEAF L 0
	LEAF L 0 A_ChangeVelocity(0,0,6)
	Spawn2:
	LEAF L 0 A_PlaySoundEx("weapon/leafshield", "Weapon",1,0)
	LEAF L 0 A_SpawnItemEx("ForestTossLeafDropped", 0, 0, 8, 0, 0, -16,0,SXF_TRANSFERPOINTERS)
	LEAF L 0 A_SpawnItemEx("ForestTossLeafDropped", 0, 32, 8, 0, 0, -16,0,SXF_TRANSFERPOINTERS)
	LEAF L 0 A_SpawnItemEx("ForestTossLeafDropped", 0, -32, 8, 0, 0, -16,0,SXF_TRANSFERPOINTERS)

	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 0, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 90, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 180, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 270, 1)
	TNT1 A 1 A_SetAngle(angle + 18)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 0, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 90, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 180, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 270, 1)
	TNT1 A 1 A_SetAngle(angle + 18)
	TNT1 M 0 A_Explode(CallACS("vile_cbm_damage",7), 64, 0, 0, 64)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 0, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 90, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 180, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 270, 1)
	TNT1 A 1 A_SetAngle(angle + 18)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 0, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 90, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 180, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 270, 1)
	TNT1 A 1 A_SetAngle(angle + 18)
	TNT1 M 0 A_Explode(CallACS("vile_cbm_damage",7), 64, 0, 0, 64)
	FTSS O 0 A_Countdown
	loop
	Death:
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 0, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 90, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 180, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 64, 0, 0, 0, 0, 0, 270, 1)
	TNT1 A 1 A_SetAngle(angle + 18)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 48, 0, 0, 0, 0, 0, 0, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 48, 0, 0, 0, 0, 0, 90, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 48, 0, 0, 0, 0, 0, 180, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 48, 0, 0, 0, 0, 0, 270, 1)
	TNT1 A 1 A_SetAngle(angle + 18)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 32, 0, 0, 0, 0, 0, 0, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 32, 0, 0, 0, 0, 0, 90, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 32, 0, 0, 0, 0, 0, 180, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 32, 0, 0, 0, 0, 0, 270, 1)
	TNT1 A 1 A_SetAngle(angle + 18)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 16, 0, 0, 0, 0, 0, 0, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 16, 0, 0, 0, 0, 0, 90, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 16, 0, 0, 0, 0, 0, 180, 1)
	TNT1 A 0 A_SpawnItemEx("ForestTossLaunch_FX", 16, 0, 0, 0, 0, 0, 270, 1)
	TNT1 A 1 A_SetAngle(angle + 18)
	stop
}
}

actor ForestTossLaunch_FX : BasicGraphicEffect
{
states
{
SpawnFrame:
LEAF P 1 bright
stop
}
}

actor ForestTossLeafDropped : BasicProjectile
{
translation "104:104=103:103"
PROJECTILE
+NOEXPLODEFLOOR
-NOGRAVITY
+THRUACTORS
scale 2.5
Obituary "$OB_FORESTTOSS"
height 32
radius 32
Damage (CallACS("vile_cbm_damage",2))
speed 0
states
{
	Spawn:
	LEAF P 0
	TNT1 A 2
	TNT1 A 0 A_ChangeFlag("THRUACTORS",0)
	Spawn2:
	LEAF PPQQRRSS 1 A_JumpIf(z-floorz<5, "Floored")
	LEAF TTSSRRQQ 1 A_JumpIf(z-floorz<5, "Floored")
	loop
	Floored:
	LEAF R 0 A_Chase("","") //Update: What the fuck, Sneak Traverser?
	LEAF RRRRRRR 24 
	goto Death
	Death:
	LEAF RRRRRRRRRR 1 A_Fadeout(0.1)
	stop
}
}
