Actor UnderwaterExplosion
{
+NOCLIP
+NOGRAVITY
states
	{
	Spawn:
 TNT1 A 1
 TNT1 A 0 A_JumpIf(waterlevel < 1, "Stap")
 
TNT1 AAAA 0 A_CustomMissile ("WaterParticleXSpawner", 0, 0, random (0, 360), 2, random (60, 130))
TNT1 AAAAA 0 A_CustomMissile ("BUBULZ", 0, 0, random (0, 360), 2, random (0, 180))
TNT1 AAAAA 0 A_CustomMissile ("WaterExplosionPressure", 0, 0, random (0, 360), 2, random (0, 360))
TNT1 A 0 A_CustomMissile ("WaterExplosionPressure2", 0, 0, random (0, 360), 2, random (0, 360))
TNT1 AAAAAAAAAA 0 A_CustomMissile ("EXPLOSIONBUBULZ", 0, 0, random (0, 360), 2, random (180, 360))
		Stop

Stap:
TNT1 A 0
Stop		
	}
}


Actor SmallUnderwaterExplosion
{
+NOCLIP
+NOGRAVITY
states
	{
	Spawn:
 TNT1 A 1
 TNT1 A 0 A_JumpIf(waterlevel < 1, "Stap")
 
TNT1 A 0 A_CustomMissile ("WaterParticleXSpawner", 0, 0, random (0, 360), 2, random (60, 130))
TNT1 AAAA 0 A_CustomMissile ("BUBULZ", 0, 0, random (0, 360), 2, random (0, 180))
TNT1 AA 0 A_CustomMissile ("WaterExplosionPressure", 0, 0, random (0, 360), 2, random (0, 360))
TNT1 A 0 A_CustomMissile ("WaterExplosionPressure2", 0, 0, random (0, 360), 2, random (0, 360))
TNT1 AAAAAAAAA 0 A_CustomMissile ("EXPLOSIONBUBULZ", 0, 0, random (0, 360), 2, random (180, 360))
		Stop

Stap:
TNT1 A 0
Stop		
	}
}




Actor UnderwaterHitPuff
{
+NOCLIP
+NOGRAVITY
states
	{
	Spawn:
 TNT1 A 1
 TNT1 A 0 A_JumpIf(waterlevel < 1, "Stap")
 
TNT1 A 0 A_CustomMissile ("WaterParticleXTinySpawner", 0, 0, random (0, 360), 2, random (60, 130))
TNT1 A 0 A_CustomMissile ("BUBULZ", 0, 0, random (0, 360), 2, random (0, 180))
TNT1 A 0 A_CustomMissile ("EXPLOSIONBUBULZ", 0, 0, random (0, 360), 2, random (180, 360))
		Stop

Stap:
TNT1 A 0
Stop		
	}
}




Actor LiquidParticleX
{
  Height 1
  Radius 1
  Mass 0
  +Missile
  -NoGravity
  +DontSplash
  +DoomBounce
  +FORCEXYBILLBOARD
  +THRUACTORS
  +CLIENTSIDEONLY
  +NOTELEPORT
  BounceFactor 0.1
  Gravity 0.5
  RenderStyle Add
  Scale 4.0
  Alpha 0.4
  //Speed 2
  decal watersplash
  Speed 7
  States
  {
  Spawn:
  TNT1 A 1 
  TNT1 A 0 A_ChangeFlag(DOOMBOUNCE, 0)
  TNT1 A 1
  Goto Stand
  Stand:
    LIQU ABCDDDDDDDDDDDDDDDDDDD 4
    Stop
 Death:
 TNT1 A 1
 TNT1 FFF 0 A_CustomMissile ("WaterParticleX", 2, random(-5,5), random (0, 360), 2, random (50, 140))
 TNT1 A 0
 Stop
	
  }
}



Actor WaterParticleXSpawner
{
	Projectile
	+RANDOMIZE
+FORCEXYBILLBOARD
+NOTELEPORT
   // +BLOODSPLATTER 
damage 0
radius 2
height 0
speed 40
renderstyle ADD
alpha 0.9
scale .15
states
	{
	Spawn:
	TNT1 AAAAA 1 A_JumpIf(waterlevel < 1, "SurfaceSpawn")
	Stop
	
	SurfaceSpawn:
	    TNT1 AAAAAAAAAAAA 0 A_SpawnItem("SpawnLiquidParticleX")
		TNT1 AAAA 1 A_SpawnItem("SpawnLiquidParticleX")
		
		Stop
Death:
    Stop
XDeath:
TNT1 A 0
Stop
	}
}


Actor SpawnLiquidParticleX
{
+NOCLIP
+NOGRAVITY
+NOTELEPORT
states
	{
	Spawn:
        TNT1 AAAAAAAAAAAA 0 A_CustomMissile ("LiquidParticleX", 0, 0, random (0, 360), 2, random (0, 360))
		Stop
	}
}



Actor BUBULZ
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  +NoGravity
  +DontSplash
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
  +DOOMBOUNCE
  +NOTELEPORT
  RenderStyle Add
  Scale 0.5
  Speed 2
  
  States
  {
  Spawn:
  TNT1 A 0
  TNT1 A 0 A_Jump(255, "Spawn1", "Spawn2")
  Spawn1:
	TNT1 A 0 ThrustThingZ(0,2,0,1)
    BUBL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_JumpIf(waterlevel < 1, "Death")
    Stop
 Spawn2:
 TNT1 A 0 ThrustThingZ(0,2,0,1)
    BUBL BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 1 Bright A_JumpIf(waterlevel < 1, "Death")
    Loop
 
 Death:
 TNT1 A 0
 Stop
  }
}



Actor EXPLOSIONBUBULZ: BUBULZ
{
  Speed 10
  +NOTELEPORT
  States
  {
  Spawn:
  BUBL A 10 
  TNT1 A 0 A_Jump(255, "Spawn1", "Spawn2")
  Spawn1:
	
	BUBL A 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL A 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL A 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL A 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL A 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL A 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL A 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL A 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL A 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL A 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL A 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL A 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
    BUBL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_JumpIf(waterlevel < 1, "Death")
    Stop
 Spawn2:
    BUBL B 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL B 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL B 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL B 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL B 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL B 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL B 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL B 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL B 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL B 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL B 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL B 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL B 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
	BUBL B 1 BRIGHT A_JumpIf(waterlevel < 1, "Death")
	TNT1 A 0 ThrustThingZ(0,4,0,1)
    BUBL BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 1 Bright A_JumpIf(waterlevel < 1, "Death")
    Stop
 
 Death:
 TNT1 A 0
 Stop
  }
}








ACTOR WaterExplosionPressure
{
    Radius 0
    Height 0
	Alpha 1.0
	RenderStyle Add
	Scale 2.0
	Speed 2
    +NOBLOCKMAP
    +NOTELEPORT
    +DONTSPLASH
	+MISSILE
	+FORCEXYBILLBOARD
    +CLIENTSIDEONLY
	Damage 0
    +NOINTERACTION
	+NOTELEPORT
    States
    {
    Spawn:
        SMOK A 0
        Goto Death
	Death:
	    
		TNT1 A 0 A_JumpIf(waterlevel < 1, "Stap")
		SMOK BCDEEFGHI 3
		SMOK JKLMNOPQR 1
Stap:		
TNT1 A 0
Stop
    }
}


ACTOR WaterExplosionPressure2
{
    Radius 0
    Height 0
	Alpha 1.0
	RenderStyle Add
	Scale 4.0
	Speed 0
    +NOBLOCKMAP
    +NOTELEPORT
    +DONTSPLASH
	+MISSILE
	+FORCEXYBILLBOARD
    +CLIENTSIDEONLY
	Damage 0
    +NOINTERACTION
	+NOTELEPORT
    States
    {
    Spawn:
        SMOK A 0
        Goto Death
	Death:
	    
		TNT1 A 0 A_JumpIf(waterlevel < 1, "Stap")
		SMOK ABCDEFGHIJKLMNOPQR 1
Stap:		
TNT1 A 0
Stop
    }
}






Actor WaterParticleXTinySpawner: WaterParticleXSpawner
{
speed 20
states
	{
	Spawn:
	TNT1 AAAAA 1 A_JumpIf(waterlevel < 1, "SurfaceSpawn")
	Stop
	
	SurfaceSpawn:
	    TNT1 AAAAAAA 0 A_CustomMissile ("LiquidParticleXSmall", 0, 0, random (0, 360), 2, random (0, 360))
		
		Stop
Death:
    Stop
XDeath:
TNT1 A 0
Stop
	}
}

Actor SpawnLiquidParticleXSmall
{
+NOCLIP
+NOGRAVITY
+NOTELEPORT
states
	{
	Spawn:
        TNT1 AAAAAAA 0 A_CustomMissile ("LiquidParticleXSmall", 0, 0, random (0, 360), 2, random (0, 360))
		Stop
	}
}



Actor LiquidParticleXSmall
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  -NoGravity
  +DontSplash
  +DoomBounce
  +FORCEXYBILLBOARD
  +THRUACTORS
  +CLIENTSIDEONLY
  +NOTELEPORT
  BounceFactor 0.1
  Gravity 0.5
  RenderStyle Add
  Scale 1.5
  Alpha 0.4
  //Speed 2
  Speed 7
  States
  {
  Spawn:
  TNT1 A 1 
  TNT1 A 0 A_ChangeFlag(DOOMBOUNCE, 0)
  TNT1 A 1
  Goto Stand
  Stand:
    LIQU ABCDDDDDDD 4
    Stop
 Death:
 TNT1 A 1
 TNT1 A 0
 Stop
	
  }
}










Actor WaterParticleX
{
  Height 0
  Radius 0
  Mass 0
  Radius 2
  Height 2
  +Missile
  -NoGravity
  +DontSplash
  +FORCEXYBILLBOARD
  +THRUACTORS
  +CLIENTSIDEONLY
  +NOTELEPORT
  decal watersplash
  BounceFactor 0.1
  Gravity 0.5
  RenderStyle Add
  Scale 1.0
  Alpha 0.5
  //Speed 2
  Speed 2
  States
  {
  Spawn:
  TNT1 A 1 
  TNT1 A 0 A_ChangeFlag(DOOMBOUNCE, 0)
  TNT1 A 1
  Goto Stand
  Stand:
    WSPH ABCD 4
    Stop
 Death:
 TNT1 A 5
 TNT1 A 0
 Stop
	
  }
}


Actor WaterParticleXFAster: WaterParticleX
{
  Speed 4
    States
  {
  Spawn:
  TNT1 A 1 
  TNT1 A 0 A_ChangeFlag(DOOMBOUNCE, 0)
  TNT1 A 1
  Goto Stand
  Stand:
    WSPH ABCDDDDDDDDD 4
    Stop
 }
}


Actor WaterParticleXSuperFast: WaterParticleX
{
  Speed 6
  Scale 1.2
  Mass 0
  -DOOMBOUNCE
  -DONTSPLASH
  -NOBLOCKMAP
  -NOCLIP
  +THRUACTORS
  States
  {
  Spawn:
  TNT1 A 1 
  TNT1 A 0 A_ChangeFlag(DOOMBOUNCE, 0)
  TNT1 A 1
  Goto Stand
  Stand:
    WSPH ABCDDDDDDDDD 4
    Stop
 Death:
 WSPL ABCDEFGH 1
 Stop
 }
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

//********** Splashes **********

actor WaterSplashBase2
{
  Radius 1
  Height 1
  Mass 999999
  alpha .6
  Scale 1.1
  +DONTSPLASH
  +NOGRAVITY
  +THRUACTORS
  +SHOOTABLE
  +NOBLOOD
  +BLOODLESSIMPACT 
  +NODAMAGETHRUST
  Health 100
  DamageFactor "CauseWaterSplash", 99.0
  Damagetype "CauseObjectsToSplash"
  States
  {
  Spawn:
	TNT1 FFFFFF 0 A_CustomMissile ("WaterParticleX", 2, random(-5,5), random (0, 360), 2, random (50, 140))
	TNT1 FFFFFF 0 A_CustomMissile ("WaterParticleXFaster", 2, random(-5,5), random (0, 360), 2, random (50, 140))
    TNT1 A 0 //A_Explode(2, 6)
	SPSH HI 6
	TNT1 A 0 A_ChangeFLag("SHOOTABLE", 0)
	SPSH HI 6
	TNT1 A 0 A_NoBlocking
    Stop
  Death.CauseWaterSplash:
	tNT1 A 0 A_CustomMissile ("WaterParticleXSpawner", 0, 0, random (0, 360), 2, random (80, 110))
	TNT1 A 0 A_SpawnItem("GiantWaterRicochet")
	TNT1 A 0 A_PlaySound("bigspl1")
	TNT1 A 0 A_NoBlocking
	TNT1 A 30
	Stop
  }
}


actor WaterSplashBaseSmall
{
  Radius 1
  Height 1
  Mass 999999
  alpha .6
  Scale 0.7
  +DONTSPLASH
  +NOGRAVITY
  +THRUACTORS
  +SHOOTABLE
  +NOBLOOD
  +NOTELEPORT
  Health 100
  DamageFactor "CauseWaterSplash", 99.0
  States
  {
  Spawn:
    TNT1 FFFFFF 0 A_CustomMissile ("WaterParticleX", 12, 0, random (0, 360), 2, random (50, 140))
	TNT1 FFFFFF 0 A_CustomMissile ("WaterParticleXFaster", 12, 0, random (0, 360), 2, random (50, 140))
    SPSH HI 6
	TNT1 A 0 A_ChangeFLag("SHOOTABLE", 0)
	SPSH HI 6
	TNT1 A 0 A_NoBlocking
    Stop
  Death.CauseWaterSplash:
	tNT1 A 0 A_CustomMissile ("WaterParticleXSpawner", 0, 0, random (0, 360), 2, random (80, 110))
	TNT1 A 0 A_SpawnItem("GiantWaterRicochet")
	TNT1 A 0 A_PlaySound("bigspl1")
	TNT1 A 0 A_NoBlocking
	TNT1 A 30
	Stop
  }
}
