Exemplo n.º 1
0
        // Function from file: robot_modules.dm
        public override void respawn_consumable(dynamic R = null, double?coeff = null)
        {
            coeff = coeff ?? 1;

            dynamic T = null;
            Obj_Item_AmmoCasing_Energy S = null;

            base.respawn_consumable((object)(R), coeff);
            T = Lang13.FindIn(typeof(Obj_Item_Weapon_Gun_Energy_Gun_Advtaser_Cyborg), this.get_usable_modules());

            if (Lang13.Bool(T))
            {
                if (Convert.ToDouble(T.power_supply.charge) < (T.power_supply.maxcharge ?? 0))
                {
                    S = T.ammo_type[T.select];
                    ((Obj_Item_Weapon_StockParts_Cell)T.power_supply).give((S.e_cost ?? 0) * (coeff ?? 0));
                    T.update_icon();
                }
                else
                {
                    T.charge_tick = 0;
                }
            }
            return;
        }
Exemplo n.º 2
0
        // Function from file: halloween.dm
        public override bool start(  )
        {
            Mob_Living_Carbon_Human H = null;
            dynamic b = null;
            Mob_Living_SimpleAnimal_Pet_Dog_Corgi_Ian Ian = null;

            base.start();

            foreach (dynamic _a in Lang13.Enumerate(GlobalVars.mob_list, typeof(Mob_Living_Carbon_Human)))
            {
                H = _a;

                b = Lang13.FindIn(typeof(Obj_Item_Weapon_Storage_Backpack), H.contents);
                new Obj_Item_Weapon_Storage_Spooky(b);

                if (Rand13.PercentChance(50))
                {
                    H.set_species(typeof(Species_Skeleton));
                }
                else
                {
                    H.set_species(typeof(Species_Zombie));
                }
            }

            foreach (dynamic _b in Lang13.Enumerate(GlobalVars.mob_list, typeof(Mob_Living_SimpleAnimal_Pet_Dog_Corgi_Ian)))
            {
                Ian = _b;

                Ian.place_on_head(new Obj_Item_Weapon_Bedsheet(Ian));
            }
            return(false);
        }
Exemplo n.º 3
0
        // Function from file: mining_mobs.dm
        public override void on_life(  )
        {
            dynamic H            = null;
            dynamic B            = null;
            int     blood_volume = 0;

            base.on_life();

            if (Lang13.Bool(this.owner))
            {
                ((Mob_Living)this.owner).adjustBruteLoss(-1);
                ((Mob_Living)this.owner).adjustFireLoss(-1);
                ((Mob_Living)this.owner).adjustOxyLoss(-2);
            }

            if (this.owner is Mob_Living_Carbon_Human)
            {
                H            = this.owner;
                B            = Lang13.FindIn(typeof(Reagent_Blood), H.vessel.reagent_list);
                blood_volume = Num13.Floor(H.vessel.get_reagent_amount("blood") ?1:0);

                if (Lang13.Bool(B) && blood_volume < 560 && blood_volume != 0)
                {
                    B.volume += 2;
                }
            }
            return;
        }
        // Function from file: alien_powers.dm
        public override bool fire(Mob user = null)
        {
            dynamic choice = null;


            if (Lang13.Bool(Lang13.FindIn(typeof(Obj_Structure_Alien_Resin), user.loc)))
            {
                user.WriteMsg("<span class='danger'>There is already a resin structure there.</span>");
                return(false);
            }
            choice = Interface13.Input("Choose what you wish to shape.", "Resin building", null, null, this.structures, InputType.Null | InputType.Any);

            if (!Lang13.Bool(choice))
            {
                return(false);
            }

            if (!this.cost_check(this.check_turf, user))
            {
                return(false);
            }
            user.WriteMsg("<span class='notice'>You shape a " + choice + ".</span>");
            user.visible_message("<span class='notice'>" + user + " vomits up a thick purple substance and begins to shape it.</span>");
            choice = this.structures[choice];
            Lang13.Call(choice, user.loc);
            return(true);
        }
Exemplo n.º 5
0
        // Function from file: powers.dm
        public void remove_blob(dynamic T = null)
        {
            dynamic B = null;

            B = Lang13.FindIn(typeof(Obj_Effect_Blob), T);

            if (!Lang13.Bool(B))
            {
                this.WriteMsg("<span class='warning'>There is no blob there!</span>");
                return;
            }

            if ((B.point_return ?? 0) < 0)
            {
                this.WriteMsg("<span class='warning'>Unable to remove this blob.</span>");
                return;
            }

            if (this.max_blob_points < (B.point_return ?? 0) + (this.blob_points ?? 0))
            {
                this.WriteMsg("<span class='warning'>You have too many resources to remove this blob!</span>");
                return;
            }

            if (Lang13.Bool(B.point_return))
            {
                this.add_points(B.point_return);
                this.WriteMsg(new Txt("<span class='notice'>Gained ").item(B.point_return).str(" resources from removing ").the(B).item().str(".</span>").ToString());
            }
            GlobalFuncs.qdel(B);
            return;
        }
Exemplo n.º 6
0
        // Function from file: mouse.dm
        public override bool handle_automated_action(  )
        {
            dynamic F = null;
            dynamic C = null;


            if (Rand13.PercentChance(this.chew_probability))
            {
                F = GlobalFuncs.get_turf(this);

                if (F is Tile_Simulated_Floor && !F.intact)
                {
                    C = Lang13.FindIn(typeof(Obj_Structure_Cable), F);

                    if (Lang13.Bool(C) && Rand13.PercentChance(15))
                    {
                        if (Lang13.Bool(C.avail()))
                        {
                            this.visible_message("<span class='warning'>" + this + " chews through the " + C + ". It's toast!</span>");
                            GlobalFuncs.playsound(this, "sound/effects/sparks2.ogg", 100, 1);
                            ((Obj)C).Deconstruct();
                            this.death(null, true);
                        }
                        else
                        {
                            ((Obj)C).Deconstruct();
                            this.visible_message("<span class='warning'>" + this + " chews through the " + C + ".</span>");
                        }
                    }
                }
            }
            return(false);
        }
Exemplo n.º 7
0
        // Function from file: shieldgen.dm
        public bool shields_up(  )
        {
            dynamic target_tile = null;


            if (this.active)
            {
                return(false);
            }
            this.active = true;
            this.update_icon();

            foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRange(this, this.shield_range)))
            {
                target_tile = _a;


                if (target_tile is Tile_Space && !Lang13.Bool(Lang13.FindIn(typeof(Obj_Machinery_Shield), target_tile)))
                {
                    if (this.malfunction && Rand13.PercentChance(33) || !this.malfunction)
                    {
                        this.deployed_shields.Add(new Obj_Machinery_Shield(target_tile));
                    }
                }
            }
            return(false);
        }
Exemplo n.º 8
0
        // Function from file: disposal-structures.dm
        public Obj_Structure_Disposaloutlet(dynamic loc = null, Obj_Structure_Disposalconstruct make_from = null) : base((object)(loc))
        {
            // Warning: Super call was HERE! If anything above HERE is needed by the super call, it might break!;

            if (make_from != null)
            {
                this.dir      = make_from.dir;
                make_from.loc = this;
                this.stored   = make_from;
            }
            else
            {
                this.stored = new Obj_Structure_Disposalconstruct(this, 7, this.dir);
            }
            Task13.Schedule(1, (Task13.Closure)(() => {
                this.target = GlobalFuncs.get_ranged_target_turf(this, this.dir, 10);
                this.trunk  = Lang13.FindIn(typeof(Obj_Structure_Disposalpipe_Trunk), this.loc);

                if (Lang13.Bool(this.trunk))
                {
                    this.trunk.linked = this;
                }
                return;
            }));
            return;
        }
        public override bool f_action(Mob_Living_Silicon_Robot R = null)
        {
            dynamic T = null;


            if (base.f_action(R))
            {
                return(false);
            }
            T = Lang13.FindIn(typeof(Obj_Item_Weapon_Gun_Energy_Disabler_Cyborg), R.module.modules);

            if (!Lang13.Bool(T))
            {
                Task13.User.WriteMsg("<span class='notice'>There's no disabler in this unit!</span>");
                return(false);
            }

            if (T.charge_delay <= 2)
            {
                R.WriteMsg("<span class='notice'>A cooling unit is already installed!</span>");
                Task13.User.WriteMsg("<span class='notice'>There's no room for another cooling unit!</span>");
                return(false);
            }
            T.charge_delay = Num13.MaxInt(2, T.charge_delay - 4);
            return(true);
        }
Exemplo n.º 10
0
        // Function from file: organs.dm
        public override void on_life(  )
        {
            double heal_amt = 0;


            if (Lang13.Bool(Lang13.FindIn(typeof(Obj_Structure_Alien_Weeds), this.owner.loc)))
            {
                if (Convert.ToDouble(this.owner.health) >= Convert.ToDouble(this.owner.maxHealth))
                {
                    ((Mob_Living_Carbon)this.owner).adjustPlasma(this.plasma_rate);
                }
                else
                {
                    heal_amt = this.heal_rate;

                    if (!(this.owner is Mob_Living_Carbon_Alien))
                    {
                        heal_amt *= 0.2;
                    }
                    ((Mob_Living_Carbon)this.owner).adjustPlasma(this.plasma_rate * 0.5);
                    ((Mob_Living)this.owner).adjustBruteLoss(-heal_amt);
                    ((Mob_Living)this.owner).adjustFireLoss(-heal_amt);
                    ((Mob_Living)this.owner).adjustOxyLoss(-heal_amt);
                    ((Mob_Living)this.owner).adjustCloneLoss(-heal_amt);
                }
            }
            return;
        }
Exemplo n.º 11
0
        // Function from file: effects_foam.dm
        public void spread_foam(  )
        {
            dynamic    t_loc     = null;
            dynamic    T         = null;
            dynamic    foundfoam = null;
            Mob_Living L         = null;
            dynamic    F         = null;

            t_loc = GlobalFuncs.get_turf(this);

            foreach (dynamic _b in Lang13.Enumerate(((Tile)t_loc).GetAtmosAdjacentTurfs()))
            {
                T = _b;

                foundfoam = Lang13.FindIn(typeof(Obj_Effect_ParticleEffect_Foam), T);

                if (Lang13.Bool(foundfoam))
                {
                    continue;
                }

                foreach (dynamic _a in Lang13.Enumerate(T, typeof(Mob_Living)))
                {
                    L = _a;

                    this.foam_mob(L);
                }
                F        = GlobalFuncs.PoolOrNew(this.type, T);
                F.amount = this.amount;
                this.reagents.copy_to(F, this.reagents.total_volume);
                F.color = this.color;
                F.metal = this.metal;
            }
            return;
        }
Exemplo n.º 12
0
        // Function from file: food_reagents.dm
        public override void reaction_turf(dynamic T = null, double?volume = null)
        {
            dynamic hotspot   = null;
            dynamic lowertemp = null;


            if (!(T is Tile_Simulated))
            {
                return;
            }

            if ((volume ?? 0) >= 3)
            {
                ((Tile_Simulated)T).MakeSlippery();
            }
            hotspot = Lang13.FindIn(typeof(Obj_Effect_Hotspot), T);

            if (Lang13.Bool(hotspot))
            {
                lowertemp             = ((Ent_Static)T).remove_air(((GasMixture)T.air).total_moles());
                lowertemp.temperature = Num13.MaxInt(Num13.MinInt(Convert.ToInt32(lowertemp.temperature - 2000), Convert.ToInt32(lowertemp.temperature / 2)), 0);
                ((GasMixture)lowertemp).react();
                ((Ent_Static)T).assume_air(lowertemp);
                GlobalFuncs.qdel(hotspot);
            }
            return;
        }
Exemplo n.º 13
0
        // Function from file: borghydro.dm
        public virtual void DescribeContents(  )
        {
            bool     empty = false;
            Reagents RS    = null;
            dynamic  R     = null;

            empty = true;

            foreach (dynamic _a in Lang13.Enumerate(this.reagent_list, typeof(Reagents)))
            {
                RS = _a;

                R = Lang13.FindIn(typeof(Reagent), RS.reagent_list);

                if (Lang13.Bool(R))
                {
                    Task13.User.WriteMsg(new Txt("<span class='notice'>It currently has ").item(R.volume).str(" unit").s().str(" of ").item(R.name).str(" stored.</span>").ToString());
                    empty = false;
                }
            }

            if (empty)
            {
                Task13.User.WriteMsg("<span class='warning'>It is currently empty! Allow some time for the internal syntheszier to produce more.</span>");
            }
            return;
        }
Exemplo n.º 14
0
        // Function from file: stack.dm
        public bool building_checks(StackRecipe R = null, double?multiplier = null)
        {
            if ((this.get_amount() ?? 0) < (R.req_amount ?? 0) * (multiplier ?? 0))
            {
                if ((R.req_amount ?? 0) * (multiplier ?? 0) > 1)
                {
                    Task13.User.WriteMsg(new Txt("<span class='warning'>You haven't got enough ").item(this).str(" to build ").the((R.req_amount ?? 0) * (multiplier ?? 0)).item().str(" ").item(R.title).s().str("!</span>").ToString());
                }
                else
                {
                    Task13.User.WriteMsg(new Txt("<span class='warning'>You haven't got enough ").item(this).str(" to build ").the(R.title).item().str("!</span>").ToString());
                }
                return(false);
            }

            if (R.one_per_turf == true && Lang13.Bool(Lang13.FindIn(R.result_type, Task13.User.loc)))
            {
                Task13.User.WriteMsg("<span class='warning'>There is another " + R.title + " here!</span>");
                return(false);
            }

            if (R.on_floor == true && !(Task13.User.loc is Tile_Simulated_Floor))
            {
                Task13.User.WriteMsg(new Txt("<span class='warning'>").The(R.title).item().str(" must be constructed on the floor!</span>").ToString());
                return(false);
            }
            return(true);
        }
Exemplo n.º 15
0
        // Function from file: singularity.dm
        public bool can_move(dynamic T = null)
        {
            dynamic G = null;
            dynamic S = null;


            if (!Lang13.Bool(T))
            {
                return(false);
            }

            if (Lang13.Bool(Lang13.FindIn(typeof(Obj_Machinery_Field_Containment), T)) || Lang13.Bool(Lang13.FindIn(typeof(Obj_Machinery_Shieldwall), T)))
            {
                return(false);
            }
            else if (Lang13.Bool(Lang13.FindIn(typeof(Obj_Machinery_Field_Generator), T)))
            {
                G = Lang13.FindIn(typeof(Obj_Machinery_Field_Generator), T);

                if (Lang13.Bool(G) && Lang13.Bool(G.active))
                {
                    return(false);
                }
            }
            else if (Lang13.Bool(Lang13.FindIn(typeof(Obj_Machinery_Shieldwallgen), T)))
            {
                S = Lang13.FindIn(typeof(Obj_Machinery_Shieldwallgen), T);

                if (Lang13.Bool(S) && Lang13.Bool(S.active))
                {
                    return(false);
                }
            }
            return(true);
        }
Exemplo n.º 16
0
        // Function from file: ripley.dm
        public override bool Move(dynamic NewLoc = null, int?Dir = null, int step_x = 0, int step_y = 0)
        {
            bool _default = false;

            dynamic             ore_box = null;
            Obj_Item_Weapon_Ore ore     = null;

            _default = base.Move((object)(NewLoc), Dir, step_x, step_y);

            if (_default && Lang13.Bool(Lang13.FindIn(typeof(Obj_Item_MechaParts_MechaEquipment_HydraulicClamp), this.equipment)))
            {
                ore_box = Lang13.FindIn(typeof(Obj_Structure_OreBox), this.cargo);

                if (Lang13.Bool(ore_box))
                {
                    foreach (dynamic _a in Lang13.Enumerate(GlobalFuncs.get_turf(this), typeof(Obj_Item_Weapon_Ore)))
                    {
                        ore = _a;

                        ore.Move(ore_box);
                    }
                }
            }
            this.update_pressure();
            return(_default);
        }
Exemplo n.º 17
0
        // Function from file: structures.dm
        public override dynamic attack_hand(dynamic a = null, bool?b = null, bool?c = null)
        {
            dynamic L = null;

            base.attack_hand((object)(a), b, c);
            L = Lang13.FindIn(typeof(Mob_Living), GlobalFuncs.get_turf(this));

            if (!GlobalFuncs.is_handofgod_cultist(a))
            {
                a.WriteMsg("<span class='notice'>You try to use it, but unfortunately you don't know any rituals.</span>");
                return(null);
            }

            if (!Lang13.Bool(L))
            {
                return(null);
            }

            if (this.side == "red" && GlobalFuncs.is_handofgod_redcultist(a) || this.side == "blue" && GlobalFuncs.is_handofgod_bluecultist(a))
            {
                if (this.side == "red" && GlobalFuncs.is_handofgod_redcultist(L) || this.side == "blue" && GlobalFuncs.is_handofgod_bluecultist(L))
                {
                    a.WriteMsg("<span class='danger'>You cannot sacrifice a fellow cultist.</span>");
                    return(null);
                }
                a.WriteMsg("<span class='notice'>You attempt to sacrifice " + L + " by invoking the sacrificial ritual.</span>");
                this.sacrifice(L);
            }
            else
            {
                a.WriteMsg("<span class='notice'>You attempt to sacrifice " + L + " by invoking the sacrificial ritual.</span>");
                a.WriteMsg("<span class='danger'>But the altar ignores your words...</span>");
            }
            return(null);
        }
Exemplo n.º 18
0
        // Function from file: gibber.dm
        public Obj_Machinery_Gibber_Autogibber(dynamic loc = null) : base((object)(loc))
        {
            dynamic i         = null;
            dynamic input_obj = null;

            // Warning: Super call was HERE! If anything above HERE is needed by the super call, it might break!;
            Task13.Schedule(5, (Task13.Closure)(() => {
                foreach (dynamic _a in Lang13.Enumerate(GlobalVars.cardinal))
                {
                    i = _a;

                    input_obj = Lang13.FindIn(typeof(Obj_Machinery_Mineral_Input), Map13.GetStep(this.loc, Convert.ToInt32(i)));

                    if (Lang13.Bool(input_obj))
                    {
                        if (input_obj.loc is Tile)
                        {
                            this.input_plate = input_obj.loc;
                            GlobalFuncs.qdel(input_obj);
                            break;
                        }
                    }
                }

                if (!(this.input_plate != null))
                {
                    GlobalVars.diary.WriteMsg("a " + this + " didn't find an input plate.");
                    return;
                }
                return;
            }));
            return;
        }
Exemplo n.º 19
0
        // Function from file: tracker.dm
        public override dynamic attackby(dynamic A = null, dynamic user = null, string _params = null, bool?silent = null, bool?replace_spent = null)
        {
            dynamic S = null;


            if (A is Obj_Item_Weapon_Crowbar)
            {
                GlobalFuncs.playsound(this.loc, "sound/machines/click.ogg", 50, 1);
                ((Ent_Static)user).visible_message("" + user + " begins to take the glass off the solar tracker.", "<span class='notice'>You begin to take the glass off the solar tracker...</span>");

                if (GlobalFuncs.do_after(user, 50 / A.toolspeed, null, this))
                {
                    S = Lang13.FindIn(typeof(Obj_Item_SolarAssembly), this);

                    if (Lang13.Bool(S))
                    {
                        S.loc = this.loc;
                        ((Obj_Item_SolarAssembly)S).give_glass(this.stat & 1);
                    }
                    GlobalFuncs.playsound(this.loc, "sound/items/Deconstruct.ogg", 50, 1);
                    ((Ent_Static)user).visible_message("" + user + " takes the glass off the tracker.", "<span class='notice'>You take the glass off the tracker.</span>");
                    GlobalFuncs.qdel(this);
                }
                return(null);
            }
            base.attackby((object)(A), (object)(user), _params, silent, replace_spent);
            return(null);
        }
Exemplo n.º 20
0
        // Function from file: _disease.dm
        public Disease(  )
        {
            dynamic        H = null;
            Obj_Item_Organ O = null;


            if (this.required_organs != null && this.required_organs.len != 0)
            {
                if (this.affected_mob is Mob_Living_Carbon_Human)
                {
                    H = this.affected_mob;

                    foreach (dynamic _a in Lang13.Enumerate(this.required_organs, typeof(Obj_Item_Organ)))
                    {
                        O = _a;


                        if (!Lang13.Bool(Lang13.FindIn(O, H.organs)))
                        {
                            if (!Lang13.Bool(Lang13.FindIn(O, H.internal_organs)))
                            {
                                this.cure();
                                return;
                            }
                        }
                    }
                }
            }
            GlobalVars.SSdisease.processing.Add(this);
            return;
        }
Exemplo n.º 21
0
        // Function from file: twohanded.dm
        public override void CheckParts(Game_Data holder = null)
        {
            dynamic G  = null;
            dynamic C4 = null;
            Obj_Item_Weapon_Grenade_C4 C42 = null;


            if (Lang13.Bool(this.explosive))
            {
                this.explosive.loc = GlobalFuncs.get_turf(this.loc);
                this.explosive     = null;
            }
            G = Lang13.FindIn(typeof(Obj_Item_Weapon_Grenade), this.contents);

            if (Lang13.Bool(G))
            {
                this.explosive = G;
                this.name      = "explosive lance";
                this.desc      = "A makeshift spear with " + G + " attached to it. Alt+click on the spear to set your war cry!";
                return;
            }
            C4 = Lang13.FindIn(typeof(Obj_Item_Weapon_C4), this.contents);

            if (Lang13.Bool(C4))
            {
                C42 = new Obj_Item_Weapon_Grenade_C4(this);
                GlobalFuncs.qdel(C4);
                this.explosive = C42;
                this.desc      = "A makeshift spear with " + C42 + " attached to it. Alt+click on the spear to set your war cry!";
            }
            this.update_icon();
            return;
        }
Exemplo n.º 22
0
        // Function from file: abduction_gear.dm
        public void ProbeAttack(dynamic L = null, dynamic user = null)
        {
            string  species  = null;
            string  helptext = null;
            dynamic H        = null;
            dynamic temp     = null;

            ((Ent_Static)L).visible_message("<span class='danger'>" + user + " probes " + L + " with " + this + "!</span>", "<span class='userdanger'>" + user + " probes you!</span>");
            species  = "<span class='warning'>Unknown species</span>";
            helptext = "<span class='warning'>Species unsuitable for experiments.</span>";

            if (L is Mob_Living_Carbon_Human)
            {
                H       = L;
                species = "<span clas=='notice'>" + H.dna.species.name + "</span>";

                if (Lang13.Bool(L.mind) && L.mind.changeling != null)
                {
                    species = "<span class='warning'>Changeling lifeform</span>";
                }
                temp = Lang13.FindIn(typeof(Obj_Item_Organ_Internal_Gland), H.internal_organs);

                if (Lang13.Bool(temp))
                {
                    helptext = "<span class='warning'>Experimental gland detected!</span>";
                }
                else
                {
                    helptext = "<span class='notice'>Subject suitable for experiments.</span>";
                }
            }
            user.WriteMsg("<span class='notice'>Probing result:</span>" + species);
            user.WriteMsg("" + helptext);
            return;
        }
Exemplo n.º 23
0
        // Function from file: shielding.dm
        public override bool update_icon(dynamic new_state = null, dynamic new_icon = null, int?new_px = null, int?new_py = null)
        {
            dynamic direction = null;
            dynamic machine   = null;

            this.overlays.Cut();

            foreach (dynamic _a in Lang13.Enumerate(GlobalVars.alldirs))
            {
                direction = _a;

                machine = Lang13.FindIn(typeof(Obj_Machinery), Map13.GetStep(this.loc, Convert.ToInt32(direction)));

                if (machine is Obj_Machinery_AmShielding && machine.control_unit == this.control_unit || machine is Obj_Machinery_Power_AmControlUnit && machine == this.control_unit)
                {
                    this.overlays.Add("shield_" + direction);
                }
            }

            if (this.core_check())
            {
                this.overlays.Add("core");

                if (!this.processing)
                {
                    this.setup_core();
                }
            }
            else if (this.processing)
            {
                this.shutdown_core();
            }
            return(false);
        }
Exemplo n.º 24
0
        // Function from file: aliens.dm
        public void Life(  )
        {
            dynamic U = null;
            dynamic T = null;

            U = GlobalFuncs.get_turf(this);

            if (U is Tile_Space)
            {
                GlobalFuncs.qdel(this);
                return;
            }

            if (!(this.linked_node != null) || Map13.GetDistance(this.linked_node, this) > this.linked_node.node_range)
            {
                return;
            }

            foreach (dynamic _a in Lang13.Enumerate(((Tile)U).GetAtmosAdjacentTurfs()))
            {
                T = _a;


                if (Lang13.Bool(Lang13.FindIn(typeof(Obj_Structure_Alien_Weeds), Lang13.Bool(T) || T is Tile_Space)))
                {
                    continue;
                }
                new Obj_Structure_Alien_Weeds(T, this.linked_node);
            }
            return;
        }
Exemplo n.º 25
0
        // Function from file: spacevine.dm
        public void spread(  )
        {
            dynamic           direction = null;
            Tile              stepturf  = null;
            SpacevineMutation SM        = null;

            direction = Rand13.PickFromTable(GlobalVars.cardinal);
            stepturf  = Map13.GetStep(this, Convert.ToInt32(direction));

            foreach (dynamic _a in Lang13.Enumerate(this.mutations, typeof(SpacevineMutation)))
            {
                SM = _a;

                SM.on_spread(this, stepturf);
                stepturf = Map13.GetStep(this, Convert.ToInt32(direction));
            }

            if (!Lang13.Bool(Lang13.FindIn(typeof(Obj_Effect_Spacevine), stepturf)))
            {
                if (stepturf.Enter(this))
                {
                    if (this.master != null)
                    {
                        this.master.spawn_spacevine_piece(stepturf, this);
                    }
                }
            }
            return;
        }
        // Function from file: dna_console.dm
        public Obj_Machinery_Computer_ScanConsolenew(dynamic location = null, dynamic C = null) : base((object)(location), (object)(C))
        {
            // Warning: Super call was HERE! If anything above HERE is needed by the super call, it might break!;
            Task13.Schedule(5, (Task13.Closure)(() => {
                foreach (dynamic _a in Lang13.Enumerate(new ByTable(new object [] { GlobalVars.NORTH, GlobalVars.EAST, GlobalVars.SOUTH, GlobalVars.WEST })))
                {
                    this.dir = Convert.ToInt32(_a);

                    this.connected = Lang13.FindIn(typeof(Obj_Machinery_DnaScannernew), Map13.GetStep(this, this.dir));

                    if (!(this.connected == null))
                    {
                        break;
                    }
                }
                Task13.Schedule(250, (Task13.Closure)(() => {
                    this.injectorready = true;
                    return;
                }));
                return;

                return;
            }));
            return;
        }
        // Function from file: gateway.dm
        public void detect(  )
        {
            Ent_Static T = null;
            dynamic    i = null;
            dynamic    G = null;

            this.linked = new ByTable();
            T           = this.loc;

            foreach (dynamic _a in Lang13.Enumerate(GlobalVars.alldirs))
            {
                i = _a;

                T = Map13.GetStep(this.loc, Convert.ToInt32(i));
                G = Lang13.FindIn(typeof(Obj_Machinery_Gateway), T);

                if (Lang13.Bool(G))
                {
                    this.linked.Add(G);
                    continue;
                }
                this.ready = false;
                this.toggleoff();
                break;
            }

            if (this.linked.len == 8)
            {
                this.ready = true;
            }
            return;
        }
Exemplo n.º 28
0
        // Function from file: teleporter.dm
        public bool link_console_and_hub(  )
        {
            foreach (dynamic _a in Lang13.Enumerate(new ByTable(new object [] { GlobalVars.NORTH, GlobalVars.EAST, GlobalVars.SOUTH, GlobalVars.WEST })))
            {
                this.dir = Convert.ToInt32(_a);

                this.teleporter_hub = Lang13.FindIn(typeof(Obj_Machinery_Teleport_Hub), Map13.GetStep(this, this.dir));

                if (Lang13.Bool(this.teleporter_hub))
                {
                    this.teleporter_hub.link_power_station();
                    break;
                }
            }

            foreach (dynamic _b in Lang13.Enumerate(new ByTable(new object [] { GlobalVars.NORTH, GlobalVars.EAST, GlobalVars.SOUTH, GlobalVars.WEST })))
            {
                this.dir = Convert.ToInt32(_b);

                this.teleporter_console = Lang13.FindIn(typeof(Obj_Machinery_Computer_Teleporter), Map13.GetStep(this, this.dir));

                if (Lang13.Bool(this.teleporter_console))
                {
                    ((Obj_Machinery_Computer_Teleporter)this.teleporter_console).link_power_station();
                    break;
                }
            }
            return(Lang13.Bool(this.teleporter_hub) && Lang13.Bool(this.teleporter_console));
        }
Exemplo n.º 29
0
 // Function from file: meter.dm
 public Obj_Machinery_Meter(dynamic loc = null) : base((object)(loc))
 {
     // Warning: Super call was HERE! If anything above HERE is needed by the super call, it might break!;
     GlobalVars.SSair.atmos_machinery.Add(this);
     this.target = Lang13.FindIn(typeof(Obj_Machinery_Atmospherics_Pipe), this.loc);
     return;             // Warning! Attempt to return some other value!
 }
Exemplo n.º 30
0
        // Function from file: grenade_launcher.dm
        public override bool afterattack(dynamic target = null, dynamic user = null, bool?proximity_flag = null, string click_parameters = null)
        {
            if (target is Obj_Item_Weapon_Storage_Backpack)
            {
                return(false);
            }
            else if (Lang13.Bool(Lang13.FindIn(typeof(Obj_Structure_Table), this.loc)))
            {
                return(false);
            }
            else if (target == user)
            {
                return(false);
            }

            if (this.grenades.len != 0)
            {
                this.fire_grenade(target, user);
            }
            else
            {
                Task13.User.WriteMsg("<span class='danger'>The grenade launcher is empty.</span>");
            }
            return(false);
        }