private void OnHitEnemy(Projectile bullet, SpeculativeRigidbody enemy, bool fatal)
 {
     if (enemy && enemy.healthHaver && fatal)
     {
         float procChance = 0.1f;
         if (owner && owner.PlayerHasActiveSynergy("Blood For The Blood God"))
         {
             procChance = 0.2f;
         }
         if (UnityEngine.Random.value <= procChance)
         {
             UnityEngine.Object.Instantiate <GameObject>(EasyVFXDatabase.TeleporterPrototypeTelefragVFX, enemy.UnitCenter, Quaternion.identity);
             if (owner && owner.PlayerHasActiveSynergy("Blood For The Blood God"))
             {
                 GoopDefinition          Blood = EasyGoopDefinitions.GenerateBloodGoop(15, Color.red, 20);
                 DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(Blood);
                 goopManagerForGoopType.TimedAddGoopCircle(enemy.UnitCenter, 3, 0.5f, false);
             }
             if (owner && owner.PlayerHasActiveSynergy("BLOOD IS FUEL"))
             {
                 if (Vector2.Distance(owner.sprite.WorldCenter, enemy.sprite.WorldCenter) <= 4)
                 {
                     owner.healthHaver.ApplyHealing(0.5f);
                 }
             }
         }
     }
 }
        public static void Add()
        {
            Gun gun = ETGMod.Databases.Items.NewGun("Uterine Polyp", "uterinepolyp");

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

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

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

            gun.SetAnimationFPS(gun.shootAnimation, 15);

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


            //GUN STATS
            gun.DefaultModule.ammoCost      = 1;
            gun.DefaultModule.shootStyle    = ProjectileModule.ShootStyle.SemiAutomatic;
            gun.DefaultModule.sequenceStyle = ProjectileModule.ProjectileSequenceStyle.Random;
            gun.reloadTime = 0.5f;
            gun.DefaultModule.cooldownTime           = 0.2f;
            gun.DefaultModule.numberOfShotsInClip    = 3;
            gun.barrelOffset.transform.localPosition = new Vector3(1.25f, 0.43f, 0f);
            gun.SetBaseMaxAmmo(200);
            gun.gunClass = GunClass.PISTOL;
            //BULLET STATS
            Projectile projectile = UnityEngine.Object.Instantiate <Projectile>(gun.DefaultModule.projectiles[0]);

            projectile.gameObject.SetActive(false);
            FakePrefab.MarkAsFakePrefab(projectile.gameObject);
            UnityEngine.Object.DontDestroyOnLoad(projectile);
            gun.DefaultModule.projectiles[0] = projectile;
            projectile.transform.parent      = gun.barrelOffset;
            projectile.baseData.speed       *= 0.9f;
            projectile.baseData.damage       = 15;
            projectile.SetProjectileSpriteRight("uterinepolyp_projectile", 7, 7, true, tk2dBaseSprite.Anchor.MiddleCenter, 6, 6);
            GoopModifier gooper = projectile.gameObject.AddComponent <GoopModifier>();

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

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

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

            UterinePolypID = gun.PickupObjectId;
        }
Exemplo n.º 3
0
 private void OnHitEnemy(Projectile me, SpeculativeRigidbody enemy, bool fatal)
 {
     if (enemy && fatal)
     {
         if (enemy.healthHaver)
         {
             float bloodDPS = enemy.healthHaver.GetMaxHealth();
             bloodDPS *= 0.5f;
             GoopDefinition          Blood = EasyGoopDefinitions.GenerateBloodGoop(bloodDPS, Color.red, 10);
             DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(Blood);
             goopManagerForGoopType.TimedAddGoopCircle(enemy.UnitCenter, 3, 0.5f, false);
         }
     }
 }