actor Brightman : VCBaseClass
{
Player.ScoreIcon "BRIGMUGS"
player.startitem "BaseFlagPack", 1
player.displayname "Brightman"
player.soundclass "brightmanc"
player.viewheight 47
player.startitem "NormalArmor"
player.startitem "FlashStopperBoss"
player.startitem "Base28Ammo",28
player.startitem "UltimateAttackItem3"
player.startitem "UltSoundWatcherSpawn4"
player.startitem "IsFromMM4"
States
{
Spawn:
BRIG A 0
BRIG B 1
BRIG A 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG A 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2
See:
BRIG B 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG B 1 A_JumpIf(z-floorz>0, "Jumping")
BRIG B 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG B 1 A_JumpIf(z-floorz>0, "Jumping")
BRIG B 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG B 1 A_JumpIf(z-floorz>0, "Jumping")
BRIG B 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG B 1 A_JumpIf(z-floorz>0, "Jumping")
BRIG B 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG B 1 A_JumpIf(z-floorz>0, "Jumping")

BRIG C 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG C 1 A_JumpIf(z-floorz>0, "Jumping")
BRIG C 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG C 1 A_JumpIf(z-floorz>0, "Jumping")
BRIG C 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG C 1 A_JumpIf(z-floorz>0, "Jumping")
BRIG C 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG C 1 A_JumpIf(z-floorz>0, "Jumping")
BRIG C 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG C 1 A_JumpIf(z-floorz>0, "Jumping")

BRIG D 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG D 1 A_JumpIf(z-floorz>0, "Jumping")
BRIG D 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG D 1 A_JumpIf(z-floorz>0, "Jumping")
BRIG D 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG D 1 A_JumpIf(z-floorz>0, "Jumping")
BRIG D 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG D 1 A_JumpIf(z-floorz>0, "Jumping")
BRIG D 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG D 1 A_JumpIf(z-floorz>0, "Jumping")

BRIG E 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG E 1 A_JumpIf(z-floorz>0, "Jumping")
BRIG E 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG E 1 A_JumpIf(z-floorz>0, "Jumping")
BRIG E 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG E 1 A_JumpIf(z-floorz>0, "Jumping")
BRIG E 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG E 1 A_JumpIf(z-floorz>0, "Jumping")
BRIG E 0 A_JumpIfInventory("BrightFireworkAnim",1,"Missile")
BRIG E 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+1

Missile:
BRIG FFFFF 1 A_JumpIf(z-floorz>0, "JumpShoot")
Missile2:
BRIG GGGG 1 A_JumpIf(z-floorz>0, "Landing")
Goto Spawn+2
Jumping:
BRIG L 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,0,momx,momy,momz)
BRIG L 0 A_JumpIfInventory("BrightFireworkAnim",1,"JumpShoot")
BRIG L 1 A_JumpIf(z-floorz<=0, "Landing")
loop
JumpShoot:
BRIG M 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,0,momx,momy,momz)
BRIG M 1 A_JumpIf(z-floorz<=0, "Landing")
BRIG M 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,0,16,momx,momy,momz)
BRIG M 1 A_JumpIf(z-floorz<=0, "Landing")
BRIG M 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,16,momx,momy,momz)
BRIG M 1 A_JumpIf(z-floorz<=0, "Landing")
BRIG M 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,0,momx,momy,momz)
BRIG M 1 A_JumpIf(z-floorz<=0, "Landing")
BRIG M 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,0,momx,momy,momz)
BRIG M 1 A_JumpIf(z-floorz<=0, "Landing")
JumpShoot2:
BRIG M 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,0,momx,momy,momz)
BRIG M 1 A_JumpIf(z-floorz<=0, "Landing")
BRIG M 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,0,momx,momy,momz)
BRIG M 1 A_JumpIf(z-floorz<=0, "Landing")
BRIG M 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,0,momx,momy,momz)
BRIG M 1 A_JumpIf(z-floorz<=0, "Landing")
BRIG M 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,0,momx,momy,momz)
BRIG M 1 A_JumpIf(z-floorz<=0, "Landing")
goto Jumping
Landing:
BRIG A 0 A_SpawnItemEx("LandingFX")
goto Spawn
Animation1:
BRI1 A 3
BRI1 B 6
goto Spawn
Animation2:
BRIG NNNNNNN 1 A_JumpIf(z-floorz>0, "JumpingA2")
goto Spawn+2
JumpingA2:
BRIG O 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,0,momx,momy,momz)
BRIG O 1 A_JumpIf(z-floorz<=0, "Landing")
BRIG O 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,0,momx,momy,momz)
BRIG O 1 A_JumpIf(z-floorz<=0, "Landing")
BRIG O 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,0,momx,momy,momz)
BRIG O 1 A_JumpIf(z-floorz<=0, "Landing")
BRIG O 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,0,momx,momy,momz)
BRIG O 1 A_JumpIf(z-floorz<=0, "Landing")
BRIG O 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,0,momx,momy,momz)
BRIG O 1 A_JumpIf(z-floorz<=0, "Landing")
BRIG O 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,0,momx,momy,momz)
BRIG O 1 A_JumpIf(z-floorz<=0, "Landing")
BRIG O 0 A_SpawnItemEx("BrightmanJumpHitbox",0,0,0,momx,momy,momz)
BRIG O 1 A_JumpIf(z-floorz<=0, "Landing")
goto Jumping
ClassPain:
BRIG HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1
ClassDeath:
BRIG H 20 ACS_ExecuteAlways(999,0,0)
BRIG H 0 A_PlayerScream
PLY1 H 0 A_SpawnItemEx("FakeDeathFX", 0, 0, 32)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
CUTM H 0 A_JumpIfInTargetInventory("FlashStopperWepM",1,2)
CUTM H 0 A_GiveToTarget("WeaponGetter")
CUTM H 0 A_GiveToTarget("FlashStopperWepM")
goto ClassDeath
}
}

actor FlashStopperBoss : VCBaseWeapon
{
Weapon.AmmoUse 1
Weapon.Ammotype "Base28Ammo"
Obituary "$OB_BRIGHTMAN1"
States
{
Ready:
TNT1 A 0
FSTB A 1 A_WeaponReady FSTB A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
FSTB A 1 A_WeaponReady FSTB A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
FSTB A 1 A_WeaponReady FSTB A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
FSTB C 0 A_GiveInventory("Base28Ammo",1)
Goto Ready

Select:
FSTB A 0
FSTB A 0 ACS_ExecuteAlways(991,0,780)
FSTB A 10 A_WeaponReady(14)
goto Ready

Deselect:
TNT1 A 0 A_GunFlash("NoFlash")
DeselectX:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
FSTB A 1 A_Lower
Loop

Fire:
FSTB A 0 A_PlaySoundEx("weapon/brightbuster","Weapon")
FSTB A 0 A_FireCustomMissile("BrightManBuster",frandom(-2,2),0,8,8)
FSTB C 0 A_GiveInventory("Base28Ammo",1)
FSTB BBC 1
FSTB C 0 A_GiveInventory("Base28Ammo",1)
FSTB CCC 1
FSTB C 0 A_GiveInventory("Base28Ammo",1)
FSTB CCD 1
FSTB C 0 A_GiveInventory("Base28Ammo",1)
FSTB DAA 1
FSTB A 0 A_Refire
goto Ready

Altfire:
RATU A 0 A_JumpIfInventory("NoAltfire",1,"NoAmmo")
Althold:
FSTB A 0 A_JumpIfInventory("Base28Ammo",28,1)
Goto Altfire.Uncharged
TNT1 A 0 A_GunFlash
TOAD A 0 A_GiveInventory("ToadChargeDamageGive")
FSTB A 1 Offset(0,49)
Charge2:
FSTB A 0 A_JumpIfInventory("WeaponCharge",35,"FullyCharge2")
FSTB A 0 A_JumpIfInventory("WeaponCharge",19,"ChargeWait")
FSTB A 1 A_GiveInventory("WeaponCharge",1)
FSTB A 0 A_ReFire("Charge2")
Goto Altfire.Uncharged
ChargeWait:
FSTB A 1 Offset(0,52)
ChargeWait2:
FSTB A 0 A_JumpIfInventory("WeaponCharge",35,"FullyCharge2")
FSTB A 2 A_GiveInventory("WeaponCharge",1)
FSTB A 0 A_ReFire("ChargeWait2")
Goto Altfire.Uncharged
FullyCharge2:
FSTB A 0 A_JumpIfInventory("Base28Ammo",28,1)
Goto Altfire.UnchargedCheck
FSTB F 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
FullyCharge3:
FSTB G 1
FSTB A 0 A_ReFire("FullyCharge3")
Goto Altfire.Charged
Altfire.UnchargedCheck:
TNT1 A 0 A_JumpIfInventory("Base28Ammo",5,"Altfire.Uncharged")
goto NoAmmo
Altfire.UnCharged:
TNT1 A 0 A_JumpIfInventory("Base28Ammo",5,1)
Goto NoAmmo
FSTB A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
TNT1 A 0 A_TakeInventory("WeaponCharge",9999)
SKUG A 0 A_TakeInventory("Base28Ammo",5)
FSTB A 0 A_PlaySoundEx("weapon/throwitem2","Weapon")
TOAD A 0 A_GiveInventory("ToadChargeDamageTake")
FSTB A 0 A_FireCustomMissile("BrightManGrenade",0,0,8,8)
FSTB E 2 ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 8
FSTB KL 2
FSTB A 8
FSTB A 0 A_Refire("Altfire.UnCharged") //34
goto Ready
Altfire.Charged:
TNT1 A 0 A_TakeInventory("WeaponCharge",9999)
TNT1 A 0 ACS_ExecuteAlways(991,0,780)
TNT1 A 0 A_JumpIfInventory("Base28Ammo",28,1)
goto Ready
FSTB A 0 A_GiveInventory("BrightFireworkAnim")
TOAD A 0 A_GiveInventory("ToadChargeDamageTake")
FSTB A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
SKUG A 0 A_TakeInventory("Base28Ammo",28)
FSTB A 0 A_PlaySoundEx("classes/sparkfx","Weapon")
FSTB H 1 A_FireCustomMissile("BrightManFirework3",0,0,1,8)
FSTB IIHGGF 2
FSTB A 6 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) //20
goto Ready

Flash:
TNT1 A 0 A_PlaySoundEx("weapon/brightcharge","Weapon")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",19,"Flash2")
TNT1 A 18
TNT1 A 0 A_JumpIfInventory("WeaponCharge",19,"Flash2")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,"Flash")
stop
Flash2:
TNT1 A 0 A_PlaySoundEx("weapon/brightcharge2","Weapon")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",35,"Flash3")
TNT1 A 18
TNT1 A 0 A_JumpIfInventory("WeaponCharge",35,"Flash3")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,"Flash2")
stop
Flash3:
TNT1 A 0 A_PlaySoundEx("weapon/brightcharge3","Weapon")
TNT1 A 0 ACS_ExecuteAlways(971,0,10856)
TNT1 A 6
TNT1 A 0 ACS_ExecuteAlways(991,0,780)
TNT1 A 2
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,"Flash3")
stop

UltimateAttack:
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,30)
TNT1 A 0 A_TakeInventory("UltAttackFlag",9)
TNT1 A 0 A_TakeInventory("MediumUltimateAmmo",999)
TNT1 A 0 A_GiveInventory("UltBuildCooldownGiver",1)
CUTA A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
FSTB A 1 ACS_NamedExecuteWithResult("VC_SetState",1)
FSTB A 2 Offset(12,49)
FSTB A 2 Offset(24,52)
TNT1 A 0 A_FireCustomMissile("BrightmanUltRadiusLarge",0,0,0,0)
TNT1 A 0 A_SpawnItemEx("BrightUltFX",0,0,100)
TNT1 A 0 A_PlaySoundEx("classes/sparkfx","Weapon")
TNT1 A 0 A_PlaySoundEx("weapon/sparkshock","SoundSlot2")
TNT1 A 0 A_FireCustomMissile("BrightmanUltRadiusSmall",0,0,0,0)
TNT1 A 0 A_GiveInventory("BrightmanUltCooldown_P",1)
FSTB A 2 Offset(42,62)
FSTB A 4
FSTB A 2 Offset(24,52)
FSTB A 1 Offset(12,49)
FSTB A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
FSTB A 25
TNT1 A 0 A_TakeInventory("UltBuildCooldownGiver",9)
Goto Ready

NoAmmo:
FSTB A 3 A_GiveInventory("Base28Ammo",1)
goto Ready
}
}

actor BrightManGrenade
{
PROJECTILE
-NOGRAVITY
gravity 1.5
Obituary "$OB_BRIGHTMAN2"
Damage (6)
Speed 45
Radius 10
DamageType "BrightMan"
Scale 3.0
Height 13
var int user_theZspd;
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
//BRGN A 0 A_PlaySoundEX("weapon/flashstopperstart","Body")
BRGN A 0 ThrustThingZ(0,35,0,1)
loopit:
BRGN AB 3
loop
XDeath:
Crash:
TNT1 A 0
TNT1 A 0 A_Stop
TNT1 A 0 A_Explode(14, 96, 0, 0, 12)
NAPA A 0 A_PlaySoundEx("weapon/napalm","Auto")
TNT1 A 2 A_SpawnItem("DrillExplode")
TNT1 A 1
stop
Death:
TNT1 A 0
TNT1 A 0 A_Stop
TNT1 A 0 A_Explode(14, 96, 0, 0, 12)
NAPA A 0 A_PlaySoundEx("weapon/napalm","Auto")
TNT1 A 2 A_SpawnItem("DrillExplode")
TNT1 A 0 A_CheckCeiling("Death.Ceiling")
TNT1 A 1
goto Death.Floor
Death.Ceiling:
TNT1 A 0 A_SetUserVar("user_theZspd",-10)

TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,8,0,user_theZspd,15)

TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,8,0,user_theZspd,45)

TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,8,0,user_theZspd,75)

TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,8,0,user_theZspd,105)

TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,8,0,user_theZspd,135)

TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,8,0,user_theZspd,165)

TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,8,0,user_theZspd,195)

TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,8,0,user_theZspd,225)

TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,8,0,user_theZspd,255)

TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,8,0,user_theZspd,285)

TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,8,0,user_theZspd,315)

TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,8,0,user_theZspd,345)

TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,8,0,user_theZspd,385)

TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,8,0,user_theZspd,415)

TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,8,0,user_theZspd,445)

Death.Floor:
TNT1 A 1
TNT1 A 0 A_Stop
TNT1 A 0 A_SpawnItemEx("BrightManFirework2",0,0,9,0,0,12)
NAPA A 0 A_PlaySoundEx("weapon/junkshield","Voice")
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,15)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,30)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,45)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,60)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,75)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,90)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,105)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,120)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,135)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,150)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,165)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,180)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,195)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,210)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,225)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,240)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,255)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,270)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,285)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,300)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,315)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,330)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,345)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,360)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,385)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,400)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,415)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,430)
TNT1 A 0 A_SpawnItemEx("BrightManGrenadeShot",0,0,9 + user_theZspd,frandom(19,22),0,user_theZspd,445)
stop
}
}

actor BrightManGrenadeShot
{
var int user_dmg;
Obituary "$OB_BRIGHTMAN2"
PROJECTILE
//+LOOKALLAROUND
+NOGRAVITY
Gravity 0.9
+SKYEXPLODE
+NOEXPLODEFLOOR
//+FLOORHUGGER
-DONTBLAST
DamageType "BrightMan"
//SeeSound "weapon/mbuster"
Speed 52
Damage (2 + user_dmg)
Radius 8
Height 8
Scale 2.5
//ReactionTime 4
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
BRGN CD 2
BRGN D 2
BRGN C 0 A_SetUserVar("user_dmg",3)
BRGN C 2
//BRGN C 0 A_Countdown
Goto Spawn+4
Death:
BRGN CCDD 1 A_FadeOut(0.15)
stop
}
}

actor BrightmanUltRadiusLarge
{
+MISSILE
-SOLID
-DONTBLAST
+NOGRAVITY
+RIPPER
+SKYEXPLODE
+NOINTERACTION
+DONTSPLASH
+THRUGHOST
+THRUACTORS
+DONTREFLECT
Obituary "$OB_BRIGHTMAN3"
Damage (0) //Uses A_Explode
Radius 2
Height 2
Scale 2.5
RenderStyle "Add"
DamageType "BrightManUltLarge"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("FlashStopperFlash", 1)
TNT1 A 1 A_Explode(25,750,0,0,750)
stop
}
}

actor BrightmanUltRadiusSmall : BrightmanUltRadiusLarge
{
DamageType "BrightManUltSmall"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(12,320,0,0,320)
stop
}
}
actor BrightUltFX : BaseDecorativeActor
{
RenderStyle "Add"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
FST2 ABCD 2
FST2 EEFFGG 1 A_FadeOut(0.24)
stop
}
}

actor BrightManBuster : FastProjectile
{
Obituary "$OB_BRIGHTMAN1"
PROJECTILE
+LOOKALLAROUND
+SKYEXPLODE
-DONTBLAST
DamageType "BrightManBuster"
//SeeSound "weapon/mbuster"
Speed 54
Damage (15)
Radius 8
Height 8
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
BASB A 1
Goto Spawn+2
}
}

actor BrightManStageFirework
{
PROJECTILE
DamageType "BrightMan"
Obituary "$OB_BRIGHTMAN4"
Damage (0)
Speed 0
Height 9
Radius 9
Scale 2.5
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
TNT1 A 0 A_SpawnItemEx("BrightManFirework2",0,0,9,0,0,32)
stop
}
}

actor BrightManFirework2
{
+MISSILE
-SOLID
-DONTBLAST
+NOGRAVITY
+SKYEXPLODE
+NOINTERACTION
+DONTSPLASH
+THRUGHOST
+DONTREFLECT
DamageType "BrightMan"
Obituary "$OB_BRIGHTMAN4"
Damage (3)
Height 31
Radius 31
Speed 29
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
DOMP G 8
Death:
DOMP G 0 A_Stop
DOMP G 0 A_Explode(4,94,0)
DOMP H 0 A_PlaySoundEx("weapon/centaurflash","Voice")
DOMP H 4 A_SpawnItemEx("BrightManFireworkExp",random(-10,10),random(-10,10),10)
DOMP H 4 A_SpawnItemEx("BrightManFireworkExp",random(-10,10),random(-10,10),0)
DOMP H 4 A_SpawnItemEx("BrightManFireworkExp",random(-10,10),random(-10,10),-10)
stop
}
}
actor BrightManFirework3 : BrightManFirework2
{
-NOINTERACTION
+RIPPER
Damage (1)
speed 45
Height 8
Radius 8
DamageType "BrightManFireWorks"
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
DOMP O 6
Death:
DOMP G 0 A_ChangeFlag("NOINTERACTION",1)
DOMP G 0 A_Stop
DOMP G 0 A_Explode(5,100,0)
DOMP H 0 A_PlaySoundEx("weapon/centaurflash","Voice")
DOMP H 4 A_SpawnItemEx("BrightManFireworkExp2",random(-10,10),random(-10,10),10)
DOMP H 4 A_SpawnItemEx("BrightManFireworkExp2",random(-10,10),random(-10,10))
DOMP H 4 A_SpawnItemEx("BrightManFireworkExp2",random(-10,10),random(-10,10),-10)
stop
}
}

actor BrightManFireworkExp
{
+MISSILE
-SOLID
-DONTBLAST
+NOGRAVITY
+SKYEXPLODE
+NOINTERACTION
+DONTSPLASH
+THRUGHOST
+DONTREFLECT
DamageType "BrightMan"
Obituary "$OB_BRIGHTMAN4"
Damage (4)
Speed 0
Scale 2.5
Height 31
Radius 31
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1) TNT1 A 1
DOMP G 0 A_Explode(5,95,0)
DOMP IJKLMN 4
stop
}
}

actor BrightManFireworkExp2 : BrightManFireworkExp
{
Height 42
Radius 42
DamageType "BrightManFireWorks"
Damage (6)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
DOMP G 0 A_Explode(9,200,0)
DOMP IJKLMN 4
stop
}
}

actor BrightManUltFreezer : CustomInventory
{
+INVENTORY.AUTOACTIVATE
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("BrightUltFreezeDamage", 1, "No")
//TNT1 A 0 A_JumpIfInventory(ACS_NamedExecuteWithResult("core_getplayerteam", -1), "No")
TNT1 A 0 A_Stop
PLAY H 0 A_GiveInventory("BrightUltFreezeDamage",1)
PLAY H 0 ACS_NamedExecuteAlways("core_flyplayer",0,0,1)
PLAY H 0 ACS_NamedExecuteAlways("core_freezeplayer",0,0,1)
TNT1 A 0 A_SpawnItemEx("BrightUltStopWatcher")
stop
No:
TNT1 A 0
stop
}
}

actor BrightUltStopWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
Renderstyle none
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Warp(AAPTR_TARGET, 0.0,0.0,0.0,0.0,WARPF_NOCHECKPOSITION)
TNT1 A 0 A_SpawnItemEx("TimeStopGFX", random(8, 64), 0, random(0, 64), 0, 0, 0, random(0, 359))
TNT1 A 0 A_JumpIfInTargetInventory("BrightUltFreezeDamage", 1, "Spawn")
TNT1 A 5 A_GiveToTarget("TimeUnstopped")
stop
}
}

actor BrightUltFreezeDamage : PowerProtection
{
Powerup.Duration 175
DamageFactor "BrightmanBuster", 3.0
DamageFactor "BrightmanJump", 80.0
}

actor BrightmanUltCooldown_P : UltBuildCooldownGiver
{
Powerup.Duration 70
}

actor BrightmanJumpHitbox
{
PROJECTILE
Obituary "$OB_BRIGHTMAN5"
Radius 45
Height 45
Scale 2.5
DamageType "BrightmanJump"
Damage (1)
RenderStyle None
States
{
Spawn:
TNT1 A 1
PLAY A 1
Stop
}
}

actor BrightmanJumpProtect : PowerProtection
{
Powerup.Duration 35
DamageFactor "BrightmanJump", 0.0
}

actor BrightFireworkAnim : Powerup
{
+ADDITIVETIME
Powerup.Duration 5
}

actor LandingFX : BaseDecorativeActor
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
KNIL ABCD 2
stop
}
}

actor BrightManBlind : CustomInventory
{
    States
    {
    Pickup:
        TNT1 A 0 A_JumpIfInventory("BrightBlind", 1,4)
		TNT1 A 0 A_SpawnItemEx("FlashBlindWatcher")
		TNT1 A 0 A_GiveInventory("BrightAltFreezeDamage",1)
        TNT1 A 0 A_GiveInventory("BrightBlind",125)
        TNT1 A 0 ACS_ExecuteAlways(249, 0)
        goto End
        TNT1 A 0 A_GiveInventory("BrightBlind",55)
        goto End
    }
}

actor BrightAltFreezeDamage : PowerProtection
{
Powerup.Duration 125
DamageFactor "BrightmanJump", 20.0
}

actor BrightManReblindFX : SparkRailFX2
{
Translation "192:192=239:239"
Scale 2.5
	States
	{
	Spark:
	//ELEN NNJKILM 1 A_Jump(30,"Spark2")// A_SetScale(2.5,2.5)//A_SetAngle(angle + random(-180,180))
	ELEN NNNNLLM 1 A_Jump(30,"Spark2")
	stop
	}
}

actor BrightManReblindFXSpawner : GravityHoldFX
{
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_SetUserVar("user_angle", random(0, 6))
	SpawnLoop:
	TNT1 A 0 A_SpawnItemEx("BrightManReblindFX", 0, 0, 20, random(6, 20), 0, random(-3, 3), user_angle, SXF_ABSOLUTEANGLE|SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SetUserVar("user_angle", user_angle + 40)
	TNT1 AA 0 A_Countdown
	loop
	Death:
	TNT1 A 0
	stop
	}
}

actor BrightmanReblindProtection : powerup
{
Powerup.Duration 110
}