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); }