Exemplo n.º 1
0
        // Function from file: watercloset.dm
        public void wash_obj(Ent_Dynamic O = null)
        {
            Ent_Dynamic I = null;

            O.clean_blood();

            if (O is Obj_Item)
            {
                I = O;
                ((Obj)I).extinguish();
            }
            return;
        }
Exemplo n.º 2
0
        // Function from file: watercloset.dm
        public bool wash_mob(Ent_Dynamic L = null)
        {
            bool _default = false;

            Ent_Dynamic M           = null;
            Ent_Dynamic H           = null;
            bool        washgloves  = false;
            bool        washshoes   = false;
            bool        washmask    = false;
            bool        washears    = false;
            bool        washglasses = false;

            ((dynamic)L).ExtinguishMob();
            ((dynamic)L).adjust_fire_stacks(-20);

            if (L is Mob_Living_Carbon)
            {
                M        = L;
                _default = true;
                this.check_heat(M);

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

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

                if (Lang13.Bool(((dynamic)M).back))
                {
                    if (((Ent_Static)((dynamic)M).back).clean_blood())
                    {
                        ((dynamic)M).update_inv_back(0);
                    }
                }

                if (M is Mob_Living_Carbon_Human)
                {
                    H           = M;
                    washgloves  = true;
                    washshoes   = true;
                    washmask    = true;
                    washears    = true;
                    washglasses = true;

                    if (Lang13.Bool(((dynamic)H).wear_suit))
                    {
                        washgloves = !(((((dynamic)H).wear_suit.flags_inv ?? 0) & 1) != 0);
                        washshoes  = !(((((dynamic)H).wear_suit.flags_inv ?? 0) & 8) != 0);
                    }

                    if (Lang13.Bool(((dynamic)H).head))
                    {
                        washmask    = !(((((dynamic)H).head.flags_inv ?? 0) & 1) != 0);
                        washglasses = !(((((dynamic)H).head.flags_inv ?? 0) & 4) != 0);
                        washears    = !(((((dynamic)H).head.flags_inv ?? 0) & 2) != 0);
                    }

                    if (Lang13.Bool(((dynamic)H).wear_mask))
                    {
                        if (washears)
                        {
                            washears = !(((((dynamic)H).wear_mask.flags_inv ?? 0) & 2) != 0);
                        }

                        if (washglasses)
                        {
                            washglasses = !(((((dynamic)H).wear_mask.flags_inv ?? 0) & 4) != 0);
                        }
                    }

                    if (Lang13.Bool(((dynamic)H).head))
                    {
                        if (((Ent_Static)((dynamic)H).head).clean_blood())
                        {
                            ((dynamic)H).update_inv_head();
                        }
                    }

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

                    if (washgloves)
                    {
                        this.clean_blood();
                    }

                    if (Lang13.Bool(((dynamic)H).shoes) && washshoes)
                    {
                        if (((Ent_Static)((dynamic)H).shoes).clean_blood())
                        {
                            ((dynamic)H).update_inv_shoes();
                        }
                    }

                    if (Lang13.Bool(((dynamic)H).wear_mask))
                    {
                        if (washmask)
                        {
                            if (((Ent_Static)((dynamic)H).wear_mask).clean_blood())
                            {
                                ((dynamic)H).update_inv_wear_mask();
                            }
                        }
                    }
                    else
                    {
                        ((dynamic)H).lip_style = null;
                        ((dynamic)H).update_body();
                    }

                    if (Lang13.Bool(((dynamic)H).glasses) && washglasses)
                    {
                        if (((Ent_Static)((dynamic)H).glasses).clean_blood())
                        {
                            ((dynamic)H).update_inv_glasses();
                        }
                    }

                    if (Lang13.Bool(((dynamic)H).ears) && washears)
                    {
                        if (((Ent_Static)((dynamic)H).ears).clean_blood())
                        {
                            ((dynamic)H).update_inv_ears();
                        }
                    }

                    if (Lang13.Bool(((dynamic)H).belt))
                    {
                        if (((Ent_Static)((dynamic)H).belt).clean_blood())
                        {
                            ((dynamic)H).update_inv_belt();
                        }
                    }
                }
                else
                {
                    if (Lang13.Bool(((dynamic)M).wear_mask))
                    {
                        if (((Ent_Static)((dynamic)M).wear_mask).clean_blood())
                        {
                            ((dynamic)M).update_inv_wear_mask(0);
                        }
                    }
                    M.clean_blood();
                }
            }
            else
            {
                L.clean_blood();
            }
            return(_default);
        }