actor RainDrop 
{
//Creator: Teribear, DEA, Metal Danny 420 and Dox778
//Origin: Who Dun It Reloaded
//Sprite: RNDR
//Title: "Raindrop And Snowflake"
//
Height 2
Radius 1
Renderstyle add
Alpha 0.6
gravity 2.0
+CLIENTSIDEONLY
+DONTSPLASH
+SPAWNCEILING 
+NOBLOCKMAP
+NOGRAVITY
+THRUACTORS 
+FORCEYBILLBOARD
XScale 0.8
states
{
  Spawn:
	TNT1 A 1 NODELAY A_JumpIf(ACS_NamedExecuteWithResult("CrowSkyCheck") == 0,"NULL")
	TNT1 A 0 A_Jump(128,2)
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
	TNT1 A 0 A_Jump(220,2)
	TNT1 A 0 A_PlaySound("ambient/rain",CHAN_BODY)
  Looping:
	RNDR A 0 A_JumpIf(WaterLevel > 0,"Death2")
	RNDR A 1 A_CheckFloor("Death")
	Loop
  Death:
    TNT1 A 0 A_Jump(254,2)
	TNT1 A 0 A_PlaySound("ambient/raindrop",6)
	RNDR BCDEF 2
	Stop
  Death2:
	TNT1 A 0 A_Stop
	RNDR BCDEF 2 A_NoGravity
	Stop
	}
}

actor Snowflake : RainDrop
{
Alpha 0.9
Scale 0.4
XScale 0.4 
+FORCEXYBILLBOARD
var int user_hordist;
var int user_horspeed;
states
{
  Spawn:
	TNT1 A 1 NODELAY A_JumpIf(ACS_NamedExecuteWithResult("CrowSkyCheck") == 0,"NULL")
	TNT1 A 0 A_Jump(128,2)
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
	TNT1 A 0 A_SetUserVar(user_hordist,Random(2,5))
	TNT1 A 0 A_SetUserVar(user_horspeed,1)
	TNT1 A 0 A_Jump(220,2)
	TNT1 A 0 A_PlaySound("ambient/snow",CHAN_BODY)
  Looping:
	RNDR G 0 A_JumpIf(WaterLevel > 0, "null")
	RNDR G 1 A_CheckFloor("null")
	RNDR G 0 A_Weave(user_horspeed,0,user_hordist,0)
	Loop
	}
}

actor RainSpawnerOhMyGod
{ //Scripted (If the spawners are replaced the rain may not show up)
radius 0
height 0
+NOINTERACTION
+CLIENTSIDEONLY
states
{
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("RainDrop",random(-800,1600),random(-800,800),1000,0,0,-35,0)
	stop
	}
}

actor RainSpawnerWtf : RainSpawnerOhMyGod
{

states
{
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("RainDrop",random(-800,1600),random(-800,800),1000,0,0,-35,0)
	stop
	}
}

actor RainSpawnerSilly : RainSpawnerOhMyGod
{
states
{
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("RainDrop",random(-800,1600),random(-800,800),1000,0,0,-35,0)
	stop
	}
}

actor RainSpawnerHighest : RainSpawnerOhMyGod
{
states
{
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAAAAA 0 A_SpawnItemEx("RainDrop",random(-800,1600),random(-800,800),1000,0,0,-35,0)
	stop
	}
}

actor RainSpawnerHigh : RainSpawnerOhMyGod
{
states
{
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAAA 0 A_SpawnItemEx("RainDrop",random(-800,1600),random(-800,800),1000,0,0,-35,0)
	stop
	}
}

actor RainSpawner : RainSpawnerOhMyGod
{
states
{
  Spawn:
	TNT1 A 0
	TNT1 AAAAAA 0 A_SpawnItemEx("RainDrop",random(-800,1600),random(-800,800),1000,0,0,-35,0)
	stop
	}
}

actor RainSpawnerLow : RainSpawnerOhMyGod
{
states
{
  Spawn:
	TNT1 A 0
	TNT1 AAAA 0 A_SpawnItemEx("RainDrop",random(-800,1600),random(-800,800),1000,0,0,-35,0)
	stop
	}
}

actor RainSpawnerLowest : RainSpawnerOhMyGod
{
states
{
  Spawn:
	TNT1 A 0
	TNT1 AA 0 A_SpawnItemEx("RainDrop",random(-800,1600),random(-800,800),1000,0,0,-35,0) //random(-400,1000),random(-400,400) -20
	stop
	}
}

/////////////Snow
actor SnowSpawnerOhMyGod : RainSpawnerOhMyGod
{
states
{
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("Snowflake",random(-1200,2400),random(-1200,1200),600,0,0,-4,0)
	stop
	}
}

actor SnowSpawnerWtf : RainSpawnerOhMyGod
{
states
{
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("Snowflake",random(-1200,2400),random(-1200,1200),600,0,0,-6,0)
	stop
	}
}

actor SnowSpawnerSilly : RainSpawnerOhMyGod
{
states
{
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("Snowflake",random(-1200,2400),random(-1200,1200),600,0,0,-6,0)
	stop
	}
}


actor SnowSpawnerHighest : RainSpawnerOhMyGod
{
states
{
  Spawn:
	TNT1 A 0
	TNT1 AAAA 0 A_SpawnItemEx("Snowflake",random(-1200,2400),random(-1200,1200),600,0,0,-6,0)
	stop
	}
}

actor SnowSpawnerHigh : RainSpawnerOhMyGod
{
states
{
  Spawn:
	TNT1 A 0
	TNT1 AAA 0 A_SpawnItemEx("Snowflake",random(-1200,2400),random(-1200,1200),600,0,0,-6,0)
	stop
	}
}

actor SnowSpawner : RainSpawnerOhMyGod
{
states
{
  Spawn:
	TNT1 A 0
	TNT1 AA 0 A_SpawnItemEx("Snowflake",random(-1200,2400),random(-1200,1200),600,0,0,-6,0)
	stop
	}
}

actor SnowSpawnerLow : RainSpawnerOhMyGod
{
states
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("Snowflake",random(-1200,2400),random(-1200,1200),600,0,0,-6,0)
	stop
	}
}

actor SnowSpawnerLowest : RainSpawnerOhMyGod
{
states
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("Snowflake",random(-1200,2400),random(-1200,1200),600,0,0,-6,0)
	stop
	}
}