Beispiel #1
0
        // Function from file: table.dm
        public string build_recipe_text(TableRecipe R = null)
        {
            string _default = null;

            string  name_text     = null;
            string  req_text      = null;
            string  tool_text     = null;
            string  catalist_text = null;
            dynamic A             = null;
            dynamic O             = null;
            dynamic RE            = null;
            dynamic C             = null;
            dynamic RE2           = null;
            dynamic O2            = null;
            dynamic T             = null;

            _default      = "";
            name_text     = "";
            req_text      = "";
            tool_text     = "";
            catalist_text = "";

            if (this.check_contents(R))
            {
                name_text = new Txt("<A href='?src=").Ref(this).str(";make=").Ref(R).str("'>").item(R.name).str("</A>").ToString();
            }
            else
            {
                name_text = "<span class='linkOff'>" + R.name + "</span>";
            }

            if (Lang13.Bool(name_text))
            {
                foreach (dynamic _a in Lang13.Enumerate(R.reqs))
                {
                    A = _a;


                    if (Lang13.Bool(A.IsSubclassOf(typeof(Obj))))
                    {
                        O         = Lang13.Call(A);
                        req_text += " " + R.reqs[A] + " " + O.name;
                        GlobalFuncs.qdel(O);
                    }

                    if (Lang13.Bool(A.IsSubclassOf(typeof(Reagent))))
                    {
                        RE        = Lang13.Call(A);
                        req_text += " " + R.reqs[A] + " " + RE.name;
                        GlobalFuncs.qdel(RE);
                    }
                }

                if (R.chem_catalysts.len != 0)
                {
                    catalist_text += ", Catalysts:";

                    foreach (dynamic _b in Lang13.Enumerate(R.chem_catalysts))
                    {
                        C = _b;


                        if (Lang13.Bool(C.IsSubclassOf(typeof(Reagent))))
                        {
                            RE2            = Lang13.Call(C);
                            catalist_text += " " + R.chem_catalysts[C] + " " + RE2.name;
                            GlobalFuncs.qdel(RE2);
                        }
                    }
                }

                if (R.tools.len != 0)
                {
                    tool_text += ", Tools:";

                    foreach (dynamic _c in Lang13.Enumerate(R.tools))
                    {
                        O2 = _c;


                        if (Lang13.Bool(O2.IsSubclassOf(typeof(Obj))))
                        {
                            T          = Lang13.Call(O2);
                            tool_text += " " + R.tools[O2] + " " + T.name;
                            GlobalFuncs.qdel(T);
                        }
                    }
                }
                _default = "" + name_text + req_text + tool_text + catalist_text + "<BR>";
            }
            return(_default);
        }
Beispiel #2
0
        // Function from file: table.dm
        public override dynamic interact(dynamic user = null, bool?flag1 = null)
        {
            string      dat        = null;
            ByTable     can_craft  = null;
            ByTable     cant_craft = null;
            TableRecipe R          = null;
            TableRecipe R2         = null;
            TableRecipe R3         = null;
            Browser     popup      = null;


            if (((Mob)user).incapacitated() || Lang13.Bool(user.lying) || !this.Adjacent(user))
            {
                return(null);
            }
            this.check_table();
            ((Mob)user).face_atom(this);
            dat = "<h3>Crafting menu</h3>";

            if (this.busy)
            {
                dat += "<div class='statusDisplay'>";
                dat += "Crafting in progress...</div>";
            }
            else
            {
                dat       += new Txt("<A href='?src=").Ref(this).str(";backwardCat=1'><--</A>").ToString();
                dat       += " " + this.categories[this.prev_cat()] + " |";
                dat       += " <B>" + this.categories[this.viewing_category] + "</B> ";
                dat       += "| " + this.categories[this.next_cat()] + " ";
                dat       += new Txt("<A href='?src=").Ref(this).str(";forwardCat=1'>--></A><BR><BR>").ToString();
                dat       += "<div class='statusDisplay'>";
                can_craft  = new ByTable();
                cant_craft = new ByTable();

                foreach (dynamic _a in Lang13.Enumerate(GlobalVars.table_recipes, typeof(TableRecipe)))
                {
                    R = _a;


                    if (R.category != this.categories[this.viewing_category])
                    {
                        continue;
                    }

                    if (this.check_contents(R))
                    {
                        can_craft.Add(R);
                    }
                    else
                    {
                        cant_craft.Add(R);
                    }
                }

                foreach (dynamic _b in Lang13.Enumerate(can_craft, typeof(TableRecipe)))
                {
                    R2 = _b;

                    dat += this.build_recipe_text(R2);
                }

                foreach (dynamic _c in Lang13.Enumerate(cant_craft, typeof(TableRecipe)))
                {
                    R3 = _c;

                    dat += this.build_recipe_text(R3);
                }
                dat += "</div>";
            }
            popup = new Browser(user, "table", "Table", 500, 500);
            popup.set_content(dat);
            popup.open();
            return(null);
        }