
//My custom stuff

//Progression Pickup
Class ProgPickup : Inventory {

	Default {
		Inventory.MaxAmount 999999;
		Inventory.Amount 1;
		Inventory.PickupMessage "Proceed";
		Inventory.PickupSound "PPICK";
		+BRIGHT;
	}
	states {
		Spawn:
			PPUP A 5;
			PPUP B 5;
			PPUP C 5;
			PPUP D 5;
			PPUP D 5;
			PPUP C 5;
			PPUP B 5;
			PPUP A 5;
			Loop;
	}
}


//Faster Baron
  Class HF_FasterBaron : BaronOfHell
  {
  
      Default
      {
          +MISSILEEVENMORE
		  +LOOKALLAROUND
      }
  }
  
//Floating Pyramid
class PyrMid : Actor
{
  default 
  {
    Tag "Pyramid Orb";
    //$Category User-defined
    //$Title Pyramid Orb
    Radius 30;
    Height 60;
    ProjectilePassHeight 0;
    +SOLID
  }
  States
  {
  Spawn:
    LM4D A 8;
	LM4D B 8;
	LM4D C 8;
	LM4D D 8;
	LM4D C 8;
	LM4D B 8;
    Loop;
  }
}

//Eternal Flight - Credits to &Olga for this one
class PowerFlightForever : PowerFlight
{
	Default {
		Powerup.Duration 0x7FFFFFFF;
	}
}
//End of Eternal Flight

//End of my custom stuff


//Cybruiser
Class Cybruiser : BaronOfHell
{
  Default
  {
    Health 2000;
    Radius 24;
    Height 64;
    Mass 1000;
    Speed 8;
    PainChance 20;
    Obituary "%o was blown away by a Cybruiser.";
    HitObituary "%o was smashed by a Cybruiser.";
    SeeSound "monster/brusit";
    PainSound "baron/pain";
    DeathSound "monster/brudth";
    Monster;
    +FloorClip
    +MissileMore
    +Boss
    +DontHarmClass
  }

  States
  {
  Spawn:
    CBRU AB 10 A_Look();
    Loop;
  See:
    CBRU A 1 A_Playsound("monster/bruwlk");
    CBRU A 2 A_Chase();
    CBRU A 3 A_Chase();
    CBRU BB 3 A_Chase();
    CBRU C 1 A_Playsound("monster/bruwlk");
    CBRU C 2 A_Chase();
    CBRU C 3 A_Chase();
    CBRU DD 3 A_Chase();
    Loop;
  Missile:
    CBRU E 8 A_FaceTarget();
    CBRU F 12 Bright A_SpawnProjectile("BruiserMissile",38,15,0,0);
    CBRU E 12 A_FaceTarget();
    CBRU F 12 Bright A_SpawnProjectile("BruiserMissile",38,15,0,0);
    CBRU E 12 A_FaceTarget();
    CBRU F 12 Bright A_SpawnProjectile("BruiserMissile",38,15,0,0);
    Goto See;
  Melee:
    CBRU GH 8 A_FaceTarget();
    CBRU I 8 A_CustomMeleeAttack(10*random(1,8), "baron/melee");
    Goto See;
  Pain:
    CBRU J 2;
    CBRU J 2 A_Pain();
    Goto See;
  Death:
    CBRU K 6 Bright A_Scream();
    CBRU LMN 6 Bright;
    CBRU O 6 Bright A_NoBlocking();
    CBRU QR 6 Bright;
    CBRU S 6;
    CBRU T -1 A_BossDeath();
    Stop;
  }
}

Class BruiserMissile : Actor
{
  Default
  {
    Radius 8;
    Height 12;
    Speed 20;
    Damage 10;
    DamageType "Fire";
    Scale 1.0;
    RenderStyle "Normal";
    SeeSound "monster/brufir";
    DeathSound "weapons/hellex";
    Decal "Scorch";
    Projectile;
    +ThruGhost
  }

  States
  {
  Spawn:
    FBRS A 1 Bright;
    FBRS A 1 Bright A_SpawnItemEx("BruiserTrail",0,0,0,0,0,0,0,128);
    Loop;
  Death:
    BAL3 C 0 Bright A_SetTranslucent(0.67,1);
    BAL3 C 6 Bright;
    BAL3 D 6 Bright A_Explode(64,64,0);
    BAL3 E 6 Bright;
    Stop;
  }
}

Class BruiserTrail : Actor
{
  Default
  {
    Radius 3;
    Height 3;
    RenderStyle "Translucent";
    Alpha 0.67;
    Projectile;
  }

  States
  {
  Spawn:
    TNT1 A 3 Bright;
    PUFF ABCD 4 BRIGHT;
    Stop;
  }
}
//End of Cybruiser


//Fallen 
Class Fallen : Actor
{
  Default
  {
    Health 200;
    Radius 24;
    Height 48;
    Mass 200;
    Speed 12;
    PainChance 128;
    Obituary "%o got burned by a Fallen.";
    SeeSound "monster/falsit";
    PainSound "monster/falpai";
    DeathSound "monster/faldth";
    ActiveSound "monster/falact";
    Monster;
    +NoGravity
    +Float
  }

  States
  {
  Spawn:
    FALN ABCDB 8 Bright A_Look();
    Loop;
  See:
    FALN A 0 Bright A_Jump(96, "FastSee");
    FALN A 1 Bright A_Startsound("monster/falwng");
    FALN AABBCCDDBB 2 Bright A_Chase();
    Loop;
  FastSee:
    FALN B 2 Bright A_Chase(null, "Missile", CHF_FASTCHASE);
    FALN BBB 2 Bright
    {
      A_SpawnItemEx("FallenFX", 0,0,40, 0,0,0, 0, SXF_CLIENTSIDE);
      A_Chase(null, "Missile", CHF_FASTCHASE);
    }
    FALN B 0 Bright A_SpawnItemEx("FallenFX", 0,0,40, 0,0,0, 0, SXF_CLIENTSIDE);
    FALN B 0 Bright A_Jump(64, 1);
    Goto See;
    FALN B 2 Bright A_Chase(null, "Missile", CHF_FASTCHASE);
    FALN BBB 2 Bright
    {
      A_SpawnItemEx("FallenFX", 0,0,40, 0,0,0, 0, SXF_CLIENTSIDE);
      A_Chase(null, "Missile", CHF_FASTCHASE);
    }
    FALN B 0 Bright A_SpawnItemEx("FallenFX", 0,0,40, 0,0,0, 0, SXF_CLIENTSIDE);
    Goto See;
  Missile:
    FALN C 0 Bright A_Jump(128, "Missile2");
    FALN CE 2 Bright A_FaceTarget();
    FALN F 3 Bright A_SpawnProjectile("FallenShot",40,0,0);
    FALN E 2 Bright A_FaceTarget();
    FALN F 3 Bright A_SpawnProjectile("FallenShot",40,0,0);
    FALN E 2 Bright A_FaceTarget();
    FALN F 3 Bright A_SpawnProjectile("FallenShot",40,0,0);
    FALN E 2 Bright A_FaceTarget();
    FALN F 3 Bright A_SpawnProjectile("FallenShot",40,0,0);
    FALN E 2 Bright A_FaceTarget();
    FALN F 3 Bright A_SpawnProjectile("FallenShot",40,0,0);
    FALN E 5 Bright;
    Goto See;
  Missile2:
    FALN CE 2 Bright FaceFastChase();
    FALN F 3 Bright FastChaseFire("FallenShot",40);
    FALN F 0 Bright A_SpawnItemEx("FallenFX", 0,0,40, 0,0,0, 0, SXF_CLIENTSIDE);
    FALN CE 2 Bright FaceFastChase();
    FALN F 3 Bright FastChaseFire("FallenShot",40);
    FALN F 0 Bright A_SpawnItemEx("FallenFX", 0,0,40, 0,0,0, 0, SXF_CLIENTSIDE);
    FALN C 5 Bright FaceFastChase();
    FALN E 2 Bright FaceFastChase();
    FALN F 3 Bright FastChaseFire("FallenShot",40);
    FALN F 0 Bright A_SpawnItemEx("FallenFX", 0,0,40, 0,0,0, 0, SXF_CLIENTSIDE);
    FALN CE 2 Bright FaceFastChase();
    FALN F 3 Bright FastChaseFire("FallenShot",40);
    FALN F 0 Bright A_SpawnItemEx("FallenFX", 0,0,40, 0,0,0, 0, SXF_CLIENTSIDE);
    FALN C 2 Bright FaceFastChase();
    FALN E 3 Bright FaceFastChase();
    FALN F 2 Bright FastChaseFire("FallenShot",40);
    FALN F 0 Bright A_SpawnItemEx("FallenFX", 0,0,40, 0,0,0, 0, SXF_CLIENTSIDE);
    FALN E 5 Bright;
    Goto See;
  Pain:
    FALN E 3 Bright;
    FALN E 3 Bright A_Pain();
    FALN E 3 Bright;
    Goto See;
  Death:
    FALN G 5 Bright;
    FALN H 5 Bright A_Scream();
    FALN IJK 5 Bright;
    FALN L 5 Bright A_NoBlocking();
    FALN M -1 A_SetFloorClip();
    Stop;
  Raise:
    FALN M 5 A_UnSetFloorClip();
    FALN LKJIHG 5 Bright;
    Goto See;
  }

  void FaceFastChase()
  {
    A_Chase(null, "Missile", CHF_FASTCHASE);
    A_FaceTarget();
  }

  void FastChaseFire(Class<actor> p, double x)
  {
    A_Chase(null, "Missile", CHF_FASTCHASE);
    A_SpawnProjectile(p, x);
  }
}

Class FallenFX : Actor
{
  Default
  {
    Radius 2;
    Height 2;
    Speed 0;
    RenderStyle "Add";
    Alpha 0.67;
    Projectile;
  }

  States
  {
  Spawn:
    TNT1 A 3 Bright;
    FBFX ABCDE 3 Bright;
    Stop;
  }
}

Class FallenShot : Actor
{
  Default
  {
    Radius 8;
    Height 8;
    Speed 16;
    Damage 2;
    RenderStyle "Add";
    DamageType "Fire";
    Alpha 0.67;
    Seesound "weapons/formfi";
    DeathSound "weapons/forex5";
    Projectile;
    +ThruGhost
  }

  States
  {
  Spawn:
    BALF AB 2 Bright A_SpawnItemEx("FallenFX", 0,0,0, 0,0,0, 0, SXF_CLIENTSIDE);
    Loop;
  Death:
    BALF CDEF 4 Bright;
    Stop;
  }
}

Class FallenSP : Actor
{
  Default
  {
    Radius 2;
    Height 2;
    Speed 0;
    ReactionTime 60;
    RenderStyle "Normal";
    Projectile;
    -NoGravity
  }

  States
  {
  Spawn:
    FBSP AB 3 Bright A_Countdown();
    Loop;
  Death:
    FBSP CDE 3 Bright;
    Stop;
  }
}
//End of Fallen script


//Arachnorb
Class araknorb : Actor
{
	Default
	{
		//$Category Realm667 Monsters
		Health 170;
		Radius 24;
		Height 56;
		Mass 400;
		Speed 12;
		Scale 0.85;
		PainChance 150;
		SeeSound "araknorb/sight";
		ActiveSound "baby/active";
		PainSound "baby/pain";
		DeathSound "araknorb/death";
		MONSTER;
		+FLOAT
		+FLOATBOB
		+NOGRAVITY
		Obituary "%o suffered psychic trauma from an Aracnorb's brainwaves.";
		HitObituary "%o had %p skull chewed by an Aracnorb.";
	}

	States
	{
	Spawn:
		ACNB A 1 A_Look();
		Loop;
	See:
		ACNB A 2 A_Chase();
		Loop;
	Melee:
		ACNB AB 5;
		ACNB C 6 A_CustomMeleeAttack(6,"araknorb/melee","","Melee",TRUE); //put all parameters so modders can custom it easily later - ozy81
		Goto See;
	Missile:
		ACNB B 12 A_FaceTarget();
		ACNB C 2 A_SpawnProjectile("AraknorbBall",36);
		ACNB B 2;
		ACNB D 0 A_Jump(32,"See");
		ACNB D 0 A_SpidRefire;
		Goto Missile+1;
	Pain:
		ACNF I 2;
		ACNF I 2 A_Pain();
		Goto See;
	Death:
		ACNB D 0 {bFLOATBOB = False;}
		ACNB D 0 A_Scream();
		ACNB D 6 A_Fall();
		ACNB D 1;
		Wait;
	Crash:
		ACNB EFG 6;
		ACNB H -1;
		Stop;
	Raise:
		ACNB HGFEDA 8;
		ACNB A 0 {bFLOATBOB = True;}
		Goto See;
	}
}

Class AraknorbBall : Actor
{
	Default
	{
		Radius 13;
		Height 8;
		Speed 8;
		Damage 3;
		RenderStyle "STYLE_Add";
		Alpha 0.75;
		SeeSound "baby/attack";
		DeathSound "baby/shotx";
		PROJECTILE;
		+BRIGHT
		+SEEKERMISSILE
		+STRIFEDAMAGE
		+RANDOMIZE
	}

	States
	{
	Spawn:
		ACNF AABB 1 A_Weave(2, 2, 2.0, 1.0);
		Loop;
	Death:
		ACNF CDEFG 5;
		Stop;
	}
}
//End of Arachnorb script
