Exemplo n.º 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;
        }
Exemplo n.º 2
0
        // Function from file: core.dm
        public bool create_overmind(Client new_overmind = null, dynamic override_delay = null)
        {
            dynamic         C          = null;
            ByTable         candidates = null;
            Mob_Camera_Blob B          = null;


            if (this.overmind_get_delay > Game13.time && !Lang13.Bool(override_delay))
            {
                return(false);
            }
            this.overmind_get_delay = Game13.time + 150;

            if (this.overmind != null)
            {
                GlobalFuncs.qdel(this.overmind);
            }
            C          = null;
            candidates = new ByTable();

            if (!(new_overmind != null))
            {
                candidates = GlobalFuncs.get_candidates("blob");

                if (candidates.len != 0)
                {
                    C = Rand13.PickFromTable(candidates);
                }
            }
            else
            {
                C = new_overmind;
            }

            if (Lang13.Bool(C))
            {
                B             = new Mob_Camera_Blob(this.loc);
                B.key         = C.key;
                B.blob_core   = this;
                this.overmind = B;
                this.update_icon();

                if (B.mind != null && !Lang13.Bool(B.mind.special_role))
                {
                    B.mind.special_role = "Blob Overmind";
                }
                return(true);
            }
            return(false);
        }
Exemplo n.º 3
0
        // Function from file: blob_overmind.dm
        public Hud_BlobOvermind(Mob_Camera_Blob owner = null) : base(owner)
        {
            Obj_Screen_Blob _using = null;

            // Warning: Super call was HERE! If anything above HERE is needed by the super call, it might break!;
            this.blobpwrdisplay               = new Obj_Screen();
            this.blobpwrdisplay.name          = "blob power";
            this.blobpwrdisplay.icon_state    = "block";
            this.blobpwrdisplay.screen_loc    = "EAST-1:28,CENTER-1:15";
            this.blobpwrdisplay.mouse_opacity = 0;
            this.blobpwrdisplay.layer         = 20;
            this.infodisplay.Add(this.blobpwrdisplay);
            this.healths = new Obj_Screen_Healths_Blob();
            this.static_inventory.Add(this.healths);
            _using            = new Obj_Screen_Blob_BlobHelp();
            _using.screen_loc = "NORTH:-6,WEST:6";
            this.static_inventory.Add(_using);
            _using            = new Obj_Screen_Blob_JumpToNode();
            _using.screen_loc = "WEST:6,SOUTH:5";
            this.static_inventory.Add(_using);
            _using            = new Obj_Screen_Blob_JumpToCore();
            _using.screen_loc = "EAST-1:28,SOUTH:5";
            this.static_inventory.Add(_using);
            _using            = new Obj_Screen_Blob_Blobbernaut();
            _using.screen_loc = "CENTER-3:14,SOUTH:5";
            this.static_inventory.Add(_using);
            _using            = new Obj_Screen_Blob_ResourceBlob();
            _using.screen_loc = "CENTER-2:14,SOUTH:5";
            this.static_inventory.Add(_using);
            _using            = new Obj_Screen_Blob_NodeBlob();
            _using.screen_loc = "CENTER: 16,SOUTH:5";
            this.static_inventory.Add(_using);
            _using            = new Obj_Screen_Blob_FactoryBlob();
            _using.screen_loc = "CENTER:-16,SOUTH:5";
            this.static_inventory.Add(_using);
            _using            = new Obj_Screen_Blob_ReadaptChemical();
            _using.screen_loc = "CENTER+1:18,SOUTH:5";
            this.static_inventory.Add(_using);
            _using            = new Obj_Screen_Blob_RelocateCore();
            _using.screen_loc = "CENTER+2:20,SOUTH:5";
            this.static_inventory.Add(_using);
            return;
        }
Exemplo n.º 4
0
        // Function from file: theblob.dm
        public dynamic change_to(Type type = null, Mob_Camera_Blob controller = null)
        {
            dynamic B = null;


            if (!(type is Type))
            {
                throw new Exception("change_to(): invalid type for blob");
                return(null);
            }
            B = Lang13.Call(type, this.loc);

            if (controller != null)
            {
                B.overmind = controller;
            }
            ((Obj_Effect_Blob)B).creation_action();
            B.update_icon();
            GlobalFuncs.qdel(this);
            return(B);
        }
Exemplo n.º 5
0
        // Function from file: theblob.dm
        public dynamic blob_attack_animation(dynamic A = null, Mob_Camera_Blob controller = null)
        {
            dynamic         O  = null;
            Mob_Camera_Blob BO = null;

            O = GlobalFuncs.PoolOrNew(typeof(Obj_Effect_Overlay_Temp_Blob), this.loc);

            if (controller != null)
            {
                BO      = controller;
                O.color = BO.blob_reagent_datum.color;
                O.alpha = 200;
            }
            else if (this.overmind != null)
            {
                O.color = this.overmind.blob_reagent_datum.color;
            }

            if (Lang13.Bool(A))
            {
                ((Ent_Dynamic)O).do_attack_animation(A);
            }
            return(O);
        }
Exemplo n.º 6
0
        // Function from file: blob_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            reac_volume      = base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
            M.hallucination += (reac_volume ?? 0) * 0.8;
            ((Mob)M).adjust_drugginess((reac_volume ?? 0) * 0.8);

            if (Lang13.Bool(M.reagents))
            {
                ((Reagents)M.reagents).add_reagent("spore", (reac_volume ?? 0) * 0.2);
            }
            ((Mob_Living)M).apply_damage((reac_volume ?? 0) * 0.6, "tox");
            return(0);
        }
Exemplo n.º 7
0
        // Function from file: blob_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            double damage = 0;

            reac_volume = base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
            damage      = Rand13.Int(10, 30) / 25;
            ((Mob_Living)M).apply_damage(damage * (reac_volume ?? 0), "brute");
            return(0);
        }
Exemplo n.º 8
0
        // Function from file: blob_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            reac_volume = base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
            ((Mob_Living)M).adjust_fire_stacks(Num13.Floor((reac_volume ?? 0) / 12));
            ((Mob_Living)M).IgniteMob();

            if (Lang13.Bool(M))
            {
                ((Mob_Living)M).apply_damage((reac_volume ?? 0) * 0.6, "fire");
            }

            if (M is Mob_Living_Carbon)
            {
                ((Mob)M).emote("scream");
            }
            return(0);
        }
Exemplo n.º 9
0
        // Function from file: toxin_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            dynamic C      = null;
            double  damage = 0;


            if (method == GlobalVars.VAPOR)
            {
                if (M is Mob_Living_Carbon)
                {
                    C = M;

                    if (!Lang13.Bool(C.wear_mask))
                    {
                        damage = Num13.MinInt(((int)(Num13.Round((reac_volume ?? 0) * 0.4, 0.1))), 10);
                        ((Mob_Living)C).adjustToxLoss(damage);
                    }
                }
            }
            return(0);
        }
Exemplo n.º 10
0
        // Function from file: medicine_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;


            if (Convert.ToInt32(M.stat) == 2)
            {
                if (((Mob_Living)M).getBruteLoss() >= 100 || ((Mob_Living)M).getFireLoss() >= 100)
                {
                    ((Ent_Static)M).visible_message("<span class='warning'>" + M + "'s body convulses a bit, and then falls still once more.</span>");
                    return(0);
                }
                ((Ent_Static)M).visible_message("<span class='warning'>" + M + "'s body convulses a bit.</span>");

                if (!Lang13.Bool(M.suiciding) && !Lang13.Bool(M.disabilities & 128))
                {
                    if (!Lang13.Bool(M))
                    {
                        return(0);
                    }

                    if (((Mob)M).notify_ghost_cloning(null, null, M) != null)
                    {
                        Task13.Schedule(100, (Task13.Closure)(() => {
                            return;

                            return;
                        }));
                    }
                    else
                    {
                        ((Mob_Living)M).adjustOxyLoss(-20);
                        ((Mob_Living)M).adjustToxLoss(-20);

                        if (Convert.ToDouble(M.health) > (GlobalVars.config.health_threshold_dead ?? 0) && Lang13.Bool(((Mob)M).getorgan(typeof(Obj_Item_Organ_Internal_Brain))))
                        {
                            M.stat = 1;
                            ((Mob)M).blind_eyes(1);
                            GlobalVars.dead_mob_list.Remove(M);
                            GlobalVars.living_mob_list.Or(new ByTable(new object [] { M }));
                            ((Mob)M).emote("gasp");
                            GlobalFuncs.add_logs(M, M, "revived", this);
                        }
                    }
                }
            }
            base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
            return(0);
        }
Exemplo n.º 11
0
        // Function from file: blob_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            dynamic    E = null;
            Mob_Living L = null;


            if ((reac_volume ?? 0) >= 15)
            {
                reac_volume = base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
                E           = GlobalFuncs.PoolOrNew(typeof(Obj_Effect_Overlay_Temp_Explosion), GlobalFuncs.get_turf(M));
                E.alpha     = 150;

                foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRange(1, M), typeof(Mob_Living)))
                {
                    L = _a;


                    if (Lang13.Bool(L.faction.Contains("blob")))
                    {
                        continue;
                    }
                    L.apply_damage((reac_volume ?? 0) * 0.6, "brute");
                }

                if (Lang13.Bool(M))
                {
                    ((Mob_Living)M).apply_damage((reac_volume ?? 0) * 0.1, "brute");
                }
            }
            else
            {
                reac_volume = base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
                ((Mob_Living)M).apply_damage((reac_volume ?? 0) * 0.8, "brute");
            }
            return(0);
        }
Exemplo n.º 12
0
        // Function from file: toxin_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;


            if (!(M is Mob_Living_Carbon))
            {
                return(0);
            }
            reac_volume = Num13.Round(reac_volume ?? 0, 0.1);

            if (method == GlobalVars.INGEST)
            {
                ((Mob_Living)M).adjustBruteLoss(Num13.MinInt(((int)((this.toxpwr ?? 0) * 6)), ((int)((reac_volume ?? 0) * (this.toxpwr ?? 0)))));
                return(0);
            }

            if (method == GlobalVars.INJECT)
            {
                ((Mob_Living)M).adjustBruteLoss(Num13.MinInt(((int)((this.toxpwr ?? 0) * 6)), ((int)((reac_volume ?? 0) * (this.toxpwr ?? 0)))) * 1.5);
                return(0);
            }
            ((Ent_Static)M).acid_act(this.acidpwr, this.toxpwr, reac_volume);
            return(0);
        }
Exemplo n.º 13
0
        // Function from file: toxin_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;


            if (!(base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O) != 0))
            {
                return(0);
            }

            if (!Lang13.Bool(M.has_dna()))
            {
                return(0);
            }

            if (method == GlobalVars.VAPOR && Rand13.PercentChance(Num13.MinInt(33, ((int)(reac_volume ?? 0)))) || method == GlobalVars.INGEST || method == GlobalVars.PATCH || method == GlobalVars.INJECT)
            {
                GlobalFuncs.randmuti(M);

                if (Rand13.PercentChance(98))
                {
                    GlobalFuncs.randmutb(M);
                }
                else
                {
                    GlobalFuncs.randmutg(M);
                }
                ((Mob_Living_Carbon)M).updateappearance();
                ((Mob)M).domutcheck();
            }
            base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
            return(0);
        }
Exemplo n.º 14
0
        // Function from file: blob_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            reac_volume = base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
            ((Mob_Living)M).apply_damage((reac_volume ?? 0) * 061, "brute");

            if (Lang13.Bool(M))
            {
                ((Mob_Living)M).adjustStaminaLoss((reac_volume ?? 0) * 0.5);
            }

            if (M is Mob_Living_Carbon)
            {
                ((Mob)M).emote("scream");
            }
            return(0);
        }
Exemplo n.º 15
0
        // Function from file: other_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            Disease D = null;


            if (Lang13.Bool(this.data) && Lang13.Bool(this.data["viruses"]))
            {
                foreach (dynamic _a in Lang13.Enumerate(this.data["viruses"], typeof(Disease)))
                {
                    D = _a;


                    if ((D.spread_flags & 1) != 0 || (D.spread_flags & 2) != 0)
                    {
                        continue;
                    }

                    if (method == GlobalVars.TOUCH || method == GlobalVars.VAPOR)
                    {
                        ((Mob)M).ContractDisease(D);
                    }
                    else
                    {
                        ((Mob)M).ForceContractDisease(D);
                    }
                }
            }
            return(0);
        }
Exemplo n.º 16
0
        // Function from file: other_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            dynamic H = null;


            if (method == GlobalVars.TOUCH || method == GlobalVars.VAPOR)
            {
                if (Lang13.Bool(M) && M is Mob_Living_Carbon_Human)
                {
                    H                   = M;
                    H.hair_color        = Rand13.PickFromTable(this.potential_colors);
                    H.facial_hair_color = Rand13.PickFromTable(this.potential_colors);
                    ((Mob)H).update_hair();
                }
            }
            return(0);
        }
        // Function from file: blob_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            Mob_Living_SimpleAnimal_Hostile_Blob_Blobspore_Weak BS = null;

            reac_volume = base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
            M.apply_damage((reac_volume ?? 0) * 0.6, "tox");

            if (O != null && M is Mob_Living_Carbon_Human && Lang13.Bool(M.stat) == true)
            {
                ((Mob)M).death();
                BS          = new Mob_Living_SimpleAnimal_Hostile_Blob_Blobspore_Weak(GlobalFuncs.get_turf(M));
                BS.overmind = O;
                BS.update_icons();
                O.blob_mobs.Add(BS);
                BS.Zombify(M);
            }
            return(0);
        }
Exemplo n.º 18
0
        // Function from file: blob_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            reac_volume = base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);

            if (Lang13.Bool(M.reagents))
            {
                ((Reagents)M.reagents).add_reagent("frostoil", (reac_volume ?? 0) * 0.4);
                ((Reagents)M.reagents).add_reagent("ice", (reac_volume ?? 0) * 0.4);
            }
            ((Mob_Living)M).apply_damage((reac_volume ?? 0) * 0.6, "fire");

            if (Lang13.Bool(M))
            {
                ((Mob_Living)M).adjustStaminaLoss((reac_volume ?? 0) * 0.4);
            }
            return(0);
        }
Exemplo n.º 19
0
        // Function from file: blob_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            reac_volume = base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
            ((Ent_Static)M).emp_act(2);

            if (Lang13.Bool(M))
            {
                ((Mob_Living)M).apply_damage((reac_volume ?? 0) * 0.6, "fire");
            }
            return(0);
        }
Exemplo n.º 20
0
        // Function from file: blob_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            reac_volume = base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
            this.reagent_vortex(M, 0, reac_volume);
            ((Mob_Living)M).apply_damage((reac_volume ?? 0) * 0.4, "brute");
            return(0);
        }
Exemplo n.º 21
0
        // Function from file: other_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            Disease D = null;


            if (this.data is ByTable && (method == GlobalVars.INGEST || method == GlobalVars.INJECT))
            {
                foreach (dynamic _a in Lang13.Enumerate(M.viruses, typeof(Disease)))
                {
                    D = _a;


                    if (Lang13.Bool(this.data.Contains(D.GetDiseaseID())))
                    {
                        D.cure();
                    }
                }
                M.resistances.Or(this.data);
            }
            return(0);
        }
Exemplo n.º 22
0
        // Function from file: blob_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            reac_volume   = base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
            M.losebreath += Num13.Floor((reac_volume ?? 0) * 0.2);
            ((Mob_Living)M).apply_damage((reac_volume ?? 0) * 0.2, "brute");

            if (Lang13.Bool(M))
            {
                ((Mob_Living)M).apply_damage((reac_volume ?? 0) * 0.6, "oxy");
            }
            return(0);
        }
Exemplo n.º 23
0
        // Function from file: medicine_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method       = method ?? GlobalVars.TOUCH;
            show_message = show_message ?? true;


            if (M is Mob_Living_Carbon && Convert.ToInt32(M.stat) != 2)
            {
                if (new ByTable(new object [] { GlobalVars.INGEST, GlobalVars.VAPOR, GlobalVars.INJECT }).Contains(method))
                {
                    ((Mob_Living)M).adjustToxLoss((reac_volume ?? 0) * 0.5);

                    if (show_message == true)
                    {
                        M.WriteMsg("<span class='warning'>You don't feel so good...</span>");
                    }
                }
                else if (((Mob_Living)M).getFireLoss() != 0)
                {
                    ((Mob_Living)M).adjustFireLoss(-(reac_volume ?? 0));

                    if (show_message == true)
                    {
                        M.WriteMsg("<span class='danger'>You feel your burns healing! It stings like hell!</span>");
                    }
                    ((Mob)M).emote("scream");
                }
            }
            base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
            return(0);
        }
Exemplo n.º 24
0
        // Function from file: medicine_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method       = method ?? GlobalVars.TOUCH;
            show_message = show_message ?? true;


            if (M is Mob_Living_Carbon && Convert.ToInt32(M.stat) != 2)
            {
                if (new ByTable(new object [] { GlobalVars.INGEST, GlobalVars.VAPOR, GlobalVars.INJECT }).Contains(method))
                {
                    ((Mob)M).Stun(4);
                    ((Mob)M).Weaken(4);

                    if (show_message == true)
                    {
                        M.WriteMsg("<span class='warning'>Your stomach agonizingly cramps!</span>");
                    }
                }
                else if (show_message == true)
                {
                    M.WriteMsg("<span class='danger'>You feel your wounds fade away to nothing!</span>");
                }
            }
            base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
            return(0);
        }
Exemplo n.º 25
0
        // Function from file: other_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            dynamic C  = null;
            dynamic H  = null;
            dynamic H2 = null;


            if (method == GlobalVars.TOUCH || GlobalVars.VAPOR != 0)
            {
                if (M is Mob_Living_Carbon)
                {
                    C = M;

                    if (M is Mob_Living_Carbon_Human)
                    {
                        H = M;

                        if (Lang13.Bool(H.lip_style))
                        {
                            H.lip_style = null;
                            ((Mob_Living_Carbon_Human)H).update_body();
                        }
                    }

                    if (Lang13.Bool(C.r_hand))
                    {
                        ((Ent_Static)C.r_hand).clean_blood();
                    }

                    if (Lang13.Bool(C.l_hand))
                    {
                        ((Ent_Static)C.l_hand).clean_blood();
                    }

                    if (Lang13.Bool(C.wear_mask))
                    {
                        if (((Ent_Static)C.wear_mask).clean_blood())
                        {
                            ((Mob)C).update_inv_wear_mask();
                        }
                    }

                    if (M is Mob_Living_Carbon_Human)
                    {
                        H2 = C;

                        if (Lang13.Bool(H2.head))
                        {
                            if (((Ent_Static)H2.head).clean_blood())
                            {
                                ((Mob)H2).update_inv_head();
                            }
                        }

                        if (Lang13.Bool(H2.wear_suit))
                        {
                            if (((Ent_Static)H2.wear_suit).clean_blood())
                            {
                                ((Mob)H2).update_inv_wear_suit();
                            }
                        }
                        else if (Lang13.Bool(H2.w_uniform))
                        {
                            if (((Ent_Static)H2.w_uniform).clean_blood())
                            {
                                ((Mob)H2).update_inv_w_uniform();
                            }
                        }

                        if (Lang13.Bool(H2.shoes))
                        {
                            if (((Ent_Static)H2.shoes).clean_blood())
                            {
                                ((Mob)H2).update_inv_shoes();
                            }
                        }
                    }
                    ((Ent_Static)M).clean_blood();
                }
            }
            return(0);
        }
Exemplo n.º 26
0
 // Function from file: other_reagents.dm
 public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
 {
     if (Lang13.Bool(M) && M is Mob_Living)
     {
         M.color = Rand13.PickFromTable(this.random_color_list);
     }
     base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
     return(0);
 }
Exemplo n.º 27
0
        // Function from file: pyrotechnic_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            ((Mob_Living)M).IgniteMob();
            base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
            return(0);
        }
Exemplo n.º 28
0
        // Function from file: blob_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;

            reac_volume = base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
            this.reagent_vortex(M, Rand13.Int(0, 1), reac_volume);
            M.losebreath += Num13.Floor((reac_volume ?? 0) * 0.05);
            ((Mob_Living)M).apply_damage((reac_volume ?? 0) * 0.6, "oxy");
            return(0);
        }
Exemplo n.º 29
0
        // Function from file: toxin_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method = method ?? GlobalVars.TOUCH;


            if (!(M is Mob_Living))
            {
                return(0);
            }

            if (method == GlobalVars.TOUCH || method == GlobalVars.VAPOR)
            {
                ((Mob_Living)M).adjust_fire_stacks((reac_volume ?? 0) / 5);
                return(0);
            }
            base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O);
            return(0);
        }
Exemplo n.º 30
0
        // Function from file: other_reagents.dm
        public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null)
        {
            method           = method ?? GlobalVars.TOUCH;
            show_message     = show_message ?? true;
            touch_protection = touch_protection ?? 0;


            if (method == GlobalVars.PATCH || method == GlobalVars.INGEST || method == GlobalVars.INJECT || method == GlobalVars.VAPOR && Rand13.PercentChance(((int)(Num13.MinInt(((int)(reac_volume ?? 0)), 100) * (1 - Convert.ToDouble(touch_protection))))))
            {
                ((Mob)M).ForceContractDisease(new Disease_Transformation_Robot(/* Pruned args, no ctor exists. */));
            }
            return(0);
        }