示例#1
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;
        }
示例#2
0
        // Function from file: blob_reagents.dm
        public override dynamic damage_reaction(Obj_Effect_Blob B = null, double original_health = 0, dynamic damage = null, dynamic damage_type = null, dynamic cause = null)
        {
            dynamic newB = null;


            if (Convert.ToDouble(damage) > 0 && original_health - Convert.ToDouble(damage) > 0)
            {
                newB = B.expand();

                if (Lang13.Bool(newB))
                {
                    newB.health = original_health - Convert.ToDouble(damage);
                    ((Obj_Effect_Blob)newB).check_health(cause);
                    newB.update_icon();
                }
            }
            return(base.damage_reaction(B, original_health, (object)(damage), (object)(damage_type), (object)(cause)));
        }