Actor UnderwaterExplosion
{
+NOCLIP
+NOTELEPORT
+NOGRAVITY
states
	{
	Spawn:
 TNT1 A 1
 TNT1 A 0 A_JumpIf(waterlevel < 1, "Stap")
 

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
+NOTELEPORT
+NOGRAVITY
states
	{
	Spawn:
 TNT1 A 1
 TNT1 A 0 A_JumpIf(waterlevel < 1, "Stap")
 

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
+NOTELEPORT
+NOGRAVITY
states
	{
	Spawn:
 TNT1 A 1
 TNT1 A 0 A_JumpIf(waterlevel < 1, "Stap")
 

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 BUBULZ
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  +NoGravity
  +NOTELEPORT
  +DontSplash
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
  +DOOMBOUNCE
  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
  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
    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
    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 WaterParticleX
{
  Height 0
  Radius 0
  Mass 0
  Radius 2
  Height 2
  +Missile
  -NoGravity
  +NOTELEPORT
  +DontSplash
  +FORCEXYBILLBOARD
  +THRUACTORS
  +CLIENTSIDEONLY
  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
  +NOTELEPORT
  -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
  +NOTELEPORT
  +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_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
  +NOTELEPORT
  +NOGRAVITY
  +THRUACTORS
  +SHOOTABLE
  +NOBLOOD
  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_SpawnItem("GiantWaterRicochet")
	TNT1 A 0 A_PlaySound("bigspl1")
	TNT1 A 0 A_NoBlocking
	TNT1 A 30
	Stop
  }
}
