ACTOR CygnusOneMorpher : PowerupGiver 
{
Scale 2
radius 48
height 128
powerup.type CygnusOne
inventory.pickupmessage ""
powerup.duration 99999999999999
states
{
Spawn:
TNT1 A 6
loop
 }
 }


actor PowerCygnusOne : PowerMorph
{
powerup.duration 99999999999999
PowerMorph.PlayerClass "CygnusOnePlayer"
}

ACTOR CygnusOnePlayer : PlayerPawn
{
  Health 1000
  Scale 1.33
  Radius 40
  Height 110
  Speed 0.95
  mass 2000
  Player.ColorRange 0, 0
  Player.JumpZ 10
  Player.MaxHealth 16000
  Player.ViewHeight 112
  Player.DisplayName "Cygnus I"
  Player.SoundClass "CygnusOne"
  Player.MorphWeapon "CygnusOneWeapon0"
  Player.StartItem "Mana", 100
  limitedtoteam 1
  damagefactor "boss", 0
  damagefactor "Slime", 0
	SeeSound "monster/dissit" 
	PainSound "monster/dispai" 
	DeathSound "monster/disdth" 
	ActiveSound "monster/disact"
	bloodcolor Purple
	+NOSKIN
	-PICKUP
    states
    {
	Spawn:
	    CYGN A 1 Bright SetPlayerProperty(0, 0, PROP_FROZEN)
		CYGN A 10 A_SetTranslucent (0.1, 1)
		Loop
	See:
	    CYGN A 1 Bright SetPlayerProperty(0, 0, PROP_FROZEN)
		CYGN AB 6 SetPlayerProperty(0, 1, 1)
		Loop
	Missile:
	    CYGN C 1 Bright SetPlayerProperty(0, 1, PROP_FROZEN)
	    CYGN C 1 Bright A_SetTranslucent (0.2, 1)
		CYGN C 1 Bright A_SetTranslucent (0.3, 1)
		CYGN C 1 Bright A_SetTranslucent (0.4, 1)
		CYGN C 1 Bright A_SetTranslucent (0.5, 1)
		CYGN C 1 Bright A_SetTranslucent (0.6, 1)
		CYGN C 1 Bright A_SetTranslucent (0.7, 1)
		CYGN C 1 Bright A_SetTranslucent (0.8, 1)
		CYGN C 1 Bright A_SetTranslucent (0.9, 1)
		CYGN D 1 Bright A_SetTranslucent (0.7, 1)
		CYGN D 1 Bright A_SetTranslucent (0.5, 1)
		CYGN D 1 Bright A_SetTranslucent (0.3, 1)
		CYGN D 1 Bright A_SetTranslucent (0.1, 1)
		Goto Spawn
	Death:
	    TNT1 A 0 a_givetotarget("BOSSKILLEDSTAT", 1)
		TNT1 A 0 a_givetotarget("reward", 1)
		CYGN E 4 
		CYGN F 4 A_PlayerScream
		CYGN G 4
		CYGN H 4 A_NoBlocking
		CYGN IJ 4
		CYGN K -1 
		Stop
    }
}

ACTOR CygnusOneWeapon0 : Weapon 
{
 Weapon.SelectionOrder 800
 Obituary "%o was raped by %k"
 Inventory.PickupMessage ""
 Inventory.PickupSound "misc/pk_up"
 Weapon.AmmoUse 0
 Weapon.AmmoGive 0
 Weapon.AmmoType "Mana"
 +WEAPON.NOAUTOAIM
  States
 {
  Spawn:
       TNT1 A -1
       Loop
  Ready:
       TNT1 A 1 A_WeaponReady
       goto AltFire
  Fire:
  TNT1 A 1
  goto AltFire
  Deselect:
       TNT1 A 1 A_Lower
       Loop
  Select:
       TNT1 A 0 A_Raise
       Loop
  AltFire:
       TNT1 A 0 A_GiveInventory("CygnusOneWeapon")
       TNT1 A 0 A_SelectWeapon("CygnusOneWeapon")
       TNT1 A 0 
       goto deselect
  Flash:
       SNIF F 3 Bright A_Light2
       SNIF F 3 Bright A_Light1
       SNIF F 0 Bright A_Light0
       Goto LightDone     
       }
}

actor CygnusOneattackmode1 : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

actor CygnusOneattackmode2 : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

actor CygnusOneattackmode3 : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

actor CygnusOneattackmode4 : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

ACTOR CygnusOneWeapon : Weapon 
{
 Weapon.SelectionOrder 800
 Obituary "%o was engulfed in oblivion by %k"
 Inventory.PickupMessage ""
 Inventory.PickupSound "misc/pk_up"
 Weapon.AmmoUse 0
 Weapon.AmmoGive 0
 Weapon.AmmoType "Mana"
 +WEAPON.NOAUTOAIM
 +INVENTORY.UNDROPPABLE
  States
 {
  Spawn:
       TNT1 A -1
       Loop
  Ready:
       CLA2 A 1 A_WeaponReady
       goto ready
  Deselect:
       CLA2 A 1 A_Lower
       Loop
  Select:
       CLA2 A 0 A_Raise
       Loop
  Fire:
       CLA2 A 0 A_jumpIfinventory("CygnusOneattackmode1", 1, "CosmosBreathAttackcheck")
       CLA2 A 0 A_jumpIfinventory("CygnusOneattackmode2", 1, "DarkExhalationAttackCheck")
       CLA2 A 0 A_jumpIfinventory("CygnusOneattackmode3", 1, "CosmosEmbraceAttackcheck")
	   CLA2 A 0 A_jumpIfinventory("CygnusOneattackmode4", 1, "CosmicHorrorAttackcheck")
	   Goto ready
  AltFire:
  	   CLA2 A 1 ACS_execute(812)
       CLA2 A 1
       CLA2 A 13
       goto ready
  CosmosBreathAttack:
       TNT1 A 0 A_GunFlash
       TNT1 A 0 A_Takeinventory("mana", 30)
	   CLA2 B 8 Bright
	   TNT1 A 0 A_PlayWeaponSound("monster/disat1")
	   TNT1 AAAAAAAAAA 0 Bright A_FireCustomMissile("CygnusCosmosBreathShot", random(16, 48), random(-16, 16), random(-8, 8), CMF_AIMOFFSET)
	   CLA2 A 18
       goto ready
  DarkExhalationAttack:
       TNT1 A 0 A_GunFlash
       TNT1 A 0 A_Takeinventory("mana",60)
	   CLA2 B 8 Bright
	   TNT1 A 0 A_PlayWeaponSound("monster/disat1")
	   TNT1 A 0 A_FireCustomMissile("CygnusDarkExhalation", 0, 0, 0)
	   CLA2 A 18
       goto ready
  CosmosEmbraceAttack:
       TNT1 A 0 A_GunFlash
	   TNT1 A 0 A_Takeinventory("mana",60)
	   TNT1 A 0 A_PlayWeaponSound("monster/disat2")
	   CLA2 A 8 Bright
	   CLA2 B 0 A_FireCustomMissile("CygnusSlowEmbrace", 0, 0, 0)
	   CLA2 B 0 A_FireCustomMissile("CygnusSlowEmbrace", 90, 0, 0)
	   CLA2 B 0 A_FireCustomMissile("CygnusSlowEmbrace", -90, 0, 0)
	   CLA2 B 4 A_FireCustomMissile("CygnusSlowEmbrace", 180, 0, 0)
       goto ready 
  CosmicHorrorAttack:
	   TNT1 A 0 A_PlayWeaponSound("monster/disat2")
	   CLA2 A 0 A_Takeinventory("mana", 30)
       CLA2 A 8 Bright
	   CLA2 B 4 A_FireCustomMissile ("CygnusCosmicHorrorShot",0,0,0,0,0)
       goto ready
  CosmosBreathAttackcheck:
       TNT1 A 0 A_jumpIfinventory("mana", 30, "CosmosBreathAttack")
  goto ready
  DarkExhalationAttackCheck:
       TNT1 A 0 A_jumpIfinventory("mana", 60, "DarkExhalationAttack")  
  goto ready
  CosmosEmbraceAttackcheck:
       TNT1 A 0 A_jumpIfinventory("mana", 60, "CosmosEmbraceAttack")  
  goto ready
  CosmicHorrorAttackcheck:
       TNT1 A 0 A_jumpIfinventory("mana", 30, "CosmicHorrorAttack")  
  goto ready
  Flash:
       SNIF F 3 Bright A_Light2
       SNIF F 3 Bright A_Light1
       SNIF F 0 Bright A_Light0
       Goto LightDone     
       }
}

ACTOR CygnusTwoMorpher : PowerupGiver 
{
Scale 2
radius 48
height 128
powerup.type CygnusTwo
inventory.pickupmessage ""
powerup.duration 99999999999999
states
{
Spawn:
TNT1 A 6
loop
 }
 }


actor PowerCygnusTwo : PowerMorph
{
powerup.duration 99999999999999
PowerMorph.PlayerClass "CygnusTwoPlayer"
}

ACTOR CygnusTwoPlayer : PlayerPawn
{
  Health 1000
  Radius 20 
  Height 56
  Speed 1.0
  mass 2000
  Player.ColorRange 0, 0
  Player.JumpZ 12
  Player.MaxHealth 16000
  Player.DisplayName "Cygnus II"
  Player.SoundClass "CygnusTwo"
  Player.MorphWeapon "CygnusTwoWeapon0"
  Player.StartItem "Mana", 100
  limitedtoteam 1
  damagefactor "boss", 0
  damagefactor "Slime", 0
  PainChance 64
	SeeSound "Cygnus/Sight" 
	PainSound "Cygnus/Pain" 
	DeathSound "Cygnus/Death" 
	ActiveSound "Cygnus/Taunt"
	bloodcolor Black
	Species "Boss"
    +THRUACTORS
	+NOSKIN
	-PICKUP
    states
    {
	Spawn:
		CGNB A 10  
		Loop
	See:
		CGNB A 0 SetPlayerProperty(0, 1, 1)
		CGNB A 2 
        TNT1 A 0 A_SpawnItemEx("CygnusGhostA",0,0,0,0,0,0,0,128)
		CGNB A 2 
        TNT1 A 0 A_SpawnItemEx("CygnusGhostA",0,0,0,0,0,0,0,128)
		CGNB B 2 
        TNT1 B 0 A_SpawnItemEx("CygnusGhostB",0,0,0,0,0,0,0,128)
		CGNB B 2 
        TNT1 B 0 A_SpawnItemEx("CygnusGhostB",0,0,0,0,0,0,0,128)
		CGNB C 2 
        TNT1 C 0 A_SpawnItemEx("CygnusGhostC",0,0,0,0,0,0,0,128)
		CGNB C 2 
        TNT1 C 0 A_SpawnItemEx("CygnusGhostC",0,0,0,0,0,0,0,128)
		CGNB D 2 
        TNT1 D 0 A_SpawnItemEx("CygnusGhostD",0,0,0,0,0,0,0,128)
		CGNB D 2 
        TNT1 D 0 A_SpawnItemEx("CygnusGhostD",0,0,0,0,0,0,0,128)
		CGNB E 2 
        TNT1 E 0 A_SpawnItemEx("CygnusGhostE",0,0,0,0,0,0,0,128)
		CGNB E 2 
        TNT1 E 0 A_SpawnItemEx("CygnusGhostE",0,0,0,0,0,0,0,128)
		CGNB F 2 
        TNT1 F 0 A_SpawnItemEx("CygnusGhostF",0,0,0,0,0,0,0,128)
		CGNB F 2 
        TNT1 F 0 A_SpawnItemEx("CygnusGhostF",0,0,0,0,0,0,0,128)
		Loop
	Pain: 
        CGNB Q 2 
        CGNB Q 2 A_Pain 
        Goto See 
	Missile:
	    CGNB A 1 A_jumpIfinventory("UsingCosmicBlaze", 1, "CosmicBlaze")
		CGNB A 4
		CGNB BC 5 Bright  
		Goto Spawn
	CosmicBlaze:
	    CGNB GHIJKLMNOP 5 Bright A_FaceTarget
        Goto Spawn
	Death:
	    TNT1 A 0 a_givetotarget("BOSSKILLEDSTAT", 1)
		TNT1 A 0 a_givetotarget("reward", 1)
		CGNB Q 7
		CGNB R 7 A_PlayerScream
		CGNB S 7 A_NoBlocking
		CGNB TUVWXY 7
		CGNB Z -1
		Stop
    }
}

ACTOR CygnusTwoWeapon0 : Weapon 
{
 Weapon.SelectionOrder 800
 Obituary "%o was raped by %k"
 Inventory.PickupMessage ""
 Inventory.PickupSound "misc/pk_up"
 Weapon.AmmoUse 0
 Weapon.AmmoGive 0
 Weapon.AmmoType "Mana"
 +WEAPON.NOAUTOAIM
  States
 {
  Spawn:
       TNT1 A -1
       Loop
  Ready:
       TNT1 A 1 A_WeaponReady
       goto AltFire
  Fire:
  TNT1 A 1
  goto AltFire
  Deselect:
       TNT1 A 1 A_Lower
       Loop
  Select:
       TNT1 A 0 A_Raise
       Loop
  AltFire:
       TNT1 A 0 A_GiveInventory("CygnusTwoWeapon")
       TNT1 A 0 A_SelectWeapon("CygnusTwoWeapon")
       TNT1 A 0 
       goto deselect
  Flash:
       SNIF F 3 Bright A_Light2
       SNIF F 3 Bright A_Light1
       SNIF F 0 Bright A_Light0
       Goto LightDone     
       }
}

ACTOR CygnusTwoWeapon : Weapon 
{
 Weapon.SelectionOrder 800
 Obituary "%o was engulfed in oblivion by %k"
 Inventory.PickupMessage ""
 Inventory.PickupSound "misc/pk_up"
 Weapon.AmmoUse 0
 Weapon.AmmoGive 0
 Weapon.AmmoType "Mana"
 +WEAPON.NOAUTOAIM
 +INVENTORY.UNDROPPABLE
  States
 {
  Spawn:
       TNT1 A -1
       Loop
  Ready:
       CLA2 A 1 A_WeaponReady
       goto ready
  Deselect:
       CLA2 A 1 A_Lower
       Loop
  Select:
       CLA2 A 0 A_Raise
       Loop
  Fire:
       CLA2 A 0 A_jumpIfinventory("CygnusOneattackmode1", 1, "CosmicBlazecheck")
       CLA2 A 0 A_jumpIfinventory("CygnusOneattackmode2", 1, "DarkExhalationAttackCheck")
       CLA2 A 0 A_jumpIfinventory("CygnusOneattackmode3", 1, "DarkLifecheck")
	   CLA2 A 0 A_jumpIfinventory("CygnusOneattackmode4", 1, "CosmicHorrorAttackcheck")
	   Goto ready
  AltFire:
  	   CLA2 A 1 ACS_execute(812)
       CLA2 A 1
       CLA2 A 13
       goto ready
  CosmicBlaze:
       TNT1 A 0 A_GunFlash
	   TNT1 A 0 ACS_NamedExecuteAlways("CosmicBlazeClones", 0, 0)
       TNT1 A 0 A_Takeinventory("mana", 30)
	   CLA2 B 40 Bright
	   TNT1 A 0 A_PlayWeaponSound("Cygnus/Attack")
	   TNT1 A 0 Bright A_FireCustomMissile("CygnusCosmicBlaze", 0, 0, 0, 0)
	   CLA2 A 11
       goto ready
  DarkExhalationAttack:
       TNT1 A 0 A_GunFlash
       TNT1 A 0 A_Takeinventory("mana",60)
	   CLA2 B 16 Bright
	   TNT1 A 0 A_PlayWeaponSound("Cygnus/Attack")
	   CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",15,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",30,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",45,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",60,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",75,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",90,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",105,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",120,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",135,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",150,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",165,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",180,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",195,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",210,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",225,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",240,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",255,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",270,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",285,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",300,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",315,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",330,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",345,0,0,0)
       CLA3 A 0 A_FireCustomMissile("CygnusDarkExhalationPhaseTwoTracer",0,0,0,0)
	   CLA2 A 8
       goto ready
  DarkLife:
       TNT1 A 0 A_GunFlash
	   TNT1 A 0 A_JumpIfInventory("CygnusDarkLifeCooldown",1,"Ready")
	   TNT1 A 0 A_GiveInventory("CygnusDarkLifeCooldown",1)
	   TNT1 A 0 A_Takeinventory("mana",45)
	   TNT1 A 0 A_PlayWeaponSound("Cygnus/Attack")
	   CLA2 B 16 Bright
	   CLA2 A 8 ACS_NamedExecuteAlways("CygnusDarkLifeCopy", 0, 0,0,0)
       goto ready 
  CosmicHorrorAttack:
	   TNT1 A 0 A_PlayWeaponSound("Cygnus/Attack")
	   CLA2 A 0 A_Takeinventory("mana", 30)
       CLA2 A 8 Bright
	   CLA2 B 4 A_FireCustomMissile ("CygnusCosmicHorrorShot",0,0,0,0,0)
       goto ready
  CosmicBlazecheck:
       TNT1 A 0 A_jumpIfinventory("mana", 30, "CosmicBlaze")
  goto ready
  DarkExhalationAttackCheck:
       TNT1 A 0 A_jumpIfinventory("mana", 60, "DarkExhalationAttack")  
  goto ready
  DarkLifecheck:
       TNT1 A 0 A_jumpIfinventory("mana", 45, "DarkLife")  
  goto ready
  CosmicHorrorAttackcheck:
       TNT1 A 0 A_jumpIfinventory("mana", 30, "CosmicHorrorAttack")  
  goto ready
  Flash:
       SNIF F 3 Bright A_Light2
       SNIF F 3 Bright A_Light1
       SNIF F 0 Bright A_Light0
       Goto LightDone     
       }
}

ACTOR CygnusCosmosBreathShot
{
   Radius 8
   Height 12
   Speed 15
   Damage (random(15,30))
   PROJECTILE
   RENDERSTYLE Normal
   DamageType "Boss"
   SeeSound "HellSmith/hellfi"
   DeathSound "HellSmith/hellex"
   Translation "16:47=%[0.00,0.00,0.00]:[0.00,0.00,2.00]", "168:191=%[0.00,0.00,0.00]:[0.00,0.00,2.00]", "208:223=%[0.00,0.00,0.00]:[0.00,0.00,2.00]"
   DONTHURTSHOOTER
   Decal "BigScorch"
   +LOOKALLAROUND
   +RANDOMIZE
   States
   {
   Spawn:
		HEPA ABCDEF 3 Bright 
        loop
   Death:
      HELX A 3 Bright
      HELX B 3 Bright A_Explode(64,128)
      HELX CDEFGHIJ 3 Bright
      stop
   }
}

ACTOR CygnusDarkExhalation
{
	Radius 8
	Height 8
	Speed 40
	Damage 0
	+RIPPER
	+FLOORHUGGER
	+BLOODLESSIMPACT
	Projectile
	MissileType DarkExhalationFire
	Missileheight 0
	States
	{
	Spawn: 
		TNT1 A 1 Bright A_MissileAttack
  		TNT1 A 2
		Loop
	Death:	
		TNT1 A 6
		Stop
	}
}

ACTOR DarkExhalationFire
{
	Radius 1
    Height 1
    Speed 0
    Damage 0
    PROJECTILE
    RENDERSTYLE ADD
    ALPHA 0.9
    +NOCLIP
	+FLOORHUGGER
	damagetype "boss"
	SeeSound "TchernobogExplosionLimit"
    States
    {
	Spawn:
  		TEX2 AB 4 Bright 
    	TEX2 C 4 Bright A_Explode(192,144,0)
		TNT1 AAA 0 A_SpawnItemEx("AurelionFlameThrowerFireRemains",Random(-5,5),Random(-5,5),Random(1,8),0,0,0,Random(0,360),0,0)
		TEX2 DEFGHIJKL 3 Bright
     	Stop       
   	}
}

actor CygnusSlowEmbrace
{
  Radius 9
  Height 5
  Speed 35
  Damage 1
  RenderStyle Add
  DeathSound "Darkness/Blind"
  Projectile
  +SEEKERMISSILE
  +LOOKALLAROUND
  +RANDOMIZE
  +DONTREFLECT
  states
  {
	Spawn:
        TNT1 A 0
        TNT1 A 0 A_RearrangePointers(AAPTR_NULL,AAPTR_TARGET,AAPTR_TRACER)
        TNT1 A 0 A_LookEx(0,0,0,0,0,"Acquired")
        TNT1 A 0 A_RearrangePointers(AAPTR_MASTER,AAPTR_MASTER,AAPTR_TRACER)
        Goto Idle
    Acquired:
        TNT1 A 0 A_RearrangePointers(AAPTR_MASTER,AAPTR_MASTER,AAPTR_TARGET)
        Goto Idle
	Idle:
		BONE A 0 A_BishopMissileWeave
		BONE A 0 A_SeekerMissile(25,10)
		BONE A 2 bright A_SpawnItemEx("EMFX",0,0,0,0,0,0,0,128)
		Loop
	Death:
		BONE A 0 BRIGHT A_SpawnItemEx("DarknessExplosion",0,0,0,0,0,0,0,0)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,0)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,10)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,20)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,30)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,40)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,50)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,60)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,70)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,80)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,90)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,100)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,110)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,120)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,130)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,140)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,150)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,160)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,170)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,180)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,190)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,200)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,210)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,220)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,230)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,240)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,250)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,260)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,270)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,280)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,290)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,300)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,310)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,320)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,330)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,340)
		BONE A 0 BRIGHT	A_CustomMissile("Curse",1,0,350)
		BONE BC 5 bright
		stop
  }
}

actor CygnusCosmicHorrorShot
{
  Radius 9
  Height 5
  Speed 35
  Damage 1
  RenderStyle Add
  DeathSound "Darkness/Blind"
  Projectile
  +RANDOMIZE
  +DONTREFLECT
  states
  {
	Spawn:
		BONE A 0 BRIGHT A_BishopMissileWeave
		BONE A 2 bright A_SpawnItemEx("EMFX",0,0,0,0,0,0,0,128)
		Loop
	Death:
		BONE A 0 BRIGHT A_SpawnItemEx("DarknessExplosion",0,0,0,0,0,0,0,0)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,0)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,10)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,20)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,30)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,40)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,50)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,60)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,70)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,80)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,90)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,100)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,110)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,120)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,130)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,140)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,150)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,160)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,170)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,180)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,190)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,200)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,210)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,220)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,230)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,240)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,250)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,260)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,270)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,280)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,290)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,300)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,310)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,320)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,330)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,340)
		BONE A 0 BRIGHT	A_CustomMissile("CosmicHorrorCurse",1,0,350)
		BONE BC 5 bright
		stop
  }
}

Actor CosmicHorrorCurse
{
	Radius 1
	Height 1
	Speed 15
	RenderStyle Add
	+NoGravity
	+NoBlockMap
	+DontSplash
	+ForceXYBillboard
	+FLOORHUGGER
	States
	{
		Spawn:
			TNT1 A 0 BRIGHT A_SpawnItemEx("CosmicHorrorSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("CosmicHorrorSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("CosmicHorrorSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("CosmicHorrorSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("CosmicHorrorSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("CosmicHorrorSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("CosmicHorrorSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("CosmicHorrorSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("CosmicHorrorSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("CosmicHorrorSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("CosmicHorrorSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("CosmicHorrorSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("CosmicHorrorSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("CosmicHorrorSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("CosmicHorrorSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("CosmicHorrorSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
		Death:
			TNT1 A 0
			stop
	}
}

ACTOR PowerCosmicHorror : PowerProtection
{
  DamageFactor "Boss", 2.0
}

actor CosmicHorrorSphere : PowerupGiver
{
	inventory.pickupmessage "your heart beats so fast, he's near"
	radius 64
	height 64
	powerup.color "GrayMap"
	inventory.maxamount 0
	powerup.type PowerCosmicHorror
	powerup.duration -20
	+AUTOACTIVATE
	states
	{
		Spawn:
			NULL ABCD 6 bright
			stop
	}
}

ACTOR CygnusDarkExhalationPhaseTwoTracer : HSSTracer
{
   Translation "0:255=%[2.00,2.00,2.00]:[0.00,0.00,0.00]"
   Damage 5
   Speed 12
   States
   {
   Spawn:
      TNT1 A 1 Bright A_CStaffMissileSlither
      TNT1 A 0 A_CustomMissile("CygnusDarkExhalationPhaseTwoTracerPuff",0,0,0,0)
      loop
   Death:
      FTRA K 4 Bright
      FTRA L 4 Bright A_Explode(32,128)
      FTRA MNO 3 Bright
      stop
   }
}

ACTOR CygnusDarkExhalationPhaseTwoTracerPuff : HSSTracerPuff
{
   Translation "0:255=%[2.00,2.00,2.00]:[0.00,0.00,0.00]"
}

ACTOR CygnusDarkLifeCopy
{
  Health 99999
  Radius 20
  Height 56
  Mass 500
  Speed 0
  PainChance 0
  Monster
  Translation "0:255=%[2.00,2.00,2.00]:[0.00,0.00,0.00]"
  Species "Boss"
  +THRUACTORS
  -SHOOTABLE
  +NOTARGET
  SeeSound "Cygnus/sight"
  PainSound "Cygnus/pain"
  DeathSound "Cygnus/death"
  ActiveSound "Cygnus/active"
  States
  {
  Spawn:
    VILE AB 10 A_Look
    Loop
  See:
    VILE AB 10 A_Chase("","")
    Loop
  Missile:
    VILE GHIJKLMN 5 Bright A_FaceTarget
	TNT1 A 0 A_TransferPointer(AAPTR_MASTER,AAPTR_DEFAULT,AAPTR_TRACER,AAPTR_TARGET)
	VILE O 0 Bright A_FaceTarget
    VILE O 5 Bright A_CustomMissile ("CygnusCosmicBlaze",32,0,0)
    VILE P 5 Bright A_FaceTarget
    Goto See
  Death:
    VILE Q 7
    VILE R 7 A_Scream
    VILE S 7 A_NoBlocking
    VILE TUVWXY 7
    VILE Z -1
    Stop
  }
}

ACTOR CygnusCosmicBlaze : FastProjectile
{
  Radius 30
  Height 30
  Speed 100
  Damage (1*random(30,100))
  Projectile
  +RANDOMIZE
  RenderStyle Add
  Scale 0.5 
  SeeSound "Cerebral/Fire1"
  deathsound "moloch/thundercrash"
  MissileType "CygnusCosmicBlazeTrail"
  MissileHeight 8
  Alpha 0.75
  States
  {
  Spawn:
    KBLS AAAAA 10 Bright A_SetScale(ScaleX+0.1)
	Goto Looping
  Looping:
    KBLS A 1 Bright A_FadeIn(0.1)
	KBLS A 0 Bright A_SetScale(ScaleX+0.1)
	KBLS A 1 Bright A_FadeOut(0.1)
    KBLS A 0 Bright A_SetScale(ScaleX-0.1)
	Loop
  Death:
    KBLS A 0 A_Explode(48,128)
    KBLS A 0 Bright A_SetScale(ScaleX+0.1)
    KBLS A 1 Bright A_FadeOut(0.04)
    Loop
  }
}

ACTOR CygnusCosmicBlazeTrail
{
  Projectile
  Damage 0
  +THRUACTORS
  +NOBLOCKMAP
  +BLOODLESSIMPACT
  +CLIENTSIDEONLY 
  +NoBlockMap
  -BLOODSPLATTER
  +DontSplash
  +FORCEXYBILLBOARD
  Speed 0
  Radius 1
  Height 1
  RenderStyle Add
  Scale 0.5
  States
  {
  Spawn:
    KBLS A 0 Bright A_SetScale(ScaleX-0.01)
	KBLS A 1 Bright A_FadeOut(0.04)
	Loop
  }
}

ACTOR CygnusCosmicBlazeTarget
{
  +NOBLOCKMAP
  +PUFFGETSOWNER
  +PUFFONACTORS
  +ALWAYSPUFF
  +NOGRAVITY
  Mass 1
  States
  { 
  Spawn:
    TNT1 A 0
    TNT1 A 2
    TNT1 A 4 A_TransferPointer(AAPTR_DEFAULT,AAPTR_TARGET,AAPTR_DEFAULT,AAPTR_TRACER)
  Melee:
    TNT1 AAA 4
    Stop
  }
}

Actor CygnusGhostA
{   
  Radius 1
  Height 1
  Speed 0
  Scale 1.0
  Projectile
  RenderStyle Translucent
  VisibleToPlayerClass Marine, Renegade, Avenger, Android, Huntsman, Hunter, Priest
  Translation "0:255=%[2.00,2.00,2.00]:[0.00,0.00,0.00]"
  Alpha 1.0
  States
  {
  Spawn:
    TNT1 A 3
	TNT1 A 0 A_SetScale(ScaleX+0.1)
    VILE A 3 A_FadeOut(0.10)
    Goto Spawn+1
  }
}

Actor CygnusGhostB : CygnusGhostA
{   
  States
  {
  Spawn:
    TNT1 A 3
	TNT1 A 0 A_SetScale(ScaleX+0.1)
    VILE B 3 A_FadeOut(0.10)
    Goto Spawn+1
  }
}

Actor CygnusGhostC : CygnusGhostA
{   
  States
  {
  Spawn:
    TNT1 A 3
	TNT1 A 0 A_SetScale(ScaleX+0.1)
    VILE C 3 A_FadeOut(0.10)
    Goto Spawn+1
  }
}

Actor CygnusGhostD : CygnusGhostA
{   
  States
  {
  Spawn:
    TNT1 A 3
	TNT1 A 0 A_SetScale(ScaleX+0.1)
    VILE D 3 A_FadeOut(0.10)
    Goto Spawn+1
  }
}

Actor CygnusGhostE : CygnusGhostA
{   
  States
  {
  Spawn:
    TNT1 A 3
	TNT1 A 0 A_SetScale(ScaleX+0.1)
    VILE E 3 A_FadeOut(0.10)
    Goto Spawn+1
  }
}

Actor CygnusGhostF : CygnusGhostA
{   
  States
  {
  Spawn:
    TNT1 A 3
	TNT1 A 0 A_SetScale(ScaleX+0.1)
    VILE F 3 A_FadeOut(0.10)
    Goto Spawn+1
  }
}

Actor CygnusDarkLifeCooldown : PowerDamage
{
	DamageFactor "Nothing", 1.0
	PowerUp.Duration -15
}