public void Electra(Cell C, ScreenBuffer Buffer, bool doEffect = true) { string dice = ComputeDamage(); if (C != null) { foreach (GameObject item in C.GetObjectsInCell()) { if (!item.PhaseMatches(ParentObject)) { continue; } item.TemperatureChange(100 + 25 * base.Level, ParentObject); if (doEffect) { for (int i = 0; i < 5; i++) { item.ParticleText("&W" + (char)(219 + Stat.Random(0, 4)), 2.9f, 1); } for (int j = 0; j < 5; j++) { item.ParticleText("&B" + (char)(219 + Stat.Random(0, 4)), 2.9f, 1); } for (int k = 0; k < 5; k++) { item.ParticleText("&Y" + (char)(219 + Stat.Random(0, 4)), 2.9f, 1); } } } int phase = ParentObject.GetPhase(); DieRoll cachedDieRoll = dice.GetCachedDieRoll(); foreach (GameObject item2 in C.GetObjectsWithPartReadonly("Combat")) { item2.TakeDamage(cachedDieRoll.Resolve(), "from %o shimmering aura!", "Shock", null, null, ParentObject, null, null, Accidental: false, Environmental: false, Indirect: false, ShowUninvolved: false, ShowForInanimate: false, SilentIfNoDamage: false, phase); if (!item2.MakeSave("Toughness", 8 + Level, ParentObject, null, null)) { item2.ApplyEffect(new Stun(Level, SaveTarget: 8 + Level, bDontStunIfPlayer: true)); } } } Potency -= 2; if (doEffect) { Buffer.Goto(C.X, C.Y); string str = "&C"; int num = Stat.Random(1, 3); if (num == 1) { str = "&B"; } if (num == 2) { str = "&Y"; } if (num == 3) { str = "&W"; } int num2 = Stat.Random(1, 3); if (num2 == 1) { str += "^B"; } if (num2 == 2) { str += "^Y"; } if (num2 == 3) { str += "^W"; } if (C.ParentZone == XRLCore.Core.Game.ZoneManager.ActiveZone) { Stat.Random(1, 3); Buffer.Write(str + (char)(219 + Stat.Random(0, 4))); Popup._TextConsole.DrawBuffer(Buffer); Thread.Sleep(10); } } }