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


actor PowerBelfegart : PowerMorph
{
powerup.duration 99999999999999
PowerMorph.PlayerClass "BelfegartPlayer"
}

ACTOR BelfegartPlayer : PlayerPawn
{
  Health 1000
  Radius 24 
  Height 64 
  PainChance 0
  Speed 0.8
  mass 1000
  Player.ColorRange 0, 0
  Player.JumpZ 6
  Player.MaxHealth 16000
  Player.ViewHeight 60
  Player.DisplayName "Belfegart"
  Player.SoundClass "Belfegart"
  Player.MorphWeapon "BelfegartWeapon0"
  Player.StartItem "Mana", 100
  limitedtoteam 1
  damagefactor "boss", 0
	SeeSound "monster/ar2sit" 
	PainSound "baron/pain"
	MeleeSound "baron/melee"
	bloodcolor blue
	+NORADIUSDMG
	+NOSKIN
	-PICKUP
  states
{
	Spawn:
		KXBE AB 10 SetPlayerProperty(0, 1, 1)
		Loop 
	See:
		KXBE AAAAAABBBBBBCCCCCCDDDDDD 1 A_GiveInventory("BelfegartParticleSpawner",1)
		Loop
	Melee:
	Missile:
	    KXBE E 1 A_JumpIfInventory("UsingWrath", 1, "Wrath")
	    KXBE E 0 A_JumpIfInventory("UsingAlpha", 1, "Alpha")
		KXBE E 0 A_JumpIfInventory("UsingDetermination", 1, "Determination")
		KXBE E 3 Bright  
		KXBE FGH 4 Bright 
		Goto Spawn
	Wrath:
	    KXBE EEEFFFFGGGG 1
		KXBE H 9
		KXBE H 8
		Goto Spawn
	Alpha:
	    KXBE IJK 6 Bright
	    KXBE L 6 Bright 
        Goto Spawn
	Determination:
	    KXBE M 70
		KXBE NOP 6
		KXBE P 2
		Goto Spawn
	RollingCrush:
        KXBE EEEEEEEEEEEEEEEEEEEE 1 Bright A_JumpIf(Health<=0,"Death")
		Goto Spawn
	RollingCrushTwo:
        KXBE FFFF 1 Bright A_JumpIf(Health<=0,"Death")
		Goto Spawn
	RollingCrushThree:
        KXBE GGGGGGGGGG 1 Bright A_JumpIf(Health<=0,"Death")
		Goto Spawn
	BelfegartMelee:
	    KXBE IJKL 2 Bright A_JumpIf(Health<=0,"Death")
        Goto Spawn
	Death:
		TNT1 A 0 a_givetotarget("BOSSKILLEDSTAT", 1)
		TNT1 A 0 a_givetotarget("reward", 1)
		TNT1 A 0 A_NoBlocking
		KXBE QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ 1 A_CustomMissile("Blood",random(20,42),random(-4,4),random(0,359),2,random(-10,10))
		KXBE QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ 1 A_CustomMissile("Blood",random(20,42),random(-4,4),random(0,359),2,random(-10,10))
		KXBE QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ 1 A_CustomMissile("Blood",random(20,42),random(-4,4),random(0,359),2,random(-10,10))
		TNT1 A 1 A_SpawnItemEx("TeleportFog",0,0,45,0,0,0,0)
		TNT1 A 1
		TNT1 A 0 
		BLAN A -1
		Stop
}
}

ACTOR BelfegartWeapon0 : Weapon 
{
 Weapon.SelectionOrder 800
 Obituary "%o was engulfed in flames by %k"
 Inventory.PickupMessage ""
 Inventory.PickupSound "misc/pk_up"
 Weapon.AmmoUse 5
 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("BelfegartWeapon")
       TNT1 A 0 A_SelectWeapon("BelfegartWeapon")
       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 Belfegartattackmode1 : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

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

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

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

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

ACTOR BelfegartWeapon : Weapon 
{
 Weapon.SelectionOrder 800
 Obituary "%o was engulfed in flames 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 0 A_TakeInventory("UsingAlpha", 1)
	   CLA2 A 0 A_TakeInventory("UsingWrath", 1)
	   CLA2 A 0 A_TakeInventory("UsingDetermination", 1)
       CLA2 A 1 A_WeaponReady(WRF_ALLOWRELOAD)
       goto ready
  Deselect:
       CLA2 A 1 A_Lower
       Loop
  Select:
       CLA2 A 0 A_Raise
       Loop
  Fire:
       CLA2 A 0 A_jumpIfinventory("Belfegartattackmode1", 1, "DashAttackcheck")
       CLA2 A 0 A_jumpIfinventory("Belfegartattackmode2", 1, "SpreadAttackcheck")
       CLA2 A 0 A_jumpIfinventory("Belfegartattackmode3", 1, "AlphaAttackcheck")
	   CLA2 A 0 A_jumpIfinventory("Belfegartattackmode4", 1, "RollingCrushcheck")
	   CLA2 A 0 A_jumpIfinventory("Belfegartattackmode5", 1, "Determinationcheck")
	   Goto ready
  AltFire:
  	   CLA2 A 1 ACS_execute(812)
       CLA2 A 1
       CLA2 A 16
       goto ready
  DashAttack:
       TNT1 A 0 A_GiveInventory("UsingWrath", 1)
       TNT1 A 0 A_Takeinventory("mana", 40)
	   CLA2 AAAAAAAAAAAA 1 bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   TNT1 A 0 A_PlaySound ("monster/ar2sit")
	   TNT1 A 0 Acs_ExecuteAlways(617, 0, 10, 64)
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   CLA2 B 1 a_firecustommissile("BelfegartDashAttack")
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   CLA2 B 1 a_firecustommissile("BelfegartDashAttack")
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   CLA2 B 1 a_firecustommissile("BelfegartDashAttack")
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   CLA2 B 1 a_firecustommissile("BelfegartDashAttack")
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   CLA2 B 1 a_firecustommissile("BelfegartDashAttack")
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   CLA2 B 1 a_firecustommissile("BelfegartDashAttack")
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   CLA2 B 1 a_firecustommissile("BelfegartDashAttack")
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   CLA2 B 1 a_firecustommissile("BelfegartDashAttack")
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   CLA2 B 1 a_firecustommissile("BelfegartDashAttack")
       CLA2 A 8 bright
       goto ready
  SpreadAttack:
       CLA2 A 0 A_Takeinventory("mana", 25)
       CLA2 A 8 Bright
	   CLA2 BBBBBBBBBBBBBB 0 A_FireCustomMissile ("BelfegartSpreadBall",random(-15,15),0,0,0,0)
	   CLA2 B 8 A_FireCustomMissile ("BelfegartSpreadBall",0,0,0,0,0)
       goto ready
  AlphaAttack:
       TNT1 A 0 A_GiveInventory("UsingAlpha", 1)
       CLA2 A 0 A_Takeinventory("mana", 60)
       CLA2 A 0 A_GunFlash
	   CLA2 A 18
	   TNT1 A 0 A_PlaySound("Belfegart/Wolf",CHAN_7,1.0,FALSE,ATTN_NONE)
       TNT1 A 0 A_FireCustomMissile ("BelfegartIceWolf",45,0,5,-32,0)
	   TNT1 A 0 A_FireCustomMissile ("BelfegartIceWolf",-45,0,-5,-32,0)
       CLA2 B 6
       Goto ready
  RollingCrush:
       CLA2 A 0 A_Takeinventory("mana", 90)
	   TNT1 A 0 A_PlaySound("Belfegart/Rolling",CHAN_7,1.0,FALSE,ATTN_NONE)
	   TNT1 A 0 Acs_ExecuteAlways(617, 0, 10, 48)
	   TNT1 A 0 ACS_NamedExecuteAlways("True Sprite",0,Belfegart_RollingCrush)
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushTrail1",0,0,0,0,0,0,0,128)
	   CLA2 B 1 A_RadiusGive("BelfegartRollingCrushPlayer",128,RGF_PLAYERS,1)
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushTrail1",0,0,0,0,0,0,0,128)
	   CLA2 B 1 A_RadiusGive("BelfegartRollingCrushPlayer",128,RGF_PLAYERS,1)
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushTrail1",0,0,0,0,0,0,0,128)
	   CLA2 B 1 A_RadiusGive("BelfegartRollingCrushPlayer",128,RGF_PLAYERS,1)
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushTrail1",0,0,0,0,0,0,0,128)
	   CLA2 B 1 A_RadiusGive("BelfegartRollingCrushPlayer",128,RGF_PLAYERS,1)
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushTrail1",0,0,0,0,0,0,0,128)
	   CLA2 B 1 A_RadiusGive("BelfegartRollingCrushPlayer",128,RGF_PLAYERS,1)
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushTrail1",0,0,0,0,0,0,0,128)
	   CLA2 B 1 A_RadiusGive("BelfegartRollingCrushPlayer",128,RGF_PLAYERS,1)
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushTrail1",0,0,0,0,0,0,0,128)
	   CLA2 B 1 A_RadiusGive("BelfegartRollingCrushPlayer",128,RGF_PLAYERS,1)
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushTrail1",0,0,0,0,0,0,0,128)
	   CLA2 B 1 A_RadiusGive("BelfegartRollingCrushPlayer",128,RGF_PLAYERS,1)
	   CLA2 AAAA 0 Bright a_spawnitemex("BelfegartDashFireEffect",frandom(-10,10),frandom(-10,10),0,frandom(-1,1),frandom(-1, 1),frandom(1, 5),0,0)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushTrail1",0,0,0,0,0,0,0,128)
	   CLA2 B 1 A_RadiusGive("BelfegartRollingCrushPlayer",128,RGF_PLAYERS,1)
       CLA2 AAAA 1 A_ScaleVelocity(0.75)
	   TNT1 A 0 A_Stop
       CLA2 C 0 A_PlaySound("baron/melee",0,1.0)
	   CLA2 B 1 A_RadiusGive("BelfegartRollingCrushPlayer",128,RGF_PLAYERS,1)
	   TNT1 A 0 A_Stop
	   CLA2 B 1 A_RadiusGive("BelfegartRollingCrushPlayer",128,RGF_PLAYERS,1)
	   TNT1 A 0 A_Stop
	   CLA2 B 1 A_RadiusGive("BelfegartRollingCrushPlayer",128,RGF_PLAYERS,1)
	   TNT1 A 0 A_Stop
	   CLA2 B 1 A_RadiusGive("BelfegartRollingCrushPlayer",128,RGF_PLAYERS,1)
	   TNT1 A 0 A_Stop
	   CLA2 B 1 A_RadiusGive("BelfegartRollingCrushPlayer",128,RGF_PLAYERS,1)
	   TNT1 A 0 A_Stop
	   CLA2 EEE 0 ThrustThingZ(0,150,0,0)
	   Goto RollingCrushLoop
  RollingCrushLoop:
       TNT1 A 0 ACS_NamedExecuteAlways("True Sprite",0,Belfegart_RollingCrushTwo)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushTrail2",0,0,0,0,0,0,0,128)
	   CLA2 BB 1 a_spawnitemex("BelfegartDashFireEffect",frandom(-20,20),frandom(-20,20),frandom(0,48),frandom(-1,1),frandom(-1,1),frandom(-1,1),0,0)
	   CLA2 E 0 A_JumpIf(Momz==0,"RollingCrushEnd")
	   Loop
  RollingCrushEnd:
       TNT1 A 0 ACS_NamedExecuteAlways("True Sprite",0,Belfegart_RollingCrushThree)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushExplosionSpawner",0,0,0,25,0,0,0)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushExplosionSpawner",0,0,0,25,0,0,30)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushExplosionSpawner",0,0,0,25,0,0,60)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushExplosionSpawner",0,0,0,25,0,0,90)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushExplosionSpawner",0,0,0,25,0,0,120)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushExplosionSpawner",0,0,0,25,0,0,150)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushExplosionSpawner",0,0,0,25,0,0,180)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushExplosionSpawner",0,0,0,25,0,0,-30)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushExplosionSpawner",0,0,0,25,0,0,-60)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushExplosionSpawner",0,0,0,25,0,0,-90)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushExplosionSpawner",0,0,0,25,0,0,-120)
	   TNT1 A 0 A_SpawnItemEx("BelfegartRollingCrushExplosionSpawner",0,0,0,25,0,0,-150)
	   TNT1 A 0 A_PlaySound("Belfegart/Crush",CHAN_7,1.0,FALSE,ATTN_NONE)
	   CLA2 A 15
	   Goto Ready
  Determination:
       TNT1 A 0 A_GiveInventory("UsingDetermination", 1)
	   CLA2 A 0 A_Takeinventory("BelfegartDetermination", 1000)
	   TNT1 A 0 SetPlayerProperty (0, 1, 0)
	   CLA2 A 0 A_PlaySound ("monster/ar2sit",CHAN_7,1.0,FALSE,ATTN_NONE)
	   CLA2 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("GateKeeperAzureParticle", Random(12, 36), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
	   TNT1 A 0 A_PlaySound ("Paladin/Blaster",CHAN_WEAPON,1.0,0,ATTN_NONE)
	   TNT1 A 0 A_PlaySound ("Paladin/Blaster",CHAN_6,1.0,0,ATTN_NONE)
	   TNT1 A 0 A_PlaySound ("Paladin/Blaster",CHAN_7,1.0,0,ATTN_NONE)
	   TNT1 A 0 A_GiveInventory("BelfegartShield", 1)
	   TNT1 A 0 SetPlayerProperty (0, 0, 0)
	   TNT1 A 0 A_TakeInventory("BelfegartDeterminationSoundToken",1)
       CLA3 B 20 A_RailAttack(500,0,0,"Blue","Blue",1,0,"BelfegartDeterminationPuff",0,0,0,0,48.0,1.0,"BelfegartDeterminationPuff")
	   Goto Ready
  DashAttackcheck:
       TNT1 A 0 A_jumpIfinventory("mana", 40, "DashAttack")
  goto ready
  SpreadAttackcheck:
       TNT1 A 0 A_jumpIfinventory("mana", 30, "SpreadAttack")  
  goto ready
  AlphaAttackcheck:
       TNT1 A 0 A_jumpIfinventory("mana", 60, "AlphaAttack")  
  goto ready
  RollingCrushcheck:
       TNT1 A 0 A_jumpIfinventory("mana", 90, "RollingCrush")  
  goto ready
  Determinationcheck:
       TNT1 A 0 A_jumpIfinventory("BelfegartDetermination", 1000, "Determination")  
  goto ready
  Reload:
       TNT1 A 0 ACS_NamedExecuteAlways("True Sprite",0,Belfegart_Melee)
       CLA2 C 0 A_PlaySound("baron/melee",0,1.0)
       CLA2 B 8 Bright A_CustomPunch(6666 , 1 , 0, "BulletPuffCent", 108)
	   Goto Ready
  Flash:
       SNIF F 3 Bright A_Light2
       SNIF F 3 Bright A_Light1
       SNIF F 0 Bright A_Light0
       Goto LightDone     
       }
}

Actor BelfegartDashAttack
{
	PROJECTILE
	+FORCERADIUSDMG
	+DONTREFLECT
	Speed 30
	Radius 2
	Height 2
	Obituary "%o was knocked out by %k." 
	damagetype "DeathKnightDash"
	damage 1
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Explode(23, 128, 0, 0)
		TNT1 A 1
		Stop
	}
}

ACTOR BelfegartDashFireEffect
{
  Radius 6
  Height 16
  Speed 0
  Damage (0)
  Projectile
  +RIPPER
  -BLOODSPLATTER
  +BLOODLESSIMPACT
  +NODAMAGETHRUST
  RenderStyle Add
  Alpha 1
  damagetype "boss"
  Translation "160:168=192:207"
  States
  {
  Spawn:
    FIRE A 2 Bright 
    FIRE BAB 2 Bright 
    FIRE C 2 Bright 
    FIRE BCBCDCDCDEDED 2 Bright 
    FIRE E 2 Bright 
    FIRE FEFEFGHGHGH 2 Bright 
    Stop
  }
}

ACTOR BelfegartSpreadBall
{
  Radius 6
  Height 16
  Speed 1
  Damage (1*Random(40,100))
  Projectile
  +RANDOMIZE
  Translation "112:127=192:207"
  DamageType "Boss"
  RenderStyle Add
  Alpha 1
  SeeSound "baron/attack"
  DeathSound "weapons/hellex"
  Decal "BaronScorch"
  States
  {
  Spawn:
    BAL7 A 0
    BAL7 A 0 A_ScaleVelocity(frandom(5.0,30.0))
    BAL7 AB 4 Bright
    Goto Spawn+2
  Death:
    ARCB J 0 Bright A_SetTranslucent (0.67,1)
    ARCB J 3 Bright
    ARCB K 3 Bright 
    ARCB LMN 3 Bright
    Stop
  }
}

Actor BelfegartIceWolf
{
	Speed 20
	Damage (50)
	Radius 30
    Height 34
	RenderStyle Translucent
	Alpha 0.9
	BounceCount 2
	BounceFactor 1.005
    WallBounceFactor 1.005
	PROJECTILE
	+STEPMISSILE
    +NOEXPLODEFLOOR
    -NOGRAVITY
    +SEEKERMISSILE
	+LOOKALLAROUND
    +BOUNCEONWALLS
	ReactionTime 15
	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:
		BEWO A 0 Bright A_SeekerMissile(35,15)
		BEWO AA 1 A_SpawnItemEx("BelfegartIceWolfTrailA",0,0,0,0,0,0,0,128)
		BEWO A 0 Bright A_SeekerMissile(35,15)
		BEWO BB 1 A_SpawnItemEx("BelfegartIceWolfTrailB",0,0,0,0,0,0,0,128)
		BEWO A 0 Bright A_SeekerMissile(35,15)
		BEWO CC 1 A_SpawnItemEx("BelfegartIceWolfTrailC",0,0,0,0,0,0,0,128)
		BEWO A 0 Bright A_SeekerMissile(35,15)
		BEWO DD 1 A_SpawnItemEx("BelfegartIceWolfTrailD",0,0,0,0,0,0,0,128)
		TNT1 A 0 A_CountDown
		Goto Idle
	Death:
		BEWO EEEEFFFFGGGG 1 Bright
		TNT1 A 0 A_PlaySound("Belfegart/Froze",CHAN_VOICE,1.0)
		TNT1 A 0 A_PlaySound("Belfegart/Froze",CHAN_6,1.0)
		TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("FrostTwinkleAWalk",0,0,0,FRandom(-4,4),FRandom(-4,4),FRandom(-4,4)) 
		TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("FrostTwinkleBWalk",0,0,0,FRandom(-4,4),FRandom(-4,4),FRandom(-4,4)) 
	    TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("FrostTwinkleCWalk",0,0,0,FRandom(-4,4),FRandom(-4,4),FRandom(-4,4)) 
		TNT1 AAAAAAAAAA 0 A_SpawnItemEx("BelfegartWolfFrostEffect",FRandom(-3,3),FRandom(-3,3),1,FRandom(-4,4),FRandom(-4,4),FRandom(0,4),0,SXF_TRANSFERPOINTERS)
		TNT1 A 0 A_SpawnItemEx("BelfegartWolfFrostEffect",0,0,3,FRandom(-1,1),FRandom(-1,1),FRandom(0,1))
	    TNT1 A 0 A_RadiusGive("BelfegartFrostCheck",160,RGF_PLAYERS)
		Stop
	}
}

ACTOR BelfegartWolfFrostEffect
{
	Speed 1
	Radius 1
	Height 1
	Alpha 0.8
	RenderStyle Add
	Scale 1.0
	Damage 0
	Projectile
	+HexenBounce
	+ThruActors
	+ClientSideOnly
	States
	{
	Spawn:
		PLSS JKLMNOPQRSTUVWX 3 A_FadeOut(0.05)
		Stop
	Death:
		PLSS X 0
		Stop
	    }
}

Actor BelfegartIceWolfTrailA
{   
  Radius 1
  Height 1
  Speed 0
  +NOINTERACTION
  +CLIENTSIDEONLY
  +NOCLIP
  Projectile
  RenderStyle Add
  Alpha 0.9
  States
  {
  Spawn:
    TNT1 A 1
    BEWO A 1 A_FadeOut(0.05)
    Wait
  }
}

Actor BelfegartIceWolfTrailB : BelfegartIceWolfTrailA
{   
  States
  {
  Spawn:
    TNT1 A 1
    BEWO B 1 A_FadeOut(0.05)
    Wait
  }
}

Actor BelfegartIceWolfTrailC : BelfegartIceWolfTrailA
{   
  States
  {
  Spawn:
    TNT1 A 1
    BEWO C 1 A_FadeOut(0.05)
    Wait
  }
}

Actor BelfegartIceWolfTrailD : BelfegartIceWolfTrailA
{   
  States
  {
  Spawn:
    TNT1 A 1
    BEWO D 1 A_FadeOut(0.05)
    Wait
  }
}

Actor BelfegartFrostCheck : CustomInventory 
{
  Inventory.Amount 1
  Inventory.MaxAmount 5
  Inventory.InterHubAmount 1
  +INVENTORY.QUIET
  +INVENTORY.AUTOACTIVATE
  States
  {
  Spawn:
    TNT1 A 1
    Stop
  Pickup:
    TNT1 A 0 A_JumpIfInventory("BelfegartWeapon", 1, "Succeed")
	TNT1 A 0 A_GiveInventory("BelfegartFrost", 1)
    Stop
  Succeed:
    TNT1 A 0
    Stop
  }
}

Actor BelfegartFrost : PowerSpeed
{
    Speed 0.25
	Powerup.Duration -5
	Powerup.Color "01 F8 FF"
}

Actor BelfegartRollingCrushExplosionSpawner
{
  Radius 1
  Height 1
  Damage (0)
  Projectile
  Speed 25
  +Ripper
  +BloodlessImpact
  States
  {
  Spawn:
    TNT1 AAAAAAAAAA 3 Bright A_CustomMissile("BelfegartRollingCrushExplosion", 0, 0, 0, 4)
    Stop
  }
}

Actor BelfegartRollingCrushExplosion
{
	Speed 0
	Radius 1
	Height 1
	Scale 0.85
	PROJECTILE
	Damage 0
	+RIPPER
	+FLOORHUGGER
	+BLOODLESSIMPACT
	DamageType "Boss"
	Obituary "%o was no challenge for the Dark Prince Belfegart"
	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_PlaySound("TchernobogExplosionLimit")
			TEX2 ABC 4 Bright A_Explode(64, 128, 0)
		Death:
			TNT1 A 0 A_Stop
			TEX2 DEFGHIJKL 3 Bright A_Explode(64, 128, 0)
		Stop
	}
}

Actor BelfegartRollingCrushPlayer : CustomInventory
{
    States
    {
    Pickup:
        TNT1 A 0 Acs_NamedExecuteAlways("BelfegartRollingCrushPlayer",0,0,0,0)
		TNT1 A 0 A_ChangeFlag("THRUACTORS",1)
        Stop
    }
}

Actor BelfegartRollingCrushTrail1
{   
  Radius 2
  Height 2
  Speed 0
  Scale 1.0
  Projectile
  RenderStyle Translucent
  VisibleToPlayerClass Marine, Renegade, Avenger, Android, Huntsman, Hunter, Priest, Engineer
  Alpha 0.8
  States
  {
  Spawn:
    TNT1 A 3
    KXBE E 3 A_FadeOut(0.04)
    Goto Spawn+1
  }
}

Actor BelfegartRollingCrushTrail2 : BelfegartRollingCrushTrail1
{   
  States
  {
  Spawn:
    TNT1 A 3
    KXBE F 3 A_FadeOut(0.04)
    Goto Spawn+1
  }
}

Actor BelfegartDetermination : Inventory
{
	inventory.amount 1
	inventory.maxamount 1000
	+IGNORESKILL
}

ACTOR BelfegartDeterminationPuff
{
	DamageType "Boss"
	RenderStyle Add
	States
	{
	Spawn:
		TNT1 A 0
	    TNT1 A 0 A_PlaySound("TchernobogExplosionLimit")
		TEX2 ABC 4 Bright A_Explode(64, 160, 0)
		TNT1 A 0 A_Stop
		TEX2 DEFGHIJKL 3 Bright A_Explode(64, 160, 0)
		Stop
	}
}

Actor BelfegartDeterminationSoundToken : Inventory
{
	Inventory.MaxAmount 1
}

Actor BelfegartParticleSpawner : CustomInventory
{
    States
    {
    Pickup:
	    TNT1 A 0 A_jumpIfinventory("BelfegartDetermination", 1000, "Azure")
        Stop
	Azure:
	    TNT1 A 0 A_SpawnItemEx("GateKeeperAzureParticle", Random(12, 36), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
        Stop
    }
}

ACTOR BelfegartShield : CustomInventory
{
	Radius 1
	Height 1
    States
	{
	Spawn:
		ARM3 A -1
		Stop	
    Pickup:
        TNT1 A 0 A_GiveInventory("BelfegartShield2",1)
        Stop
	}
}

ACTOR BelfegartShield2 : BasicArmorPickup
{ 
    Armor.SavePercent 100.0
    Armor.SaveAmount 600
    +INVENTORY.ALWAYSPICKUP
}

Actor UsingWrath : Inventory
{
	inventory.maxamount 1
}

Actor UsingAlpha : Inventory
{
	inventory.maxamount 1
}

Actor UsingDetermination : Inventory
{
	inventory.maxamount 1
}

ACTOR MuicifircasDecoration 7671
{
  //$Category KXDecorations
  Radius 40
  Height 110
  +SOLID
  States
  {
  Spawn:
    TLCD A -1
    Stop
  }
}

ACTOR SsensuoicanetDecoration 7672
{
  //$Category KXDecorations
  Radius 40
  Height 110
  +SOLID
  States
  {
  Spawn:
    SSED A -1
    Stop
  }
}