// Function from file: zombie.dm
        public override bool death(bool?gibbed = null, bool?toast = null)
        {
            Mob_Living_SimpleAnimal_Hostile_Zombie_Holder D = null;

            base.death(gibbed, toast);

            if (Lang13.Bool(this.stored_corpse))
            {
                this.stored_corpse.loc = this.loc;

                if (Lang13.Bool(this.ckey))
                {
                    this.stored_corpse.ckey = this.ckey;
                    this.stored_corpse.WriteMsg("<span class='userdanger'>You're down, but not quite out. You'll be back on your feet within a minute or two.</span>");
                    D         = new Mob_Living_SimpleAnimal_Hostile_Zombie_Holder(this.stored_corpse);
                    D.faction = this.faction;
                }
                GlobalFuncs.qdel(this);
                return(false);
            }
            this.WriteMsg("<span class='userdanger'>You're down, but not quite out. You'll be back on your feet within a minute or two.</span>");
            Task13.Schedule(Rand13.Int(800, 1200), (Task13.Closure)(() => {
                if (this != null)
                {
                    this.visible_message("<span class='danger'>" + this + " staggers to their feet!</span>");
                    this.revive();
                }
                return;
            }));
            return(false);
        }
        // Function from file: zombie.dm
        public override bool AttackingTarget(  )
        {
            dynamic L = null;
            dynamic H = null;
            Mob_Living_SimpleAnimal_Hostile_Zombie_Holder Z = null;

            base.AttackingTarget();

            if (this.target is Mob_Living)
            {
                L = this.target;

                if (L is Mob_Living_Carbon_Human && Lang13.Bool(L.stat))
                {
                    H = L;

                    foreach (dynamic _a in Lang13.Enumerate(H, typeof(Mob_Living_SimpleAnimal_Hostile_Zombie_Holder)))
                    {
                        Z = _a;

                        this.WriteMsg("<span class='userdanger'>They'll be getting up on their own, just give them a minute!</span>");
                        Z.faction = this.faction;
                        H.faction = this.faction;
                        return(false);
                    }
                    this.Zombify(H);
                }
                else if (Lang13.Bool(L.stat))
                {
                    ((Mob)L).gib();
                    this.visible_message("<span class='danger'>" + this + " tears " + L + " to pieces!</span>");
                    this.WriteMsg("<span class='userdanger'>You feast on " + L + ", restoring your health!</span>");
                    this.revive();
                }
            }
            return(false);
        }
        // Function from file: zombie.dm
        public void Zombify(dynamic H = null)
        {
            dynamic helmet = null;
            dynamic mask   = null;
            Mob_Living_SimpleAnimal_Hostile_Zombie Z = null;
            Mob_Dead_Observer ghost = null;
            Mob_Living_SimpleAnimal_Hostile_Zombie_Holder D = null;

            ((Mob)H).set_species(typeof(Species_Zombie));

            if (Lang13.Bool(H.head))
            {
                helmet = H.head;

                if (!((Mob)H).unEquip(helmet))
                {
                    GlobalFuncs.qdel(helmet);
                }
            }

            if (Lang13.Bool(H.wear_mask))
            {
                mask = H.wear_mask;

                if (!((Mob)H).unEquip(mask))
                {
                    GlobalFuncs.qdel(mask);
                }
            }
            Z            = new Mob_Living_SimpleAnimal_Hostile_Zombie(H.loc);
            Z.faction    = this.faction;
            Z.appearance = H.appearance;
            Z.transform  = Num13.Matrix();
            Z.pixel_y    = 0;

            foreach (dynamic _a in Lang13.Enumerate(GlobalVars.player_list, typeof(Mob_Dead_Observer)))
            {
                ghost = _a;


                if (H.real_name == ghost.real_name)
                {
                    ghost.reenter_corpse();
                    break;
                }
            }
            Z.ckey            = H.ckey;
            H.stat            = 2;
            H.butcher_results = new ByTable().Set(typeof(Obj_Item_Weapon_ReagentContainers_Food_Snacks_Meat_Slab_Human_Mutant_Zombie), 3);
            H.loc             = Z;
            Z.stored_corpse   = H;

            foreach (dynamic _b in Lang13.Enumerate(H, typeof(Mob_Living_SimpleAnimal_Hostile_Zombie_Holder)))
            {
                D = _b;

                GlobalFuncs.qdel(D);
            }
            this.visible_message("<span class='danger'>" + Z + " staggers to their feet!</span>");
            Z.WriteMsg("<span class='userdanger'>You are now a zombie! Follow your creators lead!</span>");
            return;
        }