public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Icicle", "icicle");

            Game.Items.Rename("outdated_gun_mods:icicle", "nn:icicle");
            gun.gameObject.AddComponent <Icicle>();
            gun.SetShortDescription("Begins Anew");
            gun.SetLongDescription("Becomes more powerful the cooler it's owner is." + "\n\nSnapped off of the ceiling of the Hollow's deepest catacomb, and somehow hasn't thawed ever since.");

            gun.SetupSprite(null, "icicle_idle_001", 8);
            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(199) as Gun).gunSwitchGroup;

            gun.SetAnimationFPS(gun.shootAnimation, 14);
            gun.muzzleFlashEffects = (PickupObjectDatabase.GetById(97) as Gun).muzzleFlashEffects;
            gun.AddPassiveStatModifier(PlayerStats.StatType.Coolness, 1, StatModifier.ModifyMethod.ADDITIVE);

            gun.AddProjectileModuleFrom(PickupObjectDatabase.GetById(56) as Gun, true, false);

            //GUN STATS
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.SemiAutomatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 1f;
            gun.DefaultModule.cooldownTime           = 0.5f;
            gun.DefaultModule.numberOfShotsInClip    = 10;
            gun.barrelOffset.transform.localPosition = new Vector3(1.62f, 0.56f, 0f);
            gun.SetBaseMaxAmmo(220);
            gun.ammo     = 220;
            gun.gunClass = GunClass.ICE;
            //BULLET STATS
            Projectile projectile = UnityEngine.Object.Instantiate <Projectile>(gun.DefaultModule.projectiles[0]);

            projectile.gameObject.SetActive(false);
            FakePrefab.MarkAsFakePrefab(projectile.gameObject);
            UnityEngine.Object.DontDestroyOnLoad(projectile);
            projectile.baseData.damage *= 1.6f;
            projectile.baseData.speed  *= 1f;
            projectile.damageTypes     |= CoreDamageTypes.Ice;

            ScaleProjectileStatOffPlayerStat coolnessScaling = projectile.gameObject.AddComponent <ScaleProjectileStatOffPlayerStat>();

            coolnessScaling.multiplierPerLevelOfStat = 0.2f;
            coolnessScaling.projstat   = ScaleProjectileStatOffPlayerStat.ProjectileStatType.DAMAGE;
            coolnessScaling.playerstat = PlayerStats.StatType.Coolness;

            SimpleFreezingBulletBehaviour freezing = projectile.gameObject.AddComponent <SimpleFreezingBulletBehaviour>();

            freezing.freezeAmount          = 40;
            freezing.useSpecialTint        = false;
            freezing.freezeAmountForBosses = 40;

            GoopModifier watering = projectile.gameObject.AddComponent <GoopModifier>();

            watering.CollisionSpawnRadius = 0.8f;
            watering.SpawnGoopOnCollision = true;
            watering.SpawnGoopInFlight    = false;
            watering.goopDefinition       = EasyGoopDefinitions.WaterGoop;

            projectile.SetProjectileSpriteRight("icicle_projectile", 13, 5, false, tk2dBaseSprite.Anchor.MiddleCenter, 13, 5);
            gun.DefaultModule.projectiles[0] = projectile;

            gun.quality = PickupObject.ItemQuality.B;
            ETGMod.Databases.Items.Add(gun, null, "ANY");
            IcicleID = gun.PickupObjectId;
        }
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Blizzkrieg", "blizzkrieg");

            Game.Items.Rename("outdated_gun_mods:blizzkrieg", "nn:blizzkrieg");
            var behav = gun.gameObject.AddComponent <Blizzkrieg>();

            gun.SetShortDescription("Kalt Action");
            gun.SetLongDescription("Fires chunks of hypercold H2O." + "\n\nSecret Blobulonian technology, developed during their ill-fated winter campaign.");

            gun.SetupSprite(null, "blizzkrieg_idle_001", 8);
            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(38) as Gun).gunSwitchGroup;


            gun.SetAnimationFPS(gun.shootAnimation, 12);

            for (int i = 0; i < 2; i++)
            {
                gun.AddProjectileModuleFrom(PickupObjectDatabase.GetById(402) as Gun, true, false);
            }

            foreach (ProjectileModule mod in gun.Volley.projectiles)
            {
                Projectile projectile = UnityEngine.Object.Instantiate <Projectile>(mod.projectiles[0]);
                projectile.gameObject.SetActive(false);
                FakePrefab.MarkAsFakePrefab(projectile.gameObject);
                UnityEngine.Object.DontDestroyOnLoad(projectile);
                mod.projectiles[0] = (projectile);

                Projectile projectile2 = UnityEngine.Object.Instantiate <Projectile>((PickupObjectDatabase.GetById(56) as Gun).DefaultModule.projectiles[0]);
                projectile2.gameObject.SetActive(false);
                FakePrefab.MarkAsFakePrefab(projectile2.gameObject);
                UnityEngine.Object.DontDestroyOnLoad(projectile2);
                projectile2.baseData.damage *= 1.6f;
                projectile2.baseData.speed  *= 1f;
                projectile2.damageTypes     |= CoreDamageTypes.Ice;

                ScaleProjectileStatOffPlayerStat coolnessScaling = projectile2.gameObject.AddComponent <ScaleProjectileStatOffPlayerStat>();
                coolnessScaling.multiplierPerLevelOfStat = 0.2f;
                coolnessScaling.projstat   = ScaleProjectileStatOffPlayerStat.ProjectileStatType.DAMAGE;
                coolnessScaling.playerstat = PlayerStats.StatType.Coolness;

                SimpleFreezingBulletBehaviour freezing = projectile2.gameObject.AddComponent <SimpleFreezingBulletBehaviour>();
                freezing.freezeAmount          = 40;
                freezing.useSpecialTint        = false;
                freezing.freezeAmountForBosses = 40;

                GoopModifier watering = projectile2.gameObject.AddComponent <GoopModifier>();
                watering.CollisionSpawnRadius = 0.8f;
                watering.SpawnGoopOnCollision = true;
                watering.SpawnGoopInFlight    = false;
                watering.goopDefinition       = EasyGoopDefinitions.WaterGoop;
                projectile2.SetProjectileSpriteRight("icicle_projectile", 13, 5, false, tk2dBaseSprite.Anchor.MiddleCenter, 13, 5);
                mod.projectiles.Add(projectile2);


                mod.ammoCost            = 1;
                mod.sequenceStyle       = ProjectileModule.ProjectileSequenceStyle.Random;
                mod.shootStyle          = ProjectileModule.ShootStyle.Automatic;
                mod.cooldownTime        = 0.1f;
                mod.angleVariance       = 34f;
                mod.numberOfShotsInClip = 30;
                if (mod != gun.DefaultModule)
                {
                    mod.ammoCost = 0;
                }
            }
            gun.reloadTime = 1.5f;
            gun.barrelOffset.transform.localPosition = new Vector3(2.56f, 0.81f, 0f);
            gun.SetBaseMaxAmmo(400);
            gun.gunClass = GunClass.ICE;
            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Blizzkrieg Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/blizzkreig_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/blizzkreig_clipempty");


            gun.quality = PickupObject.ItemQuality.S;
            ETGMod.Databases.Items.Add(gun, null, "ANY");

            BlizzkriegID = gun.PickupObjectId;
            gun.SetupUnlockOnCustomFlag(CustomDungeonFlags.CHALLENGE_KEEPITCOOL_BEATEN, true);
        }