ACTOR BloodyFlandre
{
  floatspeed 30
  Speed 35
  MONSTER
  Health 3600
  damage (random(1,1)*70)
  Radius 20
  Height 62
  Scale 0.7
  MinMissileChance 3000
  Mass 1000
  MeleeThreshold 35
  MeleeRange 65
  StencilColor Black
  +DONTHURTSPECIES
  +LOOKALLAROUND
  +FLOORCLIP
  +NORADIUSDMG
  +DONTFALL
  +NOGRAVITY
  +FLOAT
  +BOSS
  +NEVERFAST
  +MISSILEMORE
  +DONTMORPH
  Painchance 10
  Damagefactor "BFlan", 0
  DamageFactor "Legendary", 0.3
  Seesound "bflanlaugh4"
  Activesound "BFlan/Laugh"
  Deathsound "BFlan/Death"
  PainSound "BFlan/Pain"
  DropItem "BossLifeEssence" 255 25
  DropItem "BossArmorBonusMax" 255 1
  DropItem "BigDustMana" 128 100
  DropItem "BigDustMana" 128 100
  DropItem "DemonicChalice" 128
  DropItem "SkullOfPower" 128
  DropItem "OccultSpellbook" 200
  Obituary "%o's life was sapped away by Bloody Flandre."
  HitObituary "%o was sliced into two by Bloody Flandre."
  var int user_music;
  var int user_missile;
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("DisableBFlan") == 1, "Remove")
    BFL9 ABCDEFGH 3 A_Look
    Goto Spawn+2
  Idle:
	TNT1 A 0
	TNT1 A 0 A_Playsound("Bflan/Laugh")
	TNT1 A 0 A_Look
    BFL9 A 3 A_Wander
	TNT1 A 0 A_Look
    BFL9 B 3 A_Wander
	TNT1 A 0 A_Look
    BFL9 C 3 A_Wander
	TNT1 A 0 A_Look
    BFL9 D 3 A_Wander
	TNT1 A 0 A_Look
    BFL9 E 3 A_Wander
	TNT1 A 0 A_Look
    BFL9 F 3 A_Wander
	TNT1 A 0 A_Look
    BFL9 G 3 A_Wander
	TNT1 A 0 A_Look
    BFL9 H 3 A_Wander
	Goto Idle+2
  Remove:
	TNT1 A 1
	TNT1 A 0 A_SpawnItemEx("Cacodemon~",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_ChangeFlag("COUNTKILL", FALSE)
	TNT1 A 0
	Stop
  See:
	TNT1 A 0 A_JumpIf(user_music == 1,3)
    TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,32)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_Jump(30,"ShadowRush")
    BFL9 ABCDEFGH 3 A_Chase
    Loop
  ShadowRush:
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("BFlanSmoke",0,0,32,random(-3,3),random(-3,3),random(-3,3),random(0, 360))
	TNT1 A 0 A_Playsound("BFlan/Rush",4,1,0)
	BFL9 A 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx("BFlanSmoke",0,0,32,random(-3,3),random(-3,3),random(-3,3),random(0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowA")
	BFL9 A 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx("BFlanSmoke",0,0,32,random(-3,3),random(-3,3),random(-3,3),random(0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowA")
	BFL9 A 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowA")
	BFL9 B 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowB")
	BFL9 B 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowB")
	BFL9 B 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowB")
	BFL9 C 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowC")
	BFL9 C 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowC")
	BFL9 C 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowC")
	BFL9 D 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowD")
	BFL9 D 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowD")
	BFL9 D 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowD")
	BFL9 E 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowE")
	BFL9 E 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowE")
	BFL9 E 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowE")
	BFL9 F 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowF")
	BFL9 F 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowF")
	BFL9 F 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowF")
	BFL9 G 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowG")
	BFL9 G 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowG")
	BFL9 G 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowG")
	BFL9 H 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowH")
	BFL9 H 1 A_Chase("","")
	TNT1 AA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_SpawnItemEx("BFlanShadowH")
	BFL9 H 1 A_Chase("","")
	TNT1 A 0 A_SpawnItemEx("BFlanShadowH")
	TNT1 AAAAAAAAA 0 A_SpawnItemEx ("BFlanSmoke", 0, 0, 32, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 A 0 A_ChangeFlag("FRIGHTENED", FALSE)
	Goto See
  Pain:
    BFLD A 8 A_Pain
	BFLD A 0 A_JumpIfHealthLower(500, 2)
	BFLD A 0 A_Jump(230,"See")
    BFLD A 0 A_ChangeFlag("FRIGHTENED",TRUE)
    Goto ShadowRush
  Melee:
    BFL9 L 2 A_Playsound("BFlan/Draw", 0, 1, 0, 1)
	BFL9 M 2 A_CustomMeleeAttack(90,"BFlan/Slash","BFlan/Swing","Extreme")
	BFL9 NOP 6
	Goto See
  Missile:
    BFLA A 0 A_JumpIfHealthLower(800,"Missile2")
    BFLA A 0 A_Jump(180,"Acid","Soul")
    BFLA A 0 A_Jump(100,"AcidPowered","Floorshits")
    BFLA A 0 A_Jump(100,"SoulPowered")
    BFLA A 0 A_Jump(256,"Lightning","VileAttack")
  Missile2:
    BFLA A 0 A_Jump(160,"ShadowRush","Acid","Soul","Floorshits")
    BFLA A 0 A_Jump(256,"Lightning","VileAttack")
  SoulPowered:
	BFL8 A 0 A_Facetarget
	BFL8 A 2
	BFL8 B 3 A_PlaySound("AttackCharge", 0, 1, 0, ATTN_NONE)
	BFL8 B 0 A_CustomMissile("SoulCharging", 30, 35)
	BFL8 B 0 A_CustomMissile("SoulCharging", 30, -35)
	BFL8 C 50
	BFL8 DEF 6
	BFL8 G 2
	BFL8 G 0 A_CustomMissile("BFlanSoulStrong", 30, 0, 0, CMF_AIMDIRECTION)
	BFL8 G 0 A_CustomMissile("BFlanSoulStrong", 30, 0, 90, CMF_AIMDIRECTION)
	BFL8 G 2 A_CustomMissile("BFlanSoulStrong", 30, 0, -90, CMF_AIMDIRECTION)
	BFL8 H 3
	Goto See
  AcidPowered:
	BFL8 A 0 A_Facetarget
	BFL8 A 2
	BFL8 B 3 A_PlaySound("AttackCharge", 0, 1, 0, ATTN_NONE)
	BFL8 B 0 A_CustomMissile("AcidCharging", 30, 35)
	BFL8 B 0 A_CustomMissile("AcidCharging", 30, -35)
	BFL8 C 50
	BFL8 DEF 6
	BFL8 G 2
	BFL8 G 0 A_CustomMissile("BFlanAcidBig", 30, 0, 0)
	BFL8 G 0 A_CustomMissile("BFlanAcidBig", 30, 0, 15)
	BFL8 G 0 A_CustomMissile("BFlanAcidBig", 30, 0, -15)
	BFL8 G 0 A_CustomMissile("BFlanAcidBig", 30, 0, 60)
	BFL8 G 0 A_CustomMissile("BFlanAcidBig", 30, 0, 120)
	BFL8 G 0 A_CustomMissile("BFlanAcidBig", 30, 0, 180)
	BFL8 G 0 A_CustomMissile("BFlanAcidBig", 30, 0, 240)
	BFL8 G 2 A_CustomMissile("BFlanAcidBig", 30, 0, 300)
	BFL8 H 3
	Goto See
  Floorshits:
	BFL8 Q 4 A_Playsound("BFlan/Draw", 0, 1, 0, 1)
	BFL8 R 5
	TNT1 A 0 A_ChangeFlag("NOGRAVITY",0)
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	TNT1 A 0 A_ChangeFlag("FLOAT",0)
	BFL8 ST 8
	TNT1 A 0 A_CustomMissile("BFlanFloorshits",0,0,0)
	TNT1 A 0 A_CustomMissile("BFlanFloorshits",0,0,20)
	TNT1 A 0 A_CustomMissile("BFlanFloorshits",0,0,-20)
	TNT1 A 0 A_CustomMissile("BFlanFloorshits",0,0,45)
	TNT1 A 0 A_CustomMissile("BFlanFloorshits",0,0,90)
	TNT1 A 0 A_CustomMissile("BFlanFloorshits",0,0,135)
	TNT1 A 0 A_CustomMissile("BFlanFloorshits",0,0,180)
	TNT1 A 0 A_CustomMissile("BFlanFloorshits",0,0,225)
	TNT1 A 0 A_CustomMissile("BFlanFloorshits",0,0,270)
	TNT1 A 0 A_CustomMissile("BFlanFloorshits",0,0,315)
	BFL8 U 10
	TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
	TNT1 A 0 A_ChangeFlag("FLOAT",1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	TNT1 A 0 ThrustThingZ(0,30,0,1)
	BFL8 VW 5
	TNT1 A 0 Thing_Stop(0)
	Goto See
  VileAttack:
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
    BFL8 AB 5
    BFL8 C 10 A_PlaySound("exile/voidstart")
    BFL8 C 8 A_VileTarget("BFlanVileFire")
    BFL8 CCCCCCCCCCCDEF 8 A_FaceTarget
	TNT1 A 0 A_PlaySound("exile/voidend")
    BFL8 G 8 A_VileAttack(" ",10,90,150,1)
    BFL8 H 20
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
    Goto See	
  Lightning:
	TNT1 A 0 A_Playsound("bflanlaugh5")
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
    BFL0 ABCDEF 4
	TNT1 A 0 A_SpawnItem("RedLightning")
	BFL0 DEFDEF 4
	TNT1 A 0 ThrustThingZ(0,50,0,1)
	BFL0 GHI 4
	TNT1 A 0 Thing_Stop(0)
	BFL0 J 15
	BFL0 KL 5
	TNT1 A 0 A_CustomMissile("BFlanLightningProj",30)
	BFL0 MNOP 5
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	Goto See
  Soul:
	BFL8 A 5
	BFL8 BC 6
	TNT1 A 0 A_SetUserVar("user_missile",0)
  SoulLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 25,"SoulEnd")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	BFL8 CCC 0 A_CustomMissile("BFlanSoulWeakNoSeek",30,0,frandom(-20,20),CMF_OFFSETPITCH,frandom(-2,4))
	BFL8 C 4 A_CustomMissile("BFlanSoulWeakNoSeek",30,0,frandom(-20,20),CMF_OFFSETPITCH,frandom(-2,4))
	Loop
  SoulEnd:
	TNT1 A 0 A_Jump(220, "See")
	BFL8 DEF 6
	BFL8 G 2
	TNT1 A 0 A_SetUserVar("user_missile",0)
  Soul2Loop:
	TNT1 A 0 A_JumpIf(user_missile >= 15,"Soul2End")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	BFL8 CC 0 A_CustomMissile("BFlanSoulWeak",30,20,frandom(180,0),CMF_OFFSETPITCH,frandom(-2,5))
	BFL8 C 0 A_CustomMissile("BFlanSoulWeak",30,-20,frandom(180,0),CMF_OFFSETPITCH,frandom(-2,5))
	BFL8 G 8 A_CustomMissile("BFlanSoulWeak",30,-20,frandom(180,0),CMF_OFFSETPITCH,frandom(-2,5))
	Loop
  Soul2End:
	BFL8 H 15
    Goto See
  Acid:
    BFL8 A 0 A_facetarget
	BFL8 A 2
	BFL8 BC 3
	TNT1 A 0 A_SetUserVar("user_missile",0)
  AcidLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 25,"AcidEnd")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	BFL8 CCC 0 A_CustomMissile("BFlanAcidSmall",30,20,frandom(-16,16),CMF_OFFSETPITCH,frandom(-5,5))
	BFL8 CC 0 A_CustomMissile("BFlanAcidSmall",30,-20,frandom(-16,16),CMF_OFFSETPITCH,frandom(-5,5))
	BFL8 C 4 A_CustomMissile("BFlanAcidSmall",30,-20,frandom(-16,16),CMF_OFFSETPITCH,frandom(-5,5))
	Loop
  AcidEnd:
	TNT1 A 0 A_Jump(128, "See")
	BFL8 DEF 6
	BFL8 G 2
	TNT1 A 0 A_SetUserVar("user_missile",0)
  Acid2Loop:
	TNT1 A 0 A_JumpIf(user_missile >= 60,"Acid2End")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	BFL8 CC 0 A_CustomMissile("BFlanAcidSmall",30,0,frandom(-3,3),CMF_OFFSETPITCH,frandom(-1,1))
	BFL8 G 2 A_CustomMissile("BFlanAcidSmall",30,0,frandom(-3,3),CMF_OFFSETPITCH,frandom(-1,1))
	Loop
  Acid2End:
	BFL8 H 15
    Goto See
  Death:
	TNT1 A 0 A_NoBlocking
	TNT1 A 0 A_ChangeFlag("LOWGRAVITY",1)
	TNT1 A 0 A_ChangeFlag("NOGRAVITY",0)
	TNT1 A 0 A_ChangeFlag("FLOAT",0)
    BFLD A 3 A_scream
	BFLD BCDEFGHI 5 A_SpawnItemEx ("Edgy2huBossDeathFlame", 0, 0, 0, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	BFLD HIHIHI 5 A_SpawnItemEx ("Edgy2huBossDeathFlame", 0, 0, 0, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",Random(10,-10),Random(10,-10),Random(20,60),0,0,0,0,128,0)
	TNT1 AAA 0 A_CustomMissile("BigRedBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
    TNT1 AAAAAAAAAAA 0 A_SpawnItemEx ("Edgy2huBossDeathFlame", 0, 0, 0, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 AAAAAAAAAAA 0 A_CustomMissile("Edgy2huBossDeathFlame3", random(5, 55), 0, random(0,360), CMF_AIMDIRECTION, frandom(-40, 70))
    Stop
  }
}




Actor AcidCharging
{
  Radius 8
  Height 12
  Speed 0
  Projectile
  RenderStyle Add
  Alpha 0.8
  Scale 0.75
  +NOCLIP
  States
  {
  Spawn:
    ABAF ABCDEFGABCDEF 4 Bright
    ABAF HIJ 2 Bright
    Goto Death
  Death:
    TNT1 A 0
    Stop
  }
}

Actor SoulCharging
{
  Radius 8
  Height 12
  Speed 0
  Projectile
  RenderStyle Add
  Alpha 0.8
  Scale 0.75
  +NOCLIP
  States
  {
  Spawn:
    ABAW ABCDEFGABCDEF 4 Bright
    ABAW HIJ 2 Bright
    Goto Death
  Death:
    TNT1 A 0
    Stop
  }
}

Actor BFlanSoulWeak
{
	Speed 15
	damage 2
	scale 0.35
	radius 6
	height 12
	RENDERSTYLE ADD
	Alpha 0.75
	PROJECTILE
	+STRIFEDAMAGE
	+SEEKERMISSILE
	+PIERCEARMOR
	seesound "Soul/Fire"
	deathsound "Soul/Hit"
	states
	{
	Spawn:
		PSMM A 2 Bright A_SeekerMissile(3,9)
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		PSMM A 2 Bright A_SeekerMissile(3,9)
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		PSMM B 2 Bright A_SeekerMissile(3,9)
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		PSMM B 2 Bright A_SeekerMissile(3,9)
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		PSMM C 2 Bright A_SeekerMissile(3,9)
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		PSMM C 2 Bright A_SeekerMissile(3,9)
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		PSMM D 2 Bright A_SeekerMissile(3,9)
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		PSMM E 2 Bright A_SeekerMissile(3,9)
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		PSMM F 2 Bright A_SeekerMissile(3,9)
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		goto Spawn+12
	Death:
		PSMM GGHHIIJJKKLLMM 2 Bright A_FadeOut(0.05)
		stop
	}
}
Actor BFlanSoulWeakNoSeek : BFlanSoulWeak
{
	damage 3
	Speed 25
	states
	{
	Spawn:
		PSMM A 2 Bright
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		PSMM A 2 Bright
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		PSMM B 2 Bright
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		PSMM B 2 Bright
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		PSMM C 2 Bright
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		PSMM C 2 Bright
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		PSMM D 2 Bright
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		PSMM E 2 Bright
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		PSMM F 2 Bright
		TNT1 A 0 A_CustomMissile("BFlanSoulWeakTrail",0,0,0)
		goto Spawn+12
	}
}
Actor BFlanSoulWeakTrail : ImpballTrail
{
	Projectile
	+NOCLIP
	Damage 0
	RenderStyle Add
	Alpha 0.45
	Scale 0.9
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 2
		PUF2 BDFHJLNPRTVXZ 1
		PUF3 B 1 A_FadeOut(0.2)
		Wait
	}
}

Actor BFlanSoulStrong : BFlanSoulWeak
{
	Speed 14
	Damage 2
	Scale 0.35
	BounceType Doom
	BounceCount 3
	+RIPPER
	+BOUNCEONWALLS
	+BOUNCEONCEILINGS
	+BOUNCEONFLOORS
	Seesound "Soul2/Fire"
	Deathsound "Soul2/Hit"
	States
	{
	Spawn:
		PSM0 A 2 Bright A_SeekerMissile(3,9, SMF_PRECISE | SMF_LOOK)
		TNT1 A 0 A_CustomMissile("BFlanSoulStrongTrail",0,0,0)
		PSM0 A 2 Bright A_SeekerMissile(3,9, SMF_PRECISE | SMF_LOOK)
		TNT1 A 0 A_CustomMissile("BFlanSoulStrongTrail",0,0,0)
		PSM0 B 2 Bright A_SeekerMissile(3,9, SMF_PRECISE | SMF_LOOK)
		TNT1 A 0 A_CustomMissile("BFlanSoulStrongTrail",0,0,0)
		PSM0 B 2 Bright A_SeekerMissile(3,9, SMF_PRECISE | SMF_LOOK)
		TNT1 A 0 A_CustomMissile("BFlanSoulStrongTrail",0,0,0)
		Loop
	Death:
		PSM0 CCDDEEFFGGHHIIJJKKLL 2 Bright A_FadeOut(0.05)
		stop
	}
}

Actor BFlanSoulStrongTrail : BFlanSoulWeakTrail
{
	Scale 1.3
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 2
		PUF4 BDFHJLNPRTVXZ 1
		PUF5 B 1 A_FadeOut(0.2)
		Wait
	}
}


Actor BFlanAcidSmall
{
  Radius 6
  Height 8
  Speed 26
  Damage 3
  Scale 0.65
  PoisonDamage 32
  Projectile
  RenderStyle Translucent
  Alpha 0.8
  SeeSound "Acid/Fire"
  DeathSound "Acid/Hit"
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(256, "Weave1", "Weave2")
  Weave1:
    ABAX A 1 Bright A_Weave(3,2,random(-4,0),random(-4,0))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidSmallTrail",0,0,0,0,0,0,0,128,0)
    ABAX A 1 Bright A_Weave(3,2,random(-4,0),random(-4,0))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidSmallTrail",0,0,0,0,0,0,0,128,0)
    ABAX A 1 Bright A_Weave(3,2,random(-4,0),random(-4,0))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidSmallTrail",0,0,0,0,0,0,0,128,0)
    ABAX A 1 Bright A_Weave(3,2,random(-4,0),random(-4,0))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidSmallTrail",0,0,0,0,0,0,0,128,0)
    ABAX B 1 Bright A_Weave(3,2,random(-4,0),random(-4,0))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidSmallTrail",0,0,0,0,0,0,0,128,0)
    ABAX B 1 Bright A_Weave(3,2,random(-4,0),random(-4,0))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidSmallTrail",0,0,0,0,0,0,0,128,0)
    ABAX B 1 Bright A_Weave(3,2,random(-4,0),random(-4,0))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidSmallTrail",0,0,0,0,0,0,0,128,0)
    ABAX B 1 Bright A_Weave(3,2,random(-4,0),random(-4,0))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidSmallTrail",0,0,0,0,0,0,0,128,0)
    Loop
  Weave2:
    ABAX A 1 Bright A_Weave(3,2,random(0,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidSmallTrail",0,0,0,0,0,0,0,128,0)
    ABAX A 1 Bright A_Weave(3,2,random(0,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidSmallTrail",0,0,0,0,0,0,0,128,0)
    ABAX A 1 Bright A_Weave(3,2,random(0,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidSmallTrail",0,0,0,0,0,0,0,128,0)
    ABAX A 1 Bright A_Weave(3,2,random(0,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidSmallTrail",0,0,0,0,0,0,0,128,0)
    ABAX B 1 Bright A_Weave(3,2,random(0,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidSmallTrail",0,0,0,0,0,0,0,128,0)
    ABAX B 1 Bright A_Weave(3,2,random(0,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidSmallTrail",0,0,0,0,0,0,0,128,0)
    ABAX B 1 Bright A_Weave(3,2,random(0,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidSmallTrail",0,0,0,0,0,0,0,128,0)
    ABAX B 1 Bright A_Weave(3,2,random(0,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidSmallTrail",0,0,0,0,0,0,0,128,0)
    Loop
  Death:
    ABAX CDEFG 3 Bright
    Stop
  }
}


Actor BFlanAcidBig
{
  Radius 6
  Height 8
  Speed 26
  Damage 1
  Scale 1.2
  PoisonDamage 32
  Projectile
  RenderStyle Translucent
  Alpha 0.8
  SeeSound "Acid/Fire"
  DeathSound "Acid/Hit"
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(256, "Weave1", "Weave2")
  Weave1:
    ABAX A 1 Bright A_Weave(3,2,random(-4,0),random(-4,0))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidBigTrail",0,0,0,0,0,0,0,128,0)
    ABAX A 1 Bright A_Weave(3,2,random(-4,0),random(-4,0))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidBigTrail",0,0,0,0,0,0,0,128,0)
    ABAX A 1 Bright A_Weave(3,2,random(-4,0),random(-4,0))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidBigTrail",0,0,0,0,0,0,0,128,0)
    ABAX A 1 Bright A_Weave(3,2,random(-4,0),random(-4,0))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidBigTrail",0,0,0,0,0,0,0,128,0)
    ABAX B 1 Bright A_Weave(3,2,random(-4,0),random(-4,0))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidBigTrail",0,0,0,0,0,0,0,128,0)
    ABAX B 1 Bright A_Weave(3,2,random(-4,0),random(-4,0))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidBigTrail",0,0,0,0,0,0,0,128,0)
    ABAX B 1 Bright A_Weave(3,2,random(-4,0),random(-4,0))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidBigTrail",0,0,0,0,0,0,0,128,0)
    ABAX B 1 Bright A_Weave(3,2,random(-4,0),random(-4,0))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidBigTrail",0,0,0,0,0,0,0,128,0)
    Loop
  Weave2:
    ABAX A 1 Bright A_Weave(3,2,random(0,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidBigTrail",0,0,0,0,0,0,0,128,0)
    ABAX A 1 Bright A_Weave(3,2,random(0,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidBigTrail",0,0,0,0,0,0,0,128,0)
    ABAX A 1 Bright A_Weave(3,2,random(0,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidBigTrail",0,0,0,0,0,0,0,128,0)
    ABAX A 1 Bright A_Weave(3,2,random(0,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidBigTrail",0,0,0,0,0,0,0,128,0)
    ABAX B 1 Bright A_Weave(3,2,random(0,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidBigTrail",0,0,0,0,0,0,0,128,0)
    ABAX B 1 Bright A_Weave(3,2,random(0,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidBigTrail",0,0,0,0,0,0,0,128,0)
    ABAX B 1 Bright A_Weave(3,2,random(0,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidBigTrail",0,0,0,0,0,0,0,128,0)
    ABAX B 1 Bright A_Weave(3,2,random(0,4),random(0,4))
	TNT1 A 0 A_SpawnItemEx("BFlanAcidBigTrail",0,0,0,0,0,0,0,128,0)
    Loop
  Death:
    TNT1 A 0 A_Mushroom("BFlanAcidSmall",15,0,1,4)
    ABAX CDE 3 Bright
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("BFlanAcidSmall",2,0,random(0,360),CMF_AIMDIRECTION,frandom(-3,3))
	ABAX FG 3 Bright
    Stop
  }
}


ACTOR BFlanAcidBigTrail : ImpBallTrail
{   
   Radius 0
   Height 1
   Scale 1.5
   PROJECTILE
   RENDERSTYLE ADD
   ALPHA 0.75
   States
   {
   Spawn:
      TNT1 A 0
      TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
      TNT1 A 1 Bright
      SSFX ABCDEFG 2 Bright
      Stop 
   }
}


ACTOR BFlanAcidSmallTrail : ImpBallTrail
{   
   Radius 0
   Height 1
   PROJECTILE
   RENDERSTYLE ADD
   ALPHA 0.75
   States
   {
   Spawn:
      TNT1 A 0
      TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
      TNT1 A 1 Bright
      SSFX ABCDEFG 2 Bright
      Stop 
   }
}

ACTOR BFlanLightningProj : FastProjectile
{
   Radius 12
   Height 6
   Speed 80
   Damage 50
   PROJECTILE
   RENDERSTYLE ADD
   +THRUGHOST
   +NODAMAGETHRUST
   +FORCEXYBILLBOARD
   +FORCERADIUSDMG
   Deathsound "BFlan/LightningExp"
   Missiletype "BFlanLightningTrailSpawner"
   Missileheight 8
   States
   {
   Spawn:
      BFLI ABCDE 1 Bright
      Loop
   Death:
      TNT1 AAAAAA 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, random(15,35), 0, 0, 0, 0, 128)  
	  TNT1 AAAAAA 0 A_CustomMissile("SmokeFX", random(15,35), 0, random(0,360), 2, random(0,360))
	  TNT1 AAAAAAAAA 0 A_CustomMissile("Kaboom18",random(15,35),0,random(0,360),2,random(0,360))
	  TNT1 A 0 A_SpawnItem("RedDTBFGEx",0,-10)
	  TNT1 A 0 Radius_Quake(20,8,0,12,0)
      BRE3 AB 4 Bright A_Explode(260,200)
	  BRE3 CDEF 5 Bright
      stop
   }
}

actor BFlanLightningTrailSpawner
{
  Radius 0
  Height 0
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    TNT1 AA 0 A_SpawnItemEx("BFlanLightningTrail", Random(-20, 20), Random(-20, 20), Random(-20, 20), 0, 0, 0, 0, 160)
	Stop
  }
}

actor BFlanLightningTrail : ImpballTrail
{
  Scale 1.2
  Renderstyle Add
  Alpha 0.8
  +NOINTERACTION
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    TNT1 A 1
    TNT1 A 0 A_Jump(255, "Puff1", "Puff2", "Puff3")
  Puff1:
    BFLI F 1 Bright A_FadeOut(0.1)
    Loop
  Puff2:
    BFLI G 1 Bright A_FadeOut(0.1)
    Loop
  Puff3:
    BFLI H 1 Bright A_FadeOut(0.1)
    Loop
  }
}

ACTOR BFlanVileFire : ArchVileFire
{
  RenderStyle Add
  Scale 0.5
  Alpha 1
  +DONTSPLASH
  States
  {
  Spawn:
    TNT1 A 0
    BFVI A 1 Bright A_PlaySoundEx("BFlan/Vile","Voice",1)
    BFVI ABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ 1 Bright A_Fire
    BFV0 AABBCCDD 1 Bright A_Fire
    BFVI ABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ 1 Bright A_Fire
    BFV0 AABBCCDD 1 Bright A_Fire
	BFVI A 1 Bright A_StopSoundEx("Voice")
	BFVI A 1 Bright A_PlaySoundEx("exile/voidend","Voice")
    TNT1 AAAAAAAAAAA 0 A_SpawnItemEx ("Edgy2huBossDeathFlame", 0, 0, 0, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 AAAAAAAAAAA 0 A_CustomMissile("Edgy2huBossDeathFlame3", random(5, 55), 0, random(0,360), CMF_AIMDIRECTION, frandom(-40, 70))
	BFVI BBCCDDEE 1 Bright
	TNT1 A 20
	TNT1 A 0 A_StopSoundEx("Voice")
    Stop
	}
}

ACTOR BFlanFloorshits      
{
  PROJECTILE
  +DROPOFF
  -NoGravity
  +FloorHugger
  +SeekerMissile
  Speed 23
  RenderStyle Add
  Alpha 0.8
  Scale 1.5
  Damage 5
  Damagetype "VileFires"
  SeeSound "weapons/diasht"
  DeathSound "weapons/firex3"
  States
  {
  Spawn:
	TNT1 A 0
    TNT1 A 0 A_PlaySoundEx("monster/ambientfire2","Voice",1)
	BFFS C 1 BRIGHT A_CustomMissile("BFlanFloorshitsTrail", 0, 0, 0)
	TNT1 A 0 A_CStaffMissileSlither
	BFFS C 1 BRIGHT A_CustomMissile("BFlanFloorshitsTrail", 0, 0, 0)
	TNT1 A 0 A_CStaffMissileSlither
	BFFS D 1 BRIGHT A_CustomMissile("BFlanFloorshitsTrail", 0, 0, 0)
	TNT1 A 0 A_CStaffMissileSlither
	BFFS D 1 BRIGHT A_CustomMissile("BFlanFloorshitsTrail", 0, 0, 0)
	TNT1 A 0 A_CStaffMissileSlither
	BFFS C 1 BRIGHT A_CustomMissile("BFlanFloorshitsTrail", 0, 0, 0)
	TNT1 A 0 A_CStaffMissileSlither
	BFFS C 1 BRIGHT A_CustomMissile("BFlanFloorshitsTrail", 0, 0, 0)
	TNT1 A 0 A_CStaffMissileSlither
	BFFS D 1 BRIGHT A_CustomMissile("BFlanFloorshitsTrail", 0, 0, 0)
	TNT1 A 0 A_CStaffMissileSlither
	BFFS D 1 BRIGHT A_CustomMissile("BFlanFloorshitsTrail", 0, 0, 0)
	TNT1 A 0 A_CStaffMissileSlither
	TNT1 A 0 A_Seekermissile(5, 25)
	Loop
    Death:
	TNT1 A 0
    TNT1 A 0 A_StopSoundEx("Voice")
	TNT1 A 0 A_Explode(90, 120)
	TNT1 AAAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
	BFFS KLMNO 4
	Stop
  }
}

Actor BFlanFloorshitsTrail
{
  Projectile
  RenderStyle Add
  +NoClip
  Alpha 0.7
  Scale 1.5
  States
  {
  Spawn:
    BFFS CDEFGHIJ 2 Bright A_FadeOut(0.1)
    Stop
  }
}












Actor BFlanShadowA
{   
  Radius 2
  Height 2
  Speed 0
  Scale 0.7
  Projectile
  RenderStyle Stencil
  StencilColor Black
  Alpha 0.8
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    TNT1 A 1
    BFL9 A 4 A_FadeOut(0.10)
    Goto Spawn+1
  }
}

Actor BFlanShadowB : BFlanShadowA
{   
  States
  {
  Spawn:
    TNT1 A 1
    BFL9 B 4 A_FadeOut(0.10)
    Goto Spawn+1
  }
}

Actor BFlanShadowC : BFlanShadowA
{   
  States
  {
  Spawn:
    TNT1 A 1
    BFL9 C 4 A_FadeOut(0.10)
    Goto Spawn+1
  }
}

Actor BFlanShadowD : BFlanShadowA
{   
  States
  {
  Spawn:
    TNT1 A 1
    BFL9 D 4 A_FadeOut(0.10)
    Goto Spawn+1
  }
}

Actor BFlanShadowE : BFlanShadowA
{   
  States
  {
  Spawn:
    TNT1 A 1
    BFL9 E 4 A_FadeOut(0.10)
    Goto Spawn+1
  }
}

Actor BFlanShadowF : BFlanShadowA
{   
  States
  {
  Spawn:
    TNT1 A 1
    BFL9 F 4 A_FadeOut(0.10)
    Goto Spawn+1
  }
}

Actor BFlanShadowG : BFlanShadowA
{   
  States
  {
  Spawn:
    TNT1 A 1
    BFL9 G 4 A_FadeOut(0.10)
    Goto Spawn+1
  }
}

Actor BFlanShadowH : BFlanShadowA
{   
  States
  {
  Spawn:
    TNT1 A 1
    BFL9 H 4 A_FadeOut(0.10)
    Goto Spawn+1
  }
}


ACTOR BFlanSmoke : ImpballTrail
{
  +NOBLOCKMAP
  +NOGRAVITY
  +CLIENTSIDEONLY
  RenderStyle Translucent
  Alpha 0.6
  Scale 1
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    SMKE ABCDEFGHIJKL 5 Bright A_Fadeout(0.05)
    Stop
  }
}


ACTOR Edgy2huBossDeathFlame
{
   Radius 2
   Height 4
   Speed 2
   PROJECTILE
   RenderStyle Translucent
   Alpha 0.3
   +NOBLOCKMAP
   +NOGRAVITY
   +FORCEXYBILLBOARD
   +CLIENTSIDEONLY
   States
   {
   Spawn:
      TNT1 A 2
      FRR1 ABCDEFGHIJKL 1 Bright A_SpawnItemEx ("Edgy2huBossDeathFlame2", 0, 0, 0, random(0, -2), random(-1, 1), random(-1, 1), 0, 0, 0)
      stop
   }
}

ACTOR Edgy2huBossDeathFlame2
{
   Radius 2
   Height 4
   Speed 2
   PROJECTILE
   RenderStyle Translucent
   Alpha 0.3
   +NOBLOCKMAP
   +NOGRAVITY
   +FORCEXYBILLBOARD
   +CLIENTSIDEONLY
   States
   {
   Spawn:
      TNT1 A 2
      FRR1 ABCDEFGHIJKL 1 Bright A_ChangeVelocity(0,0,1)
      stop
   }
}

ACTOR Edgy2huBossDeathFlame3
{
   Radius 2
   Height 4
   Speed 15
   PROJECTILE
   RenderStyle Translucent
   Alpha 0.3
   Scale 0.35
   +NOBLOCKMAP
   +NOGRAVITY
   +FORCEXYBILLBOARD
   +CLIENTSIDEONLY
   States
   {
   Spawn:
      TNT1 A 2
      FRR1 ABCDEFGHIJKL 1 Bright A_SpawnItemEx ("Edgy2huBossDeathFlame4", 0, 0, 0, random(0, -2), random(-1, 1), random(-1, 1), 0, 0, 0)
      stop
   }
}

ACTOR Edgy2huBossDeathFlame4
{
   Radius 2
   Height 4
   Speed 2
   PROJECTILE
   RenderStyle Translucent
   Alpha 0.3
   Scale 0.35
   +NOBLOCKMAP
   +NOGRAVITY
   +FORCEXYBILLBOARD
   +CLIENTSIDEONLY
   States
   {
   Spawn:
      TNT1 A 2
      FRR1 ABCDEFGHIJKL 1 Bright A_ChangeVelocity(0,0,1)
      stop
   }
}