Пример #1
0
 private void PostProcessProjectile(Projectile projectile, float Chance)
 {
     if (BoxOTools.BasicRandom(0.7f) && !CoolAsIce)
     {
         ShootPlagueShit();
     }
 }
Пример #2
0
 private void PostProcessProjectile(Projectile projectile, float Chance)
 {
     if (BoxOTools.BasicRandom(Owner.PlayerHasActiveSynergy("Mahoguny Sapling") ? 0.6f : 0.75f) && CoolAsIce && Owner)
     {
         ShootLeafShit();
     }
 }
Пример #3
0
 private void PostProcessBeamChanceTick(BeamController beamController)
 {
     if (BoxOTools.BasicRandom(Owner.PlayerHasActiveSynergy("Mahoguny Sapling") ? 0.6f : 0.75f) && CoolAsIce)
     {
         ShootLeafShit();
     }
 }
Пример #4
0
        public void PostProcessProjectile(Projectile projectile, float chungo)
        {
            PlayerController player = base.Owner;
            float            Chance = 0.8f;

            if (player.HasGun(7))
            {
                Chance -= 0.05f;
            }
            if (BoxOTools.BasicRandom(Chance) && !CoolAsIce)
            {
                CoolAsIce = true;
                StartCoroutine(StartCooldown());
                if (BoxOTools.BasicRandom(0.98f) && !SharkMFs)
                {
                    SharkMFs = true;
                    StartCoroutine(SharkCooldown());
                    player.HandleProjectile(25f, (player.HasGun(359)) ? 110 : 90f, 359, true, Vector2.zero, true);
                }
                else
                {
                    player.HandleProjectile(20f, (player.HasGun(7)) ? 15 : 10, 7, false, Vector2.zero, true);
                }
            }
        }
Пример #5
0
 private void PostProcessBeamChanceTick(BeamController beamController)
 {
     if (BoxOTools.BasicRandom(0.7f) && !CoolAsIce)
     {
         ShootPlagueShit();
     }
 }
Пример #6
0
 void Event(Chest chest, PlayerController player)
 {
     if (player.carriedConsumables.KeyBullets > 0 && BoxOTools.BasicRandom(0.5f))
     {
         player.carriedConsumables.KeyBullets--;
     }
 }
Пример #7
0
 private void PostProcessProjectile(Projectile sourceProjectile, float effectChanceScalar)
 {
     try
     {
         if (sourceProjectile.GetComponent <HomingModifier>() == null)
         {
             BoomerangEffect boom = sourceProjectile.gameObject.AddComponent <BoomerangEffect>();
             boom.m_speed                     = sourceProjectile.baseData.speed / 10;
             boom.startingDamage              = sourceProjectile.baseData.damage;
             sourceProjectile.baseData.range *= 10;
         }
         else
         {
             sourceProjectile.baseData.damage *= 1.3f;
         }
         if (BoxOTools.BasicRandom(0.9f) && Owner.PlayerHasActiveSynergy("Suicide King"))
         {
             Owner.HandleProjectile(40, 1, 39, false, Vector2.zero);
         }
         if (BoxOTools.BasicRandom(0.8f) && Owner.PlayerHasActiveSynergy("Boomerang Bros"))
         {
             Owner.HandleProjectile(20, 6, 448, false, Vector2.zero);
         }
     }
     catch (Exception ex)
     {
         ETGModConsole.Log(ex.Message, false);
     }
     this.damageToDo = sourceProjectile.baseData.damage;
 }
Пример #8
0
        private void PostProcessBeamChanceTick(BeamController beamController)
        {
            PlayerController player = base.Owner;
            float            Chance = 0.9f;

            if (player.HasGun(7))
            {
                Chance -= 0.05f;
            }
            if (BoxOTools.BasicRandom(Chance) && !CoolAsIce)
            {
                CoolAsIce = true;
                StartCoroutine(StartCooldown());
                if (BoxOTools.BasicRandom(0.97f) && !SharkMFs)
                {
                    SharkMFs = true;
                    StartCoroutine(SharkCooldown());
                    player.HandleProjectile(25f, (player.HasGun(359)) ? 110 : 95f, 359, true, Vector2.zero, true);
                }
                else
                {
                    player.HandleProjectile(20f, (player.HasGun(7)) ? 20 : 10, 7, false, Vector2.zero, true);
                }
            }
        }
Пример #9
0
 private void OnHitEnemy(Projectile arg1, SpeculativeRigidbody arg2, bool arg3)
 {
     try
     {
         if (arg2 != null && arg2.aiActor != null && Owner != null)
         {
             if (BoxOTools.BasicRandom(.5f))
             {
                 if (arg2.aiActor.GetEffect("weezer") != null)
                 {
                     GameActorUnweaveEffect unweave = arg2.aiActor.GetEffect("weezer") as GameActorUnweaveEffect;
                     unweave.duration += 5;
                     unweave.IncreaseIfAmountNotHit(arg2.aiActor);
                 }
                 else
                 {
                     GameActorUnweaveEffect unweave = weezer;
                     arg2.aiActor.ApplyEffect(unweave);
                 }
             }
         }
     } catch (Exception eror)
     {
         eror.ToString().Log();
     }
 }
Пример #10
0
        public static void DoubleKeys(Action <KeyBulletPickup, PlayerController> acshon, KeyBulletPickup key, PlayerController player)
        {
            acshon(key, player);
            foreach (PassiveItem passives in player.passiveItems)
            {
                if (passives is KeyDoubler && BoxOTools.BasicRandom(0.5f))
                {
                    player.carriedConsumables.KeyBullets += 1;
                    player.BloopItemAboveHead(itemator.sprite);


                    if (player.PlayerHasActiveSynergy("Twice the Pride"))
                    {
                        if (player.characterIdentity != PlayableCharacters.Robot)
                        {
                            player.healthHaver.ApplyHealing(1f);
                        }
                        else
                        {
                            player.healthHaver.Armor += 1;
                        }
                        AkSoundEngine.PostEvent("Play_OBJ_heart_heal_01", passives.gameObject);
                        player.PlayEffectOnActor(ResourceCache.Acquire("Global VFX/vfx_healing_sparkles_001") as GameObject, Vector3.zero);
                    }
                }
            }
        }
Пример #11
0
 private void OnEnemyDamaged(float damage, bool fatal, HealthHaver enemy)
 {
     if (enemy.specRigidbody != null && enemy.aiActor != null && base.Owner != null && enemy != null)
     {
         if (fatal)
         {
             if (BoxOTools.BasicRandom(0.97f))
             {
                 if (BoxOTools.BasicRandom(0.99f) && !base.Owner.HasPickupID(580) && !base.Owner.HasPickupID(641))
                 {
                     if (BoxOTools.BasicRandom(0.05f) && !base.Owner.HasPickupID(580))
                     {
                         LootEngine.SpawnItem(PickupObjectDatabase.GetById(580).gameObject, enemy.specRigidbody.UnitCenter, Vector2.zero, 1f, false, true, false);
                     }
                     else if (!base.Owner.HasPickupID(641))
                     {
                         LootEngine.SpawnItem(PickupObjectDatabase.GetById(641).gameObject, enemy.specRigidbody.UnitCenter, Vector2.zero, 1f, false, true, false);
                     }
                 }
                 else
                 {
                     LootEngine.SpawnItem(PickupObjectDatabase.GetById(127).gameObject, enemy.specRigidbody.UnitCenter, Vector2.zero, 1f, false, true, false);
                 }
             }
         }
     }
 }
Пример #12
0
 private void PostProcessProjectile(Projectile projectile, float arg2)
 {
     if (projectile && BoxOTools.BasicRandom(0.85f))
     {
         projectile.AdjustPlayerProjectileTint(Color.red, 5);
         projectile.OnDestruction += PushinPeopleToTheGround;
     }
 }
Пример #13
0
 private void Player_PostProcessProjectile(Projectile projectile, float arg2)
 {
     if (projectile && BoxOTools.BasicRandom(0.9f))
     {
         projectile.baseData.damage *= 2;
         projectile.AdjustPlayerProjectileTint(Color.yellow, 5);
     }
 }
Пример #14
0
 private void PostProcessProjectile(Projectile projectile, float chungo)
 {
     if (BoxOTools.BasicRandom(base.Owner.CurrentGun.PickupObjectId == 7 ? 0.4f : 0.9f) && !CoolAsIce && projectile)
     {
         CoolAsIce = true;
         projectile.AdjustPlayerProjectileTint(Color.blue, 5);
         projectile.OnDestruction += Wave;
     }
 }
Пример #15
0
 public void AmmoInator(PlayerController player, HealthHaver healed)
 {
     if (healed && healed.specRigidbody && player)
     {
         if (BoxOTools.BasicRandom(0.825f) && Shells < Mathf.FloorToInt(55 * player.stats.GetStatValue(PlayerStats.StatType.AmmoCapacityMultiplier)) && player.HasGun(Gungeon.Game.Items["psm:wastelanders_shotgun"].PickupObjectId))
         {
             LootEngine.SpawnItem(PickupObjectDatabase.GetById(NuclearAmmoPickup.id).gameObject, healed.specRigidbody.UnitCenter, Vector2.zero, 1f, true, true);
         }
     }
 }
Пример #16
0
 private void OnEnemyDamaged(Projectile arg1, SpeculativeRigidbody arg2, bool arg3)
 {
     if (arg2 && arg2.healthHaver && arg2.aiActor)
     {
         if ((Owner.PlayerHasActiveSynergy("Mirror Cannon") || BoxOTools.BasicRandom(0.9f)) && !arg2.healthHaver.IsBoss)
         {
             arg2.aiActor.gameActor.ApplyEffect(EnemyDebuff, 1f, null);
         }
     }
 }
Пример #17
0
 private void OnHitEnemy(Projectile arg1, SpeculativeRigidbody arg2, bool arg3)
 {
     if (arg2 != null && arg2.aiActor != null && Owner != null && arg2.healthHaver && arg2.healthHaver.IsVulnerable)
     {
         if (BoxOTools.BasicRandom(0.97f))
         {
             LootEngine.SpawnItem(PickupObjectDatabase.GetById(68).gameObject, arg2.UnitCenter, Vector2.zero, 1f, false, true, true);
         }
     }
 }
Пример #18
0
 public static void Healing(Action <HealthPickup, PlayerController> acshon, HealthPickup key, PlayerController player)
 {
     acshon(key, player);
     foreach (PassiveItem passives in player.passiveItems)
     {
         if (passives is CodexUmbra && BoxOTools.BasicRandom(.5f))
         {
             GiveRandomItem(player);
         }
     }
 }
Пример #19
0
 public static void VeryBlank(Action <SilencerItem, PlayerController> acshon, SilencerItem key, PlayerController player)
 {
     acshon(key, player);
     foreach (PassiveItem passives in player.passiveItems)
     {
         if (passives is CodexUmbra && BoxOTools.BasicRandom(.5f))
         {
             GiveRandomItem(player);
         }
     }
 }
Пример #20
0
 public static void VeryShady(Action <KeyBulletPickup, PlayerController> acshon, KeyBulletPickup key, PlayerController player)
 {
     acshon(key, player);
     foreach (PassiveItem passives in GameManager.Instance.GetActivePlayerClosestToPoint(key.specRigidbody.UnitCenter, true).passiveItems)
     {
         if (passives is CodexUmbra && BoxOTools.BasicRandom(.5f))
         {
             GiveRandomItem(player);
         }
     }
 }
Пример #21
0
 public static void PigHook(Action <CompanionController, PlayerController> orig, CompanionController companion, PlayerController owner)
 {
     orig(companion, owner);
     if (companion && companion.specRigidbody && companion.name.StartsWith("Pig") && owner.PlayerHasActiveSynergy("Oink"))
     {
         if (BoxOTools.BasicRandom(0.4f))
         {
             LootEngine.SpawnCurrency(companion.specRigidbody.UnitCenter, 2);
         }
     }
 }
Пример #22
0
 // the old "I don't lnow how to balance my items" version
 private void OnEnemyDamaged(float damage, bool fatal, HealthHaver enemy)
 {
     if (enemy.specRigidbody != null && enemy.aiActor != null && base.Owner != null)
     {
         if (fatal)
         {
             if (BoxOTools.BasicRandom(.985f) && !GameStatsManager.Instance.IsRainbowRun)
             {
                 GameManager.Instance.RewardManager.SpawnTotallyRandomItem(enemy.specRigidbody.UnitCenter);
             }
         }
     }
 }
Пример #23
0
 private void OnEnemyDamaged(float damage, bool fatal, HealthHaver enemy)
 {
     if (!Owner.PlayerHasActiveSynergy("REANIMATE"))
     {
         if (fatal && enemy && enemy.aiActor && enemy.aiActor.EnemyGuid != "699cd24270af4cd183d671090d8323a1")
         {
             if (Owner.CurrentRoom != null)
             {
                 if (BoxOTools.BasicRandom(0.975f) && DoneKill)
                 {
                     try
                     {
                         AIActor aiactor = BoxOTools.SummonAtRandomPosition("699cd24270af4cd183d671090d8323a1", Owner);
                         if (base.Owner.PlayerHasActiveSynergy("keysight"))
                         {
                             aiactor.IsHarmlessEnemy = true;
                             aiactor.BecomeBlackPhantom();
                         }
                         if (!base.Owner.PlayerHasActiveSynergy("keysight"))
                         {
                             aiactor.PreventBlackPhantom = true;
                         }
                         aiactor.HandleReinforcementFallIntoRoom(0f);
                         DoneKill = false;
                     } catch (Exception Error)
                     {
                         ETGModConsole.Log(Error.Message);
                     }
                 }
             }
         }
     }
     else
     {
         if (BoxOTools.BasicRandom(0.8f) && enemy && enemy.aiActor && Owner.CurrentRoom != null && fatal)
         {
             if (BoxOTools.BasicRandom(0.3f) || base.Owner.PlayerHasActiveSynergy("keysight"))
             {
                 AIActor aiactor = BoxOTools.SummonAtRandomPosition("336190e29e8a4f75ab7486595b700d4a", Owner);
                 BoxOTools.AddPermanentCharm(aiactor);
                 aiactor.HandleReinforcementFallIntoRoom(0f);
             }
             else
             {
                 AIActor aiactor = BoxOTools.SummonAtRandomPosition("95ec774b5a75467a9ab05fa230c0c143", Owner);
                 BoxOTools.AddPermanentCharm(aiactor);
                 aiactor.HandleReinforcementFallIntoRoom(0f);
             }
         }
     }
 }
Пример #24
0
 public void OnHit(Projectile proj, SpeculativeRigidbody target, bool flag)
 {
     if (proj && proj.specRigidbody)
     {
         target?.aiActor?.ParentRoom?.BetterDoToEnemiesInRadius(proj.specRigidbody.UnitCenter, 6, delegate(AIActor enemy)
         {
             if (BoxOTools.BasicRandom(0.5f))
             {
                 GameActorHealthEffect poisonEffect = Gungeon.Game.Items["irradiated_lead"].GetComponent <BulletStatusEffectItem>().HealthModifierEffect;
                 enemy.ApplyEffect(poisonEffect);
             }
         });
     }
 }
Пример #25
0
 private void OnHitEnemy(Projectile arg1, SpeculativeRigidbody arg2, bool arg3)
 {
     if (arg2 != null && arg2.aiActor != null && Owner != null)
     {
         if (BoxOTools.BasicRandom(.85f))
         {
             GameActorWitherEffect witherEffect = wither;
             if (Owner.PlayerHasActiveSynergy("Withered away"))
             {
                 wither.duration *= 2;
             }
             arg2.aiActor.ApplyEffect(witherEffect, 1f, null);
         }
     }
 }
Пример #26
0
 private void ItemGiver(PlayerController player)
 {
     if (BoxOTools.BasicRandom(.91f) && player && player.specRigidbody && !player.CurrentRoom.PlayerHasTakenDamageInThisRoom)
     {
         if (Owner.PlayerHasActiveSynergy("Lucky Bird"))
         {
             GameManager.Instance.RewardManager.SpawnTotallyRandomItem(player.specRigidbody.UnitCenter, ItemQuality.A, ItemQuality.S);
         }
         else
         {
             GameManager.Instance.RewardManager.SpawnTotallyRandomItem(player.specRigidbody.UnitCenter);
         }
         LootEngine.DoDefaultItemPoof(player.specRigidbody.UnitCenter);
     }
 }
Пример #27
0
 public void MoreItems(AIActor actor)
 {
     if (actor && actor.healthHaver)
     {
         float ChanceToActivate = 0.5f;
         if (Owner.characterIdentity != PlayableCharacters.Robot || Owner.healthHaver.GetMaxHealth() <= 0)
         {
             ChanceToActivate = Owner.healthHaver.GetCurrentHealthPercentage();
         }
         if (BoxOTools.BasicRandom(ChanceToActivate))
         {
             float BaseHealth = actor.healthHaver.GetMaxHealth();
             actor.healthHaver.SetHealthMaximum(BaseHealth * 0.5f, null, true);
         }
     }
 }
Пример #28
0
        private void OnEnemyDamaged(float damage, bool fatal, HealthHaver enemy)
        {
            PlayerController user = base.LastOwner;

            if (fatal)
            {
                if (BoxOTools.BasicRandom(0.985f))
                {
                    if (enemy != null && enemy.specRigidbody != null && enemy.aiActor != null && base.LastOwner != null)
                    {
                        switch (pick3)
                        {
                        case 1:
                            LootEngine.SpawnItem(PickupObjectDatabase.GetById(67).gameObject, enemy.specRigidbody.UnitCenter, Vector2.zero, 1f, false, true, false);
                            break;

                        case 2:
                            LootEngine.SpawnItem(PickupObjectDatabase.GetById(565).gameObject, enemy.specRigidbody.UnitCenter, Vector2.zero, 1f, false, true, false);
                            break;

                        case 3:
                            StatModifier damageboost = new StatModifier
                            {
                                statToBoost = PlayerStats.StatType.Damage,
                                amount      = 0.01f,
                                modifyType  = StatModifier.ModifyMethod.ADDITIVE
                            };
                            user.ownerlessStatModifiers.Add(damageboost);
                            user.stats.RecalculateStats(user, true, false);
                            AkSoundEngine.PostEvent("Play_OBJ_power_up_01", base.gameObject);
                            break;

                        case 4:
                            IntVector2?intVector = new IntVector2?(this.LastOwner.CurrentRoom.GetRandomVisibleClearSpot(1, 1));
                            var        BulletKin = EnemyDatabase.GetOrLoadByGuid("a446c626b56d4166915a4e29869737fd");
                            if (enemy.aiActor.EnemyGuid != "a446c626b56d4166915a4e29869737fd")
                            {
                                AIActor aiactor = AIActor.Spawn(BulletKin.aiActor, intVector.Value, GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(intVector.Value), true, AIActor.AwakenAnimationType.Awaken, true);
                                aiactor.HandleReinforcementFallIntoRoom(0f);
                            }
                            break;
                        }
                    }
                }
            }
        }
Пример #29
0
 private void ChargeActives(PlayerController obj)
 {
     if (obj && obj.activeItems.Count > 0)
     {
         foreach (PlayerItem item in obj.activeItems)
         {
             if (item.IsOnCooldown)
             {
                 item.CurrentDamageCooldown = Mathf.Max(0, item.CurrentDamageCooldown - 150);
                 if (BoxOTools.BasicRandom(0.66f))
                 {
                     item.CurrentRoomCooldown = Mathf.Max(0, item.CurrentRoomCooldown - 1);
                 }
             }
         }
     }
 }
Пример #30
0
 private void Player_PostProcessProjectile(Projectile arg1, float arg2)
 {
     if (Owner && coinProjectile && coinProjectile.gameObject && BoxOTools.BasicRandom(0.9f) && Owner.PlayerHasActiveSynergy("Keeper of the Coin"))
     {
         GameObject coinObject = SpawnManager.SpawnProjectile(LemonPig.coinProjectile.gameObject, Owner.CurrentGun.barrelOffset.position, Quaternion.Euler(0, 0, (Owner.CurrentGun == null) ? 0f : Owner.CurrentGun.CurrentAngle));
         Projectile projectile = coinObject.gameObject.GetComponent <Projectile>();
         if (projectile)
         {
             projectile.Owner   = Owner;
             projectile.Shooter = Owner.specRigidbody;
             projectile.gameObject.AddComponent(new HomingModifier()
             {
                 HomingRadius = 720, AngularVelocity = 180
             });
         }
         AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", gameObject);
     }
 }