public override bool Shoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
        {
            /*int projcount=player.ownedProjectileCounts[mod.ProjectileType("SnowfallCloud")]+player.ownedProjectileCounts[mod.ProjectileType("SnowCloud")];
             *
             * if (projcount>1){
             * for (int i = 0; i < Main.maxProjectiles; i++)
             * {
             *      Projectile him=Main.projectile[i];
             *      if (him.type==mod.ProjectileType("SnowfallCloud") || him.type==mod.ProjectileType("SnowCloud")){
             *      if (him.active && him.owner==projectile.owner){
             *      him.Kill();
             *      break;
             * }}}}*/

            SGAPlayer.LimitProjectiles(player, 1, new ushort[] { (ushort)mod.ProjectileType("SnowfallCloud"), (ushort)mod.ProjectileType("SnowCloud") });

            int         theproj = Projectile.NewProjectile(position.X, position.Y, speedX, speedY, mod.ProjectileType("SnowfallCloud"), damage, knockBack, player.whoAmI);
            float       num12   = (float)Main.mouseX + Main.screenPosition.X;
            float       num13   = (float)Main.mouseY + Main.screenPosition.Y;
            HalfVector2 half    = new HalfVector2(num12, num13);

            Main.projectile[theproj].ai[0]     = ReLogic.Utilities.ReinterpretCast.UIntAsFloat(half.PackedValue);
            Main.projectile[theproj].netUpdate = true;
            return(false);
        }
        public override bool Shoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
        {
            SGAPlayer.LimitProjectiles(player, 1, new ushort[] { (ushort)mod.ProjectileType("CursedHailProj"), (ushort)mod.ProjectileType("CursedHailCloud") });

            int         theproj = Projectile.NewProjectile(position.X, position.Y, speedX, speedY, mod.ProjectileType("CursedHailProj"), damage, knockBack, player.whoAmI);
            float       num12   = (float)Main.mouseX + Main.screenPosition.X;
            float       num13   = (float)Main.mouseY + Main.screenPosition.Y;
            HalfVector2 half    = new HalfVector2(num12, num13);

            Main.projectile[theproj].ai[0]     = ReLogic.Utilities.ReinterpretCast.UIntAsFloat(half.PackedValue);
            Main.projectile[theproj].netUpdate = true;
            return(false);
        }
 public void Limit(Player player)
 {
     SGAPlayer.LimitProjectiles(player, 1, new int[] { ModContent.ProjectileType <SnowfallCloud>(), ModContent.ProjectileType <SnowCloud>(), ModContent.ProjectileType <CursedHailCloud>(), ModContent.ProjectileType <CursedHailProj>(), ModContent.ProjectileType <YellowWinterCloud>(), ModContent.ProjectileType <YellowWinterProj>() });
 }