// Function from file: flashbang.dm
        public override void prime(  )
        {
            dynamic         flashbang_turf = null;
            Mob_Living      M      = null;
            Obj_Effect_Blob B      = null;
            double          damage = 0;

            this.update_mob();
            flashbang_turf = GlobalFuncs.get_turf(this);

            if (!Lang13.Bool(flashbang_turf))
            {
                return;
            }

            foreach (dynamic _a in Lang13.Enumerate(GlobalFuncs.get_hearers_in_view(7, flashbang_turf), typeof(Mob_Living)))
            {
                M = _a;

                this.bang(GlobalFuncs.get_turf(M), M);
            }

            foreach (dynamic _b in Lang13.Enumerate(GlobalFuncs.get_hear(8, flashbang_turf), typeof(Obj_Effect_Blob)))
            {
                B = _b;

                damage = Num13.Floor(40 / (Map13.GetDistance(B, GlobalFuncs.get_turf(this)) + 1));
                B.take_damage(damage, "fire");
            }
            GlobalFuncs.qdel(this);
            return;
        }
Esempio n. 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)
        {
            double          damagesplit = 0;
            Obj_Effect_Blob C           = null;
            Obj_Effect_Blob C2          = null;


            if (!(cause == null))
            {
                damagesplit = 0.8;

                foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRangeExcludeThis(B, 1), typeof(Obj_Effect_Blob)))
                {
                    C = _a;


                    if (C.overmind != null && C.overmind.blob_reagent_datum == B.overmind.blob_reagent_datum)
                    {
                        damagesplit += 0.8;
                    }
                }

                foreach (dynamic _b in Lang13.Enumerate(Map13.FetchInRangeExcludeThis(B, 1), typeof(Obj_Effect_Blob)))
                {
                    C2 = _b;


                    if (C2.overmind != null && C2.overmind.blob_reagent_datum == B.overmind.blob_reagent_datum && !(C2 is Obj_Effect_Blob_Core))
                    {
                        C2.take_damage(damage / damagesplit, "clone", B, false);
                    }
                }
                return(damage / damagesplit);
            }
            else
            {
                return(damage * 1.25);
            }
        }