// 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; }
// 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); }
// 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; }