actor FlashBulbWep : BaseMM8BDMWep
{
dropitem "FlashBulbWepCDropped"
Weapon.AmmoUse 4
Weapon.AmmoGive 28
Weapon.SlotNumber 7
Inventory.Pickupmessage "$PU_FLASHBULB"
Obituary "$OB_FLASHBULB"
Tag "$TAG_FLASHBULB"
weapon.ammotype "FlashBulbAmmo"
inventory.icon "XTR0WI_I"
States
{
Spawn:
XWI0 I 1
loop
Ready:
XH0I A 0 ACS_ExecuteAlways(998,0,49)
XH0I A 0 A_JumpIfNoAmmo("ReadyNoAmmo")
XH0I A 1 A_WeaponReady
Goto Ready+2
ReadyNoAmmo:
XH0I B 1 A_WeaponReady
XH0I B 0 A_JumpIfNoAmmo("ReadyNoAmmo")
Goto Ready+1
Deselect:
XH0I AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
XH0I A 1 A_Lower
Loop
Select:
XH0I AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
XH0I A 1 A_Raise
Loop
Fire:
XH0I A 0 A_JumpIfNoAmmo("NoAmmo")
XH0I A 0 A_PlaySoundEx("weapon/BombThrow","Weapon")
XH0I A 0 A_FireCustomMissile("FlashBulbToss",0,1,8,0)
XH0I C 2
XH0I C 2 OffSet(-70,74)
XH0I C 2 OffSet(-121,114)
XH0I D 2 OffSet(1,31)
XH0I D 2 OffSet(-21,56)
XH0I D 2 OffSet(-33,84)
TNT1 A 20
XH0I A 0 A_JumpIfNoAmmo("FireNoAmmoEnd")
XH0I A 1 OffSet(-4,64)
XH0I A 1 OffSet(-2,48)
XH0I A 2 A_WeaponReady(14)
Goto Ready+1
FireNoAmmoEnd:
XH0I B 1 OffSet(-4,64)
XH0I B 1 OffSet(-2,48)
XH0I B 2 A_WeaponReady(14)
Goto ReadyNoAmmo
NoAmmo:
XH0I B 1 ACS_Execute(979,0)
Goto ReadyNoAmmo
}
}

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

actor FlashBulbToss
{
Translation "202:202=211:211"
PROJECTILE
damagetype "FlashBulb"
Obituary "$OB_FLASHBULB"
-NOGRAVITY
+BRIGHT
Damage (13)
Radius 20
Height 16
Speed 25
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ThrustThingZ(0,30,0,1)
TNT1 A 0 A_Jump(256,1,2,3,4,5,6,7,8)
Spawn2:
FSTB KLMN 2
loop
Spawn3:
FSTB NMLK 2
loop

Death:
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_Stop
TNT1 A 0 A_SetArg(2,(ceilingz-z<=16)*-4+(z-floorz==0)*4)
TNT1 AAAAAAA 0 A_SpawnItemEx("FlashBulbShardFX",0,0,Args[2],random(-10+abs(Args[2]),10-abs(Args[2])),random(-10+abs(Args[2]),10-abs(Args[2])),random(-2+abs(Args[2]),2+abs(Args[2])),0,1,32)
TNT1 A 0 A_SpawnItemEx("FlashBulbTossBoom",0,0,10,0,0,0,0,1)
TNT1 A 2
stop
}
}

actor FlashBulbShardFX
{
+MISSILE
+CLIENTSIDEONLY
+THRUACTORS
+DOOMBOUNCE
+RANDOMIZE
BounceFactor 0.3
WallBounceFactor 0.3
renderstyle translucent
Radius 4
Height 4
Speed 20
scale 2.5
States
{
Spawn:
FSTB O 0
FSTB O 0 A_Jump(256,1,2,3,4)
FSTB OPQRSOPQRSOPQRSOPQRSOPQRSOPQRSOPQRSOPQRSOPQRSOPQRSOPQRS 4
stop
Death:
FSTB S 0 A_Jump(256,1,2,3)
FSTB SSSSSSSSSSSS 2
FSTB SSSSS 1 A_FadeOut(0.175)
stop
}
}

actor FlashBulbTossBoom : BasicExplosion
{
damagetype "FlashBulb"
Obituary "$OB_FLASHBULB"
+FORCEXYBILLBOARD
+BRIGHT
scale 3.0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/centaurflash","Voice")
TNT1 A 1 A_Explode(13,156,0,0,32)
TNT1 A 0 ACS_NamedExecuteAlways("core_flashstopperlight",0,156)
Y_6L JKRSTUVWX 1
stop
}
}

