Пример #1
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }