actor Sunstar : TerminalArmorClass
{
Player.ScoreIcon "SUNSMUGS"
player.startitem "BaseFlagPack", 1
PainSound "weapon/mmvpain"
player.displayname "Sunstar"
player.soundclass "Sunstarc"
player.morphweapon "NovaWeaponBoss"
player.viewheight 63
projectilepassheight 90
player.jumpz 14
dropitem "Terminator"
States
{
Spawn:
PLAY A 0
SGOD I 0 A_JumpIfInventory("SunstarIonStormFlag2",1,"SunstarIonStorm")
SGOD I 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD I 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart")
SGOD I 1 A_JumpIf(z-floorz>0,"Jumping")
Spawn.Idle:
SGOD A 0 A_JumpIfInventory("SunstarIonStormFlag2",1,"SunstarIonStorm")
SGOD A 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD A 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart")
SGOD A 1 A_JumpIf(z-floorz>0,"Jumping")
Goto Spawn.Idle

See:
SGOD I 1 A_JumpIf(z-floorz>0,"Jumping")
SGOD I 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart") SGOD I 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD I 1 A_JumpIf(z-floorz>0,"Jumping")
SGOD I 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart") SGOD I 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD I 1 A_JumpIf(z-floorz>0,"Jumping")
SGOD I 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart") SGOD I 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD J 1 A_JumpIf(z-floorz>0,"Jumping")
SGOD J 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart") SGOD J 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD J 1 A_JumpIf(z-floorz>0,"Jumping")
SGOD J 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart") SGOD J 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD J 1 A_JumpIf(z-floorz>0,"Jumping")
SGOD J 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart") SGOD J 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD K 1 A_JumpIf(z-floorz>0,"Jumping")
SGOD K 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart") SGOD K 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD K 1 A_JumpIf(z-floorz>0,"Jumping")
SGOD K 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart") SGOD K 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD K 1 A_JumpIf(z-floorz>0,"Jumping")
SGOD K 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart") SGOD K 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD L 1 A_JumpIf(z-floorz>0,"Jumping")
SGOD L 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart") SGOD L 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD L 1 A_JumpIf(z-floorz>0,"Jumping")
SGOD L 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart") SGOD L 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD L 1 A_JumpIf(z-floorz>0,"Jumping")
SGOD L 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart") SGOD L 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
Goto Spawn+1

Jumping:
SGOD X 1 A_JumpIf(z-floorz<=0,"Spawn.Idle")
SGOD X 0 A_JumpIfInventory("SunstarIonStormFlag2",1,"SunstarIonStorm")
SGOD X 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD X 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart")
loop

Missile:
SGOD F 0 A_JumpIf(pitch>30 && pitch<=90,"LowMissile")
SGOD F 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
SGOD F 1 A_JumpIf(z-floorz>0,"JumpingMissile") SGOD F 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
SGOD F 1 A_JumpIf(z-floorz>0,"JumpingMissile") SGOD F 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
SGOD F 1 A_JumpIf(z-floorz>0,"JumpingMissile") SGOD F 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
SGOD F 1 A_JumpIf(z-floorz>0,"JumpingMissile") SGOD F 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
SGOD F 1 A_JumpIf(z-floorz>0,"JumpingMissile") SGOD F 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
Missile2:
SGOD GGGGG 1 A_JumpIf(z-floorz>0,"JumpingMissile2")
Goto Spawn.Idle

JumpingMissile:
SGOD Y 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
SGOD Y 1 A_JumpIf(z-floorz<=0,"Missile") SGOD Y 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
SGOD Y 1 A_JumpIf(z-floorz<=0,"Missile") SGOD Y 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
SGOD Y 1 A_JumpIf(z-floorz<=0,"Missile") SGOD Y 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
SGOD Y 1 A_JumpIf(z-floorz<=0,"Missile") SGOD Y 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
SGOD Y 1 A_JumpIf(z-floorz<=0,"Missile") SGOD Y 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
JumpingMissile2:
SGOD YYYYY 1 A_JumpIf(z-floorz<=0,"Missile2")
Goto Jumping

LowMissile:
S_U2 J 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
S_U2 J 1 A_JumpIf(z-floorz>0,"JumpingLowMissile") S_U2 J 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
S_U2 J 1 A_JumpIf(z-floorz>0,"JumpingLowMissile") S_U2 J 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
S_U2 J 1 A_JumpIf(z-floorz>0,"JumpingLowMissile") S_U2 J 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
S_U2 J 1 A_JumpIf(z-floorz>0,"JumpingLowMissile") S_U2 J 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
S_U2 J 1 A_JumpIf(z-floorz>0,"JumpingLowMissile") S_U2 J 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
LowMissile2:
S_U2 JJJJJ 1 A_JumpIf(z-floorz>0,"JumpingLowMissile2")
Goto Spawn.Idle

JumpingLowMissile:
SGOD Y 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
SGOD Y 1 A_JumpIf(z-floorz<=0,"LowMissile") SGOD Y 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
SGOD Y 1 A_JumpIf(z-floorz<=0,"LowMissile") SGOD Y 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
SGOD Y 1 A_JumpIf(z-floorz<=0,"LowMissile") SGOD Y 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
SGOD Y 1 A_JumpIf(z-floorz<=0,"LowMissile") SGOD Y 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
SGOD Y 1 A_JumpIf(z-floorz<=0,"LowMissile") SGOD Y 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
JumpingLowMissile2:
SGOD YYYYY 1 A_JumpIf(z-floorz<=0,"LowMissile2")
Goto Jumping

SunstarNovaBeam:
SGOD FF 1 A_JumpIf(z-floorz>0,"JumpingSunstarNovaBeam")
SGOD F 1 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam")
Goto Missile2
JumpingSunstarNovaBeam:
SGOD YY 1 A_JumpIf(z-floorz<=0,"SunstarNovaBeam")
SGOD Y 1 A_JumpIfInventory("SunstarNovaBeamFlag",1,"JumpingSunstarNovaBeam")
Goto JumpingMissile2

SunstarSolarFlareStart:
S_U2 J 1 A_JumpIf(z-floorz>0, "JumpingSunstarSolarFlareStart") S_U2 J 0 A_JumpIfInventory("SunstarSolarFlareFlag2",1,"SunstarSolarFlare")
SUGO A 1 A_JumpIf(z-floorz>0, "JumpingSunstarSolarFlareStart") SUGO A 0 A_JumpIfInventory("SunstarSolarFlareFlag2",1,"SunstarSolarFlare")
S_U2 J 1 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart")
Goto Spawn.Idle
JumpingSunstarSolarFlareStart:
SGOD Y 1 A_JumpIf(z-floorz<=0,"SunstarSolarFlareStart") SGOD Y 0 A_JumpIfInventory("SunstarSolarFlareFlag2",1,"SunstarSolarFlare")
SUGO A 1 A_JumpIf(z-floorz<=0,"SunstarSolarFlareStart") SUGO A 0 A_JumpIfInventory("SunstarSolarFlareFlag2",1,"SunstarSolarFlare")
SGOD Y 1 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"JumpingSunstarSolarFlareStart")
Goto Jumping
SunstarSolarFlare:
SUGO A 1 A_SpawnItemEx("SolarFlareAfterImageA")
SUGO B 1 A_SpawnItemEx("SolarFlareAfterImageB")
SUGO C 1 A_SpawnItemEx("SolarFlareAfterImageC")
SUGO A 1 A_JumpIfInventory("SunstarSolarFlareFlag2",1,"SunstarSolarFlare")
Goto Spawn.Idle

SunstarIonStormStart:
SGOD SS 1 A_JumpIfInventory("SunstarIonStormFlag2",1,"SunstarIonStorm")
SGOD S 1 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
Goto Spawn.Idle
SunstarIonStorm:
SGOD TTUU 1
SGOD T 1 A_JumpIfInventory("SunstarIonStormFlag2",1,"SunstarIonStorm")
Goto Spawn.Idle

ClassPain:
SGOD H 2 A_SpawnItem("PainFX",0,3)
SGOD H 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam") SGOD H 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart")
SGOD H 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD H 2 A_SpawnItem("PainFX",0,3)
SGOD H 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam") SGOD H 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart")
SGOD H 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD H 2 A_SpawnItem("PainFX",0,3)
SGOD H 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam") SGOD H 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart")
SGOD H 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD H 2 A_SpawnItem("PainFX",0,3)
SGOD H 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam") SGOD H 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart")
SGOD H 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD H 2 A_SpawnItem("PainFX",0,3)
SGOD H 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam") SGOD H 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart")
SGOD H 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD H 2 A_SpawnItem("PainFX",0,3)
SGOD H 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam") SGOD H 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart")
SGOD H 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD H 2 A_SpawnItem("PainFX",0,3)
SGOD H 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam") SGOD H 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart")
SGOD H 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD H 2 A_SpawnItem("PainFX",0,3)
SGOD H 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam") SGOD H 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart")
SGOD H 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD H 2 A_SpawnItem("PainFX",0,3)
SGOD H 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam") SGOD H 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart")
SGOD H 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
SGOD H 2 A_SpawnItem("PainFX",0,3)
SGOD H 0 A_JumpIfInventory("SunstarNovaBeamFlag",1,"SunstarNovaBeam") SGOD H 0 A_JumpIfInventory("SunstarSolarFlareFlag1",1,"SunstarSolarFlareStart")
SGOD H 0 A_JumpIfInventory("SunstarIonStormFlag1",1,"SunstarIonStormStart")
Goto Spawn+1

ClassDeath:
TNT1 A 0 
TNT1 A 0 A_SpawnItemEx("SunstarDeath",0,0,0,-20,0,0,0,1)
TNT1 A 20 ACS_ExecuteAlways(999,0,0)
NOFX A 1 A_CheckPlayerDone
wait
}
}

actor SolarisBusterAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 76
}

actor SunstarIntroStartPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SetGravity(0.0)
TNT1 A 0 A_SetTranslucent(0.0)
TNT1 A 0 SetPlayerProperty(0,1,4)
TNT1 A 0 A_GiveInventory("NoSpeed",1)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",1)
TNT1 A 0 A_ChangeFlag("NOTELEFRAG",True)
TNT1 A 0 A_GiveInventory("InvProtection",1)
TNT1 A 0 A_SpawnItemEx("SunstarCapsule",0.1,0,0,0,0,0,0)
TNT1 A 0 A_SpawnItemEx("SunstarCapsule",0.1,0,0,0,0,0,45)
TNT1 A 0 A_SpawnItemEx("SunstarCapsule",0.1,0,0,0,0,0,90)
TNT1 A 0 A_SpawnItemEx("SunstarCapsule",0.1,0,0,0,0,0,135)
TNT1 A 0 A_SpawnItemEx("SunstarCapsule",0.1,0,0,0,0,0,180)
TNT1 A 0 A_SpawnItemEx("SunstarCapsule",0.1,0,0,0,0,0,225)
TNT1 A 0 A_SpawnItemEx("SunstarCapsule",0.1,0,0,0,0,0,270)
TNT1 A 0 A_SpawnItemEx("SunstarCapsule",0.1,0,0,0,0,0,315)
stop
}
}

actor SunstarIntroFirePickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SpawnItemEx("SunstarEmergeFX")
TNT1 A 0 A_GiveInventory("SunstarIonStormFlag2",1)
TNT1 A 0 A_PlaySoundEx("weapon/sunstaremerge","Body")
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SunstarAreaFlamesSD",random(12,36),0,random(0,80),random(10,13),0,random(-2,2),random(0,359))
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SunstarAreaFlamesSD",random(12,36),0,random(0,80),random(10,13),0,random(-2,2),random(0,359))
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SunstarAreaFlamesSD",random(12,36),0,random(0,80),random(10,13),0,random(-2,2),random(0,359))
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SunstarAreaFlamesSD",random(12,36),0,random(0,80),random(10,13),0,random(-2,2),random(0,359))
stop
}
}

actor SunstarIntroEndPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 SetPlayerProperty(0,0,4)
TNT1 A 0 SetPlayerProperty(0,0,0)
TNT1 A 0 A_TakeInventory("NoPushFlag")
TNT1 A 0 A_TakeInventory("NoSpeed",999)
TNT1 A 0 A_GiveInventory("GravityRestore")
TNT1 A 0 A_TakeInventory("SunstarIonStormFlag2",1)
stop
}
}

actor SunstarIntroEnd2Pickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_ChangeFlag("NOTELEFRAG",False)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",False)
TNT1 A 0 A_TakeInventory("InvProtection",1)
stop
}
}

Actor NovaWeaponBoss : VCBaseWeapon
{
weapon.ammotype "SolarisBusterAmmo"
weapon.ammotype2 "BaseAltfireAmmo"
Obituary "$OB_SUNSTAR1"
const int SLR_FLR_SPD = 20;
States
{
Ready:
SUHA A 0
TNT1 A 35 Offset(0,132)A_GiveInventory("SunstarIntroStartPickUp",1)
SUHA A 0 A_GunFlash("SunstarStopping")
SUHA A 0 A_SetTranslucent(1.0)
SUHA A 0 ACS_ExecuteAlways(991,0,5969)
SUHA A 0 A_PlaySoundEx("weapon/sunstarcapsule","Body")
SUHA A 1 Offset(0,132)
SUHA A 1 Offset(0,131)
SUHA A 1 Offset(0,130)
SUHA A 1 Offset(0,129)
SUHA A 1 Offset(0,128)
SUHA A 1 Offset(0,127)
SUHA A 1 Offset(0,126)
SUHA A 1 Offset(0,125)
SUHA A 1 Offset(0,124)
SUHA A 1 Offset(0,123)
SUHA A 1 Offset(0,122)
SUHA A 1 Offset(0,121)
SUHA A 1 Offset(0,120)
SUHA A 1 Offset(0,119)
SUHA A 1 Offset(0,118)
SUHA A 1 Offset(0,117)
SUHA A 1 Offset(0,116)
SUHA A 1 Offset(0,115)
SUHA A 1 Offset(0,114)
SUHA A 1 Offset(0,113)
SUHA A 1 Offset(0,112)
SUHA A 1 Offset(0,111)
SUHA A 1 Offset(0,110)
SUHA A 1 Offset(0,109)
SUHA A 1 Offset(0,108)
SUHA A 1 Offset(0,107)
SUHA A 1 Offset(0,106)
SUHA A 1 Offset(0,105)
SUHA A 1 Offset(0,104)
SUHA A 1 Offset(0,103)
SUHA A 1 Offset(0,102)
SUHA A 1 Offset(0,101)
SUHA A 1 Offset(0,100)
SUHA A 1 Offset(0,99)
SUHA A 1 Offset(0,98)
SUHA A 1 Offset(0,97)
SUHA A 1 Offset(0,96)
SUHA A 1 Offset(0,95)
SUHA A 1 Offset(0,94)
SUHA A 1 Offset(0,93)
SUHA A 1 Offset(0,92)
SUHA A 1 Offset(0,91)
SUHA A 1 Offset(0,90)
SUHA A 1 Offset(0,89)
SUHA A 1 Offset(0,88)
SUHA A 1 Offset(0,87)
SUHA A 1 Offset(0,86)
SUHA A 1 Offset(0,85)
SUHA A 1 Offset(0,84)
SUHA A 1 Offset(0,83)
SUHA A 1 Offset(0,82)
SUHA A 1 Offset(0,81)
SUHA A 1 Offset(0,80)
SUHA A 1 Offset(0,79)
SUHA A 1 Offset(0,78)
SUHA A 1 Offset(0,77)
SUHA A 1 Offset(0,76)
SUHA A 1 Offset(0,75)
SUHA A 1 Offset(0,74)
SUHA A 1 Offset(0,73)
SUHA A 1 Offset(0,72)
SUHA A 1 Offset(0,71)
SUHA A 1 Offset(0,70)
SUHA A 1 Offset(0,69)
SUHA A 1 Offset(0,68)
SUHA A 1 Offset(0,67)
SUHA A 1 Offset(0,66)
SUHA A 1 Offset(0,65)
SUHA A 1 Offset(0,64)
SUHA A 1 Offset(0,63)
SUHA A 1 Offset(0,62)
SUHA A 1 Offset(0,61)
SUHA A 1 Offset(0,60)
SUHA A 1 Offset(0,59)
SUHA A 1 Offset(0,58)
SUHA A 1 Offset(0,57)
SUHA A 1 Offset(0,56)
SUHA A 1 Offset(0,55)
SUHA A 1 Offset(0,54)
SUHA A 1 Offset(0,53)
SUHA A 1 Offset(0,52)
SUHA A 1 Offset(0,51)
SUHA A 1 Offset(0,50)
SUHA A 1 Offset(0,49)
SUHA A 1 Offset(0,48)
SUHA A 1 Offset(0,47)
SUHA A 1 Offset(0,46)
SUHA A 1 Offset(0,45)
SUHA A 1 Offset(0,44)
SUHA A 1 Offset(0,43)
SUHA A 1 Offset(0,42)
SUHA A 1 Offset(0,41)
SUHA A 1 Offset(0,40)
SUHA A 1 Offset(0,39)
SUHA A 1 Offset(0,38)
SUHA A 1 Offset(0,37)
SUHA A 1 Offset(0,36)
SUHA A 1 Offset(0,35)
SUHA A 1 Offset(0,34)
SUHA A 1 Offset(0,33)
SUHA L 1 Offset(4,14)A_GiveInventory("SunstarIntroFirePickup",1)
SUHA L 1 Offset(2,17)
SUHA L 1 Offset(1,20)
SUHA L 1 Offset(3,18)
SUHA L 1 Offset(4,14)
SUHA L 1 Offset(2,17)
SUHA L 1 Offset(1,20)
SUHA L 1 Offset(3,18)
SUHA L 1 Offset(4,14)
SUHA L 1 Offset(2,17)
SUHA L 1 Offset(1,20)
SUHA L 1 Offset(3,18)
SUHA L 1 Offset(4,14)
SUHA L 1 Offset(2,17)
SUHA L 1 Offset(1,20)
SUHA L 1 Offset(3,18)
SUHA L 1 Offset(4,14)
SUHA L 1 Offset(2,17)
SUHA L 1 Offset(1,20)
SUHA L 1 Offset(3,18)
SUHA L 1 Offset(4,14)
SUHA L 1 Offset(2,17)
SUHA L 1 Offset(1,20)
SUHA L 1 Offset(3,18)
SUHA L 1 Offset(4,14)
SUHA L 1 Offset(2,17)
SUHA L 1 Offset(1,20)
SUHA L 1 Offset(3,18)
SUHA L 1 Offset(4,14)
SUHA L 1 Offset(2,17)
SUHA L 1 Offset(1,20)
SUHA L 1 Offset(3,18)
SUHA L 1 Offset(4,14)
SUHA L 1 Offset(2,17)
SUHA L 1 Offset(1,20)
SUHA L 1 Offset(3,18)A_GunFlash("BusterExhaust")
SUHA A 0 A_WeaponReady(WRF_NOFIRE)
SUHA LLLLKKKKGGGGDDDD 1 A_Stop
SUHA A 35 A_GiveInventory("SunstarIntroEndPickup",1)
SUHA A 0 A_GiveInventory("SunstarIntroEnd2Pickup",1)
Goto Ready2

Ready2:
SUHA A 0 A_JumpIfInventory("SolarFlareCooldown",1,"Ready2.NoTF") 
SUHA A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,7)) SUHA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
SUHA A 0 A_GiveInventory("BaseAltfireAmmo",1) SUHA A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
loop

Ready2.NoTF:
SUHA A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,7)) SUHA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
SUHA A 0 A_GiveInventory("BaseAltfireAmmo",1)
Goto Ready2


Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
SUHA A 1 A_Lower
Loop

Select:
TNT1 A 0 ACS_ExecuteAlways(991,0,5969)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
SUHA A 1 A_Raise
Loop

Fire:
SUHA B 0 A_PlaySoundEx("misc/sunstarbeamcharge","weapon")
Goto Fire.Hold

Fire.Hold:
SUHA B 0 A_JumpIfInventory("SolarisBusterAmmo",38,"Fire.Hold2A")
SUHA B 1 A_GiveInventory("SolarisBusterAmmo",1)
SUHA B 0 A_Refire("Fire.Hold")
Goto Fire.Weak

Fire.Hold2A:
SUHA Q 0 A_JumpIfInventory("SolarisBusterAmmo",76,"Fire.Hold3A")
SUHA Q 0 ACS_ExecuteAlways(991,0,10862)
SUHA Q 1 A_GiveInventory("SolarisBusterAmmo",1)
SUHA Q 0 A_Refire("Fire.Hold2B")
Goto Fire.Moderate

Fire.Hold2B:
SUHA Q 1 A_GiveInventory("SolarisBusterAmmo",1)
SUHA Q 0 A_Refire("Fire.Hold2C")
Goto Fire.Moderate

Fire.Hold2C:
SUHA B 0 A_JumpIfInventory("SolarisBusterAmmo",76,"Fire.Hold3A")
SUHA B 0 ACS_ExecuteAlways(991,0,5969)
SUHA B 1 A_GiveInventory("SolarisBusterAmmo",1)
SUHA B 0 A_Refire("Fire.Hold2D")
Goto Fire.Moderate

Fire.Hold2D:
SUHA B 1 A_GiveInventory("SolarisBusterAmmo",1)
SUHA B 0 A_Refire("Fire.Hold2A")
Goto Fire.Moderate

Fire.Hold3A:
SUHA B 0 A_GiveInventory("RightClickFlag",1)
SUHA B 1 ACS_ExecuteAlways(991,0,10862)
SUHA B 0 A_JumpIf(CallACS("VC_CheckBtn",4)==7,"Fire.NovaBeam")
SUHA B 0 A_Refire("Fire.Hold3B")
Goto Fire.Strong

Fire.Hold3B:
SUHA Q 1 ACS_ExecuteAlways(991,0,5969)
SUHA Q 0 A_JumpIf(CallACS("VC_CheckBtn",4)==7,"Fire.NovaBeam")
SUHA Q 0 A_Refire("Fire.Hold3A")
Goto Fire.Strong

Fire.Weak:
SUHA C 0 A_GiveInventory("SunstarMainfirePickup",1)
SUHA CCBB 3
SUHA C 0 A_Refire("Fire.Weak")
Goto Ready2

Fire.Moderate:
SUHA C 0 A_GiveInventory("SunstarMainfire2Pickup",1)
SUHA CCBB 3
Goto Ready2

Fire.Strong:
SUHA C 0 A_GiveInventory("SunstarMainfire3Pickup",1)
SUHA CCBB 3
Goto Ready2

Fire.NovaBeam:
SUHA C 0 A_SetGravity(0.0)
SUHA C 0 A_GunFlash("NovaBeaming")
SUHA C 0 ACS_ExecuteAlways(991,0,5969)
SUHA C 0 A_TakeInventory("RightClickFlag")
SUHA CFI 1 A_GiveInventory("SunstarNovaBeamFlag",1)
Goto Fire.NovaBeam.Hold

Fire.NovaBeam.Hold:
SUHA L 1
SUHA L 0 A_JumpIfInventory("SolarisBusterAmmo",1,1)
Goto Fire.NovaBeam.End
SUHA L 1
SUHA L 0 A_JumpIfInventory("SolarisBusterAmmo",1,"Fire.NovaBeam.Hold")
Goto Fire.NovaBeam.End

Fire.NovaBeam.End:
SUHA L 0 A_GunFlash("SunstarStopping")
SUHA L 0 A_PlaySoundEx("misc/sunstarbeam","weapon")
SUHA L 10 A_SpawnItemEx("SunstarNovaBeamEndFXSpawnSD", 0, 4, 14)
SUHA L 0 A_GiveInventory("GravityRestore",1)
SUHA L 0 A_GunFlash("BusterExhaust")
SUHA LKGD 6 A_TakeInventory("SunstarNovaBeamFlag",1)
Goto Ready2

Altfire:
SUHA B 0 A_TakeInventory("BaseAltfireAmmo",7)
SUHA B 0 A_FireCustomMissile("ChaosSpark",0,0,1,12)
SUHA B 0 A_PlaySoundEx("weapon/SunstarChaosSpark","weapon")
SUHA BCCCCB 2
Goto Ready2

User1:
SUHA A 1 Offset(0,42)A_GunFlash("SunstarStopping")
TNT1 A 1 Offset(0,52)A_GiveInventory("SunstarThirdFireStartPickup",1)
SUHA A 1 Offset(0,62)
TNT1 A 1 Offset(0,72)
SUHA A 1 Offset(0,82)
TNT1 A 1 Offset(0,82)
SUHA A 1 Offset(0,82)
TNT1 A 1 Offset(0,82)
SUHA A 1 Offset(0,82)
TNT1 A 1 Offset(0,82)
SUHA A 1 Offset(0,82)
TNT1 A 1 Offset(0,82)
SUHA A 1 Offset(0,82)
TNT1 A 1 Offset(0,82)
SUHA A 1 Offset(0,82)
TNT1 A 1 Offset(0,82)
SUHA A 1 Offset(0,82)
TNT1 A 1 Offset(0,82)
SUHA A 1 Offset(0,82)
TNT1 A 1 Offset(0,82)
SUHA A 1 Offset(0,82)
TNT1 A 1 Offset(0,82)
SUHA A 1 Offset(0,82)
TNT1 A 1 Offset(0,82)
SUHA A 1 Offset(0,82)
TNT1 A 1 Offset(0,82)
SUHA A 1 Offset(0,82)
TNT1 A 1 Offset(0,82)
SUHA A 1 Offset(0,82)
TNT1 A 1 Offset(0,82)
SUHA A 1 Offset(0,82)
TNT1 A 1 Offset(0,82)
SUHA A 1 Offset(0,82)
TNT1 A 1 Offset(0,82)
Goto User1.SolarFlare.Start

User1.SolarFlare.Start:
SUHA A 0 A_Stop
SUHA A 0 A_GunFlash("SolarFlaring")
SUHA A 0 A_GiveInventory("SunstarThirdFireActivatePickup",1)
Goto User1.SolarFlare.Bounce

User1.SolarFlare.Bounce:
SUHA A 0 ThrustThingZ(0, 100, 0, 1)
SUHA A 0 A_SpawnItemEx("SolarFlareDamager2")
SUHA A 0 A_PlaySoundEx("weapon/solarblaze","weapon")
SUHA AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SunstarNovaBeamEndFXSD",random(0,40),0,0,random(2,10),0,random(1,5),random(0,359))
Goto User1.SolarFlare

User1.SolarFlare:
TNT1 A 1 Offset(0,82)
TNT1 A 0 A_JumpIfInventory("BaseAltfireAmmo",1,1)
Goto User1.SolareFlare.End
TNT1 A 1 Offset(0,82)
TNT1 A 0 A_JumpIfInventory("BaseAltfireAmmo",1,1)
Goto User1.SolareFlare.End
TNT1 A 1 Offset(0,82)A_CheckFloor("User1.SolarFlare.Bounce")
TNT1 A 0 A_JumpIfInventory("BaseAltfireAmmo",1,"User1.SolarFlare")
Goto User1.SolareFlare.End

User1.SolareFlare.End:
SUHA A 1 Offset(0,72)A_GunFlash("NoFlash")
SUHA A 1 Offset(0,62)A_GiveInventory("SunstarThirdFireEndPickup",1)
SUHA A 1 Offset(0,52)
SUHA A 1 Offset(0,42)
Goto Ready2

UltimateAttack:
TNT1 A 0
SUHA AA 1 A_TakeInventory("TerminationUltimateAmmo",1500)
TNT1 A 0 A_GiveInventory("SunstarUltimateStartPickup",1)
Goto UltimateAttack.Charge

UltimateAttack.Charge:
SUHA B 1 ACS_ExecuteAlways(991,0,10862) SUHA Q 1 ACS_ExecuteAlways(991,0,5969)
SUHA Q 0 ThrustThingZ(0, 1, 0, 1) SUHA Q 0 A_SetGravity(0.0)
SUHA Q 0 A_SpawnItemEx("SunstarAreaFlamesSD", random(0, 150), 0, random(0, 32), 0, 0, random(1, 3), random(0,360))
SUHA Q 0 A_JumpIfInventory("CutterFlag",1,"UltimateAttack.IonStorm")
loop

UltimateAttack.IonStorm:
SUHA L 1 Offset(4,14)A_GunFlash("SunstarStopping")
SUHA L 1 Offset(2,17)A_GiveInventory("SunstarUltimateAttackPickup",1)
SUHA L 1 Offset(1,20)
SUHA L 1 Offset(3,18)
SUHA L 1 Offset(4,14)
SUHA L 1 Offset(2,17)
SUHA L 1 Offset(1,20)
SUHA L 1 Offset(3,18)
SUHA L 1 Offset(4,14)
SUHA L 1 Offset(2,17)
SUHA L 1 Offset(1,20)
SUHA L 1 Offset(3,18)
SUHA L 1 Offset(4,14)
SUHA L 1 Offset(2,17)
SUHA L 1 Offset(1,20)
SUHA L 1 Offset(3,18)
SUHA L 1 Offset(4,14)
SUHA L 1 Offset(2,17)
SUHA L 1 Offset(1,20)
SUHA L 1 Offset(3,18)
SUHA L 1 Offset(4,14)
SUHA L 1 Offset(2,17)
SUHA L 1 Offset(1,20)
SUHA L 1 Offset(3,18)A_GunFlash("BusterExhaust")
SUHA L 0 A_WeaponReady(WRF_NOFIRE)
SUHA L 0 A_GiveInventory("SunstarUltimateEndPickup",1)
SUHA LLLLKKKKGGGGDDDD 1
Goto Ready2

BusterExhaust:
SUHA MNOP 4
stop

SunstarStopping:
TNT1 A 1 A_Stop TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 1 A_Stop TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
loop

NovaBeaming:
TNT1 A 0 A_PlaySoundEx("misc/sunstarbeamloop","weapon") TNT1 A 0 A_Quake(3,5,0,300)
TNT1 A 1 A_Stop TNT1 A 0 A_SpawnItemEx("SunstarNovaBeamSpawnSD", 82, 4, 14)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") TNT1 A 0 A_TakeInventory("SolarisBusterAmmo",3)
TNT1 A 0 A_PlaySoundEx("misc/sunstarbeamloop","weapon") TNT1 A 0 A_Quake(3,5,0,300)
TNT1 A 1 A_Stop TNT1 A 0 A_SpawnItemEx("SunstarNovaBeamSpawnSD", 82, 4, 14)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") TNT1 A 0 A_TakeInventory("SolarisBusterAmmo",3)
loop

SolarFlaring:
TNT1 A 1 A_ChangeVelocity(20,0,momz,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("SolarFlareDamager") TNT1 A 0 ThrustThingZ(0, -5, 0, 1)
TNT1 A 1 A_ChangeVelocity(20,0,momz,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("SolarFlareDamager") TNT1 A 0 ThrustThingZ(0, -5, 0, 1)
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",1)
loop
}
}

actor SunstarMainfirePickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(991,0,5969)
TNT1 A 0 A_TakeInventory("RightClickFlag",1)
TNT1 A 0 A_TakeInventory("SolarisBusterAmmo",76)
TNT1 A 0 A_FireCustomMissile("SolarisShot",0,0,1,12)
TNT1 A 0 A_PlaySoundEx("weapon/SunstarFire","weapon")
stop
}
}

actor SunstarMainfire2Pickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(991,0,5969)
TNT1 A 0 A_TakeInventory("RightClickFlag",1)
TNT1 A 0 A_TakeInventory("SolarisBusterAmmo",76)
TNT1 A 0 A_FireCustomMissile("SolarisWave",0,0,1,12)
TNT1 A 0 A_PlaySoundEx("weapon/SunstarFire","weapon")
stop
}
}

actor SunstarMainfire3Pickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(991,0,5969)
TNT1 A 0 A_TakeInventory("RightClickFlag",1)
TNT1 A 0 A_TakeInventory("SolarisBusterAmmo",76)
TNT1 A 0 A_FireCustomMissile("SolarisField",0,0,1,12)
TNT1 A 0 A_PlaySoundEx("weapon/SunstarFire","weapon")
stop
}
}

Actor SolarisShot
{
PROJECTILE
damagetype "Sunstar"
Obituary "$OB_SUNSTAR1"
Speed 30
Damage (15)
radius 16
height 16
scale 2.5
const int SHOT_SPEED = 30;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
Spawn2:
SNSH AB 2
loop
Death:
TNT1 A 1 A_JumpIf(z-floorz<=0, "Slide")
TNT1 A 0 A_SpawnItemEx("SolarisShotRising",0,0,0,0,0,SHOT_SPEED)
Goto EndShot
Slide:
TNT1 A 0 A_SpawnItemEx("SolarisShotSlinding",0,0,0,SHOT_SPEED)
Goto EndShot
XDeath:
TNT1 A 0 A_PlaySoundEx("misc/mm3explosion", "Weapon")
S_UN EFG 2
EndShot:
TNT1 A 1
stop
}
}

Actor SolarisShotSlinding : SolarisShot
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
S_U2 AABB 1 A_JumpIf(z-floorz>0, "GoDown")
loop
GoDown:
TNT1 A 0 A_SpawnItemEx("SolarisShotFalling",0,0,0,0,0,-SHOT_SPEED)
Goto EndShot
Death:
S_UN SSTT 1 A_Stop
TNT1 A 0 A_SpawnItemEx("SolarisShotRising",0,0,0,0,0,SHOT_SPEED)
Goto EndShot
}
}

Actor SolarisShotFalling : SolarisShot
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
S_UN WX 2
loop
Death:
TNT1 A 0 A_SpawnItemEx("SolarisShotSlinding",0,0,0,SHOT_SPEED)
Goto EndShot
}
}

Actor SolarisShotRising : SolarisShot
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
S_UN UV 2
loop
Death:
TNT1 A 0
Goto XDeath
}
}

Actor SolarisWave : SolarisShot
{
+RIPPER
Speed 30
Damage (24)
radius 16
height 24
damagetype "SunstarBurn"
Obituary "$OB_SUNSTAR2"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
S_UN KL 2
loop
Death:
TNT1 A 0 A_PlaySoundEx("misc/mm3explosion", "Weapon")
S_UN EFG 2
stop
}
}

Actor SolarisField
{
+NOEXPLODEFLOOR
PROJECTILE
Speed 40
scale 2.5
Damage (10)
+RIPPER
+DOOMBOUNCE
-BOUNCEONFLOORS
+DONTREFLECT
radius 14
height 14
damagetype "SunstarBurn"
Obituary "$OB_SUNSTAR3"
const int SPREAD_SPEED = 8;
reactiontime 40
var int user_angle;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
S_UN Q 1 ThrustThingZ(0, -5, 0, 1) TNT1 A 0 A_CheckFloor("FireField")
S_UN Q 1 ThrustThingZ(0, -5, 0, 1) TNT1 A 0 A_CheckFloor("FireField")
S_UN R 1 ThrustThingZ(0, -5, 0, 1) TNT1 A 0 A_CheckFloor("FireField")
S_UN Q 1 ThrustThingZ(0, -5, 0, 1) TNT1 A 0 A_CheckFloor("FireField")
Goto Spawn+2
FireField:
TNT1 A 0 A_Stop
TNT1 A 0 A_PlaySoundEx("misc/sunstarwrathwave", "Body")
loopit:
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*2)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*3)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*4)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*5)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*6)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*7)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*8)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*9)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*10)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*11)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*12)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*13)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*14)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*15)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*16)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*17)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*18)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*19)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*20)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*21)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*22)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*23)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*24)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*25)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*26)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*27)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*28)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*29)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*30)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*31)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*32)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*33)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*34)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*35)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*36)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*37)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*38)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*39)
TNT1 A 0 A_SpawnItemEx("SolarisFieldSpreader", 0, 0, 0, SPREAD_SPEED, 0, 0, 9*40)
goto Death
XDeath:
S_UN EFG 2
stop
Death:
TNT1 A 0 A_Stop
S_UN QRQRQR 2
S_UN QQRR 1 A_FadeOut(0.20)
stop
}
}

Actor SolarisFieldSpreader : SolarisField
{
+THRUACTORS
-DOOMBOUNCE
reactiontime 20
damagetype "SunstarBurn"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 3 A_CountDown
TNT1 A 0 A_SpawnItemEx("SolarisFieldFire")
Goto Spawn+2
Death:
TNT1 A 0
stop
}
}


Actor SolarisFieldFire : SolarisFieldSpreader
{
+FLOORHUGGER
-THRUACTORS
Damage (3)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_PlaySoundEx("weapon/solarisfieldfire","Body")
TNT1 A 1
S_UN QRQRQRQRQRQR 2
S_UN QQRR 1 A_FadeOut(0.20)
Goto XDeath+1
XDeath:
TNT1 A 0 A_PlaySoundEx("misc/mm3explosion", "Weapon")
TNT1 A 0
stop
}
}

Actor SolarisFieldFire2 : SolarisFieldFire
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_PlaySoundEx("weapon/solarisfieldfire","Body")
TNT1 A 4
S_UN QRQRQRQRQRQRQRQRQRQRQRQRQRQRQR 2
S_UN QQRR 1 A_FadeOut(0.20)
Goto XDeath+1
}
}

Actor SolarisFieldFireProtect : PowerProtection
{
	Powerup.Duration 4
	DamageFactor "SunstarBurn", 0.0
}

actor SunstarAfterBurnPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("SunstarNoNewAfterBurn",1)
TNT1 A 0 A_GiveInventory("SunstarNewAfterBurn",1)
TNT1 A 0 A_GiveInventory("SunstarAfterBurnDuration",1)
stop
PickupNo:
TNT1 A 0
stop
}
}

actor SunstarNewAfterBurn : PowerUp {Powerup.Duration 3}
actor SunstarNoNewAfterBurn : PowerUp {Powerup.Duration 6}
actor SunstarAfterBurnDamageTimer : PowerUp {Powerup.Duration 15}
actor SunstarAfterBurnDuration : PowerUp {Powerup.Duration 100}

actor SunstarAfterBurn
{
Height 0
Radius 0
+NOINTERACTION
+NOCLIP
damagetype "SunstarBurning"
Obituary "$OB_SUNSTAR3"
PROJECTILE
states
{
Spawn:
TNT1 A 0
SpawnStart0:
TNT1 A 0 A_GiveInventory("SunstarAfterBurnDamageTimer",1)
SpawnStart:
TNT1 A 1
TNT1 A 0 A_JumpIfInventory("NewAfterBurn",1,"SpawnStart",AAPTR_TRACER)
Spawn2:
TNT1 A 1
TNT1 A 0 A_GiveInventory("SunstarAfterburnFunc",1)
loop
Death:
TNT1 A 0
stop
}
}

actor SunstarAfterburnFunc : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("SunstarAfterBurnDuration",1,"Pickup2",AAPTR_TRACER)
PickupRemove:
TNT1 A 0 Thing_Remove(0)
stop
Pickup2:
TNT1 A 0 A_JumpIfInventory("SunstarNewAfterBurn",1,"PickupRemove",AAPTR_TRACER)
TNT1 A 0 A_JumpIfInventory("SunstarAfterBurnDamageTimer",1,"PickupWait")
TNT1 A 0 A_GiveInventory("SunstarAfterBurnDamageTimer",1)
TNT1 A 0 A_Warp(AAPTR_TRACER,0,0,ACS_NamedExecuteWithResult("TracerHeightGet")/2,0,0)
TNT1 A 0 A_RadiusGive("AfterBurnImmune",IMMUNE_RADIUS,RGF_PLAYERS|RGF_MONSTERS|RGF_OBJECTS)
TNT1 A 0 A_TakeInventory("AfterBurnImmune",1,0,AAPTR_TRACER)
TNT1 A 0 A_Explode(1,1,0,0,1)
stop
PickupWait:
TNT1 A 0
stop
}
}

actor SunstarNovaBeamFlag : VCOnce {}

actor SunstarNovaBeamSpawnSD
{
+MISSILE
height 8
radius 8
+THRUGHOST
renderstyle add
scale 2.5
damagetype "SunstarNovaBeam"
Obituary "$OB_SUNSTAR4"
states
{
Spawn:
S_UN M 0
S_UN M 0 A_SpawnItemEx("SunstarNovaBeamDamagerSD", 32)
S_UN M 0 A_SpawnItemEx("SunstarNovaBeamSD", 10)
S_UN MNMN 1
stop
Death:
TNT1 A 0
stop
}
}

actor SunstarNovaBeamSD : SunstarNovaBeamSpawnSD
{
states
{
Spawn:
S_UN M 0
S_UN M 0 A_JumpIfCloser(1200, "Appear")
stop
Appear:
S_UN M 0 A_SpawnItemEx("SunstarNovaBeamSD", 10)
S_UN OPOP 1
stop
}
}

actor SunstarNovaBeamEndFXSpawnSD : SunstarNovaBeamSpawnSD
{
renderstyle add
states
{
Spawn:
S_UN M 0
S_UN M 0 A_JumpIfCloser(1200, "Appear")
stop
Appear:
S_UN MM 0 A_SpawnItemEx("SunstarNovaBeamEndFXSD", 0, random(-48, 48), random(-24, 76), random(5, 10), 0, 0, 0, 0, 128)
S_UN M 0 A_SpawnItemEx("SunstarNovaBeamEndFXSpawnSD", 10)
S_UN OPOP 1
stop
}
}

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

actor SunstarNovaBeamDamagerSD
{
PROJECTILE
+RIPPER 
+THRUGHOST
+THRUACTORS
Damage (0)
Height 40
Radius 18
damagetype "SunstarNovaBeam"
Obituary "$OB_SUNSTAR4"
renderstyle add
states
{
Spawn:
S_UN M 0
S_UN M 0 A_JumpIfCloser(1200, "Appear")
stop
Appear:
S_UN M 0 A_SpawnItemEx("SunstarNovaBeamDamagerSD", 32)
S_UN MNMN 1 A_Explode(3, 50, 0, 0, 50)
stop
Death:
TNT1 A 0
stop
}
}

Actor NovaBeamSDProtect : PowerProtection
{
	Powerup.Duration 1
	DamageFactor "SunstarNovaBeam", 0.0
}

Actor ChaosSpark
{
+DOOMBOUNCE
-ALLOWBOUNCEONACTORS
+CANBOUNCEWATER
PROJECTILE
damagetype "Sunstar"
Obituary "$OB_SUNSTAR5"
Speed 40
radius 16
height 16
scale 2.5
bouncecount 99
bouncefactor 1.0
wallbouncefactor 1.0
damage (12)
ReactionTime 20
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
SparkLoop:
S_UN EEFFGGHHIIJJ 1 ThrustThingZ(0, -4, 0, 1)
TNT1 A 0 A_CountDown
Goto SparkLoop
XDeath:
TNT1 A 0 A_PlaySoundEx("misc/mm3explosion", "Weapon")
S_UN EFG 2
stop
}
}


actor SunstarSolarFlareFlag1 : VCOnce {}
actor SunstarSolarFlareFlag2 : VCOnce {}

actor SunstarThirdFireStartPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SetGravity(0.0)
TNT1 A 0 A_GiveInventory("NoSpeed",1)
TNT1 A 0 A_GiveInventory("SunstarSolarFlareFlag1",1)
TNT1 A 0 A_PlaySoundEx("misc/sunstarwrathpillar","Auto")
stop
}
}

actor SunstarThirdFireActivatePickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_ChangeFlag("SOLID",False)
TNT1 A 0 A_ChangeFlag("PICKUP",False)
TNT1 A 0 A_TakeInventory("UnSolid",1)
TNT1 A 0 A_TakeInventory("NoSpeed",999)
TNT1 A 0 A_GiveInventory("GravityRestore")
TNT1 A 0 A_ChangeFlag("INVULNERABLE",True)
TNT1 A 0 A_GiveInventory("InvProtection",1)
TNT1 A 0 A_GiveInventory("SunstarSolarFlareFlag2",1)
stop
}
}

actor SunstarThirdFireEndPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SetTranslucent(1.0,0)
TNT1 A 0 A_ChangeFlag("PICKUP",1)
TNT1 A 0 A_SpawnItemEx("ReSolidifier")
TNT1 A 0 A_ChangeFlag("INVULNERABLE",False)
TNT1 A 0 A_TakeInventory("InvProtection",1)
TNT1 A 0 A_SpawnItemEx("SolarFlareWatcher")
TNT1 A 0 A_TakeInventory("SunstarSolarFlareFlag1",1)
TNT1 A 0 A_TakeInventory("SunstarSolarFlareFlag2",1)
stop
}
}

actor SolarFlareDamager
{
species "DustManType"
+THRUSPECIES
PROJECTILE
damagetype "SunstarSolarFlare"
Obituary "$OB_SUNSTAR6"
+RIPPER
+NOINTERACTION
+DONTBLAST
damage (0)
radius 1
height 1
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(10,40,0,0,40)
stop
}
}

actor SolarFlareDamager2 : SolarFlareDamager
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(30,200,0,0,30)
stop
}
}

actor SolarFlareAfterImageA
{
scale 2.5
+CLIENTSIDEONLY
+NOINTERACTION
+DONTSPLASH
Gravity 0
Damage (0)
height 0
radius 0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1
SUGO A 1 A_Fadeout(0.12)
wait
}
}

actor SolarFlareAfterImageB : SolarFlareAfterImageA
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1
SUGO B 1 A_Fadeout(0.12)
wait
}
}

actor SolarFlareAfterImageC : SolarFlareAfterImageA
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1
SUGO C 1 A_Fadeout(0.12)
wait
}
}

actor SolarFlareCooldown : Ammo
{
	inventory.amount 1
	inventory.maxamount 175
	+INVENTORY.IGNORESKILL
}

actor SolarFlareWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_GiveToTarget("SolarFlareCoolDown",175)
Goto Spawn2

Spawn2:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 1 A_TakeFromTarget("SolarFlareCooldown",1)
TNT1 A 0 A_JumpIfInTargetInventory("SolarFlareCooldown",1,"Spawn2")
Goto Death

Death:
TNT1 A 1
stop
}
}

actor SunstarIonStormFlag1 : VCOnce {}
actor SunstarIonStormFlag2 : VCOnce {}

actor SunstarUltimateStartPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_Stop
TNT1 A 0 A_SetGravity(0.0)
TNT1 A 0 SetPlayerProperty(0,1,0)
TNT1 A 0 A_GiveInventory("NoPushFlag",1)
TNT1 A 0 A_GiveInventory("InvProtection")
TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
TNT1 A 0 A_ChangeFlag("INVULNERABLE", True)
TNT1 A 0 A_SpawnItemEx("SunstarUltWaitTimer")
TNT1 A 0 A_SpawnItemEx("TerminatorUltimateAlarm")
TNT1 A 0 A_GiveInventory("SunstarIonStormFlag1",1)
TNT1 A 0 A_GiveInventory("PowerUltBuildCooldown",1)
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,127)
TNT1 A 0 A_PlaySoundEx("misc/sunstarbeamcharge","weapon")
TNT1 A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
stop
}
}

actor SunstarUltimateAttackPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 SetPlayerProperty(0,0,0)
TNT1 A 0 A_SpawnItemEx("IonStorm")
TNT1 A 0 A_TakeInventory("CutterFlag",99)
TNT1 A 0 A_GiveInventory("SunstarIonStormFlag2",1)
stop
}
}

actor SunstarUltimateEndPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_TakeInventory("NoPushFlag",1)
TNT1 A 0 A_TakeInventory("InvProtection")
TNT1 A 0 A_ChangeFlag("INVULNERABLE", False)
TNT1 A 0 A_GiveInventory("GravityRestore",1)
TNT1 A 0 A_TakeInventory("SunstarIonStormFlag1",1)
TNT1 A 0 A_TakeInventory("SunstarIonStormFlag2",1)
TNT1 A 0 A_TakeInventory("PowerUltBuildCooldown",1)
stop
}
}

actor SunstarUltWaitTimer
{
PROJECTILE
+NOINTERACTION
+DONTBLAST
damage (0)
radius 1
height 1
States
{
Spawn:
TNT1 A 78
TNT1 A 0 A_GiveToTarget("CutterFlag",1)
stop
}
}

actor SunstarUltAttackPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("SunstarNoNewAfterBurn",1)
TNT1 A 0 A_GiveInventory("SunstarNewAfterBurn",1)
TNT1 A 0 A_GiveInventory("SunstarAfterBurnDuration",1)
stop
PickupNo:
TNT1 A 0
stop
}
}

actor IonStorm
{
damagetype "SunstarIonStorm"
Obituary "$OB_SUNSTAR7"
+NOGRAVITY
+MISSILE
+SKYEXPLODE
+NOINTERACTION
+DONTBLAST
height 1
radius 1
-SOLID
const int X_OFFSET_MIN = -1024;
const int X_OFFSET_MAX = 1024;
const int Y_OFFSET_MIN = -1024;
const int Y_OFFSET_MAX = 1024;
const int Z_OFFSET = 256;
const int X_VELOCITY = 30;
const int Y_VELOCITY = 0;
const int Z_VELOCITY = -30;
const int STORM_ANGLE = 0;
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/rainflush","Voice")
TNT1 A 0 A_Explode(1000,1500,0,0,1500)
StormLoop:
TNT1 A 0 A_JumpIfInventory("CutterFlag",5,"End")
TNT1 AAAA 0 A_SpawnItemEx("SolarisFieldFire2",random(-1500,1500),0,0,0,0,0,random(0,359),1)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("IonStormSprinkle", random(X_OFFSET_MIN,X_OFFSET_MAX), random(Y_OFFSET_MIN,Y_OFFSET_MAX), Z_OFFSET, X_VELOCITY, Y_VELOCITY, Z_VELOCITY, STORM_ANGLE, SXF_CLIENTSIDE)
TNT1 A 1 A_SpawnItemEx("IonStormSprinkle", random(X_OFFSET_MIN,X_OFFSET_MAX), random(Y_OFFSET_MIN,Y_OFFSET_MAX), Z_OFFSET, X_VELOCITY, Y_VELOCITY, Z_VELOCITY, STORM_ANGLE, SXF_CLIENTSIDE)
TNT1 AAAA 0 A_SpawnItemEx("SolarisFieldFire2",random(-1500,1500),0,0,0,0,0,random(0,359),1)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("IonStormSprinkle", random(X_OFFSET_MIN,X_OFFSET_MAX), random(Y_OFFSET_MIN,Y_OFFSET_MAX), Z_OFFSET, X_VELOCITY, Y_VELOCITY, Z_VELOCITY, STORM_ANGLE, SXF_CLIENTSIDE)
TNT1 A 1 A_SpawnItemEx("IonStormSprinkle", random(X_OFFSET_MIN,X_OFFSET_MAX), random(Y_OFFSET_MIN,Y_OFFSET_MAX), Z_OFFSET, X_VELOCITY, Y_VELOCITY, Z_VELOCITY, STORM_ANGLE, SXF_CLIENTSIDE)
TNT1 AAAA 0 A_SpawnItemEx("SolarisFieldFire2",random(-1500,1500),0,0,0,0,0,random(0,359),1)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("IonStormSprinkle", random(X_OFFSET_MIN,X_OFFSET_MAX), random(Y_OFFSET_MIN,Y_OFFSET_MAX), Z_OFFSET, X_VELOCITY, Y_VELOCITY, Z_VELOCITY, STORM_ANGLE, SXF_CLIENTSIDE)
TNT1 A 1 A_SpawnItemEx("IonStormSprinkle", random(X_OFFSET_MIN,X_OFFSET_MAX), random(Y_OFFSET_MIN,Y_OFFSET_MAX), Z_OFFSET, X_VELOCITY, Y_VELOCITY, Z_VELOCITY, STORM_ANGLE, SXF_CLIENTSIDE)
TNT1 AAAA 0 A_SpawnItemEx("SolarisFieldFire2",random(-1500,1500),0,0,0,0,0,random(0,359),1)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("IonStormSprinkle", random(X_OFFSET_MIN,X_OFFSET_MAX), random(Y_OFFSET_MIN,Y_OFFSET_MAX), Z_OFFSET, X_VELOCITY, Y_VELOCITY, Z_VELOCITY, STORM_ANGLE, SXF_CLIENTSIDE)
TNT1 A 1 A_SpawnItemEx("IonStormSprinkle", random(X_OFFSET_MIN,X_OFFSET_MAX), random(Y_OFFSET_MIN,Y_OFFSET_MAX), Z_OFFSET, X_VELOCITY, Y_VELOCITY, Z_VELOCITY, STORM_ANGLE, SXF_CLIENTSIDE)
TNT1 AAAA 0 A_SpawnItemEx("SolarisFieldFire2",random(-1500,1500),0,0,0,0,0,random(0,359),1)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("IonStormSprinkle", random(X_OFFSET_MIN,X_OFFSET_MAX), random(Y_OFFSET_MIN,Y_OFFSET_MAX), Z_OFFSET, X_VELOCITY, Y_VELOCITY, Z_VELOCITY, STORM_ANGLE, SXF_CLIENTSIDE)
TNT1 A 1 A_SpawnItemEx("IonStormSprinkle", random(X_OFFSET_MIN,X_OFFSET_MAX), random(Y_OFFSET_MIN,Y_OFFSET_MAX), Z_OFFSET, X_VELOCITY, Y_VELOCITY, Z_VELOCITY, STORM_ANGLE, SXF_CLIENTSIDE)
TNT1 AAAA 0 A_SpawnItemEx("SolarisFieldFire2",random(-1500,1500),0,0,0,0,0,random(0,359),1)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("IonStormSprinkle", random(X_OFFSET_MIN,X_OFFSET_MAX), random(Y_OFFSET_MIN,Y_OFFSET_MAX), Z_OFFSET, X_VELOCITY, Y_VELOCITY, Z_VELOCITY, STORM_ANGLE, SXF_CLIENTSIDE)
TNT1 A 1 A_SpawnItemEx("IonStormSprinkle", random(X_OFFSET_MIN,X_OFFSET_MAX), random(Y_OFFSET_MIN,Y_OFFSET_MAX), Z_OFFSET, X_VELOCITY, Y_VELOCITY, Z_VELOCITY, STORM_ANGLE, SXF_CLIENTSIDE)
TNT1 AAAA 0 A_SpawnItemEx("SolarisFieldFire2",random(-1500,1500),0,0,0,0,0,random(0,359),1)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("IonStormSprinkle", random(X_OFFSET_MIN,X_OFFSET_MAX), random(Y_OFFSET_MIN,Y_OFFSET_MAX), Z_OFFSET, X_VELOCITY, Y_VELOCITY, Z_VELOCITY, STORM_ANGLE, SXF_CLIENTSIDE)
TNT1 A 1 A_SpawnItemEx("IonStormSprinkle", random(X_OFFSET_MIN,X_OFFSET_MAX), random(Y_OFFSET_MIN,Y_OFFSET_MAX), Z_OFFSET, X_VELOCITY, Y_VELOCITY, Z_VELOCITY, STORM_ANGLE, SXF_CLIENTSIDE)
TNT1 A 0 A_GiveInventory("CutterFlag",1)
Goto StormLoop
End:
TNT1 A 0
stop
}
}

actor IonStormSprinkle
{
renderstyle add
+CLIENTSIDEONLY
+NOINTERACTION
- SOLID
+NOGRAVITY
height 0
radius 0
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
SNSH CDEFGHCDEFGHCDEFGHCDEFGHCDEFGHCDEFGH 1
stop
}
}


actor SunstarAreaFlamesSD
{
+NOINTERACTION
+MISSILE
var int user_size;
renderstyle add
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
S_UN F 0
S_UN F 0 A_SetUserVar("user_size", random(1, 8))
S_UN F 0 A_SetScale(user_size * 0.1, user_size * 0.1)
Flamey:
S_UN F 1 A_FadeOut(0.04)
loop
}
}

actor SunstarDeath
{
translation "192:192=216:216", "198:198=41:41"
+SOLID
+THRUACTORS
-NOGRAVITY
+DONTSPLASH
Damage (0)
height 0
radius 0
scale 2.5
const int EXPL_DEG = 36;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 ThrustThingZ(0, 40, 0, 1)
SGOD H 2
Spawn2:
SGOD HHH 1 A_CheckFloor("Defeated")
TNT1 A 0 A_SpawnItemEx("DrillExplode",random(-48, 48),0,random(-48, 48),0,0,0,random(0,359))
TNT1 A 0 A_PlaySoundEx("weapon/drillexplode","Body")
loop
Defeated:
SUGO D 70
SelfDestruct:
TNT1 A 0 A_JumpIfInventory("CutterFlag",70,"Explode")
TNT1 AA 1 A_GiveInventory("CutterFlag",1)
SUGO DD 1 A_GiveInventory("CutterFlag",1)
loop
Explode:
TNT1 A 0 A_PlaySoundEx("sunstar/death", "Weapon",0,1)
TNT1 A 0 A_SpawnItemEx("SunstarExplosion",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMMV",0,0,32,0,0,0,EXPL_DEG*1,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMMV",0,0,32,0,0,0,EXPL_DEG*2,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMMV",0,0,32,0,0,0,EXPL_DEG*3,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMMV",0,0,32,0,0,0,EXPL_DEG*4,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMMV",0,0,32,0,0,0,EXPL_DEG*5,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMMV",0,0,32,0,0,0,EXPL_DEG*6,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMMV",0,0,32,0,0,0,EXPL_DEG*7,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMMV",0,0,32,0,0,0,EXPL_DEG*8,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMMV",0,0,32,0,0,0,EXPL_DEG*9,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMMV",0,0,32,0,0,0,EXPL_DEG*10,1)
TNT1 A 15 A_Quake(9,20,0,9999)
TNT1 A 15 A_Quake(8,20,0,9999)
TNT1 A 15 A_Quake(7,20,0,9999)
TNT1 A 15 A_Quake(6,20,0,9999)
TNT1 A 15 A_Quake(5,20,0,9999)
TNT1 A 15 A_Quake(4,20,0,9999)
TNT1 A 15 A_Quake(3,20,0,9999)
TNT1 A 15 A_Quake(2,20,0,9999)
TNT1 A 15 A_Quake(1,20,0,9999)
stop
}
}

Actor SunstarExplosion : BasicClientSide
{
translation "192:192=216:216", "198:198=41:41"
Scale 7.0
States
{
Spawn:
ECLP NNNNNNOOOOOOPPPPPPQQQQQQRRRRRRSSSSSSTTTTTTUUUUUUVVVVVVWWWWWW 1 A_SetScale(scalex+0.1,scaley+0.1)
stop
}
}

actor SunstarCapsule : BasicClientSide
{
reactiontime 100
States
{
Spawn:
TNT1 A 0
SVCA A 35
SVCA A 0 ThrustThingZ(0,4,0,0)
loopit:
SVCA A 0 A_SpawnItemEx("SunstarAreaFlamesSD",random(12,32),0,-4,random(1,3),0,0,random(0,359))
SVCA A 1 A_Countdown
loop
Death:
SVCA A 70 ThrustThingZ(0,80,0,0)
stop
}
}

actor SunstarEmergeFX// : BasicClientSide
{
PROJECTILE
+RIPPER
damage (3)
Height 40
Radius 20
yscale 2.5
xscale 5.0
obituary "$OB_SUNSTAR3"
renderstyle add
States
{
Spawn:
TNT1 A 0
S_U2 TSRQPOQPOQPOQPO 1
S_U2 QPOQPOQPOQPOQPOQPOQ 1 A_FadeOut(0.05)
stop
}
}