예제 #1
0
        // Function from file: chrono_eraser.dm
        public Obj_Effect_ChronoField(dynamic loc = null, Ent_Static target = null, dynamic G = null) : base((object)(loc))
        {
            Icon mob_snapshot   = null;
            Icon cached_icon    = null;
            int? i              = null;
            Icon removing_frame = null;
            Icon mob_icon       = null;


            if (target != null && target is Mob_Living && Lang13.Bool(G))
            {
                target.loc    = this;
                this.captured = target;
                mob_snapshot  = GlobalFuncs.getFlatIcon(target);
                cached_icon   = new Icon();
                i             = null;
                i             = 1;

                while ((i ?? 0) <= 22)
                {
                    removing_frame = new Icon("icons/obj/chronos.dmi", "erasing", GlobalVars.SOUTH, i);
                    mob_icon       = new Icon(mob_snapshot);
                    mob_icon.Blend(removing_frame, 2);
                    cached_icon.Insert(mob_icon, "frame" + i);
                    i++;
                }
                this.mob_underlay = new Image(cached_icon, "frame1");
                this.update_icon();
                this.desc = Lang13.Initial(this, "desc") + ("<br><span class='info'>It appears to contain " + target.name + ".</span>");
            }
            GlobalVars.SSobj.processing.Or(this);
            return;
        }
예제 #2
0
        // Function from file: minimap.dm
        public void generate(dynamic z = null, int?x1 = null, int?y1 = null, int?x2 = null, int?y2 = null)
        {
            z  = z ?? 1;
            x1 = x1 ?? 1;
            y1 = y1 ?? 1;
            x2 = x2 ?? Game13.map_size_x;
            y2 = y2 ?? Game13.map_size_y;

            Icon    minimap   = null;
            ByTable obj_icons = null;
            int     counter   = 0;
            dynamic T         = null;
            dynamic tile      = null;
            Icon    tile_icon = null;
            dynamic obj       = null;
            dynamic I         = null;
            dynamic obj_icon  = null;
            Icon    flatten   = null;
            Icon    final     = null;

            minimap = new Icon("icons/minimap.dmi");
            minimap.Scale(GlobalVars.MINIMAP_SIZE, GlobalVars.MINIMAP_SIZE);
            obj_icons = new ByTable();
            counter   = 128;

            foreach (dynamic _b in Lang13.Enumerate(Map13.FetchInBlock(Map13.GetTile(x1 ?? 0, y1 ?? 0, Convert.ToInt32(z)), Map13.GetTile(x2 ?? 0, y2 ?? 0, Convert.ToInt32(z)))))
            {
                T = _b;

                tile      = T;
                tile_icon = null;
                obj       = null;

                if (tile is Tile_Space)
                {
                    obj = Lang13.FindIn(typeof(Obj_Structure_Lattice_Catwalk), tile);

                    if (Lang13.Bool(obj))
                    {
                        tile_icon = new Icon("icons/obj/smooth_structures/catwalk.dmi", "catwalk", GlobalVars.SOUTH);
                    }
                    obj = Lang13.FindIn(typeof(Obj_Structure_Lattice), tile);

                    if (Lang13.Bool(obj))
                    {
                        tile_icon = new Icon("icons/obj/smooth_structures/lattice.dmi", "lattice", GlobalVars.SOUTH);
                    }
                    obj = Lang13.FindIn(typeof(Obj_Structure_Grille), tile);

                    if (Lang13.Bool(obj))
                    {
                        tile_icon = new Icon("icons/obj/structures.dmi", "grille", GlobalVars.SOUTH);
                    }
                    obj = Lang13.FindIn(typeof(Obj_Structure_TransitTube), tile);

                    if (Lang13.Bool(obj))
                    {
                        tile_icon = new Icon("icons/obj/atmospherics/pipes/transit_tube.dmi", obj.icon_state, Lang13.DoubleNullable(obj.dir));
                    }
                }
                else
                {
                    tile_icon = new Icon(tile.icon, tile.icon_state, Lang13.DoubleNullable(tile.dir));
                    obj_icons.Cut();
                    obj = Lang13.FindIn(typeof(Obj_Structure), tile);

                    if (Lang13.Bool(obj))
                    {
                        obj_icons.Add(GlobalFuncs.getFlatIcon(obj));
                    }
                    obj = Lang13.FindIn(typeof(Obj_Machinery), tile);

                    if (Lang13.Bool(obj))
                    {
                        obj_icons.Add(new Icon(obj.icon, obj.icon_state, Lang13.DoubleNullable(obj.dir), 1, false));
                    }
                    obj = Lang13.FindIn(typeof(Obj_Structure_Window), tile);

                    if (Lang13.Bool(obj))
                    {
                        obj_icons.Add(new Icon("icons/obj/smooth_structures/window.dmi", "window", GlobalVars.SOUTH));
                    }

                    foreach (dynamic _a in Lang13.Enumerate(obj_icons))
                    {
                        I = _a;

                        obj_icon = I;
                        tile_icon.Blend(obj_icon, 3);
                    }
                }

                if (tile_icon != null)
                {
                    tile_icon.Scale(GlobalVars.TILE_SIZE, GlobalVars.TILE_SIZE);
                    minimap.Blend(tile_icon, 3, Lang13.DoubleNullable((tile.x - 1) * 8), Lang13.DoubleNullable((tile.y - 1) * 8));
                    Lang13.Delete(tile_icon);
                    tile_icon = null;
                }
                counter--;

                if (counter <= 0)
                {
                    counter = 128;
                    flatten = new Icon();
                    flatten.Insert(minimap, "", GlobalVars.SOUTH, 1, false);
                    Lang13.Delete(minimap);
                    minimap = null;
                    minimap = flatten;
                    Task13.Sleep(-1);
                }
            }
            final = new Icon();
            final.Insert(minimap, "", GlobalVars.SOUTH, 1, false);
            File13.Copy(final, this.map_path(z));
            return;
        }