#custom buzz bomber
#it follows you btw

Freeslot
S_BUZB_STND1
S_BUZB_STND2
S_BUZB_FOUN
S_BUZB_FLAP1
S_BUZB_FLAP2
S_BUZB_FLAP3
S_BUZB_FLAP4
S_BUZB_FLY1
S_BUZB_FLY2
S_BUZB_FLY3
S_BUZB_FLY4
S_BUZB_CHECKRANGE
S_BUZB_FLEE1
S_BUZB_FLEE2
S_BUZB_FLEE3
S_BUZB_AIM1
S_BUZB_AIM2
S_BUZB_AIM3
S_BUZB_SHOOT
S_BUZB_SHOT1
S_BUZB_SHOT2
MT_BUZZBULLET
S_BUZZBULLET1
S_BUZZBULLET2
SPR_BUZB


Object MT_BUZZBOMBER
#$Name "BuzzBomber"
#$Sprite BUZBA2A8
#$Category Sonic 1 Badniks
MapThingNum = 3081
SpawnState = S_BUZB_STND1
SeeState = S_BUZB_FOUN
SeeSound = sfx_None
AttackSound = sfx_None
PainSound = sfx_None
PainState = S_NULL
MeleeState = S_NULL
MissileState = S_NULL
DeathState = S_XPLD_FLICKY
XDeathState = S_NULL
DeathSound = sfx_pop
ActiveSound = sfx_None
RaiseState = S_NULL
SpawnHealth = 1
ReactionTime = 0
PainChance = 200
Speed = 40
Radius = 24*FRACUNIT
Height = 38*FRACUNIT
DispOffset = 0
Mass = 100
Damage = 0
Flags = MF_ENEMY|MF_SPECIAL|MF_SHOOTABLE|MF_NOGRAVITY

State S_BUZB_STND1
SpriteName = SPR_BUZB
SpriteFrame = A
Next = S_BUZB_STND2
Action = A_Look
Duration = 6
Var1 = (2048<<16)+0
Var2 = 0

State S_BUZB_STND2
SpriteName = SPR_BUZB
SpriteFrame = B
Next = S_BUZB_STND1
Duration = 6
Action = A_Look
Var1 = (2048<<16)+0
Var2 = 0

State S_BUZB_FOUN
SpriteName = SPR_BUZB
SpriteFrame = A
Next = S_BUZB_FLY1
Duration = 2
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_BUZB_CHECKRANGE
SpriteFrame = C
SpriteName = SPR_BUZB
Duration = 1
Next = S_BUZB_CHECKRANGE
Action = A_CheckTrueRange
Var1 = (0<<16)+512
Var2 = S_BUZB_AIM1

State S_BUZB_FLAP1
SpriteName = SPR_BUZB
SpriteFrame = A
Next = S_BUZB_FLAP2
Duration = 2
Action = A_Thrust
Var1 = 30
Var2 = 1

State S_BUZB_FLAP2
SpriteName = SPR_BUZB
SpriteFrame = A
Next = S_BUZB_FLAP3
Duration = 1
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_BUZB_FLAP3
SpriteName = SPR_BUZB
SpriteFrame = B
Next = S_BUZB_FLAP4
Duration = 2
Action = A_Thrust
Var1 = 30
Var2 = 1

State S_BUZB_FLAP4
SpriteName = SPR_BUZB
SpriteFrame = B
Next = S_BUZB_FLAP1
Duration = 1
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_BUZB_FLY1
SpriteName = SPR_BUZB
SpriteFrame = A
Next = S_BUZB_FLY2
Duration = 2
Action = A_DualAction
Var1 = S_BUZB_FLAP1
Var2 = S_BUZB_CHECKRANGE

State S_BUZB_FLY2
SpriteName = SPR_BUZB
SpriteFrame = A
Next = S_BUZB_FLY3
Duration = 1
Action = A_DualAction
Var1 = S_BUZB_FLAP2
Var2 = S_BUZB_CHECKRANGE

State S_BUZB_FLY3
SpriteName = SPR_BUZB
SpriteFrame = B
Next = S_BUZB_FLY4
Duration = 2
Action = A_DualAction
Var1 = S_BUZB_FLAP3
Var2 = S_BUZB_CHECKRANGE

State S_BUZB_FLY4
SpriteName = SPR_BUZB
SpriteFrame = B
Next = S_BUZB_FLY1
Duration = 1
Action = A_DualAction
Var1 = S_BUZB_FLAP4
Var2 = S_BUZB_CHECKRANGE

State S_BUZB_AIM1
SpriteName = SPR_BUZB
SpriteFrame = D
Next = S_BUZB_AIM2
Duration = 2
Action = A_ForceStop
Var1 = 0
Var2 = 0

State S_BUZB_AIM2
SpriteName = SPR_BUZB
SpriteFrame = C
Next = S_BUZB_AIM3
Duration = 2
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_BUZB_AIM3
SpriteName = SPR_BUZB
SpriteFrame = C
Next = S_BUZB_SHOOT
Duration = 2
Action = A_Repeat
Var1 = 15
Var2 = S_BUZB_AIM1

State S_BUZB_SHOOT
SpriteName = SPR_BUZB
SpriteFrame = C
Next = S_BUZB_SHOT1
Duration = 1
Action = A_FireShot
Var1 = MT_BUZZBULLET
Var2 = -45

State S_BUZB_SHOT1
SpriteName = SPR_BUZB
SpriteFrame = C
Next = S_BUZB_SHOT2
Duration = 2
Var1 = 0
Var2 = 0

State S_BUZB_SHOT2
SpriteName = SPR_BUZB
SpriteFrame = D
Next = S_BUZB_FLEE1
Duration = 2
Action = A_Repeat
Var1 = 20
Var2 = S_BUZB_SHOT1

State S_BUZB_FLEE1
SpriteName = SPR_BUZB
SpriteFrame = A
Next = S_BUZB_FLEE2
Duration = 2
Action = A_Thrust
Var1 = 30
Var2 = 1

State S_BUZB_FLEE2
SpriteName = SPR_BUZB
SpriteFrame = B
Next = S_BUZB_FLEE3
Duration = 1
Action = A_Thrust
Var1 = 30
Var2 = 1

State S_BUZB_FLEE3
SpriteName = SPR_BUZB
SpriteFrame = B
Next = S_BUZB_FOUN
Duration = 1
Action = A_Repeat
Var1 = 15
Var2 = S_BUZB_FLEE1

#BUZZ BOMBER BULLET using jettbullet sprites because i love A_FireShot

Object MT_BUZZBULLET
SpawnState = S_BUZZBULLET1
SeeState = S_NULL
SeeSound = sfx_s3k4d
AttackSound = sfx_None
PainSound = sfx_None
PainState = S_NULL
MeleeState = S_NULL
MissileState = S_NULL
DeathState = S_XPLD1
XDeathState = S_NULL
DeathSound = sfx_None
ActiveSound = sfx_None
RaiseState = S_NULL
SpawnHealth = 1
ReactionTime = 0
PainChance = 200
Speed = 20*FRACUNIT
Radius = 4*FRACUNIT
Height = 8*FRACUNIT
DispOffset = 0
Mass = 0
Damage = 1
Flags = MF_NOBLOCKMAP|MF_NOGRAVITY|MF_MISSILE

State S_BUZZBULLET1
SpriteName = SPR_JBULLET
SpriteFrame = FF_FULLBRIGHT|A
Next = S_BUZZBULLET2
Duration = 6
Var1 = 0
Var2 = 0

State S_BUZZBULLET2
SpriteName = SPR_JBULLET
SpriteFrame = FF_FULLBRIGHT|B
Next = S_BUZZBULLET1
Duration = 6
Var1 = 0
Var2 = 0