Ejemplo n.º 1
0
        // Function from file: tgstation.dme
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;

            base.Activate(A);

            if (Rand13.PercentChance(GlobalVars.SYMPTOM_ACTIVATION_PROB))
            {
                M = A.affected_mob;

                switch ((int?)(A.stage))
                {
                case 1:
                case 2:
                case 3:
                    ((Mob)M).emote("sniff");
                    break;

                default:
                    ((Mob)M).emote("sneeze");
                    A.spread(A.holder, 5);
                    break;
                }
            }
            return;
        }
Ejemplo n.º 2
0
        // Function from file: vision.dm
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;

            base.Activate(A);

            if (Rand13.PercentChance(15))
            {
                M = A.affected_mob;

                switch ((int?)(A.stage))
                {
                case 4:
                case 5:

                    if ((((Reagents)M.reagents).get_reagent_amount("oculine") ?1:0) < 20)
                    {
                        ((Reagents)M.reagents).add_reagent("oculine", 20);
                    }
                    break;

                default:

                    if (Rand13.PercentChance(15))
                    {
                        M.WriteMsg("<span class='notice'>" + Rand13.Pick(new object [] { "Your eyes feel great.", "You are now blinking manually.", "You don't feel the need to blink." }) + "</span>");
                    }
                    break;
                }
            }
            return;
        }
Ejemplo n.º 3
0
        // Function from file: tgstation.dme
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;

            base.Activate(A);

            if (Rand13.PercentChance(GlobalVars.SYMPTOM_ACTIVATION_PROB))
            {
                M = A.affected_mob;

                switch ((int?)(A.stage))
                {
                case 1:
                case 2:
                case 3:
                case 4:
                    M.WriteMsg("<span class='warning'>" + Rand13.Pick(new object [] { "You feel dizzy.", "Your head spins." }) + "</span>");
                    break;

                default:
                    M.WriteMsg("<span class='userdanger'>A wave of dizziness washes over you!</span>");
                    ((Mob)M).Dizzy(5);
                    break;
                }
            }
            return;
        }
Ejemplo n.º 4
0
        // Function from file: weight.dm
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;

            base.Activate(A);

            if (Rand13.PercentChance(GlobalVars.SYMPTOM_ACTIVATION_PROB))
            {
                M = A.affected_mob;

                switch ((int?)(A.stage))
                {
                case 1:
                case 2:
                case 3:
                case 4:
                    M.WriteMsg("<span class='warning'>" + Rand13.Pick(new object [] { "You feel hungry.", "You crave for food." }) + "</span>");
                    break;

                default:
                    M.WriteMsg("<span class='warning'><i>" + Rand13.Pick(new object [] { "So hungry...", "You'd kill someone for a bite of food...", "Hunger cramps seize you..." }) + "</i></span>");
                    M.overeatduration = Num13.MaxInt(M.overeatduration - 100, 0);
                    M.nutrition       = Num13.MaxInt(((int)(M.nutrition - 100)), 0);
                    break;
                }
            }
            return;
        }
Ejemplo n.º 5
0
        // Function from file: confusion.dm
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;

            base.Activate(A);

            if (Rand13.PercentChance(GlobalVars.SYMPTOM_ACTIVATION_PROB))
            {
                M = A.affected_mob;

                switch ((int?)(A.stage))
                {
                case 1:
                case 2:
                case 3:
                case 4:
                    M.WriteMsg("<span class='warning'>" + Rand13.Pick(new object [] { "Your head hurts.", "Your mind blanks for a moment." }) + "</span>");
                    break;

                default:
                    M.WriteMsg("<span class='userdanger'>You can't think straight!</span>");
                    M.confused = Num13.MinInt(100, ((int)(M.confused + 8)));
                    break;
                }
            }
            return;
        }
Ejemplo n.º 6
0
        // Function from file: tgstation.dme
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;

            base.Activate(A);

            if (Rand13.PercentChance(GlobalVars.SYMPTOM_ACTIVATION_PROB))
            {
                M = A.affected_mob;

                switch ((int?)(A.stage))
                {
                case 2:
                case 3:
                    M.WriteMsg("<span class='warning'>" + Rand13.Pick(new object [] { "You feel a sudden pain across your body.", "Drops of blood appear suddenly on your skin." }) + "</span>");
                    break;

                case 4:
                case 5:
                    M.WriteMsg("<span class='userdanger'>" + Rand13.Pick(new object [] { "You cringe as a violent pain takes over your body.", "It feels like your body is eating itself inside out.", "IT HURTS." }) + "</span>");
                    ((Mob_Living)M).adjustBruteLoss(5);
                    break;
                }
            }
            return;
        }
Ejemplo n.º 7
0
        // Function from file: weight.dm
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;

            base.Activate(A);

            if (Rand13.PercentChance(GlobalVars.SYMPTOM_ACTIVATION_PROB))
            {
                M = A.affected_mob;

                switch ((int?)(A.stage))
                {
                case 1:
                case 2:
                case 3:
                case 4:
                    M.WriteMsg("<span class='warning'>" + Rand13.Pick(new object [] { "You feel blubbery.", "Your stomach hurts." }) + "</span>");
                    break;

                default:
                    M.overeatduration = Num13.MinInt(M.overeatduration + 100, 600);
                    M.nutrition       = Num13.MinInt(((int)(M.nutrition + 100)), 550);
                    break;
                }
            }
            return;
        }
Ejemplo n.º 8
0
        // Function from file: genetics.dm
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;

            base.Activate(A);

            if (Rand13.PercentChance(15))
            {
                M = A.affected_mob;

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

                switch ((int?)(A.stage))
                {
                case 4:
                case 5:
                    M.WriteMsg("<span class='warning'>" + Rand13.Pick(new object [] { "Your skin feels itchy.", "You feel light headed." }) + "</span>");
                    ((Dna)M.dna).remove_mutation_group(this.possible_mutations);
                    GlobalFuncs.randmut(M, this.possible_mutations);
                    break;
                }
            }
            return;
        }
Ejemplo n.º 9
0
        // Function from file: tgstation.dme
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;
            dynamic H = null;

            base.Activate(A);

            if (Rand13.PercentChance(GlobalVars.SYMPTOM_ACTIVATION_PROB))
            {
                M = A.affected_mob;

                if (M is Mob_Living_Carbon_Human)
                {
                    H = M;

                    if (H.skin_tone == "african2")
                    {
                        return;
                    }

                    switch ((int?)(A.stage))
                    {
                    case 5:
                        H.skin_tone = "african2";
                        ((Mob_Living_Carbon_Human)H).update_body(  );
                        break;

                    default:
                        ((Ent_Static)H).visible_message("<span class='warning'>" + H + " looks a bit dark...</span>", "<span class='notice'>Your skin suddenly appears darker...</span>");
                        break;
                    }
                }
            }
            return;
        }
Ejemplo n.º 10
0
        // Function from file: tgstation.dme
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;

            base.Activate(A);

            if (Rand13.PercentChance(GlobalVars.SYMPTOM_ACTIVATION_PROB))
            {
                M = A.affected_mob;

                switch ((int?)(A.stage))
                {
                case 3:
                    M.WriteMsg("<span class='warning'>" + Rand13.Pick(new object [] { "You feel hot.", "You hear a crackling noise.", "You smell smoke." }) + "</span>");
                    break;

                case 4:
                    ((Mob_Living)M).adjust_fire_stacks(5);
                    ((Mob_Living)M).IgniteMob();
                    M.WriteMsg("<span class='userdanger'>Your skin bursts into flames!</span>");
                    ((Mob_Living)M).adjustFireLoss(5);
                    ((Mob)M).emote("scream");
                    break;

                case 5:
                    ((Mob_Living)M).adjust_fire_stacks(10);
                    ((Mob_Living)M).IgniteMob();
                    M.WriteMsg("<span class='userdanger'>Your skin erupts into an inferno!</span>");
                    ((Mob_Living)M).adjustFireLoss(10);
                    ((Mob)M).emote("scream");
                    break;
                }
            }
            return;
        }
Ejemplo n.º 11
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);
        }
Ejemplo n.º 12
0
        // Function from file: vomit.dm
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;

            base.Activate(A);

            if (Rand13.PercentChance(((int)(1.5))))
            {
                M = A.affected_mob;

                switch ((int?)(A.stage))
                {
                case 1:
                case 2:
                case 3:
                case 4:
                    M.WriteMsg("<span class='warning'>" + Rand13.Pick(new object [] { "You feel nauseous.", "You feel like you're going to throw up!" }) + "</span>");
                    break;

                default:
                    this.Vomit(M);
                    break;
                }
            }
            return;
        }
Ejemplo n.º 13
0
        // Function from file: voice_change.dm
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;
            dynamic H = null;

            base.Activate(A);

            if (Rand13.PercentChance(GlobalVars.SYMPTOM_ACTIVATION_PROB))
            {
                M = A.affected_mob;

                switch ((int?)(A.stage))
                {
                case 1:
                case 2:
                case 3:
                case 4:
                    M.WriteMsg("<span class='warning'>" + Rand13.Pick(new object [] { "Your throat hurts.", "You clear your throat." }) + "</span>");
                    break;

                default:

                    if (M is Mob_Living_Carbon_Human)
                    {
                        H = M;
                        ((Mob_Living_Carbon_Human)H).SetSpecialVoice(((Species)H.dna.species).random_name(H.gender));
                    }
                    break;
                }
            }
            return;
        }
Ejemplo n.º 14
0
        // Function from file: tgstation.dme
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;

            base.Activate(A);

            if (Rand13.PercentChance(30))
            {
                M = A.affected_mob;

                switch ((int?)(A.stage))
                {
                case 5:

                    if ((((Reagents)M.reagents).get_reagent_amount("ephedrine") ?1:0) < 10)
                    {
                        ((Reagents)M.reagents).add_reagent("ephedrine", 10);
                    }
                    break;

                default:

                    if (Rand13.PercentChance(15))
                    {
                        M.WriteMsg("<span class='notice'>" + Rand13.Pick(new object [] { "You feel restless.", "You feel like running laps around the station." }) + "</span>");
                    }
                    break;
                }
            }
            return;
        }
Ejemplo n.º 15
0
        // Function from file: oxygen.dm
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;

            base.Activate(A);

            if (Rand13.PercentChance(15))
            {
                M = A.affected_mob;

                switch ((int?)(A.stage))
                {
                case 4:
                case 5:

                    if ((((Reagents)M.reagents).get_reagent_amount("salbutamol") ?1:0) < 20)
                    {
                        ((Reagents)M.reagents).add_reagent("salbutamol", 20);
                    }
                    break;

                default:

                    if (Rand13.PercentChance(15))
                    {
                        M.WriteMsg("<span class='notice'>" + Rand13.Pick(new object [] { "Your lungs feel great.", "You realize you haven't been breathing.", "You don't feel the need to breathe." }) + "</span>");
                    }
                    break;
                }
            }
            return;
        }
Ejemplo n.º 16
0
        // Function from file: hallucigen.dm
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;

            base.Activate(A);

            if (Rand13.PercentChance(GlobalVars.SYMPTOM_ACTIVATION_PROB))
            {
                M = A.affected_mob;

                switch ((int?)(A.stage))
                {
                case 1:
                case 2:
                    M.WriteMsg("<span class='warning'>" + Rand13.Pick(new object [] { "Something appears in your peripheral vision, then winks out.", "You hear a faint whispher with no source.", "Your head aches." }) + "</span>");
                    break;

                case 3:
                case 4:
                    M.WriteMsg("<span class='warning'><b>" + Rand13.Pick(new object [] { "Something is following you.", "You are being watched.", "You hear a whisper in your ear.", "Thumping footsteps slam toward you from nowhere." }) + "</b></span>");
                    break;

                default:
                    M.WriteMsg("<span class='userdanger'>" + Rand13.Pick(new object [] { "Oh, your head...", "Your head pounds.", "They're everywhere! Run!", "Something in the shadows..." }) + "</span>");
                    M.hallucination += 5;
                    break;
                }
            }
            return;
        }
Ejemplo n.º 17
0
        // Function from file: tgstation.dme
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;

            base.Activate(A);

            if (Rand13.PercentChance(GlobalVars.SYMPTOM_ACTIVATION_PROB))
            {
                M = A.affected_mob;

                switch ((int?)(A.stage))
                {
                case 1:
                case 2:
                    M.WriteMsg("<span class='warning'>" + Rand13.Pick(new object [] { "You're having difficulty breathing.", "Your breathing becomes heavy." }) + "</span>");
                    break;

                case 3:
                case 4:
                    M.WriteMsg("<span class='warning'><b>" + Rand13.Pick(new object [] { "Your windpipe feels like a straw.", "Your breathing becomes tremendously difficult." }) + "</span>");
                    ((Mob_Living)M).adjustOxyLoss(5);
                    ((Mob)M).emote("gasp");
                    break;

                default:
                    M.WriteMsg("<span class='userdanger'>" + Rand13.Pick(new object [] { "You're choking!", "You can't breathe!" }) + "</span>");
                    ((Mob_Living)M).adjustOxyLoss(20);
                    ((Mob)M).emote("gasp");
                    break;
                }
            }
            return;
        }
Ejemplo n.º 18
0
        // Function from file: tgstation.dme
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;
            dynamic I = null;

            base.Activate(A);

            if (Rand13.PercentChance(GlobalVars.SYMPTOM_ACTIVATION_PROB))
            {
                M = A.affected_mob;

                switch ((int?)(A.stage))
                {
                case 1:
                case 2:
                case 3:
                    M.WriteMsg("<span notice='warning'>" + Rand13.Pick(new object [] { "You swallow excess mucus.", "You lightly cough." }) + "</span>");
                    break;

                default:
                    ((Mob)M).emote("cough");
                    I = ((Mob)M).get_active_hand();

                    if (Lang13.Bool(I) && I.w_class == 1)
                    {
                        ((Mob)M).drop_item();
                    }
                    break;
                }
            }
            return;
        }
Ejemplo n.º 19
0
        // Function from file: heal.dm
        public override void End(Disease_Advance A = null)
        {
            dynamic M   = null;
            dynamic res = null;

            M = A.affected_mob;

            if (M is Mob_Living)
            {
                if (this.cured_diseases.len != 0)
                {
                    foreach (dynamic _a in Lang13.Enumerate(M.resistances))
                    {
                        res = _a;


                        if (this.cured_diseases.Contains(res))
                        {
                            M.resistances.Remove(res);
                        }
                    }
                }
                M.WriteMsg("<span class='warning'>You feel weaker.</span>");
            }
            return;
        }
Ejemplo n.º 20
0
        // Function from file: heal.dm
        public virtual bool Heal(dynamic M = null, Disease_Advance A = null)
        {
            int get_damage = 0;

            get_damage = Rand13.Int(8, 14);
            ((Mob_Living)M).adjustToxLoss(-get_damage);
            return(true);
        }
Ejemplo n.º 21
0
        // Function from file: heal.dm
        public override bool Heal(dynamic M = null, Disease_Advance A = null)
        {
            this.longevity -= 1;

            if (!(this.longevity != 0))
            {
                A.cure();
            }
            return(false);
        }
Ejemplo n.º 22
0
        // Function from file: heal.dm
        public override bool Heal(dynamic M = null, Disease_Advance A = null)
        {
            int     amt_healed        = 0;
            ByTable unclean_mutations = null;

            amt_healed = Rand13.Int(5, 10);
            ((Mob_Living)M).adjustBrainLoss(-amt_healed);
            unclean_mutations = (GlobalVars.not_good_mutations | GlobalVars.bad_mutations) - GlobalVars.mutations_list["Monkified"];
            ((Dna)M.dna).remove_mutation_group(unclean_mutations);
            M.radiation = Num13.MaxInt(((int)(M.radiation - 3)), 0);
            return(true);
        }
Ejemplo n.º 23
0
        // Function from file: tgstation.dme
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;
            dynamic H = null;

            base.Activate(A);

            if (Rand13.PercentChance(GlobalVars.SYMPTOM_ACTIVATION_PROB))
            {
                M = A.affected_mob;

                if (M is Mob_Living_Carbon_Human)
                {
                    H = M;

                    switch ((int?)(A.stage))
                    {
                    case 1:
                    case 2:
                        H.WriteMsg("<span class='warning'>Your chin itches.</span>");

                        if (H.facial_hair_style == "Shaved")
                        {
                            H.facial_hair_style = "Jensen Beard";
                            ((Mob)H).update_hair();
                        }
                        break;

                    case 3:
                    case 4:
                        H.WriteMsg("<span class='warning'>You feel tough.</span>");

                        if (!(H.facial_hair_style == "Dwarf Beard") && !(H.facial_hair_style == "Very Long Beard") && !(H.facial_hair_style == "Full Beard"))
                        {
                            H.facial_hair_style = "Full Beard";
                            ((Mob)H).update_hair();
                        }
                        break;

                    default:
                        H.WriteMsg("<span class='warning'>You feel manly!</span>");

                        if (!(H.facial_hair_style == "Dwarf Beard") && !(H.facial_hair_style == "Very Long Beard"))
                        {
                            H.facial_hair_style = Rand13.Pick(new object [] { "Dwarf Beard", "Very Long Beard" });
                            ((Mob)H).update_hair();
                        }
                        break;
                    }
                }
            }
            return;
        }
Ejemplo n.º 24
0
        // Function from file: tgstation.dme
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;

            base.Activate(A);

            if (Rand13.PercentChance(GlobalVars.SYMPTOM_ACTIVATION_PROB))
            {
                M = A.affected_mob;
                M.WriteMsg("<span class='warning'>" + Rand13.Pick(new object [] { "Your head hurts.", "Your head starts pounding." }) + "</span>");
            }
            return;
        }
Ejemplo n.º 25
0
        // Function from file: voice_change.dm
        public override void End(Disease_Advance A = null)
        {
            dynamic H = null;

            base.End(A);

            if (A.affected_mob is Mob_Living_Carbon_Human)
            {
                H = A.affected_mob;
                ((Mob_Living_Carbon_Human)H).UnsetSpecialVoice();
            }
            return;
        }
Ejemplo n.º 26
0
        // Function from file: tgstation.dme
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;

            base.Activate(A);

            if (Rand13.PercentChance(GlobalVars.SYMPTOM_ACTIVATION_PROB))
            {
                M = A.affected_mob;
                M.WriteMsg("<span class='warning'>Your " + Rand13.Pick(new object [] { "back", "arm", "leg", "elbow", "head" }) + " itches.</span>");
            }
            return;
        }
Ejemplo n.º 27
0
        // Function from file: other_reagents.dm
        public override bool on_merge(dynamic data = null)
        {
            dynamic         mix1     = null;
            dynamic         mix2     = null;
            ByTable         to_mix   = null;
            Disease_Advance AD       = null;
            Disease_Advance AD2      = null;
            dynamic         AD3      = null;
            ByTable         preserve = null;
            Disease_Advance D        = null;


            if (Lang13.Bool(this.data) && Lang13.Bool(data))
            {
                this.data["cloneable"] = 0;

                if (Lang13.Bool(this.data["viruses"]) || Lang13.Bool(data["viruses"]))
                {
                    mix1   = this.data["viruses"];
                    mix2   = data["viruses"];
                    to_mix = new ByTable();

                    foreach (dynamic _a in Lang13.Enumerate(mix1, typeof(Disease_Advance)))
                    {
                        AD = _a;

                        to_mix.Add(AD);
                    }

                    foreach (dynamic _b in Lang13.Enumerate(mix2, typeof(Disease_Advance)))
                    {
                        AD2 = _b;

                        to_mix.Add(AD2);
                    }
                    AD3 = GlobalFuncs.Advance_Mix(to_mix);

                    if (Lang13.Bool(AD3))
                    {
                        preserve = new ByTable(new object [] { AD3 });

                        foreach (dynamic _c in Lang13.Enumerate(this.data["viruses"], typeof(Disease_Advance)))
                        {
                            D = _c;
                        }
                        this.data["viruses"] = preserve;
                    }
                }
            }
            return(true);
        }
Ejemplo n.º 28
0
        // Function from file: tgstation.dme
        public override void Activate(Disease_Advance A = null)
        {
            dynamic M = null;
            dynamic H = null;

            base.Activate(A);

            if (Rand13.PercentChance(GlobalVars.SYMPTOM_ACTIVATION_PROB))
            {
                M = A.affected_mob;
                M.WriteMsg("<span class='warning'>" + Rand13.Pick(new object [] { "Your scalp itches.", "Your skin feels flakey." }) + "</span>");

                if (M is Mob_Living_Carbon_Human)
                {
                    H = M;

                    switch ((int?)(A.stage))
                    {
                    case 3:
                    case 4:

                        if (!(H.hair_style == "Bald") && !(H.hair_style == "Balding Hair"))
                        {
                            H.WriteMsg("<span class='warning'>Your hair starts to fall out in clumps...</span>");
                            Task13.Schedule(50, (Task13.Closure)(() => {
                                H.hair_style = "Balding Hair";
                                ((Mob)H).update_hair();
                                return;
                            }));
                        }
                        break;

                    case 5:

                        if (!(H.facial_hair_style == "Shaved") || !(H.hair_style == "Bald"))
                        {
                            H.WriteMsg("<span class='warning'>Your hair starts to fall out in clumps...</span>");
                            Task13.Schedule(50, (Task13.Closure)(() => {
                                H.facial_hair_style = "Shaved";
                                H.hair_style        = "Bald";
                                ((Mob)H).update_hair();
                                return;
                            }));
                        }
                        break;
                    }
                }
            }
            return;
        }
Ejemplo n.º 29
0
        // Function from file: presets.dm
        public Disease_Advance_VoiceChange(bool?process = null, Disease_Advance D = null, bool?copy = null) : base(process, D)
        {
            process = process ?? true;
            copy    = copy ?? false;


            if (!(D != null))
            {
                this.name     = "Epiglottis Mutation";
                this.symptoms = new ByTable(new object [] { new Symptom_VoiceChange() });
            }
            // Warning: Super call was HERE! If anything above HERE is needed by the super call, it might break!;
            return;
        }
Ejemplo n.º 30
0
        // Function from file: presets.dm
        public Disease_Advance_Hullucigen(bool?process = null, Disease_Advance D = null, bool?copy = null) : base(process, D)
        {
            process = process ?? true;
            copy    = copy ?? false;


            if (!(D != null))
            {
                this.name     = "Reality Impairment";
                this.symptoms = new ByTable(new object [] { new Symptom_Hallucigen() });
            }
            // Warning: Super call was HERE! If anything above HERE is needed by the super call, it might break!;
            return;
        }