Ejemplo n.º 1
0
        // Function from file: tgstation.dme
        public void affect_coord(int x = 0, int y = 0, double?ex_act_force = null, int pull_chance = 0, int turf_removal_chance = 0)
        {
            Tile       T = null;
            Obj        O = null;
            Mob_Living M = null;

            T = Map13.GetTile(x, y, this.z);

            if (T == null)
            {
                return;
            }

            if (Rand13.PercentChance(pull_chance))
            {
                foreach (dynamic _a in Lang13.Enumerate(T.contents, typeof(Obj)))
                {
                    O = _a;


                    if (Lang13.Bool(O.anchored))
                    {
                        O.ex_act(ex_act_force);
                    }
                    else
                    {
                        Map13.StepTowardsSimple(O, this);
                    }
                }

                foreach (dynamic _b in Lang13.Enumerate(T.contents, typeof(Mob_Living)))
                {
                    M = _b;

                    Map13.StepTowardsSimple(M, this);
                }
            }

            if (T != null && T is Tile_Simulated && Rand13.PercentChance(turf_removal_chance))
            {
                T.ex_act(ex_act_force);
            }
            return;
        }
Ejemplo n.º 2
0
        // Function from file: anomalies.dm
        public override void anomalyEffect(  )
        {
            Obj     O      = null;
            dynamic target = null;

            base.anomalyEffect();

            if (!(this.loc is Tile))
            {
                GlobalFuncs.qdel(this);
                return;
            }
            this.grav(Rand13.Int(0, 3), Rand13.Int(2, 3), 50, 25);

            foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRange(this, 2), typeof(Obj)))
            {
                O = _a;


                if (O == this)
                {
                    return;
                }

                if (!Lang13.Bool(O.anchored))
                {
                    target = Lang13.FindIn(typeof(Mob_Living), Map13.FetchInView(this, 4));

                    if (Lang13.Bool(target) && !Lang13.Bool(target.stat))
                    {
                        O.throw_at(target, 7, 5);
                    }
                }
                else
                {
                    O.ex_act(2);
                }
            }
            return;
        }