Ejemplo n.º 1
0
        // Function from file: LINDA_fire.dm
        public bool perform_exposure(  )
        {
            Ent_Static location = null;
            GasMixture affected = null;
            dynamic    A        = null;
            dynamic    item     = null;

            location = this.loc;

            if (!(location is Tile_Simulated) || !Lang13.Bool(((dynamic)location).air))
            {
                return(false);
            }

            if ((this.volume ?? 0) > 2375)
            {
                this.bypassing = true;
            }
            else
            {
                this.bypassing = false;
            }

            if (this.bypassing)
            {
                if (!this.just_spawned)
                {
                    this.volume      = ((dynamic)location).air.fuel_burnt * 40000;
                    this.temperature = ((dynamic)location).air.temperature;
                }
            }
            else
            {
                affected             = ((GasMixture)((dynamic)location).air).remove_ratio((this.volume ?? 0) / Convert.ToDouble(((dynamic)location).air.volume));
                affected.temperature = this.temperature;
                affected.react();
                this.temperature = affected.temperature;
                this.volume      = affected.fuel_burnt * 40000;
                location.assume_air(affected);
            }

            foreach (dynamic _a in Lang13.Enumerate(this.loc))
            {
                A = _a;

                item = A;

                if (Lang13.Bool(item) && item != this)
                {
                    ((Ent_Static)item).fire_act(null, this.temperature, this.volume);
                }
            }
            return(false);
        }
Ejemplo n.º 2
0
        // Function from file: other_reagents.dm
        public override void reaction_turf(dynamic T = null, double?volume = null)
        {
            int CT = 0;
            Mob_Living_SimpleAnimal_Slime M = null;
            dynamic    hotspot = null;
            GasMixture G       = null;


            if (!(T is Tile_Simulated))
            {
                return;
            }
            CT = this.cooling_temperature;

            if ((volume ?? 0) >= 10)
            {
                ((Tile_Simulated)T).MakeSlippery();
            }

            foreach (dynamic _a in Lang13.Enumerate(T, typeof(Mob_Living_SimpleAnimal_Slime)))
            {
                M = _a;

                M.apply_water();
            }
            hotspot = Lang13.FindIn(typeof(Obj_Effect_Hotspot), T);

            if (Lang13.Bool(hotspot) && !(T is Tile_Space))
            {
                if (Lang13.Bool(T.air))
                {
                    G             = T.air;
                    G.temperature = Num13.MaxInt(Num13.MinInt(Convert.ToInt32(G.temperature - CT * 1000), Convert.ToInt32(G.temperature / CT)), 0);
                    G.react();
                    GlobalFuncs.qdel(hotspot);
                }
            }
            return;
        }