Esempio n. 1
0
        // Function from file: pai.dm
        public void recruitWindow(Mob M = null)
        {
            PaiCandidate candidate = null;
            PaiCandidate c         = null;
            string       dat       = null;


            foreach (dynamic _a in Lang13.Enumerate(this.candidates, typeof(PaiCandidate)))
            {
                c = _a;


                if (c.key == M.key)
                {
                    candidate = c;
                }
            }

            if (!(candidate != null))
            {
                candidate     = new PaiCandidate();
                candidate.key = M.key;
                this.candidates.Add(candidate);
            }
            dat  = "";
            dat += @"
			<style type=""text/css"">

			p.top {
				background-color: #AAAAAA; color: black;
			}

			tr.d0 td {
				background-color: #CC9999; color: black;
			}
			tr.d1 td {
				background-color: #9999CC; color: black;
			}
			</style>
			"            ;
            dat += "<p class=\"top\">Please configure your pAI personality's options. Remember, what you enter here could determine whether or not the user requesting a personality chooses you!</p>";
            dat += "<table>";
            dat += "<tr class=\"d0\"><td>Name:</td><td>" + candidate.name + "</td></tr>";
            dat += new Txt("<tr class=\"d1\"><td><a href='byond://?src=").Ref(this).str(";option=name;new=1;candidate=").Ref(candidate).str("'>[Edit]</a></td><td>What you plan to call yourself. Suggestions: Any character name you would choose for a station character OR an AI.</td></tr>").ToString();
            dat += "<tr class=\"d0\"><td>Description:</td><td>" + candidate.description + "</td></tr>";
            dat += new Txt("<tr class=\"d1\"><td><a href='byond://?src=").Ref(this).str(";option=desc;new=1;candidate=").Ref(candidate).str("'>[Edit]</a></td><td>What sort of pAI you typically play; your mannerisms, your quirks, etc. This can be as sparse or as detailed as you like.</td></tr>").ToString();
            dat += "<tr class=\"d0\"><td>Preferred Role:</td><td>" + candidate.role + "</td></tr>";
            dat += new Txt("<tr class=\"d1\"><td><a href='byond://?src=").Ref(this).str(";option=role;new=1;candidate=").Ref(candidate).str("'>[Edit]</a></td><td>Do you like to partner with sneaky social ninjas? Like to help security hunt down thugs? Enjoy watching an engineer's back while he saves the station yet again? This doesn't have to be limited to just station jobs. Pretty much any general descriptor for what you'd like to be doing works here.</td></tr>").ToString();
            dat += "<tr class=\"d0\"><td>OOC Comments:</td><td>" + candidate.comments + "</td></tr>";
            dat += new Txt("<tr class=\"d1\"><td><a href='byond://?src=").Ref(this).str(";option=ooc;new=1;candidate=").Ref(candidate).str("'>[Edit]</a></td><td>Anything you'd like to address specifically to the player reading this in an OOC manner. \"I prefer more serious RP.\", \"I'm still learning the interface!\", etc. Feel free to leave this blank if you want.</td></tr>").ToString();
            dat += "</table>";
            dat += "<br>";
            dat += new Txt("<h3><a href='byond://?src=").Ref(this).str(";option=submit;new=1;candidate=").Ref(candidate).str("'>Submit Personality</a></h3><br>").ToString();
            dat += new Txt("<a href='byond://?src=").Ref(this).str(";option=save;new=1;candidate=").Ref(candidate).str("'>Save Personality</a><br>").ToString();
            dat += new Txt("<a href='byond://?src=").Ref(this).str(";option=load;new=1;candidate=").Ref(candidate).str("'>Load Personality</a><br>").ToString();
            Interface13.Browse(M, dat, "window=paiRecruit");
            return;
        }
Esempio n. 2
0
        // Function from file: pai.dm
        public void requestRecruits(  )
        {
            Mob_Dead_Observer O       = null;
            bool         hasSubmitted = false;
            PaiCandidate c            = null;


            foreach (dynamic _b in Lang13.Enumerate(GlobalVars.player_list, typeof(Mob_Dead_Observer)))
            {
                O = _b;


                if (GlobalFuncs.jobban_isbanned(O, "pAI"))
                {
                    continue;
                }

                if (Lang13.Bool(this.asked[O.ckey]))
                {
                    if (Game13.time < Convert.ToDouble(this.asked[O.ckey] + this.askDelay) || Convert.ToInt32(this.asked[O.ckey]) == GlobalVars.NEVER_FOR_THIS_ROUND)
                    {
                        continue;
                    }
                    else
                    {
                        this.asked.Remove(O.ckey);
                    }
                }

                if (O.client != null)
                {
                    hasSubmitted = false;

                    foreach (dynamic _a in Lang13.Enumerate(GlobalVars.SSpai.candidates, typeof(PaiCandidate)))
                    {
                        c = _a;


                        if (c.key == O.key)
                        {
                            hasSubmitted = true;
                        }
                    }

                    if (!hasSubmitted && O.client.prefs.be_special.Contains("pAI"))
                    {
                        this.question(O.client);
                    }
                }
            }
            return;
        }
Esempio n. 3
0
        // Function from file: pai.dm
        public void findPAI(Obj_Item_Device_Paicard p = null, Mob user = null)
        {
            ByTable           available = null;
            PaiCandidate      c         = null;
            bool              found     = false;
            Mob_Dead_Observer o         = null;
            string            dat       = null;
            PaiCandidate      c2        = null;

            this.requestRecruits();
            available = new ByTable();

            foreach (dynamic _b in Lang13.Enumerate(GlobalVars.SSpai.candidates, typeof(PaiCandidate)))
            {
                c = _b;


                if (c.ready)
                {
                    found = false;

                    foreach (dynamic _a in Lang13.Enumerate(GlobalVars.player_list, typeof(Mob_Dead_Observer)))
                    {
                        o = _a;


                        if (o.key == c.key)
                        {
                            found = true;
                        }
                    }

                    if (found)
                    {
                        available.Add(c);
                    }
                }
            }
            dat  = "";
            dat += @"
			<style type=""text/css"">

			p.top {
				background-color: #AAAAAA; color: black;
			}

			tr.d0 td {
				background-color: #CC9999; color: black;
			}
			tr.d1 td {
				background-color: #9999CC; color: black;
			}
			tr.d2 td {
				background-color: #99CC99; color: black;
			}
			</style>
			"            ;
            dat += "<p class=\"top\">Requesting AI personalities from central database... If there are no entries, or if a suitable entry is not listed, check again later as more personalities may be added.</p>";
            dat += "<table>";

            foreach (dynamic _c in Lang13.Enumerate(available, typeof(PaiCandidate)))
            {
                c2 = _c;

                dat += "<tr class=\"d0\"><td>Name:</td><td>" + c2.name + "</td></tr>";
                dat += "<tr class=\"d1\"><td>Description:</td><td>" + c2.description + "</td></tr>";
                dat += "<tr class=\"d0\"><td>Preferred Role:</td><td>" + c2.role + "</td></tr>";
                dat += "<tr class=\"d1\"><td>OOC Comments:</td><td>" + c2.comments + "</td></tr>";
                dat += new Txt("<tr class=\"d2\"><td><a href='byond://?src=").Ref(this).str(";download=1;candidate=").Ref(c2).str(";device=").Ref(p).str("'>[Download ").item(c2.name).str("]</a></td><td></td></tr>").ToString();
            }
            dat += "</table>";
            Interface13.Browse(user, dat, "window=findPai");
            return;
        }