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); } } } } }
// Token: 0x0600030F RID: 783 RVA: 0x0001CEAC File Offset: 0x0001B0AC private void OnDestroy(Projectile projectile) { Exploder.DoDefaultExplosion(projectile.specRigidbody.UnitTopCenter, default(Vector2), null, false, CoreDamageTypes.None, true); DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.FireDef); goopManagerForGoopType.TimedAddGoopCircle(projectile.specRigidbody.UnitTopCenter, 5f, 0.35f, false); }
private void NukeBlastOnHit(PlayerController player) { //I dont know how, but SOMEHOW using Cigarettes with RTG instantly kills you if i try to have this Nuke Code //this.random = UnityEngine.Random.Range(0.00f, 1.00f); //if (random <= 0.04f) { Vector3 position = player.sprite.WorldCenter; this.Boom(position); AssetBundle assetBundle = ResourceManager.LoadAssetBundle("shared_auto_001"); GoopDefinition goopDefinition = assetBundle.LoadAsset <GoopDefinition>("assets/data/goops/napalmgoopquickignite.asset"); goopDefinition.baseColor32 = new Color32(0, byte.MaxValue, byte.MaxValue, byte.MaxValue); goopDefinition.fireColor32 = new Color32(0, byte.MaxValue, byte.MaxValue, byte.MaxValue); goopDefinition.UsesGreenFire = false; DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(goopDefinition); goopManagerForGoopType.TimedAddGoopCircle(projectile.sprite.WorldCenter, 10f, 0.1f, false); this.Nuke = assetBundle.LoadAsset <GameObject>("assets/data/vfx prefabs/impact vfx/vfx_explosion_nuke.prefab"); GameObject gameObject2 = UnityEngine.Object.Instantiate <GameObject>(this.Nuke); gameObject2.GetComponent <tk2dBaseSprite>().PlaceAtLocalPositionByAnchor(projectile.specRigidbody.UnitCenter, tk2dBaseSprite.Anchor.LowerCenter); gameObject2.transform.position = gameObject.transform.position.Quantize(0.0625f); gameObject2.GetComponent <tk2dBaseSprite>().UpdateZDepth(); { this.FlashHoldtime = 0.1f; this.FlashFadetime = 0.5f; Pixelator.Instance.FadeToColor(this.FlashFadetime, Color.white, true, this.FlashHoldtime); StickyFrictionManager.Instance.RegisterCustomStickyFriction(0.15f, 1f, false, false); this.FlashHoldtime = 0.1f; } } }
public override void OnEffect(GameObject obj) { DeadlyDeadlyGoopManager goop = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.GreenFireDef); goop.TimedAddGoopCircle(obj.transform.position, 4, 0.75f, true); StartCoroutine(Kill(obj)); }
// Token: 0x06000048 RID: 72 RVA: 0x00002180 File Offset: 0x00000380 private IEnumerator GoopTrail(Projectile component, DeadlyDeadlyGoopManager goopManager) { while (component != null) { goopManager.TimedAddGoopCircle(component.specRigidbody.UnitCenter, this.radius, 0.5f, false); yield return(new WaitForSeconds(0.01f)); } yield break; }
private void DoHoleSpawn(Projectile projectile) { DeadlyDeadlyGoopManager goop = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.PitGoop); goop.TimedAddGoopCircle(projectile.specRigidbody.UnitCenter, 7f, 0.75f, true); SpecialGoopBehaviours specialBehav = goop.gameObject.AddComponent <SpecialGoopBehaviours>(); specialBehav.ForcesEnemiesToFall = true; }
public override void EffectTick(GameActor actor, RuntimeGameActorEffectData effectData) { if (EasyGoopDefinitions.PlagueGoop != null) { DeadlyDeadlyGoopManager goop = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.PlagueGoop); goop.TimedAddGoopCircle(actor.specRigidbody.UnitCenter, 1.5f, 0.75f, true); } base.EffectTick(actor, effectData); }
//make a rebar/impaler crossbow that pins enemies to walls private void BigGoop(Projectile proj) { DeadlyDeadlyGoopManager ddgm = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(goopDefinition); ddgm.TimedAddGoopCircle(proj.sprite.WorldCenter, 1.25f, .3f); if (goopDefinition == Library.goopDefs[5]) { ddgm.ElectrifyGoopCircle(proj.LastPosition, 1.25f); } }
private void InkGoop(PlayerController player, Gun playerGun) { bool flag = playerGun.ClipShotsRemaining == 0; if (flag) { DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(HelpfulLibrary.Ink); goopManagerForGoopType.TimedAddGoopCircle(base.Owner.sprite.WorldCenter, 5f, 0.35f, false); } }
public static void BlankModHook(Action <SilencerInstance, BlankModificationItem, Vector2, PlayerController> orig, SilencerInstance silencer, BlankModificationItem bmi, Vector2 centerPoint, PlayerController user) { orig(silencer, bmi, centerPoint, user); bool flag = user.HasPickupID(WebAmmolet.roundID); if (flag) { DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(goopDefs[0]); goopManagerForGoopType.TimedAddGoopCircle(user.sprite.WorldCenter, 3f, 0.35f, false); } }
private IEnumerator Heatfuck(PlayerController user) { AssetBundle assetBundle = ResourceManager.LoadAssetBundle("shared_auto_001"); GoopDefinition goopDefinition = assetBundle.LoadAsset <GoopDefinition>("assets/data/goops/napalmgoopquickignite.asset"); DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(goopDefinition); goopManagerForGoopType.TimedAddGoopCircle(base.Owner.sprite.WorldCenter, 18f, 0.8f, false); yield return(new WaitForSeconds(1f)); DeadlyDeadlyGoopManager.DelayedClearGoopsInRadius(base.Owner.sprite.WorldCenter, 25f); yield break; }
private void DoHoleSpawn(Projectile projectile) { if (projectile.Owner is PlayerController) { float radius = 7f; if ((projectile.Owner as PlayerController).PlayerHasActiveSynergy("Honey, I'm Home!")) { radius = 10f; } DeadlyDeadlyGoopManager goop = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.HoneyGoop); goop.TimedAddGoopCircle(projectile.specRigidbody.UnitCenter, radius, 0.75f, true); } }
private void DoGoop() { float time = 0; if (time < .005f) { time += BraveTime.DeltaTime; } if (time > .005f) { DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(goopDefs[0]); goopManagerForGoopType.TimedAddGoopCircle(this.m_owner.specRigidbody.UnitCenter, 1, .2f); } }
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); } } }
private IEnumerator DoGoop(PlayerController player) { float elapsed = 0; while (elapsed < 8) { elapsed += BraveTime.DeltaTime; DeadlyDeadlyGoopManager ddgm = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(Library.goopDefs[5]); ddgm.TimedAddGoopCircle(player.sprite.WorldBottomCenter, 1.25f, .3f); ddgm.ElectrifyGoopCircle(player.sprite.WorldBottomCenter, 1.25f); yield return(new WaitForSeconds(0.005f)); } yield break; }
private void Update() { if (proj != null) { if (timer < .008f) { timer += BraveTime.DeltaTime; } if (timer >= .008f) { timer = 0; DeadlyDeadlyGoopManager ddgm = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(goopDefinition); ddgm.TimedAddGoopCircle(proj.sprite.WorldCenter, .6f, .3f); if (goopDefinition == Library.goopDefs[5]) { ddgm.ElectrifyGoopCircle(proj.sprite.WorldCenter, .6f); } } } }
private void GoopReload(PlayerController player, Gun gun) { if (gun.ClipShotsRemaining == 0) { int amount = UnityEngine.Random.Range(5, 12); for (int i = 0; i < amount; i++) { float size = UnityEngine.Random.Range(1.5f, 4); float lifetime = UnityEngine.Random.Range(.2f, .4f); Vector2 location = player.sprite.WorldCenter + (UnityEngine.Random.insideUnitCircle * 7); GoopDefinition goop = possibleGoops[UnityEngine.Random.Range(0, possibleGoops.Count)]; DeadlyDeadlyGoopManager ddgm = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(goop); ddgm.TimedAddGoopCircle(location, size, lifetime); if (goop == Library.goopDefs[5]) { ddgm.ElectrifyGoopCircle(player.sprite.WorldCenter, size); } } } }
private void BFN(Projectile projectile) { Vector2 worldCenter = projectile.sprite.WorldCenter; Vector3 position = projectile.sprite.WorldCenter; Projectile projectile1 = ((Gun)ETGMod.Databases.Items[481]).DefaultModule.chargeProjectiles[0].Projectile; GameObject gameObject = SpawnManager.SpawnProjectile(projectile.gameObject, projectile.sprite.WorldCenter, Quaternion.Euler(0f, 0f, 0f)); bool flag = projectile1 != null; bool flag2 = flag; if (flag2) { projectile1.baseData.damage = 50f; projectile1.baseData.speed = 0f; projectile1.AdditionalScaleMultiplier = 2.5f; } this.Boom(position); AssetBundle assetBundle = ResourceManager.LoadAssetBundle("shared_auto_001"); GoopDefinition goopDefinition = assetBundle.LoadAsset <GoopDefinition>("assets/data/goops/napalmgoopquickignite.asset"); goopDefinition.baseColor32 = new Color32(0, byte.MaxValue, byte.MaxValue, byte.MaxValue); goopDefinition.fireColor32 = new Color32(0, byte.MaxValue, byte.MaxValue, byte.MaxValue); goopDefinition.UsesGreenFire = false; DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(goopDefinition); goopManagerForGoopType.TimedAddGoopCircle(projectile.sprite.WorldCenter, 10f, 0.1f, false); this.Nuke = assetBundle.LoadAsset <GameObject>("assets/data/vfx prefabs/impact vfx/vfx_explosion_nuke.prefab"); //this.Nuke = assetBundle.LoadAsset<GameObject>("assets/data/vfx prefabs/impact vfx/vfx_explosion_big_new.prefab"); GameObject gameObject2 = UnityEngine.Object.Instantiate <GameObject>(this.Nuke); gameObject2.GetComponent <tk2dBaseSprite>().PlaceAtLocalPositionByAnchor(projectile.specRigidbody.UnitCenter, tk2dBaseSprite.Anchor.LowerCenter); gameObject2.transform.position = gameObject.transform.position.Quantize(0.0625f); gameObject2.GetComponent <tk2dBaseSprite>().UpdateZDepth(); { this.FlashHoldtime = 0.1f; this.FlashFadetime = 0.5f; Pixelator.Instance.FadeToColor(this.FlashFadetime, Color.white, true, this.FlashHoldtime); StickyFrictionManager.Instance.RegisterCustomStickyFriction(0.15f, 1f, false, false); this.FlashHoldtime = 0.1f; } }
private void EnteredCombat() { if (m_attachedPlayer && m_attachedPlayer.CurrentRoom != null) { if (CurseManager.CurseIsActive("Curse of The Flames")) { for (int i = 0; i < 5; i++) { IntVector2 pos = (IntVector2)m_attachedPlayer.CurrentRoom.GetRandomAvailableCell(null, CellTypes.FLOOR); DeadlyDeadlyGoopManager goop = null; if (GameManager.Instance.AnyPlayerHasActiveSynergy("The Last Crusade")) { goop = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.PlayerFriendlyFireGoop); } else { goop = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.EnemyFriendlyFireGoop); } goop.TimedAddGoopCircle(pos.ToVector2(), UnityEngine.Random.Range(2.5f, 4f), 0.75f, true); } } } }
public void DoDaGoo() { AssetBundle assetBundle = ResourceManager.LoadAssetBundle("shared_auto_001"); string text = "assets/data/goops/water goop.asset"; GoopDefinition goopDefinition; try { GameObject gameObject = assetBundle.LoadAsset(text) as GameObject; goopDefinition = gameObject.GetComponent <GoopDefinition>(); } catch { goopDefinition = (assetBundle.LoadAsset(text) as GoopDefinition); } goopDefinition.name = text.Replace("assets/data/goops/", "").Replace(".asset", ""); DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(goopDefinition); goopManagerForGoopType.TimedAddGoopCircle(this.Owner.sprite.WorldCenter, 10f, 1f, false); speedTimer = 180; counter = 0; limiter = 1; }
protected override void DoEffect(PlayerController user) { DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.PoisonDef); goopManagerForGoopType.TimedAddGoopCircle(this.LastOwner.specRigidbody.UnitCenter, 3, 3f); }
private void DoGoop(Vector2 pos, GoopDefinition def) { DeadlyDeadlyGoopManager goop = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(def); goop.TimedAddGoopCircle(pos, 7, 0.75f, true); }
protected override void DoEffect(PlayerController user) { DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(HelpfulLibrary.CurseGoop); goopManagerForGoopType.TimedAddGoopCircle(base.LastOwner.sprite.WorldCenter, 5f, 0.35f, false); }
public static IEnumerator HandleCurseDeathEffects(Vector2 position, string guid, float maxHP, bool isJammed) { if (CurseManager.CurseIsActive("Curse of Infestation")) { if (!string.IsNullOrEmpty(guid) && !EasyEnemyTypeLists.SmallBullats.Contains(guid)) { int amt = UnityEngine.Random.Range(-1, 4); if (amt > 0) { for (int i = 0; i < amt; i++) { if (GameManager.Instance.AnyPlayerHasActiveSynergy("The Last Crusade")) { AIActor targetActor = CompanionisedEnemyUtility.SpawnCompanionisedEnemy(GameManager.Instance.PrimaryPlayer, BraveUtility.RandomElement(EasyEnemyTypeLists.SmallBullats), position.ToIntVector2(), false, Color.red, 5, 2, false, false); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(targetActor.specRigidbody, null, false); } else { var enemyToSpawn = EnemyDatabase.GetOrLoadByGuid(BraveUtility.RandomElement(EasyEnemyTypeLists.SmallBullats)); AIActor TargetActor = AIActor.Spawn(enemyToSpawn, position, GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(position.ToIntVector2()), true, AIActor.AwakenAnimationType.Default, true); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(TargetActor.specRigidbody, null, false); TargetActor.PreventBlackPhantom = true; } } } } } if (CurseManager.CurseIsActive("Curse of Sludge")) { if (maxHP > 0) { DeadlyDeadlyGoopManager goop = null; if (GameManager.Instance.AnyPlayerHasActiveSynergy("The Last Crusade")) { goop = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.PlayerFriendlyPoisonGoop); } else { goop = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.EnemyFriendlyPoisonGoop); } float hpMod = maxHP; if (isJammed) { hpMod /= 3.5f; } hpMod /= AIActor.BaseLevelHealthModifier; float radius = Math.Min((hpMod / 7.5f), 10); goop.TimedAddGoopCircle(position, radius, 0.75f, true); } } if (CurseManager.CurseIsActive("Curse of The Hive")) { if (maxHP > 0) { DeadlyDeadlyGoopManager goop = null; if (GameManager.Instance.AnyPlayerHasActiveSynergy("The Last Crusade")) { goop = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.PlayerFriendlyHoneyGoop); } else { goop = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.HoneyGoop); } float hpMod = maxHP; if (isJammed) { hpMod /= 3.5f; } hpMod /= AIActor.BaseLevelHealthModifier; float radius = Math.Min((hpMod / 5), 10); goop.TimedAddGoopCircle(position, radius, 0.75f, true); } } yield break; }
private void fuckShitUp(Projectile projectile) { string header = ""; string text = ""; int num3 = UnityEngine.Random.Range(0, 19); bool flag3 = num3 == 0; if (flag3) { header = "You got nothing!"; text = "Get dunked on!"; } bool flag4 = num3 == 1; if (flag4) { AkSoundEngine.PostEvent("Play_OBJ_chaff_blast_01", base.gameObject); this.FlashHoldtime = 3f; this.FlashFadetime = 4f; Pixelator.Instance.FadeToColor(this.FlashFadetime, Color.white, true, this.FlashHoldtime); StickyFrictionManager.Instance.RegisterCustomStickyFriction(0.15f, 4f, false, false); this.FlashHoldtime = 3f; } bool flag5 = num3 == 2; if (flag5) { header = "Your bullets bounce!"; text = ""; ApplyStat(base.LastOwner, PlayerStats.StatType.AdditionalShotBounces, 2f, StatModifier.ModifyMethod.ADDITIVE); } bool flag6 = num3 == 3; if (flag6) { header = "You turn to Glass."; text = ""; ApplyStat(base.LastOwner, PlayerStats.StatType.Damage, 2f, StatModifier.ModifyMethod.MULTIPLICATIVE); ApplyStat(base.LastOwner, PlayerStats.StatType.Health, -5f, StatModifier.ModifyMethod.ADDITIVE); } bool flag7 = num3 == 4; if (flag7) { header = "The Game."; text = "You just lost it."; } bool flag9 = num3 == 5; if (flag9) { ApplyStat(base.LastOwner, PlayerStats.StatType.AdditionalItemCapacity, 1f, StatModifier.ModifyMethod.ADDITIVE); for (int counter = 0; counter < UnityEngine.Random.Range(1f, 9f); counter++) { PickupObject var = Gungeon.Game.Items["bny:ancient_whisper"]; LootEngine.GivePrefabToPlayer(var.gameObject, base.LastOwner); } } bool flag10 = num3 == 6; if (flag10) { header = "You fool!"; text = ""; ApplyStat(base.LastOwner, PlayerStats.StatType.Curse, 10f, StatModifier.ModifyMethod.ADDITIVE); } bool flag11 = num3 == 7; if (flag11) { header = "Try again!"; text = ""; for (int counter = 0; counter < UnityEngine.Random.Range(2f, 4f); counter++) { PickupObject var = Gungeon.Game.Items["bny:d-grenade"]; LootEngine.GivePrefabToPlayer(var.gameObject, base.LastOwner); } } bool flag12 = num3 == 8; if (flag12) { header = "mmm yees"; text = "junk"; for (int counter = 0; counter < UnityEngine.Random.Range(1f, 7f); counter++) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(127).gameObject, base.LastOwner); } } bool flag13 = num3 == 9; if (flag13) { header = "Unlocks!"; text = ""; for (int counter = 0; counter < UnityEngine.Random.Range(1f, 3f); counter++) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(67).gameObject, base.LastOwner); } } bool flag14 = num3 == 10; if (flag14) { GameManager.Instance.LoadCustomLevel("tt_bullethell"); } bool flag15 = num3 == 11; if (flag15) { GameManager.Instance.LoadCustomLevel("tt_castle"); } bool flag16 = num3 == 12; if (flag16) { IntVector2 randomVisibleClearSpot6 = base.LastOwner.CurrentRoom.GetRandomVisibleClearSpot(1, 1); GameManager.Instance.RewardManager.SpawnRewardChestAt(randomVisibleClearSpot6, -1f, PickupObject.ItemQuality.EXCLUDED); } bool flag17 = num3 == 13; if (flag17) { Vector3 position = projectile.sprite.WorldCenter; this.Boom(position); AssetBundle assetBundle = ResourceManager.LoadAssetBundle("shared_auto_001"); GoopDefinition goopDefinition = assetBundle.LoadAsset <GoopDefinition>("assets/data/goops/napalmgoopquickignite.asset"); goopDefinition.baseColor32 = new Color32(0, byte.MaxValue, byte.MaxValue, byte.MaxValue); goopDefinition.fireColor32 = new Color32(0, byte.MaxValue, byte.MaxValue, byte.MaxValue); goopDefinition.UsesGreenFire = false; DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(goopDefinition); goopManagerForGoopType.TimedAddGoopCircle(projectile.sprite.WorldCenter, 10f, 0.1f, false); this.Nuke = assetBundle.LoadAsset <GameObject>("assets/data/vfx prefabs/impact vfx/vfx_explosion_nuke.prefab"); GameObject gameObject2 = UnityEngine.Object.Instantiate <GameObject>(this.Nuke); gameObject2.GetComponent <tk2dBaseSprite>().PlaceAtLocalPositionByAnchor(projectile.specRigidbody.UnitCenter, tk2dBaseSprite.Anchor.LowerCenter); gameObject2.transform.position = gameObject.transform.position.Quantize(0.0625f); gameObject2.GetComponent <tk2dBaseSprite>().UpdateZDepth(); { this.FlashHoldtime = 0.1f; this.FlashFadetime = 0.5f; Pixelator.Instance.FadeToColor(this.FlashFadetime, Color.white, true, this.FlashHoldtime); StickyFrictionManager.Instance.RegisterCustomStickyFriction(0.15f, 1f, false, false); this.FlashHoldtime = 0.1f; } } bool flag18 = num3 == 14; if (flag18) { header = "Oops! Inflation!"; text = ""; ApplyStat(base.LastOwner, PlayerStats.StatType.MoneyMultiplierFromEnemies, 5f, StatModifier.ModifyMethod.MULTIPLICATIVE); ApplyStat(base.LastOwner, PlayerStats.StatType.GlobalPriceMultiplier, 5f, StatModifier.ModifyMethod.MULTIPLICATIVE); } bool flag19 = num3 == 15; if (flag19) { header = "Brrrap Papap Pop!"; text = "Pop! Brrrrrap!"; ApplyStat(base.LastOwner, PlayerStats.StatType.ShadowBulletChance, 10f, StatModifier.ModifyMethod.ADDITIVE); } bool flag20 = num3 == 16; if (flag20) { header = "Money!"; text = ""; for (int counter = 0; counter < UnityEngine.Random.Range(24f, 96f); counter++) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(68).gameObject, base.LastOwner); } } bool flag21 = num3 == 17; if (flag21) { for (int counter = 0; counter < UnityEngine.Random.Range(1f, 5f); counter++) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(224).gameObject, base.LastOwner); } } bool flag22 = num3 == 18; if (flag22) { header = "You can take your time..."; text = ""; ApplyStat(base.LastOwner, PlayerStats.StatType.ProjectileSpeed, .3f, StatModifier.ModifyMethod.MULTIPLICATIVE); ApplyStat(base.LastOwner, PlayerStats.StatType.EnemyProjectileSpeedMultiplier, .3f, StatModifier.ModifyMethod.MULTIPLICATIVE); } bool flag23 = num3 == 19; if (flag23) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(137).gameObject, base.LastOwner); } this.Notify(header, text); }
private void Update() { if (m_attachedPlayer != null && !Dungeon.IsGenerating) { if (m_attachedPlayer.healthHaver.Armor != armourLastChecked) { if (!SaveAPIManager.GetFlag(CustomDungeonFlags.PLAYERHELDMORETHANFIVEARMOUR)) { int threshHold = 5; if (m_attachedPlayer.characterIdentity == PlayableCharacters.Robot) { threshHold = 11; } if (m_attachedPlayer.healthHaver.Armor >= threshHold) { SaveAPIManager.SetFlag(CustomDungeonFlags.PLAYERHELDMORETHANFIVEARMOUR, true); } } armourLastChecked = (int)m_attachedPlayer.healthHaver.Armor; } if (m_attachedPlayer.stats.GetStatValue(PlayerStats.StatType.Health) != hpStatLastChecked) { SaveAPIManager.UpdateMaximum(CustomTrackedMaximums.MAX_HEART_CONTAINERS_EVER, m_attachedPlayer.stats.GetStatValue(PlayerStats.StatType.Health)); hpStatLastChecked = (int)m_attachedPlayer.stats.GetStatValue(PlayerStats.StatType.Health); } if (m_attachedPlayer.passiveItems.Count != itemCountLastChecked) { OnInventoryItemsChanged(); itemCountLastChecked = m_attachedPlayer.passiveItems.Count; } if (m_attachedPlayer.CurrentGun) { if (m_attachedPlayer.CurrentGun.PickupObjectId != gunIDLastChecked) { OnCurrentGunChanged(); } } #region InvisibleO if (Challenges.CurrentChallenge == ChallengeType.INVISIBLEO && m_attachedPlayer.IsVisible == true) { playerIsInvisibleForChallenge = true; m_attachedPlayer.DoDustUps = false; m_attachedPlayer.IsVisible = false; } if (playerIsInvisibleForChallenge && Challenges.CurrentChallenge != ChallengeType.INVISIBLEO && m_attachedPlayer.IsVisible == false) { playerIsInvisibleForChallenge = false; m_attachedPlayer.DoDustUps = true; m_attachedPlayer.IsVisible = true; } if (playerIsInvisibleForChallenge && m_attachedPlayer.gameActor.ShadowObject.GetComponent <Renderer>().enabled == true && !playerShadowInvisible) { m_attachedPlayer.gameActor.ShadowObject.GetComponent <Renderer>().enabled = false; playerShadowInvisible = true; } else if (!playerIsInvisibleForChallenge && m_attachedPlayer.gameActor.ShadowObject.GetComponent <Renderer>().enabled == false && playerShadowInvisible) { m_attachedPlayer.gameActor.ShadowObject.GetComponent <Renderer>().enabled = true; playerShadowInvisible = false; } if (Challenges.CurrentChallenge == ChallengeType.INVISIBLEO && m_attachedPlayer.CurrentGun && m_attachedPlayer.CurrentGun.GetComponent <InvisibleGun>() == null) { m_attachedPlayer.CurrentGun.gameObject.AddComponent <InvisibleGun>(); } if (Challenges.CurrentChallenge == ChallengeType.INVISIBLEO && m_attachedPlayer.CurrentSecondaryGun && m_attachedPlayer.CurrentSecondaryGun.GetComponent <InvisibleGun>() == null) { m_attachedPlayer.CurrentSecondaryGun.gameObject.AddComponent <InvisibleGun>(); } if (playerIsInvisibleForChallenge && m_attachedPlayer.primaryHand.ForceRenderersOff == false) { m_attachedPlayer.primaryHand.ForceRenderersOff = true; } if (playerIsInvisibleForChallenge && m_attachedPlayer.secondaryHand.ForceRenderersOff == false) { m_attachedPlayer.secondaryHand.ForceRenderersOff = true; } if (Challenges.CurrentChallenge == ChallengeType.INVISIBLEO && GameUIRoot.Instance.GetReloadBarForPlayer(m_attachedPlayer)) { int i = m_attachedPlayer.PlayerIDX; GameUIRoot.Instance.ForceClearReload(i); } #endregion if (Challenges.CurrentChallenge == ChallengeType.KEEP_IT_COOL) { DeadlyDeadlyGoopManager goop = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.WaterGoop); goop.TimedAddGoopCircle(m_attachedPlayer.specRigidbody.UnitCenter, 2f, 0.01f, true); DeadlyDeadlyGoopManager.FreezeGoopsCircle(m_attachedPlayer.specRigidbody.UnitBottomCenter, 2); if (!m_attachedPlayer.ownerlessStatModifiers.Contains(keepItCoolSpeedBuff)) { m_attachedPlayer.ownerlessStatModifiers.Add(keepItCoolSpeedBuff); m_attachedPlayer.stats.RecalculateStats(m_attachedPlayer); } if (m_attachedPlayer.HasPickupID(256)) { m_attachedPlayer.RemovePassiveItem(256); IntVector2 bestRewardLocation2 = m_attachedPlayer.CurrentRoom.GetBestRewardLocation(IntVector2.One * 3, RoomHandler.RewardLocationStyle.PlayerCenter, true); Chest red_Chest = GameManager.Instance.RewardManager.A_Chest; red_Chest.IsLocked = false; red_Chest.ChestType = (UnityEngine.Random.value <= 0.5f ? Chest.GeneralChestType.ITEM : Chest.GeneralChestType.WEAPON); Chest spawnedRed = Chest.Spawn(red_Chest, bestRewardLocation2); spawnedRed.lootTable.lootTable = (UnityEngine.Random.value <= 0.5f ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable); spawnedRed.RegisterChestOnMinimap(spawnedRed.GetAbsoluteParentRoom()); TextBubble.DoAmbientTalk(m_attachedPlayer.transform, new Vector3(1, 2, 0), "Nice Try", 4f); } } else if (m_attachedPlayer.ownerlessStatModifiers.Contains(keepItCoolSpeedBuff)) { m_attachedPlayer.ownerlessStatModifiers.Remove(keepItCoolSpeedBuff); m_attachedPlayer.stats.RecalculateStats(m_attachedPlayer); } } }
private void DoGoop() { DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.OilDef); goopManagerForGoopType.TimedAddGoopCircle(gun.CurrentOwner.sprite.WorldCenter, 4f, 0.35f, false); }
protected override void DoEffect(PlayerController user) { string header = "You feel sick."; string text = "You drank a potion."; AkSoundEngine.PostEvent("Play_WPN_Bubbler_Drink_01", gameObject); int bighead = UnityEngine.Random.Range(1, 19); if (bighead == 1) { header = "Damage up."; text = "Lucky you!"; this.ApplyStat(user, PlayerStats.StatType.Damage, 0.05f, StatModifier.ModifyMethod.ADDITIVE); } if (bighead == 2) { header = "Projectile speed up."; text = "Lucky you!"; this.ApplyStat(user, PlayerStats.StatType.ProjectileSpeed, 0.05f, StatModifier.ModifyMethod.ADDITIVE); } if (bighead == 3) { header = "Movement speed up."; text = "Lucky you!."; this.ApplyStat(user, PlayerStats.StatType.MovementSpeed, 0.05f, StatModifier.ModifyMethod.ADDITIVE); } if (bighead == 4) { header = "Damage to bosses up."; text = "Lucky you!"; this.ApplyStat(user, PlayerStats.StatType.DamageToBosses, 0.05f, StatModifier.ModifyMethod.ADDITIVE); } if (bighead == 5) { header = "Blanks up."; text = "Lucky you!"; LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(224).gameObject, LastOwner); } if (bighead == 6) { header = "Curse up."; text = "Unlucky."; this.ApplyStat(user, PlayerStats.StatType.Curse, 1f, StatModifier.ModifyMethod.ADDITIVE); } if (bighead == 7) { header = "Ammo Capacity up."; text = "Lucky you!"; this.ApplyStat(user, PlayerStats.StatType.AmmoCapacityMultiplier, 1.05f, StatModifier.ModifyMethod.MULTIPLICATIVE); } if (bighead == 8) { header = "Coolness up."; text = "Lucky you!"; this.ApplyStat(user, PlayerStats.StatType.Coolness, 3f, StatModifier.ModifyMethod.ADDITIVE); } if (bighead == 9) { header = "Armour up."; text = "Lucky you!"; LastOwner.healthHaver.Armor = LastOwner.healthHaver.Armor + 1; } if (bighead == 10) { header = "Money up."; text = "Lucky you!"; LastOwner.carriedConsumables.Currency = LastOwner.carriedConsumables.Currency + 15; } if (bighead == 11) { header = "Damage."; text = "Unlucky."; LastOwner.healthHaver.ApplyDamage(1, Vector2.zero, "Chaotic Forces", CoreDamageTypes.None, DamageCategory.Normal, true, null, false); } if (bighead == 12) { header = "Keys up."; text = "Lucky you!"; LastOwner.carriedConsumables.KeyBullets = LastOwner.carriedConsumables.KeyBullets + 1; } if (bighead == 13) { header = "Mapped out."; text = "Lucky you!"; Minimap.Instance.RevealAllRooms(false); } if (bighead == 14) { header = "Lead Embrace."; text = "Unlucky."; AIActor orLoadByGuid = EnemyDatabase.GetOrLoadByGuid("cd4a4b7f612a4ba9a720b9f97c52f38c"); IntVector2?intVector = new IntVector2?(base.LastOwner.CurrentRoom.GetRandomVisibleClearSpot(2, 2)); AIActor aiactor = AIActor.Spawn(orLoadByGuid.aiActor, intVector.Value, GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(intVector.Value), true, AIActor.AwakenAnimationType.Default, true); } if (bighead == 15) { header = "Glass blessing."; text = "Lucky you!"; LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(565).gameObject, LastOwner); } if (bighead == 16) { header = "Green fire."; text = "Lucky you!"; DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.GreenFireDef); goopManagerForGoopType.TimedAddGoopCircle(LastOwner.sprite.WorldCenter, 5f, 0.35f, false); } if (bighead == 17) { header = "Poison!"; text = "Unlucky."; DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.PoisonDef); goopManagerForGoopType.TimedAddGoopCircle(LastOwner.sprite.WorldCenter, 5f, 0.35f, false); } if (bighead == 18) { header = "Fire!"; text = "Unlucky."; DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(EasyGoopDefinitions.FireDef); goopManagerForGoopType.TimedAddGoopCircle(LastOwner.sprite.WorldCenter, 5f, 0.35f, false); } this.Notify(header, text); }
public override void OnEffect(GameObject obj) { float radius = UnityEngine.Random.Range(2f, 5f); float force = UnityEngine.Random.Range(25f, 50f); ExplosionData explosionData = new ExplosionData { useDefaultExplosion = false, doDamage = true, forceUseThisRadius = false, damageRadius = radius, damageToPlayer = 0, damage = UnityEngine.Random.Range(10f, 50f), breakSecretWalls = UnityEngine.Random.value <= 0.5f, secretWallsRadius = radius, forcePreventSecretWallDamage = false, doDestroyProjectiles = true, doForce = true, pushRadius = UnityEngine.Random.Range(3f, 10f), force = force, debrisForce = force, preventPlayerForce = false, explosionDelay = 0f, usesComprehensiveDelay = false, comprehensiveDelay = 0, playDefaultSFX = false, doScreenShake = true, ss = new ScreenShakeSettings { magnitude = UnityEngine.Random.Range(1f, 3f), speed = 6.5f, time = 0.22f, falloff = 0, direction = new Vector2(0, 0), vibrationType = ScreenShakeSettings.VibrationType.Auto, simpleVibrationStrength = Vibration.Strength.Medium, simpleVibrationTime = Vibration.Time.Normal }, doStickyFriction = true, doExplosionRing = true, isFreezeExplosion = false, freezeRadius = 5, IsChandelierExplosion = false, rotateEffectToNormal = false, ignoreList = new List <SpeculativeRigidbody>(), overrideRangeIndicatorEffect = null, effect = radius > 3.5f ? StaticExplosionDatas.genericLargeExplosion.effect : StaticExplosionDatas.explosiveRoundsExplosion.effect, freezeEffect = null, }; if (obj.GetComponent <CustomThrowableObject>().SpawningPlayer.PlayerHasActiveSynergy("Roll With Advantage")) { DeadlyDeadlyGoopManager goop = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(BraveUtility.RandomElement(new List <GoopDefinition>() { EasyGoopDefinitions.BlobulonGoopDef, EasyGoopDefinitions.CharmGoopDef, EasyGoopDefinitions.CheeseDef, EasyGoopDefinitions.FireDef, EasyGoopDefinitions.GreenFireDef, EasyGoopDefinitions.HoneyGoop, EasyGoopDefinitions.OilDef, EasyGoopDefinitions.PitGoop, EasyGoopDefinitions.PlagueGoop, EasyGoopDefinitions.PlayerFriendlyWebGoop, EasyGoopDefinitions.WaterGoop })); goop.TimedAddGoopCircle(obj.transform.position, 4, 0.75f, true); } Exploder.Explode(obj.GetComponent <tk2dSprite>().WorldCenter, explosionData, Vector2.zero); StartCoroutine(Kill(obj)); }