private void OnFlip(FlippableCover obj) { bool ignoreFlocking = this.GetIgnoreFlocking(obj); TableTechChaosEffect effect = TableTechChaosEffect.PickRandomEffect(ignoreFlocking); if (effect.IsForFlipCompletion) { TableTechChaosFlipCompletionIdentifier completionIdentifier = obj.gameObject.AddComponent <TableTechChaosFlipCompletionIdentifier>(); completionIdentifier.effect = effect; } else { this.HandleBlankEffect(effect.identifier, obj); this.HandleStunEffect(effect.identifier); this.HandleRageEffect(effect.identifier); this.HandleVolleyEffect(effect.identifier); base.StartCoroutine(this.HandleDelayedEffect(0.25f, this.HandleTableVolley, effect.identifier, obj)); this.HandleTemporalEffects(effect.identifier); this.HandleHeatEffects(effect.identifier, obj); this.HandleStealthEffect(effect.identifier, obj); base.StartCoroutine(this.HandleDelayedEffect(0.25f, this.HandleBlackHoleEffect, effect.identifier, obj)); if (effect.identifier == TableTechChaosEffectIdentifier.TIME_SLOW && this.m_owner && this.m_owner.PlayerHasActiveSynergy("#HIDDEN_TECH_SUPER_CHAOS")) { this.RadialSlow.DoRadialSlow(base.Owner.CenterPosition, base.Owner.CurrentRoom); } } }
private void OnFlipCompleted(FlippableCover obj) { TableTechChaosFlipCompletionIdentifier completionIdentifier = obj.GetComponent <TableTechChaosFlipCompletionIdentifier>(); if (completionIdentifier != null) { TableTechChaosEffect effect = completionIdentifier.effect; this.HandleMoneyEffect(effect.identifier, obj); this.HandleProjectileEffect(effect.identifier, obj); this.HandleTableFlocking(effect.identifier, obj); this.HandleMirrorEffect(effect.identifier, obj); Destroy(completionIdentifier); } }
public static TableTechChaosEffect PickRandomEffect(bool ignoreFlocking = false) { TableTechChaosEffectIdentifier identifier; if (ignoreFlocking) { int num = UnityEngine.Random.Range(1, 14); switch (num) { case 1: identifier = TableTechChaosEffectIdentifier.BLANK; break; case 2: identifier = TableTechChaosEffectIdentifier.STUN; break; case 3: identifier = TableTechChaosEffectIdentifier.RAGE; break; case 4: identifier = TableTechChaosEffectIdentifier.VOLLEY; break; case 5: identifier = TableTechChaosEffectIdentifier.TABLE_VOLLEY; break; case 6: identifier = TableTechChaosEffectIdentifier.TIME_SLOW; break; case 7: identifier = TableTechChaosEffectIdentifier.HEAT; break; case 8: identifier = TableTechChaosEffectIdentifier.MONEY; break; case 9: identifier = TableTechChaosEffectIdentifier.PROJECTILE; break; case 10: identifier = TableTechChaosEffectIdentifier.INVULNERABILITY; break; case 11: identifier = TableTechChaosEffectIdentifier.BLACK_HOLE; break; case 12: identifier = TableTechChaosEffectIdentifier.MIRROR; break; case 13: identifier = TableTechChaosEffectIdentifier.STEALTH; break; default: identifier = TableTechChaosEffectIdentifier.BLANK; break; } } else { int num = UnityEngine.Random.Range(1, 15); switch (num) { case 1: identifier = TableTechChaosEffectIdentifier.BLANK; break; case 2: identifier = TableTechChaosEffectIdentifier.STUN; break; case 3: identifier = TableTechChaosEffectIdentifier.RAGE; break; case 4: identifier = TableTechChaosEffectIdentifier.VOLLEY; break; case 5: identifier = TableTechChaosEffectIdentifier.TABLE_VOLLEY; break; case 6: identifier = TableTechChaosEffectIdentifier.TIME_SLOW; break; case 7: identifier = TableTechChaosEffectIdentifier.HEAT; break; case 8: identifier = TableTechChaosEffectIdentifier.MONEY; break; case 9: identifier = TableTechChaosEffectIdentifier.PROJECTILE; break; case 10: identifier = TableTechChaosEffectIdentifier.FLOCKING; break; case 11: identifier = TableTechChaosEffectIdentifier.INVULNERABILITY; break; case 12: identifier = TableTechChaosEffectIdentifier.BLACK_HOLE; break; case 13: identifier = TableTechChaosEffectIdentifier.MIRROR; break; case 14: identifier = TableTechChaosEffectIdentifier.STEALTH; break; default: identifier = TableTechChaosEffectIdentifier.BLANK; break; } } TableTechChaosEffect effect = new TableTechChaosEffect(identifier); return(effect); }