private void HandleGunReloaded(PlayerController player, Gun playerGun)
        {
            bool synergy = base.Owner.PlayerHasActiveSynergy("(6/2)+6 = Chamber has 9 Holes???");

            if (synergy)
            {
                bool flag = playerGun.ClipShotsRemaining == 0;
                if (flag)
                {
                    for (int counter = 0; counter < 3; counter++)
                    {
                        Projectile     projectile = ((Gun)ETGMod.Databases.Items[221]).DefaultModule.projectiles[0];
                        Vector3        vector     = player.unadjustedAimPoint - player.LockedApproximateSpriteCenter;
                        Vector3        vector2    = player.specRigidbody.UnitCenter;
                        GameObject     gameObject = SpawnManager.SpawnProjectile(projectile.gameObject, player.sprite.WorldCenter, Quaternion.Euler(0f, 0f, ((player.CurrentGun == null) ? 1.2f : player.CurrentGun.CurrentAngle) + UnityEngine.Random.Range(-45, 45)), true);
                        Projectile     component  = gameObject.GetComponent <Projectile>();
                        HomingModifier homing     = component.gameObject.AddComponent <HomingModifier>();
                        homing.HomingRadius    = 120;
                        homing.AngularVelocity = 120;
                        if (flag)
                        {
                            component.Owner   = player;
                            component.Shooter = player.specRigidbody;
                        }
                    }
                }
            }
        }
Example #2
0
 public override void PostProcessProjectile(Projectile projectile)
 {
     if (projectile && projectile.ProjectilePlayerOwner())
     {
         if (projectile.ProjectilePlayerOwner().PlayerHasActiveSynergy("The Bone Zone"))
         {
             HomingModifier homing = projectile.GetComponent <HomingModifier>();
             if (homing)
             {
                 homing.AngularVelocity *= 1.5f;
             }
             projectile.pierceMinorBreakables = true;
             PierceProjModifier piercing = projectile.GetComponent <PierceProjModifier>();
             if (piercing != null)
             {
                 piercing.penetration++;
             }
             else
             {
                 piercing             = projectile.gameObject.AddComponent <PierceProjModifier>();
                 piercing.penetration = 1;
             }
         }
     }
     base.PostProcessProjectile(projectile);
 }
Example #3
0
        private void Flares(Projectile projectile)
        {
            float            d      = 0;
            PlayerController player = gun.CurrentOwner as PlayerController;

            for (int i = 0; i < 4; i++)
            {
                Projectile projectile2 = ((Gun)ETGMod.Databases.Items[275]).DefaultModule.projectiles[0];
                GameObject gameObject  = SpawnManager.SpawnProjectile(projectile2.gameObject, projectile.sprite.WorldCenter, Quaternion.Euler(0f, 0f, d), true);
                Projectile component   = gameObject.GetComponent <Projectile>();
                if (component != null)
                {
                    component.Owner = player;
                    HomingModifier homingModifier = component.gameObject.AddComponent <HomingModifier>();
                    homingModifier.HomingRadius    = 100f;
                    homingModifier.AngularVelocity = 500f;
                    component.Shooter                   = player.specRigidbody;
                    component.baseData.speed            = 20f;
                    component.baseData.damage           = 2.5f;
                    component.AdditionalScaleMultiplier = .3120069f;
                    GameActorFireEffect fire = component.fireEffect;
                    fire.duration = .5f;
                }
                d += 90f;
            }
            d = 0;
        }
Example #4
0
 private void ReleaseElectric(Projectile sourceprojectile)
 {
     for (int counter = 0; counter < 3f; counter++)
     {
         PlayerController playerController  = this.gun.CurrentOwner as PlayerController;
         Projectile       sourceprojectile1 = ((Gun)ETGMod.Databases.Items[13]).DefaultModule.projectiles[0];
         GameObject       gameObject        = SpawnManager.SpawnProjectile(sourceprojectile.gameObject, sourceprojectile.sprite.WorldCenter, Quaternion.Euler(0f, 0f, (this.gun == null) ? 0f : (UnityEngine.Random.Range(0f, 359f))), true);
         Projectile       component         = gameObject.GetComponent <Projectile>();
         bool             flag  = component != null;
         bool             flag2 = flag;
         if (flag2)
         {
             BounceProjModifier bouncy = component.gameObject.AddComponent <BounceProjModifier>();
             bouncy.numberOfBounces = 3;
             component.Shooter      = this.gun.CurrentOwner.specRigidbody;
             component.SpawnedFromOtherPlayerProjectile = true;
             component.Shooter                   = this.gun.CurrentOwner.specRigidbody;
             component.Owner                     = playerController;
             component.Shooter                   = playerController.specRigidbody;
             component.baseData.speed            = 10f;
             component.baseData.damage           = 2f;
             component.AdditionalScaleMultiplier = .5f;
             component.SetOwnerSafe(this.gun.CurrentOwner, "Player");
             component.ignoreDamageCaps = true;
             HomingModifier homing = component.gameObject.AddComponent <HomingModifier>();
             homing.HomingRadius      = 45;
             homing.AngularVelocity   = 90;
             component.baseData.range = 35f;
         }
     }
 }
Example #5
0
 private void OnPostProcessProjectile(Projectile proj, float f)
 {
     if (this.addsHoming)
     {
         HomingModifier homingMod = proj.GetComponent <HomingModifier>();
         if (homingMod == null)
         {
             homingMod = proj.gameObject.AddComponent <HomingModifier>();
             homingMod.HomingRadius    = this.homingRadius;
             homingMod.AngularVelocity = this.homingVelocity;
         }
         else
         {
             homingMod.HomingRadius    += this.homingRadius;
             homingMod.AngularVelocity += this.homingVelocity;
         }
     }
     proj.baseData.damage *= this.damageMultiplier;
     proj.baseData.speed  *= this.speedMultiplier;
     if (this.penetratesDamageCaps)
     {
         proj.ignoreDamageCaps = true;
     }
     proj.BossDamageMultiplier *= this.bossDamageMultiplier;
     if (this.modifiesSpeed)
     {
         proj.ModifyVelocity += this.ModifySpeed;
     }
 }
Example #6
0
        private void staff2(Projectile sourceProjectile, SpeculativeRigidbody hitRigidbody, bool fatal)
        {
            bool flag1 = fatal;

            if (flag1)
            {
                PlayerController playerController1 = this.gun.CurrentOwner as PlayerController;
                for (int counter = 0; counter < UnityEngine.Random.Range(2f, 4f); counter++)
                {
                    PlayerController playerController = this.gun.CurrentOwner as PlayerController;
                    Projectile       projectile1      = ((Gun)ETGMod.Databases.Items[385]).DefaultModule.projectiles[0];
                    GameObject       gameObject       = SpawnManager.SpawnProjectile(sourceProjectile.gameObject, sourceProjectile.sprite.WorldCenter, Quaternion.Euler(0f, 0f, UnityEngine.Random.Range(0, 359)));
                    Projectile       component        = gameObject.GetComponent <Projectile>();
                    bool             flag             = component != null;
                    bool             flag2            = flag;
                    if (flag2)
                    {
                        component.SpawnedFromOtherPlayerProjectile = true;
                        component.Shooter                   = this.gun.CurrentOwner.specRigidbody;
                        component.Owner                     = playerController;
                        component.Shooter                   = playerController.specRigidbody;
                        component.baseData.speed            = 11.5f;
                        component.baseData.damage           = .7f;
                        component.AdditionalScaleMultiplier = 0.5f;
                        component.AdjustPlayerProjectileTint(Color.blue.WithAlpha(Color.blue.a / 50f), 50, 0f);
                        HomingModifier homing = sourceProjectile.gameObject.AddComponent <HomingModifier>();
                        homing.HomingRadius    = 60f;
                        homing.AngularVelocity = 300;
                        component.SetOwnerSafe(this.gun.CurrentOwner, "Player");
                        component.ignoreDamageCaps = true;
                    }
                }
                for (int counter = 0; counter < UnityEngine.Random.Range(1f, 3f); counter++)
                {
                    PlayerController playerController = this.gun.CurrentOwner as PlayerController;
                    Projectile       projectile1      = ((Gun)ETGMod.Databases.Items[377]).DefaultModule.projectiles[0];
                    GameObject       gameObject       = SpawnManager.SpawnProjectile(sourceProjectile.gameObject, sourceProjectile.sprite.WorldCenter, Quaternion.Euler(0f, 0f, UnityEngine.Random.Range(0, 359)));
                    Projectile       component        = gameObject.GetComponent <Projectile>();
                    bool             flag             = component != null;
                    bool             flag2            = flag;
                    if (flag2)
                    {
                        component.SpawnedFromOtherPlayerProjectile = true;
                        component.Shooter                   = this.gun.CurrentOwner.specRigidbody;
                        component.Owner                     = playerController;
                        component.Shooter                   = playerController.specRigidbody;
                        component.baseData.speed            = 40.5f;
                        component.baseData.damage           = 1.4f;
                        component.AdditionalScaleMultiplier = 1.1f;
                        component.AdjustPlayerProjectileTint(Color.blue.WithAlpha(Color.blue.a / 50f), 50, 0f);
                        BounceProjModifier bouncy = component.gameObject.AddComponent <BounceProjModifier>();
                        bouncy.numberOfBounces = 4;
                        component.SetOwnerSafe(this.gun.CurrentOwner, "Player");
                        component.ignoreDamageCaps = true;
                    }
                }
            }
        }
Example #7
0
 private void Aiming(Projectile projectile, float effectChanceScalar)
 {
     if (!Owner.CurrentGun.HasShootStyle(ProjectileModule.ShootStyle.Beam))
     {
         HomingModifier homingModifier = projectile.gameObject.AddComponent <HomingModifier>();
         homingModifier.HomingRadius    = 100f;
         homingModifier.AngularVelocity = 4000f;
     }
 }
Example #8
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;
        }
Example #9
0
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Oxygun", "oxygun");

            Game.Items.Rename("outdated_gun_mods:oxygun", "nn:oxygun");
            gun.gameObject.AddComponent <Oxygun>();
            gun.SetShortDescription("Bullets Not Included");
            gun.SetLongDescription("This standard-issue colony multi-tool seems to be stuck on the 'offensive' setting." + "\n\nUpon finding it, there seemed to be no shots left inside.");

            gun.SetupSprite(null, "oxygun_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.SemiAutomatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 0.8f;
            gun.DefaultModule.cooldownTime           = 0.65f;
            gun.muzzleFlashEffects.type              = VFXPoolType.None;
            gun.DefaultModule.numberOfShotsInClip    = 5;
            gun.barrelOffset.transform.localPosition = new Vector3(1.93f, 0.62f, 0f);
            gun.SetBaseMaxAmmo(300);
            gun.ammo     = 0;
            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.4f;
            projectile.baseData.range       *= 10f;

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

            homing.AngularVelocity = 120f;
            homing.HomingRadius    = 1000f;

            projectile.SetProjectileSpriteRight("oxygun_projectile", 17, 7, false, tk2dBaseSprite.Anchor.MiddleCenter, 17, 7);

            projectile.transform.parent = gun.barrelOffset;

            gun.DefaultModule.ammoType       = GameUIAmmoType.AmmoType.CUSTOM;
            gun.DefaultModule.customAmmoType = "Repetitron Bullets";

            gun.quality = PickupObject.ItemQuality.C;
            gun.encounterTrackable.EncounterGuid = "this is the Oxygun";
            ETGMod.Databases.Items.Add(gun, null, "ANY");
            OxygunID = gun.PickupObjectId;
        }
Example #10
0
        private void OnGuonHitByBullet(SpeculativeRigidbody myRigidbody, PixelCollider myCollider, SpeculativeRigidbody other, PixelCollider otherCollider)
        {
            if (Owner && this.m_extantOrbital)
            {
                if (other.projectile && other.projectile.Owner is PlayerController)
                {
                    if (!other.projectile.GetComponent <BuffedByMaroonGuonStone>())
                    {
                        float damageMult = 1.5f;
                        if (Owner.PlayerHasActiveSynergy("Marooner Guon Stone"))
                        {
                            damageMult = 2f;
                        }
                        other.projectile.baseData.damage *= damageMult;
                        other.projectile.RuntimeUpdateScale(1.2f);
                        other.projectile.gameObject.AddComponent <BuffedByMaroonGuonStone>();
                        other.projectile.AdjustPlayerProjectileTint(ExtendedColours.maroon, 2);

                        ExtremelySimpleStatusEffectBulletBehaviour StatusEffect = other.projectile.gameObject.GetOrAddComponent <ExtremelySimpleStatusEffectBulletBehaviour>();
                        if (Owner.PlayerHasActiveSynergy("Toxic Core"))
                        {
                            StatusEffect.usesPoisonEffect = true;
                        }
                        if (Owner.PlayerHasActiveSynergy("Charming Core"))
                        {
                            StatusEffect.usesCharmEffect = true;
                        }
                        if (Owner.PlayerHasActiveSynergy("Burning Core"))
                        {
                            StatusEffect.usesFireEffect = true;
                        }

                        if (Owner.PlayerHasActiveSynergy("Explosive Core"))
                        {
                            ExplosiveModifier Splodey = other.projectile.gameObject.GetOrAddComponent <ExplosiveModifier>();
                            Splodey.doExplosion   = true;
                            Splodey.explosionData = StaticExplosionDatas.explosiveRoundsExplosion;
                        }
                        if (Owner.PlayerHasActiveSynergy("Hungry Core"))
                        {
                            HungryProjectileModifier hungry = other.projectile.gameObject.GetOrAddComponent <HungryProjectileModifier>();
                        }
                        if (Owner.PlayerHasActiveSynergy("Smart Core"))
                        {
                            HomingModifier homing = other.projectile.gameObject.GetOrAddComponent <HomingModifier>();
                        }
                    }
                    PhysicsEngine.SkipCollision = true;
                }
                else if (other.projectile && !(other.projectile.Owner is PlayerController))
                {
                    PhysicsEngine.SkipCollision = true;
                }
            }
        }
        private void PostProcessProjectile(Projectile proj, float effectChanceScalar)
        {
            PlayerController player = this.Owner;

            if (player.CurrentGun.PickupObjectId == 519 || player.CurrentGun.PickupObjectId == 169 || player.CurrentGun.PickupObjectId == 597)
            {
                HomingModifier projhomingModifier = proj.gameObject.AddComponent <HomingModifier>();
                projhomingModifier.HomingRadius    = 10f;
                projhomingModifier.AngularVelocity = 750f;
            }
        }
Example #12
0
            // Token: 0x06000120 RID: 288 RVA: 0x0000AC74 File Offset: 0x00008E74
            private void Attack()
            {
                bool flag = this.Owner == null;

                if (flag)
                {
                    this.Owner = this.m_aiActor.GetComponent <PointZero.PointZeroBehaviour>().Owner;
                }
                float num = -1f;

                List <AIActor> activeEnemies = this.Owner.CurrentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.All);
                bool           flag2         = activeEnemies == null | activeEnemies.Count <= 0;

                if (!flag2)
                {
                    AIActor nearestEnemy = this.GetNearestEnemy(activeEnemies, this.m_aiActor.sprite.WorldCenter, out num, null);
                    bool    flag3        = nearestEnemy && num < 10f;
                    if (flag3)
                    {
                        bool flag4 = this.IsInRange(nearestEnemy);
                        if (flag4)
                        {
                            bool flag5 = !nearestEnemy.IsHarmlessEnemy && nearestEnemy.IsNormalEnemy && !nearestEnemy.healthHaver.IsDead && nearestEnemy != this.m_aiActor;
                            if (flag5)
                            {
                                Vector2        unitCenter  = this.m_aiActor.specRigidbody.UnitCenter;
                                Vector2        unitCenter2 = nearestEnemy.specRigidbody.HitboxPixelCollider.UnitCenter;
                                float          z           = BraveMathCollege.Atan2Degrees((unitCenter2 - unitCenter).normalized);
                                Projectile     projectile  = ((Gun)ETGMod.Databases.Items[576]).DefaultModule.projectiles[0];
                                GameObject     gameObject  = SpawnManager.SpawnProjectile(projectile.gameObject, this.m_aiActor.sprite.WorldCenter, Quaternion.Euler(0f, 0f, z + UnityEngine.Random.Range(-60, 60)), true);
                                Projectile     component   = gameObject.GetComponent <Projectile>();
                                HomingModifier homing      = component.gameObject.AddComponent <HomingModifier>();
                                homing.HomingRadius    = 300;
                                homing.AngularVelocity = 300;
                                PierceProjModifier spook = component.gameObject.AddComponent <PierceProjModifier>();
                                spook.penetration = 10;
                                BounceProjModifier bouncy = component.gameObject.AddComponent <BounceProjModifier>();
                                bouncy.numberOfBounces = 10;
                                bool flag6 = component != null;
                                bool flag7 = flag6;
                                if (flag7)
                                {
                                    {
                                        component.baseData.damage = 4f;
                                    }

                                    component.baseData.force     = .5f;
                                    component.collidesWithPlayer = false;
                                }
                            }
                        }
                    }
                }
            }
Example #13
0
        public void PostProcessProjectile(Projectile proj, float f)
        {
            HomingModifier homingModifier = proj.gameObject.GetComponent <HomingModifier>();

            if (homingModifier == null)
            {
                homingModifier = proj.gameObject.AddComponent <HomingModifier>();
                homingModifier.HomingRadius    = 25;
                homingModifier.AngularVelocity = 250;
            }
        }
Example #14
0
        public static void Init()
        {
            //The name of the item
            string itemName = "Cardinals Mitre";

            //Refers to an embedded png in the project. Make sure to embed your resources! Google it
            string resourceName = "NevernamedsItems/Resources/cardinalsmitre_icon";

            //Create new GameObject
            GameObject obj = new GameObject(itemName);

            //Add a PassiveItem component to the object
            var item = obj.AddComponent <CardinalsMitre>();

            //Adds a tk2dSprite component to the object and adds your texture to the item sprite collection
            ItemBuilder.AddSpriteToObject(itemName, resourceName, obj);

            //Ammonomicon entry variables
            string shortDesc = "Ex Cathedra";
            string longDesc  = "Fires a homing bullet upon reloading." + "\n\nImbued with power by a Bishop of the True Gun, hats like these are worn by Kaliber-devout Cardinals.";

            //Adds the item to the gungeon item list, the ammonomicon, the loot table, etc.
            //Do this after ItemBuilder.AddSpriteToObject!
            ItemBuilder.SetupItem(item, shortDesc, longDesc, "nn");


            //Set the rarity of the item
            item.quality = PickupObject.ItemQuality.C;

            //MITRE PROJECTILES
            MitreProjectile = UnityEngine.Object.Instantiate <Projectile>((PickupObjectDatabase.GetById(86) as Gun).DefaultModule.projectiles[0]);
            MitreProjectile.gameObject.SetActive(false);
            FakePrefab.MarkAsFakePrefab(MitreProjectile.gameObject);
            UnityEngine.Object.DontDestroyOnLoad(MitreProjectile);
            MitreProjectile.baseData.damage *= 5f;
            MitreProjectile.baseData.speed  *= 0.4f;
            MitreProjectile.SetProjectileSpriteRight("mitreproj_1", 22, 22, true, tk2dBaseSprite.Anchor.MiddleCenter, 22, 22);

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

            homing.AngularVelocity = 80f;
            homing.HomingRadius    = 1000f;

            MitreProjectile.AnimateProjectile(new List <string> {
                "mitreproj_1",
                "mitreproj_2",
                "mitreproj_3",
            }, 10, true, new List <IntVector2> {
                new IntVector2(22, 22), //1
                new IntVector2(20, 20), //2
                new IntVector2(20, 20), //3
            }, AnimateBullet.ConstructListOfSameValues(true, 3), AnimateBullet.ConstructListOfSameValues(tk2dBaseSprite.Anchor.MiddleCenter, 3), AnimateBullet.ConstructListOfSameValues(true, 3), AnimateBullet.ConstructListOfSameValues(false, 3),
                                              AnimateBullet.ConstructListOfSameValues <Vector3?>(null, 3), AnimateBullet.ConstructListOfSameValues <IntVector2?>(null, 3), AnimateBullet.ConstructListOfSameValues <IntVector2?>(null, 3), AnimateBullet.ConstructListOfSameValues <Projectile>(null, 3));
        }
        public static void Init()
        {
            string        name          = "Dark Prince";
            string        resourcePath  = "NevernamedsItems/Resources/Companions/DarkPrince/darkprince_icon";
            GameObject    gameObject    = new GameObject();
            CompanionItem companionItem = gameObject.AddComponent <CompanionItem>();

            ItemBuilder.AddSpriteToObject(name, resourcePath, gameObject);
            string shortDesc = "Wicked Heir";
            string longDesc  = "This young Gunjurer is the unlikely heir to a vast magical empire, operating from beyond the curtain... he is also very impressionable, with his dark magics able to be put to fantastic use.";

            companionItem.SetupItem(shortDesc, longDesc, "nn");
            companionItem.quality       = PickupObject.ItemQuality.S;
            companionItem.CompanionGuid = DarkPrince.guid;
            DarkPrince.BuildPrefab();

            companionItem.AddToSubShop(ItemBuilder.ShopType.Cursula);

            DarkPrinceProjectile = (PickupObjectDatabase.GetById(56) as Gun).DefaultModule.projectiles[0].gameObject.InstantiateAndFakeprefab();
            Projectile darkProj = DarkPrinceProjectile.GetComponent <Projectile>();

            darkProj.baseData.damage = 1;
            darkProj.baseData.speed  = 100;
            darkProj.SetProjectileSpriteRight("laserwelder_proj", 10, 3, true, tk2dBaseSprite.Anchor.MiddleCenter, 10, 3);
            ProjWeaknessModifier weakness = darkProj.gameObject.AddComponent <ProjWeaknessModifier>();

            weakness.UsesSeparateStatsForBosses = true;
            weakness.isDarkPrince = true;
            HomingModifier homin = darkProj.gameObject.AddComponent <HomingModifier>();

            homin.AngularVelocity = 400;
            homin.HomingRadius    = 200;

            List <string> BeamAnimPaths = new List <string>()
            {
                "NevernamedsItems/Resources/TrailSprites/darkprince_trail_001",
                "NevernamedsItems/Resources/TrailSprites/darkprince_trail_002",
                "NevernamedsItems/Resources/TrailSprites/darkprince_trail_003",
                "NevernamedsItems/Resources/TrailSprites/darkprince_trail_004",
                "NevernamedsItems/Resources/TrailSprites/darkprince_trail_005",
            };

            darkProj.AddTrailToProjectile(
                "NevernamedsItems/Resources/TrailSprites/darkprince_trail_001",
                new Vector2(21, 1),
                new Vector2(0, 10),
                BeamAnimPaths, 10,
                null, 20,
                0.1f,
                0.1f,
                -1,
                true
                );
        }
        public override void PostProcessProjectile(Projectile projectile)
        {
            base.PostProcessProjectile(projectile);
            PlayerController player = gun.CurrentOwner as PlayerController;

            if (player.PlayerHasActiveSynergy("Discworld"))
            {
                HomingModifier homing = projectile.gameObject.AddComponent <HomingModifier>();
                homing.AngularVelocity = 250f;
                homing.HomingRadius    = 250f;
            }
        }
 private void PostProcessProjectile(Projectile proj, float f)
 {
     if (base.m_owner.CurrentGoop && base.m_owner.CurrentGoop == goopDefs[3])
     {
         HomingModifier homingModifier = proj.gameObject.GetComponent <HomingModifier>();
         if (homingModifier == null)
         {
             homingModifier = proj.gameObject.AddComponent <HomingModifier>();
             homingModifier.HomingRadius    = 15;
             homingModifier.AngularVelocity = 100;
         }
     }
 }
Example #18
0
        public override void PostProcessProjectile(Projectile projectile)
        {
            base.PostProcessProjectile(projectile);
            PlayerController playerController = projectile.Owner as PlayerController;

            if (playerController.PlayerHasActiveSynergy("Undying") && UnityEngine.Random.value <= 0.1f)
            {
                projectile.AdjustPlayerProjectileTint(Color.yellow, 1);
                HomingModifier homing = projectile.gameObject.AddComponent <HomingModifier>();
                homing.AngularVelocity = 250f;
                homing.HomingRadius    = 250f;
            }
        }
Example #19
0
        public override void PostProcessProjectile(Projectile projectile)
        {
            PlayerController player = (GameManager.Instance.PrimaryPlayer);
            bool             flagA  = player.PlayerHasActiveSynergy("Armageddon");

            if (flagA)
            {
                HomingModifier homing = projectile.gameObject.AddComponent <HomingModifier>();
                homing.HomingRadius    = 250f;
                homing.AngularVelocity = 250f;
            }
            projectile.OnDestruction += this.kerboomer;
        }
 public void PostProcessProjectile(Projectile proj, float f)
 {
     if (this.m_isCurrentlyActive)
     {
         HomingModifier homingModifier = proj.gameObject.GetComponent <HomingModifier>();
         if (homingModifier == null)
         {
             homingModifier = proj.gameObject.AddComponent <HomingModifier>();
             homingModifier.HomingRadius    = 100f;
             homingModifier.AngularVelocity = 1000f;
         }
     }
 }
Example #21
0
 private void OnReloadedGun(PlayerController player, Gun gun)
 {
     if (gun.ClipShotsRemaining == 0)
     {
         Projectile projectile = ((Gun)ETGMod.Databases.Items[598]).DefaultModule.projectiles[0];
         GameObject obj1       = SpawnManager.SpawnProjectile(projectile.gameObject, player.sprite.WorldCenter, Quaternion.Euler(0f, 0f, (player.CurrentGun == null) ? 0f : player.FacingDirection), true);
         Projectile proj1      = obj1.GetComponent <Projectile>();
         proj1.Owner           = base.gameActor;
         proj1.Shooter         = player.specRigidbody;
         proj1.baseData.damage = 50f;
         HomingModifier homingModifier = proj1.gameObject.GetOrAddComponent <HomingModifier>();
         homingModifier.HomingRadius = 100f;
         proj1.baseData.speed       *= 0.75f;
     }
 }
        private void PostProcessThrownGun(Projectile obj)
        {
            PlayerController player = this.Owner;

            AkSoundEngine.PostEvent("Play_WPN_unicornhorn_shot_01", base.gameObject);
            HomingModifier homingModifier = obj.gameObject.GetComponent <HomingModifier>();

            homingModifier = obj.gameObject.AddComponent <HomingModifier>();
            homingModifier.HomingRadius    = 10f;
            homingModifier.AngularVelocity = 1000f;
            obj.pierceMinorBreakables      = true;
            obj.IgnoreTileCollisionsFor(0.01f);
            obj.OnBecameDebris += HandleReturnLikeBoomerang;
            obj.OnBecameDebris  = (Action <DebrisObject>)Delegate.Combine(obj.OnBecameDebris, new Action <DebrisObject>(this.HandleBlankOnHit));
        }
Example #23
0
 private void PostProcessProjectile(Projectile obj, float effectChanceScalar)
 {
     if (weaponTypes.BoltWeapons.Contains(Owner.CurrentGun.PickupObjectId))
     {
         HomingModifier homingModifier = obj.gameObject.GetComponent <HomingModifier>();
         if (homingModifier == null)
         {
             homingModifier = obj.gameObject.AddComponent <HomingModifier>();
             homingModifier.HomingRadius    = 0f;
             homingModifier.AngularVelocity = 0f;
         }
         float num = 1f;
         homingModifier.HomingRadius    += this.homingRadius * num;
         homingModifier.AngularVelocity += this.homingAngularVelocity * num;
     }
 }
Example #24
0
        public override void PostProcessProjectile(Projectile projectile)
        {
            base.PostProcessProjectile(projectile);
            PlayerController playerController = projectile.Owner as PlayerController;

            if (playerController.PlayerHasActiveSynergy("Even Worse Choices"))
            {
                projectile.baseData.damage *= 2f;
            }
            if (playerController.PlayerHasActiveSynergy("Discworld"))
            {
                HomingModifier homing = projectile.gameObject.AddComponent <HomingModifier>();
                homing.AngularVelocity = 50f;
                homing.HomingRadius    = 50f;
            }
        }
Example #25
0
        // Token: 0x0600013F RID: 319 RVA: 0x0000D468 File Offset: 0x0000B668
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Gunthemimic", "Gunthemimic");

            Game.Items.Rename("outdated_gun_mods:gunthemimic", "bny:gunthemimic");
            gun.gameObject.AddComponent <Gunthemimic>();
            GunExt.SetShortDescription(gun, "Jealous Weapon");
            GunExt.SetLongDescription(gun, "Infinite ammo. Does not reveal secret walls. Grows more powerful with each room cleared?\n\nThis totally trustful gun has gained sentience. As with all intelligent weapons, he should be treated with res- hold on, what?");
            GunExt.SetupSprite(gun, null, "Gunthemimic_idle_001", 8);
            GunExt.SetAnimationFPS(gun, gun.shootAnimation, 32);
            GunExt.SetAnimationFPS(gun, gun.reloadAnimation, 10);
            GunExt.SetAnimationFPS(gun, gun.idleAnimation, 2);
            GunExt.AddProjectileModuleFrom(gun, PickupObjectDatabase.GetById(338) as Gun, true, false);
            gun.DefaultModule.ammoCost = 1;
            //gun.barrelOffset.transform.localPosition = new Vector3(1f, 0.3125f, 0f);
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.SemiAutomatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 0.9f;
            gun.DefaultModule.cooldownTime        = 0.125f;
            gun.muzzleFlashEffects.type           = VFXPoolType.None;
            gun.DefaultModule.numberOfShotsInClip = 20;
            gun.SetBaseMaxAmmo(700);
            gun.DefaultModule.angleVariance = 7f;
            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.muzzleFlashEffects           = (PickupObjectDatabase.GetById(333) as Gun).muzzleFlashEffects;
            projectile.baseData.damage       = 11f;
            projectile.baseData.speed       *= 0.9f;
            projectile.pierceMinorBreakables = true;
            HomingModifier homing = projectile.gameObject.AddComponent <HomingModifier>();

            homing.HomingRadius    = 25f;
            homing.AngularVelocity = 5;
            PierceProjModifier orAddComponent = projectile.gameObject.GetOrAddComponent <PierceProjModifier>();

            orAddComponent.penetratesBreakables = true;
            projectile.transform.parent         = gun.barrelOffset;
            projectile.shouldRotate             = true;
            gun.quality = PickupObject.ItemQuality.S;
            gun.encounterTrackable.EncounterGuid = "NOM NOM NOM NOM NOM NOM NOM NOM NOM NOM NOM  BLALALALALALALAAA";
            ETGMod.Databases.Items.Add(gun, null, "ANY");
            Gunthemimic.GunthemimicID = gun.PickupObjectId;
        }
        private void PostProcessProjectile(Projectile obj, float effectChanceScalar)
        {
            HomingModifier homingModifier = obj.gameObject.GetComponent <HomingModifier>();

            if (homingModifier == null)
            {
                homingModifier = obj.gameObject.AddComponent <HomingModifier>();
                homingModifier.HomingRadius    = 0f;
                homingModifier.AngularVelocity = 0f;
            }
            float num = 1f;

            homingModifier.HomingRadius    += this.homingRadius * num;
            homingModifier.AngularVelocity += this.homingAngularVelocity * num;

            obj.AdjustPlayerProjectileTint(this.TintColor, this.TintPriority, 0f);
        }
        // Token: 0x0600029A RID: 666 RVA: 0x000185BC File Offset: 0x000167BC
        private void SpawnProjectile(Projectile proj, Vector3 spawnPosition, float zRotation, SpeculativeRigidbody collidedRigidbody = null)
        {
            GameObject gameObject = SpawnManager.SpawnProjectile(proj.gameObject, spawnPosition, Quaternion.Euler(0f, 0f, zRotation), true);
            Projectile component  = gameObject.GetComponent <Projectile>();
            bool       flag       = component;

            if (flag)
            {
                component.SpawnedFromOtherPlayerProjectile = true;
                PlayerController playerController = this.m_projectile.Owner as PlayerController;
                component.baseData.damage *= playerController.stats.GetStatValue(PlayerStats.StatType.Damage);
                component.baseData.speed  *= .150f;
                playerController.DoPostProcessProjectile(component);
                HomingModifier homing = component.gameObject.AddComponent <HomingModifier>();
                homing.HomingRadius    = 25;
                homing.AngularVelocity = 12;
            }
        }
Example #28
0
 public override void PostProcessProjectile(Projectile projectile)
 {
     if (projectile.Owner && projectile.Owner is PlayerController)
     {
         if (UnityEngine.Random.value <= 0.33f && (projectile.Owner as PlayerController).PlayerHasActiveSynergy("Song of my people"))
         {
             projectile.AdjustPlayerProjectileTint(ExtendedColours.charmPink, 2);
             projectile.statusEffectsToApply.Add(StaticStatusEffects.charmingRoundsEffect);
         }
         if ((projectile.Owner as PlayerController).PlayerHasActiveSynergy("Life, The Universe, and Everything"))
         {
             projectile.baseData.damage *= 2f;
             HomingModifier homing = projectile.gameObject.GetOrAddComponent <HomingModifier>();
             homing.HomingRadius = 1000f;
         }
     }
     base.PostProcessProjectile(projectile);
 }
Example #29
0
 private void DaggerSprayKill(PlayerController player)
 {
     for (int i = 0; i < 4; i++)
     {
         Projectile projectile2 = ((Gun)ETGMod.Databases.Items[377]).DefaultModule.projectiles[0];
         GameObject gameObject  = SpawnManager.SpawnProjectile(projectile2.gameObject, Owner.CurrentGun.transform.position, Quaternion.Euler(0f, 0f, (base.Owner.CurrentGun == null) ? 0f : 0f + (i * 90)), true);
         Projectile component   = gameObject.GetComponent <Projectile>();
         if (component != null)
         {
             component.Owner = base.Owner;
             HomingModifier homingModifier = component.gameObject.AddComponent <HomingModifier>();
             homingModifier.HomingRadius    = 100f;
             homingModifier.AngularVelocity = 500f;
             component.Shooter         = base.Owner.specRigidbody;
             component.baseData.speed  = 25f;
             component.baseData.damage = DaggerTrue;
         }
     }
 }
Example #30
0
 private void DoTheZzapp(PlayerController usingPlayer)
 {
     for (int counter = 0; counter < 8; counter++)
     {
         Projectile     projectile = ((Gun)ETGMod.Databases.Items[13]).DefaultModule.projectiles[0];
         Vector3        vector     = usingPlayer.unadjustedAimPoint - usingPlayer.LockedApproximateSpriteCenter;
         Vector3        vector2    = usingPlayer.specRigidbody.UnitCenter;
         GameObject     gameObject = SpawnManager.SpawnProjectile(projectile.gameObject, usingPlayer.sprite.WorldCenter, Quaternion.Euler(0f, 0f, UnityEngine.Random.Range(0, 359)));
         Projectile     component  = gameObject.GetComponent <Projectile>();
         HomingModifier homing     = component.gameObject.AddComponent <HomingModifier>();
         homing.HomingRadius    = 120;
         homing.AngularVelocity = 120;
         BounceProjModifier bouncy = component.gameObject.AddComponent <BounceProjModifier>();
         bouncy.numberOfBounces = 3;
         {
             component.Owner   = usingPlayer;
             component.Shooter = usingPlayer.specRigidbody;
         }
     }
 }