actor Sunstar : ClassBase //125
{
Player.StartItem "IFMM0V", 1
Player.ScoreIcon "C_VSUN0X"
player.displayname "Sunstar"
player.soundclass "sunstarc"

player.maxhealth 175
health 175
player.jumpz 15
player.forwardmove 0.5, 0.5
player.sidemove 0.48, 0.48
player.startitem "NovaBeamBoss"
player.startitem "NuclearOverclockAmmo", 120
States
{
Spawn:
VSGD A 0 A_JumpIf(z-floorz>0,"SunStarJumping")
VSGD E 1
VSGD A 1
VSGD A 0 A_JumpIf(z-floorz>0,"SunStarJumping")
Goto Spawn+2
See:
VSGD BBBBBBBBBCCCCCCCCCDDDDDDDDDEEEEEEEEE 1 A_JumpIf(z-floorz>0,"SunStarJumping")
Goto Spawn
CustomState3:
Missile:
VSGD FFFFFGGGG 1 A_JumpIf(z-floorz>0,"SunStarJumpingShoot")
goto Spawn

		SunStarJumping:
			VSGD I 1 A_JumpIf(z - floorz <= 0, "Spawn")
			wait

SunStarJumpingShoot:
VSGD JJJJJJJJJ 1 A_JumpIf(z-floorz<=0, "Missile")
goto SunStarJumping

CustomState1:
VSGD KKKLLLMMMNNN 1 A_JumpIfInventory("CaliforniaDrugDealsAmmo",70,"CustomStateFormingStart")
loop
CustomStateFormingStart:
TNT1 A 0 A_PlaySound("misc/lava",CHAN_BODY,1,0,1)
CustomStateForming:
VSGD K 1 A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
SGSL A 1 bright A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
VSGD K 1 A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
SGSL B 1 bright A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
VSGD K 1 A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
VSGD C 1 bright A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
VSGD L 1 A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
SGSL A 1 bright A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
VSGD L 1 A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
SGSL B 1 bright A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
VSGD L 1 A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
VSGD C 1 bright A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
VSGD M 1 A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
SGSL A 1 bright A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
VSGD M 1 A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
SGSL B 1 bright A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
VSGD M 1 A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
VSGD C 1 bright A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
VSGD N 1 A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
SGSL A 1 bright A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
VSGD N 1 A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
SGSL B 1 bright A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
VSGD N 1 A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
VSGD C 1 bright A_JumpIfInventory("CaliforniaDrugDealsAmmo",140,"CustomState2")
loop
CustomState2:
SGSL AAABBBCCC 1 bright
loop
ClassPain:
VSGD H 0 A_JumpIfInventory("CaliforniaDrugDealsAmmo",1,"CustomState1")
goto PainContinue
ClassDeath:
VSGD H 0 A_ChangeVelocity(-8,0,8)
VSGD H 0 A_JumpIf(CallACS("cbm_FetchServerCVar",6)==1,1)
goto DeathContinue
VSGD H 0 A_SpawnItemEx("SunGodDeathHelper",0,0,0,momx,momy,momz,0,9)
goto DeathContinue
}
}

actor SunGemFlag : OnceC{}
actor SunGemFlag0 : OnceC{}
actor SunGemFlag1 : OnceC{}
actor SunGemFlag2 : OnceC{}
actor SunGemFlag3 : OnceC{}
actor SunGemFlag4 : OnceC{}

actor SunGodDeathHelper : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"S_1","S_2","S_3","S_4")
goto S_1
S_1:
TNT1 A 1 A_SpawnItemEx("SunGem_P1",0,0,42,momx+random(2,3),momy+frandom(-1,1),momz+frandom(2,6),random(-2,2),41,0)
stop
S_2:
TNT1 A 1 A_SpawnItemEx("SunGem_P2",0,0,42,momx+random(1,3),momy+frandom(-1,1),momz+frandom(2,6),random(-2,2),41,0)
stop
S_3:
TNT1 A 1 A_SpawnItemEx("SunGem_P3",0,0,42,momx+random(1,4),momy+frandom(-2,2),momz+frandom(2,6),random(-2,2),41,0)
stop
S_4:
TNT1 A 1 A_SpawnItemEx("SunGem_P4",0,0,42,momx+random(1,4),momy+frandom(-2,2),momz+frandom(2,6),random(-2,2),41,0)
stop
}
}

actor SunGem_P1 : CustomInventory
{
inventory.pickupmessage "\cgPicked up \cfHyper Energy Crystal: J\cg."
inventory.amount 1
inventory.maxamount 1
scale 2.5
+BRIGHT
reactiontime 35
States
{
Spawn:
SUGM ABCD 3
SUGM A 0 A_Countdown
loop
Death:
SUGM AAABBBCCCDDD 1 A_FadeOut(0.15)
loop
Pickup:
TNT1 A 0 A_GiveInventory("SunGemFlag1",1)
TNT1 A 0 A_PlaySoundEx("GNT/Treasure","Item")
TNT1 A 0 A_GiveInventory("SolarPower_PX",1)
stop
}
}

actor SunGem_P2 : SunGem_P1
{
inventory.pickupmessage "\cgPicked up \cfHyper Energy Crystal: S\cg."
States
{
Spawn:
SUGM EFGH 3
SUGM A 0 A_Countdown
loop
Death:
SUGM EEEFFFGGGHHH 1 A_FadeOut(0.05)
loop
Pickup:
TNT1 A 0 A_GiveInventory("SunGemFlag2",1)
TNT1 A 0 A_PlaySoundEx("GNT/Treasure","Item")
TNT1 A 0 A_GiveInventory("SolarPower_PX",1)
stop
}
}
actor SunGem_P3 : SunGem_P1
{
inventory.pickupmessage "\cgPicked up \cfHyper Energy Crystal: U\cg."
States
{
Spawn:
SUGM IJKL 3
SUGM A 0 A_Countdown
loop
Death:
SUGM IIIJJJKKKLLL 1 A_FadeOut(0.05)
loop
Pickup:
TNT1 A 0 A_GiveInventory("SunGemFlag3",1)
TNT1 A 0 A_PlaySoundEx("GNT/Treasure","Item")
TNT1 A 0 A_GiveInventory("SolarPower_PX",1)
stop
}
}
actor SunGem_P4 : SunGem_P1
{
inventory.pickupmessage "\cgPicked up \cfHyper Energy Crystal: P\cg."
States
{
Spawn:
SUGM MNOP 3
SUGM A 0 A_Countdown
loop
Death:
SUGM MMMNNNOOOPPP 1 A_FadeOut(0.05)
loop
Pickup:
TNT1 A 0 A_GiveInventory("SunGemFlag4",1)
TNT1 A 0 A_PlaySoundEx("GNT/Treasure","Item")
TNT1 A 0 A_GiveInventory("SolarPower_PX",1)
stop
}
}

actor SolarPower_PX : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("SunGemFlag1",1,1)
stop
TNT1 A 0 A_JumpIfInventory("SunGemFlag2",1,1)
stop
TNT1 A 0 A_JumpIfInventory("SunGemFlag3",1,1)
stop
TNT1 A 0 A_JumpIfInventory("SunGemFlag4",1,1)
stop
TNT1 A 0 A_GiveInventory("SolarPower_PZ")
stop
}
}

actor SolarPower_PZ : CustomInventory
{
inventory.pickupmessage "\cgYou feel \cfSolar Power \cgcoursing through your circuits..."
States
{
Pickup:
TNT1 A 0 A_GiveInventory("StrengthRune_ST")
TNT1 A 0 A_JumpIfInventory("SunGemFlag",1,2)
TNT1 A 0 A_SpawnItemEx("SolarPowerFollow",0,0,0,0,0,0,0,1)
TNT1 A 0 A_GiveInventory("SunGemFlag")
stop
}
}

actor SolarPowerFollow : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/sunstarvent","Weapon")
TNT1 A 0 A_GiveToTarget("SolarPower_PF",1)
TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
wait
Death:
TNT1 A 0 A_GiveToTarget("SolarPower_CI",1)
stop
}
}

actor SolarPower_CI : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("SunstarSupernova",0,0,28,0,0,0,0,1)
stop
}
}

actor SolarPower_PF : CustomInventory
{
States
{
Pickup:
TNT1 AA 0
TNT1 A 0 A_SpawnItemEx("SolarPowerFollowFX",-24,0,42,momx/5,momy/5,momz,0,9)
stop
}
}

actor SolarPowerFollowFX : BasicClientSide
{
scale 2.5
renderstyle add
+BRIGHT
alpha 0.75
States
{
Spawn:
S_UN A 0
S_UN A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
S_UN A 1 A_Warp(AAPTR_TARGET,-24,0,42,0,72)
S_UN B 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
S_UN B 1 A_Warp(AAPTR_TARGET,-24,0,42,0,72)
S_UN C 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
S_UN C 1 A_Warp(AAPTR_TARGET,-24,0,42,0,72)
S_UN D 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
S_UN D 1 A_Warp(AAPTR_TARGET,-24,0,42,0,72)
loop
Death:
TNT1 A 0
stop
}
}

actor SunGemDropper_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("SunGemFlag",1,"No")
TNT1 A 0 A_JumpIfInventory("SunGemFlag1",1,"P_1")
goto P_1+2
No:
TNT1 A 0 A_JumpIfInventory("SunGemFlag0",1,"P_0_Bonus")
stop
P_0_Bonus:
TNT1 A 0 A_SpawnItemEx("SunGodDeathHelper",0,0,0,momx,momy,momz,0,9)
stop
P_1:
TNT1 A 0 A_SpawnItemEx("SunGem_P1",0,0,8,random(2,6),0,random(4,9),random(0,359),1)
TNT1 A 0 A_GiveInventory("SunGemFlag0",1)
TNT1 A 0 A_JumpIfInventory("SunGemFlag2",1,"P_2")
goto P_2+2
P_2:
TNT1 A 0 A_SpawnItemEx("SunGem_P2",0,0,8,random(2,6),0,random(4,9),random(0,359),1)
TNT1 A 0 A_GiveInventory("SunGemFlag0",1)
TNT1 A 0 A_JumpIfInventory("SunGemFlag3",1,"P_3")
goto P_3+2
P_3:
TNT1 A 0 A_SpawnItemEx("SunGem_P3",0,0,8,random(2,6),0,random(4,9),random(0,359),1)
TNT1 A 0 A_GiveInventory("SunGemFlag0",1)
TNT1 A 0 A_JumpIfInventory("SunGemFlag4",1,"P_4")
goto No
P_4:
TNT1 A 0 A_SpawnItemEx("SunGem_P4",0,0,8,random(2,6),0,random(4,9),random(0,359),1)
goto No
}
}

actor SunstarSupernova : GrenademanDeathBoom{Obituary "$OB_SUNSUPNOVA"}