public static void Add()
        {
            string shorthandName = "reloaded_rifle";
            Gun    gun           = ETGMod.Databases.Items.NewGun("Reloaded Rifle", shorthandName);

            Game.Items.Rename("outdated_gun_mods:" + shorthandName, "cel:" + shorthandName);
            var behav = gun.gameObject.AddComponent <ReloadedRifle>();

            gun.SetShortDescription("Of The Highest Quality");
            gun.SetLongDescription("Has multiple active reloads with different effects. If the first active reload is performed with an empty clip, the empty clip is thrown, stunning hit enemies.\n\nNothing is more satisfying, more sweet to a gunslinger than a crisp, fluid reload.");
            gun.SetupSprite(null, shorthandName + "_idle_001", 6);
            gun.SetAnimationFPS(gun.shootAnimation, 12);
            gun.AddProjectileModuleFrom("ak-47", true, false);
            gun.SetBaseMaxAmmo(500);
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Automatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 1.4f;
            gun.DefaultModule.cooldownTime = 0.11f;
            gun.gunClass = GunClass.RIFLE;
            gun.DefaultModule.numberOfShotsInClip = 25;
            gun.quality = PickupObject.ItemQuality.S;
            Gun gun2 = PickupObjectDatabase.GetById(15) as Gun;

            gun.muzzleFlashEffects = gun2.muzzleFlashEffects;
            gun.gunSwitchGroup     = gun2.gunSwitchGroup;
            gun.gunHandedness      = GunHandedness.TwoHanded;
            gun.barrelOffset.transform.localPosition = new Vector3(2.5f, .5f, 0f);
            gun.DefaultModule.angleVariance          = 4f;
            gun.encounterTrackable.EncounterGuid     = "r/HighQualityReloads";
            gun.sprite.IsPerpendicular = true;

            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      *= 1f;
            projectile.baseData.speed       *= 1f;
            projectile.baseData.force       *= 1f;
            projectile.transform.parent      = gun.barrelOffset;
            ProjectileSlashingBehaviour projectileSlashing = projectile.gameObject.AddComponent <ProjectileSlashingBehaviour>();

            projectileSlashing.SlashDimensions = 45;

            ETGMod.Databases.Items.Add(gun, null, "ANY");
            behav.activeReloadEnabled = true;
            behav.reloads             = new List <MultiActiveReloadData>
            {
                new MultiActiveReloadData(0.675f, 65, 69, 1, 1 * 3, false, true, new ActiveReloadData
                {
                    damageMultiply = 2f,
                }, true, "DamageUp"),
                new MultiActiveReloadData(.5f, 48, 52, 1, 1 * 3, false, true, new ActiveReloadData
                {
                    damageMultiply = 1,
                }, true, "AccuracyUp"),
                new MultiActiveReloadData(.85f, 83, 87, 1, 1 * 3, true, true, new ActiveReloadData
                {
                    damageMultiply = 1,
                }, true, "FireRateUp")
            };
        }
Example #2
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Prime Cannon", "prime_cannon");

            Game.Items.Rename("outdated_gun_mods:prime_cannon", "cel:prime_cannon");
            gun.gameObject.AddComponent <PrimeCannon>();
            gun.SetShortDescription("Leedle");
            gun.SetLongDescription("u-u");
            gun.SetupSprite(null, "prime_cannon_idle_001", 8);
            gun.SetAnimationFPS(gun.shootAnimation, 4);
            gun.SetAnimationFPS(gun.reloadAnimation, 2);
            gun.AddProjectileModuleFrom("38_special", true, false);
            gun.DefaultModule.ammoType      = GameUIAmmoType.AmmoType.SMALL_BULLET;
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Automatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime     = 0f;
            gun.gunSwitchGroup = (PickupObjectDatabase.GetById(19) as Gun).gunSwitchGroup;
            gun.DefaultModule.angleVariance       = 0f;
            gun.DefaultModule.cooldownTime        = 1f;
            gun.DefaultModule.numberOfShotsInClip = 150;
            Gun gun2 = PickupObjectDatabase.GetById(15) as Gun;

            gun.muzzleFlashEffects = gun2.muzzleFlashEffects;
            gun.SetBaseMaxAmmo(150);
            gun.quality = PickupObject.ItemQuality.EXCLUDED;
            gun.encounterTrackable.EncounterGuid = "For what purpose are you reading this????? why would you?? creep.";
            gun.sprite.IsPerpendicular           = true;
            gun.gunClass = GunClass.RIFLE;
            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;
            gun.barrelOffset.transform.localPosition -= new Vector3(0, .4f);
            projectile.transform.parent = gun.barrelOffset;
            AIActor           Grenat    = EnemyDatabase.GetOrLoadByGuid("b4666cb6ef4f4b038ba8924fd8adf38f");
            ExplosiveModifier GetFucked = projectile.gameObject.AddComponent <ExplosiveModifier>();
            ExplosionData     die       = new ExplosionData
            {
                damageRadius         = 1.5f,
                damageToPlayer       = 0f,
                doDamage             = true,
                damage               = 20f,
                doExplosionRing      = true,
                doDestroyProjectiles = true,
                doForce              = true,
                debrisForce          = 5f,
                pushRadius           = 1.6f,
                force = 8f,
                preventPlayerForce     = true,
                explosionDelay         = 0f,
                usesComprehensiveDelay = false,
                doScreenShake          = false,
                playDefaultSFX         = true,
                effect = Grenat.GetComponent <ExplodeOnDeath>().explosionData.effect
            };

            GetFucked.explosionData = die;
            projectile.SetProjectileSpriteRight("prime_bomb", 9, 9, null, null);
            ETGMod.Databases.Items.Add(gun, null, "ANY");
        }
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Firework Rifle", "firework_rifle");

            Game.Items.Rename("outdated_gun_mods:firework_rifle", "cel:firework_rifle");
            gun.gameObject.AddComponent <FireworkRifle>();
            gun.SetShortDescription("Bang, Bang, Bang! Here We Go!");
            gun.SetLongDescription("Shoots powerful fireworks.\n\nThis gun came from a world caught in an eternal struggle for balance. It was created to celebrate the journey of a hero.");

            gun.SetupSprite(null, "firework_rifle_idle_001", 8);
            gun.SetAnimationFPS(gun.shootAnimation, 18);
            gun.SetAnimationFPS(gun.reloadAnimation, 2);
            gun.AddProjectileModuleFrom("ak-47", true, false);

            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Automatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = .8f;
            gun.DefaultModule.angleVariance       = 4f;
            gun.DefaultModule.cooldownTime        = .2f;
            gun.DefaultModule.numberOfShotsInClip = 12;
            gun.DefaultModule.ammoType            = (PickupObjectDatabase.GetById(16) as Gun).DefaultModule.ammoType;
            Gun gun2 = PickupObjectDatabase.GetById(32) as Gun;

            gun.muzzleFlashEffects = gun2.muzzleFlashEffects;
            gun.SetBaseMaxAmmo(150);
            gun.barrelOffset.transform.localPosition = new Vector3(2, .3f);
            gun.quality = PickupObject.ItemQuality.S;
            gun.encounterTrackable.EncounterGuid = "pewpewgoboomboomdeath.";
            gun.sprite.IsPerpendicular           = true;
            gun.gunClass = GunClass.EXPLOSIVE;
            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.shouldRotate          = true;
            projectile.SetProjectileSpriteRight("firework_proj", 13, 7, null, null);
            AIActor           Firecracker = EnemyDatabase.GetOrLoadByGuid("5f15093e6f684f4fb09d3e7e697216b4");
            ExplosiveModifier GetFucked   = projectile.gameObject.AddComponent <ExplosiveModifier>();

            ExplosionData die = new ExplosionData
            {
                damageRadius         = 1.5f,
                damageToPlayer       = 0f,
                doDamage             = true,
                damage               = 15f,
                doExplosionRing      = true,
                doDestroyProjectiles = true,
                doForce              = true,
                debrisForce          = 5f,
                pushRadius           = 1.6f,
                force = 8f,
                preventPlayerForce     = true,
                explosionDelay         = 0f,
                usesComprehensiveDelay = false,
                doScreenShake          = false,
                playDefaultSFX         = true,
                effect = Firecracker.GetComponent <ExplodeOnDeath>().explosionData.effect,
                //AssetBundle assetBundle = ResourceManager.LoadAssetBundle("shared_auto_001");
                //  GameObject TestingVFX = assetBundle.LoadAsset<GameObject>("VFX_Dust_Explosion");
            };

            GetFucked.explosionData = die;


            ETGMod.Databases.Items.Add(gun, null, "ANY");

            gun.AddToSubShop(ItemBuilder.ShopType.Trorc);
        }
Example #4
0
        public static void Add()
        {
            string shorthandName = "ion_fist";
            Gun    gun           = ETGMod.Databases.Items.NewGun("Ion Fist", shorthandName);

            Game.Items.Rename("outdated_gun_mods:" + shorthandName, "cel:" + shorthandName);
            gun.gameObject.AddComponent <IonFist>();
            gun.SetShortDescription("Casually Approach Child");
            gun.SetLongDescription("Charge up for powerful dashes. Grants melee immunity and flight while dashing. A fully-charged dash reflects projectiles.\n\nThis guantlet is charged to the brim with ions. Simply touching another object creates a powerful electric surge.");
            gun.SetupSprite(null, shorthandName + "_idle_001", 8);
            gun.SetAnimationFPS(gun.shootAnimation, 24);
            gun.AddProjectileModuleFrom("38_special", true, false);
            gun.SetBaseMaxAmmo(180);
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Charged;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 1.2f;
            gun.DefaultModule.cooldownTime = 0.5f;
            gun.gunClass = GunClass.CHARGE;
            gun.DefaultModule.numberOfShotsInClip = 5;
            gun.quality = PickupObject.ItemQuality.A;
            gun.muzzleFlashEffects.type          = VFXPoolType.None;
            gun.DefaultModule.angleVariance      = 0f;
            gun.encounterTrackable.EncounterGuid = "ion dash fist gun owo";
            gun.sprite.IsPerpendicular           = true;
            Projectile projectile1 = UnityEngine.Object.Instantiate <Projectile>((PickupObjectDatabase.GetById(153) as Gun).DefaultModule.projectiles[0]);

            projectile1.gameObject.SetActive(false);
            FakePrefab.MarkAsFakePrefab(projectile1.gameObject);
            UnityEngine.Object.DontDestroyOnLoad(projectile1);
            gun.DefaultModule.projectiles[0] = projectile1;
            projectile1.gameObject.AddComponent <UnchangeableRangeController>();
            projectile1.baseData.damage          *= 1.2f;
            projectile1.baseData.speed           *= 1f;
            projectile1.baseData.force           *= 1f;
            projectile1.baseData.range            = 4f;
            projectile1.AdditionalScaleMultiplier = 1.1f;
            projectile1.transform.parent          = gun.barrelOffset;
            projectile1.sprite.renderer.enabled   = false;
            Projectile projectile2 = UnityEngine.Object.Instantiate <Projectile>((PickupObjectDatabase.GetById(153) as Gun).DefaultModule.projectiles[0]);

            projectile2.gameObject.SetActive(false);
            FakePrefab.MarkAsFakePrefab(projectile2.gameObject);
            UnityEngine.Object.DontDestroyOnLoad(projectile2);
            gun.DefaultModule.projectiles[0] = projectile2;
            gun.gunHandedness = GunHandedness.HiddenOneHanded;
            projectile2.gameObject.AddComponent <UnchangeableRangeController>();
            projectile2.baseData.damage          *= 2.5f;
            projectile2.baseData.speed           *= .75f;
            projectile2.baseData.force           *= 1f;
            projectile2.baseData.range            = 7.5f;
            projectile2.AdditionalScaleMultiplier = 1.1f;
            projectile2.transform.parent          = gun.barrelOffset;
            projectile2.sprite.renderer.enabled   = false;
            Projectile projectile3 = UnityEngine.Object.Instantiate <Projectile>((PickupObjectDatabase.GetById(153) as Gun).DefaultModule.projectiles[0]);

            projectile3.gameObject.SetActive(false);
            FakePrefab.MarkAsFakePrefab(projectile3.gameObject);
            UnityEngine.Object.DontDestroyOnLoad(projectile3);
            gun.DefaultModule.projectiles[0] = projectile3;
            projectile3.gameObject.AddComponent <UnchangeableRangeController>();
            projectile3.baseData.damage          *= 5f;
            projectile3.baseData.speed           *= .75f;
            projectile3.baseData.force           *= 1f;
            projectile3.baseData.range            = 14f;
            projectile3.AdditionalScaleMultiplier = 1.1f;
            projectile3.transform.parent          = gun.barrelOffset;
            projectile3.sprite.renderer.enabled   = false;
            ProjectileModule.ChargeProjectile chargeProj1 = new ProjectileModule.ChargeProjectile()
            {
                Projectile = projectile1,
                ChargeTime = .0f,
            };
            ProjectileModule.ChargeProjectile chargeProj2 = new ProjectileModule.ChargeProjectile()
            {
                Projectile = projectile2,
                ChargeTime = .6f,
            };
            ProjectileModule.ChargeProjectile chargeProj3 = new ProjectileModule.ChargeProjectile()
            {
                Projectile = projectile3,
                ChargeTime = 1.2f,
            };
            gun.DefaultModule.chargeProjectiles = new List <ProjectileModule.ChargeProjectile>
            {
                chargeProj1,
                chargeProj2,
                chargeProj3
            };

            ETGMod.Databases.Items.Add(gun, null, "ANY");
        }