

//==============================================================================
//========================= Classic Mode Bottle Stuff ==========================
//==============================================================================


ACTOR ClassicDroppedFlechette
{
  DamageType "Bomb"
  +NOGRAVITY
  +FOILINVUL
  +FORCERADIUSDMG
  +DONTSPLASH
  +FLOATBOB
  RenderStyle Translucent
  Alpha 0.8
  DeathSound "FlechetteExplode"
  
  Height 32

	States
	{
	Spawn:
		TNT1 A 0 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		THRW N 1 Bright A_RadiusThrust(-900,1280,RTF_NOIMPACTDAMAGE,1280)
		TNT1 A 0 Bright A_RadiusThrust(-50,1280,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ,1280)
		TNT1 A 0 A_GiveInventory("BoomTimer",1)
		TNT1 A 0 A_JumpIfInventory("BoomTimer",140,"Death")
		TNT1 A 0 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		THRW N 1 Bright A_RadiusThrust(-900,1280,RTF_NOIMPACTDAMAGE,1280)
		TNT1 A 0 Bright A_RadiusThrust(-50,1280,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ,1280)
		TNT1 A 0 A_GiveInventory("BoomTimer",1)
		TNT1 A 0 A_JumpIfInventory("BoomTimer",140,"Death")
		TNT1 A 0 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		THRW N 1 Bright A_RadiusThrust(-900,1280,RTF_NOIMPACTDAMAGE,1280)
		TNT1 A 0 Bright A_RadiusThrust(-50,1280,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ,1280)
		TNT1 A 0 A_GiveInventory("BoomTimer",1)
		TNT1 A 0 A_JumpIfInventory("BoomTimer",140,"Death")
		TNT1 A 0 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		THRW O 1 Bright A_RadiusThrust(-900,1280,RTF_NOIMPACTDAMAGE,1280)
		TNT1 A 0 Bright A_RadiusThrust(-50,1280,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ,1280)
		TNT1 A 0 A_GiveInventory("BoomTimer",1)
		TNT1 A 0 A_JumpIfInventory("BoomTimer",140,"Death")
		TNT1 A 0 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		THRW O 1 Bright A_RadiusThrust(-900,1280,RTF_NOIMPACTDAMAGE,1280)
		TNT1 A 0 Bright A_RadiusThrust(-50,1280,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ,1280)
		TNT1 A 0 A_GiveInventory("BoomTimer",1)
		TNT1 A 0 A_JumpIfInventory("BoomTimer",140,"Death")
		TNT1 A 0 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		THRW O 1 Bright A_RadiusThrust(-900,1280,RTF_NOIMPACTDAMAGE,1280)
		TNT1 A 0 Bright A_RadiusThrust(-50,1280,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ,1280)
		TNT1 A 0 A_GiveInventory("BoomTimer",1)
		TNT1 A 0 A_JumpIfInventory("BoomTimer",140,"Death")
		TNT1 A 0 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		THRW N 1 Bright A_RadiusThrust(-900,1280,RTF_NOIMPACTDAMAGE,1280)
		TNT1 A 0 Bright A_RadiusThrust(-50,1280,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ,1280)
		TNT1 A 0 A_GiveInventory("BoomTimer",1)
		TNT1 A 0 A_JumpIfInventory("BoomTimer",140,"Death")
		TNT1 A 0 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		THRW N 1 Bright A_RadiusThrust(-900,1280,RTF_NOIMPACTDAMAGE,1280)
		TNT1 A 0 Bright A_RadiusThrust(-50,1280,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ,1280)
		TNT1 A 0 A_GiveInventory("BoomTimer",1)
		TNT1 A 0 A_JumpIfInventory("BoomTimer",140,"Death")
		TNT1 A 0 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		THRW N 1 Bright A_RadiusThrust(-900,1280,RTF_NOIMPACTDAMAGE,1280)
		TNT1 A 0 Bright A_RadiusThrust(-50,1280,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ,1280)
		TNT1 A 0 A_GiveInventory("BoomTimer",1)
		TNT1 A 0 A_JumpIfInventory("BoomTimer",140,"Death")
		TNT1 A 0 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		THRW P 1 Bright A_RadiusThrust(-900,1280,RTF_NOIMPACTDAMAGE,1280)
		TNT1 A 0 Bright A_RadiusThrust(-50,1280,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ,1280)
		TNT1 A 0 A_GiveInventory("BoomTimer",1)
		TNT1 A 0 A_JumpIfInventory("BoomTimer",140,"Death")
		TNT1 A 0 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		THRW P 1 Bright A_RadiusThrust(-900,1280,RTF_NOIMPACTDAMAGE,1280)
		TNT1 A 0 Bright A_RadiusThrust(-50,1280,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ,1280)
		TNT1 A 0 A_GiveInventory("BoomTimer",1)
		TNT1 A 0 A_JumpIfInventory("BoomTimer",140,"Death")
		TNT1 A 0 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		THRW P 1 Bright A_RadiusThrust(-900,1280,RTF_NOIMPACTDAMAGE,1280)
		TNT1 A 0 Bright A_RadiusThrust(-50,1280,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ,1280)
		TNT1 A 0 A_GiveInventory("BoomTimer",1)
		TNT1 A 0 A_JumpIfInventory("BoomTimer",140,"Death")
		Loop
		Goto Spawn+1		
	Death:
		TNT1 AAAAAAA 0 A_CustomMissile ("HDBallBoom", 3, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_Explode(random(50,120), 140, 0)
		TNT1 A 0 A_Explode(40, 220)
		TNT1 A 0 A_SpawnItemEx ("ExplosionFlareSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_PlaySound("DSBAREXP", 1)
		//TNT1 A 1 Radius_Quake (4, 15, 0, 12, 0)
		TNT1 A 0 A_QuakeEx (2,2,2,20,0,440,"world/quake",QF_SCALEDOWN,0,0,0,220)
		TNT1 AAAA 0 A_CustomMissile ("PlasmaSmoke", 3, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticle1", 3, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAAAAAAAA 6 A_CustomMissile ("PlasmaSmoke", 1, 0, random (0, 360), 2, random (0, 160))
		Stop
  }
}

ACTOR ClassicDroppedFlechetteTrans : ClassicDroppedFlechette
{
	Alpha 0.2
		States
	{
	Spawn:
		
		THRW Y 1 Bright
		TNT1 A 0 A_GiveInventory("BoomTimer",1)
		TNT1 A 0 A_JumpIfInventory("BoomTimer",140,"Death")
		Loop
		
	Death:
		TNT1 AAAAAAA 0 A_CustomMissile ("HDBallBoom", 3, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_Explode(random(50,120), 140, 0)
		TNT1 A 0 A_Explode(40, 220)
		TNT1 A 0 A_SpawnItemEx ("ExplosionFlareSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_PlaySound("DSBAREXP", 1)
		//TNT1 A 1 Radius_Quake (4, 15, 0, 12, 0)
		TNT1 A 0 A_QuakeEx (2,2,2,20,0,440,"world/quake",QF_SCALEDOWN,0,0,0,220)
		TNT1 AAAA 0 A_CustomMissile ("PlasmaSmoke", 3, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticle1", 3, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAAAAAAAA 6 A_CustomMissile ("PlasmaSmoke", 1, 0, random (0, 360), 2, random (0, 160))
		Stop
	}
}

ACTOR ClassicExplosiveBottle : CustomInventory
{
	+INVBAR
	+FLOATBOB
	+Inventory.ALWAYSPICKUP
	Tag "Explosive Flechette"
	Inventory.Icon "ARTIPSBG"
	Inventory.MaxAmount 10
	Inventory.InterHubAmount 10
	Inventory.PickupSound "misc/p_pkup"
	Inventory.PickupMessage "$TXT_ARTIPOISONBAG"
	
	States
	{
		Spawn:
			PSBG A 1 A_SpawnItemEx("FlechetteFlare",0,0,27,0,0,0,0,SXF_NOCHECKPOSITION)
			Loop
		Use:
			TNT1 A 0 A_FireProjectile("ThrowedFlechette")
			Stop
	}
}

ACTOR ClassicDroppedBottle : CustomInventory
{
	+INVBAR
	+FLOATBOB
	+ALWAYSPICKUP
	Tag "Gravity Bottle"
	Inventory.Icon "ARTIPSBR"
	Mass 1
	Inventory.MaxAmount 10
	Inventory.InterHubAmount 10
	Inventory.PickupSound "misc/p_pkup"
	Inventory.PickupMessage "$TXT_ARTIPOISONBAG"
	
	States
	{
		Spawn:
			RBOT A 1 A_SpawnItemEx("RedPotionFlare",0,0,27,0,0,0,0,SXF_NOCHECKPOSITION)
			Loop
		Pickup:
			TNT1 A 0 A_GiveInventory("Experience",10)
			Stop
		Use:
			TNT1 A 0 A_SpawnItem("ClassicDroppedFlechette",32,32)
			Stop
	}
}
	

ACTOR BoomTimer : Inventory
{
	Inventory.MaxAmount 140
}

ACTOR ClassicPoisonBottle : CustomInventory
{
	+INVBAR
	+FLOATBOB
	+INVENTORY.ALWAYSPICKUP
	Tag "Poison Bottle"
	Inventory.Icon "ARTIPSBB"
	Inventory.MaxAmount 10
	Inventory.InterHubAmount 10
	Inventory.PickupSound "misc/p_pkup"
	Inventory.PickupMessage "$TXT_ARTIPOISONBAG"
	
	States
	{
		Spawn:
			BBOT A 1 A_SpawnItemEx("BlueFlareSmall",0,0,27,0,0,0,0,SXF_NOCHECKPOSITION)
			Loop
		Use:
			TNT1 A 0 A_SpawnItem("GasFlechette")
			Stop
	}
}

ACTOR ClassicGreenSpawner : CustomInventory
{
	+FLOATBOB
	+Inventory.ALWAYSPICKUP
	FloatBobStrength 0.3
	Tag "Explosive Flechette"
	Inventory.PickupSound "misc/p_pkup"
	Inventory.PickupMessage "$TXT_ARTIPOISONBAG"
	
	States
	{
		Spawn:
			PSBG A 1 A_SpawnItemEx("FlechetteFlare",0,0,27,0,0,0,0,SXF_NOCHECKPOSITION)
			Loop
		Pickup:
			TNT1 A 0 A_GiveInventory("Experience",10)
			TNT1 A 0 A_GiveInventory("ClassicExplosiveBottle",1)
			Stop
	}
}

ACTOR ClassicRedSpawner : CustomInventory
{
	+FLOATBOB
	+ALWAYSPICKUP
	FloatBobStrength 0.3
	Tag "Gravity Bottle"
	Inventory.PickupSound "misc/p_pkup"
	Inventory.PickupMessage "$TXT_ARTIPOISONBAG"
	
	States
	{
		Spawn:
			RBOT A 1 A_SpawnItemEx("RedPotionFlare",0,0,27,0,0,0,0,SXF_NOCHECKPOSITION)
			Loop
		Pickup:
			TNT1 A 0 A_GiveInventory("Experience",10)
			TNT1 A 0 A_GiveInventory("ClassicDroppedBottle",1)
			Stop
	}
}

ACTOR ClassicBlueSpawner : CustomInventory
{
	+FLOATBOB
	+ALWAYSPICKUP
	FloatBobStrength 0.3
	Tag "Poison Bottle"
	Inventory.PickupSound "misc/p_pkup"
	Inventory.PickupMessage "$TXT_ARTIPOISONBAG"
	
	States
	{
		Spawn:
			BBOT A 1 A_SpawnItemEx("BlueFlareSmall",0,0,27,0,0,0,0,SXF_NOCHECKPOSITION)
			Loop
		Pickup:
			TNT1 A 0 A_GiveInventory("Experience",10)
			TNT1 A 0 A_GiveInventory("ClassicPoisonBottle",1)
			Stop
	}
}