Ejemplo n.º 1
0
        // Function from file: broadcaster.dm
        public override void receive_information(Signal signal = null, Obj_Machinery_Telecomms machine_from = null)
        {
            dynamic original       = null;
            string  signal_message = null;


            if (Lang13.Bool(signal.data["reject"]))
            {
                return;
            }

            if (Lang13.Bool(signal.data["message"]))
            {
                signal.data["done"] = 1;
                original            = signal.data["original"];

                if (Lang13.Bool(original))
                {
                    original.data["done"]        = 1;
                    original.data["compression"] = signal.data["compression"];
                    original.data["level"]       = signal.data["level"];
                }
                signal_message = "" + signal.frequency + ":" + signal.data["message"] + ":" + signal.data["realname"];

                if (GlobalVars.recentmessages.Contains(signal_message))
                {
                    return;
                }
                GlobalVars.recentmessages.Add(signal_message);

                if (Convert.ToDouble(signal.data["slow"]) > 0)
                {
                    Task13.Sleep(Convert.ToInt32(signal.data["slow"]));
                }
                signal.data["level"] |= this.listening_level;

                if (Lang13.Bool(signal.data["type"]) == false)
                {
                    GlobalFuncs.Broadcast_Message(signal.data["mob"], Lang13.Bool(signal.data["vmask"]), signal.data["radio"], signal.data["message"], signal.data["name"], signal.data["job"], signal.data["realname"], 0, Lang13.Bool(signal.data["compression"]), signal.data["level"], signal.frequency, signal.data["spans"], signal.data["verb_say"], signal.data["verb_ask"], signal.data["verb_exclaim"], signal.data["verb_yell"]);
                }

                if (Lang13.Bool(signal.data["type"]) == true)
                {
                    GlobalFuncs.Broadcast_SimpleMessage(signal.data["name"], signal.frequency, signal.data["message"], null, null, Lang13.Bool(signal.data["compression"]), this.listening_level);
                }

                if (Convert.ToInt32(signal.data["type"]) == 2)
                {
                    GlobalFuncs.Broadcast_Message(signal.data["mob"], Lang13.Bool(signal.data["vmask"]), signal.data["radio"], signal.data["message"], signal.data["name"], signal.data["job"], signal.data["realname"], 4, Lang13.Bool(signal.data["compression"]), signal.data["level"], signal.frequency, signal.data["spans"], signal.data["verb_say"], signal.data["verb_ask"], signal.data["verb_exclaim"], signal.data["verb_yell"]);
                }

                if (!GlobalVars.message_delay)
                {
                    GlobalVars.message_delay = true;
                    Task13.Schedule(10, (Task13.Closure)(() => {
                        GlobalVars.message_delay  = false;
                        GlobalVars.recentmessages = new ByTable();
                        return;
                    }));
                }
                Icon13.Flick("broadcaster_send", this);
            }
            return;
        }