Пример #1
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Riot Gun", "riotgun");

            Game.Items.Rename("outdated_gun_mods:riot_gun", "nn:riot_gun");
            gun.gameObject.AddComponent <RiotGun>();
            gun.SetShortDescription("Definitely Humane");
            gun.SetLongDescription("Fires elastic rubber bullets." + "\n\nWhile rubber bullets are generally considered non-lethal, a more accurate term would be 'less-lethal'." + "\nThese bullets can still cause damage.");

            gun.SetupSprite(null, "riotgun_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 12);
            gun.SetAnimationFPS(gun.reloadAnimation, 1);
            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(150) as Gun).gunSwitchGroup;

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

            //GUN STATS
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Automatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 1f;
            gun.DefaultModule.cooldownTime           = 0.5f;
            gun.DefaultModule.numberOfShotsInClip    = 5;
            gun.barrelOffset.transform.localPosition = new Vector3(2.06f, 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.baseData.damage       = 7f;
            projectile.baseData.force       *= 5f;
            projectile.baseData.speed       *= 1f;
            projectile.baseData.range       *= 1f;
            BounceProjModifier Bouncing = projectile.gameObject.GetOrAddComponent <BounceProjModifier>();

            Bouncing.numberOfBounces       = 1;
            projectile.AppliesStun         = true;
            projectile.StunApplyChance     = 0.2f;
            projectile.AppliedStunDuration = 2f;
            projectile.SetProjectileSpriteRight("riotgun_projectile", 12, 12, true, tk2dBaseSprite.Anchor.MiddleCenter, 10, 10);


            projectile.pierceMinorBreakables = true;
            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("RiotGun Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/riotgun_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/riotgun_clipempty");

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

            gun.AddToSubShop(ItemBuilder.ShopType.Trorc);

            RiotGunID = gun.PickupObjectId;
            gun.SetupUnlockOnCustomFlag(CustomDungeonFlags.PURCHASED_RIOTGUN, true);
            gun.AddItemToTrorcMetaShop(10);
        }
Пример #2
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Octagun", "octagun");

            Game.Items.Rename("outdated_gun_mods:octagun", "nn:octagun");
            gun.gameObject.AddComponent <Octagun>();
            gun.SetShortDescription("Welcome To The 2nd Dimension");
            gun.SetLongDescription("A simple shape, with a name that kinda sounds like it has 'gun' in it." + "\n\nOften confused by preschoolers for it's much more fashionable cousin, the Pentagon.");

            gun.SetupSprite(null, "octagun_idle_001", 8);
            //ItemBuilder.AddPassiveStatModifier(gun, PlayerStats.StatType.GlobalPriceMultiplier, 0.925f, StatModifier.ModifyMethod.MULTIPLICATIVE);

            gun.SetAnimationFPS(gun.shootAnimation, 8);
            gun.SetAnimationFPS(gun.idleAnimation, 5);

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

            //GUN STATS
            foreach (ProjectileModule mod in gun.Volley.projectiles)
            {
                mod.ammoCost            = 8;
                mod.shootStyle          = ProjectileModule.ShootStyle.SemiAutomatic;
                mod.sequenceStyle       = ProjectileModule.ProjectileSequenceStyle.Random;
                mod.cooldownTime        = 0.8f;
                mod.angleVariance       = 35f;
                mod.numberOfShotsInClip = 8;
                Projectile projectile = UnityEngine.Object.Instantiate <Projectile>(mod.projectiles[0]);
                mod.projectiles[0] = projectile;
                projectile.gameObject.SetActive(false);
                FakePrefab.MarkAsFakePrefab(projectile.gameObject);
                UnityEngine.Object.DontDestroyOnLoad(projectile);
                projectile.baseData.damage *= 1.6f;
                projectile.baseData.speed  *= 0.1f;
                projectile.SetProjectileSpriteRight("octagun_projectile", 10, 10, true, tk2dBaseSprite.Anchor.MiddleCenter, 8, 8);
                if (mod != gun.DefaultModule)
                {
                    mod.ammoCost = 0;
                }
                projectile.transform.parent = gun.barrelOffset;
            }

            gun.reloadTime = 1.5f;
            gun.barrelOffset.transform.localPosition = new Vector3(1.0f, 0.43f, 0f);
            gun.SetBaseMaxAmmo(888);
            gun.gunClass = GunClass.SHOTGUN;
            //BULLET STATS
            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Octagun Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/octagun_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/octagun_clipempty");

            // Here we just set the quality of the gun and the "EncounterGuid", which is used by Gungeon to identify the gun.
            gun.quality = PickupObject.ItemQuality.C;
            gun.encounterTrackable.EncounterGuid = "this is the Octagun";
            ETGMod.Databases.Items.Add(gun, null, "ANY");

            OctagunID = gun.PickupObjectId;
        }
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("March Gun", "marchgun");

            Game.Items.Rename("outdated_gun_mods:march_gun", "nn:march_gun");
            gun.gameObject.AddComponent <MarchGun>();
            gun.SetShortDescription("Direct To The Point");
            gun.SetLongDescription("Deals bonus damage when fired in the same direction the user is moving." + "\n\nBrought to the Gungeon by notorious tapdancer Tom Toe Tucker.");

            gun.SetupSprite(null, "marchgun_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 12);
            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(732) as Gun).gunSwitchGroup;

            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 = 1f;
            gun.DefaultModule.cooldownTime           = 0.1f;
            gun.DefaultModule.numberOfShotsInClip    = 9;
            gun.barrelOffset.transform.localPosition = new Vector3(1.37f, 0.63f, 0f);
            gun.SetBaseMaxAmmo(222);
            gun.gunClass           = GunClass.PISTOL;
            gun.muzzleFlashEffects = (PickupObjectDatabase.GetById(18) as Gun).muzzleFlashEffects;


            //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                   = 7.5f;
            projectile.baseData.speed                   *= 1f;
            projectile.baseData.range                   *= 1f;
            projectile.hitEffects.overrideMidairDeathVFX = EasyVFXDatabase.SmoothLightBlueLaserCircleVFX;
            projectile.hitEffects.alwaysUseMidair        = true;
            projectile.SetProjectileSpriteRight("march_none_projectile", 9, 9, false, tk2dBaseSprite.Anchor.MiddleCenter, 7, 7);

            GunTools.SetupDefinitionForProjectileSprite("march_left_projectile", ETGMod.Databases.Items.ProjectileCollection.inst.GetSpriteIdByName("march_left_projectile"), 17, 11, false, 15, 9, 0, 0, null);
            GunTools.SetupDefinitionForProjectileSprite("march_right_projectile", ETGMod.Databases.Items.ProjectileCollection.inst.GetSpriteIdByName("march_right_projectile"), 17, 11, false, 15, 9, 0, 0, null);
            GunTools.SetupDefinitionForProjectileSprite("march_up_projectile", ETGMod.Databases.Items.ProjectileCollection.inst.GetSpriteIdByName("march_up_projectile"), 11, 17, false, 9, 15, 0, 0, null);
            GunTools.SetupDefinitionForProjectileSprite("march_down_projectile", ETGMod.Databases.Items.ProjectileCollection.inst.GetSpriteIdByName("march_down_projectile"), 11, 17, false, 9, 15, 0, 0, null);

            projectile.gameObject.AddComponent <MarchGunBulletController>();
            projectile.transform.parent = gun.barrelOffset;

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("March gun Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/marchgun_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/marchgun_clipempty");

            gun.quality = PickupObject.ItemQuality.C; //C

            ETGMod.Databases.Items.Add(gun, null, "ANY");
            DemolitionistID = gun.PickupObjectId;
        }
Пример #4
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Lantaka", "lantaka");

            Game.Items.Rename("outdated_gun_mods:lantaka", "nn:lantaka");
            gun.gameObject.AddComponent <Lantaka>();
            gun.SetShortDescription("Head on a Swivel");
            gun.SetLongDescription("Used once upon a time by ships to protect against pirates, this ancient gun sat in the back room of a museum for many years until a daring heist saw it make it's way to the Gungeon.");

            gun.SetupSprite(null, "lantaka_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 15);
            gun.gunSwitchGroup     = (PickupObjectDatabase.GetById(49) as Gun).gunSwitchGroup;
            gun.muzzleFlashEffects = (PickupObjectDatabase.GetById(9) as Gun).muzzleFlashEffects;

            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 = 1f;
            gun.DefaultModule.cooldownTime           = 1f;
            gun.DefaultModule.numberOfShotsInClip    = 1;
            gun.barrelOffset.transform.localPosition = new Vector3(2.56f, 0.81f, 0f);
            gun.SetBaseMaxAmmo(150);
            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               *= 2f;
            projectile.baseData.range               *= 2f;
            projectile.baseData.damage              *= 4f;
            projectile.BossDamageMultiplier         *= 1.5f;
            projectile.BlackPhantomDamageMultiplier *= 2f;
            PierceProjModifier Piercing = projectile.gameObject.GetOrAddComponent <PierceProjModifier>();

            Piercing.penetratesBreakables = true;
            Piercing.penetration         += 10;
            BounceProjModifier Bouncing = projectile.gameObject.GetOrAddComponent <BounceProjModifier>();

            Bouncing.numberOfBounces = 2;
            projectile.SetProjectileSpriteRight("lantaka_projectile", 15, 15, false, tk2dBaseSprite.Anchor.MiddleCenter, 14, 14);

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Lantaka Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/lantaka_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/lantaka_clipempty");

            gun.quality = PickupObject.ItemQuality.C;
            gun.encounterTrackable.EncounterGuid = "this is the Lantaka";
            ETGMod.Databases.Items.Add(gun, null, "ANY");

            LantakaID = gun.PickupObjectId;
        }
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Nocturne", "nocturne");

            Game.Items.Rename("outdated_gun_mods:nocturne", "nn:nocturne");
            gun.gameObject.AddComponent <Nocturne>();
            gun.SetShortDescription("Welcome Back");
            gun.SetLongDescription("Alternates between faster purple blasts, and more damaging green blasts." + "\n\nThis gun was left in the Gungeon as one part of a great puzzle." + "\nUnfortunately, the seekers seem to have given up.");

            gun.SetupSprite(null, "nocturne_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 10);

            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(357) as Gun).gunSwitchGroup;
            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.Ordered;
            gun.muzzleFlashEffects          = (PickupObjectDatabase.GetById(334) as Gun).muzzleFlashEffects;
            gun.reloadTime = 1f;
            gun.DefaultModule.cooldownTime           = 0.1f;
            gun.DefaultModule.numberOfShotsInClip    = 6;
            gun.barrelOffset.transform.localPosition = new Vector3(1.75f, 0.87f, 0f);
            gun.SetBaseMaxAmmo(200);
            gun.ammo     = 200;
            gun.gunClass = GunClass.PISTOL;
            //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 = 9f;
            projectile.baseData.speed *= 1.5f;
            projectile.hitEffects.overrideMidairDeathVFX = EasyVFXDatabase.RedLaserCircleVFX;
            projectile.hitEffects.alwaysUseMidair        = true;
            projectile.SetProjectileSpriteRight("nocturnepurple_projectile", 10, 10, true, tk2dBaseSprite.Anchor.MiddleCenter, 8, 8);

            Projectile projectile2 = UnityEngine.Object.Instantiate <Projectile>((PickupObjectDatabase.GetById(86) as Gun).DefaultModule.projectiles[0]);

            projectile2.gameObject.SetActive(false);
            FakePrefab.MarkAsFakePrefab(projectile2.gameObject);
            UnityEngine.Object.DontDestroyOnLoad(projectile2);
            projectile2.baseData.damage = 15f;
            projectile2.baseData.speed *= 0.5f;
            projectile2.hitEffects.overrideMidairDeathVFX = EasyVFXDatabase.GreenLaserCircleVFX;
            projectile2.hitEffects.alwaysUseMidair        = true;
            projectile2.SetProjectileSpriteRight("nocturnegreen_projectile", 10, 10, true, tk2dBaseSprite.Anchor.MiddleCenter, 8, 8);

            gun.DefaultModule.projectiles[0] = projectile;
            gun.DefaultModule.projectiles.Add(projectile2);
            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Nocturne Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/nocturne_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/nocturne_clipempty");
            gun.quality = PickupObject.ItemQuality.B;
            ETGMod.Databases.Items.Add(gun, null, "ANY");
        }
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Heavy Assault Rifle", "heavyassaultrifle");

            Game.Items.Rename("outdated_gun_mods:heavy_assault_rifle", "nn:heavy_assault_rifle");
            gun.gameObject.AddComponent <HeavyAssaultRifle>();
            gun.SetShortDescription("It's so big...");
            gun.SetLongDescription("An oversized assault rifle from the FUTURE... which by now has already become the past.");

            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(81) as Gun).gunSwitchGroup;

            gun.SetupSprite(null, "heavyassaultrifle_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 15);

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

            //GUN STATS
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Automatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 2.5f;
            gun.DefaultModule.cooldownTime           = 0.11f;
            gun.DefaultModule.numberOfShotsInClip    = 40;
            gun.barrelOffset.transform.localPosition = new Vector3(4.18f, 0.87f, 0f);
            gun.SetBaseMaxAmmo(250);
            gun.gunClass = GunClass.FULLAUTO;
            //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 *= 6f;
            projectile.SetProjectileSpriteRight("heavyassaultrifle_projectile", 22, 7, false, tk2dBaseSprite.Anchor.MiddleCenter, 22, 7);

            projectile.transform.parent = gun.barrelOffset;
            PierceProjModifier orAddComponent = projectile.gameObject.GetOrAddComponent <PierceProjModifier>();

            orAddComponent.penetratesBreakables = true;
            orAddComponent.penetration          = 5;

            gun.AddCurrentGunStatModifier(PlayerStats.StatType.MovementSpeed, 0.8f, StatModifier.ModifyMethod.MULTIPLICATIVE);
            gun.AddCurrentGunStatModifier(PlayerStats.StatType.DodgeRollSpeedMultiplier, 0.8f, StatModifier.ModifyMethod.MULTIPLICATIVE);

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("HeavyAssaultRifle Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/heavyassaultrifle_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/heavyassaultrifle_clipempty");

            gun.DefaultModule.projectiles[0] = projectile;
            gun.quality = PickupObject.ItemQuality.S;
            gun.encounterTrackable.EncounterGuid = "this is the Heavy Assault Rifle";
            ETGMod.Databases.Items.Add(gun, null, "ANY");

            HeavyAssaultRifleID = gun.PickupObjectId;

            gun.AddToSubShop(ItemBuilder.ShopType.Trorc);
        }
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Uterine Polyp", "uterinepolyp");

            Game.Items.Rename("outdated_gun_mods:uterine_polyp", "nn:uterine_polyp");
            var obj = gun.gameObject.AddComponent <UterinePolyp>();

            obj.preventNormalFireAudio    = true;
            obj.preventNormalReloadAudio  = true;
            obj.overrideNormalReloadAudio = "Play_OBJ_cauldron_splash_01";
            obj.overrideNormalFireAudio   = "Play_ENM_cult_spew_01";
            gun.SetShortDescription("Endometrial");
            gun.SetLongDescription("A disgusting teratoma-esque growth cut from a demon's womb." + "\n\nGenuinely unpleasant to look at, touch, and think about.");

            gun.SetupSprite(null, "uterinepolyp_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 15);

            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 = 0.5f;
            gun.DefaultModule.cooldownTime           = 0.2f;
            gun.DefaultModule.numberOfShotsInClip    = 3;
            gun.barrelOffset.transform.localPosition = new Vector3(1.25f, 0.43f, 0f);
            gun.SetBaseMaxAmmo(200);
            gun.gunClass = GunClass.PISTOL;
            //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       *= 0.9f;
            projectile.baseData.damage       = 15;
            projectile.SetProjectileSpriteRight("uterinepolyp_projectile", 7, 7, true, tk2dBaseSprite.Anchor.MiddleCenter, 6, 6);
            GoopModifier gooper = projectile.gameObject.AddComponent <GoopModifier>();

            gooper.SpawnGoopInFlight    = false;
            gooper.SpawnGoopOnCollision = true;
            gooper.CollisionSpawnRadius = 1;
            gooper.goopDefinition       = EasyGoopDefinitions.GenerateBloodGoop(10, ExtendedColours.orange, 10);

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("UterinePolyp Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/uterinepolyp_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/uterinepolyp_clipempty");

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

            UterinePolypID = gun.PickupObjectId;
        }
Пример #8
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("St4ke", "st4ke");

            Game.Items.Rename("outdated_gun_mods:st4ke", "nn:st4ke");
            gun.gameObject.AddComponent <St4ke>();
            gun.SetShortDescription("For Robot Vampires");
            gun.SetLongDescription("Fires miniature tesla coils that stick into walls." + "\n\nFollowing the success of her remote diote transmitter experiment, the tinker set about seeing if she could make both ends of the tesla-relay mobile.");

            gun.SetupSprite(null, "st4ke_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 17);

            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(153) as Gun).gunSwitchGroup;

            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.15f;
            gun.DefaultModule.numberOfShotsInClip    = 4;
            gun.barrelOffset.transform.localPosition = new Vector3(1.68f, 0.62f, 0f);
            gun.SetBaseMaxAmmo(175);
            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(153) as Gun).gunSwitchGroup;
            gun.ammo           = 175;
            gun.gunClass       = GunClass.PISTOL;
            //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       = 8f;
            projectile.pierceMinorBreakables = true;
            projectile.SetProjectileSpriteRight("st4keproj", 13, 7, true, tk2dBaseSprite.Anchor.MiddleCenter, 9, 5);
            St4keProj          orAddComponent = projectile.gameObject.GetOrAddComponent <St4keProj>();
            PierceProjModifier piercing       = projectile.gameObject.GetOrAddComponent <PierceProjModifier>();

            piercing.penetration++;

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Stk4ke Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/st4ke_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/st4ke_clipempty");

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

            St4keID = gun.PickupObjectId;
            gun.AddToSubShop(ItemBuilder.ShopType.Trorc);

            LinkVFXPrefab = FakePrefab.Clone(Game.Items["shock_rounds"].GetComponent <ComplexProjectileModifier>().ChainLightningVFX);
            FakePrefab.MarkAsFakePrefab(LinkVFXPrefab);
            UnityEngine.Object.DontDestroyOnLoad(LinkVFXPrefab);
        }
Пример #9
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Variable", "variable");

            Game.Items.Rename("outdated_gun_mods:variable", "nn:variable");
            gun.gameObject.AddComponent <VariableGun>();
            gun.SetShortDescription("Boollet Value");
            gun.SetLongDescription("Deals double damage if the target you're shooting is different to the last enemy you shot." + "\n\nFavoured sidearm of a famous programmer, who came to the gungeon after being driven insane by the inane questions asked of him by other people.");

            gun.SetupSprite(null, "variable_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 10);

            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(35) as Gun).gunSwitchGroup;
            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.Ordered;
            gun.reloadTime = 1f;
            gun.DefaultModule.cooldownTime           = 0.1f;
            gun.DefaultModule.numberOfShotsInClip    = 6;
            gun.barrelOffset.transform.localPosition = new Vector3(1.43f, 0.81f, 0f);
            gun.SetBaseMaxAmmo(256);
            gun.ammo     = 256;
            gun.gunClass = GunClass.PISTOL;
            //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.force                   *= 1.2f;
            projectile.hitEffects.alwaysUseMidair        = true;
            projectile.hitEffects.overrideMidairDeathVFX = EasyVFXDatabase.WhiteCircleVFX;
            projectile.SetProjectileSpriteRight("variable1_projectile", 10, 10, true, tk2dBaseSprite.Anchor.MiddleCenter, 8, 8);

            Projectile projectile2 = UnityEngine.Object.Instantiate <Projectile>((PickupObjectDatabase.GetById(86) as Gun).DefaultModule.projectiles[0]);

            projectile2.gameObject.SetActive(false);
            FakePrefab.MarkAsFakePrefab(projectile2.gameObject);
            UnityEngine.Object.DontDestroyOnLoad(projectile2);
            projectile2.baseData.damage                  *= 1.6f;
            projectile2.baseData.force                   *= 1.2f;
            projectile2.hitEffects.alwaysUseMidair        = true;
            projectile2.hitEffects.overrideMidairDeathVFX = EasyVFXDatabase.WhiteCircleVFX;
            projectile2.SetProjectileSpriteRight("variable2_projectile", 10, 10, true, tk2dBaseSprite.Anchor.MiddleCenter, 8, 8);

            gun.DefaultModule.projectiles[0] = projectile;
            gun.DefaultModule.projectiles.Add(projectile2);
            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Variable Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/variable_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/variable_clipempty");
            gun.quality = PickupObject.ItemQuality.B;
            ETGMod.Databases.Items.Add(gun, null, "ANY");
        }
Пример #10
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Hand Mortar", "handmortar");

            Game.Items.Rename("outdated_gun_mods:hand_mortar", "nn:hand_mortar");
            gun.gameObject.AddComponent <HandMortar>();
            gun.SetShortDescription("Kingdom Come");
            gun.SetLongDescription("The classy and classical predecessor to the modern grenade launchers, some old grenadiers still swear by their effectiveness.");

            gun.SetupSprite(null, "handmortar_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 15);

            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 = 2f;
            gun.DefaultModule.angleVariance          = 10;
            gun.DefaultModule.cooldownTime           = 1f;
            gun.DefaultModule.numberOfShotsInClip    = 3;
            gun.barrelOffset.transform.localPosition = new Vector3(2.81f, 1.0f, 0f);
            gun.SetBaseMaxAmmo(70);
            gun.gunClass = GunClass.EXPLOSIVE;
            //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      *= 6f;

            BounceProjModifier Bouncing = projectile.gameObject.GetOrAddComponent <BounceProjModifier>();

            Bouncing.numberOfBounces = 2;
            ExplosiveModifier explosiveModifier = projectile.gameObject.AddComponent <ExplosiveModifier>();

            explosiveModifier.doExplosion   = true;
            explosiveModifier.explosionData = HandMortarExplosion;
            projectile.baseData.speed      *= 0.6f;

            projectile.baseData.range  *= 0.8f;
            projectile.transform.parent = gun.barrelOffset;
            projectile.SetProjectileSpriteRight("handmortar_projectile", 8, 8, false, tk2dBaseSprite.Anchor.MiddleCenter, 8, 8);

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("HandMortar Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/handmortar_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/handmortar_clipempty");

            gun.quality = PickupObject.ItemQuality.A;
            gun.encounterTrackable.EncounterGuid = "this is the Hand Mortar";
            ETGMod.Databases.Items.Add(gun, null, "ANY");

            ID = gun.PickupObjectId;
        }
Пример #11
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Uzi SPINE-mm", "uzispinemm");

            Game.Items.Rename("outdated_gun_mods:uzi_spine-mm", "nn:uzi_spine_mm");
            var behav = gun.gameObject.AddComponent <UziSpineMM>();

            gun.SetShortDescription("Boned");
            gun.SetLongDescription("The favoured sidearm of the dark sorcerer Nuign, and his first foray into the apocryphal field of necro-gunsmithing.");

            gun.SetupSprite(null, "uzispinemm_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 12);
            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(29) as Gun).gunSwitchGroup;

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

            //GUN STATS
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Automatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 0.8f;
            gun.DefaultModule.cooldownTime           = 0.11f;
            gun.muzzleFlashEffects                   = (PickupObjectDatabase.GetById(29) as Gun).muzzleFlashEffects;
            gun.DefaultModule.numberOfShotsInClip    = 20;
            gun.barrelOffset.transform.localPosition = new Vector3((19f / 16f), (9f / 16f), 0f);
            gun.SetBaseMaxAmmo(600);
            gun.gunClass = GunClass.FULLAUTO;

            //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                   = 3f;
            projectile.baseData.range                    = 15f;
            projectile.hitEffects.alwaysUseMidair        = true;
            projectile.hitEffects.overrideMidairDeathVFX = EasyVFXDatabase.SmoothLightBlueLaserCircleVFX;

            HomingModifier homing = projectile.gameObject.AddComponent <HomingModifier>();

            homing.AngularVelocity = 40f;
            homing.HomingRadius    = 50f;

            projectile.SetProjectileSpriteRight("uzispinemm_proj", 8, 11, false, tk2dBaseSprite.Anchor.MiddleCenter, 8, 7);

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("UziSpineMM Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/uzispinemm_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/uzispinemm_clipempty");

            gun.quality = PickupObject.ItemQuality.C;
            ETGMod.Databases.Items.Add(gun, null, "ANY");
            gun.AddToSubShop(ItemBuilder.ShopType.Cursula);

            ID = gun.PickupObjectId;
        }
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Barcode Scanner", "barcodescanner");

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

            behav.overrideNormalReloadAudio = "Play_OBJ_mine_beep_01";
            behav.overrideNormalFireAudio   = "Play_OBJ_mine_beep_01";
            behav.preventNormalFireAudio    = true;
            behav.preventNormalReloadAudio  = true;
            gun.SetShortDescription("Beep");
            gun.SetLongDescription("Often used in more technologically adept shops to scan items for purchase, but Bello has no idea how to use a computer.");

            gun.SetupSprite(null, "barcodescanner_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 5);

            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 = 0.5f;
            gun.muzzleFlashEffects.type              = VFXPoolType.None;
            gun.DefaultModule.cooldownTime           = 0.35f;
            gun.DefaultModule.numberOfShotsInClip    = 500;
            gun.barrelOffset.transform.localPosition = new Vector3(0.43f, 0.56f, 0f);
            gun.SetBaseMaxAmmo(500);
            gun.ammo     = 500;
            gun.gunClass = GunClass.SHITTY;
            //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 = 6f;
            projectile.SetProjectileSpriteRight("barcodescanner_projectile", 4, 14, false, tk2dBaseSprite.Anchor.MiddleCenter, 2, 12);
            projectile.hitEffects.alwaysUseMidair        = true;
            projectile.hitEffects.overrideMidairDeathVFX = EasyVFXDatabase.RedLaserCircleVFX;
            projectile.transform.parent = gun.barrelOffset;
            projectile.gameObject.AddComponent <BarcodeScannerProjectile>();
            gun.AddPassiveStatModifier(PlayerStats.StatType.GlobalPriceMultiplier, 0.9f, StatModifier.ModifyMethod.MULTIPLICATIVE);

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Barcode Scanner Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/barcodescanner_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/barcodescanner_clipempty");

            gun.DefaultModule.projectiles[0] = projectile;
            gun.quality = PickupObject.ItemQuality.D;
            ETGMod.Databases.Items.Add(gun, null, "ANY");

            BarcodeScannerID = gun.PickupObjectId;
        }
Пример #13
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Salt Gun", "saltgun");

            Game.Items.Rename("outdated_gun_mods:salt_gun", "nn:salt_gun");
            gun.gameObject.AddComponent <SaltGun>();
            gun.SetShortDescription("Rub It In");
            gun.SetLongDescription("A way over-the-top method of pest control, used in the Gungeon to avoid Kaliber's disdain for flyswatters.");

            gun.SetupSprite(null, "saltgun_idle_001", 8);
            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(150) as Gun).gunSwitchGroup;
            gun.SetAnimationFPS(gun.shootAnimation, 13);
            gun.SetAnimationFPS(gun.idleAnimation, 5);

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

            //GUN STATS
            foreach (ProjectileModule mod in gun.Volley.projectiles)
            {
                mod.ammoCost            = 1;
                mod.shootStyle          = ProjectileModule.ShootStyle.Automatic;
                mod.sequenceStyle       = ProjectileModule.ProjectileSequenceStyle.Random;
                mod.cooldownTime        = 0.25f;
                mod.angleVariance       = 7f;
                mod.numberOfShotsInClip = 10;
                Projectile projectile = UnityEngine.Object.Instantiate <Projectile>(mod.projectiles[0]);
                mod.projectiles[0] = projectile;
                projectile.gameObject.SetActive(false);
                FakePrefab.MarkAsFakePrefab(projectile.gameObject);
                UnityEngine.Object.DontDestroyOnLoad(projectile);
                projectile.SetProjectileSpriteRight("salt_projectile", 2, 2, false, tk2dBaseSprite.Anchor.MiddleCenter, 2, 2);
                projectile.baseData.range  = 6;
                projectile.baseData.damage = 2;
                projectile.baseData.force *= 0.3f;
                if (mod != gun.DefaultModule)
                {
                    mod.ammoCost = 0;
                }
                projectile.transform.parent = gun.barrelOffset;
            }
            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("SaltGun Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/saltgun_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/saltgun_clipempty");
            gun.reloadTime = 0.8f;
            gun.barrelOffset.transform.localPosition = new Vector3(1.43f, 0.37f, 0f);
            gun.SetBaseMaxAmmo(300);
            gun.gunClass = GunClass.SHOTGUN;
            gun.quality  = PickupObject.ItemQuality.D;
            ETGMod.Databases.Items.Add(gun, null, "ANY");

            gun.Volley.UsesShotgunStyleVelocityRandomizer = true;

            SaltGunID = gun.PickupObjectId;
        }
Пример #14
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Hand Cannon", "handcannon");

            Game.Items.Rename("outdated_gun_mods:hand_cannon", "nn:hand_cannon");
            gun.gameObject.AddComponent <HandCannon>();
            gun.SetShortDescription("Protogun");
            gun.SetLongDescription("The earliest recorded type of real firearm. Though it is little more than a small cannon on a stick, it can spit some damaging shrapnel.");

            gun.SetupSprite(null, "handcannon_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 15);

            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           = 1f;
            gun.muzzleFlashEffects.type              = VFXPoolType.None;
            gun.DefaultModule.numberOfShotsInClip    = 1;
            gun.barrelOffset.transform.localPosition = new Vector3(2.87f, 0.5f, 0f);
            gun.SetBaseMaxAmmo(190);
            gun.gunClass = GunClass.SHITTY;
            //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      *= 7f;
            PierceProjModifier Piercing = projectile.gameObject.GetOrAddComponent <PierceProjModifier>();

            Piercing.penetratesBreakables = true;
            Piercing.penetration         += 10;
            BounceProjModifier Bouncing = projectile.gameObject.GetOrAddComponent <BounceProjModifier>();

            Bouncing.numberOfBounces    = 10;
            projectile.baseData.range  *= 0.5f;
            projectile.transform.parent = gun.barrelOffset;
            projectile.SetProjectileSpriteRight("handcannon_projectile", 17, 15, false, tk2dBaseSprite.Anchor.MiddleCenter, 15, 13);

            projectile.hitEffects.overrideMidairDeathVFX = (PickupObjectDatabase.GetById(37) as Gun).DefaultModule.chargeProjectiles[0].Projectile.hitEffects.overrideMidairDeathVFX;
            projectile.hitEffects.alwaysUseMidair        = true;

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("HandCannon Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/handcannon_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/handcannon_clipempty");
            gun.muzzleFlashEffects           = (PickupObjectDatabase.GetById(53) as Gun).muzzleFlashEffects;
            gun.quality = PickupObject.ItemQuality.D;
            gun.encounterTrackable.EncounterGuid = "this is the Hand Cannon";
            ETGMod.Databases.Items.Add(gun, null, "ANY");
            HandCannonID = gun.PickupObjectId;
        }
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Decretion Carbine", "decretioncarbine");

            Game.Items.Rename("outdated_gun_mods:decretion_carbine", "nn:decretion_carbine");
            gun.gameObject.AddComponent <DecretionCarbine>();
            gun.SetShortDescription("Shrinky Shrinky");
            gun.SetLongDescription("The bullets of this rapid firing bronze marvel were originally indended to grow in size and damage as they travelled. Unfortunately, the blueprint was read upside down, and the effect was reversed.");

            gun.SetupSprite(null, "decretioncarbine_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 15);
            gun.SetAnimationFPS(gun.reloadAnimation, 0);

            gun.AddProjectileModuleFrom(PickupObjectDatabase.GetById(86) as Gun, true, false);
            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(15) as Gun).gunSwitchGroup;

            //GUN STATS
            gun.muzzleFlashEffects          = (PickupObjectDatabase.GetById(38) as Gun).muzzleFlashEffects;
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Automatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 1f;
            gun.DefaultModule.cooldownTime           = 0.1f;
            gun.DefaultModule.numberOfShotsInClip    = 10;
            gun.barrelOffset.transform.localPosition = new Vector3(28f / 16f, 15f / 16f, 0f);
            gun.SetBaseMaxAmmo(450);
            gun.gunClass = GunClass.FULLAUTO;
            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("DecretionCarbine Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/decretioncarbine_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/decretioncarbine_clipempty");

            //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.SetProjectileSpriteRight("decretioncarbine_proj", 15, 15, true, tk2dBaseSprite.Anchor.MiddleCenter, 15, 15);
            projectile.baseData.damage = 10f;
            ScaleChangeOverTimeModifier scaler = projectile.gameObject.GetOrAddComponent <ScaleChangeOverTimeModifier>();

            scaler.destroyAfterChange         = true;
            scaler.timeToChangeOver           = 0.4f;
            scaler.ScaleToChangeTo            = 0.001f;
            scaler.suppressDeathFXIfdestroyed = true;
            scaler.scaleMultAffectsDamage     = true;


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


            ID = gun.PickupObjectId;
        }
Пример #16
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Blankannon", "blankannon");

            Game.Items.Rename("outdated_gun_mods:blankannon", "nn:blankannon");
            gun.gameObject.AddComponent <Blankannon>();
            gun.SetShortDescription("Fires Blanks");
            gun.SetLongDescription("It takes a very delicate pin to fire blanks instead of simply destroying them." + "\n\nThis elaborate device was put together from the scrapped parts of a laser-accurate surgical machine.");

            gun.SetupSprite(null, "blankannon_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 12);
            gun.AddPassiveStatModifier(PlayerStats.StatType.AdditionalBlanksPerFloor, 2f, StatModifier.ModifyMethod.ADDITIVE);

            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.barrelOffset.transform.localPosition = new Vector3(1.98f, 0.75f, 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;
            BlankOnHitModifier blankingArmour = projectile.gameObject.GetOrAddComponent <BlankOnHitModifier>();

            blankingArmour.useTinyBlank = false;
            projectile.SetProjectileSpriteRight("blankannon_projectile", 10, 7, false, tk2dBaseSprite.Anchor.MiddleCenter, 10, 7);
            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Blank UI Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/blankannon_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/blankannon_clipempty");
            projectile.transform.parent      = gun.barrelOffset;

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

            BlankannonId = gun.PickupObjectId;
        }
Пример #17
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Gunger", "gunger");

            Game.Items.Rename("outdated_gun_mods:gunger", "nn:gunger");
            gun.gameObject.AddComponent <Gunger>();
            gun.SetShortDescription("Hungry Gun");
            gun.SetLongDescription("Reloading this strange creature near guns on the ground will cause them to be... consumed?" + "\n\nThese creatures are worshipped as gods in some cultures, though they know it not.");

            gun.SetupSprite(null, "gunger_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 12);
            gun.SetAnimationFPS(gun.idleAnimation, 9);
            gun.SetAnimationFPS(gun.reloadAnimation, 12);

            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(599) as Gun).gunSwitchGroup;
            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 = 1.2f;
            gun.DefaultModule.cooldownTime           = 0.5f;
            gun.muzzleFlashEffects.type              = VFXPoolType.None;
            gun.DefaultModule.numberOfShotsInClip    = 10;
            gun.barrelOffset.transform.localPosition = new Vector3(2.31f, 0.62f, 0f);
            gun.SetBaseMaxAmmo(300);
            gun.ammo     = 300;
            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      *= 2f;
            projectile.baseData.speed       *= 0.8f;
            projectile.baseData.range       *= 1f;
            projectile.baseData.force       *= 1.2f;
            GungerBaseProjectile gungerbase = projectile.gameObject.AddComponent <GungerBaseProjectile>();

            projectile.SetProjectileSpriteRight("gunger_projectile", 17, 9, false, tk2dBaseSprite.Anchor.MiddleCenter, 16, 8);

            projectile.transform.parent = gun.barrelOffset;

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Gunger Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/gunger_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/gunger_clipempty");

            gun.quality = PickupObject.ItemQuality.A;
            ETGMod.Databases.Items.Add(gun, null, "ANY");
        }
Пример #18
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Copygat", "copygat");

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

            behav.overrideNormalFireAudio = "Play_BOSS_DragunGold_Baby_Death_01";
            behav.preventNormalFireAudio  = true;
            gun.SetShortDescription("Follow The Leader");
            gun.SetLongDescription("Mimics the projectiles of other guns." + "\n\nThis industrial mimigoo weapon has attained a low level of sentience, and now communicates solely in meowing and scratching.");

            gun.SetupSprite(null, "copygat_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 12);

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

            //GUN STATS
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Automatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 1.5f;
            gun.muzzleFlashEffects.type              = VFXPoolType.None;
            gun.DefaultModule.cooldownTime           = 0.15f;
            gun.DefaultModule.numberOfShotsInClip    = 10;
            gun.barrelOffset.transform.localPosition = new Vector3(2.5f, 0.56f, 0f);
            gun.SetBaseMaxAmmo(200);
            gun.ammo     = 200;
            gun.gunClass = GunClass.FULLAUTO;
            //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 = 20f;
            projectile.SetProjectileSpriteRight("wrench_null_projectile", 13, 7, false, tk2dBaseSprite.Anchor.MiddleCenter, 12, 7);
            projectile.hitEffects.alwaysUseMidair        = true;
            projectile.hitEffects.overrideMidairDeathVFX = EasyVFXDatabase.RedLaserCircleVFX;
            projectile.transform.parent = gun.barrelOffset;

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Copygat Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/copygat_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/copygat_clipempty");

            gun.DefaultModule.projectiles[0] = projectile;
            gun.quality = PickupObject.ItemQuality.A;
            ETGMod.Databases.Items.Add(gun, null, "ANY");

            CopygatID = gun.PickupObjectId;
        }
Пример #19
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Repetitron", "repetiton");

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

            gun.SetShortDescription("We've Done This Before");
            gun.SetLongDescription("Fires bullets... again... and again... and again." + "\n\nThis gun is powered by a miniature recursive sub-space anomaly. Do not look at the operational end.");

            gun.SetupSprite(null, "repetiton_idle_001", 8);

            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(89) as Gun).gunSwitchGroup;
            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.2f;
            gun.DefaultModule.angleVariance          = 4;
            gun.muzzleFlashEffects                   = (PickupObjectDatabase.GetById(89) as Gun).muzzleFlashEffects;
            gun.DefaultModule.numberOfShotsInClip    = 5;
            gun.barrelOffset.transform.localPosition = new Vector3(2.0f, 0.25f, 0f);
            gun.SetBaseMaxAmmo(200);
            gun.ammo     = 200;
            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);
            projectile.baseData.damage                  *= 1f;
            projectile.baseData.force                   *= 1f;
            projectile.baseData.speed                   *= 1f;
            projectile.hitEffects.alwaysUseMidair        = true;
            projectile.hitEffects.overrideMidairDeathVFX = EasyVFXDatabase.GreenLaserCircleVFX;
            projectile.baseData.range                   *= 0.5f;
            projectile.SetProjectileSpriteRight("repetiton_projectile", 10, 7, true, tk2dBaseSprite.Anchor.MiddleCenter, 9, 6);

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Repetitron Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/repetitron_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/repetitron_clipempty");

            gun.DefaultModule.projectiles[0] = projectile;

            gun.quality = PickupObject.ItemQuality.A;
            ETGMod.Databases.Items.Add(gun, null, "ANY");
        }
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Gravitron", "gravitron");

            Game.Items.Rename("outdated_gun_mods:gravitron", "nn:gravitron");
            gun.gameObject.AddComponent <Gravitron>();
            gun.SetShortDescription("Outstanding In It's Field");
            gun.SetLongDescription("Bullets orbit enemies." + "\n\nMilitary adaptation of orbtial projectile technology, these bullets are clever enough to latch onto the target instead of their owner.");

            gun.SetupSprite(null, "gravitron_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 10);
            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(13) as Gun).gunSwitchGroup;

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

            //GUN STATS
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Automatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime         = 1.1f;
            gun.muzzleFlashEffects = (PickupObjectDatabase.GetById(334) as Gun).muzzleFlashEffects;

            gun.DefaultModule.cooldownTime           = 0.2f;
            gun.DefaultModule.numberOfShotsInClip    = 25;
            gun.barrelOffset.transform.localPosition = new Vector3(2.12f, 0.56f, 0f);
            gun.SetBaseMaxAmmo(360);
            gun.ammo     = 360;
            gun.gunClass = GunClass.FULLAUTO;
            //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.range *= 2f;
            GravitronBulletsBehaviour behav = projectile.gameObject.GetOrAddComponent <GravitronBulletsBehaviour>();

            behav.maxOrbitalRadius = 6;
            behav.minOrbitalRadius = 3.5f;
            projectile.SetProjectileSpriteRight("gravitron_projectile", 7, 7, true, tk2dBaseSprite.Anchor.MiddleCenter, 6, 6);

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Gravitron Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/gravitron_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/gravitron_clipempty");

            gun.DefaultModule.projectiles[0] = projectile;

            gun.quality = PickupObject.ItemQuality.B;
            ETGMod.Databases.Items.Add(gun, null, "ANY");
            GravitronID = gun.PickupObjectId;
        }
Пример #21
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Punishment Ray", "punishmentray");

            Game.Items.Rename("outdated_gun_mods:punishment_ray", "nn:punishment_ray");
            gun.gameObject.AddComponent <PunishmentRay>();
            gun.SetShortDescription("STREAK");
            gun.SetLongDescription("Repeatedly landing shots builds up a damage increasing streak, but losing a high enough streak hurts." + "\n\nHave you been a bad Gungeoneer?");

            gun.SetupSprite(null, "punishmentray_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 10);

            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(32) as Gun).gunSwitchGroup;
            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.4f;
            gun.muzzleFlashEffects.type              = VFXPoolType.None;
            gun.DefaultModule.numberOfShotsInClip    = 6;
            gun.DefaultModule.angleFromAim           = 0f;
            gun.DefaultModule.angleVariance          = 0f;
            gun.barrelOffset.transform.localPosition = new Vector3(1.68f, 0.56f, 0f);
            gun.SetBaseMaxAmmo(200);
            gun.ammo     = 200;
            gun.gunClass = GunClass.PISTOL;
            //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      *= 1.4f;
            projectile.baseData.speed       *= 1f;
            projectile.baseData.range       *= 1f;
            projectile.baseData.force       *= 1f;

            projectile.SetProjectileSpriteRight("punishmentray_projectile", 20, 3, false, tk2dBaseSprite.Anchor.MiddleCenter, 10, 3);

            projectile.transform.parent      = gun.barrelOffset;
            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Punishment Ray Lasers", "NevernamedsItems/Resources/CustomGunAmmoTypes/punishmentray_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/punishmentray_clipempty");
            gun.quality = PickupObject.ItemQuality.C;
            ETGMod.Databases.Items.Add(gun, null, "ANY");
        }
Пример #22
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Fire Lance", "firelance");

            Game.Items.Rename("outdated_gun_mods:fire_lance", "nn:fire_lance");
            gun.gameObject.AddComponent <FireLance>();
            gun.SetShortDescription("Where it all started");
            gun.SetLongDescription("Long explosive lances such as these are recorded to be some of the first gunpowder-based weapons in human history, beaten out only by crude bombs." + "\n\nWithout this, none of this would be possible.");

            gun.SetupSprite(null, "firelance_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 15);

            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.muzzleFlashEffects.type              = VFXPoolType.None;
            gun.DefaultModule.numberOfShotsInClip    = 5;
            gun.barrelOffset.transform.localPosition = new Vector3(4.56f, 1.18f, 0f);
            gun.SetBaseMaxAmmo(100);
            gun.gunClass = GunClass.EXPLOSIVE;
            //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        *= 3f;
            projectile.sprite.renderer.enabled = false;
            projectile.baseData.range         /= 35f;
            projectile.transform.parent        = gun.barrelOffset;
            ExplosiveModifier explosiveModifier = projectile.gameObject.AddComponent <ExplosiveModifier>();

            explosiveModifier.doExplosion   = true;
            explosiveModifier.explosionData = FireLanceExplosion;

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Fire Lance Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/firelance_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/firelance_clipempty");

            gun.quality = PickupObject.ItemQuality.D;
            gun.encounterTrackable.EncounterGuid = "this is the Fire Lance";
            ETGMod.Databases.Items.Add(gun, null, "ANY");
            FireLanceID = gun.PickupObjectId;
        }
Пример #23
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Kinetic Blaster", "kineticblaster");

            Game.Items.Rename("outdated_gun_mods:kinetic_blaster", "nn:kinetic_blaster");
            gun.gameObject.AddComponent <KineticBlaster>();
            gun.SetShortDescription("Knock Knock Knockin");
            gun.SetLongDescription("Converts chemical potential energy into potent kinetic energy." + "\n\nOlder than most guns in the Gungeon. In it's hayday, it was even powerful enough to grant flight!");

            gun.SetupSprite(null, "kineticblaster_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 12);

            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(402) as Gun).gunSwitchGroup;
            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 = 1.2f;
            gun.DefaultModule.cooldownTime           = 0.2f;
            gun.muzzleFlashEffects                   = (PickupObjectDatabase.GetById(228) as Gun).muzzleFlashEffects;
            gun.DefaultModule.numberOfShotsInClip    = 10;
            gun.barrelOffset.transform.localPosition = new Vector3(2.18f, 0.5f, 0f);
            gun.SetBaseMaxAmmo(300);
            gun.ammo     = 300;
            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.baseData.damage       = 7f;
            projectile.baseData.force       *= 6f;

            projectile.SetProjectileSpriteRight("kineticblaster_projectile", 10, 10, true, tk2dBaseSprite.Anchor.MiddleCenter, 8, 8);
            projectile.hitEffects.alwaysUseMidair        = true;
            projectile.hitEffects.overrideMidairDeathVFX = EasyVFXDatabase.BlueFrostBlastVFX;

            projectile.transform.parent = gun.barrelOffset;

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Kinetic Blaster Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/kineticblaster_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/kineticblaster_clipempty");

            gun.quality = PickupObject.ItemQuality.C;
            ETGMod.Databases.Items.Add(gun, null, "ANY");
        }
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Maiden Rifle", "maidenrifle");

            Game.Items.Rename("outdated_gun_mods:maiden_rifle", "nn:maiden_rifle");
            gun.gameObject.AddComponent <MaidenRifle>();
            gun.SetShortDescription("Lady Death");
            gun.SetLongDescription("Reverse engineered Lead Maiden technology." + "\n\nOriginally, the projectiles would rotate when in walls, but this was removed for efficiency, and definitely not because quaternions and vectors are more painful than tapdancing on an echidna.");

            gun.SetupSprite(null, "maidenrifle_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 17);

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

            //GUN STATS
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Automatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 2f;
            gun.DefaultModule.cooldownTime           = 0.15f;
            gun.DefaultModule.numberOfShotsInClip    = 30;
            gun.barrelOffset.transform.localPosition = new Vector3(1.68f, 0.62f, 0f);
            gun.SetBaseMaxAmmo(400);
            gun.ammo     = 400;
            gun.gunClass = GunClass.FULLAUTO;
            //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      *= 1.6f;
            projectile.pierceMinorBreakables = true;
            projectile.SetProjectileSpriteRight("friendlymaiden_projectile", 25, 12, true, tk2dBaseSprite.Anchor.MiddleCenter, 6, 8);
            LeadMaidenProjectileReAiming orAddComponent = projectile.gameObject.GetOrAddComponent <LeadMaidenProjectileReAiming>();

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("MaidenRifle Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/maidenrifle_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/maidenrifle_clipempty");

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



            MaidenRifleID = gun.PickupObjectId;
            gun.AddToSubShop(ItemBuilder.ShopType.Cursula);
        }
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Demolitionist", "demolitionist");

            Game.Items.Rename("outdated_gun_mods:demolitionist", "nn:demolitionist");
            gun.gameObject.AddComponent <Demolitionist>();
            gun.SetShortDescription("Up in Smoke!");
            gun.SetLongDescription("Reloading on a full clip consumes some ammo and places a proximity mine." + "\n\nAn old Hegemony of Man weapon, repurposed by Minelets for blasting open ore deposits in the mines.");

            gun.SetupSprite(null, "demolitionist_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 12);

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

            //GUN STATS
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Automatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 1f;
            gun.DefaultModule.cooldownTime           = 0.3f;
            gun.DefaultModule.numberOfShotsInClip    = 20;
            gun.barrelOffset.transform.localPosition = new Vector3(1.75f, 0.81f, 0f);
            gun.SetBaseMaxAmmo(300);
            gun.gunClass = GunClass.FULLAUTO;
            //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      *= 1.8f;
            projectile.baseData.speed       *= 1f;
            projectile.baseData.range       *= 1f;
            projectile.SetProjectileSpriteRight("demolitionist_projectile", 16, 7, false, tk2dBaseSprite.Anchor.MiddleCenter, 15, 6);

            projectile.transform.parent = gun.barrelOffset;

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Demolitionist Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/demolitionist_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/thinline_clipempty");

            gun.quality = PickupObject.ItemQuality.B;
            gun.encounterTrackable.EncounterGuid = "this is the Demolitionist";
            ETGMod.Databases.Items.Add(gun, null, "ANY");
            DemolitionistID = gun.PickupObjectId;
            gun.SetupUnlockOnCustomFlag(CustomDungeonFlags.PURCHASED_DEMOLITIONIST, true);
        }
Пример #26
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Dart Rifle", "dartrifle");

            Game.Items.Rename("outdated_gun_mods:dart_rifle", "nn:dart_rifle");
            gun.gameObject.AddComponent <DartRifle>();
            gun.SetShortDescription("Tactical Incapacitation");
            gun.SetLongDescription("Used to incapacitate large animals for transport." + "\n\nLoaded with a powerful sedative.");

            gun.SetupSprite(null, "dartrifle_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 15);

            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.6f;
            gun.DefaultModule.numberOfShotsInClip    = 5;
            gun.barrelOffset.transform.localPosition = new Vector3(2.12f, 0.56f, 0f);
            gun.SetBaseMaxAmmo(100);
            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       *= 2f;
            projectile.baseData.damage      *= 1.4f;
            projectile.AppliesStun           = true;
            projectile.AppliedStunDuration  += 7f;
            projectile.StunApplyChance       = 1f;
            projectile.SetProjectileSpriteRight("dartrifle_projectile", 16, 7, false, tk2dBaseSprite.Anchor.MiddleCenter, 14, 3);

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Dart Rifle Darts", "NevernamedsItems/Resources/CustomGunAmmoTypes/dartrifle_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/dartrifle_clipempty");

            gun.quality = PickupObject.ItemQuality.B;
            ETGMod.Databases.Items.Add(gun, null, "ANY");
            gun.SetupUnlockOnCustomFlag(CustomDungeonFlags.PURCHASED_DARTRIFLE, true);
            DartRifleID = gun.PickupObjectId;
        }
Пример #27
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Minute Gun", "minutegun");

            Game.Items.Rename("outdated_gun_mods:minute_gun", "nn:minute_gun");
            gun.gameObject.AddComponent <MinuteGun>();
            gun.SetShortDescription("You Have 60 Seconds");
            gun.SetLongDescription("Usable for only 60 seconds each floor." + "\n\nA tiny adventurer managed to bring this all the way from his home in the swamps to the Gungeon's Entrance before his time was up.");

            gun.SetupSprite(null, "minutegun_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 16);

            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(86) as Gun).gunSwitchGroup;
            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 = 1f;
            gun.DefaultModule.cooldownTime        = 0.1f;
            gun.DefaultModule.angleVariance       = 5;
            gun.DefaultModule.numberOfShotsInClip = 7;
            gun.muzzleFlashEffects = (PickupObjectDatabase.GetById(84) as Gun).muzzleFlashEffects;
            gun.barrelOffset.transform.localPosition = new Vector3(1.75f, 0.87f, 0f);
            gun.SetBaseMaxAmmo(0);
            gun.ammo     = 60;
            gun.gunClass = GunClass.PISTOL;
            //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.SetProjectileSpriteRight("minutegun_projectile", 16, 9, true, tk2dBaseSprite.Anchor.MiddleCenter, 15, 8);
            projectile.hitEffects.overrideMidairDeathVFX = EasyVFXDatabase.WhiteCircleVFX;
            projectile.hitEffects.alwaysUseMidair        = true;
            projectile.baseData.damage       = 20;
            gun.DefaultModule.projectiles[0] = projectile;
            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Minute Gun Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/minutegun_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/minutegun_clipempty");
            gun.quality = PickupObject.ItemQuality.C;
            ETGMod.Databases.Items.Add(gun, null, "ANY");

            MinuteGunID = gun.PickupObjectId;
        }
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Risk Rifle", "riskrifle");

            Game.Items.Rename("outdated_gun_mods:risk_rifle", "nn:risk_rifle");
            gun.gameObject.AddComponent <RiskRifle>();
            gun.SetShortDescription("Danger Zone");
            gun.SetLongDescription("A strong rifle with one notable drawback; it harms it's owner upon emptying a clip. Be very careful to reload before then." + "\n\n");

            gun.SetupSprite(null, "riskrifle_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 17);

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

            //GUN STATS
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Automatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 2f;
            gun.DefaultModule.cooldownTime           = 0.04f;
            gun.DefaultModule.numberOfShotsInClip    = 40;
            gun.barrelOffset.transform.localPosition = new Vector3(2.25f, 0.5f, 0f);
            gun.SetBaseMaxAmmo(400);
            gun.ammo     = 400;
            gun.gunClass = GunClass.FULLAUTO;
            //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.SetProjectileSpriteRight("riskrifle_projectile", 6, 4, true, tk2dBaseSprite.Anchor.MiddleCenter, 6, 4);

            projectile.transform.parent = gun.barrelOffset;

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Risk Rifle Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/riskrifle_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/riskrifle_clipempty");

            // Here we just set the quality of the gun and the "EncounterGuid", which is used by Gungeon to identify the gun.
            gun.quality = PickupObject.ItemQuality.C;
            gun.encounterTrackable.EncounterGuid = "this is the Risk Rifle";
            ETGMod.Databases.Items.Add(gun, null, "ANY");
            RiskRifleID = gun.PickupObjectId;
            gun.SetupUnlockOnCustomFlag(CustomDungeonFlags.PURCHASED_RISKRIFLE, true);
        }
Пример #29
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("GayK-47", "gayk47");

            Game.Items.Rename("outdated_gun_mods:gayk-47", "nn:gayk47");
            gun.gameObject.AddComponent <GayK47>();
            gun.SetShortDescription("Somewhere");
            gun.SetLongDescription("This shiny AK comes in all types of colours." + "\n\nThinks that the Machine Pistol is cute, but is too embarrassed to say anything.");

            gun.SetupSprite(null, "gayk47_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 12);
            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(15) as Gun).gunSwitchGroup;
            gun.AddProjectileModuleFrom(PickupObjectDatabase.GetById(86) as Gun, true, false);

            //GUN STATS
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Automatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 1f;
            gun.DefaultModule.cooldownTime           = 0.15f;
            gun.DefaultModule.numberOfShotsInClip    = 20;
            gun.barrelOffset.transform.localPosition = new Vector3(2.25f, 0.5f, 0f);
            gun.muzzleFlashEffects = (PickupObjectDatabase.GetById(15) as Gun).muzzleFlashEffects;
            gun.SetBaseMaxAmmo(400);
            gun.ammo           = 400;
            gun.gunClass       = GunClass.SILLY;
            gun.gunScreenShake = (PickupObjectDatabase.GetById(15) as Gun).gunScreenShake;
            //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       = 6f;
            projectile.baseData.speed       *= 1f;
            projectile.baseData.range       *= 2f;

            projectile.gameObject.AddComponent <GayK47Mod>();
            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Gayk47 Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/gayk47_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/gayk47_clipempty");
            gun.quality = PickupObject.ItemQuality.A;
            ETGMod.Databases.Items.Add(gun, null, "ANY");

            GayK47ID = gun.PickupObjectId;
        }
Пример #30
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Glasster", "glasster");

            Game.Items.Rename("outdated_gun_mods:glasster", "nn:glasster");
            gun.gameObject.AddComponent <Glasster>();
            gun.SetShortDescription("Glass Blower");
            gun.SetLongDescription("Increases in damage the more Glass Guon Stones are held." + "\n\nGifted unto a spacefaring rogue by the Lady of Pane, it's original bearer died from infection after cutting himself on a shard of glass.");

            gun.SetupSprite(null, "glasster_idle_001", 8);

            gun.SetAnimationFPS(gun.shootAnimation, 14);

            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(32) as Gun).gunSwitchGroup;
            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 = 1f;
            gun.muzzleFlashEffects.type              = VFXPoolType.None;
            gun.DefaultModule.cooldownTime           = 0.15f;
            gun.DefaultModule.numberOfShotsInClip    = 6;
            gun.barrelOffset.transform.localPosition = new Vector3(1.68f, 0.56f, 0f);
            gun.SetBaseMaxAmmo(200);
            gun.ammo     = 200;
            gun.gunClass = GunClass.PISTOL;
            //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 *= 1f;
            projectile.SetProjectileSpriteRight("glasster_projectile", 4, 4, true, tk2dBaseSprite.Anchor.MiddleCenter, 4, 4);
            gun.DefaultModule.projectiles[0] = projectile;

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = CustomClipAmmoTypeToolbox.AddCustomAmmoType("Glasster Bullets", "NevernamedsItems/Resources/CustomGunAmmoTypes/glasster_clipfull", "NevernamedsItems/Resources/CustomGunAmmoTypes/glasster_clipempty");

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

            GlassterID = gun.PickupObjectId;
        }