Пример #1
0
        // Function from file: space.dm
        public override dynamic Entered(Ent_Dynamic Obj = null, Ent_Static oldloc = null)
        {
            Ent_Dynamic L = null;
            Tile        T = null;

            base.Entered(Obj, oldloc);

            if (!(Obj != null) || this != Obj.loc)
            {
                return(null);
            }

            if (Lang13.Bool(this.destination_z))
            {
                Obj.x = this.destination_x;
                Obj.y = this.destination_y;
                Obj.z = this.destination_z ?? 0;

                if (Obj is Mob_Living)
                {
                    L = Obj;

                    if (Lang13.Bool(((dynamic)L).pulling))
                    {
                        T = Map13.GetStep(L.loc, Num13.Rotate(Obj.dir, 180));
                        ((dynamic)L).pulling.loc = T;
                    }
                }
                Task13.Sleep(0);
                Obj.newtonian_move(Obj.inertia_dir);
            }
            return(null);
        }
Пример #2
0
        // Function from file: transit.dm
        public override dynamic Entered(Ent_Dynamic Obj = null, Ent_Static oldloc = null)
        {
            int  max  = 0;
            int  min  = 0;
            int  ___z = 0;
            int  ___x = 0;
            int  ___y = 0;
            Tile T    = null;


            if (!(Obj != null))
            {
                return(null);
            }
            max  = Game13.map_size_x - 7;
            min  = 8;
            ___z = Rand13.Int(3, 7);

            switch ((int)(this.dir))
            {
            case 2:
                ___x = Rand13.Int(min, max);
                ___y = max;
                break;

            case 8:
                ___x = max;
                ___y = Rand13.Int(min, max);
                break;

            case 4:
                ___x = min;
                ___y = Rand13.Int(min, max);
                break;

            default:
                ___x = Rand13.Int(min, max);
                ___y = min;
                break;
            }
            T       = Map13.GetTile(___x, ___y, ___z);
            Obj.loc = T;
            Obj.newtonian_move(this.dir);
            return(null);
        }