// Function from file: datacore.dm public void removeMinorCrime(dynamic id = null, string cDataId = null) { Data_Record R = null; dynamic crimes = null; Data_Crime crime = null; foreach (dynamic _b in Lang13.Enumerate(this.security, typeof(Data_Record))) { R = _b; if (R.fields["id"] == id) { crimes = R.fields["mi_crim"]; foreach (dynamic _a in Lang13.Enumerate(crimes, typeof(Data_Crime))) { crime = _a; if (crime.dataId == String13.ParseNumber(cDataId)) { crimes -= crime; return; } } } } return; }
// Function from file: xenobiology.dm public override bool attack(dynamic M = null, dynamic user = null, bool?def_zone = null) { string newname = null; if (!(M is Mob_Living_SimpleAnimal_Slime)) { user.WriteMsg("<span class='warning'>The potion only works on slimes!</span>"); return(base.attack((object)(M), (object)(user), def_zone)); } if (Lang13.Bool(M.stat)) { user.WriteMsg("<span class='warning'>The slime is dead!</span>"); return(base.attack((object)(M), (object)(user), def_zone)); } M.docile = true; M.nutrition = 700; M.WriteMsg("<span class='warning'>You absorb the potion and feel your intense desire to feed melt away.</span>"); user.WriteMsg("<span class='notice'>You feed the slime the potion, removing its hunger and calming it.</span>"); newname = String13.SubStr(GlobalFuncs.sanitize(Interface13.Input(user, "Would you like to give the slime a name?", "Name your new pet", "pet slime", null, InputType.Str | InputType.Null)), 1, 26); if (!Lang13.Bool(newname)) { newname = "pet slime"; } M.name = newname; M.real_name = newname; GlobalFuncs.qdel(this); return(false); }
// Function from file: god.dm public void structure_construction_ui(Mob_Camera_God user = null) { string dat = null; dynamic t = null; dynamic apath = null; string imgstate = null; Icon I = null; string img_component = null; Browser popup = null; dat = ""; foreach (dynamic _a in Lang13.Enumerate(GlobalVars.global_handofgod_structuretypes)) { t = _a; if (Lang13.Bool(GlobalVars.global_handofgod_structuretypes[t])) { apath = GlobalVars.global_handofgod_structuretypes[t]; dat += "<center><B>" + GlobalFuncs.capitalize(t) + "</B></center><BR>"; imgstate = (Lang13.Bool(Lang13.Initial(apath, "autocolours")) ? "" + Lang13.Initial(apath, "icon_state") + "-" + this.side : "" + Lang13.Initial(apath, "icon_state")); I = new Icon("icons/obj/hand_of_god_structures.dmi", imgstate); img_component = String13.ToLower(t); Interface13.CacheBrowseResource(user, I, "hog_structure-" + img_component + ".png"); dat += "<center><img src='hog_structure-" + img_component + ".png' height=64 width=64></center>"; dat += "Description: " + Lang13.Initial(apath, "desc") + "<BR>"; dat += new Txt("<center><a href='?src=").Ref(this).str(";create_structure=").item(apath).str("'>Construct ").item(GlobalFuncs.capitalize(t)).str("</a></center><BR><BR>").ToString(); } } popup = new Browser(this, "structures", "Construct Structure", 350, 500); popup.set_content(dat); popup.open(); return; }
// Function from file: say.dm public override bool say(dynamic message = null, string bubble_type = null) { bool _default = false; message = GlobalFuncs.trim(String13.SubStr(GlobalFuncs.sanitize(message), 1, 1024)); if (!Lang13.Bool(message)) { return(_default); } GlobalFuncs.log_say("Ghost/" + this.key + " : " + message); if (this.client != null) { if ((this.client.prefs.muted & 16) != 0) { this.WriteMsg("<span class='danger'>You cannot talk in deadchat (muted).</span>"); return(_default); } if (this.client.handle_spam_prevention(message, 16)) { return(_default); } } _default = this.say_dead(message) != null; return(_default); }
public void stop( ) { dynamic T = null; if (!this.can_use(Task13.User)) { return; } if (this.recording) { this.recording = false; this.mytape.timestamp.Add(this.mytape.used_capacity); this.mytape.storedinfo.Add("[" + String13.FormatTime(this.mytape.used_capacity * 10, "mm:ss") + "] Recording stopped."); Task13.User.WriteMsg("<span class='notice'>Recording stopped.</span>"); return; } else if (this.playing) { this.playing = false; T = GlobalFuncs.get_turf(this); ((Ent_Static)T).visible_message("<font color=Maroon><B>Tape Recorder</B>: Playback stopped.</font>"); } this.update_icon(); return; }
// Function from file: say.dm public virtual string say_quote(dynamic input = null, dynamic spans = null) { spans = spans ?? new ByTable(); string ending = null; if (!Lang13.Bool(input)) { return("says, \"...\""); } ending = String13.SubStr(input, Lang13.Length(input), 0); if (String13.SubStr(input, Lang13.Length(input) - 1, 0) == "!!") { spans |= "yell"; return("" + this.verb_yell + ", \"" + GlobalFuncs.attach_spans(input, spans) + "\""); } input = GlobalFuncs.attach_spans(input, spans); if (ending == "?") { return("" + this.verb_ask + ", \"" + input + "\""); } if (ending == "!") { return("" + this.verb_exclaim + ", \"" + input + "\""); } return("" + this.verb_say + ", \"" + input + "\""); }
// Function from file: experimentor.dm public double?matchReaction(dynamic matching = null, string reaction = null) { dynamic D = null; double? tor = null; D = matching; if (Lang13.Bool(D)) { if (this.item_reactions.Find("" + D.type) != 0) { tor = Lang13.DoubleNullable(this.item_reactions["" + D.type]); if (tor == String13.ParseNumber(reaction)) { return(tor); } else { return(8); } } else { return(8); } } else { return(8); } return(null); }
public File save_map(dynamic t1 = null, dynamic t2 = null, string map_name = null, dynamic flags = null) { dynamic file_text = null; File saved_map = null; if (!(String13.CKeyPreserveCase(map_name) == map_name && Lang13.Bool(String13.CKeyPreserveCase(map_name)))) { Task13.Crash("Invalid text supplied to proc save_map, invalid characters or empty string."); } if (!(t1 is Tile) || !(t2 is Tile)) { Task13.Crash("Invalid arguments supplied to proc save_map, arguments were not turfs."); } file_text = this.__CallVerb("write map", t1, t2, flags); if (File13.Exists("" + map_name + ".dmm")) { File13.Delete("" + map_name + ".dmm"); } saved_map = new File("" + map_name + ".dmm"); saved_map.WriteMsg(file_text); return(saved_map); }
// Function from file: work_tools.dm public override dynamic Topic(string href = null, ByTable href_list = null, dynamic hsrc = null) { base.Topic(href, href_list, (object)(hsrc)); if (Lang13.Bool(href_list["mode"])) { this.mode = String13.ParseNumber(href_list["mode"]); switch ((int?)(this.mode)) { case 0: this.occupant_message("Switched RCD to Deconstruct."); this.energy_drain = Lang13.Initial(this, "energy_drain"); break; case 1: this.occupant_message("Switched RCD to Construct."); this.energy_drain = Lang13.Initial(this, "energy_drain") * 2; break; case 2: this.occupant_message("Switched RCD to Construct Airlock."); this.energy_drain = Lang13.Initial(this, "energy_drain") * 2; break; } } return(null); }
// Function from file: navbeacon.dm public void set_codes( ) { ByTable entries = null; dynamic e = null; int index = 0; string key = null; string val = null; if (!Lang13.Bool(this.codes_txt)) { return; } this.codes = new ByTable(); entries = GlobalFuncs.splittext(this.codes_txt, ";"); foreach (dynamic _a in Lang13.Enumerate(entries)) { e = _a; index = String13.FindIgnoreCase(e, "=", 1, 0); if (index != 0) { key = String13.SubStr(e, 1, index); val = String13.SubStr(e, index + 1, 0); this.codes[key] = val; } else { this.codes[e] = "1"; } } return; }
// Function from file: reader.dm public string trim_text(string what = null, bool?trim_quotes = null) { trim_quotes = trim_quotes ?? false; while (Lang13.Length(what) != 0 && String13.FindIgnoreCase(what, " ", 1, 2) != 0) { what = String13.SubStr(what, 2, 0); } while (Lang13.Length(what) != 0 && String13.FindIgnoreCase(what, " ", Lang13.Length(what), 0) != 0) { what = String13.SubStr(what, 1, Lang13.Length(what)); } if (trim_quotes == true) { while (Lang13.Length(what) != 0 && String13.FindIgnoreCase(what, this.quote, 1, 2) != 0) { what = String13.SubStr(what, 2, 0); } while (Lang13.Length(what) != 0 && String13.FindIgnoreCase(what, this.quote, Lang13.Length(what), 0) != 0) { what = String13.SubStr(what, 1, Lang13.Length(what)); } } return(what); }
// Function from file: ai_laws.dm public AiLaws_Custom( ) { dynamic line = null; // Warning: Super call was HERE! If anything above HERE is needed by the super call, it might break!; foreach (dynamic _a in Lang13.Enumerate(GlobalFuncs.file2list("config/silicon_laws.txt"))) { line = _a; if (!Lang13.Bool(line)) { continue; } if (String13.Find(line, "#", 1, 2) != 0) { continue; } this.add_inherent_law(line); } if (!(this.inherent.len != 0)) { GlobalFuncs.log_law("AI created with empty custom laws, laws set to Asimov. Please check silicon_laws.txt."); this.add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm."); this.add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law."); this.add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law."); GlobalFuncs.warning("" + "Invalid custom AI laws, check silicon_laws.txt" + " in " + "code/datums/ai_laws.dm" + " at line " + 123 + " src: " + this + " usr: "******"."); return; } return; }
private string trim_text(string what = null, bool?trim_quotes = null) { if (trim_quotes == null) { trim_quotes = false; } while (Lang13.Length(what) != 0 && String13.Find(what, " ", 1, 2) != 0) { what = String13.SubStr(what, 2, 0); } while (Lang13.Length(what) != 0 && String13.Find(what, " ", Lang13.Length(what), 0) != 0) { what = String13.SubStr(what, 1, Lang13.Length(what)); } if (trim_quotes == true) { while (Lang13.Length(what) != 0 && String13.Find(what, this.quote, 1, 2) != 0) { what = String13.SubStr(what, 2, 0); } while (Lang13.Length(what) != 0 && String13.Find(what, this.quote, Lang13.Length(what), 0) != 0) { what = String13.SubStr(what, 1, Lang13.Length(what)); } } return(what); }
private int find_next_delimiter_position(string text = null, int initial_position = 0, string delimiter = null, string opening_escape = null, string closing_escape = null) { int position = 0; int next_delimiter = 0; int next_opening = 0; if (delimiter == null) { delimiter = ","; } if (opening_escape == null) { opening_escape = this.quote; } if (closing_escape == null) { closing_escape = this.quote; } position = initial_position; next_delimiter = String13.Find(text, delimiter, position, 0); next_opening = String13.Find(text, opening_escape, position, 0); while (next_opening != 0 && next_opening < next_delimiter) { position = String13.Find(text, closing_escape, next_opening + 1, 0) + 1; next_delimiter = String13.Find(text, delimiter, position, 0); next_opening = String13.Find(text, opening_escape, position, 0); } return(next_delimiter); }
// Function from file: runes.dm public Obj_Effect_Rune_Malformed(dynamic loc = null) : base((object)(loc)) { // Warning: Super call was HERE! If anything above HERE is needed by the super call, it might break!; this.icon_state = "" + Rand13.Int(1, 6); this.color = String13.ColorCode(Rand13.Int(0, 255), Rand13.Int(0, 255), Rand13.Int(0, 255)); return; }
// Function from file: shuttles.dm public void initial_move( ) { Obj_DockingPort_Mobile M = null; Obj_DockingPort_Stationary S = null; foreach (dynamic _b in Lang13.Enumerate(this.mobile, typeof(Obj_DockingPort_Mobile))) { M = _b; if (!Lang13.Bool(M.roundstart_move)) { continue; } foreach (dynamic _a in Lang13.Enumerate(this.stationary, typeof(Obj_DockingPort_Stationary))) { S = _a; if (S.z != 1 && String13.FindIgnoreCase(S.id, M.id, 1, 0) != 0) { S.width = M.width; S.height = M.height; S.dwidth = M.dwidth; S.dheight = M.dheight; } } this.moveShuttle(M.id, "" + M.roundstart_move, 0); } return; }
// Function from file: overmind.dm public void blob_talk(dynamic message = null) { string message_a = null; string rendered = null; dynamic M = null; GlobalFuncs.log_say("" + GlobalFuncs.key_name(this) + " : " + message); message = GlobalFuncs.trim(String13.SubStr(GlobalFuncs.sanitize(message), 1, 1024)); if (!Lang13.Bool(message)) { return; } message_a = this.say_quote(message, this.get_spans()); rendered = "<span class='big'><font color=\"#EE4000\"><b>[Blob Telepathy] " + this.name + "(<font color=\"" + this.blob_reagent_datum.color + "\">" + this.blob_reagent_datum.name + "</font>)</b> " + message_a + "</font></span>"; foreach (dynamic _a in Lang13.Enumerate(GlobalVars.mob_list)) { M = _a; if (M is Mob_Camera_Blob || M is Mob_Living_SimpleAnimal_Hostile_Blob) { M.WriteMsg(rendered); } if (M is Mob_Dead_Observer) { M.WriteMsg(new Txt("<a href='?src=").Ref(M).str(";follow=").Ref(this).str("'>(F)</a> ").item(rendered).ToString()); } } return; }
// Function from file: traitordevices.dm public override dynamic Topic(string href = null, ByTable href_list = null, dynamic hsrc = null) { double?amount = null; double?amount2 = null; if (!Task13.User.canUseTopic(this)) { return(1); } Task13.User.set_machine(this); if (Lang13.Bool(href_list["radint"])) { amount = String13.ParseNumber(href_list["radint"]); amount += this.intensity; this.intensity = Num13.MaxInt(1, Num13.MinInt(10, ((int)(amount ?? 0)))); } else if (Lang13.Bool(href_list["radwav"])) { amount2 = String13.ParseNumber(href_list["radwav"]); amount2 += this.wavelength; this.wavelength = Num13.MaxInt(1, Num13.MinInt(120, ((int)(amount2 ?? 0)))); } this.attack_self(Task13.User); this.add_fingerprint(Task13.User); return(null); }
// Function from file: folders.dm public override dynamic attackby(dynamic A = null, dynamic user = null, string _params = null, bool?silent = null, bool?replace_spent = null) { string n_name = null; if (A is Obj_Item_Weapon_Paper || A is Obj_Item_Weapon_Photo || A is Obj_Item_Documents) { if (!((Mob)user).unEquip(A)) { return(null); } A.loc = this; user.WriteMsg("<span class='notice'>You put " + A + " into " + this + ".</span>"); this.update_icon(); } else if (A is Obj_Item_Weapon_Pen) { n_name = String13.SubStr(GlobalFuncs.sanitize(Interface13.Input(user, "What would you like to label the folder?", "Folder Labelling", null, null, InputType.Str)), 1, 26); if (Map13.GetDistance(this, user) <= 1 && Lang13.Bool(user.stat) == false) { this.name = "folder" + (Lang13.Bool(n_name) ? "- '" + n_name + "'" : null); } } return(null); }
// Function from file: transit_tube_construction.dm public virtual void tube_flip( ) { ByTable split_text = null; split_text = GlobalFuncs.splittext(this.icon_state, "-"); if (Lang13.Length(split_text[2]) < 2) { return; } if (split_text.len == 3 && split_text[3] != "Pass") { split_text.Swap(2, 3); } else if (Lang13.Length(split_text[1]) == 2 && Lang13.Length(split_text[2]) == 2) { split_text[1] = String13.SubStr(split_text[1], 1, 2) + String13.SubStr(split_text[2], 2, 3); split_text[2] = String13.SubStr(split_text[2], 1, 2) + (String13.SubStr(split_text[2], 2, 3) == "E" ? "W" : "E"); } else if (split_text[1] == "N" || split_text[1] == "S") { split_text[2] = String13.SubStr(split_text[2], 1, 2) + (String13.SubStr(split_text[2], 2, 3) == "E" ? "W" : "E"); } else { split_text[2] = (String13.SubStr(split_text[2], 1, 2) == "N" ? "S" : "N") + String13.SubStr(split_text[2], 2, 3); } this.icon_state = GlobalFuncs.jointext(split_text, "-"); return; }
// Function from file: blob.dm public void burst_blob(Mind blob = null, bool?warned = null) { warned = warned ?? false; Client blob_client = null; dynamic location = null; dynamic C = null; Obj_Effect_Blob_Core core = null; blob_client = null; location = null; if (blob.current is Mob_Living_Carbon) { C = blob.current; if (Lang13.Bool(GlobalVars.directory[String13.CKey(blob.key)])) { blob_client = GlobalVars.directory[String13.CKey(blob.key)]; location = GlobalFuncs.get_turf(C); if (Lang13.Bool(location.z) != true || location is Tile_Space) { if (!(warned == true)) { C.WriteMsg("<span class='userdanger'>You feel ready to burst, but this isn't an appropriate place! You must return to the station!</span>"); GlobalFuncs.message_admins("" + GlobalFuncs.key_name(C) + " was in space when the blobs burst, and will die if he doesn't return to the station."); Task13.Schedule(300, (Task13.Closure)(() => { this.burst_blob(blob, true); return; })); } else { this.burst++; GlobalFuncs.log_admin("" + GlobalFuncs.key_name(C) + " was in space when attempting to burst as a blob."); GlobalFuncs.message_admins("" + GlobalFuncs.key_name(C) + " was in space when attempting to burst as a blob."); ((Mob)C).gib(); this.make_blobs(1); this.check_finished(); } } else if (blob_client != null && Lang13.Bool(location)) { this.burst++; ((Mob)C).gib(); core = new Obj_Effect_Blob_Core(location, 200, blob_client, this.blob_point_rate); if (core.overmind != null && core.overmind.mind != null) { core.overmind.mind.name = blob.name; this.infected_crew.Remove(blob); this.infected_crew.Add(core.overmind.mind); core.overmind.mind.special_role = "Blob Overmind"; } } } } return; }
// Function from file: handlabeler.dm public override dynamic attack_self(dynamic user = null, dynamic flag = null, bool?emp = null) { string str = null; if (!((Mob)user).IsAdvancedToolUser()) { user.WriteMsg("<span class='warning'>You don't have the dexterity to use " + this + "!</span>"); return(null); } this.mode = !this.mode; this.icon_state = "labeler" + this.mode; if (this.mode) { user.WriteMsg("<span class='notice'>You turn on " + this + ".</span>"); str = String13.SubStr(GlobalFuncs.reject_bad_text(Interface13.Input(user, "Label text?", "Set label", "", null, InputType.Any)), 1, 26); if (!Lang13.Bool(str) || !(Lang13.Length(str) != 0)) { user.WriteMsg("<span class='warning'>Invalid text!</span>"); return(null); } this.label = str; user.WriteMsg("<span class='notice'>You set the text to '" + str + "'.</span>"); } else { user.WriteMsg("<span class='notice'>You turn off " + this + ".</span>"); } return(null); }
public bool reenter_corpse( ) { if (!(this.client != null)) { return(false); } if (!(this.mind != null && Lang13.Bool(this.mind.current))) { this.WriteMsg("<span class='warning'>You have no body.</span>"); return(false); } if (!(this.can_reenter_corpse == true)) { this.WriteMsg("<span class='warning'>You cannot re-enter your body.</span>"); return(false); } if (Lang13.Bool(this.mind.current.key) && String13.SubStr(this.mind.current.key, 1, 2) != "@") { Task13.User.WriteMsg("<span class='warning'>Another consciousness is in your body...It is resisting you.</span>"); return(false); } GlobalVars.SStgui.on_transfer(this, this.mind.current); this.mind.current.key = this.key; return(true); }
// Function from file: holidays.dm public virtual string getStationPrefix( ) { int i = 0; i = String13.FindIgnoreCase(this.name, " ", 1, 0); return(String13.SubStr(this.name, 1, i)); }
// Function from file: species_types.dm public override dynamic handle_speech(dynamic message = null, Mob_Living_Carbon_Human H = null) { ByTable message_list = null; int maxchanges = 0; int? i = null; int insertpos = 0; string inserttext = null; message_list = GlobalFuncs.splittext(message, " "); maxchanges = Num13.MaxInt(Num13.Floor(message_list.len / 1.5), 2); i = null; i = Rand13.Int(((int)(maxchanges / 2)), maxchanges); while ((i ?? 0) > 0) { insertpos = Rand13.Int(1, message_list.len - 1); inserttext = message_list[insertpos]; if (!(String13.SubStr(inserttext, Lang13.Length(inserttext) - 2, 0) == "...")) { message_list[insertpos] = inserttext + "..."; } if (Rand13.PercentChance(20) && message_list.len > 3) { message_list.Insert(insertpos, "" + Rand13.Pick(new object [] { "BRAINS", "Brains", "Braaaiinnnsss", "BRAAAIIINNSSS" }) + "..."); } i--; } return(GlobalFuncs.jointext(message_list, " ")); }
// 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: god.dm public void trap_construction_ui(Mob_Camera_God user = null) { string dat = null; dynamic t = null; dynamic T = null; Icon I = null; string img_component = null; Browser popup = null; dat = ""; foreach (dynamic _a in Lang13.Enumerate(GlobalVars.global_handofgod_traptypes)) { t = _a; if (Lang13.Bool(GlobalVars.global_handofgod_traptypes[t])) { T = GlobalVars.global_handofgod_traptypes[t]; dat += "<center><B>" + GlobalFuncs.capitalize(t) + "</B></center><BR>"; I = new Icon("icons/obj/hand_of_god_structures.dmi", "" + Lang13.Initial(T, "icon_state")); img_component = String13.ToLower(t); Interface13.CacheBrowseResource(user, I, "hog_trap-" + img_component + ".png"); dat += "<center><img src='hog_trap-" + img_component + ".png' height=64 width=64></center>"; dat += "Description: " + Lang13.Initial(T, "desc") + "<BR>"; dat += new Txt("<center><a href='?src=").Ref(this).str(";place_trap=").item(T).str("'>Place ").item(GlobalFuncs.capitalize(t)).str("</a></center><BR><BR>").ToString(); } } popup = new Browser(this, "traps", "Place Trap", 350, 500); popup.set_content(dat); popup.open(); return; }
// Function from file: signaler.dm public void signal( ) { Signal signal = null; string time = null; dynamic T = null; if (!(this.radio_connection != null)) { return; } signal = new Signal(); signal.source = this; signal.encryption = this.code; signal.data["message"] = "ACTIVATE"; this.radio_connection.post_signal(this, signal); time = String13.FormatTime(Game13.realtime, "hh:mm:ss"); T = GlobalFuncs.get_turf(this); if (Task13.User != null) { GlobalVars.lastsignalers.Add("" + time + " <B>:</B> " + Task13.User.key + " used " + this + " @ location (" + T.x + "," + T.y + "," + T.z + ") <B>:</B> " + GlobalFuncs.format_frequency(this.frequency) + "/" + this.code); } return; }
// Function from file: god.dm public void god_speak(dynamic msg = null) { string rendered = null; dynamic M = null; GlobalFuncs.log_say("Hand of God: " + GlobalFuncs.capitalize(this.side) + " God/" + GlobalFuncs.key_name(this) + " : " + msg); msg = GlobalFuncs.trim(String13.SubStr(GlobalFuncs.sanitize(msg), 1, 1024)); if (!Lang13.Bool(msg)) { return; } msg = this.say_quote(msg, this.get_spans()); rendered = "<font color='#045FB4'><i><span class='game say'>Divine Telepathy, <span class='name'>" + this.name + "</span> <span class='message'>" + msg + "</span></span></i></font>"; foreach (dynamic _a in Lang13.Enumerate(GlobalVars.mob_list)) { M = _a; if (this.is_handofgod_myprophet(M) || M is Mob_Dead_Observer) { M.show_message(rendered, 2); } } this.WriteMsg(rendered); return; }
// Function from file: book.dm public override dynamic Topic(string href = null, ByTable href_list = null, dynamic hsrc = null) { double? iconi = null; dynamic biblename = null; dynamic B = null; if (Lang13.Bool(href_list["seticon"]) && GlobalVars.ticker != null && !Lang13.Bool(GlobalVars.ticker.Bible_icon_state)) { iconi = String13.ParseNumber(href_list["seticon"]); biblename = GlobalVars.biblenames[iconi]; B = Lang13.FindObj(href_list["src"]); B.icon_state = GlobalVars.biblestates[iconi]; B.item_state = GlobalVars.bibleitemstates[iconi]; this.setupbiblespecifics(B, Task13.User); if (GlobalVars.ticker != null) { GlobalVars.ticker.Bible_icon_state = B.icon_state; GlobalVars.ticker.Bible_item_state = B.item_state; } GlobalFuncs.feedback_set_details("religion_book", "" + biblename); Interface13.Browse(Task13.User, null, "window=editicon"); } return(null); }