// Function from file: spell.dm
        public bool los_check(dynamic A = null, Mob_Living B = null)
        {
            Obj         dummy = null;
            dynamic     turf  = null;
            Ent_Dynamic AM    = null;

            dummy             = new Obj(A.loc);
            dummy.pass_flags |= 1;

            foreach (dynamic _b in Lang13.Enumerate(GlobalFuncs.getline(A, B)))
            {
                turf = _b;


                foreach (dynamic _a in Lang13.Enumerate(turf, typeof(Ent_Dynamic)))
                {
                    AM = _a;


                    if (!AM.CanPass(dummy, turf, 1))
                    {
                        GlobalFuncs.qdel(dummy);
                        return(false);
                    }
                }
            }
            GlobalFuncs.qdel(dummy);
            return(true);
        }
Exemple #2
0
        // Function from file: turf.dm
        public override bool Enter(Ent_Dynamic O = null, Ent_Static oldloc = null)
        {
            Obj         obstacle        = null;
            ByTable     large_dense     = null;
            Ent_Dynamic border_obstacle = null;
            Ent_Dynamic obstacle2       = null;


            if (!(O != null))
            {
                return(true);
            }

            if (O.loc is Tile)
            {
                foreach (dynamic _a in Lang13.Enumerate(O.loc, typeof(Obj)))
                {
                    obstacle = _a;


                    if (!obstacle.CheckExit(O, this) && obstacle != O && obstacle != oldloc)
                    {
                        O.Bump(obstacle, 1);
                        return(false);
                    }
                }
            }
            large_dense = new ByTable();

            foreach (dynamic _b in Lang13.Enumerate(this, typeof(Ent_Dynamic)))
            {
                border_obstacle = _b;


                if (Lang13.Bool(border_obstacle.flags & 512))
                {
                    if (!border_obstacle.CanPass(O, O.loc, 1) && oldloc != border_obstacle)
                    {
                        O.Bump(border_obstacle, 1);
                        return(false);
                    }
                }
                else
                {
                    large_dense.Add(border_obstacle);
                }
            }

            if (!this.CanPass(O, this))
            {
                O.Bump(this, 1);
                return(false);
            }

            foreach (dynamic _c in Lang13.Enumerate(large_dense, typeof(Ent_Dynamic)))
            {
                obstacle2 = _c;


                if (!obstacle2.CanPass(O, O.loc, 1) && oldloc != obstacle2)
                {
                    O.Bump(obstacle2, 1);
                    return(false);
                }
            }
            return(true);
        }
Exemple #3
0
        // Function from file: medbeam.dm
        public bool los_check(Ent_Static user = null, dynamic target = null)
        {
            dynamic     user_turf      = null;
            Obj         dummy          = null;
            dynamic     turf           = null;
            Ent_Dynamic AM             = null;
            Obj_Effect_Ebeam_Medical B = null;

            user_turf = user.loc;

            if (this.mounted)
            {
                user_turf = GlobalFuncs.get_turf(user);
            }
            else if (!(user_turf is Tile))
            {
                return(false);
            }
            dummy             = new Obj(user_turf);
            dummy.pass_flags |= 7;

            foreach (dynamic _c in Lang13.Enumerate(GlobalFuncs.getline(user_turf, target)))
            {
                turf = _c;


                if (this.mounted && turf == user_turf)
                {
                    continue;
                }

                if (turf.density)
                {
                    GlobalFuncs.qdel(dummy);
                    return(false);
                }

                foreach (dynamic _a in Lang13.Enumerate(turf, typeof(Ent_Dynamic)))
                {
                    AM = _a;


                    if (!AM.CanPass(dummy, turf, 1))
                    {
                        GlobalFuncs.qdel(dummy);
                        return(false);
                    }
                }

                foreach (dynamic _b in Lang13.Enumerate(turf, typeof(Obj_Effect_Ebeam_Medical)))
                {
                    B = _b;


                    if (B.owner != this.current_beam)
                    {
                        GlobalFuncs.explosion(B.loc, 0, 3, 5, 8);
                        GlobalFuncs.qdel(dummy);
                        return(false);
                    }
                }
            }
            GlobalFuncs.qdel(dummy);
            return(true);
        }