Exemple #1
0
        public Death()
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name = "Death";
            Title = "    The 4th Horseman";
            Body = 400;
            SpeechHue = 2128;
            Hue = 161;
            VirtualArmor = 45;
            Kills = 10;

            SetStr( 125 );
            SetDex( 251 );
            SetInt( 130 );

            SetHits(12000);
            SetDamage(25,45);
            SetDamageType(ResistanceType.Poison, 100);

            SetResistance(ResistanceType.Physical, 45,55);
            SetResistance(ResistanceType.Fire, 45, 55);
            SetResistance(ResistanceType.Cold, 45, 55);
            SetResistance(ResistanceType.Energy, 45, 55);
            SetResistance(ResistanceType.Poison, 100);

            SetSkill(SkillName.Wrestling, 85.0, 92.5);
            SetSkill(SkillName.Tactics, 78.5, 87.2);
            SetSkill(SkillName.Anatomy, 68.7, 85.6);
            SetSkill(SkillName.Fencing, 92.5, 95.6);

            Fame = 0;
            Karma = -10000;
            Item Weapon = new ScytheOfDeath();

            Weapon.Movable = false;

            AddItem(Weapon);
              //  PackItem(new MasterCoin(40));

            VirtualArmor = 30;

            new PaleHorse().Rider = this;

            Item apron = new HalfApron(161);
            apron.Movable = false;
            AddItem( apron );

            Item hair = new ShortHair( 161 );
            hair.Movable = false;
            AddItem( hair );

            Item shoes = new Sandals(161);
            shoes.Movable = false;
            AddItem( shoes );

            Item mask = new OrcishKinMask(161);
               mask.Movable = false;
            AddItem( mask );

            Item robe = new Robe(161);
            robe.Movable = false;
            AddItem( robe );

            Item gloves = new LeatherGloves();
            gloves.Movable = false;
            gloves.Hue = 161;
            AddItem( gloves );

            Item gorget = new LeatherGorget();
            gorget.Movable = false;
            gorget.Hue = 161;
            AddItem( gorget );
        }
Exemple #2
0
        public static Item RandomIOB()
        {
            switch (Utility.Random(7))
            {
                case 0: // Undead - GUL
                    {
                        if (Utility.RandomBool())
                            return new BloodDrenchedBandana();
                        else
                        {
                            BodySash sash = new BodySash();
                            sash.Hue = 0x66C;
                            sash.IOBAlignment = IOBAlignment.Council;
                            sash.Name = "blood drenched sash";
                            sash.Dyable = false;
							sash.Scissorable = false;
                            return sash;
                        }
                    }
                case 1: // Undead - UND
                {
                    Sandals sandals = new Sandals();
                    if (Utility.RandomBool())
                        sandals.Hue = 0x66C;
                    else
                        sandals.Hue = 0x1;
                    sandals.IOBAlignment = IOBAlignment.Undead;
                    sandals.Name = "sandals of the walking dead";
                    sandals.Dyable = false;
					sandals.Scissorable = false;
                    return sandals;


                }
                case 2: // Orcish
                {
                    if (Utility.RandomBool())
                    {	// green mask (brute color)
						if (Utility.RandomBool())
							return new OrcishKinMask();
						else
						{	// old style mask (orc colored)
							OrcishKinMask mask = new OrcishKinMask();
							mask.Hue = 0;
							return mask;
						}

                    }
                    else
                    {
                        return new OrcishKinHelm();

                    }
                }
                case 3: //Savage
                {
                    if (Utility.RandomBool())
                    {
                        if (Utility.RandomBool())
                            {
                                BearMask mask = new BearMask();
                                mask.IOBAlignment = IOBAlignment.Savage;
                                mask.Name = "bear mask of savage kin";
                                mask.Dyable = false;
                                return mask;
                            }
                        else
                            {
                                DeerMask mask = new DeerMask();
                                mask.IOBAlignment = IOBAlignment.Savage;
                                mask.Name = "deer mask of savage kin";
                                mask.Dyable = false;
                                return mask;
                            }
                    }
                    else
                        {
                            SavageMask mask = new SavageMask();
                            mask.IOBAlignment = IOBAlignment.Savage;
                            mask.Name = "tribal mask of savage kin";
                            mask.Dyable = false;
                            return mask;
                        }
                }
                case 4: // Pirates
                {
                        if (Utility.RandomBool())
                        {
                            if (Utility.RandomBool())
                            {
                                SkullCap skullcap = new SkullCap();
                                skullcap.IOBAlignment = IOBAlignment.Pirate;
                                skullcap.Name = "a pirate skullcap";
                                skullcap.Hue = 0x66C;
                                skullcap.Dyable = false;
								skullcap.Scissorable = false;
                                return skullcap;
                            }
                            else
                            {
                                Boots boots = new Boots();
                                boots.IOBAlignment = IOBAlignment.Pirate;
                                boots.Name = "pirate kin boots";
                                boots.Hue = 0x66c;
                                boots.Dyable = false;
								boots.Scissorable = false;
                                return boots;
                            }
                        }
                        else
                        {
                            return new PirateHat();
                        }

                }
                case 5: // Brigands
                {
                        if (Utility.RandomBool())
                        {
                            return new BrigandKinBandana();
                        }
                        else
                        {
                            return new BrigandKinBoots();
                        }
                }
				case 6: // Good
				{
					switch ( Utility.Random( 4 ))
					{
						case 0: 
							Boots boots = new Boots(0x5E4);
							boots.IOBAlignment = IOBAlignment.Good;
							boots.Name = "Britannian Militia";
							boots.Dyable = false;
							return boots;
						case 1: Cloak cloak = new Cloak(Utility.RandomSpecialVioletHue());
							cloak.IOBAlignment = IOBAlignment.Good;
							cloak.Name = "Britannian Militia";
							cloak.Dyable = false;
							cloak.Scissorable = false;
							return cloak;
						case 2: Surcoat surcoat = new Surcoat(Utility.RandomSpecialVioletHue());
							surcoat.IOBAlignment = IOBAlignment.Good;
							surcoat.Name = "Britannian Militia";
							surcoat.Dyable = false;
							surcoat.Scissorable = false;
							return surcoat;
						case 3: BodySash bodySash = new BodySash(Utility.RandomSpecialRedHue());
							bodySash.IOBAlignment = IOBAlignment.Good;
							bodySash.Name = "Britannian Militia";
							bodySash.Dyable = false;
							bodySash.Scissorable = false;
							return bodySash;
					}
					break;
				}
            }
            return null;

        }
Exemple #3
0
        public static void Fill(LockableContainer cont, int level)
        {
            cont.Movable = false;
            cont.Locked  = true;

            cont.TrapType  = TrapType.ExplosionTrap;
            cont.TrapPower = level * 25;

            switch (level)
            {
            case 0: cont.RequiredSkill = 1; break;

            case 1: cont.RequiredSkill = 36; break;

            case 2: cont.RequiredSkill = 76; break;

            case 3: cont.RequiredSkill = 84; break;

            case 4: cont.RequiredSkill = 92; break;

            case 5: cont.RequiredSkill = 100; break;
            }

            cont.LockLevel    = cont.RequiredSkill - 10;
            cont.MaxLockLevel = cont.RequiredSkill + 40;

            double maskChance = 0.1 * level;

            if (Utility.RandomDouble() < maskChance)
            {
                Item mask = null;
                switch (Utility.Random(4))
                {
                case 0: mask = new OrcishKinMask(); break;

                case 1: mask = new TribalMask(); break;

                case 2: mask = new DeerMask(); break;

                case 3:
                default: mask = new BearMask(); break;
                }

                cont.DropItem(mask);
            }

            //int gold = 1000 * level;
            //cont.DropItem( new Gold( gold ) );

            for (int i = 0; i < level * 5; ++i)
            {
                cont.DropItem(Loot.RandomScroll(0, 63, SpellbookType.Regular));
            }

            /*for (int i = 0; i < level * 2; i++)
             * {
             *  cont.DropItem(new Gold(Utility.RandomMinMax(100, 600)));
             *
             *  // this give magic weapons over 25% of the time with a 15% chance for a vanq even at level 1. That is insane.
             *  Item item = Loot.RandomArmorOrShieldOrWeapon();
             *
             *  if (item is BaseWeapon)
             *  {
             *      BaseWeapon weapon = (BaseWeapon)item;
             *
             *      weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(6);
             *      weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(6);
             *      weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(6);
             *
             *      cont.DropItem(item);
             *  }
             *  else if (item is BaseArmor)
             *  {
             *      BaseArmor armor = (BaseArmor)item;
             *
             *      armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(6);
             *      armor.Durability = (ArmorDurabilityLevel)Utility.Random(6);
             *
             *      cont.DropItem(item);
             *  }
             * }*/

            for (int i = 0; i < level; ++i)
            {
                // This is much more sane.
                LootPack.OldSuperBoss.Generate(cont);
            }

            int reagents;

            if (level == 0)
            {
                reagents = 12;
            }
            else
            {
                reagents = level * 3;
            }

            for (int i = 0; i < reagents; i++)
            {
                Item item = Loot.RandomPossibleReagent();
                item.Amount = Utility.RandomMinMax(20, 60);
                cont.DropItem(item);
            }

            int gems;

            if (level == 0)
            {
                gems = 2;
            }
            else
            {
                gems = level * 3;
            }

            for (int i = 0; i < gems; i++)
            {
                Item item = Loot.RandomGem();
                cont.DropItem(item);
            }
        }
        /// <summary>
        /// This is the function gives weaponry to players.
        /// </summary>
        private static void ArmPlayer(CTFPlayerGameData pgd)
        {
            Mobile m = pgd.Mob;

            if (!m.Alive)
                m.Resurrect();

            for (int i = m.Items.Count - 1; i >= 0; --i)
            {
                Item item = (Item)m.Items[i];
                if (item.Layer == Layer.OuterTorso)
                {
                    item.Delete();
                    break;
                }
            }

            List<Item> armthis = new List<Item>();

            if(GiveRobe)
                armthis.Add(new CTFRobe(pgd.Team));

            Item rankedCloth = null;
            CTFTeam team = pgd.Team;

            // 21 Ranks
            switch (CTFData.GetRank(m))
            {
                default:
                case 0: rankedCloth = new JesterHat(team.Hue); break;
                case 1: rankedCloth = new TallStrawHat(team.Hue); break;
                case 2: rankedCloth = new FloppyHat(team.Hue); break;
                case 3: rankedCloth = new WideBrimHat(team.Hue); break;
                case 4: rankedCloth = new Cap(team.Hue); break;
                case 5: rankedCloth = new SkullCap(team.Hue); break;
                case 6: rankedCloth = new FlowerGarland(team.Hue); break;
                case 7: rankedCloth = new StrawHat(team.Hue); break;
                case 8: rankedCloth = new FeatheredHat(team.Hue); break;
                case 9: rankedCloth = new TricorneHat(team.Hue); break;
                case 10: rankedCloth = new TribalMask(team.Hue); break;
                case 11: rankedCloth = new HornedTribalMask(team.Hue); break;
                case 12: rankedCloth = new BearMask(team.Hue); break;
                case 13: rankedCloth = new DeerMask(team.Hue); break;
                case 14: rankedCloth = new OrcishKinMask(team.Hue); break;
                case 15: rankedCloth = new SavageMask(team.Hue); break;
                case 16: rankedCloth = new WizardsHat(team.Hue); break;
                case 17: rankedCloth = new Bandana(team.Hue); break;
                case 18: rankedCloth = new ClothNinjaHood(team.Hue); break;
                case 19: rankedCloth = new Kasa(team.Hue); break;
                case 20:
                    rankedCloth = new BoneHelm();
                    rankedCloth.Hue = team.Hue;
                    ((BaseArmor)rankedCloth).ArmorAttributes.MageArmor = 1;
                    break;
            }
            if (rankedCloth != null)
            {
                rankedCloth.Movable = false;
                armthis.Add(rankedCloth);
            }

            //Alchemy removed by Blady
            /* 			if (m.Skills[SkillName.Alchemy].Value >= (m_MinSupplySkill + 15)) //80 Alchemy req - by Blady
            {
                for (int i = 0; i < 6; i++) //Amount reduced to 6 by Blady - used to be 10
                {
                    armthis.Add(new ExplosionPotion());
                    armthis.Add(new GreaterHealPotion());
                    armthis.Add(new GreaterCurePotion());
                    armthis.Add(new GreaterAgilityPotion());
                    armthis.Add(new RefreshPotion());
                    armthis.Add(new GreaterStrengthPotion());
                }
            } */

            if (m.Skills[SkillName.Chivalry].Value >= m_MinSupplySkill)
            {
                BookOfChivalry book = new BookOfChivalry();
                book.Content = 1023;//all spells
                armthis.Add(book);
            }

            if (m.Skills[SkillName.Necromancy].Value >= m_MinSupplySkill)
            {
                NecromancerSpellbook book = new NecromancerSpellbook();
                book.Content = 0x1FFFF;
                armthis.Add(book);
            }

            if (m.Skills[SkillName.Magery].Value >= m_MinSupplySkill)
            {
                GnarledStaff gs = new GnarledStaff();
                gs.Attributes.SpellChanneling = 1;
                gs.WeaponAttributes.MageWeapon = 20;
                armthis.Add(gs);

                Spellbook book = new Spellbook();
                book.Content = ulong.MaxValue;
                armthis.Add(book);
            }

            if (m.Skills[SkillName.Healing].Value >= m_MinSupplySkill)
                armthis.Add(new Bandage(1000));

            if (m.Skills[SkillName.Fencing].Value >= m_MinSupplySkill)
            {
                Spear sp = new Spear();
                sp.Attributes.SpellChanneling = 1;
                armthis.Add(sp);

                ShortSpear ssp = new ShortSpear();
                ssp.Attributes.SpellChanneling = 1;
                armthis.Add(ssp);

                WarFork wf = new WarFork();
                wf.Attributes.SpellChanneling = 1;
                armthis.Add(wf);

                Kryss k = new Kryss();
                k.Attributes.SpellChanneling = 1;
                armthis.Add(k);
            }

            if (m.Skills[SkillName.Swords].Value >= m_MinSupplySkill)
            {
                if (m.Skills[SkillName.Lumberjacking].Value >= m_MinSupplySkill)
                {
                    ExecutionersAxe ea = new ExecutionersAxe();
                    ea.Attributes.SpellChanneling = 1;
                    armthis.Add(ea);
                }

                Katana k = new Katana();
                k.Attributes.SpellChanneling = 1;
                armthis.Add(k);

                Longsword ls = new Longsword();
                ls.Attributes.SpellChanneling = 1;
                armthis.Add(ls);

                Cleaver c = new Cleaver();
                c.Attributes.SpellChanneling = 1;
                armthis.Add(c);

                BoneHarvester bh = new BoneHarvester();
                bh.Attributes.SpellChanneling = 1;
                armthis.Add(bh);
            }

            if (m.Skills[SkillName.Macing].Value >= m_MinSupplySkill)
            {
                WarAxe wa = new WarAxe();
                wa.Attributes.SpellChanneling = 1;
                armthis.Add(wa);

                HammerPick hp = new HammerPick();
                hp.Attributes.SpellChanneling = 1;
                armthis.Add(hp);

                QuarterStaff qs = new QuarterStaff();
                qs.Attributes.SpellChanneling = 1;
                armthis.Add(qs);
            }

            if (m.Skills[SkillName.Archery].Value >= m_MinSupplySkill)
            {
                Bow b = new Bow();
                b.Attributes.SpellChanneling = 1;
                armthis.Add(b);

                Crossbow xb = new Crossbow();
                xb.Attributes.SpellChanneling = 1;
                armthis.Add(xb);

                CompositeBow cb = new CompositeBow();
                cb.Attributes.SpellChanneling = 1;
                armthis.Add(cb);

                armthis.Add(new Arrow(150));
                armthis.Add(new Bolt(150));
            }

            if (m.Skills[SkillName.Poisoning].Value >= m_MinSupplySkill)
            {
                for (int i = 0; i < 2; i++)
                    armthis.Add(new GreaterPoisonPotion());
            }

            if (m.Skills[SkillName.Parry].Value >= m_MinSupplySkill)
            {
                MetalKiteShield ks = new MetalKiteShield();
                ks.Attributes.SpellChanneling = 1;
                armthis.Add(ks);
            }

            SunnySystem.ArmPlayer(m, armthis);
        }
        public static void Fill(LockableContainer cont, int level)
        {
            cont.Movable = false;
            cont.Locked = true;

            cont.TrapType = TrapType.ExplosionTrap;
            cont.TrapPower = level * 25;

            switch ( level )
            {
                case 0: cont.RequiredSkill = 1; break;
                case 1: cont.RequiredSkill = 36; break;
                case 2: cont.RequiredSkill = 76; break;
                case 3: cont.RequiredSkill = 84; break;
                case 4: cont.RequiredSkill = 92; break;
                case 5: cont.RequiredSkill = 100; break;
            }

            cont.LockLevel = cont.RequiredSkill - 10;
            cont.MaxLockLevel = cont.RequiredSkill + 40;

            double maskChance = 0.1 * level;

            if ( Utility.RandomDouble() < maskChance )
            {
                Item mask = null;
                switch ( Utility.Random( 4 ) )
                {
                    case 0: mask = new OrcishKinMask(); break;
                    case 1: mask = new TribalMask(); break;
                    case 2: mask = new DeerMask(); break;
                    case 3:
                    default:mask = new BearMask(); break;
                }

                cont.DropItem( mask );
            }

            //int gold = 1000 * level;
            //cont.DropItem( new Gold( gold ) );

            for ( int i = 0; i < level * 5; ++i )
                cont.DropItem( Loot.RandomScroll( 0, 63, SpellbookType.Regular ) );

            /*for (int i = 0; i < level * 2; i++)
            {
                cont.DropItem(new Gold(Utility.RandomMinMax(100, 600)));

                // this give magic weapons over 25% of the time with a 15% chance for a vanq even at level 1. That is insane.
                Item item = Loot.RandomArmorOrShieldOrWeapon();

                if (item is BaseWeapon)
                {
                    BaseWeapon weapon = (BaseWeapon)item;

                    weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(6);
                    weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(6);
                    weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(6);

                    cont.DropItem(item);
                }
                else if (item is BaseArmor)
                {
                    BaseArmor armor = (BaseArmor)item;

                    armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(6);
                    armor.Durability = (ArmorDurabilityLevel)Utility.Random(6);

                    cont.DropItem(item);
                }
            }*/

            for ( int i = 0; i < level; ++i )
            {
                // This is much more sane.
                LootPack.OldSuperBoss.Generate( cont );
            }

            int reagents;
            if ( level == 0 )
                reagents = 12;
            else
                reagents = level * 3;

            for ( int i = 0; i < reagents; i++ )
            {
                Item item = Loot.RandomPossibleReagent();
                item.Amount = Utility.RandomMinMax( 20, 60 );
                cont.DropItem( item );
            }

            int gems;
            if ( level == 0 )
                gems = 2;
            else
                gems = level * 3;

            for ( int i = 0; i < gems; i++ )
            {
                Item item = Loot.RandomGem();
                cont.DropItem( item );
            }
        }