public static void Add() { Gun gun = ETGMod.Databases.Items.NewGun("Royal Shotgun", "monarchshotgun"); Gungeon.Game.Items.Rename("outdated_gun_mods:royal_shotgun", "psm:royal_shotgun"); gun.gameObject.AddComponent <RoyalShotgun>(); gun.SetShortDescription("Reach the Throne"); gun.SetLongDescription("Made from the bricks of a nuclear palace."); gun.SetupSprite(null, "monarchshotgun_idle_001", 1); gun.SetAnimationFPS(gun.shootAnimation, 12); Gun gun3 = PickupObjectDatabase.GetById(38) as Gun; Gun gun4 = PickupObjectDatabase.GetById(337) as Gun; gun.AddProjectileModuleFrom("klobb", true, false); gun.SetBaseMaxAmmo(20); gun.DefaultModule.customAmmoType = gun4.DefaultModule.customAmmoType; gun.DefaultModule.ammoType = gun4.DefaultModule.ammoType; gun.DefaultModule.ammoCost = 1; gun.DefaultModule.shootStyle = ProjectileModule.ShootStyle.SemiAutomatic; gun.reloadTime = 1.5f; gun.DefaultModule.cooldownTime = 0.09f; gun.DefaultModule.numberOfShotsInClip = 1; gun.DefaultModule.angleVariance = 10f; gun.quality = PickupObject.ItemQuality.S; gun.gunClass = GunClass.SHOTGUN; gun.CanBeDropped = true; gun.muzzleFlashEffects = gun4.muzzleFlashEffects; ETGMod.Databases.Items.Add(gun); Projectile projectile = UnityEngine.Object.Instantiate <Projectile>(gun3.DefaultModule.projectiles[0]); projectile.gameObject.SetActive(false); FakePrefab.MarkAsFakePrefab(projectile.gameObject); UnityEngine.Object.DontDestroyOnLoad(projectile); projectile.baseData.damage = 30f; projectile.baseData.range = 50f; projectile.baseData.speed = 7f; projectile.SetProjectileSpriteRight("thronebulletbig_001", 32, 32); gun.PlaceItemInAmmonomiconAfterItemById(480); gun.SetupUnlockOnCustomFlag(CustomDungeonFlags.ROYALSHOTGUN_GOOPTON_FLAG, true); Prismatism.Unlocks.Add(gun.PickupObjectId, "Buy it"); gun.AddItemToGooptonMetaShop(80); gun.DefaultModule.projectiles[0] = projectile; gun.PreventNormalFireAudio = true; Projectile projectile2 = ((Gun)ETGMod.Databases.Items[38]).DefaultModule.projectiles[0]; Projectile proj1 = UnityEngine.Object.Instantiate <Projectile>(projectile2); { proj1.baseData.damage = 10; proj1.SetProjectileSpriteRight("thronebulletmedium_001", 16, 16); proj1.gameObject.SetActive(false); proj1.baseData.speed = 6; UnityEngine.Object.DontDestroyOnLoad(proj1); FakePrefab.MarkAsFakePrefab(proj1.gameObject); } mediumBullet = proj1; }
public static void Add() { Gun gun = ETGMod.Databases.Items.NewGun("Vacuum Gun", "vacuumgun"); Game.Items.Rename("outdated_gun_mods:vacuum_gun", "nn:vacuum_gun"); gun.gameObject.AddComponent <VacuumGun>(); gun.SetShortDescription("Ranged Weapon"); gun.SetLongDescription("Pressing reload sucks up nearby blobs, and uses them as ammo. Cannot gain ammo by any other method." + "\n\nDesigned specifically to combat Blobulonian creatures, in the case of a potential re-emergence of the empire." + "\n\nZZZZZZZ"); gun.SetupSprite(null, "vacuumgun_idle_001", 8); gun.SetAnimationFPS(gun.shootAnimation, 12); gun.AddProjectileModuleFrom(PickupObjectDatabase.GetById(86) as Gun, true, false); gun.gunSwitchGroup = (PickupObjectDatabase.GetById(150) as Gun).gunSwitchGroup; //GUN STATS gun.DefaultModule.ammoCost = 1; gun.DefaultModule.shootStyle = ProjectileModule.ShootStyle.Automatic; gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random; gun.reloadTime = 1f; gun.ammo = 0; gun.CanGainAmmo = false; gun.DefaultModule.cooldownTime = 0.3f; gun.DefaultModule.numberOfShotsInClip = 10000; gun.barrelOffset.transform.localPosition = new Vector3(1.75f, 0.81f, 0f); gun.SetBaseMaxAmmo(10000); gun.gunClass = GunClass.SILLY; //BULLET STATS Projectile projectile = UnityEngine.Object.Instantiate <Projectile>(gun.DefaultModule.projectiles[0]); projectile.gameObject.SetActive(false); FakePrefab.MarkAsFakePrefab(projectile.gameObject); UnityEngine.Object.DontDestroyOnLoad(projectile); gun.DefaultModule.projectiles[0] = projectile; projectile.baseData.damage = 30f; projectile.baseData.speed *= 1f; projectile.baseData.range *= 1f; projectile.SetProjectileSpriteRight("vacuumgun_projectile", 16, 14, false, tk2dBaseSprite.Anchor.MiddleCenter, 15, 13); GoopModifier gooper = projectile.gameObject.AddComponent <GoopModifier>(); gooper.SpawnGoopInFlight = false; gooper.SpawnGoopOnCollision = true; gooper.CollisionSpawnRadius = 2; gooper.goopDefinition = EasyGoopDefinitions.BlobulonGoopDef; CustomImpactSoundBehav sound = projectile.gameObject.AddComponent <CustomImpactSoundBehav>(); sound.ImpactSFX = "Play_BlobulonDeath"; projectile.transform.parent = gun.barrelOffset; gun.DefaultModule.ammoType = GameUIAmmoType.AmmoType.CUSTOM; gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Vacuum Gun Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/vacuumgun_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/vacuumgun_clipempty"); gun.quality = PickupObject.ItemQuality.C; ETGMod.Databases.Items.Add(gun, null, "ANY"); gun.SetupUnlockOnCustomFlag(CustomDungeonFlags.PURCHASED_VACUUMGUN, true); gun.AddItemToGooptonMetaShop(16); gun.AddToSubShop(ItemBuilder.ShopType.Goopton); }
public static void Add() { Gun gun = ETGMod.Databases.Items.NewGun("Spore Launcher", "sporelauncher"); Game.Items.Rename("outdated_gun_mods:spore_launcher", "nn:spore_launcher"); gun.gameObject.AddComponent <SporeLauncher>(); gun.SetShortDescription("Ain't He Cute?"); gun.SetLongDescription("An infant alien from another dimension. Capable of storing potent spores in it's digestive tract in order to regurgitate them for self defense." + "\n\nEnjoys headpats, belly rubs, and those little fish-shaped cracker things."); gun.SetupSprite(null, "sporelauncher_idle_001", 8); gun.gunSwitchGroup = (PickupObjectDatabase.GetById(599) as Gun).gunSwitchGroup; gun.SetAnimationFPS(gun.shootAnimation, 14); gun.SetAnimationFPS(gun.idleAnimation, 5); gun.SetAnimationFPS(gun.reloadAnimation, 10); gun.AddProjectileModuleFrom(PickupObjectDatabase.GetById(86) as Gun, true, false); //GUN STATS gun.DefaultModule.ammoCost = 1; gun.DefaultModule.shootStyle = ProjectileModule.ShootStyle.SemiAutomatic; gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random; gun.reloadTime = 2.5f; gun.DefaultModule.cooldownTime = 0.6f; gun.DefaultModule.numberOfShotsInClip = 10; gun.barrelOffset.transform.localPosition = new Vector3(2.31f, 0.75f, 0f); gun.SetBaseMaxAmmo(200); gun.gunClass = GunClass.RIFLE; //BULLET STATS Projectile projectile = UnityEngine.Object.Instantiate <Projectile>(gun.DefaultModule.projectiles[0]); projectile.gameObject.SetActive(false); FakePrefab.MarkAsFakePrefab(projectile.gameObject); UnityEngine.Object.DontDestroyOnLoad(projectile); gun.DefaultModule.projectiles[0] = projectile; projectile.transform.parent = gun.barrelOffset; projectile.baseData.speed *= 1f; projectile.baseData.damage *= 4f; projectile.baseData.range *= 10f; BounceProjModifier Bouncing = projectile.gameObject.GetOrAddComponent <BounceProjModifier>(); Bouncing.numberOfBounces = 1; HomingModifier homing = projectile.gameObject.AddComponent <HomingModifier>(); homing.AngularVelocity = 70f; homing.HomingRadius = 100f; projectile.SetProjectileSpriteRight("sporelauncher_projectile", 10, 10, false, tk2dBaseSprite.Anchor.MiddleCenter, 9, 9); gun.DefaultModule.ammoType = GameUIAmmoType.AmmoType.CUSTOM; gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("SporeLauncher Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/sporelauncher_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/sporelauncher_clipempty"); gun.quality = PickupObject.ItemQuality.B; gun.encounterTrackable.EncounterGuid = "this is the Spore Launcher"; ETGMod.Databases.Items.Add(gun, null, "ANY"); SporeLauncherID = gun.PickupObjectId; gun.SetupUnlockOnCustomFlag(CustomDungeonFlags.PURCHASED_SPORELAUNCHER, true); gun.AddItemToGooptonMetaShop(20); }
public static void Add() { Gun gun = ETGMod.Databases.Items.NewGun("Viscerifle", "viscerifle"); Game.Items.Rename("outdated_gun_mods:viscerifle", "nn:viscerifle"); gun.gameObject.AddComponent <Viscerifle>(); gun.SetShortDescription("Bloody Stream"); gun.SetLongDescription("Fires hearts and armour as ammunition." + "\n\nThis, by definition, is not a rifle. The name is purely marketing." + "\n\nFires nothing if fired while invincible."); gun.SetupSprite(null, "viscerifle_idle_001", 8); gun.SetAnimationFPS(gun.shootAnimation, 12); gun.AddProjectileModuleFrom(PickupObjectDatabase.GetById(56) as Gun, true, false); //GUN STATS gun.DefaultModule.ammoCost = 0; gun.DefaultModule.shootStyle = ProjectileModule.ShootStyle.SemiAutomatic; gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random; gun.reloadTime = 0.8f; gun.DefaultModule.angleVariance = 0f; gun.DefaultModule.cooldownTime = 0.5f; gun.DefaultModule.numberOfShotsInClip = 10; gun.CanGainAmmo = false; gun.barrelOffset.transform.localPosition = new Vector3(1.5f, 0.81f, 0f); gun.SetBaseMaxAmmo(0); gun.gunClass = GunClass.SHITTY; //HEART BULLET STATS Projectile projectile = UnityEngine.Object.Instantiate <Projectile>(gun.DefaultModule.projectiles[0]); projectile.gameObject.SetActive(false); FakePrefab.MarkAsFakePrefab(projectile.gameObject); UnityEngine.Object.DontDestroyOnLoad(projectile); gun.DefaultModule.projectiles[0] = projectile; projectile.baseData.damage *= 20f; projectile.pierceMinorBreakables = true; projectile.baseData.speed *= 1f; projectile.ignoreDamageCaps = true; projectile.baseData.range *= 10f; projectile.SetProjectileSpriteRight("viscerifle_heart_projectile", 16, 7, false, tk2dBaseSprite.Anchor.MiddleCenter, 16, 7); GoopModifier blood = projectile.gameObject.AddComponent <GoopModifier>(); blood.goopDefinition = EasyGoopDefinitions.BlobulonGoopDef; blood.SpawnGoopInFlight = true; blood.InFlightSpawnFrequency = 0.05f; blood.InFlightSpawnRadius = 1f; blood.SpawnGoopOnCollision = true; blood.CollisionSpawnRadius = 2f; //SHADE BULLETS shadeProjectile = ProjectileSetupUtility.MakeProjectile(56, 20, 35, 23); shadeProjectile.SetProjectileSpriteRight("shadeviscerifle_proj", 16, 7, false, tk2dBaseSprite.Anchor.MiddleCenter, 16, 7); //ARMOUR armourProjectile = UnityEngine.Object.Instantiate <Projectile>((PickupObjectDatabase.GetById(56) as Gun).DefaultModule.projectiles[0]); armourProjectile.gameObject.SetActive(false); FakePrefab.MarkAsFakePrefab(armourProjectile.gameObject); UnityEngine.Object.DontDestroyOnLoad(armourProjectile); armourProjectile.baseData.damage *= 24f; armourProjectile.ignoreDamageCaps = true; armourProjectile.baseData.speed *= 1f; armourProjectile.baseData.range *= 10; armourProjectile.pierceMinorBreakables = true; armourProjectile.SetProjectileSpriteRight("viscerifle_armour_projectile", 12, 8, false, tk2dBaseSprite.Anchor.MiddleCenter, 12, 8); armourProjectile.transform.parent = gun.barrelOffset; BlankOnHitModifier blankingArmour = armourProjectile.gameObject.GetOrAddComponent <BlankOnHitModifier>(); blankingArmour.useTinyBlank = false; //CREST crestProjectile = UnityEngine.Object.Instantiate <Projectile>((PickupObjectDatabase.GetById(56) as Gun).DefaultModule.projectiles[0]); crestProjectile.gameObject.SetActive(false); FakePrefab.MarkAsFakePrefab(crestProjectile.gameObject); UnityEngine.Object.DontDestroyOnLoad(crestProjectile); crestProjectile.ignoreDamageCaps = true; crestProjectile.baseData.damage *= 1000f; crestProjectile.baseData.speed *= 1f; crestProjectile.baseData.range *= 10; crestProjectile.pierceMinorBreakables = true; crestProjectile.SetProjectileSpriteRight("viscerifle_crest_projectile", 12, 9, false, tk2dBaseSprite.Anchor.MiddleCenter, 12, 9); crestProjectile.transform.parent = gun.barrelOffset; BlankOnHitModifier blankingCrest = crestProjectile.gameObject.GetOrAddComponent <BlankOnHitModifier>(); blankingCrest.useTinyBlank = false; BounceProjModifier Bouncing = crestProjectile.gameObject.GetOrAddComponent <BounceProjModifier>(); Bouncing.numberOfBounces = 1; //FUCKYOUPROJECTILE fuckyouprojectile = UnityEngine.Object.Instantiate <Projectile>((PickupObjectDatabase.GetById(56) as Gun).DefaultModule.projectiles[0]); fuckyouprojectile.gameObject.SetActive(false); FakePrefab.MarkAsFakePrefab(fuckyouprojectile.gameObject); UnityEngine.Object.DontDestroyOnLoad(fuckyouprojectile); fuckyouprojectile.baseData.damage *= 0f; fuckyouprojectile.baseData.speed *= 0f; fuckyouprojectile.baseData.range *= 0; DieFuckYou fuckingdie = fuckyouprojectile.gameObject.GetOrAddComponent <DieFuckYou>(); fuckyouprojectile.sprite.renderer.enabled = false; fuckyouprojectile.transform.parent = gun.barrelOffset; projectile.transform.parent = gun.barrelOffset; gun.quality = PickupObject.ItemQuality.C; gun.encounterTrackable.EncounterGuid = "this is the Viscerifle"; ETGMod.Databases.Items.Add(gun, null, "ANY"); gun.SetupUnlockOnCustomFlag(CustomDungeonFlags.PURCHASED_VISCERIFLE, true); gun.AddItemToGooptonMetaShop(23); }