actor BusterRodGBombFlierAssist : BasicProjectile
{
height 4
radius 24
scale 2.5
/*+FORCEYBILLBOARD
+NOGRAVITY
-SHOOTABLE
+THRUGHOST
+CANPASS
+NOBLOCKMONST
+DONTBLAST
+DONTREFLECT
+MISSILE
+NODAMAGE
+INVULNERABLE
+NOTAUTOAIMED
species "MovingPlatform"
+THRUSPECIES*/
+THRUGHOST
+RIPPER
+NOCLIP
+DONTBLAST
+BRIGHT
var int user_playerRiding[64];
mass 99999999
//ReactionTime 50
var int user_countdown;
maxstepheight 0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
BFLI A 0 A_Stop
Waiting:
BFLI A 1 A_JumpIfCloser(36,"MoveStart")
BFLI A 0 A_JumpIfInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")
BFLI A 1 A_JumpIfCloser(36,"MoveStart")
BFLI A 0 A_JumpIfInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")
BFLI A 1 A_JumpIfCloser(36,"MoveStart")
BFLI A 0 A_JumpIfInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")
BFLI A 1 A_JumpIfCloser(36,"MoveStart")
BFLI A 0 A_JumpIfInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")

BFLI B 1 A_JumpIfCloser(36,"MoveStart")
BFLI B 0 A_JumpIfInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")
BFLI B 1 A_JumpIfCloser(36,"MoveStart")
BFLI B 0 A_JumpIfInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")
BFLI B 1 A_JumpIfCloser(36,"MoveStart")
BFLI B 0 A_JumpIFInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")
BFLI B 1 A_JumpIfCloser(36,"MoveStart")
BFLI B 0 A_JumpIFInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")

BFLI C 1 A_JumpIfCloser(36,"MoveStart")
BFLI C 0 A_JumpIfInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")
BFLI C 1 A_JumpIfCloser(36,"MoveStart")
BFLI C 0 A_JumpIfInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")
BFLI C 1 A_JumpIfCloser(36,"MoveStart")
BFLI C 0 A_JumpIfInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")
BFLI C 1 A_JumpIfCloser(36,"MoveStart")
BFLI C 0 A_JumpIfInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")

BFLI D 1 A_JumpIfCloser(36,"MoveStart")
BFLI D 0 A_JumpIfInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")
BFLI D 1 A_JumpIfCloser(36,"MoveStart")
BFLI D 0 A_JumpIfInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")
BFLI D 1 A_JumpIfCloser(36,"MoveStart")
BFLI D 0 A_JumpIfInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")
BFLI D 1 A_JumpIfCloser(36,"MoveStart")
BFLI D 0 A_JumpIfInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")

BFLI D 0 A_SetUserVar("user_countdown", user_countdown + 1)
BFLI D 0 A_JumpIf(user_countdown == 13, "Death")
loop
MoveStart:
TNT1 A 0 A_PlaySoundEx("weapon/gyroalt","Body")
TNT1 A 0 A_GiveToTarget("BombFlierCounter",108)
TNT1 A 1 A_GiveToTarget("BombFlierActivate",1)
stop

Death:
BFLI D 0 A_TakeInventory("BRGAssist",1,0)
BFLI D 0 A_GiveToTarget("TargetMarker", 1)
BFLI D 2 ACS_ExecuteAlways(989, 0, ACS_ExecuteWithResult(257)+100, 32)//ACS_NamedExecuteAlways("core_aimattargetcursor", 0, CallACS("core_gettarget")+PLN_TARGETPOINT_OFFSET, 0)
TNT1 A 0
TNT1 A 0 A_ChangeVelocity(Cos(pitch)*40, 0, -sin(pitch)*40,CVF_RELATIVE)
TNT1 A 0 A_SpawnItemEx("BRGBombFlier", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
//A_SpawnItemEx("BRGBombFlier",0,0,0,Cos(pitch)*30, 0, -sin(pitch)*30,0,SXF_RELATIVE)//A_CustomMissile("BRGBombFlier",32,0,0,2,-pitch)//A_SpawnItemEx("BRGBombFlier",0,0,0,cos(pitch)*45,0,-sin(pitch)*30)//A_SpawnItemEx("BRGBombFlier",0,0,0,30)
TNT1 A 1
stop
}
}

actor BombFlierTeleport
{
Translation "192:192=8:8", "198:198=4:4"
+MISSILE
+THRUACTORS
+NOGRAVITY
+NOINTERACTION
+DONTREFLECT
Scale 2.5
ReactionTime 10
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
TFOG A 6
Idle:
TFOG A 1 A_CheckFloor("Death")
TFOG A 0 A_Countdown
loop

Death:
//spawn capsule
TNT1 A 0 A_Stop
TFOG B 4
TFOG C 4 A_SpawnItemEx("BusterRodGBombFlierAssist", 0, 0, 32, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
stop
}
}



actor BombFlierActivate : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
+AUTOACTIVATE
states
{
Pickup:
TNT1 A 0 A_SpawnItemEx("BombFlierWarper")
TNT1 A 0 ACS_NamedExecuteAlways("core_rushjetflight",0)
stop
}
}

actor BombFlierCounter : Inventory
{
inventory.amount 1
inventory.maxamount 108
}

actor BombFlierWarper
{
-SOLID
+NOGRAVITY
+NOINTERACTION
+MISSILE
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
loopit:
BFLI AABB 1 A_Warp(AAPTR_TARGET, 0,0,0,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
TNT1 A 0 A_JumpIFInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
BFLI D 0 A_TakeInventory("BombFlierCounter", 1, 0, AAPTR_TARGET)
BFLI CCDD 1 A_Warp(AAPTR_TARGET, 0,0,0,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
TNT1 A 0 A_JumpIFInTargetInventory("GutsManThrowBlockTrigger", 1, "Death")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
BFLI D 0 A_TakeInventory("BombFlierCounter", 1, 0, AAPTR_TARGET)
BFLI D 0 A_JumpIFInTargetInventory("BombFlierCounter", 1, "loopit")
BFLI D 0 A_Jump(256,"Death")
loop
Death:
TNT1 A 0 A_TakeFromTarget("BRGAssist",1)
TNT1 A 0 A_TakeFromTarget("BombFlierCounter",999)
TNT1 A 0 A_GiveToTarget("BombFlierHandler")
TNT1 A 0 A_GiveToTarget("FlyDeactivate",1)
stop
}
}

actor BombFlierTeleportStart : AssistTPStart
{
States
{
Death:
TNT1 A 0 A_SpawnItemEx("BombFlierTeleport", 0, 0, 0, 0, 0, -16)
stop
}
}

actor BombFlierHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_FireCustomMissile("BRGBombFlier")
stop
}
}

actor BRGBombFlier
{
PROJECTILE
Obituary "$OB_BOMBFLY"
Speed 40
Radius 16
Height 16
Damage (2)
Scale 2.5

states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("BombFlierFX",random(8,24),0,random(-16,16),7,0,random(-5,5),random(0,359))
loopit:
BFLI EF 2
loop

Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_PlaySoundEx("weapon/drillexplode", "Auto")
TNT1 A 0 A_Explode(16, 120, 0, 0, 60)
TNT1 A 2 A_SpawnItemEx("ParocketExplosionFX", 0, 0, height/2,0,0,0,0,1)
stop
}
}

actor BombFlierFX : BasicClientSide
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
BFLI G 5
BFLI H 3 A_Stop
stop
}
} 