Пример #1
0
        public override void InitOutfit()
        {
            AddItem(new Robe(0x4DD));
            AddItem(new WizardsHat(0x482));
            AddItem(new Shoes(0x482));

            HairItemID = 0x203C;
            HairHue    = 0x455;

            FacialHairItemID = 0x203E;
            FacialHairHue    = 0x455;

            GlacialStaff staff = new GlacialStaff
            {
                Movable = false
            };

            AddItem(staff);

            Backpack pack = new Backpack
            {
                Movable = false
            };

            AddItem(pack);
        }
Пример #2
0
        public IceSerpent() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name        = "a giant ice serpent";
            Body        = 89;
            BaseSoundID = 219;

            SetStr(216, 245);
            SetDex(26, 50);
            SetInt(66, 85);

            SetHits(130, 147);
            SetMana(0);

            SetDamage(7, 17);

            SetDamageType(ResistanceType.Physical, 10);
            SetDamageType(ResistanceType.Cold, 90);

            SetResistance(ResistanceType.Physical, 30, 35);
            SetResistance(ResistanceType.Cold, 80, 90);
            SetResistance(ResistanceType.Poison, 15, 25);
            SetResistance(ResistanceType.Energy, 10, 20);

            SetSkill(SkillName.Anatomy, 27.5, 50.0);
            SetSkill(SkillName.MagicResist, 25.1, 40.0);
            SetSkill(SkillName.Tactics, 75.1, 80.0);
            SetSkill(SkillName.Wrestling, 60.1, 80.0);

            Fame  = 3500;
            Karma = -3500;

            VirtualArmor = 32;

            PackItem(Loot.RandomArmorOrShieldOrWeapon());
            // TODO: body parts, glacial staff
            //Generates a random nymber from 1 to 100.
            double gschance = Utility.RandomDouble();

            //If the random generated number is higher then 70, or exacly 70, a staff will drop.
            //Meaning: there's a 30% chance that one will drop.

            if (gschance <= 0.4)
            {
                Item GlacialStaff = new GlacialStaff();
                AddItem(GlacialStaff);
            }
        }
Пример #3
0
        public override void InitOutfit()
        {
            this.AddItem(new Robe(0x4DD));
            this.AddItem(new WizardsHat(0x482));
            this.AddItem(new Shoes(0x482));

            this.HairItemID = 0x203C;
            this.HairHue    = 0x455;

            this.FacialHairItemID = 0x203E;
            this.FacialHairHue    = 0x455;

            GlacialStaff staff = new GlacialStaff();

            staff.Movable = false;
            this.AddItem(staff);

            Backpack pack = new Backpack();

            pack.Movable = false;
            this.AddItem(pack);
        }
        public ForgottenOneMage() : base(AIType.AI_Mage, FightMode.Good, 10, 1, 0.2, 0.4)
        {
            Title  = "a ForgottenOne Mage";
            Name   = NameList.RandomName("male");
            Body   = 0x191;
            Hue    = 33805;
            Female = false;

            SetStr(1025, 1425);
            SetDex(81, 148);
            SetInt(475, 675);

            Fame  = -1000;
            Karma = -1000;

            SetHits(1000, 2000);

            SetDamage(24, 33);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 60, 85);
            SetResistance(ResistanceType.Fire, 65, 90);
            SetResistance(ResistanceType.Cold, 40, 55);
            SetResistance(ResistanceType.Poison, 40, 60);
            SetResistance(ResistanceType.Energy, 50, 75);

            SetSkill(SkillName.Archery, 100, 140);
            SetSkill(SkillName.Tactics, 100, 140);
            SetSkill(SkillName.MagicResist, 100, 140);
            SetSkill(SkillName.Tactics, 100, 140);
            SetSkill(SkillName.Wrestling, 100, 140);
            SetSkill(SkillName.Swords, 100, 140);
            SetSkill(SkillName.Magery, 100, 140);
            SetSkill(SkillName.Focus, 100, 140);
            SetSkill(SkillName.EvalInt, 100, 140);
            VirtualArmor = 80;

            GlacialStaff glacialstaff = new GlacialStaff();

            glacialstaff.Movable = false;
            AddItem(glacialstaff);

            HumilityCloak cloak = new HumilityCloak();

            cloak.Movable = false;
            AddItem(cloak);

            SpiritualityHelm spiritualityhelm = new SpiritualityHelm();

            spiritualityhelm.Movable = false;
            AddItem(spiritualityhelm);

            HonestyGorget honestygorget = new HonestyGorget();

            honestygorget.Movable = false;
            AddItem(honestygorget);

            JusticeBreastplate justicebreastplate = new JusticeBreastplate();

            justicebreastplate.Movable = false;
            AddItem(justicebreastplate);

            BodySash bodysash = new BodySash();

            bodysash.Movable = false;
            bodysash.Name    = "ForgottenOne";
            AddItem(bodysash);

            CompassionArms compassionarms = new CompassionArms();

            compassionarms.Movable = false;
            AddItem(compassionarms);

            ValorGauntlets valorgauntlets = new ValorGauntlets();

            valorgauntlets.Movable = false;
            AddItem(valorgauntlets);

            HonorLegs honorlegs = new HonorLegs();

            honorlegs.Movable = false;
            AddItem(honorlegs);

            SacrificeSollerets sacrificesollerets = new SacrificeSollerets();

            sacrificesollerets.Movable = false;
            AddItem(sacrificesollerets);

            DraculasShroud draculasshroud = new DraculasShroud();

            draculasshroud.Movable = false;
            AddItem(draculasshroud);

//          PlateChest chest = new PlateChest();
//			chest.Movable = false;
//			chest.Hue = 137;
//          AddItem(chest);


            VampiriacSteed vampiriacsteed = new VampiriacSteed();

            vampiriacsteed.Hue = 2412;
            //horse.Hits = 200;
            //horse.Karma = 500;
            vampiriacsteed.Rider = this;

            //new VampiriacSteed().Rider = this;
            glacialstaff.Hue       = 2412;
            cloak.Hue              = 2412;
            spiritualityhelm.Hue   = 137;
            honestygorget.Hue      = 137;
            justicebreastplate.Hue = 137;
            bodysash.Hue           = 2412;
            compassionarms.Hue     = 137;
            valorgauntlets.Hue     = 137;
            honorlegs.Hue          = 137;
            sacrificesollerets.Hue = 137;
            draculasshroud.Hue     = 137;
        }
        public AlhaniaTheAnimalCollector() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name       = "Alhania";
            Title      = "the animal collector";
            Body       = 606;
            Female     = true;
            Race       = Race.Elf;
            Hue        = 1002;
            HairItemID = 12238;
            HairHue    = 1141;

            SetStr(157);
            SetDex(91);
            SetInt(268);

            SetHits(500);
            SetMana(1000);

            SetDamage(25, 30);

            SetSkill(SkillName.AnimalLore, 55.0, 78.0);
            SetSkill(SkillName.AnimalTaming, 55.0, 78.0);
            SetSkill(SkillName.EvalInt, 95.5, 125.0);
            SetSkill(SkillName.Herding, 64.0, 100.0);
            SetSkill(SkillName.Magery, 99.5, 125.0);
            SetSkill(SkillName.MagicResist, 95.5, 100.0);
            SetSkill(SkillName.Meditation, 95.5, 100.0);
            SetSkill(SkillName.Veterinary, 60.0, 83.0);
            SetSkill(SkillName.Wrestling, 95.5, 100.0);

            Karma = 5000;

            PackGold(51, 98);

            AddItem(new Cloak(623));
            AddItem(new VictorianDress(783));
            AddItem(new HighBoots(868));

            GlacialStaff weapon = new GlacialStaff();

            weapon.Movable = false;
            AddItem(weapon);

            switch (Utility.Random(18))
            {
            case 0: PackItem(new Amethyst()); break;

            case 1: PackItem(new Garnet()); break;

            case 2: PackItem(new Jade()); break;

            case 3: PackItem(new Morganite()); break;

            case 4: PackItem(new Paraiba()); break;

            case 5: PackItem(new TigerEye()); break;

            case 6: PackItem(new Alexandrite()); break;

            case 7: PackItem(new Ametrine()); break;

            case 8: PackItem(new Kunzite()); break;

            case 9: PackItem(new Ruby()); break;

            case 10: PackItem(new Sapphire()); break;

            case 11: PackItem(new Tanzanite()); break;

            case 12: PackItem(new Topaz()); break;

            case 13: PackItem(new Zultanite()); break;

            case 14: PackItem(new Diamond()); break;

            case 15: PackItem(new Emerald()); break;

            case 16: PackItem(new PinkQuartz()); break;

            case 17: PackItem(new StarSapphire()); break;
            }
        }
Пример #6
0
 public IceBallSpell(Mobile from, GlacialStaff staff) : base(from, staff, m_Info)
 {
 }
Пример #7
0
 public FreezeSpell(Mobile from, GlacialStaff staff) : base(from, staff, m_Info)
 {
 }
Пример #8
0
 public GlacialStaffSpell(Mobile from, GlacialStaff staff, SpellInfo info) : base(from, null, info)
 {
     Staff = staff;
 }
Пример #9
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (targeted is BaseWeapon)
                {
                    if (from.CheckTargetSkill(SkillName.ArmsLore, targeted, 0, 100))
                    {
                        BaseWeapon weap = (BaseWeapon)targeted;

                        if (weap.MaxHitPoints != 0)
                        {
                            int hp = (int)((weap.HitPoints / (double)weap.MaxHitPoints) * 10);

                            if (hp < 0)
                            {
                                hp = 0;
                            }
                            else if (hp > 9)
                            {
                                hp = 9;
                            }

                            from.SendLocalizedMessage(1038285 + hp);
                        }

                        int damage = (weap.MaxDamage + weap.MinDamage) / 2;
                        int hand   = (weap.Layer == Layer.OneHanded ? 0 : 1);

                        if (damage < 3)
                        {
                            damage = 0;
                        }
                        else
                        {
                            damage = (int)Math.Ceiling(Math.Min(damage, 30) / 5.0);
                        }

                        /*
                         * else if ( damage < 6 )
                         * damage = 1;
                         * else if ( damage < 11 )
                         * damage = 2;
                         * else if ( damage < 16 )
                         * damage = 3;
                         * else if ( damage < 21 )
                         * damage = 4;
                         * else if ( damage < 26 )
                         * damage = 5;
                         * else
                         * damage = 6;
                         * */

                        WeaponType type = weap.Type;

                        if (type == WeaponType.Ranged)
                        {
                            from.SendLocalizedMessage(1038224 + (damage * 9));
                        }
                        else if (type == WeaponType.Piercing)
                        {
                            from.SendLocalizedMessage(1038218 + hand + (damage * 9));
                        }
                        else if (type == WeaponType.Slashing)
                        {
                            from.SendLocalizedMessage(1038220 + hand + (damage * 9));
                        }
                        else if (type == WeaponType.Bashing)
                        {
                            from.SendLocalizedMessage(1038222 + hand + (damage * 9));
                        }
                        else
                        {
                            from.SendLocalizedMessage(1038216 + hand + (damage * 9));
                        }

                        if (weap.Poison != null && weap.PoisonCharges > 0)
                        {
                            from.SendLocalizedMessage(1038284);                               // It appears to have poison smeared on it.
                        }
                        if (weap is GlacialStaff && from.Skills[SkillName.ArmsLore].Value >= 90.0)
                        {
                            GlacialStaff staff  = (GlacialStaff)weap;
                            int          spells = 0;

                            if (staff.GetFlag(GlacialSpells.Freeze))
                            {
                                spells++;
                            }
                            if (staff.GetFlag(GlacialSpells.IceStrike))
                            {
                                spells++;
                            }

                            from.SendLocalizedMessage(1038213 + spells);
                        }
                    }
                    else
                    {
                        from.SendLocalizedMessage(500353);                           // You are not certain...
                    }
                }
                else if (targeted is BaseArmor)
                {
                    if (from.CheckTargetSkill(SkillName.ArmsLore, targeted, 0, 100))
                    {
                        BaseArmor arm = (BaseArmor)targeted;

                        if (arm.MaxHitPoints != 0)
                        {
                            int hp = (int)((arm.HitPoints / (double)arm.MaxHitPoints) * 10);

                            if (hp < 0)
                            {
                                hp = 0;
                            }
                            else if (hp > 9)
                            {
                                hp = 9;
                            }

                            from.SendLocalizedMessage(1038285 + hp);
                        }

                        from.SendLocalizedMessage(1038295 + (int)Math.Ceiling(Math.Min(arm.ArmorRating(null), 35) / 5.0));
                    }
                    else
                    {
                        from.SendLocalizedMessage(500353);                           // You are not certain...
                    }
                }
                else if (targeted is SwampDragon && ((SwampDragon)targeted).HasBarding)
                {
                    SwampDragon pet = (SwampDragon)targeted;

                    if (from.CheckTargetSkill(SkillName.ArmsLore, targeted, 0, 100))
                    {
                        int perc = (4 * pet.BardingHP) / pet.BardingMaxHP;

                        if (perc < 0)
                        {
                            perc = 0;
                        }
                        else if (perc > 4)
                        {
                            perc = 4;
                        }

                        pet.PrivateOverheadMessage(MessageType.Regular, 0x3B2, 1053021 - perc, from.NetState);
                    }
                    else
                    {
                        from.SendLocalizedMessage(500353);                           // You are not certain...
                    }
                }
                else
                {
                    from.SendLocalizedMessage(500352);                       // This is neither weapon nor armor.
                }
            }
Пример #10
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (targeted is BaseWeapon)
                {
                    if (from.CheckTargetSkill(SkillName.ArmsLore, targeted, 0, 100))
                    {
                        BaseWeapon weap = (BaseWeapon)targeted;

                        if (weap.MaxHitPoints != 0)
                        {
                            int hp = (int)((weap.HitPoints / (double)weap.MaxHitPoints) * 10);

                            if (hp < 0)
                            {
                                hp = 0;
                            }
                            else if (hp > 9)
                            {
                                hp = 9;
                            }

                            from.SendLocalizedMessage(1038285 + hp);
                        }

                        int damage = (weap.MaxDamage + weap.MinDamage) / 2;
                        int hand   = (weap.Layer == Layer.OneHanded ? 0 : 1);

                        if (damage < 3)
                        {
                            damage = 0;
                        }
                        else
                        {
                            damage = (int)Math.Ceiling(Math.Min(damage, 30) / 5.0);
                        }

                        /*
                         * else if ( damage < 6 )
                         * damage = 1;
                         * else if ( damage < 11 )
                         * damage = 2;
                         * else if ( damage < 16 )
                         * damage = 3;
                         * else if ( damage < 21 )
                         * damage = 4;
                         * else if ( damage < 26 )
                         * damage = 5;
                         * else
                         * damage = 6;
                         * */

                        WeaponType type = weap.Type;

                        if (weap is GlacialStaff)
                        {
                            GlacialStaff glacial = (GlacialStaff)weap;

                            // 1038213: It appears the magical properties of the item would be best used by a Mage.  When equipped, it appears this item would react to the words Des Corp Del or In Corp Del.  Your analysis indicates the staff would likely shatter after its charges have expired.
                            // 1038214: It appears the magical properties of the item would be best used by a Mage.  When equipped, it appears this item would react to the words Des Corp Del or An Ex Del.  Your analysis indicates the staff would likely shatter after its charges have expired.
                            // 1038215: It appears the magical properties of the item would be best used by a Mage.  When equipped, it appears this item would react to the words In Corp Del or An Ex Del.  Your analysis indicates the staff would likely shatter after its charges have expired.
                            from.SendLocalizedMessage(1038213 + glacial.Limit);
                        }
                        else if (type == WeaponType.Ranged)
                        {
                            from.SendLocalizedMessage(1038224 + (damage * 9));
                        }
                        else if (type == WeaponType.Piercing)
                        {
                            from.SendLocalizedMessage(1038218 + hand + (damage * 9));
                        }
                        else if (type == WeaponType.Slashing)
                        {
                            from.SendLocalizedMessage(1038220 + hand + (damage * 9));
                        }
                        else if (type == WeaponType.Bashing)
                        {
                            from.SendLocalizedMessage(1038222 + hand + (damage * 9));
                        }
                        else
                        {
                            from.SendLocalizedMessage(1038216 + hand + (damage * 9));
                        }

                        if (weap.Poison != null && weap.PoisonCharges > 0)
                        {
                            from.SendLocalizedMessage(1038284);                               // It appears to have poison smeared on it.
                        }
                    }
                    else
                    {
                        from.SendLocalizedMessage(500353);                           // You are not certain...
                    }
                }
                else if (targeted is BaseArmor)
                {
                    if (from.CheckTargetSkill(SkillName.ArmsLore, targeted, 0, 100))
                    {
                        BaseArmor arm = (BaseArmor)targeted;

                        if (arm.MaxHitPoints != 0)
                        {
                            int hp = (int)((arm.HitPoints / (double)arm.MaxHitPoints) * 10);

                            if (hp < 0)
                            {
                                hp = 0;
                            }
                            else if (hp > 9)
                            {
                                hp = 9;
                            }

                            from.SendLocalizedMessage(1038285 + hp);
                        }


                        from.SendLocalizedMessage(1038295 + (int)Math.Ceiling(Math.Min(arm.ArmorRating, 35) / 5.0));

                        /*
                         * if ( arm.ArmorRating < 1 )
                         *      from.SendLocalizedMessage( 1038295 ); // This armor offers no defense against attackers.
                         * else if ( arm.ArmorRating < 6 )
                         *      from.SendLocalizedMessage( 1038296 ); // This armor provides almost no protection.
                         * else if ( arm.ArmorRating < 11 )
                         *      from.SendLocalizedMessage( 1038297 ); // This armor provides very little protection.
                         * else if ( arm.ArmorRating < 16 )
                         *      from.SendLocalizedMessage( 1038298 ); // This armor offers some protection against blows.
                         * else if ( arm.ArmorRating < 21 )
                         *      from.SendLocalizedMessage( 1038299 ); // This armor serves as sturdy protection.
                         * else if ( arm.ArmorRating < 26 )
                         *      from.SendLocalizedMessage( 1038300 ); // This armor is a superior defense against attack.
                         * else if ( arm.ArmorRating < 31 )
                         *      from.SendLocalizedMessage( 1038301 ); // This armor offers excellent protection.
                         * else
                         *      from.SendLocalizedMessage( 1038302 ); // This armor is superbly crafted to provide maximum protection.
                         * */
                    }
                    else
                    {
                        from.SendLocalizedMessage(500353);                           // You are not certain...
                    }
                }
                else if (targeted is SwampDragon && ((SwampDragon)targeted).HasBarding)
                {
                    SwampDragon pet = (SwampDragon)targeted;

                    if (from.CheckTargetSkill(SkillName.ArmsLore, targeted, 0, 100))
                    {
                        int perc = (4 * pet.BardingHP) / pet.BardingMaxHP;

                        if (perc < 0)
                        {
                            perc = 0;
                        }
                        else if (perc > 4)
                        {
                            perc = 4;
                        }

                        pet.PrivateOverheadMessage(MessageType.Regular, 0x3B2, 1053021 - perc, from.NetState);
                    }
                    else
                    {
                        from.SendLocalizedMessage(500353);                           // You are not certain...
                    }
                }
                else
                {
                    from.SendLocalizedMessage(500352);                       // This is neither weapon nor armor.
                }
            }
Пример #11
0
        public IceMagi() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name        = "Arcane Magician";
            Title       = "of Defiance";
            Hue         = 0;
            Body        = 400;
            SpeechHue   = 1153;
            BaseSoundID = 0;
            Team        = 0;

            new SilverSteed().Rider = this;

            SetStr(275, 375);
            SetDex(40, 75);
            SetInt(100, 150);

            SetHits(230, 375);
            SetMana(100, 150);

            SetDamage(10, 15);


            SetSkill(SkillName.Wrestling, 100.2, 100.6);
            SetSkill(SkillName.Tactics, 100.7, 100.4);
            SetSkill(SkillName.Anatomy, 100.5, 100.3);
            SetSkill(SkillName.MagicResist, 110.4, 110.7);
            SetSkill(SkillName.Magery, 120.4, 120.7);
            SetSkill(SkillName.Macing, 110.4, 110.7);
            SetSkill(SkillName.EvalInt, 110.4, 110.7);

            Fame  = 7000;
            Karma = -10000;

            VirtualArmor = 45;

            Item item = new GlacialStaff();

            item.LootType = LootType.Blessed;
            item.Hue      = 1152;
            EquipItem(item);

            item         = new WizardsHat();
            item.Movable = false;
            item.Hue     = 1153;
            EquipItem(item);

            EquipItem(Rehued(Immovable(new Tunic()), 1153));

            Item PlateGloves = new PlateGloves();

            PlateGloves.Movable = false;
            PlateGloves.Hue     = 1165;
            EquipItem(PlateGloves);

            Item LongPants = new LongPants();

            LongPants.Movable = false;
            LongPants.Hue     = 1153;
            EquipItem(LongPants);

            Item Sandals = new Sandals();

            Sandals.Movable = false;
            Sandals.Hue     = 1150;
            EquipItem(Sandals);

            Item Cloak = new Cloak();

            Cloak.Movable = false;
            Cloak.Hue     = 1150;
            EquipItem(Cloak);

            HairItemID = 0x203B;
            HairHue    = 1150;

            PackGold(100, 300);
            PackMagicItems(3, 7);

            if (Utility.Random(4) == 0)
            {
                PackItem(new IceCube());
            }
        }