actor GeminiSplitterWep_NormalBar : NormalBar{args 4, 196}
actor GeminiSplitterWep : BaseMM8BDMWep
{
Weapon.AmmoUse 3
Weapon.AmmoGive 28
Weapon.SlotNumber 2
Inventory.Pickupmessage "$PU_GEMINISPLITTER"
Obituary "$OB_GEMINISPLITTER"
Tag "$TAG_GEMINISPLITTER"
weapon.ammotype "GeminiSplitterAmmo"
inventory.icon "GSPTICON"
+WEAPON.CHEATNOTWEAPON
States
{
SpawnLoop:
GSPT Z 1
loop
Ready:
GSPT A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_GEMINISPLITTER)
GSPT A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
GSPT A 0 
goto DeselectSwap
Select:
GSPT A 0 
goto SelectSwap
Fire:
GSPT D 0 A_JumpIfNoAmmo("NoAmmo")
GSPT D 0 A_PlaySound("weapon/gemini","weapon")
GSPT D 0 A_PlaySound("weapon/mbuster","Item")
GSPT D 0 A_FireCustomMissile("GeminiSplitter",6,1,8,0)
GSPT D 0 A_FireCustomMissile("GeminiSplitter",-6,0,8,0)
GSPT BC 3
GSPT A 24
GSPT D 0 A_Refire
Goto Ready+1
Altfire:
GSPT A 0 A_JumpIfInventory("Vile_ClassAltfire", 1, "ClassAltfire")
GSPT A 0 A_JumpIf(CallACS("Vile_class_altfire"), "ClassAltfire")
GSPT A 1 A_JumpIfInventory("MM8BDMPlayer", 1, 1)
wait
GSPT A 1 A_JumpIfInventory("GeminiSplitterAmmo", 1, "AltFire2")
goto NoAmmo
ClassAltfire:
GSPT A 0 
goto Super::Altfire
Altfire2:
GSPT A 0 A_PlaySound("weapon/gemini","weapon")
GSPT A 0 A_PlaySound("weapon/mbuster","Weapon")
GSPT A 0 A_TakeInventory("GeminiSplitterAmmo",1,TIF_NOTAKEINFINITE)
GSPT A 0 A_FireCustomMissile("GeminiSplitter",0,0,8,0)
GSPT BC 3
GSPT A 16
GSPT A 0 A_Refire
Goto Ready+1
NoAmmo:
GSPT A 1 ACS_NamedExecuteAlways("core_noammo",0)
Goto Ready+1
}
}

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

actor GeminiSplitter : BasicProjectile
{
+BRIGHT
var int user_TranslateWhiteColors;
translation "197:197=196:196"
PROJECTILE
+HEXENBOUNCE
-ALLOWBOUNCEONACTORS
+CANBOUNCEWATER
+RIPPER
+SKYEXPLODE
+USEBOUNCESTATE
WALLBOUNCEFACTOR 1
BOUNCEFACTOR 1
Obituary "$OB_GEMINISPLITTER"
speed 50
Radius 5
Height 5
damagetype "GeminiSplitter"
scale 2.5
damage (CallACS("vile_cbm_damage",5))
+FORCEXYBILLBOARD
bouncecount 2
States
{
Spawn:
GSPT M 0
GSPT M 1 A_SpawnItemEx("GeminiTrailS", -0.33*momx, -0.33*momy, -0.33*momz, 0, 0, 0, 0, SXF_ABSOLUTEPOSITION|SXF_WEPFXCOLOR)
loop
Bounce:
TNT1 D 0 A_PlaySound("weapon/gemini","weapon")
TNT1 D 0 A_PlaySound("weapon/mbuster","Item")
TNT1 A 0 A_ScaleVelocity(0.60)
TNT1 A 0 A_SpawnItemEx("GeminiImpact", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS|SXF_WEPFXCOLOR)
TNT1 A 0 A_SpawnItemEx("GeminiSplitter2", 0, 0, 0, momx,momy,momz,angle+6)
TNT1 A 1 A_SpawnItemEx("GeminiSplitter2", 0, 0, 0, momx,momy,momz,angle-6)
stop
Death:
TNT1 A 0
stop
}
}

actor GeminiSplitter2 : GeminiSplitter {bouncecount 5 -USEBOUNCESTATE damage (CallACS("vile_cbm_damage",8))
States
{
Spawn:
GSPT M 0
GSPT M 1 A_SpawnItemEx("GeminiTrailS", -0.33*momx, -0.33*momy, -0.33*momz, 0, 0, 0, 0, SXF_ABSOLUTEPOSITION|SXF_WEPFXCOLOR)
loop
Bounce:
GEMI A 0 A_SpawnItemEx("GeminiImpact",0,0,0,0,0,0,0,SXF_WEPFXCOLOR)
goto Spawn
}
}


actor GeminiTrailS : BasicGraphicEffect
	{
	var int user_TranslateWhiteColors;
	+FORCEXYBILLBOARD
	+BRIGHT
	Speed 60
	States
	{
	SpawnFrame:
		GEMI A 3
		GSPT OO 1
		stop
	}
}
