示例#1
0
        // Function from file: apc_frame.dm
        public override bool try_build(Tile_Simulated_Wall on_wall = null)
        {
            dynamic    loc = null;
            Ent_Static A   = null;
            Obj_Machinery_Power_Terminal T = null;
            Obj_Item_Stack_CableCoil     C = null;


            if (!base.try_build(on_wall))
            {
                return(false);
            }
            loc = GlobalFuncs.get_turf(Task13.User);
            A   = loc.loc;

            if (Lang13.Bool(((dynamic)A).get_apc()))
            {
                Task13.User.WriteMsg("<span class='warning'>This area already has APC!</span>");
                return(false);
            }

            foreach (dynamic _a in Lang13.Enumerate(loc, typeof(Obj_Machinery_Power_Terminal)))
            {
                T = _a;


                if (T.master != null)
                {
                    Task13.User.WriteMsg("<span class='warning'>There is another network terminal here!</span>");
                    return(false);
                }
                else
                {
                    C        = new Obj_Item_Stack_CableCoil(loc);
                    C.amount = 10;
                    Task13.User.WriteMsg("<span class='notice'>You cut the cables and disassemble the unused power terminal.</span>");
                    GlobalFuncs.qdel(T);
                }
            }
            return(true);
        }
示例#2
0
        // Function from file: apc_frame.dm
        public virtual bool try_build(Tile_Simulated_Wall on_wall = null)
        {
            int        ndir = 0;
            dynamic    loc  = null;
            Ent_Static A    = null;


            if (Map13.GetDistance(on_wall, Task13.User) > 1)
            {
                return(false);
            }
            ndir = Map13.GetDistance(on_wall, Task13.User);

            if (!GlobalVars.cardinal.Contains(ndir))
            {
                return(false);
            }
            loc = GlobalFuncs.get_turf(Task13.User);
            A   = loc.loc;

            if (!(loc is Tile_Simulated_Floor))
            {
                Task13.User.WriteMsg("<span class='warning'>You cannot place " + this + " on this spot!</span>");
                return(false);
            }

            if (Lang13.Bool(((dynamic)A).requires_power) == false || A is Zone_Space)
            {
                Task13.User.WriteMsg("<span class='warning'>You cannot place " + this + " in this area!</span>");
                return(false);
            }

            if (GlobalFuncs.gotwallitem(loc, ndir, (this.inverse ?1:0) * 2))
            {
                Task13.User.WriteMsg("<span class='warning'>There's already an item on this wall!</span>");
                return(false);
            }
            return(true);
        }
示例#3
0
        // Function from file: apc_frame.dm
        public void attach(Tile_Simulated_Wall on_wall = null)
        {
            int     ndir = 0;
            dynamic O    = null;


            if (this.result_path != null)
            {
                GlobalFuncs.playsound(this.loc, "sound/machines/click.ogg", 75, 1);
                Task13.User.visible_message("" + Task13.User.name + " attaches " + this + " to the wall.", "<span class='notice'>You attach " + this + " to the wall.</span>", "<span class='italics'>You hear clicking.</span>");
                ndir = Map13.GetDistance(on_wall, Task13.User);

                if (this.inverse)
                {
                    ndir = Num13.Rotate(ndir, 180);
                }
                O = Lang13.Call(this.result_path, GlobalFuncs.get_turf(Task13.User), ndir, 1);
                this.transfer_fingerprints_to(O);
            }
            GlobalFuncs.qdel(this);
            return;
        }