예제 #1
0
        // Function from file: pyrotechnics.dm
        public override void on_reaction(Reagents holder = null, double?created_volume = null)
        {
            double  smoke_radius            = 0;
            dynamic location                = null;
            EffectSystem_SmokeSpread_Chem S = null;


            if (Lang13.Bool(holder.has_reagent("stabilizing_agent")))
            {
                return;
            }
            holder.remove_reagent("smoke_powder", created_volume);
            smoke_radius = Num13.Round(Math.Sqrt((created_volume ?? 0) / 2), 1);
            location     = GlobalFuncs.get_turf(holder.my_atom);
            S            = new EffectSystem_SmokeSpread_Chem();
            S.attach(location);
            GlobalFuncs.playsound(location, "sound/effects/smoke.ogg", 50, 1, -3);

            if (S != null)
            {
                S.set_up(holder, smoke_radius, 0, location);
                S.start();
            }

            if (holder != null && Lang13.Bool(holder.my_atom))
            {
                holder.clear_reagents();
            }
            return;
        }
예제 #2
0
        // Function from file: pyrotechnics.dm
        public override void on_reaction(Reagents holder = null, double?created_volume = null)
        {
            dynamic location = null;

            location = GlobalFuncs.get_turf(holder.my_atom);
            GlobalFuncs.empulse(location, Num13.Floor((created_volume ?? 0) / 24), Num13.Floor((created_volume ?? 0) / 14), true);
            holder.clear_reagents();
            return;
        }
예제 #3
0
        // Function from file: pyrotechnics.dm
        public override void on_reaction(Reagents holder = null, double?created_volume = null)
        {
            dynamic location = null;
            EffectSystem_ReagentsExplosion e = null;

            location = GlobalFuncs.get_turf(holder.my_atom);
            e        = new EffectSystem_ReagentsExplosion();
            e.set_up(Num13.Round((created_volume ?? 0) / 10, 1), location, 0, 0);
            e.start();
            holder.clear_reagents();
            return;
        }
예제 #4
0
        // Function from file: pyrotechnics.dm
        public override void on_reaction(Reagents holder = null, double?created_volume = null)
        {
            dynamic T = null;


            if (Lang13.Bool(holder.has_reagent("stabilizing_agent")))
            {
                return;
            }
            T = GlobalFuncs.get_turf(holder.my_atom);

            if (T is Tile_Simulated)
            {
                T.atmos_spawn_air(5, created_volume);
            }
            holder.clear_reagents();
            return;
        }
        // Function from file: pyrotechnics.dm
        public override void on_reaction(Reagents holder = null, double?created_volume = null)
        {
            dynamic location = null;
            EffectSystem_ReagentsExplosion e = null;


            if (Lang13.Bool(holder.has_reagent("stabilizing_agent")))
            {
                return;
            }
            holder.remove_reagent("nitroglycerin", created_volume);
            location = GlobalFuncs.get_turf(holder.my_atom);
            e        = new EffectSystem_ReagentsExplosion();
            e.set_up(Num13.Round((created_volume ?? 0) / 2, 1), location, 0, 0);
            e.start();
            holder.clear_reagents();
            return;
        }
예제 #6
0
        // Function from file: others.dm
        public override void on_reaction(Reagents holder = null, double?created_volume = null)
        {
            dynamic location = null;
            dynamic M        = null;
            EffectSystem_FoamSpread_Metal s = null;

            location = GlobalFuncs.get_turf(holder.my_atom);

            foreach (dynamic _a in Lang13.Enumerate(Map13.FetchViewers(location, 5)))
            {
                M = _a;

                M.WriteMsg("<span class='danger'>The solution spews out a metallic foam!</span>");
            }
            s = new EffectSystem_FoamSpread_Metal();
            s.set_up(created_volume, location, holder, 1);
            s.start();
            holder.clear_reagents();
            return;
        }