示例#1
0
        // Function from file: shadowling.dm
        public override void spec_life(Mob_Living H = null)
        {
            double     light_amount = 0;
            Ent_Static T            = null;


            if (!H.weakeyes)
            {
                H.weakeyes = true;
            }
            light_amount = 0;
            H.nutrition  = 450;

            if (H.loc is Tile)
            {
                T            = H.loc;
                light_amount = ((Tile)T).get_lumcount();

                if (light_amount > 4 && !(H.incorporeal_move != 0))
                {
                    H.take_overall_damage(0, 3.5);
                }
                else if (light_amount < 2)
                {
                    H.heal_overall_damage(2, 2);
                    H.adjustToxLoss(-5);
                    H.adjustBrainLoss(-25);
                    H.adjustCloneLoss(-1);
                }
            }
            return;
        }
示例#2
0
        // Function from file: shadowling.dm
        public override void spec_life(Mob_Living H = null)
        {
            double     light_amount = 0;
            Ent_Static T            = null;


            if (!H.weakeyes)
            {
                H.weakeyes = true;
            }
            light_amount = 0;
            H.nutrition  = 450;

            if (H.loc is Tile)
            {
                T            = H.loc;
                light_amount = ((Tile)T).get_lumcount();

                if (light_amount > 4 && !(H.incorporeal_move != 0))
                {
                    H.take_overall_damage(0, 7);

                    if (H.stat != 2)
                    {
                        H.WriteMsg("<span class='userdanger'>The light burns you!</span>");
                        H.WriteMsg("sound/weapons/sear.ogg");
                    }
                }
                else if (light_amount < 2)
                {
                    H.heal_overall_damage(5, 5);
                    H.adjustToxLoss(-5);
                    H.adjustBrainLoss(-25);
                    H.adjustCloneLoss(-1);
                    H.SetWeakened(0);
                    H.SetStunned(0);
                }
            }
            return;
        }
示例#3
0
        // Function from file: species_types.dm
        public override void spec_life(Mob_Living H = null)
        {
            double     light_amount = 0;
            Ent_Static T            = null;

            light_amount = 0;

            if (H.loc is Tile)
            {
                T            = H.loc;
                light_amount = ((Tile)T).get_lumcount();

                if (light_amount > 2)
                {
                    H.take_overall_damage(1, 1);
                }
                else if (light_amount < 2)
                {
                    H.heal_overall_damage(1, 1);
                }
            }
            return;
        }
示例#4
0
        // Function from file: species_types.dm
        public override void spec_life(Mob_Living H = null)
        {
            int        light_amount = 0;
            Ent_Static T            = null;


            if (H.stat == 2)
            {
                return;
            }
            light_amount = 0;

            if (H.loc is Tile)
            {
                T            = H.loc;
                light_amount = Num13.MinInt(10, ((int)(((Tile)T).get_lumcount()))) - 5;
                H.nutrition += light_amount;

                if (H.nutrition > 550)
                {
                    H.nutrition = 550;
                }

                if (light_amount > 2)
                {
                    H.heal_overall_damage(1, 1);
                    H.adjustToxLoss(-1);
                    H.adjustOxyLoss(-1);
                }
            }

            if (H.nutrition < 200)
            {
                H.take_overall_damage(2, 0);
            }
            return;
        }