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); } }
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); } } }
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); }
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); } } } }
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); } }
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); }
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; } }
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); }
private void ResetCooldown(PlayerController player, ShopItemController shop) { base.ClearCooldowns(); if (player.HasPickupID(170) || player.HasPickupID(278)) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(73).gameObject, player); } }
private void AWholeNewWorld(PlayerController player) { ThanksGame = !ThanksGame; if (ThanksGame && player) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetRandomGun().gameObject, player); } }
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; }
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; }
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); } }
// 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; }
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); }
private void LoveLeech(Vector2 idk) { float f = .05f; if (UnityEngine.Random.value < f) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(73).gameObject, player); } }
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); } }
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); } } }
public override void Pickup(PlayerController player) { bool hasntAlreadyBeenCollected = !this.m_pickedUpThisRun; if (hasntAlreadyBeenCollected) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(224).gameObject, player); } base.Pickup(player); }
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); } }