예제 #1
0
        // Function from file: heal.dm
        public override bool Heal(dynamic M = null, Disease_Advance A = null)
        {
            bool    cured = false;
            Disease D     = null;

            cured = false;

            foreach (dynamic _a in Lang13.Enumerate(M.viruses, typeof(Disease)))
            {
                D = _a;


                if (D != A)
                {
                    cured = true;
                    this.cured_diseases.Add(D.GetDiseaseID());
                    D.cure();
                }
            }

            if (cured)
            {
                M.WriteMsg("<span class='notice'>You feel much better.</span>");
            }
            return(false);
        }
예제 #2
0
        // Function from file: panacea.dm
        public override dynamic sting_action(Mob user = null, Ent_Static target = null)
        {
            dynamic egg = null;
            Mob     C   = null;
            Disease D   = null;

            user.WriteMsg("<span class='notice'>We begin cleansing impurities from our form.</span>");
            egg = user.getorgan(typeof(Obj_Item_Organ_Internal_BodyEgg));

            if (Lang13.Bool(egg))
            {
                ((Obj_Item_Organ_Internal)egg).Remove(user);

                if (user is Mob_Living_Carbon)
                {
                    C = user;
                    ((Mob_Living_Carbon)C).vomit(0);
                }
                egg.loc = GlobalFuncs.get_turf(user);
            }
            user.reagents.add_reagent("mutadone", 10);
            user.reagents.add_reagent("potass_iodide", 10);
            user.reagents.add_reagent("charcoal", 20);

            foreach (dynamic _a in Lang13.Enumerate(user.viruses, typeof(Disease)))
            {
                D = _a;

                D.cure();
            }
            GlobalFuncs.feedback_add_details("changeling_powers", "AP");
            return(1);
        }
예제 #3
0
        // Function from file: humans.dm
        public override dynamic Destroy(  )
        {
            Disease D = null;


            foreach (dynamic _a in Lang13.Enumerate(this.viruses, typeof(Disease)))
            {
                D = _a;

                D.cure(0);
            }
            this.viruses = null;
            return(base.Destroy());
        }
예제 #4
0
        // Function from file: medicine_reagents.dm
        public override bool on_mob_life(dynamic M = null)
        {
            Disease D = null;

            ((Reagents)M.reagents).remove_all_type(typeof(Reagent_Toxin), 5, false, true);
            ((Mob_Living)M).setCloneLoss(false);
            ((Mob_Living)M).setOxyLoss(0);
            M.radiation = 0;
            ((Mob_Living)M).heal_organ_damage(5, 5);
            ((Mob_Living)M).adjustToxLoss(-5);
            M.hallucination = 0;
            ((Mob_Living)M).setBrainLoss(0);
            M.disabilities = 0;
            ((Mob)M).set_blurriness(0);
            ((Mob)M).set_blindness(0);
            ((Mob)M).SetWeakened(0);
            ((Mob)M).SetStunned(0);
            ((Mob)M).SetParalysis(0);
            M.silent     = 0;
            M.dizziness  = 0;
            M.drowsyness = 0;
            M.stuttering = 0;
            M.slurring   = 0;
            M.confused   = 0;
            ((Mob)M).SetSleeping(0);
            M.jitteriness = 0;

            foreach (dynamic _a in Lang13.Enumerate(M.viruses, typeof(Disease)))
            {
                D = _a;


                if (D.severity == "No threat")
                {
                    continue;
                }
                D.spread_text = "Remissive";
                D.stage--;

                if ((D.stage ?? 0) < 1)
                {
                    D.cure();
                }
            }
            base.on_mob_life((object)(M));
            return(false);
        }
예제 #5
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);
        }