actor TangoSummon : BaseMM8BDMUseItem 10156
{
//$Category MM8BDM-Assists
//$Title Tango Roll
//$Sprite WEA3B0
Inventory.RespawnTics 350
inventory.amount 1
inventory.maxamount 1
inventory.pickupmessage "$PU_TANGOROLL"
Tag "$TAG_TANGOSUMMON"
reactiontime 525
inventory.icon "TANGOSI"
Inventory.PickupSound "item/1up"
scale 2.0
+COUNTITEM
+INVBAR
states
{
Spawn:
WEA3 B 1 A_Countdown
loop
Death:
WEA3 BBBBB 1 A_Fadeout(0.2)
stop
Use:
WEA3 B 0 A_PlaySoundEx("item/refill","Voice")
WEA3 B 0 A_SpawnItemEx("TangoTeleport", 40, 0, 256, 0, 0, -24, 0, SXF_NOCHECKPOSITION, 0)
stop
}
}

actor TangoTeleport
{
Radius 12
Height 32
scale 2.5
+NOINTERACTION
+DONTBLAST
+SKYEXPLODE
PROJECTILE
states
{
Spawn:
TANG H 0
TANG H 9
TANG H 0 A_ChangeFlag("NOINTERACTION", 0)
TANG HHHHHHHHHH 1 A_CheckFloor("Next")
Next:
TANG H 0 A_ChangeFlag("NOINTERACTION", 0)
TANG H 0
Goto Death
Death:
TNT1 A 0 A_SpawnItemEx("Tango",0,0,3,0,0,momz,0,SXF_NOCHECKPOSITION,0)
stop
}
}

actor Tango
{
+DONTBLAST
- SOLID
+MISSILE
+NOCLIP
+SKYEXPLODE
+CANBOUNCEWATER
speed 0
scale 2.5
Radius 12
Height 32
reactiontime 250
meleerange 80
states
{
Spawn:
TANG H 0 A_Jump(256,"Death")
TANG H 1 A_ChangeFlag("MISSILE",0)
TANG H 0 A_ChangeVelocity(0, 0, -32, CVF_REPLACE)
TANG H 1 A_JumpIf(z-floorz<=0, "Look")
Goto Spawn+2
Look:
TANG I 0 A_ChangeFlag("NOCLIP",0)
TANG IJ 2
TANG I 0 A_PlaySoundEx("item/tango","Voice")
TANG ABCDBCA 4
TANG A 0 A_SpawnItemEx("TangoAttack",0,0,0,30,0,9)
stop
Death:
TANG F 0 A_SpawnItemEx("TangoDeath",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
stop
}
}

actor TangoAttack
{
PROJECTILE
Bouncetype Classic
+BOUNCEONWALLS
+BOUNCEONFLOORS
wallbouncefactor 0.99
bouncefactor 1.0
Damage (7)
-NOGRAVITY
+CANBOUNCEWATER
+USEBOUNCESTATE
+SEEKERMISSILE
+LOOKALLAROUND
speed 30
damagetype "Tango"
scale 2.5
+RIPPER
Height 16
Radius 16
Obituary "$OB_TANGOROLL"
reactiontime 100
States
{
Spawn:
TNT1 E 1 A_SpawnItemEx("TangoFX1",0,0,0)
TANG E 0 A_CountDown
SpawnLOOP:
TNT1 EEE 1 A_SpawnItemEx("TangoFX1",0,0,0)
TNT1 FFF 1 A_SpawnItemEx("TangoFX2",0,0,0)
TNT1 GGG 1 A_SpawnItemEx("TangoFX3",0,0,0)
TANG E 0 ThrustThingZ(0,5,0,1)
goto Spawn+1
Bounce.Ceiling:
Bounce.Floor:
TANG E 0 A_PlaySoundEx("misc/itemthrow","Voice")
TANG E 0 A_FaceTracer 
//TANG E 0 ThrustThingZ(0,35,0,1)
TANG E 0 A_SeekerMissile(90, 90, SMF_LOOK|SMF_PRECISE, 256, 5)
//TNT1 EEE 1 A_SpawnItemEx("TangoFX1",0,0,0)
//TNT1 FFF 1 A_SpawnItemEx("TangoFX2",0,0,0)
//TNT1 GGG 1 A_SpawnItemEx("TangoFX3",0,0,0)
goto Spawn+1
Death:
TANG E 0 A_SpawnItemEx("TangoDeath",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
stop
}
}

actor TangoFX1 : BasicGraphicEffect {States{Spawn: TNT1 A 0 A_Recoil(0) TANG E 1 A_Recoil(0) TANG E 0 A_SetScale(scaleX-0.2) TANG E 1 A_FadeOut(0.2) TANG E 0 A_SetScale(scaleX-0.2) TANG E 1 A_FadeOut(0.2) TANG E 0 A_SetScale(scaleX-0.2) TANG E 1 A_FadeOut(0.2) TANG E 0 A_SetScale(scaleX-0.2) TANG E 1 A_FadeOut(0.2) TANG E 0 A_SetScale(scaleX-0.2) TANG E 1 A_FadeOut(0.2) stop } }
actor TangoFX2 : BasicGraphicEffect {States{Spawn: TNT1 A 0 A_Recoil(0) TANG F 1 A_Recoil(0) TANG F 0 A_SetScale(scaleX-0.2) TANG F 1 A_FadeOut(0.2) TANG F 0 A_SetScale(scaleX-0.2) TANG F 1 A_FadeOut(0.2) TANG F 0 A_SetScale(scaleX-0.2) TANG F 1 A_FadeOut(0.2) TANG F 0 A_SetScale(scaleX-0.2) TANG F 1 A_FadeOut(0.2) TANG F 0 A_SetScale(scaleX-0.2) TANG F 1 A_FadeOut(0.2) stop } }
actor TangoFX3 : BasicGraphicEffect {States{Spawn: TNT1 A 0 A_Recoil(0) TANG G 1 A_Recoil(0) TANG G 0 A_SetScale(scaleX-0.2) TANG G 1 A_FadeOut(0.2) TANG G 0 A_SetScale(scaleX-0.2) TANG G 1 A_FadeOut(0.2) TANG G 0 A_SetScale(scaleX-0.2) TANG G 1 A_FadeOut(0.2) TANG G 0 A_SetScale(scaleX-0.2) TANG G 1 A_FadeOut(0.2) TANG G 0 A_SetScale(scaleX-0.2) TANG G 1 A_FadeOut(0.2) stop } }

actor TangoDeath
{
PROJECTILE
+RIPPER
Damagetype "Tango"
+DONTBLAST
+BLOODLESSIMPACT
+CLIENTSIDEONLY
scale 2.5
Damage 0
Speed 30
Radius 4
reactiontime 35
Height 60
States
{
Spawn:
TANG JI 2
TANG H 0 ThrustThingZ(0, 40, 0, 1)
TANG H 1 A_CountDown
Goto Spawn+3
Death:
TANG H 0
stop
}
}