public static void Add() { Gun gun = global::ETGMod.Databases.Items.NewGun("Bloody Cannon", "bloodycannon"); Gungeon.Game.Items.Rename("outdated_gun_mods:bloody_cannon", "psm:bloody_cannon"); gun.gameObject.AddComponent <BloodyCannon>(); gun.SetShortDescription("Heart Breaking"); gun.SetLongDescription("Uses blood to obliterate your enemies.\n\nPreviously a hammer, now a gun."); gun.SetupSprite(null, "beegun_idle_001", 1); Gun gun3 = PickupObjectDatabase.GetById(480) as Gun; Gun gun4 = PickupObjectDatabase.GetById(393) as Gun; for (int i = 0; i < 4; i++) { gun.AddProjectileModuleFrom("klobb", true, false); } foreach (ProjectileModule projectileModule in gun.Volley.projectiles) { ChargeProjectile projectile = new ChargeProjectile(); projectile.Projectile = UnityEngine.Object.Instantiate <Projectile>(gun3.DefaultModule.chargeProjectiles[0].Projectile); projectile.Projectile.gameObject.SetActive(false); FakePrefab.MarkAsFakePrefab(projectile.Projectile.gameObject); DontDestroyOnLoad(projectile.Projectile); projectile.Projectile.transform.parent = gun.barrelOffset; projectile.Projectile.AdditionalScaleMultiplier *= 1.1f; projectile.ChargeTime = 2.5f; projectile.Projectile.gameObject.AddComponent(new BounceProjModifier()); projectile.Projectile.DefaultTintColor = Color.red; projectile.Projectile.HasDefaultTint = true; projectileModule.chargeProjectiles = new List <ProjectileModule.ChargeProjectile> { projectile }; projectileModule.cooldownTime = 2f; projectileModule.numberOfShotsInClip = 1; projectileModule.angleVariance = 10f; projectileModule.customAmmoType = gun3.DefaultModule.customAmmoType; projectileModule.ammoType = gun3.DefaultModule.ammoType; projectileModule.ammoCost = 1; projectileModule.shootStyle = ProjectileModule.ShootStyle.Charged; } gun.DefaultModule.chargeProjectiles.Remove(gun4.DefaultModule.chargeProjectiles[0]); gun.InfiniteAmmo = true; gun.damageModifier = 1; gun.reloadTime = 2.1f; gun.barrelOffset.transform.localPosition += new Vector3(0.2f, -0.1f, 0f); gun.quality = PickupObject.ItemQuality.S; gun.encounterTrackable.EncounterGuid = "bloodycannon"; gun.gunClass = GunClass.SHOTGUN; gun.CanBeDropped = true; gun.muzzleFlashEffects = gun3.muzzleFlashEffects; global::ETGMod.Databases.Items.Add(gun, null, "ANY"); }
void AttackReleased() { if (isCharging) { List <Transform> projectiles = Shoot(); foreach (Transform projectile in projectiles) { ChargeProjectile chargeProjectile = projectile.GetComponent <ChargeProjectile> (); if (chargeProjectile != null) { chargeProjectile.charge = charge; } } isCharging = false; } }