Exemplo n.º 1
0
 protected override void Update()
 {
     base.Update();
     if (this.m_pickedUp && this.m_owner != null)
     {
         if (this.m_owner.PlayerHasActiveSynergy("#GIANTS_PLAYTOYLLETS"))
         {
             int id = -1;
             foreach (PassiveItem passive in this.m_owner.passiveItems)
             {
                 if (passive is StraightBullets)
                 {
                     id = passive.PickupObjectId;
                     break;
                 }
             }
             if (id > 0)
             {
                 this.m_owner.RemovePassiveItem(id);
             }
             LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(SpecialItemIds.GiantsPlaytoyllets).gameObject, this.m_owner);
             this.m_owner.RemovePassiveItem(this.PickupObjectId);
         }
     }
 }
        private void GiveItem(PlayerController player)
        {
            m_Interacted = true;
            PickupObject itemToGive = PickupObjectDatabase.GetById(ItemID);

            if (itemToGive)
            {
                LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(ItemID).gameObject, player);
                if (itemToGive is Gun)
                {
                    AkSoundEngine.PostEvent("Play_OBJ_weapon_pickup_01", gameObject);
                }
                else
                {
                    AkSoundEngine.PostEvent("Play_OBJ_item_pickup_01", gameObject);
                }
                GameObject VFXObject = Instantiate((GameObject)ResourceCache.Acquire("Global VFX/VFX_Item_Pickup"));
                if (VFXObject)
                {
                    tk2dSprite component = VFXObject.GetComponent <tk2dSprite>();
                    if (component)
                    {
                        component.PlaceAtPositionByAnchor(m_ItemSprite.WorldCenter, tk2dBaseSprite.Anchor.MiddleCenter);
                        component.HeightOffGround = 6f;
                        component.UpdateZDepth();
                    }
                }
                if (m_ParentRoom != null)
                {
                    m_ParentRoom.DeregisterInteractable(this);
                }
                Destroy(m_SubSpriteObject);
                Destroy(this);
            }
        }
Exemplo n.º 3
0
 private void GiveMarineLoadout(PlayerController user)
 {
     //Give Military Training
     if (!user.HasPickupID(354))
     {
         PickupObject CharacterPassive = PickupObjectDatabase.GetById(354);
         LastOwner.AcquirePassiveItemPrefabDirectly(CharacterPassive as PassiveItem);
     }
     //Give Marine Sidearm
     if (!user.HasPickupID(86) && !user.HasPickupID(809))
     {
         Gun CharacterStarterGun = (PickupObjectDatabase.GetById(86) as Gun);
         LastOwner.inventory.AddGunToInventory(CharacterStarterGun, true);
     }
     //Give Supply Drop
     if (!user.HasPickupID(77))
     {
         PickupObject CharacterActive = PickupObjectDatabase.GetById(77);
         LootEngine.SpawnItem(CharacterActive.gameObject, LastOwner.specRigidbody.UnitCenter, Vector2.left, 1f, false, true, false);
     }
     //Give 1 Armour
     LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(120).gameObject, LastOwner);
     foreach (Gun gun in user.inventory.AllGuns)
     {
         if (gun.GetComponent <Paraglocks>() != null)
         {
             gun.GetComponent <Paraglocks>().idsBuffedByAssociatedDissasociationsSynergy.Add(86);
             gun.GetComponent <Paraglocks>().idsBuffedByAssociatedDissasociationsSynergy.Add(809);
         }
     }
 }
Exemplo n.º 4
0
 protected override void DoEffect(PlayerController user)
 {
     this.random = UnityEngine.Random.Range(0.0f, 1.0f);
     if (random <= 0.95f)
     {
         AkSoundEngine.PostEvent("Play_VO_lichA_chuckle_01", base.gameObject);
         AkSoundEngine.PostEvent("Play_WPN_Life_Orb_Blast_01", base.gameObject);
         AkSoundEngine.PostEvent("Play_BOSS_spacebaby_charge_01", base.gameObject);
         ApplyStat(user, PlayerStats.StatType.Damage, UnityEngine.Random.Range(1.5f, 0.6f), StatModifier.ModifyMethod.MULTIPLICATIVE);
         ApplyStat(user, PlayerStats.StatType.MoneyMultiplierFromEnemies, UnityEngine.Random.Range(1.5f, 0.6f), StatModifier.ModifyMethod.MULTIPLICATIVE);
         ApplyStat(user, PlayerStats.StatType.ReloadSpeed, UnityEngine.Random.Range(1.4f, 0.5f), StatModifier.ModifyMethod.MULTIPLICATIVE);
         ApplyStat(user, PlayerStats.StatType.RateOfFire, UnityEngine.Random.Range(1.5f, 0.6f), StatModifier.ModifyMethod.MULTIPLICATIVE);
         ApplyStat(user, PlayerStats.StatType.DodgeRollDistanceMultiplier, UnityEngine.Random.Range(1.25f, 0.75f), StatModifier.ModifyMethod.MULTIPLICATIVE);
         ApplyStat(user, PlayerStats.StatType.DodgeRollSpeedMultiplier, UnityEngine.Random.Range(1.25f, 0.75f), StatModifier.ModifyMethod.MULTIPLICATIVE);
         ApplyStat(user, PlayerStats.StatType.DamageToBosses, UnityEngine.Random.Range(1.5f, 0.6f), StatModifier.ModifyMethod.MULTIPLICATIVE);
         ApplyStat(user, PlayerStats.StatType.AmmoCapacityMultiplier, UnityEngine.Random.Range(1.5f, 0.6f), StatModifier.ModifyMethod.MULTIPLICATIVE);
         ApplyStat(user, PlayerStats.StatType.AdditionalClipCapacityMultiplier, UnityEngine.Random.Range(1.5f, 0.6f), StatModifier.ModifyMethod.MULTIPLICATIVE);
         ApplyStat(user, PlayerStats.StatType.EnemyProjectileSpeedMultiplier, UnityEngine.Random.Range(1.25f, 0.75f), StatModifier.ModifyMethod.MULTIPLICATIVE);
         ApplyStat(user, PlayerStats.StatType.GlobalPriceMultiplier, UnityEngine.Random.Range(1.25f, 0.75f), StatModifier.ModifyMethod.MULTIPLICATIVE);
         ApplyStat(user, PlayerStats.StatType.PlayerBulletScale, UnityEngine.Random.Range(1.25f, 0.75f), StatModifier.ModifyMethod.MULTIPLICATIVE);
     }
     else
     {
         PickupObject var = Gungeon.Game.Items["bny:ancient_enigma"];
         LootEngine.GivePrefabToPlayer(var.gameObject, user);
     }
 }
        public new void ForceSteal(PlayerController player)
        {
            this.pickedUp = true;
            LootEngine.GivePrefabToPlayer(this.item.gameObject, player);
            if (this.m_parentShop != null)
            {
                this.m_parentShop.PurchaseItem(this, false, false);
            }
            if (this.m_baseParentShop != null)
            {
                this.m_baseParentShop.PurchaseItem(this, false, false);
            }
            StatModifier statModifier = new StatModifier();

            statModifier.statToBoost = PlayerStats.StatType.Curse;
            statModifier.amount      = 1f;
            statModifier.modifyType  = StatModifier.ModifyMethod.ADDITIVE;
            player.ownerlessStatModifiers.Add(statModifier);
            player.stats.RecalculateStats(player, false, false);
            player.HandleItemStolen(this);
            this.m_baseParentShop.NotifyStealSucceeded();
            player.IsThief = true;
            GameStatsManager.Instance.RegisterStatChange(TrackedStats.MERCHANT_ITEMS_STOLEN, 1f);
            if (!this.m_baseParentShop.AttemptToSteal())
            {
                player.DidUnstealthyAction();
                this.m_baseParentShop.NotifyStealFailed();
            }
            GameUIRoot.Instance.DeregisterDefaultLabel(base.transform);
            AkSoundEngine.PostEvent("Play_OBJ_item_purchase_01", base.gameObject);
        }
Exemplo n.º 6
0
 private void OnEnemyDamaged(float damage, bool fatal, HealthHaver enemy)
 {
     if (enemy.aiActor && enemy.IsBoss && fatal == true)
     {
         if (Owner.characterIdentity == PlayableCharacters.Robot)
         {
             LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(120).gameObject, Owner);
             Owner.PlayEffectOnActor(ResourceCache.Acquire("Global VFX/vfx_healing_sparkles_001") as GameObject, Vector3.zero, true, false, false);
             AkSoundEngine.PostEvent("Play_OBJ_heart_heal_01", base.gameObject);
             if (Owner.HasPickupID(314))
             {
                 LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(120).gameObject, Owner);
             }
             if (Owner.HasPickupID(259))
             {
                 LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(120).gameObject, Owner);
             }
         }
         else if (Owner.characterIdentity != PlayableCharacters.Robot)
         {
             float amountToHeal = 1;
             if (Owner.HasPickupID(259))
             {
                 amountToHeal = 1.5f;
             }
             Owner.healthHaver.ApplyHealing(amountToHeal);
             Owner.PlayEffectOnActor(ResourceCache.Acquire("Global VFX/vfx_healing_sparkles_001") as GameObject, Vector3.zero, true, false, false);
             AkSoundEngine.PostEvent("Play_OBJ_heart_heal_01", base.gameObject);
             if (Owner.HasPickupID(314))
             {
                 LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(120).gameObject, Owner);
             }
         }
     }
 }
Exemplo n.º 7
0
        private void RollForlootz(PlayerController obj)
        {
            int bighead = UnityEngine.Random.Range(1, 101);

            if (bighead == 2)
            {
                LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(CakeIDs.PocketRedChest).gameObject, Owner);
            }
            if (bighead == 3)
            {
                LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(CakeIDs.PocketGreenChest).gameObject, Owner);
            }
            if (bighead == 4)
            {
                LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(CakeIDs.PocketBrownChest).gameObject, Owner);
            }
            if (bighead == 5)
            {
                LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(CakeIDs.PocketBlueChest).gameObject, Owner);
            }
            if (bighead == 1)
            {
                LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(CakeIDs.PocketBlackChest).gameObject, Owner);
            }
        }
Exemplo n.º 8
0
        protected override void DoEffect(PlayerController user)
        {
            AkSoundEngine.PostEvent("Play_OBJ_dice_bless_01", base.gameObject);
            user.PlayEffectOnActor(ResourceCache.Acquire("Global VFX/VFX_Healing_Sparkles_001") as GameObject, Vector3.zero, true, false, false);

            // give items
            PickupObject byId = PickupObjectDatabase.GetById(264);

            user.AcquirePassiveItemPrefabDirectly(byId as PassiveItem);
            LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(264).gameObject, user);

            user.healthHaver.FullHeal();

            // curse cleansing
            StatModifier statModifier = new StatModifier
            {
                amount      = Mathf.Min((float)(PlayerStats.GetTotalCurse() * -1)),
                modifyType  = StatModifier.ModifyMethod.ADDITIVE,
                statToBoost = PlayerStats.StatType.Curse
            };

            user.ownerlessStatModifiers.Add(statModifier);

            user.stats.RecalculateStats(user, true, false);
        }
Exemplo n.º 9
0
 private void PickStats()
 {
     if (hasPicked)
     {
         return;
     }
     else
     {
         PlayableCharacters characterIdentity = Owner.characterIdentity;
         Effect             effect            = BraveUtility.RandomElement(statEffects);
         statEffects.Remove(effect);
         if (effect.modifyMethod == StatModifier.ModifyMethod.MULTIPLICATIVE)
         {
             AddStat(effect.statToEffect, effect.amount, StatModifier.ModifyMethod.MULTIPLICATIVE);
         }
         else
         {
             if (effect.statToEffect == PlayerStats.StatType.Health && characterIdentity == PlayableCharacters.Robot)
             {
                 LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(120).gameObject, Owner);
             }
             AddStat(effect.statToEffect, effect.amount, StatModifier.ModifyMethod.ADDITIVE);
         }
         Owner.stats.RecalculateStats(Owner, true, false);
         hasPicked = true;
     }
 }
Exemplo n.º 10
0
        private void OnItemPurchased(PlayerController player, ShopItemController obj)
        {
            AkSoundEngine.PostEvent("Play_WPN_radgun_cool_01", base.gameObject);


            AddStat(PlayerStats.StatType.Coolness, 0.5f);

            if (base.Owner.HasPickupID(22))
            {
                AddStat(PlayerStats.StatType.Coolness, 0.5f);
            }

            if (base.Owner.HasPickupID(35))
            {
                LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(70).gameObject, player);
            }

            if (base.Owner.HasPickupID(148))
            {
                float value = UnityEngine.Random.Range(0.0f, 1.0f);
                if (value < 0.5)
                {
                    LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(127).gameObject, player);
                }
            }

            player.stats.RecalculateStats(player, true, false);
        }
Exemplo n.º 11
0
 private void ResetCooldown(PlayerController player, ShopItemController shop)
 {
     base.ClearCooldowns();
     if (player.HasPickupID(170) || player.HasPickupID(278))
     {
         LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(73).gameObject, player);
     }
 }
Exemplo n.º 12
0
 private void AWholeNewWorld(PlayerController player)
 {
     ThanksGame = !ThanksGame;
     if (ThanksGame && player)
     {
         LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetRandomGun().gameObject, player);
     }
 }
Exemplo n.º 13
0
 private void AWholeNewWorld(PlayerController player)
 {
     ThanksGame = !ThanksGame;
     if (ThanksGame && player)
     {
         LootEngine.GivePrefabToPlayer(LootEngine.GetItemOfTypeAndQuality <PickupObject>(ItemQuality.B, GameManager.Instance.RewardManager.ItemsLootTable, true).gameObject, player);
     }
 }
        private IEnumerator EatEnemy(AIActor targetEnemy)
        {
            float      elapsed      = 0f;
            float      duration     = 0.5f;
            Vector3    startPos     = targetEnemy.transform.position;
            Vector3    finalOffset  = sprite.WorldCenter - startPos.XY();
            tk2dSprite targetSprite = targetEnemy.GetComponentInChildren <tk2dSprite>();

            if (targetEnemy.behaviorSpeculator)
            {
                targetEnemy.behaviorSpeculator.enabled = false;
            }
            RoomHandler m_ParentRoom = targetEnemy.GetAbsoluteParentRoom();

            if (m_ParentRoom != null)
            {
                m_ParentRoom.DeregisterEnemy(targetEnemy);
            }
            // Destroy(targetEnemy);
            // Destroy(targetEnemy.specRigidbody);
            targetEnemy.specRigidbody.CollideWithOthers = false;
            spriteAnimator.PlayForDuration("baby_dragun_weak_eat", -1f, "baby_dragun_weak_idle", false);
            AkSoundEngine.PostEvent("Play_NPC_BabyDragun_Munch_01", gameObject);
            while (elapsed < duration)
            {
                elapsed += BraveTime.DeltaTime;
                if (!targetSprite || !targetSprite.transform)
                {
                    m_currentlyEatingEnemy = false; yield break;
                }
                targetSprite.transform.localScale = Vector3.Lerp(Vector3.one, new Vector3(0.01f, 0.01f, 1f), elapsed / duration);
                targetSprite.transform.position   = Vector3.Lerp(startPos, startPos + finalOffset, elapsed / duration);
                yield return(null);
            }
            if (!targetSprite || !targetSprite.transform)
            {
                m_currentlyEatingEnemy = false; yield break;
            }
            yield return(null);

            // Destroy(targetSprite.gameObject);
            m_ParentRoom.DeregisterEnemy(targetEnemy);
            targetEnemy.EraseFromExistence(true);
            m_enemiesEaten++;
            if (m_enemiesEaten >= RequiredEnemies)
            {
                while (spriteAnimator.IsPlaying("baby_dragun_weak_eat"))
                {
                    yield return(null);
                }
                LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(ItemID).gameObject, GameManager.Instance.BestActivePlayer);
                Destroy(gameObject);
            }
            yield return(null);

            m_currentlyEatingEnemy = false;
            yield break;
        }
Exemplo n.º 15
0
        public IEnumerator Give(PlayerController player)
        {
            yield return(new WaitForSeconds(0.1f));

            EncounterTrackable.SuppressNextNotification = true;
            LootEngine.GivePrefabToPlayer((ETGMod.Databases.Items["Soul Vessel"] as PlayerItem).gameObject, player);
            player.RemovePassiveItem(this.PickupObjectId);
            yield break;
        }
Exemplo n.º 16
0
 private void Check4MoreDustShop(PlayerController player, ShopItemController shop)
 {
     this.random = UnityEngine.Random.Range(0.0f, 1.0f);
     if (random <= 0.4f)
     {
         PickupObject var = Gungeon.Game.Items["bny:a_speck_of_dust"];
         LootEngine.GivePrefabToPlayer(var.gameObject, player);
     }
 }
Exemplo n.º 17
0
        // Token: 0x060006D4 RID: 1748 RVA: 0x0003AD10 File Offset: 0x00038F10
        public static void Accept(PlayerController player, GameObject npc)
        {
            Chester.storedPlayer = player;
            player.ownerlessStatModifiers.Add(Toolbox.SetupStatModifier(PlayerStats.StatType.AdditionalBlanksPerFloor, 0, StatModifier.ModifyMethod.MULTIPLICATIVE));
            player.carriedConsumables.InfiniteKeys = true;

            LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(CakeIDs.DevilContract).gameObject, player);
            return;
        }
Exemplo n.º 18
0
        public override void Pickup(PlayerController player)
        {
            this.CanBeDropped = false;
            base.Pickup(player);
            Tools.Print($"Player picked up {this.DisplayName}");
            PickupObject var = Gungeon.Game.Items["bny:cool_staff"];

            LootEngine.GivePrefabToPlayer(var.gameObject, player);
        }
Exemplo n.º 19
0
        private void LoveLeech(Vector2 idk)
        {
            float f = .05f;

            if (UnityEngine.Random.value < f)
            {
                LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(73).gameObject, player);
            }
        }
Exemplo n.º 20
0
        private void EvaluateStats(PlayerController player, bool force = false)
        {
            this.currentKeys  = player.carriedConsumables.KeyBullets;
            this.hasInfiniKey = (base.Owner.HasPickupID(166));
            noKey             = (player.carriedConsumables.KeyBullets == 0 && !base.Owner.HasPickupID(166));
            oneKey            = (player.carriedConsumables.KeyBullets == 1 && !base.Owner.HasPickupID(166));
            twoKeys           = (player.carriedConsumables.KeyBullets == 2 && !base.Owner.HasPickupID(166));
            threeKeys         = (player.carriedConsumables.KeyBullets >= 3 && !base.Owner.HasPickupID(166));
            infiniKey         = (base.Owner.HasPickupID(166));
            this.shouldRestat = (this.currentKeys != this.lastKeys) | (this.hadInfiniKey != hasInfiniKey);
            bool flag = !this.shouldRestat && !force;

            if (!flag)
            {
                if (oneKey)
                {
                    RemoveStat(PlayerStats.StatType.Damage);
                    AddStat(PlayerStats.StatType.Damage, 1.1f, StatModifier.ModifyMethod.MULTIPLICATIVE);
                    this.lastKeys = this.currentKeys;
                    hadInfiniKey  = false;
                }

                if (twoKeys)
                {
                    RemoveStat(PlayerStats.StatType.Damage);
                    AddStat(PlayerStats.StatType.Damage, 1.2f, StatModifier.ModifyMethod.MULTIPLICATIVE);
                    this.lastKeys = this.currentKeys;
                    hadInfiniKey  = false;
                }

                if (threeKeys)
                {
                    RemoveStat(PlayerStats.StatType.Damage);
                    AddStat(PlayerStats.StatType.Damage, 1.3f, StatModifier.ModifyMethod.MULTIPLICATIVE);
                    this.lastKeys = this.currentKeys;
                    hadInfiniKey  = false;
                }

                if (infiniKey)
                {
                    AkSoundEngine.PostEvent("Play_OBJ_goldenlock_open_01", this.gameObject);
                    LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetByName("Deadly Bullets").gameObject, player);
                    player.RemovePassiveItem(LockBulletsPickupID);
                    hadInfiniKey = true;
                }

                if (noKey)
                {
                    RemoveStat(PlayerStats.StatType.Damage);
                    this.lastKeys = this.currentKeys;
                    hadInfiniKey  = false;
                }

                player.stats.RecalculateStats(player, true, false);
            }
        }
Exemplo n.º 21
0
 private void Doublinator(PlayerController arg1, ShopItemController arg2)
 {
     if (arg1 && arg2 && arg2.item)
     {
         if (arg2.item.quality != ItemQuality.COMMON && arg2.item.quality != ItemQuality.SPECIAL && arg2.item.quality != ItemQuality.EXCLUDED && BoxOTools.BasicRandom(0.4f))
         {
             LootEngine.GivePrefabToPlayer(BoxOTools.GetTotallyRandomItem(arg2.item.quality, false).gameObject, arg1);
         }
     }
 }
Exemplo n.º 22
0
        public override void Pickup(PlayerController player)
        {
            bool hasntAlreadyBeenCollected = !this.m_pickedUpThisRun;

            if (hasntAlreadyBeenCollected)
            {
                LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(224).gameObject, player);
            }
            base.Pickup(player);
        }
Exemplo n.º 23
0
        private void OnNewFloor()
        {
            PlayerController player = this.Owner;

            LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(67).gameObject, player);
            if (Owner.HasPickupID(Gungeon.Game.Items["nn:spare_blank"].PickupObjectId))
            {
                LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(120).gameObject, player);
            }
        }