void Cmd_timebomb(string nick, string message) { Channel chan = p_manager.GetChannel(); if (chan.IsPrivate()) { return; } string channel = chan.GetName(); if (m_timers.ContainsKey(channel)) { chan.Say("Only one timebomb is allowed at a time."); return; } if (m_cooldown.ContainsKey(channel)) { chan.Say("Assembling a new bomb. Please wait... (" + (int)(m_cooldown[channel].GetRemaining() / 1000.0) + "s)"); return; } string dst_name = Chatcommand.GetNext(ref message); dst_name = chan.FindNickname(dst_name, false); if (dst_name == null) { chan.Say(nick + ": Unknown or invalid nickname specified."); return; } if (dst_name == G.settings["nickname"]) { E.Notice(nick, "You fell for it, fool! Thunder Cross Split Attack!"); dst_name = nick; } // Take a random amount from "colors" string[] choices = new string[Utils.random.Next(2, 5)]; string choice_str = ""; for (int i = 0; i < choices.Length; ++i) { choices[i] = (string)Utils.RandomIn(colors); // Format chat output choice_str += choices[i]; if (i < choices.Length - 1) { choice_str += ", "; } } string color = (string)Utils.RandomIn(choices); var data = new DisarmData(dst_name, color, Utils.random.Next(50, 90) * 1000.0); data.timer.Elapsed += delegate { BoomTimerElapsed(channel); }; m_timers[channel] = data; chan.Say(dst_name + ": Tick tick.. " + (int)(data.timer.Interval / 1000.0) + "s until explosion. Try $cutwire <color> from one of these colors: " + choice_str); }