Beispiel #1
0
        // Function from file: communications.dm
        public void make_announcement(Mob user = null, bool?is_silicon = null)
        {
            string input = null;

            input = GlobalFuncs.stripped_input(user, "Please choose a message to announce to the station crew.", "What?");

            if (!Lang13.Bool(input) || !user.canUseTopic(this))
            {
                return;
            }

            if (is_silicon == true)
            {
                GlobalFuncs.minor_announce(input, "" + user.name + " Announces:");
                this.ai_message_cooldown = true;
                Task13.Schedule(600, (Task13.Closure)(() => {
                    this.ai_message_cooldown = false;
                    return;
                }));
            }
            else
            {
                GlobalFuncs.priority_announce(String13.HtmlDecode(input), null, "sound/misc/announce.ogg", "Captain");
                this.message_cooldown = true;
                Task13.Schedule(600, (Task13.Closure)(() => {
                    this.message_cooldown = false;
                    return;
                }));
            }
            GlobalFuncs.log_say("" + GlobalFuncs.key_name(user) + " has made a priority announcement: " + input);
            GlobalFuncs.message_admins("" + GlobalFuncs.key_name_admin(user) + " has made a priority announcement.");
            return;
        }
Beispiel #2
0
 // Function from file: parrot.dm
 public override string Hear(string message = null, dynamic speaker = null, int message_langs = 0, dynamic raw_message = null, dynamic radio_freq = null, ByTable spans = null)
 {
     if (speaker != this && Rand13.PercentChance(50))
     {
         if (!Lang13.Bool(radio_freq) || Rand13.PercentChance(10))
         {
             if (this.speech_buffer.len >= 500)
             {
                 this.speech_buffer.Remove(Rand13.PickFromTable(this.speech_buffer));
             }
             this.speech_buffer.Or(String13.HtmlDecode(raw_message));
         }
     }
     base.Hear(message, (object)(speaker), message_langs, (object)(raw_message), (object)(radio_freq), spans);
     return(null);
 }
Beispiel #3
0
        // Function from file: shuttles.dm
        public void requestEvac(Mob user = null, dynamic call_reason = null)
        {
            dynamic signal_origin    = null;
            string  emergency_reason = null;


            if (!(this.emergency != null))
            {
                throw new Exception("requestEvac(): There is no emergency shuttle! The game will be unresolvable. This is likely due to a mapping error");
                return;
            }

            if (Game13.time - GlobalVars.round_start_time < (GlobalVars.config.shuttle_refuel_delay ?? 0))
            {
                user.WriteMsg("The emergency shuttle is refueling. Please wait another " + Math.Abs(Num13.Floor((Game13.time - GlobalVars.round_start_time - (GlobalVars.config.shuttle_refuel_delay ?? 0)) / 600)) + " minutes before trying again.");
                return;
            }

            switch ((int)(this.emergency.mode))
            {
            case 1:
                user.WriteMsg("The emergency shuttle may not be called while returning to Centcom.");
                return;

                break;

            case 2:
                user.WriteMsg("The emergency shuttle is already on its way.");
                return;

                break;

            case 3:
                user.WriteMsg("The emergency shuttle is already here.");
                return;

                break;

            case 5:
                user.WriteMsg("The emergency shuttle is moving away to a safe distance.");
                return;

                break;

            case 4:
                user.WriteMsg("The emergency shuttle has been disabled by Centcom.");
                return;

                break;
            }
            call_reason = GlobalFuncs.trim(String13.HtmlEncode(call_reason));

            if (Lang13.Length(call_reason) < GlobalVars.CALL_SHUTTLE_REASON_LENGTH)
            {
                user.WriteMsg("You must provide a reason.");
                return;
            }
            signal_origin    = GlobalFuncs.get_area(user);
            emergency_reason = "\nNature of emergency:\n\n" + call_reason;

            if (GlobalFuncs.seclevel2num(GlobalFuncs.get_security_level()) == 2)
            {
                this.emergency.request(null, 0.5, signal_origin, String13.HtmlDecode(emergency_reason), true);
            }
            else
            {
                this.emergency.request(null, 1, signal_origin, String13.HtmlDecode(emergency_reason), false);
            }
            GlobalFuncs.log_game("" + GlobalFuncs.key_name(user) + " has called the shuttle.");
            GlobalFuncs.message_admins("" + GlobalFuncs.key_name_admin(user) + " has called the shuttle.");
            return;
        }