ACTOR TreeBlood
{
  renderstyle Add
  alpha 1.0
  -COUNTKILL
  -SHOOTABLE
  +CLIENTSIDEONLY
  +BLOODLESSIMPACT
  +FORCEXYBILLBOARD
  +THRUACTORS
  +NOGRAVITY
  Scale 0.09
  Speed 0
  Radius 1
  Height 1
  states
  {
  Spawn:
   TNT1 AA 0 A_CustomMissile ("BrownCloudSmall", 2, 0, random (0, 360), 2, random (0, 360))
   TNT1 AA 0 A_CustomMissile ("WoodParticleTIny", 2, 0, random (0, 360), 2, random (0, 360))
   Stop

  }
}

// Trees ----------------------------------------------------------------

ACTOR TorchTree2: TorchTree Replaces TorchTree
{
	Game Doom
	Radius 16
	Height 56
    deathheight 32
	damagefactor "Avoid", 0.0    damagefactor "Kick", 0.0	damagefactor "Melee", 0.0
    damagefactor "KillMe", 0.0 damagefactor "Trample", 0.0
	damagefactor "Blood", 0.0 damagefactor "BlueBlood", 0.0 damagefactor "GreenBlood", 0.0
	damagefactor "Plasma", 2.0 damagefactor "Burn", 2.0 damagefactor "Flames", 2.0
	damagefactor "Fire", 2.0
	+SOLID
    +SHOOTABLE
	BloodType "TreeBlood"
    +FORCEYBILLBOARD
	+NOBLOODDECALS
	+NOTAUTOAIMED
	+NOTARGET
    Mass 99999
	damagefactor "Explosive", 10.0
	burnheight 32
    Health 200
	States
	{
	Vanilla:
		TNT1 A 2 A_ChangeFlag("NOINTERACTION", 1)
		TNT1 A 0 A_SpawnItem("VanillaSmallTree")
		TNT1 A 2 Thing_Remove(0)
		Stop

	Spawn:
		TRE1 A 0
		TRE1 O 0 Thing_ChangeTID(0,748)
		TRE1 A 2
		MARN A 0 ACS_NamedExecuteAlways("BDCheckDecorations", 0, 0, 0, 0)//Check if advanced decorations are disabled.
		TNT1 A 0 ACS_NamedExecuteAlways("BDCheckFloorType3", 0, 0, 0, 0)//Check floor texture type
		TRE1 A 2
		Goto Spawn2

	Spawn2:
	TRE1 A 2
	TNT1 A 0 A_JUmpIfInventory("IsOverSand", 1, "SpawnPalm")
	TNT1 A 0 A_JUmpIfInventory("IsOverGrass", 1, "ForestSpawn")
	TNT1 A 0 A_JUmpIfInventory("IsOverFlesh", 1, "FleshSpawn")
	TRE1 A 2
	TRE1 A -1
	Stop

	FleshSpawn:
		TNT1 A 2 A_ChangeFlag("NOINTERACTION", 1)
		TNT1 A 0 A_SpawnItem("BDECHellGrowthSmall")
		TNT1 A 2 Thing_Remove(0)
		Stop

	SpawnPalm:
		TNT1 A 2 A_ChangeFlag("NOINTERACTION", 1)
		TNT1 A 0 A_SpawnItem("BDPalmTree")
		TNT1 A 2 Thing_Remove(0)
		Stop

	ForestSpawn:
		TNT1 A 0
		TNT1 AAAAAA 0 A_SpawnItemEx("BDECGrassSpecial", random(-180, 180), random(-180, 180))
		TNT1 A 0 A_Jump(255, "SpawnForest1", "SpawnForest2")

	SpawnFOrest1:
		TNT1 A 2 A_ChangeFlag("NOINTERACTION", 1)
		TNT1 A 0 A_SpawnItem("BDECGreenTree2")
		TNT1 A 2 Thing_Remove(0)
		Stop

	SpawnFOrest2:
		TNT1 A 2 A_ChangeFlag("NOINTERACTION", 1)
		TNT1 A 0 A_SpawnItem("BDECOldTree2")
		TNT1 A 2 Thing_Remove(0)
		Stop

    Death:
	TRE1 B 1
    TNT1 AAAA 0 A_CustomMissile ("BrownCloud", 35, 0, random (0, 360), 2, random (0, 360))
	TNT1 AAA 0 A_CustomMissile ("WoodParticle", 35, 0, random (0, 360), 2, random (0, 160))
	TNT1 AAA 0 A_CustomMissile ("WoodParticleSmall", 25, 0, random (0, 360), 2, random (0, 160))
	TNT1 AAA 0 A_CustomMissile ("WoodParticleTiny", 55, 0, random (0, 360), 2, random (0, 160))
	TNT1 AAA 0 A_CustomMissile ("WoodParticleBig", 65, 0, random (0, 360), 2, random (0, 160))
	TRE1 B -1
	Stop

	Death.Burn:
	Death.Flames:
	Death.Plasma:
	Death.Plasma2:
	Death.Fire:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("RealisticFireSparksTempBig", 0, 0, 64)
		TNT1 A 0 A_SpawnItemEx("TempHDFlamesGFX1", 0, 0, 5)
		TNT1 A 0 A_Playsound("BDFireplace", 1, 1, 1)
	Burning:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("BrutalCounter",53,"Extinguish")
		TRE1 C 10 BRIGHT A_CustomMissile ("BurnDamageSmall", 16)
		TNT1 A 0 A_GiveInventory("BrutalCounter",1)
		TRE1 C 10 BRIGHT A_CustomMissile ("BurnDamageSmall", 16)
		Loop

	Extinguish:
		TRE1 D 4 A_StopSound(1)
		TRE1 D -1
		Stop
	}
}

ACTOR Big_Tree: BigTree Replaces BigTree
{
	Game Doom
	Radius 32
	Height 84
	ProjectilePassHeight -16
    deathheight 42
	burnheight 32
	PainChance "Blood", 255
	damagefactor "Explosive", 10.0
	damagefactor "Avoid", 0.0    damagefactor "Kick", 0.0	damagefactor "Melee", 0.0
    damagefactor "KillMe", 0.0 damagefactor "Trample", 0.0
	DamageFactor "Fire", 2.0 DamageFactor "Burn", 2.0 DamageFactor "Flames", 2.0
	DamageFactor "Plasma", 2.0 DamageFactor "PLasma2", 2.0
	+SOLID
    +SHOOTABLE
    +FORCEYBILLBOARD
	-NOPAIN
	+NOTAUTOAIMED
    Mass 99999
    Health 500
	+NOBLOODDECALS
	+NOTARGET
	BloodType "TreeBlood"
	States
	{
	Vanilla:
		TNT1 A 2 A_ChangeFlag("NOINTERACTION", 1)
		TNT1 A 0 A_SpawnItem("VanillaBigTree")
		TNT1 A 2 Thing_Remove(0)
		Stop

	Spawn:
		TRE2 O 0
		TRE2 A 0 Thing_ChangeTID(0,748)
		TRE2 A 2
		MARN A 0 ACS_NamedExecuteAlways("BDCheckDecorations", 0, 0, 0, 0)//Check if advanced decorations are disabled.
		TNT1 A 0 ACS_NamedExecuteAlways("BDCheckFloorType3", 0, 0, 0, 0)//Check floor texture type
		TRE2 A 2
		Goto Spawn2

	Spawn2:
		TRE2 A 2
		TNT1 A 0 A_JUmpIfInventory("IsOverGrass", 1, "ForestSPawn")
		TNT1 A 0 A_JUmpIfInventory("IsOverDirt", 1, "DirtSpawn")
		TNT1 A 0 A_JUmpIfInventory("IsOverSand", 1, "DesertSpawn")
		TNT1 A 0 A_JUmpIfInventory("IsOverFlesh", 1, "FleshSpawn")
		TRE2 A 2
		TRE2 A -1
		Stop

	DesertSpawn:
		TNT1 A 2 A_ChangeFlag("NOINTERACTION", 1)
		TNT1 A 0 A_SpawnItem("BDecJunglePlant2")
		TNT1 A 2 Thing_Remove(0)
		Stop

	DirtSpawn:
		TRE2 A 1
		TNT1 A 0 A_Jump(196, "DirtSpawn2", "DirtSpawn3")
		TRE2 A -1
		Stop

	DirtSpawn2:
		TNT1 A 2 A_ChangeFlag("NOINTERACTION", 1)
		TNT1 A 0 A_SpawnItem("BDECDeadTree1")
		TNT1 A 2 Thing_Remove(0)
		Stop

	DirtSpawn3:
		TNT1 A 2 A_ChangeFlag("NOINTERACTION", 1)
		TNT1 A 0 A_SpawnItem("BDECDeadTree2")
		TNT1 A 2 Thing_Remove(0)
		Stop

	ForestSpawn:
		TNT1 A 0
		TNT1 AAAAAAAA 0 A_SpawnItemEx("BDECGrassSpecial", random(-180, 180), random(-180, 180))
		TNT1 A 0 A_Jump(255, "SpawnForest1", "SpawnForest2", "SpawnForest3", "SpawnForest4")

	SpawnFOrest1:
		TNT1 A 2 A_ChangeFlag("NOINTERACTION", 1)
		TNT1 A 0 A_SpawnItem("BDECGreenTree1")
		TNT1 A 2 Thing_Remove(0)
		Stop

	SpawnFOrest2:
		TNT1 A 2 A_ChangeFlag("NOINTERACTION", 1)
		TNT1 A 0 A_SpawnItem("BDECOldTree1")
		TNT1 A 2 Thing_Remove(0)
		Stop

	SpawnFOrest3:
		TNT1 A 2 A_ChangeFlag("NOINTERACTION", 1)
		TNT1 A 0 A_SpawnItem("BDECGreenTree3")
		TNT1 A 2 Thing_Remove(0)
		Stop

	SpawnFOrest4:
		TNT1 A 2 A_ChangeFlag("NOINTERACTION", 1)
		TNT1 A 0 A_SpawnItem("BDECOldTree1")
		TNT1 A 2 Thing_Remove(0)
		Stop

    FleshSpawn:
		TNT1 A 2 A_ChangeFlag("NOINTERACTION", 1)
		TNT1 A 0 A_SpawnItem("BDECHellGrowth")
		TNT1 A 2 Thing_Remove(0)
		Stop

	Pain.Blood:
	TRE2 M 1
	TRE2 M -1
	Stop

	Death:
	TRE2 B 1
    TNT1 AAAAAA 0 A_CustomMissile ("BrownCloud", 35, 0, random (0, 360), 2, random (0, 360))
	TNT1 AAAAA 0 A_CustomMissile ("WoodParticle", 35, 0, random (0, 360), 2, random (0, 160))
	TNT1 AAAAA 0 A_CustomMissile ("WoodParticleSmall", 45, 0, random (0, 360), 2, random (0, 160))
	TNT1 AAAAAA 0 A_CustomMissile ("WoodParticleTiny", 65, 0, random (0, 360), 2, random (0, 160))
	TNT1 AAAAAAA 0 A_CustomMissile ("WoodParticleBig", 85, 0, random (0, 360), 2, random (0, 160))
	TRE2 B -1
	Stop

	Death.Burn:
	Death.Flames:
	Death.Plasma:
	Death.Plasma2:
	Death.Fire:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("RealisticFireSparksTempBig", 0, 0, 64)
		TNT1 A 0 A_SpawnItemEx("TempHDFlamesGFX1Big", 0, 0, 5)
		TNT1 A 0 A_Playsound("BDFireplace", 1, 1, 1)
	Burning:
		TNT1 A 0 A_JumpIfInventory("BrutalCounter",53,"Extinguish")
		TRE2 N 10 BRIGHT A_CustomMissile ("BurnDamageSmall", 16)
		TNT1 A 0 A_GiveInventory("BrutalCounter",1)
		TRE2 N 10 BRIGHT A_CustomMissile ("BurnDamageSmall", 16)
		Loop
	Extinguish:
		TRE2 N 4 A_StopSound(1)
		TRE2 N -1
		Stop
	}
}

ACTOR Wolfenstein3DFlowerPot
{
	Game Doom
	Radius 8
	Height 60
	sCALE 1.2
	+SOLID
	+NOTARGET
	States
	{
	Spawn:
		WLZ7 B 1
		WLZ7 B -1
		Loop
	}
}

ACTOR VanillaBigTree
{
	Game Doom
	Radius 24
	Height 108
	ProjectilePassHeight -16
	+SOLID
	+SHOOTABLE
	BloodType "TreeBlood"
	+NOBLOODDECALS
    Mass 99999
    Health 99999
	+NOTARGET
	States
	{
	Spawn:
		TRE2 A -1
		Stop
	}
}

ACTOR VanillaSmallTree
{
	Game Doom
	Radius 16
	Height 56
	ProjectilePassHeight -16
	+SHOOTABLE
	BloodType "TreeBlood"
	+NOBLOODDECALS
    Mass 99999
    Health 99999
	+SOLID
	+NOTARGET
	States
	{
	Spawn:
		TRE1 A -1
		Stop
	}
}

ACTOR StalagtiteReplacer Replaces Stalagtite
{
	Radius 16
	Height 40
	ProjectilePassHeight -16
	+SOLID
	+USESPECIAL
	+NOTARGET
	States
	{
	Spawn:
		SMIT A 2
		SMIT A 0 ACS_NamedExecuteAlways("BDCheckDecorations", 0, 0, 0, 0)//Check if advanced decorations are disabled.
		TNT1 A 0 ACS_NamedExecuteAlways("BDCheckFloorType3", 0, 0, 0, 0)//Check floor texture type
		SMIT A 2
		Goto Spawn2

	Spawn2:
		SMIT A 2
		TNT1 A 0 A_JUmpIfInventory("IsOverGrass", 1, "ForestSpawn")
		SMIT A 2
		SMIT A -1
		Stop

	ForestSpawn:
		TNT1 A 2 A_ChangeFlag("NOINTERACTION", 1)
		TNT1 AAAAAA 0 A_SpawnItemEx("BDECGrassSpecial", random(-180, 180), random(-180, 180))
		TNT1 A 0 A_SpawnItem("BDECBush")
		TNT1 A 2 Thing_Remove(0)
		Stop
	}
}