Exemple #1
0
        // 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;
        }
Exemple #2
0
        // 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);
        }
Exemple #3
0
        // 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;
        }
Exemple #4
0
        // 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);
        }
Exemple #5
0
        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;
        }
Exemple #6
0
        // 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);
        }
Exemple #8
0
        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;
        }
Exemple #11
0
        // 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);
        }
Exemple #12
0
        // 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;
        }
Exemple #13
0
 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);
 }
Exemple #14
0
        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);
        }
Exemple #15
0
 // 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;
 }
Exemple #16
0
        // 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;
        }
Exemple #17
0
        // 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;
        }
Exemple #18
0
        // 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;
        }
Exemple #21
0
        // 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);
        }
Exemple #23
0
        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);
        }
Exemple #24
0
        // 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));
        }
Exemple #25
0
        // 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, " "));
        }
Exemple #26
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;
        }
Exemple #27
0
        // 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;
        }
Exemple #28
0
        // 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;
        }
Exemple #29
0
        // 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);
        }