Exemple #1
0
        public static void Add()
        {
            int LimitGunId = 98;
            Gun limitGun   = PickupObjectDatabase.GetById(LimitGunId) as Gun;



            Gun gun = ETGMod.Databases.Items.NewGun("Phazor", "phazor");

            Game.Items.Rename("outdated_gun_mods:phazor", "cel:phazor");
            gun.gameObject.AddComponent <Phazor>();
            gun.SetShortDescription("Shiny");
            gun.SetLongDescription("Fires faster the longer the fire button is held down.\n\nA gun made from pure rainbows, imagination, hours of slavery, and fantasy.");
            gun.SetupSprite(null, "phazor_idle_001", 13);

            gun.SetAnimationFPS(gun.shootAnimation, 24);
            gun.AddProjectileModuleFrom("future_assault_rifle", true, false);
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Automatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 0f;
            gun.DefaultModule.angleVariance           = 4f;
            gun.GainsRateOfFireAsContinueAttack       = true;
            gun.RateOfFireMultiplierAdditionPerSecond = .5f;
            gun.DefaultModule.cooldownTime            = 0.2f;
            gun.SetBaseMaxAmmo(300);
            Gun gun2 = PickupObjectDatabase.GetById(32) as Gun;

            gun.muzzleFlashEffects = gun2.muzzleFlashEffects;
            gun.gunClass           = GunClass.PISTOL;
            gun.DefaultModule.numberOfShotsInClip = gun.GetBaseMaxAmmo();
            gun.quality = PickupObject.ItemQuality.A;
            gun.encounterTrackable.EncounterGuid = "zip zoop zappity do";

            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      *= 2.28571428571f;
            projectile.baseData.speed       *= 1f;
            projectile.SetProjectileSpriteRight("phazor_projectile_002", 21, 3, null, null);
            gun.sprite.IsPerpendicular = true;
            ETGMod.Databases.Items.Add(gun, null, "ANY");
            projectile.transform.parent = gun.barrelOffset;
        }
Exemple #2
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Electric Bass", "electric_bass");

            Game.Items.Rename("outdated_gun_mods:electric_bass", "cel:electric_bass");
            gun.gameObject.AddComponent <ElectricBass>();
            gun.SetShortDescription("Atom And Evil");
            gun.SetLongDescription("Creates an eletric AoE instead of shooting projectiles.\n\nA guitar imbued with the power of heavy metal music.");
            gun.SetupSprite(null, "electric_bass_idle_001", 8);
            gun.SetAnimationFPS(gun.shootAnimation, 24);
            gun.SetAnimationFPS(gun.reloadAnimation, 3);
            gun.AddProjectileModuleFrom("38_special", true, false);
            gun.sprite.IsPerpendicular      = true;
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Automatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 0;
            gun.DefaultModule.cooldownTime = .3f;
            gun.SetBaseMaxAmmo(500);
            Gun gun2 = PickupObjectDatabase.GetById(149) as Gun;

            //gun.gunSwitchGroup = gun2.gunSwitchGroup;
            gun.DefaultModule.ammoType            = GameUIAmmoType.AmmoType.MEDIUM_BLASTER;
            gun.DefaultModule.numberOfShotsInClip = gun.GetBaseMaxAmmo();
            gun.quality  = PickupObject.ItemQuality.C;
            gun.gunClass = GunClass.FULLAUTO;
            gun.encounterTrackable.EncounterGuid = "AoE Bass gun";
            gun.muzzleFlashEffects.type          = VFXPoolType.None;
            gun.AddToSubShop(ItemBuilder.ShopType.Trorc);
            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                  *= 0;
            projectile.baseData.speed                   *= 1f;
            projectile.baseData.range                   *= .00001f;
            projectile.collidesWithEnemies               = false;
            projectile.collidesWithPlayer                = false;
            projectile.sprite.renderer.enabled           = false;
            projectile.hitEffects.suppressMidairDeathVfx = true;
            ETGMod.Databases.Items.Add(gun, null, "ANY");
        }
Exemple #3
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Skeleton", "skeleton");

            Game.Items.Rename("outdated_gun_mods:skeleton", "cel:skeleton");
            gun.gameObject.AddComponent <Skeleton>();
            gun.SetShortDescription("Rattled");
            gun.SetLongDescription("It is not unheard of for a mimic to die with its last meal still mid-digestion. How the Gungeon could possibly consider this as a gun is best left to the imagination.");
            gun.SetupSprite(null, "skeleton_idle_001", 13);
            gun.SetAnimationFPS(gun.shootAnimation, 12);
            gun.AddProjectileModuleFrom("38_special", true, false);
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.Automatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 0f;
            gun.DefaultModule.angleVariance = 5f;
            gun.DefaultModule.cooldownTime  = 0.11f;
            gun.SetBaseMaxAmmo(512);
            gun.gunClass = GunClass.SILLY;
            gun.DefaultModule.numberOfShotsInClip = gun.GetBaseMaxAmmo();
            gun.muzzleFlashEffects.type           = VFXPoolType.None;
            gun.quality = PickupObject.ItemQuality.C;
            gun.encounterTrackable.EncounterGuid     = "A whole-ass skeleton";
            gun.barrelOffset.transform.localPosition = new UnityEngine.Vector3(.5f, 1.4f, 0f);
            gun.carryPixelOffset = new IntVector2(0, 3);
            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;
            projectile.baseData.speed       *= 1f;
            projectile.transform.parent      = gun.barrelOffset;
            projectile.SetProjectileSpriteRight("skeleton_projectile_001", 16, 7, null, null);
            gun.sprite.IsPerpendicular = true;
            ETGMod.Databases.Items.Add(gun, null, "ANY");
        }
Exemple #4
0
        private void F**K()
        {
            PlayerController player = this.gun.CurrentOwner as PlayerController;
            bool             flag   = !Assigned;

            if (flag)
            {
                Assigned = true;
                int T = T1;
                if (T == 0)
                {
                    gun.SetBaseMaxAmmo(450);
                    gun.ammo       = 450;
                    gun.reloadTime = 1.1f;
                    LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(Types[T]).gameObject, player);
                    gun.DefaultModule.projectiles[0] = ((Gun)ETGMod.Databases.Items[341]).DefaultModule.projectiles[0];
                    PierceProjModifier orAddComponent = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <PierceProjModifier>();
                    orAddComponent.penetration = 1;
                    BounceProjModifier bounceProj = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <BounceProjModifier>();
                    bounceProj.numberOfBounces = 0;
                }
                if (T == 1)
                {
                    gun.SetBaseMaxAmmo(150);
                    gun.ammo       = 150;
                    gun.reloadTime = 1.8f;
                    LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(Types[T]).gameObject, player);
                    gun.DefaultModule.projectiles[0] = ((Gun)ETGMod.Databases.Items[336]).DefaultModule.projectiles[0];
                    PierceProjModifier orAddComponent = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <PierceProjModifier>();
                    orAddComponent.penetration = 0;
                    gun.DefaultModule.projectiles[0].AppliesFire = false;
                    AIActor           Grenat    = EnemyDatabase.GetOrLoadByGuid("b4666cb6ef4f4b038ba8924fd8adf38f");
                    ExplosiveModifier GetFucked = gun.DefaultModule.projectiles[0].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
                                 //VFX_Explosion_Tiny,  VFX_Explosion_Newtiny BOTH IN SHARED_AUTO
                    };

                    GetFucked.explosionData = die;
                }
                if (T == 2)
                {
                    gun.SetBaseMaxAmmo(600);
                    gun.ammo       = 600;
                    gun.reloadTime = 1.4f;
                    LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(Types[T]).gameObject, player);
                    gun.DefaultModule.projectiles[0] = ((Gun)ETGMod.Databases.Items[229]).DefaultModule.projectiles[0];
                }
                if (T == 3)
                {
                    gun.SetBaseMaxAmmo(100);
                    gun.ammo       = 100;
                    gun.reloadTime = 1.25f;
                    LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(Types[T]).gameObject, player);
                    gun.DefaultModule.projectiles[0] = ((Gun)ETGMod.Databases.Items[27]).DefaultModule.projectiles[0];
                    gun.DefaultModule.projectiles[0].baseData.damage *= 8.57142857143f;
                    PierceProjModifier orAddComponent = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <PierceProjModifier>();
                    orAddComponent.penetratesBreakables = true;
                    orAddComponent.penetration          = 10000;
                }
                if (T == 4)
                {
                    gun.SetBaseMaxAmmo(800);
                    gun.ammo       = 800;
                    gun.reloadTime = 0f;
                    LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(Types[T]).gameObject, player);
                    gun.DefaultModule.projectiles[0] = ((Gun)ETGMod.Databases.Items[124]).DefaultModule.projectiles[0];
                    gun.DefaultModule.projectiles[0].baseData.damage *= 0.6f;
                }
                int K1 = 0;
                if (K1 == 0)
                {
                    LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsUni[K1]).gameObject, player);
                    HomingModifier homingModifier = gun.DefaultModule.projectiles[0].gameObject.AddComponent <HomingModifier>();
                    homingModifier.HomingRadius    = 5f;
                    homingModifier.AngularVelocity = 50f;
                }
                if (K1 == 1)
                {
                    LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsUni[K1]).gameObject, player);
                    gun.DefaultModule.projectiles[0].AdditionalScaleMultiplier *= 1.25f;
                }
                if (K1 == 2)
                {
                    LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsUni[K1]).gameObject, player);
                    Gun tripleCrossbow = ETGMod.Databases.Items["triple_crossbow"] as Gun;
                    var myEffect       = new GameActorSpeedEffect();
                    foreach (var projmod in tripleCrossbow.RawSourceVolley.projectiles)
                    {
                        foreach (var proj in projmod.projectiles)
                        {
                            if (proj != null)
                            {
                                myEffect.GetCopyOf(proj.speedEffect);
                                myEffect.duration = 10;
                            }
                        }
                    }
                    gun.DefaultModule.projectiles[0].AppliesSpeedModifier = true;
                    gun.DefaultModule.projectiles[0].speedEffect          = myEffect;
                    gun.DefaultModule.projectiles[0].SpeedApplyChance     = .4f;
                }
                if (K1 == 3)
                {
                    LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsUni[K1]).gameObject, player);
                    gun.SetBaseMaxAmmo(Convert.ToInt32((gun.GetBaseMaxAmmo() * 1.25f)));
                    gun.ammo = gun.GetBaseMaxAmmo();
                }
                int K2;
                if (T == 0)
                {
                    K2 = 1;
                    if (K2 == 0)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player);
                        gun.DefaultModule.projectiles[0].baseData.damage *= 1.35f;
                        Mono.DefaultModule.cooldownTime *= 1.25f;
                    }
                    if (K2 == 1)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player);
                        BounceProjModifier bounceProj = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <BounceProjModifier>();
                        bounceProj.numberOfBounces += 2;
                    }
                    if (K2 == 2)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player);
                        Mono.DefaultModule.shootStyle        = ProjectileModule.ShootStyle.Burst;
                        Mono.DefaultModule.burstShotCount    = 5;
                        Mono.DefaultModule.burstCooldownTime = .05f;
                        Mono.DefaultModule.cooldownTime      = .4f;
                    }
                    if (K2 == 3)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player);
                        gun.DefaultModule.projectiles[0].AppliesPoison     = true;
                        gun.DefaultModule.projectiles[0].healthEffect      = (PickupObjectDatabase.GetById(204) as BulletStatusEffectItem).HealthModifierEffect;
                        gun.DefaultModule.projectiles[0].PoisonApplyChance = .25f;
                    }
                }
                if (T == 1)
                {
                    K2 = UnityEngine.Random.Range(0, 4);
                    //Blazing, toxic, flare, burst
                    if (K2 == 0)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsFire[K2]).gameObject, player);
                        gun.DefaultModule.projectiles[0].OnDestruction += this.FirePool;
                    }
                    if (K2 == 1)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsFire[K2]).gameObject, player);
                        gun.DefaultModule.projectiles[0].OnDestruction   += this.VenomPool;
                        gun.DefaultModule.projectiles[0].DefaultTintColor = new Color(78 / 100f, 5 / 100f, 120 / 100f);
                        gun.DefaultModule.projectiles[0].HasDefaultTint   = true;
                    }
                    if (K2 == 2)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsFire[K2]).gameObject, player);
                        gun.DefaultModule.projectiles[0].OnDestruction += Flares;
                    }
                    if (K2 == 3)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsFire[K2]).gameObject, player);
                        Mono.DefaultModule.shootStyle        = ProjectileModule.ShootStyle.Burst;
                        Mono.DefaultModule.burstShotCount    = 5;
                        Mono.DefaultModule.burstCooldownTime = .2f;
                        Mono.DefaultModule.cooldownTime      = 1f;
                    }
                }
                if (T == 2)
                {
                    //High-caliber, ricochet, burst, poison
                    K2 = UnityEngine.Random.Range(0, 5);
                    if (K2 == 0)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player);
                        gun.DefaultModule.projectiles[0].baseData.damage *= 3f;
                        Mono.DefaultModule.cooldownTime *= 2f;
                    }
                    if (K2 == 0)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player);
                        BounceProjModifier bounceProj = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <BounceProjModifier>();
                        bounceProj.numberOfBounces += 2;
                    }
                    if (K2 == 0)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player);
                        Mono.DefaultModule.shootStyle        = ProjectileModule.ShootStyle.Burst;
                        Mono.DefaultModule.burstShotCount    = 5;
                        Mono.DefaultModule.burstCooldownTime = .05f;
                        Mono.DefaultModule.cooldownTime      = .4f;
                    }
                    if (K2 == 0)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player);
                        gun.DefaultModule.projectiles[0].AppliesPoison     = true;
                        gun.DefaultModule.projectiles[0].healthEffect      = (PickupObjectDatabase.GetById(204) as BulletStatusEffectItem).HealthModifierEffect;
                        gun.DefaultModule.projectiles[0].PoisonApplyChance = .25f;
                    }
                }
                if (T == 3)
                {
                    //Quick, power up, sidearm
                    K2 = UnityEngine.Random.Range(0, 4);
                    if (K2 == 0)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRail[K2]).gameObject, player);
                        Mono.reloadTime *= .6f;
                    }
                    if (K2 == 0)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRail[K2]).gameObject, player);
                        Mono.DefaultModule.projectiles[0].baseData.damage *= 1.25f;
                    }
                    if (K2 == 0)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRail[K2]).gameObject, player);
                        Mono.DefaultModule.numberOfShotsInClip             = 5;
                        Mono.DefaultModule.projectiles[0].baseData.damage *= .33f;
                    }
                }
                if (T == 4)
                {
                    //Critical, backshot, chain gun
                    K2 = UnityEngine.Random.Range(0, 4);
                    if (K2 == 0)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRapid[K2]).gameObject, player);
                        gun.PostProcessProjectile += Proj;
                    }
                    if (K2 == 0)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRapid[K2]).gameObject, player);
                        GunVolleyModificationItem.AddDuplicateOfBaseModule(gun.Volley, player, 1, 7.35f, 180);
                    }
                    if (K2 == 0)
                    {
                        LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRapid[K2]).gameObject, player);
                        Mono.SetBaseMaxAmmo(Mono.GetBaseMaxAmmo() * 2);
                        Mono.ammo = Mono.GetBaseMaxAmmo();
                        Mono.DefaultModule.cooldownTime = .001f;
                    }
                }
            }
        }