예제 #1
0
        // Function from file: powers.dm
        public void set_chemical(  )
        {
            dynamic         BC = null;
            Obj_Effect_Blob BL = null;
            Mob_Living_SimpleAnimal_Hostile_Blob BLO = null;

            BC = Rand13.PickFromTable(Lang13.GetTypes(typeof(Reagent_Blob)) - typeof(Reagent_Blob) - this.blob_reagent_datum.type);
            this.blob_reagent_datum = Lang13.Call(BC);

            foreach (dynamic _a in Lang13.Enumerate(GlobalVars.blobs, typeof(Obj_Effect_Blob)))
            {
                BL = _a;

                BL.update_icon();
            }

            foreach (dynamic _b in Lang13.Enumerate(typeof(Game13), typeof(Mob_Living_SimpleAnimal_Hostile_Blob)))
            {
                BLO = _b;

                BLO.update_icons();
            }
            this.WriteMsg("Your reagent is now: <b><font color=\"" + this.blob_reagent_datum.color + "\">" + this.blob_reagent_datum.name + "</b></font>!");
            this.WriteMsg("The <b><font color=\"" + this.blob_reagent_datum.color + "\">" + this.blob_reagent_datum.name + "</b></font> reagent " + this.blob_reagent_datum.description);
            return;
        }
예제 #2
0
        // Function from file: theblob.dm
        public void Pulse_Area(Mob_Camera_Blob pulsing_overmind = null, int?claim_range = null, int?pulse_range = null, int?expand_range = null)
        {
            pulsing_overmind = pulsing_overmind ?? this.overmind;
            claim_range      = claim_range ?? 10;
            pulse_range      = pulse_range ?? 3;
            expand_range     = expand_range ?? 2;

            Obj_Effect_Blob B  = null;
            Obj_Effect_Blob B2 = null;
            Obj_Effect_Blob B3 = null;

            this.Be_Pulsed();

            if (Lang13.Bool(claim_range))
            {
                foreach (dynamic _a in Lang13.Enumerate(GlobalFuncs.ultra_range(claim_range, this, true), typeof(Obj_Effect_Blob)))
                {
                    B = _a;


                    if (!(B.overmind != null) && !(B is Obj_Effect_Blob_Core) && Rand13.PercentChance(30))
                    {
                        B.overmind = pulsing_overmind;
                        B.update_icon();
                    }
                }
            }

            if (Lang13.Bool(pulse_range))
            {
                foreach (dynamic _b in Lang13.Enumerate(Map13.FetchInRangeExcludeThis(this, pulse_range), typeof(Obj_Effect_Blob)))
                {
                    B2 = _b;

                    B2.Be_Pulsed();
                }
            }

            if (Lang13.Bool(expand_range))
            {
                this.expand();

                foreach (dynamic _c in Lang13.Enumerate(Map13.FetchInRangeExcludeThis(this, expand_range), typeof(Obj_Effect_Blob)))
                {
                    B3 = _c;


                    if (Rand13.PercentChance(Num13.MaxInt(13 - Map13.GetDistance(GlobalFuncs.get_turf(this), GlobalFuncs.get_turf(B3)) * 4, 1)))
                    {
                        B3.expand();
                    }
                }
            }
            return;
        }
예제 #3
0
        // Function from file: smokebomb.dm
        public override void prime(  )
        {
            Obj_Effect_Blob B      = null;
            int             damage = 0;

            this.update_mob();
            GlobalFuncs.playsound(this.loc, "sound/effects/smoke.ogg", 50, 1, -3);
            this.smoke.set_up(4, Task13.User.loc);
            this.smoke.start();

            foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInView(this, 8), typeof(Obj_Effect_Blob)))
            {
                B = _a;

                damage    = Num13.Floor(30 / (Map13.GetDistance(B, this) + 1));
                B.health -= damage;
                B.update_icon();
            }
            Task13.Sleep(80);
            GlobalFuncs.qdel(this);
            return;
        }