private void HealthbarEvent(float damageAmount, bool fatal, HealthHaver target) { int num = Mathf.RoundToInt(damageAmount); Vector3 worldPosition = target.transform.position; float heightOffGround = 1f; SpeculativeRigidbody component = target.GetComponent <SpeculativeRigidbody>(); if (component) { worldPosition = component.UnitCenter.ToVector3ZisY(0f); heightOffGround = worldPosition.y - component.UnitBottomCenter.y; if (component.healthHaver && !component.healthHaver.HasHealthBar && !component.healthHaver.HasRatchetHealthBar && !component.healthHaver.IsBoss) { GameObject VFXHealthBarPrefab = PickupObjectDatabase.GetByName("scouter").GetComponent <RatchetScouterItem>().VFXHealthBar; component.healthHaver.HasRatchetHealthBar = true; GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(VFXHealthBarPrefab); SimpleHealthBarController component2 = gameObject.GetComponent <SimpleHealthBarController>(); component2.Initialize(component, component.healthHaver); } } else { AIActor component3 = target.GetComponent <AIActor>(); if (component3) { worldPosition = component3.CenterPosition.ToVector3ZisY(0f); if (component3.sprite) { heightOffGround = worldPosition.y - component3.sprite.WorldBottomCenter.y; } } } num = Mathf.Max(num, 1); GameUIRoot.Instance.DoDamageNumber(worldPosition, heightOffGround, num); }
private void RerollItem(DebrisObject debris) { int checkLimit = 0; PickupObject targetedItem = debris.gameObject.GetComponent <PickupObject>(); if (targetedItem != null) { ItemQuality targetTier = targetedItem.quality; int chanceToDowngrade = 10; int chanceToUpgrade = 80; ItemQuality newItemQuality = targetTier; PickupObject newItemObject = PickupObjectDatabase.GetByName("cel:test_item"); int RollToCheckUpgradeStatus = UnityEngine.Random.Range(0, 101); if (RollToCheckUpgradeStatus <= chanceToDowngrade && targetTier != ItemQuality.D) { newItemQuality = targetTier - 1; } else if (RollToCheckUpgradeStatus >= chanceToUpgrade && targetTier != ItemQuality.S) { newItemQuality = targetTier + 1; } GenericLootTable lootTableItems = GameManager.Instance.RewardManager.ItemsLootTable; if (targetedItem is PassiveItem) { do { newItemObject = LootEngine.GetItemOfTypeAndQuality <PassiveItem>(newItemQuality, lootTableItems); checkLimit++; } while (newItemObject.PickupObjectId == targetedItem.PickupObjectId && checkLimit < 10); } else if (targetedItem is PlayerItem) { do { newItemObject = LootEngine.GetItemOfTypeAndQuality <PlayerItem>(newItemQuality, lootTableItems); checkLimit++; } while (newItemObject.PickupObjectId == targetedItem.PickupObjectId && checkLimit < 10); } if (UnityEngine.Random.Range(0, 101) <= 1) { Chest rainbow_Chest = GameManager.Instance.RewardManager.Rainbow_Chest; Chest chest2 = Chest.Spawn(rainbow_Chest, targetedItem.sprite.WorldCenter.ToIntVector2(VectorConversions.Round)); chest2.BecomeGlitchChest(); chest2.sprite.renderer.material.shader = ShaderCache.Acquire("Brave/Internal/RainbowChestShader"); chest2.RegisterChestOnMinimap(chest2.GetAbsoluteParentRoom()); } else { LootEngine.DoDefaultPurplePoof(targetedItem.sprite.WorldCenter); LootEngine.SpawnItem(newItemObject.gameObject, targetedItem.sprite.WorldCenter, Vector2.zero, 0); } Destroy(targetedItem.gameObject); } }
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); } }
protected override void DoEffect(PlayerController user) { if (user.HasPickupID(476)) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetByName("Loot Capsule").gameObject, user); } user.carriedConsumables.Currency -= 25; AkSoundEngine.PostEvent("Play_OBJ_Chest_Synergy_Slots_01", base.gameObject); GameManager.Instance.StartCoroutine(this.GamblingTime()); }
private IEnumerator RecoverDisc2() { PlayerController player = this.Owner; yield return(new WaitForSeconds(0.15f)); if (!player.inventory.AllGuns.Contains(PickupObjectDatabase.GetByName("Hyper Disc") as Gun) && player.CurrentGun != (PickupObjectDatabase.GetByName("Hyper Disc") as Gun)) { player.inventory.AddGunToInventory(PickupObjectDatabase.GetByEncounterName("Hyper Disc") as Gun, true); } yield break; }
void DualWieldItem(string[] args) { if (!ArgCount(args, 1, 2)) { return; } if (!GameManager.Instance.PrimaryPlayer) { ETGModConsole.Log("Couldn't access Player Controller"); return; } string id = args[0]; if (!Game.Items.ContainsID(id)) { ETGModConsole.Log($"Invalid item ID {id}!"); return; } ETGModConsole.Log("Attempting to force wield " + args[0] + " (numeric " + id + ")" + ", class " + Game.Items.Get(id).GetType()); if (args.Length < 1) { throw new Exception("At least 1 argument required."); } var player = GameManager.Instance.PrimaryPlayer; var gun = player.inventory.CurrentGun; int idNumber; int.TryParse(id, out idNumber); var test = Game.Items[id]; var partner_gun = PickupObjectDatabase.GetByName(test.name) as Gun; if (GameManager.Instance.PrimaryPlayer.inventory.AllGuns.Contains(partner_gun)) { //GameManager.Instance.PrimaryPlayer.ForceDropGun(i); GameManager.Instance.PrimaryPlayer.ForceDropGun(partner_gun); } player.inventory.AddGunToInventory(partner_gun); var forcer = gun.gameObject.AddComponent <DualWieldForcer>(); forcer.Gun = gun; forcer.PartnerGunID = partner_gun.PickupObjectId; forcer.TargetPlayer = player; }
public override void Pickup(PlayerController player) { if (m_hasBeenPickedUp) { return; } m_hasBeenPickedUp = true; player.gameObject.GetOrAddComponent <RiskStat>().RiskAMT++; foreach (Gun gun in player.inventory.AllGuns) { if (gun.CanGainAmmo && gun != null) { if (gun != player.CurrentGun) { if (GameManager.Options.QuickSelectEnabled && player.IsQuickEquipGun(gun)) { gun.GainAmmo(gun.AdjustedMaxAmmo); } else { gun.GainAmmo(Mathf.FloorToInt((float)gun.AdjustedMaxAmmo * .33f)); } } else { gun.GainAmmo(gun.AdjustedMaxAmmo); gun.ForceImmediateReload(false); } } } AkSoundEngine.PostEvent("Play_OBJ_ammo_pickup_01", base.gameObject); player.RemovePassiveItem(PickupObjectDatabase.GetByName("Risky Ammo Crate").PickupObjectId); player.BloopItemAboveHead(base.sprite, "Items/Resources/test_icon.png"); UnityEngine.Object.Destroy(base.gameObject); }
protected override void DoEffect(PlayerController user) { ScrapCount += 1; AkSoundEngine.PostEvent("Play_OBJ_chest_open_01", base.gameObject); user.CurrentGun.ammo = 0; user.inventory.DestroyCurrentGun(); if (ScrapCount == 1) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(120).gameObject, user); // LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(821).gameObject, user); } if (ScrapCount == 2) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(565).gameObject, user); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(565).gameObject, user); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(565).gameObject, user); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(565).gameObject, user); } if (ScrapCount == 3) { PickupObject byId = PickupObjectDatabase.GetById(78); LootEngine.SpawnItem(byId.gameObject, user.specRigidbody.UnitCenter, Vector2.up, 1f, false, true, false); LootEngine.SpawnItem(byId.gameObject, user.specRigidbody.UnitCenter, Vector2.up, 1.5f, false, true, false); } if (ScrapCount == 4) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(120).gameObject, user); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(120).gameObject, user); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(120).gameObject, user); } if (ScrapCount == 5) { if (this.GunRando == FiGun.NONE) { Gun fallout = PickupObjectDatabase.GetByName(this.falloutGun) as Gun; Gun tesla = PickupObjectDatabase.GetByName(this.teslaGun) as Gun; Gun phazor = PickupObjectDatabase.GetByName(this.phazorGun) as Gun; this.GunRando = (DwarvenHammer.FiGun)UnityEngine.Random.Range(1, 4); if (this.GunRando == FiGun.TESLA) { this.m_player.inventory.AddGunToInventory(tesla, true); } if (this.GunRando == FiGun.PHAZOR) { this.m_player.inventory.AddGunToInventory(phazor, true); } if (GunRando == FiGun.FALLOUT) { this.m_player.inventory.AddGunToInventory(fallout, true); } } } if (ScrapCount >= 6) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(120).gameObject, user); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(565).gameObject, user); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(565).gameObject, user); } }