actor NovaBeamWepC : BaseMM8BDMWep
{
dropitem "NovaBeamWepCDropped"
Weapon.AmmoUse 28
Weapon.AmmoGive 28
Weapon.SlotNumber 2
Inventory.Pickupmessage "$PU_NOVABEAMC"
Obituary "$OB_NOVABEAMC"
Tag "Nova Beam"
weapon.ammotype "NovaBeamAmmo"
inventory.icon "SunLaser"
States
{
Spawn:
SLZR I 1
loop
Ready:
SLZH A 0 ACS_ExecuteAlways(998,0,DYE_NOVABEAM)
SLZH A 1 A_WeaponReady
Goto Ready+1
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
SLZH A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
SLZH A 1 A_Raise
Loop
Fire:
SLZH A 0 A_JumpIfInventory("NovaBeamAmmo",28,"Fire2")
goto NoAmmo
Fire2:
SLZH B 0 SetPlayerProperty(0,1,0)
SLZH B 0 SetPlayerProperty(0,1,3)
HUST A 0 A_PlaySound("misc/sunstarbeamcharge",CHAN_WEAPON,1,0,0.7)
SLZH A 2 Offset(4,0)
SLZH A 2 Offset(-4,0)
SLZH A 2 Offset(4,0)
//HUST A 0 A_PlaySound("weapon/MMV_Charge",CHAN_WEAPON,1,0,0.7)
SLZH A 2 Offset(4,0)
SLZH A 2 Offset(-4,0)
SLZH A 2 Offset(4,0)
//HUST A 0 A_PlaySound("weapon/MMV_Charge",CHAN_WEAPON,1,0,0.7)
SLZH A 2 Offset(4,0)
SLZH A 2 Offset(-4,0)
SLZH A 2 Offset(4,0)
//HUST A 0 A_PlaySound("weapon/MMV_Charge",CHAN_WEAPON,1,0,0.7)
SLZH C 2 Offset(4,0)
SLZH C 2 Offset(-4,0)
SLZH C 2 Offset(4,0)
//HUST A 0 A_PlaySound("weapon/MMV_Charge",CHAN_WEAPON,1,0,0.7)
SLZH C 2 Offset(4,0)
SLZH C 2 Offset(-4,0)
SLZH C 2 Offset(4,0)
//HUST A 0 A_PlaySound("weapon/MMV_Charge",CHAN_WEAPON,1,0,0.7)
SLZH C 2 Offset(4,0)
SLZH C 2 Offset(-4,0)
SLZH C 2 Offset(4,0)
//HUST A 0 A_PlaySound("weapon/MMV_Charge",CHAN_WEAPON,1,0,0.7)
SLZH B 2 Offset(4,0)
SLZH B 2 Offset(-4,0)
SLZH B 2 Offset(4,0)
//HUST A 0 A_PlaySound("weapon/MMV_Charge",CHAN_WEAPON,1,0,0.7)
SLZH B 2 Offset(4,0)
SLZH B 2 Offset(-4,0)
SLZH B 2 Offset(4,0)
//HUST A 0 A_PlaySound("weapon/MMV_Charge",CHAN_WEAPON,1,0,0.7)
SLZH B 2 Offset(4,0)
SLZH B 2 Offset(-4,0)
SLZH B 2 Offset(4,0)
//HUST A 0 A_PlaySound("weapon/MMV_Charge",CHAN_WEAPON,1,0,0.7)
SLZH B 2 Offset(4,0)
SLZH B 2 Offset(-4,0)
SLZH B 2 Offset(4,0)
//HUST A 0 A_PlaySound("weapon/MMV_Charge",CHAN_WEAPON,1,0,0.7)
SLZH B 2 Offset(4,0)
SLZH B 2 Offset(-4,0)
SLZH B 2 Offset(4,0)
//HUST A 0 A_PlaySound("weapon/MMV_Charge",CHAN_WEAPON,1,0,0.7)
SLZH B 2 Offset(4,0)
SLZH B 2 Offset(-4,0)
SLZH B 2 Offset(4,0)
//HUST A 0 A_PlaySound("weapon/MMV_Charge",CHAN_WEAPON,1,0,0.7)
SLZH B 2 Offset(4,0)
SLZH B 2 Offset(-4,0)
SLZH B 2 Offset(4,0)
TNT1 A 0 A_PlaySound("misc/sunstarbeamloop",CHAN_WEAPON,1,0,0.9)
SLZH B 0 SetPlayerProperty(0,1,4)
TNT1 A 0 A_WeaponReady(14)
TNT1 A 0 A_Quake(4, 20, 0, 10, 0)
TNT1 A 0 A_TakeInventory("NovaBeamAmmo",28)
SLZH B 1 A_SpawnItemEx("NovaBeamCSpawn", 82, 4, 14)
SLZH B 1 A_SpawnItemEx("NovaBeamDSpawn", 82, 4, 14)
TNT1 A 0 A_PlaySound("misc/sunstarbeamloop",CHAN_WEAPON,1,0,0.9)
SLZH B 1 A_SpawnItemEx("NovaBeamCSpawn", 82, 4, 14)
SLZH B 1 A_SpawnItemEx("NovaBeamDSpawn", 82, 4, 14)
TNT1 A 0 A_PlaySound("misc/sunstarbeamloop",CHAN_WEAPON,1,0,0.9)
SLZH B 1 A_SpawnItemEx("NovaBeamCSpawn", 82, 4, 14)
SLZH B 1 A_SpawnItemEx("NovaBeamDSpawn", 82, 4, 14)
TNT1 A 0 A_PlaySound("misc/sunstarbeamloop",CHAN_WEAPON,1,0,0.9)
SLZH B 1 A_SpawnItemEx("NovaBeamCSpawn", 82, 4, 14)
SLZH B 1 A_SpawnItemEx("NovaBeamDSpawn", 82, 4, 14)
TNT1 A 0 A_PlaySound("misc/sunstarbeamloop",CHAN_WEAPON,1,0,0.9)
SLZH B 1 A_SpawnItemEx("NovaBeamCSpawn", 82, 4, 14)
SLZH B 1 A_SpawnItemEx("NovaBeamDSpawn", 82, 4, 14)
TNT1 A 0 A_PlaySound("misc/sunstarbeam",CHAN_WEAPON,1,0,0.9)
TNT1 A 0 A_SpawnItemEx("NovaBeamCEndFXSpawn", 0, 4, 14,0,0,0,0,1) 
SLZH C 21 A_Stop
SLZH B 0 SetPlayerProperty(0,0,0)
SLZH B 0 SetPlayerProperty(0,0,4)
SLZH B 0 SetPlayerProperty(0,0,3)
goto Ready+1
NoAmmo:
SLZH A 1 ACS_Execute(979,0)
Goto Ready+1
ReadyC:
Goto Ready+1
}
}

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

actor NovaBeamCSpawn
{
PROJECTILE
+CLIENTSIDEONLY
+MISSILE
+NOCLIP
height 8
radius 8
scale 1.5
alpha 0.75
renderstyle add
states
{
Spawn:
S_UN M 0
//S_UN M 0 A_SpawnItemEx("SaturnQuazarBeamWallHitFX",0,0,0,1000)
//S_UN M 0 A_SpawnItemEx("NovaBeamCDamager", 32,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_TRANSFERTRANSLATION)
S_UN M 0 A_SpawnItemEx("NovaBeamC", 10,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_TRANSFERTRANSLATION)
S_UN MN 1
stop
Death:
TNT1 A 0
stop
}
}

actor NovaBeamC : NovaBeamCSpawn
{
states
{
Spawn:
S_UN M 0
S_UN M 0 A_JumpIfCloser(2000, "Appear")
goto Death
Appear:
S_UN M 0 A_SpawnItemEx("NovaBeamC", 10,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_TRANSFERTRANSLATION)
S_UN OP 1
stop
Death:
S_UN O 0 //A_ChangeVelocity(5)
S_UN O 1 A_Fadeout(0.1)
S_UN P 1 //A_SetScale(scaleX+0.1)
loop
}
}

actor NovaBeamCEndFXSpawn : NovaBeamCSpawn
{
renderstyle none
+CLIENTSIDEONLY
states
{
Spawn:
S_UN M 0
S_UN M 0 A_JumpIfCloser(2000, "Appear")
stop
Appear:
S_UN MM 0 A_SpawnItemEx("NovaBeamCEndFX", 0, random(-48, 48), random(-48, 52), random(5, 10), 0, 0, 0, SXF_TRANSFERPOINTERS|SXF_TRANSFERTRANSLATION, 128)
S_UN M 0 A_SpawnItemEx("NovaBeamCEndFXSpawn", 10,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_TRANSFERTRANSLATION)
S_UN OP 1
stop
}
}

actor NovaBeamCEndFX
{
+NOINTERACTION
-SOLID
+MISSILE
+CLIENTSIDEONLY
scale 1.5
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(128, 3)
S_UN JIHGFE 3 A_FadeOut(0.02)
stop
}
}


//Not-Mega: Beef

actor NovaBeamDSpawn
{
PROJECTILE 
+SERVERSIDEONLY
+MISSILE
+NOCLIP
height 8
radius 8
scale 1.5
alpha 0.75
renderstyle add
states
{
Spawn:
S_UN M 0
//S_UN M 0 A_SpawnItemEx("SaturnQuazarBeamWallHitFX",0,0,0,1000)
//S_UN M 0 A_SpawnItemEx("NovaBeamCDamager", 32,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_TRANSFERTRANSLATION)
S_UN M 0 A_SpawnItemEx("NovaBeamD", 10,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_TRANSFERTRANSLATION)
S_UN MN 1
stop
Death:
TNT1 A 0
stop
}
}

actor NovaBeamD : NovaBeamDSpawn
{
states
{
Spawn:
S_UN M 0
S_UN M 0 A_JumpIfCloser(2000, "Appear")
goto Death
Appear:
S_UN M 0 A_SpawnItemEx("NovaBeamCDamager", 32,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_TRANSFERTRANSLATION)
S_UN M 0 A_SpawnItemEx("NovaBeamD", 10,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_TRANSFERTRANSLATION)
S_UN OP 1
stop
Death:
S_UN O 0 //A_ChangeVelocity(5)
S_UN O 1 A_Fadeout(0.1)
S_UN P 1 //A_SetScale(scaleX+0.1)
loop
}
}


actor NovaBeamCDamager
{
+SERVERSIDEONLY
PROJECTILE
+RIPPER 
+THRUGHOST
+THRUACTORS
Damage (0)
Height 40
Radius 18
Obituary "$OB_NOVABEAMC"
damagetype "ClassPainSemi2"
renderstyle none
states
{
Spawn:
S_UN M 0
S_UN M 0 A_JumpIfCloser(2000, "Appear")
goto Death
Appear:
S_UN M 0 A_SpawnItemEx("NovaBeamCDamager", 32,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_TRANSFERTRANSLATION)
S_UN M 1 A_Explode(1, 40, 0, 0, 40)
S_UN N 1 //A_Explode(2, 40, 0, 0, 40)
stop
Death:
TNT1 A 0
stop
}
}

/*actor SunBeam
{
Translation "192:192=228:228", "198:198=62:62"
PROJECTILE
+NOGRAVITY
+FORCEXYBILLBOARD
+THRUACTORS
Obituary "$OB_NOVABEAMC"
speed 55
Radius 10
Height 10
damage (0)
damagetype "ClassPainSemi2"
scale 6
States
{
Spawn:
TNT1 A 1
SpawnLOOP:
TNT1 A 0
SLZR AB 2 A_Explode(4,88,0,0,88)
Goto SpawnLOOP
}
}*/

actor NovaBeamWepCDropped : WepCDropped
{
inventory.pickupmessage "$PU_NOVABEAMC"
States
{
Spawn:
SLZR I 1500
stop
Pickup1:
TNT1 A 0 A_JumpIfInventory("NovaBeamAmmo",0,"No")
goto Pickup2
Pickup3:
TNT1 A 0 A_GiveInventory("NovaBeamWepC",1)
stop
Rock_P:goto Rock_P5
}
}
