Inheritance: BaseSword
Beispiel #1
0
        public MilitiaFighter()
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            InitStats( 40, 30, 5 );
            Title = "the Militia Fighter";

            SpeechHue = Utility.RandomDyedHue();

            Hue = Utility.RandomSkinHue();

            Female = false;
            Body = 0x190;
            Name = NameList.RandomName( "male" );

            Utility.AssignRandomHair( this );
            Utility.AssignRandomFacialHair( this, HairHue );

            AddItem( new ThighBoots( 0x1BB ) );
            AddItem( new LeatherChest() );
            AddItem( new LeatherArms() );
            AddItem( new LeatherLegs() );
            AddItem( new LeatherCap() );
            AddItem( new LeatherGloves() );
            AddItem( new LeatherGorget() );

            Item weapon;
            switch ( Utility.Random( 6 ) )
            {
                case 0:
                    weapon = new Broadsword();
                    break;
                case 1:
                    weapon = new Cutlass();
                    break;
                case 2:
                    weapon = new Katana();
                    break;
                case 3:
                    weapon = new Longsword();
                    break;
                case 4:
                    weapon = new Scimitar();
                    break;
                default:
                    weapon = new VikingSword();
                    break;
            }
            weapon.Movable = false;
            AddItem( weapon );

            Item shield = new BronzeShield();
            shield.Movable = false;
            AddItem( shield );

            SetSkill( SkillName.Swords, 20.0 );
        }
        public MilitiaFighter()
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            InitStats( 40, 30, 5 );
            Title = "the Militia Fighter";

            SpeechHue = Utility.RandomDyedHue();

            Hue = Utility.RandomSkinHue();

            Female = false;
            Body = 0x190;
            Name = NameList.RandomName( "male" );

            Item hair = new Item( Utility.RandomList( 0x203B, 0x203C, 0x203D, 0x2044, 0x2045, 0x2047, 0x2049, 0x204A ) );
            hair.Hue = Utility.RandomHairHue();
            hair.Layer = Layer.Hair;
            hair.Movable = false;
            AddItem( hair );

            Item beard = new Item( Utility.RandomList( 0x203E, 0x203F, 0x2040, 0x2041, 0x204B, 0x204C, 0x204D ) );
            beard.Hue = hair.Hue;
            beard.Layer = Layer.FacialHair;
            beard.Movable = false;
            AddItem( beard );

            AddItem( new ThighBoots( 0x1BB ) );
            AddItem( new LeatherChest() );
            AddItem( new LeatherArms() );
            AddItem( new LeatherLegs() );
            AddItem( new LeatherCap() );
            AddItem( new LeatherGloves() );
            AddItem( new LeatherGorget() );

            Item weapon;
            switch ( Utility.Random( 6 ) )
            {
                case 0: weapon = new Broadsword(); break;
                case 1: weapon = new Cutlass(); break;
                case 2: weapon = new Katana(); break;
                case 3: weapon = new Longsword(); break;
                case 4: weapon = new Scimitar(); break;
                default: weapon = new VikingSword(); break;
            }
            weapon.Movable = false;
            AddItem( weapon );

            Item shield = new BronzeShield();
            shield.Movable = false;
            AddItem( shield );

            SetSkill( SkillName.Swords, 20.0 );
        }
Beispiel #3
0
        public static string MakeThisTask()
        {
            string task = null;

            switch (Utility.RandomMinMax(1, 10))
            {
            case 1: task = "Repair"; break;

            case 2: task = "Fix"; break;

            case 3: task = "Buff"; break;

            case 4: task = "Modify"; break;

            case 5: task = "Polish"; break;

            case 6: task = "Engrave"; break;

            case 7: task = "Adjust"; break;

            case 8: task = "Improve"; break;

            case 9: task = "Smooth the dents from"; break;

            case 10: task = "Remove the dents from"; break;
            }

            Item item = null;

            switch (Utility.RandomMinMax(1, 79))
            {
            case 1: item = new AssassinSpike(); break;

            case 2: item = new Axe(); break;

            case 3: item = new Bardiche(); break;

            case 4: item = new Bascinet(); break;

            case 5: item = new BattleAxe(); break;

            case 6: item = new BoneHarvester(); break;

            case 7: item = new Broadsword(); break;

            case 8: item = new BronzeShield(); break;

            case 9: item = new Buckler(); break;

            case 10: item = new ButcherKnife(); break;

            case 11: item = new ChainChest(); break;

            case 12: item = new ChainCoif(); break;

            case 13: item = new ChainLegs(); break;

            case 14: item = new ChampionShield(); break;

            case 15: item = new Cleaver(); break;

            case 16: item = new CloseHelm(); break;

            case 17: item = new CloseHelm(); break;

            case 18: item = new CrescentBlade(); break;

            case 19: item = new CrestedShield(); break;

            case 20: item = new Cutlass(); break;

            case 21: item = new Dagger(); break;

            case 22: item = new DarkShield(); break;

            case 23: item = new DiamondMace(); break;

            case 24: item = new DoubleAxe(); break;

            case 25: item = new DoubleBladedStaff(); break;

            case 26: item = new DreadHelm(); break;

            case 27: item = new ElvenMachete(); break;

            case 28: item = new ElvenShield(); break;

            case 29: item = new ElvenSpellblade(); break;

            case 30: item = new ExecutionersAxe(); break;

            case 31: item = new FemalePlateChest(); break;

            case 32: item = new GuardsmanShield(); break;

            case 33: item = new Halberd(); break;

            case 34: item = new HammerPick(); break;

            case 35: item = new HeaterShield(); break;

            case 36: item = new Helmet(); break;

            case 37: item = new Helmet(); break;

            case 38: item = new JeweledShield(); break;

            case 39: item = new Katana(); break;

            case 40: item = new Kryss(); break;

            case 41: item = new Lance(); break;

            case 42: item = new LargeBattleAxe(); break;

            case 43: item = new Leafblade(); break;

            case 44: item = new Longsword(); break;

            case 45: item = new Mace(); break;

            case 46: item = new Maul(); break;

            case 47: item = new MetalKiteShield(); break;

            case 48: item = new MetalShield(); break;

            case 49: item = new NorseHelm(); break;

            case 50: item = new NorseHelm(); break;

            case 51: item = new OrnateAxe(); break;

            case 52: item = new Pickaxe(); break;

            case 53: item = new Pike(); break;

            case 54: item = new Pitchfork(); break;

            case 55: item = new PlateArms(); break;

            case 56: item = new PlateChest(); break;

            case 57: item = new PlateGloves(); break;

            case 58: item = new PlateGorget(); break;

            case 59: item = new PlateHelm(); break;

            case 60: item = new PlateHelm(); break;

            case 61: item = new PlateLegs(); break;

            case 62: item = new RadiantScimitar(); break;

            case 63: item = new RingmailArms(); break;

            case 64: item = new RingmailChest(); break;

            case 65: item = new RingmailGloves(); break;

            case 66: item = new RingmailLegs(); break;

            case 67: item = new RuneBlade(); break;

            case 68: item = new Scimitar(); break;

            case 69: item = new Scythe(); break;

            case 70: item = new ShortSpear(); break;

            case 71: item = new SkinningKnife(); break;

            case 72: item = new Spear(); break;

            case 73: item = new ThinLongsword(); break;

            case 74: item = new TwoHandedAxe(); break;

            case 75: item = new VikingSword(); break;

            case 76: item = new WarAxe(); break;

            case 77: item = new WarCleaver(); break;

            case 78: item = new WarHammer(); break;

            case 79: item = new WarMace(); break;
            }

            if (Utility.RandomMinMax(1, 5) == 1)
            {
                bool evil   = false;
                bool orient = false;

                switch (Utility.RandomMinMax(1, 8))
                {
                case 1: evil = true; break;

                case 2: orient = true; break;
                }

                string sAdjective = "unusual";
                string eAdjective = "might";

                sAdjective = Server.LootPackEntry.MagicItemAdj("start", orient, evil, item.ItemID);
                eAdjective = Server.LootPackEntry.MagicItemAdj("end", orient, evil, item.ItemID);

                string name  = "item";
                string xName = ContainerFunctions.GetOwner("property");

                if (item.Name != null && item.Name != "")
                {
                    name = item.Name.ToLower();
                }
                if (name == "item")
                {
                    name = MorphingItem.AddSpacesToSentence((item.GetType()).Name).ToLower();
                }

                switch (Utility.RandomMinMax(0, 5))
                {
                case 0: name = sAdjective + " " + name + " of " + xName;        break;

                case 1: name = name + " of " + xName;                                           break;

                case 2: name = sAdjective + " " + name;                                         break;

                case 3: name = sAdjective + " " + name + " of " + xName;        break;

                case 4: name = name + " of " + xName;                                           break;

                case 5: name = sAdjective + " " + name;                                         break;
                }

                task = task + " their " + name;
            }
            else
            {
                string[] sMetals = new string[] { "iron ", "dull copper ", "shadow iron ", "copper ", "bronze ", "gold ", "agapite ", "verite ", "valorite ", "nepturite ", "obsidian ", "steel ", "brass ", "mithril ", "xormite ", "dwarven " };
                string   sMetal  = sMetals[Utility.RandomMinMax(0, (sMetals.Length - 1))];

                string name = "item";
                if (item.Name != null && item.Name != "")
                {
                    name = item.Name.ToLower();
                }
                if (name == "item")
                {
                    name = MorphingItem.AddSpacesToSentence((item.GetType()).Name).ToLower();
                }

                task = task + " their " + sMetal + name;
            }

            item.Delete();

            return(task);
        }
Beispiel #4
0
        public ChaosDragoonElite()
            : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.15, 0.4)
        {
            Name = "a chaos dragoon elite";
            Body = 0x190;
            Hue = Utility.RandomSkinHue();

            SetStr(276, 350);
            SetDex(66, 90);
            SetInt(126, 150);

            SetHits(276, 350);

            SetDamage(29, 34);

            SetDamageType(ResistanceType.Physical, 100);

            /*SetResistance(ResistanceType.Physical, 45, 55);
            SetResistance(ResistanceType.Fire, 15, 25);
            SetResistance(ResistanceType.Cold, 50);
            SetResistance(ResistanceType.Poison, 25, 35);
            SetResistance(ResistanceType.Energy, 25, 35);*/

            SetSkill(SkillName.Tactics, 80.1, 100.0);
            SetSkill(SkillName.MagicResist, 100.1, 110.0);
            SetSkill(SkillName.Anatomy, 80.1, 100.0);
            SetSkill(SkillName.Magery, 85.1, 100.0);
            SetSkill(SkillName.EvalInt, 85.1, 100.0);
            SetSkill(SkillName.Swords, 72.5, 95.0);
            SetSkill(SkillName.Fencing, 85.1, 100);
            SetSkill(SkillName.Macing, 85.1, 100);

            Fame = 8000;
            Karma = -8000;

            var res = CraftResource.None;

            switch (Utility.Random(6))
            {
                case 0:
                    res = CraftResource.BlackScales;
                    break;
                case 1:
                    res = CraftResource.RedScales;
                    break;
                case 2:
                    res = CraftResource.BlueScales;
                    break;
                case 3:
                    res = CraftResource.YellowScales;
                    break;
                case 4:
                    res = CraftResource.GreenScales;
                    break;
                case 5:
                    res = CraftResource.WhiteScales;
                    break;
            }

            BaseWeapon melee = null;

            switch (Utility.Random(3))
            {
                case 0:
                    melee = new Kryss();
                    break;
                case 1:
                    melee = new Broadsword();
                    break;
                case 2:
                    melee = new Katana();
                    break;
            }

            melee.Movable = false;
            AddItem(melee);

            var Tunic = new DragonChest();
            Tunic.Resource = res;
            Tunic.Movable = false;
            AddItem(Tunic);

            var Legs = new DragonLegs();
            Legs.Resource = res;
            Legs.Movable = false;
            AddItem(Legs);

            var Arms = new DragonArms();
            Arms.Resource = res;
            Arms.Movable = false;
            AddItem(Arms);

            var Gloves = new DragonGloves();
            Gloves.Resource = res;
            Gloves.Movable = false;
            AddItem(Gloves);

            var Helm = new DragonHelm();
            Helm.Resource = res;
            Helm.Movable = false;
            AddItem(Helm);

            var shield = new ChaosShield();
            shield.Movable = false;
            AddItem(shield);

            AddItem(new Boots(0x455));
            AddItem(new Shirt(Utility.RandomMetalHue()));

            var amount = Utility.RandomMinMax(1, 3);

            switch (res)
            {
                case CraftResource.BlackScales:
                    AddItem(new BlackScales(amount));
                    break;
                case CraftResource.RedScales:
                    AddItem(new RedScales(amount));
                    break;
                case CraftResource.BlueScales:
                    AddItem(new BlueScales(amount));
                    break;
                case CraftResource.YellowScales:
                    AddItem(new YellowScales(amount));
                    break;
                case CraftResource.GreenScales:
                    AddItem(new GreenScales(amount));
                    break;
                case CraftResource.WhiteScales:
                    AddItem(new WhiteScales(amount));
                    break;
            }
            switch (Utility.Random(9))
            {
                case 0:
                    res = CraftResource.DullCopper;
                    break;
                case 1:
                    res = CraftResource.ShadowIron;
                    break;
                case 2:
                    res = CraftResource.Copper;
                    break;
                case 3:
                    res = CraftResource.Bronze;
                    break;
                case 4:
                    res = CraftResource.Gold;
                    break;
                case 5:
                    res = CraftResource.Agapite;
                    break;
                case 6:
                    res = CraftResource.Verite;
                    break;
                case 7:
                    res = CraftResource.Valorite;
                    break;
                case 8:
                    res = CraftResource.Iron;
                    break;
            }

            var mt = new SwampDragon();
            mt.HasBarding = true;
            mt.BardingResource = res;
            mt.BardingHP = mt.BardingMaxHP;
            mt.Rider = this;
        }
Beispiel #5
0
		public override bool OnDragDrop( Mobile from, Item dropped )
		{
            // trigger returns true if returnoverride
            if (XmlScript.HasTrigger(this, TriggerName.onDragDrop) && UberScriptTriggers.Trigger(this, from, TriggerName.onDragDrop, dropped))
                return true;
            PlayerMobile player = from as PlayerMobile;

			if ( player != null )
			{
				QuestSystem qs = player.Quest;

				if ( qs is UzeraanTurmoilQuest )
				{
					if ( dropped is UzeraanTurmoilHorn )
					{
						if ( player.Young )
						{
							UzeraanTurmoilHorn horn = (UzeraanTurmoilHorn)dropped;

							if ( horn.Charges < 10 )
							{
								SayTo( from, 1049384 ); // I have recharged the item for you.
								horn.Charges = 10;
							}
							else
							{
								SayTo( from, 1049385 ); // That doesn't need recharging yet.
							}
						}
						else
						{
							player.SendLocalizedMessage( 1114333 ); //You must be young to have this item recharged.
						}

						return false;
					}

					if ( dropped is SchmendrickScrollOfPower )
					{
						QuestObjective obj = qs.FindObjective( typeof( ReturnScrollOfPowerObjective ) );

						if ( obj != null && !obj.Completed )
						{
							Container cont = GetNewContainer();

							cont.DropItem( new TreasureMap( player.Young ? 0 : 1, Map.Felucca ) );
							cont.DropItem( new Shovel() );
							cont.DropItem( new UzeraanTurmoilHorn() );

							if ( !player.PlaceInBackpack( cont ) )
							{
								cont.Delete();
								player.SendLocalizedMessage( 1046260 ); // You need to clear some space in your inventory to continue with the quest.  Come back here when you have more space in your inventory.
								return false;
							}
							else
							{
								dropped.Delete();
								obj.Complete();
								return true;
							}
						}
					}
					else if ( dropped is QuestFertileDirt )
					{
						QuestObjective obj = qs.FindObjective( typeof( ReturnFertileDirtObjective ) );

						if ( obj != null && !obj.Completed )
						{
							Container cont = GetNewContainer();

							if ( player.Profession == 2 ) // magician
							{
								cont.DropItem( new BlackPearl( 20 ) );
								cont.DropItem( new Bloodmoss( 20 ) );
								cont.DropItem( new Garlic( 20 ) );
								cont.DropItem( new Ginseng( 20 ) );
								cont.DropItem( new MandrakeRoot( 20 ) );
								cont.DropItem( new Nightshade( 20 ) );
								cont.DropItem( new SulfurousAsh( 20 ) );
								cont.DropItem( new SpidersSilk( 20 ) );

								for ( int i = 0; i < 3; i++ )
									cont.DropItem( Loot.RandomScroll( 0, 23, SpellbookType.Regular ) );
							}
							else
							{
								cont.DropItem( new Gold( 300 ) );
								cont.DropItem( new Bandage( 25 ) );

								for ( int i = 0; i < 5; i++ )
									cont.DropItem( new LesserHealPotion() );
							}

							if ( !player.PlaceInBackpack( cont ) )
							{
								cont.Delete();
								player.SendLocalizedMessage( 1046260 ); // You need to clear some space in your inventory to continue with the quest.  Come back here when you have more space in your inventory.
								return false;
							}
							else
							{
								dropped.Delete();
								obj.Complete();
								return true;
							}
						}
					}
					else if ( dropped is QuestDaemonBlood )
					{
						QuestObjective obj = qs.FindObjective( typeof( ReturnDaemonBloodObjective ) );

						if ( obj != null && !obj.Completed )
						{
							Item reward;

							if ( player.Profession == 2 ) // magician
							{
								Container cont = GetNewContainer();

								cont.DropItem( new ExplosionScroll( 4 ) );
								cont.DropItem( new MagicWizardsHat() );

								reward = cont;
							}
							else
							{
								BaseWeapon weapon;
								switch ( Utility.Random( 6 ) )
								{
									case 0: weapon = new Broadsword(); break;
									case 1: weapon = new Cutlass(); break;
									case 2: weapon = new Katana(); break;
									case 3: weapon = new Longsword(); break;
									case 4: weapon = new Scimitar(); break;
									default: weapon = new VikingSword(); break;
								}

                                int damageLevel = BaseCreature.RandomMinMaxScaled(2, 4);
                                if (PseudoSeerStone.Instance != null && PseudoSeerStone.Instance._HighestDamageLevelSpawn < damageLevel)
                                {
                                    damageLevel = PseudoSeerStone.Instance._HighestDamageLevelSpawn;
                                }
                                weapon.DamageLevel = (WeaponDamageLevel)damageLevel;
								weapon.AccuracyLevel = (WeaponAccuracyLevel)BaseCreature.RandomMinMaxScaled( 2, 4 );
								weapon.DurabilityLevel = (WeaponDurabilityLevel)BaseCreature.RandomMinMaxScaled( 2, 4 );

								weapon.Slayer = SlayerName.Silver;

								reward = weapon;
							}

							if ( !player.PlaceInBackpack( reward ) )
							{
								reward.Delete();
								player.SendLocalizedMessage( 1046260 ); // You need to clear some space in your inventory to continue with the quest.  Come back here when you have more space in your inventory.
								return false;
							}
							else
							{
								dropped.Delete();
								obj.Complete();
								return true;
							}
						}
					}
					else if ( dropped is QuestDaemonBone )
					{
						QuestObjective obj = qs.FindObjective( typeof( ReturnDaemonBoneObjective ) );

						if ( obj != null && !obj.Completed )
						{
							Container cont = GetNewContainer();
							cont.DropItem( new BankCheck( 2000 ) );
							cont.DropItem( new EnchantedSextant() );

							if ( !player.PlaceInBackpack( cont ) )
							{
								cont.Delete();
								player.SendLocalizedMessage( 1046260 ); // You need to clear some space in your inventory to continue with the quest.  Come back here when you have more space in your inventory.
								return false;
							}
							else
							{
								dropped.Delete();
								obj.Complete();
								return true;
							}
						}
					}
				}
			}

			return base.OnDragDrop( from, dropped );
		}
Beispiel #6
0
        public override bool OnDragDrop( Mobile from, Item dropped )
        {
            PlayerMobile player = from as PlayerMobile;

            if ( player != null )
            {
                QuestSystem qs = player.Quest;

                if ( qs is UzeraanTurmoilQuest )
                {
                    if ( dropped is UzeraanTurmoilHorn )
                    {
                        if ( player.Young )
                        {
                            UzeraanTurmoilHorn horn = (UzeraanTurmoilHorn) dropped;

                            if ( horn.Charges < 10 )
                            {
                                SayTo( from, 1049384 ); // I have recharged the item for you.
                                horn.Charges = 10;
                            }
                            else
                            {
                                SayTo( from, 1049385 ); // That doesn't need recharging yet.
                            }
                        }
                        else
                        {
                            player.SendMessage( "You must be young to have this item recharged." );
                        }

                        return false;
                    }

                    if ( dropped is SchmendrickScrollOfPower )
                    {
                        QuestObjective obj = qs.FindObjective( typeof( ReturnScrollOfPowerObjective ) );

                        if ( obj != null && !obj.Completed )
                        {
                            Container cont = GetNewContainer();

                            cont.DropItem( new TreasureMap( 1 ) );
                            cont.DropItem( new Shovel() );
                            cont.DropItem( new UzeraanTurmoilHorn() );

                            if ( !player.PlaceInBackpack( cont ) )
                            {
                                cont.Delete();
                                player.SendLocalizedMessage( 1046260 ); // You need to clear some space in your inventory to continue with the quest.  Come back here when you have more space in your inventory.
                                return false;
                            }
                            else
                            {
                                dropped.Delete();
                                obj.Complete();
                                return true;
                            }
                        }
                    }
                    else if ( dropped is QuestFertileDirt )
                    {
                        QuestObjective obj = qs.FindObjective( typeof( ReturnFertileDirtObjective ) );

                        if ( obj != null && !obj.Completed )
                        {
                            Container cont = GetNewContainer();

                            if ( player.Profession == 2 ) // magician
                            {
                                cont.DropItem( new BlackPearl( 20 ) );
                                cont.DropItem( new Bloodmoss( 20 ) );
                                cont.DropItem( new Garlic( 20 ) );
                                cont.DropItem( new Ginseng( 20 ) );
                                cont.DropItem( new MandrakeRoot( 20 ) );
                                cont.DropItem( new Nightshade( 20 ) );
                                cont.DropItem( new SulfurousAsh( 20 ) );
                                cont.DropItem( new SpidersSilk( 20 ) );

                                for ( int i = 0; i < 3; i++ )
                                {
                                    cont.DropItem( Loot.RandomScroll( 0, 23, SpellbookType.Regular ) );
                                }
                            }
                            else
                            {
                                cont.DropItem( new Gold( 300 ) );
                                cont.DropItem( new Bandage( 25 ) );

                                for ( int i = 0; i < 5; i++ )
                                {
                                    cont.DropItem( new LesserHealPotion() );
                                }
                            }

                            if ( !player.PlaceInBackpack( cont ) )
                            {
                                cont.Delete();
                                player.SendLocalizedMessage( 1046260 ); // You need to clear some space in your inventory to continue with the quest.  Come back here when you have more space in your inventory.
                                return false;
                            }
                            else
                            {
                                dropped.Delete();
                                obj.Complete();
                                return true;
                            }
                        }
                    }
                    else if ( dropped is QuestDaemonBlood )
                    {
                        QuestObjective obj = qs.FindObjective( typeof( ReturnDaemonBloodObjective ) );

                        if ( obj != null && !obj.Completed )
                        {
                            Item reward;

                            if ( player.Profession == 2 ) // magician
                            {
                                Container cont = GetNewContainer();

                                cont.DropItem( new ExplosionScroll( 4 ) );
                                cont.DropItem( new MagicWizardsHat() );

                                reward = cont;
                            }
                            else
                            {
                                BaseWeapon weapon;
                                switch ( Utility.Random( 6 ) )
                                {
                                    case 0:
                                        weapon = new Broadsword();
                                        break;
                                    case 1:
                                        weapon = new Cutlass();
                                        break;
                                    case 2:
                                        weapon = new Katana();
                                        break;
                                    case 3:
                                        weapon = new Longsword();
                                        break;
                                    case 4:
                                        weapon = new Scimitar();
                                        break;
                                    default:
                                        weapon = new VikingSword();
                                        break;
                                }
                                weapon.Slayer = SlayerName.Undead;

                                BaseRunicTool.ApplyAttributesTo( weapon, 3, 20, 40 );

                                reward = weapon;
                            }

                            if ( !player.PlaceInBackpack( reward ) )
                            {
                                reward.Delete();
                                player.SendLocalizedMessage( 1046260 ); // You need to clear some space in your inventory to continue with the quest.  Come back here when you have more space in your inventory.
                                return false;
                            }
                            else
                            {
                                dropped.Delete();
                                obj.Complete();
                                return true;
                            }
                        }
                    }
                    else if ( dropped is QuestDaemonBone )
                    {
                        QuestObjective obj = qs.FindObjective( typeof( ReturnDaemonBoneObjective ) );

                        if ( obj != null && !obj.Completed )
                        {
                            Container cont = GetNewContainer();
                            cont.DropItem( new BankCheck( 2000 ) );
                            cont.DropItem( new EnchantedSextant() );

                            if ( !player.PlaceInBackpack( cont ) )
                            {
                                cont.Delete();
                                player.SendLocalizedMessage( 1046260 ); // You need to clear some space in your inventory to continue with the quest.  Come back here when you have more space in your inventory.
                                return false;
                            }
                            else
                            {
                                dropped.Delete();
                                obj.Complete();
                                return true;
                            }
                        }
                    }
                }
            }

            return base.OnDragDrop( from, dropped );
        }
Beispiel #7
0
        private void AddEquipment(GuardType type)
        {
            AddItem(new Boots());
            AddItem(new Cloak(1155));
            AddItem(new BodySash(1155));

            switch (type)
            {
                default:
                case GuardType.Archer:
                    {
                        AddItem(new LeatherLegs());
                        AddItem(new StuddedChest());
                        AddItem(new LeatherGloves());
                        AddItem(new LeatherArms());

                        Bow bow = new Bow();
                        bow.Quality = WeaponQuality.Exceptional;

                        AddItem(bow);
                        AddToBackpack(new Arrow(200));
                    } break;
                case GuardType.Cavalry:
                    {
                        AddItem(new PlateLegs());
                        AddItem(new RingmailChest());
                        AddItem(new FancyShirt());
                        AddItem(new PlateGorget());
                        AddItem(new RingmailGloves());

                        BaseWeapon weapon;

                        if (Utility.RandomBool())
                            weapon = new Halberd();
                        else
                            weapon = new Bardiche();

                        weapon.Quality = WeaponQuality.Exceptional;
                        weapon.Resource = CraftResource.Gold;
                        weapon.Speed += 5;

                        AddItem(weapon);
                    } break;

                case GuardType.Pikeman:
                    {
                        AddItem(new RingmailLegs());
                        AddItem(new RingmailChest());
                        AddItem(new RingmailArms());
                        AddItem(new RingmailGloves());
                        AddItem(new PlateGorget());

                        if (Utility.RandomBool())
                            AddItem(new CloseHelm());
                        else
                            AddItem(new NorseHelm());

                        AddItem(new Pike());
                    }
                    break;

                case GuardType.Swordsman:
                    {
                        AddItem(new ChainLegs());
                        AddItem(new ChainChest());
                        AddItem(new RingmailArms());
                        AddItem(new RingmailGloves());
                        AddItem(new PlateGorget());

                        switch (Utility.Random(3))
                        {
                            case 0: AddItem(new CloseHelm()); break;
                            case 1: AddItem(new NorseHelm()); break;
                            case 2: AddItem(new PlateHelm()); break;
                        }

                        BaseWeapon weapon;

                        switch (Utility.Random(4))
                        {
                            default:
                            case 0: weapon = new Broadsword(); break;
                            case 1: weapon = new Longsword(); break;
                            case 2: weapon = new Katana(); break;
                            case 3: weapon = new Axe(); break;
                        }

                        weapon.Quality = WeaponQuality.Exceptional;
                        weapon.Resource = CraftResource.Gold;
                        weapon.Layer = Layer.OneHanded;

                        AddItem(weapon);

                        if (Utility.RandomBool())
                            AddItem(new HeaterShield());
                        else
                            AddItem(new MetalKiteShield());
                    } 
                    break;

                case GuardType.Wizard:
                    {
                        AddItem(new WizardsHat(Utility.RandomGreenHue()));
                        AddItem(new Robe(Utility.RandomGreenHue()));      
   
                        GnarledStaff staff = new GnarledStaff();
                        staff.Attributes.SpellChanneling = 1;
                        staff.Attributes.SpellDamage = Utility.RandomMinMax(4, 8);
                        AddItem(staff);
                    }
                    break;

                case GuardType.Medic:
                    {
                        AddItem(new Bandana(Utility.RandomGreenHue()));
                        AddItem(new Robe(Utility.RandomGreenHue()));

                    } 
                    break;
            }
        }
Beispiel #8
0
		public bool DropWeapon( int minLevel, int maxLevel )
		{
			if ( 1.0 <= Utility.RandomDouble() )
				return false;

			if ( maxLevel > 2 )
				maxLevel = 2;

			Cap( ref minLevel, 0, 2 );
			Cap( ref maxLevel, 0, 2 );

			BaseWeapon weapon = new Broadsword();

			double random = Utility.RandomDouble();
			if ( random >= .75 )
			{ weapon = new WarFork(); }
			else if	( random >= .50 )
			{ weapon = new WarMace(); }
			else if ( random >= .25 )
			{
				weapon = new Bow();
				Arrow arrows = new Arrow();
				arrows.Amount = 25;
				DropItem( arrows );
			}

			if ( weapon == null )
				return false;

			weapon.DamageLevel = (WeaponDamageLevel)RandomMinMaxScaled( minLevel, maxLevel );
			weapon.AccuracyLevel = (WeaponAccuracyLevel)RandomMinMaxScaled( 0, maxLevel );
			weapon.DurabilityLevel = (WeaponDurabilityLevel)RandomMinMaxScaled( 0, maxLevel );

			DropItem( weapon );

			return true;
		}
Beispiel #9
0
        public FighterPeacemaker() : base(AIType.AI_Melee, 1)
        {
            SetStr(220, 300);
            SetDex(40, 60);
            SetInt(40, 60);

            Item weapon;
            switch (Utility.Random(6))
            {
                case 0: weapon = new Broadsword(); break;
                case 1: weapon = new Cutlass(); break;
                case 2: weapon = new Katana(); break;
                case 3: weapon = new Longsword(); break;
                case 4: weapon = new Scimitar(); break;
                default: weapon = new VikingSword(); break;
            }
            AddItem(weapon);

            AddItem(new MetalShield());

            SetDamageType(ResistanceType.Physical, 100);

            SetSkill(SkillName.Tactics, 70.1, 95.0);
            SetSkill(SkillName.Swords, 70.1, 100.0);
            SetSkill(SkillName.Fencing, 65.1, 100.0);
            SetSkill(SkillName.MagicResist, 80.1, 110.0);
            SetSkill(SkillName.Macing, 75.1, 100.0);
            SetSkill(SkillName.Wrestling, 65.1, 100.0);
            SetSkill(SkillName.Parry, 70.1, 100.0);
            SetSkill(SkillName.Healing, 65.1, 75.0);
            SetSkill(SkillName.Anatomy, 80.1, 90.0);
        }
Beispiel #10
0
		//AIType, Fight Mode, Range Perception, Fighting Range, Active Speed, Passive Speed
		public VampireLord() : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "Vampire Lord";
			Body = 0x0190;
			Hue = 0x497;

			SetStr( 750 );
			SetDex( 400, 500 );
			SetInt( 200, 250 );

			SetHits( 350, 400 );
			SetStam( 250, 300 );
			SetMana( 250, 300 );

			SetDamage( 20, 40 );

			SetSkill( SkillName.Poisoning, 90.0, 100.0 );
			SetSkill( SkillName.Tactics, 90.0, 98.0 );
			SetSkill( SkillName.MagicResist, 75.0, 88.0 );
			SetSkill( SkillName.Parry, 85.0, 98.0 );
			SetSkill( SkillName.Wrestling, 67.0, 90.0 );
			SetSkill( SkillName.DetectHidden, 90.0, 100.0 );
			SetSkill( SkillName.Swords, 90.0, 95.0 );
			SetSkill( SkillName.Magery, 95.0, 100.0 );
            SetSkill(SkillName.EvalInt, 95.0, 100.0);

			Fame = 3000;
			Karma = -10000;

			VirtualArmor = 40;

		    Item temp = new PlateGloves {Movable = false, Hue = 0x0492, Name = "Vampire Plate Gauntlets"};
		    AddItem( temp );
			temp = new PlateArms {Hue = 0x0492, Movable = false, Name = "Vampire Plate Arms"};
		    AddItem( temp );
			temp = new PlateGorget {Movable = false, Hue = 0x0492, Name = "Vampire Plate Gorget"};
		    AddItem( temp );
			temp = new PlateLegs {Movable = false, Hue = 0x0492, Name = "Vampire Plate Legs"};
		    AddItem( temp );
			temp = new PlateChest {Movable = false, Hue = 0x0492, Name = "Vampire Plate Chest"};
		    AddItem( temp );
			temp = new PlateHelm {Movable = false, Hue = 0x0492, Name = "Vampire Plate Helm"};
		    AddItem( temp );
			temp = new BodySash {Movable = false, Hue = 0x1, Name = "Vampire Sash"};
		    AddItem( temp );
			temp = new Cloak {Movable = false, Hue = 0x1};
		    AddItem( temp );

            BaseArmor tarm;
            if (Utility.RandomDouble() < 0.3)
            {
                switch (Utility.Random(6))
                {
                    case 0:
                        tarm = new PlateGloves {Hue = 0x492, Name = "Vampire Plate Gauntlets"};
                        break;
                    case 1:
                        tarm = new PlateArms {Hue = 0x492, Name = "Vampire Plate Arms"};
                        break;
                    case 2:
                        tarm = new PlateChest {Hue = 0x492, Name = "Vampire Plate Chest"};
                        break;
                    case 3:
                        tarm = new PlateHelm {Hue = 0x492, Name = "Vampire Plate Helm"};
                        break;
                    case 4:
                        tarm = new PlateLegs {Hue = 0x492, Name = "Vampire Plate Legs"};
                        break;
                    default:
                        tarm = new PlateGorget {Hue = 0x492, Name = "Vampire Plate Gorget"};
                        break;
                }

                tarm.ProtectionLevel = (ArmorProtectionLevel) Utility.RandomMinMax(0, 5);
                AddItem(tarm);
            }

		    BaseSword twep;
			switch( Utility.Random( 8 ) )
			{
				case 0:
					twep = new Broadsword();
					break;
				case 1:
					twep = new Cutlass();
					break;
				case 2:
					twep = new Scimitar();
					break;
				case 3:
					twep = new Katana();
					break;
				case 4:
					twep = new Kryss();
					break;
				case 5:
					twep = new Longsword();
					break;
				case 6:
					twep = new ThinLongsword();
					break;
				default:
					twep = new VikingSword();
					break;
			}
			switch( Utility.Random( 3 ) )
			{
				case 0:
                    twep.DamageLevel = WeaponDamageLevel.Might;
					break;
				case 1:
                    twep.DamageLevel = WeaponDamageLevel.Force;
					break;
				case 2:
					twep.DamageLevel = WeaponDamageLevel.Power;
					break;
			}

			AddItem( twep );
		}
        public SpiritSoldier()
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Hue = 12345678;
            Name = "a spirit soldier";

            if ( this.Female = Utility.RandomBool() )
            {
                this.Body = 0x191;
            }
            else
            {
                this.Body = 0x190;
            }

            SetStr( 186, 200 );
            SetDex( 51, 65 );
            SetInt( 35 );

            SetHits( 156, 170 );

            SetDamage( 12, 14 );

            SetDamageType( ResistanceType.Energy, 100 );

            SetResistance( ResistanceType.Blunt, 35, 45 );
            SetResistance( ResistanceType.Piercing, 30, 40 );
            SetResistance( ResistanceType.Slashing, 30, 40 );
            SetResistance( ResistanceType.Fire, 25, 30 );
            SetResistance( ResistanceType.Cold, 25, 30 );
            SetResistance( ResistanceType.Poison, 100 );
            SetResistance( ResistanceType.Energy, 10, 20 );

            SetSkill( SkillName.Anatomy, 125.0 );
            SetSkill( SkillName.Fencing, 46.0, 77.5 );
            SetSkill( SkillName.Macing, 35.0, 57.5 );
            SetSkill( SkillName.Poisoning, 60.0, 82.5 );
            SetSkill( SkillName.MagicResist, 83.5, 92.5 );
            SetSkill( SkillName.Swords, 125.0 );
            SetSkill( SkillName.Tactics, 125.0 );
            SetSkill( SkillName.Lumberjacking, 125.0 );

            Fame = 6500;
            Karma = -6500;

            VirtualArmor = 40;

            Broadsword weapon = new Broadsword();
            weapon.Hue = 12345678;
            AddItem( weapon );

            PlateChest armor = new PlateChest();
            armor.Hue = 12345678;
            AddItem( armor );

            PlateHelm helm = new PlateHelm();
            helm.Hue = 12345678;
            AddItem( helm );

            PlateGorget gorget = new PlateGorget();
            gorget.Hue = 12345678;
            AddItem( gorget );

            PlateArms arms = new PlateArms();
            arms.Hue = 12345678;
            AddItem( arms );

            PlateGloves gloves = new PlateGloves();
            gloves.Hue = 12345678;
            AddItem( gloves );

            PlateLegs legs = new PlateLegs();
            legs.Hue = 12345678;
            AddItem( legs );

            HeaterShield shield = new HeaterShield();
            shield.Hue = 12345678;
            AddItem( shield );

            PackItem( new Necroplasm( 5 ) );
        }
		public BaneChosenHoundMaster() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.15, 0.4 )
		{
			Name = "a bane chosen hound master";
			Body = 0x190;
			Hue = Utility.RandomSkinHue();

			SetStr( 176, 225 );
			SetDex( 81, 95 );
			SetInt( 61, 85 );
			
			SetHits( 376, 450 );

			SetDamage( 24, 26 );

			SetDamageType( ResistanceType.Physical, 25 );
			SetDamageType( ResistanceType.Fire, 25 );
			SetDamageType( ResistanceType.Cold, 25 );
			SetDamageType( ResistanceType.Energy, 25 );

			SetResistance( ResistanceType.Physical, 45, 55 );
			SetResistance( ResistanceType.Fire, 15, 25 );
			SetResistance( ResistanceType.Cold, 50 );
			SetResistance( ResistanceType.Poison, 25, 35 );
			SetResistance( ResistanceType.Energy, 25, 35 );

			SetSkill( SkillName.Fencing, 77.6, 92.5 );
			SetSkill( SkillName.Healing, 60.3, 90.0 );
			SetSkill( SkillName.Macing, 77.6, 92.5 );
			SetSkill( SkillName.Anatomy, 77.6, 87.5 );
			SetSkill( SkillName.MagicResist, 77.6, 97.5 );
			SetSkill( SkillName.Swords, 77.6, 92.5 );
			SetSkill( SkillName.Tactics, 77.6, 87.5 );

			Fame = 5000;
			Karma = -5000;

			CraftResource res = CraftResource.BlackScales;

			BaseWeapon melee = null;

			switch (Utility.Random( 3 ))
			{
				case 0: melee = new Kryss(); break;
				case 1: melee = new Broadsword(); break;
				case 2: melee = new Katana(); break;
			}

			melee.Movable = false;
			AddItem( melee );

			DragonHelm helm = new DragonHelm();
			helm.Resource = res;
			helm.Movable = false;
			AddItem( helm );

			DragonChest chest = new DragonChest();
			chest.Resource = res;
			chest.Movable = false;
			AddItem( chest );

			DragonArms arms = new DragonArms();
			arms.Resource = res;
			arms.Movable = false;
			AddItem( arms );

			DragonGloves gloves = new DragonGloves();
			gloves.Resource = res;
			gloves.Movable = false;
			AddItem( gloves );

			DragonLegs legs = new DragonLegs();
			legs.Resource = res;
			legs.Movable = false;
			AddItem( legs );

			ChaosShield shield = new ChaosShield();
			shield.Movable = false;
			AddItem( shield );

			AddItem( new Shirt() );
			AddItem( new Boots() );

		}
		public BaneChosenDragonRider()
			: base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.15, 0.4)
		{
			Name = "a bane chosen dragon rider";
			Body = 0x190;
			Hue = Utility.RandomSkinHue();

			SetStr(576, 650);
			SetDex(226, 290);
			SetInt(126, 150);

			SetHits(676, 750);

			SetDamage(29, 34);

			SetDamageType(ResistanceType.Physical, 100);

			SetResistance(ResistanceType.Physical, 45, 55);
			SetResistance(ResistanceType.Fire, 15, 25);
			SetResistance(ResistanceType.Cold, 50);
			SetResistance(ResistanceType.Poison, 25, 35);
			SetResistance(ResistanceType.Energy, 25, 35);


			SetSkill(SkillName.Tactics, 80.1, 100.0);
			SetSkill(SkillName.MagicResist, 100.1, 110.0);
			SetSkill(SkillName.Anatomy, 80.1, 100.0);
			SetSkill(SkillName.Magery, 85.1, 100.0);
			SetSkill(SkillName.EvalInt, 85.1, 100.0);
			SetSkill(SkillName.Swords, 72.5, 95.0);
			SetSkill(SkillName.Fencing, 85.1, 100);
			SetSkill(SkillName.Macing, 85.1, 100);

			Fame = 18000;
			Karma = -18000;

			CraftResource res = CraftResource.BlackScales;

			BaseWeapon melee = null;

			switch (Utility.Random(3))
			{
				case 0: melee = new Kryss(); break;
				case 1: melee = new Broadsword(); break;
				case 2: melee = new Katana(); break;
			}

			melee.Movable = false;
			AddItem(melee);

			DragonChest Tunic = new DragonChest();
			Tunic.Resource = res;
			Tunic.Movable = false;
			AddItem(Tunic);

			DragonLegs Legs = new DragonLegs();
			Legs.Resource = res;
			Legs.Movable = false;
			AddItem(Legs);

			DragonArms Arms = new DragonArms();
			Arms.Resource = res;
			Arms.Movable = false;
			AddItem(Arms);

			DragonGloves Gloves = new DragonGloves();
			Gloves.Resource = res;
			Gloves.Movable = false;
			AddItem(Gloves);

			DragonHelm Helm = new DragonHelm();
			Helm.Resource = res;
			Helm.Movable = false;
			AddItem(Helm);

			ChaosShield shield = new ChaosShield();
			shield.Movable = false;
			AddItem(shield);

			AddItem(new Boots(0x455));
			AddItem(new Shirt(Utility.RandomMetalHue()));

			/*int amount = Utility.RandomMinMax(1, 3);

			switch (res)
			{
				case CraftResource.BlackScales: AddItem(new BlackScales(amount)); break;
				case CraftResource.RedScales: AddItem(new RedScales(amount)); break;
				case CraftResource.BlueScales: AddItem(new BlueScales(amount)); break;
				case CraftResource.YellowScales: AddItem(new YellowScales(amount)); break;
				case CraftResource.GreenScales: AddItem(new GreenScales(amount)); break;
				case CraftResource.WhiteScales: AddItem(new WhiteScales(amount)); break;
			}
			switch (Utility.Random(9))
			{
				case 0: res = CraftResource.DullCopper; break;
				case 1: res = CraftResource.ShadowIron; break;
				case 2: res = CraftResource.Copper; break;
				case 3: res = CraftResource.Bronze; break;
				case 4: res = CraftResource.Gold; break;
				case 5: res = CraftResource.Agapite; break;
				case 6: res = CraftResource.Verite; break;
				case 7: res = CraftResource.Valorite; break;
				case 8: res = CraftResource.Iron; break;
			}*/

			BaneDragon mt = new BaneDragon();
			mt.Rider = this;
		}
Beispiel #14
0
        public ChaosDragoon()
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.15, 0.4)
        {
            Name = "um dragão do caos";
            Body = 0x190;
            Hue = Utility.RandomSkinHue();

            SetStr( 176, 225 );
            SetDex( 81, 95 );
            SetInt( 61, 85 );

            SetHits( 176, 225 );

            SetDamage( 24, 26 );

            SetDamageType( ResistanceType.Physical, 25 );
            SetDamageType( ResistanceType.Fire, 25 );
            SetDamageType( ResistanceType.Cold, 25 );
            SetDamageType( ResistanceType.Energy, 25 );

            //SetResistance( ResistanceType.Physical, 25, 38 );
            //SetResistance( ResistanceType.Fire, 25, 38 );
            //SetResistance( ResistanceType.Cold, 25, 38 );
            //SetResistance( ResistanceType.Poison, 25, 38 );
            //SetResistance( ResistanceType.Energy, 25, 38 );

            SetSkill( SkillName.Fencing, 77.6, 92.5 );
            SetSkill( SkillName.Healing, 60.3, 90.0 );
            SetSkill( SkillName.Macing, 77.6, 92.5 );
            SetSkill( SkillName.Anatomy, 77.6, 87.5 );
            SetSkill( SkillName.MagicResist, 77.6, 97.5 );
            SetSkill( SkillName.Swords, 77.6, 92.5 );
            SetSkill( SkillName.Tactics, 77.6, 87.5 );

            Fame = 5000;
            Karma = -5000;

            CraftResource res = CraftResource.None;

            switch (Utility.Random( 6 ))
            {
                case 0: res = CraftResource.BlackScales; break;
                case 1: res = CraftResource.RedScales; break;
                case 2: res = CraftResource.BlueScales; break;
                case 3: res = CraftResource.YellowScales; break;
                case 4: res = CraftResource.GreenScales; break;
                case 5: res = CraftResource.WhiteScales; break;
            }

            BaseWeapon melee = null;

            switch (Utility.Random( 3 ))
            {
                case 0: melee = new Kryss(); break;
                case 1: melee = new Broadsword(); break;
                case 2: melee = new Katana(); break;
            }

            melee.Movable = false;
            AddItem( melee );

            DragonHelm helm = new DragonHelm();
            helm.Resource = res;
            helm.Movable = false;
            AddItem( helm );

            DragonChest chest = new DragonChest();
            chest.Resource = res;
            chest.Movable = false;
            AddItem( chest );

            DragonArms arms = new DragonArms();
            arms.Resource = res;
            arms.Movable = false;
            AddItem( arms );

            DragonGloves gloves = new DragonGloves();
            gloves.Resource = res;
            gloves.Movable = false;
            AddItem( gloves );

            DragonLegs legs = new DragonLegs();
            legs.Resource = res;
            legs.Movable = false;
            AddItem( legs );

            ChaosShield shield = new ChaosShield();
            shield.Movable = false;
            AddItem( shield );

            AddItem( new Shirt() );
            AddItem( new Boots() );

            int amount = Utility.RandomMinMax( 1, 3 );

            switch ( res )
            {
                case CraftResource.BlackScales: AddItem( new BlackScales( amount ) ); break;
                case CraftResource.RedScales: AddItem( new RedScales( amount ) ); break;
                case CraftResource.BlueScales: AddItem( new BlueScales( amount ) ); break;
                case CraftResource.YellowScales: AddItem( new YellowScales( amount ) ); break;
                case CraftResource.GreenScales: AddItem( new GreenScales( amount ) ); break;
                case CraftResource.WhiteScales: AddItem( new WhiteScales( amount ) ); break;
            }

            new SwampDragon().Rider = this;
        }
		public EvilPaladin(): base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Body = 400;
			Name = "Hinton";
			Title = "The Evil Paladin";
			Hue = 0;

			SetStr( 200, 250 );
			SetDex( 100, 125 );
			SetInt( 180, 200 );

			SetHits( 1900, 2000 );

			SetDamage( 25, 28 );

			SetDamageType( ResistanceType.Physical, 100 );

			SetResistance( ResistanceType.Physical, 75 );
			SetResistance( ResistanceType.Fire, 60 );
			SetResistance( ResistanceType.Cold, 60 );
			SetResistance( ResistanceType.Poison, 60 );
			SetResistance( ResistanceType.Energy, 60 );

			SetSkill( SkillName.Wrestling, 100.0 );
			SetSkill( SkillName.Swords, 120 );
			SetSkill( SkillName.Anatomy, 120 );
			SetSkill( SkillName.MagicResist, 90.1, 100.0 );
			SetSkill( SkillName.Tactics, 90.1, 100.0 );

			Fame = 10000;
			Karma = -10000;         

			VirtualArmor = 45;          
         
			Broadsword weapon = new Broadsword();
			weapon.Hue = 2306;
			weapon.Movable = false;
			AddItem( weapon );

            PlateGorget gorget = new PlateGorget();
            gorget.Hue = 2306;
            gorget.Movable = false;
            AddItem( gorget );

			MetalShield shield = new MetalShield();
			shield.Hue = 2306;
			shield.Movable = false;
			AddItem( shield );

			PlateHelm helm = new PlateHelm();
			helm.Hue = 2306;
            helm.Movable = false;
			AddItem( helm );

			PlateArms arms = new PlateArms();
			arms.Hue = 2306;
            arms.Movable = false;
			AddItem( arms );

			PlateGloves gloves = new PlateGloves();
			gloves.Hue = 2306;
            gloves.Movable = false;
			AddItem( gloves );

			PlateChest tunic = new PlateChest();
			tunic.Hue = 2306;
            tunic.Movable = false;
			AddItem( tunic );

			PlateLegs legs = new PlateLegs();
			legs.Hue = 2306;
            legs.Movable = false;
			AddItem( legs );

			AddItem( new Boots() );
            Hue = 2306;
            //PackGold( 3500,4000 );
            PackItem(new LionsCourageMedallion());
        }
		public override void OnResponse( NetState state, RelayInfo info ) //Function for GumpButtonType.Reply Buttons
		{
			Mobile from = state.Mobile;
			PlayerMobile pm = from as PlayerMobile;
			PlayerModule module = pm.PlayerModule;

			m_cost = 50;//MOD COST OF WEAPON HERE!!
			Item wep = from.FindItemOnLayer( Layer.FirstValid );
			Item weps = from.FindItemOnLayer( Layer.TwoHanded );
			Container pack = from.Backpack;
			
			if ( wep !=null )
				pack.TryDropItem( from, wep, false );
			
			if ( weps !=null )
				pack.TryDropItem( from, weps, false );

			switch ( info.ButtonID )
			{
				case 0: //Cancel
					{
						from.SendMessage( "You decide against spending your skill points." );
						//from.SendGump( new LevelGump( from ) );
						break;
					}
				case 1: //Katana
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Katana kat = new Katana();
							( ( Item )kat ).Name = "Katana [Level Item]";
							kat.Identified = true;//Prevents others from being used in the upgrading!
							kat.LootType = LootType.Blessed;
							from.EquipItem( kat );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 2: //Broad Sword
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Broadsword bs = new Broadsword();
							bs.Identified = true;
							bs.Name = "Broadsword";
							bs.LootType = LootType.Blessed;
							from.EquipItem( bs );
							from.SendMessage( 102, "You chose a Broadsword" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 3: //Scimitar
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Scimitar sc = new Scimitar();
							sc.Identified = true;
							sc.Name = "Scimitar";
							sc.LootType = LootType.Blessed;
							from.EquipItem( sc );
							from.SendMessage( 102, "You chose a Scimitar" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 4: //Viking sword
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							VikingSword vs = new VikingSword();
							vs.Identified = true;
							vs.Name = "Vikingsword";
							vs.LootType = LootType.Blessed;
							from.EquipItem( vs );
							from.SendMessage( 102, "You chose a Viking Sword" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 5: //Halberd
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Halberd hb = new Halberd();
							hb.Identified = true;
							hb.Name = "Halberd";
							hb.LootType = LootType.Blessed;
							from.EquipItem( hb );
							from.SendMessage( 102, "You chose a Halberd" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 6: //Bardiche
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Bardiche bd = new Bardiche();
							bd.Identified = true;
							bd.Name = "Bardiche";
							bd.LootType = LootType.Blessed;
							from.EquipItem( bd );
							from.SendMessage( 102, "You chose a Bardiche" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 7: //Double Axe
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							DoubleAxe da = new DoubleAxe();
							da.Identified = true;
							da.Name = "Double Axe";
							da.LootType = LootType.Blessed;
							from.EquipItem( da );
							from.SendMessage( 102, "You chose a Double Axe" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 8: //Large Battle Axe
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							LargeBattleAxe lba = new LargeBattleAxe();
							lba.Identified = true;
							lba.Name = "Large Battle Axe";
							lba.LootType = LootType.Blessed;
							from.EquipItem( lba );
							from.SendMessage( 102, "You chose a Large Battle Axe" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 9: //Axe
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Axe a = new Axe();
							a.Identified = true;
							a.Name = "Axe";
							a.LootType = LootType.Blessed;
							from.EquipItem( a );
							from.SendMessage( 102, "You chose an Axe" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 10: //Kryss
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Kryss k = new Kryss();
							k.Identified = true;
							k.Name = "Kryss";
							k.LootType = LootType.Blessed;
							from.EquipItem( k );
							from.SendMessage( 102, "You chose a Kryss" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 11: //War Fork
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							WarFork wf = new WarFork();
							wf.Identified = true;
							wf.Name = "War Fork";
							wf.LootType = LootType.Blessed;
							from.EquipItem( wf );
							from.SendMessage( 102, "You chose a War Fork" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 12: //Dagger
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Dagger d = new Dagger();
							d.Identified = true;
							d.Name = "Dagger";
							d.LootType = LootType.Blessed;
							from.EquipItem( d );
							from.SendMessage( 102, "You chose a Dagger" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 13: //Pike
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Pike p = new Pike();
							p.Identified = true;
							p.Name = "Pike";
							p.LootType = LootType.Blessed;
							from.EquipItem( p );
							from.SendMessage( 102, "You chose a Pike" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 14: //Short Spear
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							ShortSpear ss = new ShortSpear();
							ss.Identified = true;
							ss.Name = "Short Spear";
							ss.LootType = LootType.Blessed;
							from.EquipItem( ss );
							from.SendMessage( 102, "You chose a Short Spear" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 15: //Long Spear
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Spear ls = new Spear();
							ls.Identified = true;
							ls.Name = "Long Spear";
							ls.LootType = LootType.Blessed;
							from.EquipItem( ls );
							from.SendMessage( 102, "You chose a Long Spear" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 16: //Pitchfork
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Pitchfork p = new Pitchfork();
							p.Identified = true;
							p.Name = "Pitchfork";
							p.LootType = LootType.Blessed;
							from.EquipItem( p );
							from.SendMessage( 102, "You chose a Pitchfork" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 17: //lance
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Lance l = new Lance();
							l.Identified = true;
							l.Name = "Lance";
							l.LootType = LootType.Blessed;
							from.EquipItem( l );
							from.SendMessage( 102, "You chose a Lance" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 18: //Sai's
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Sai s = new Sai();
							s.Identified = true;
							s.Name = "Sai";
							s.LootType = LootType.Blessed;
							from.EquipItem( s );
							from.SendMessage( 102, "You chose Sai's" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 19: //War Mace
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							WarMace wm = new WarMace();
							wm.Identified = true;
							wm.Name = "War Mace";
							wm.LootType = LootType.Blessed;
							from.EquipItem( wm );
							from.SendMessage( 102, "You chose a War Mace" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 20: //War Hammer
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							WarHammer wh = new WarHammer();
							wh.Identified = true;
							wh.Name = "War Hammer";
							wh.LootType = LootType.Blessed;
							from.EquipItem( wh );
							from.SendMessage( 102, "You chose a War Hammer" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 21: //Maul
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Maul w = new Maul();
							w.Identified = true;
							w.Name = "Maul";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Maul" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 22: //Club
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Club w = new Club();
							w.Identified = true;
							w.Name = "Club";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Club" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 23: //Q Staff
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							QuarterStaff w = new QuarterStaff();
							w.Identified = true;
							w.Name = "Quarter Staff";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Quarter Staff" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 24: //G Staff
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							GnarledStaff w = new GnarledStaff();
							w.Identified = true;
							w.Name = "Gnarled Staff";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Gnarled Staff" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 25: //B Staff
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							BlackStaff w = new BlackStaff();
							w.Identified = true;
							w.Name = "BlackStaff";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Black Staff" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 26: //Hammer Pick
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							HammerPick w = new HammerPick();
							w.Identified = true;
							w.Name = "Hammer Pick";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Hammer Pick" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 27: //War Axe
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							WarAxe w = new WarAxe();
							w.Identified = true;
							w.Name = "War Axe";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a War Axe" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 28: //Bow
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Bow w = new Bow();
							w.Identified = true;
							w.Name = "Bow";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Bow" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 29: //Composite Bow
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							CompositeBow w = new CompositeBow();
							w.Identified = true;
							w.Name = "Composite Bow";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Composite Bow" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 30: //Crossbow
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Crossbow w = new Crossbow();
							w.Identified = true;
							w.Name = "Crossbow";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Crossbow" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 31: //Heavy Crossbow
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							HeavyCrossbow w = new HeavyCrossbow();
							w.Identified = true;
							w.Name = "Heavy Crossbow";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Heavy Crossbow" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 32: //Repeating Crossbow
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							RepeatingCrossbow w = new RepeatingCrossbow();
							w.Identified = true;
							w.Name = "Repeating Crossbow";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Repeating Crossbow" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
				case 33: //Yumi
					{
						if ( module.SkillPts < m_cost )
							from.SendMessage( 37, "Not enough skill points!" );
						else
						{
							module.SkillPts -= m_cost;
							Yumi w = new Yumi();
							w.Identified = true;
							w.Name = "Yumi";
							w.LootType = LootType.Blessed;
							from.EquipItem( w );
							from.SendMessage( 102, "You chose a Yumi" );
						}
						
						from.SendGump( new WepUpgradeGump( from ) );
						break;
					}
			}
		}
		public PaladinOfPride(): base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Body = 0x190;
			Name = "Frothos";
			Title = "Master of Pride";
			Hue = 0;

			SetStr( 400, 450 );
			SetDex( 151, 165 );
			SetInt( 180, 200 );

			SetHits( 5000, 5500 );

			SetDamage( 25, 35 );

			SetDamageType( ResistanceType.Physical, 100 );
			SetDamageType( ResistanceType.Cold, 25 );

			SetResistance( ResistanceType.Physical, 75 );
			SetResistance( ResistanceType.Fire, 60 );
			SetResistance( ResistanceType.Cold, 60 );
			SetResistance( ResistanceType.Poison, 60 );
			SetResistance( ResistanceType.Energy, 60 );

			SetSkill( SkillName.Wrestling, 100.0 );
			SetSkill( SkillName.Swords, 120.1, 130.0 );
			SetSkill( SkillName.Anatomy, 120.1, 130.0 );
			SetSkill( SkillName.MagicResist, 90.1, 100.0 );
			SetSkill( SkillName.Tactics, 90.1, 100.0 );

			Fame = 10000;
			Karma = -10000;         

			VirtualArmor = 65;          
         
			Broadsword weapon = new Broadsword();
			weapon.Hue = 1153;
			weapon.Movable = false;
			AddItem( weapon );

            PlateGorget gorget = new PlateGorget();
            gorget.Hue = 1153;
            gorget.Movable = false;
            AddItem( gorget );

			MetalShield shield = new MetalShield();
			shield.Hue = 1153;
			shield.Movable = false;
			AddItem( shield );

			PlateHelm helm = new PlateHelm();
			helm.Hue = 1153;
            helm.Movable = false;
			AddItem( helm );

			PlateArms arms = new PlateArms();
			arms.Hue = 1153;
            arms.Movable = false;
			AddItem( arms );

			PlateGloves gloves = new PlateGloves();
			gloves.Hue = 1153;
            gloves.Movable = false;
			AddItem( gloves );

			PlateChest tunic = new PlateChest();
			tunic.Hue = 1153;
            tunic.Movable = false;
			AddItem( tunic );

			PlateLegs legs = new PlateLegs();
			legs.Hue = 1153;
            legs.Movable = false;
			AddItem( legs );

			AddItem( new Boots() );
            Hue = 1153;
            PackGold( 3500,4000 );
            PackItem(new PrideCrystal());
        }
Beispiel #18
0
		public BaseAIGuard() : base( AIType.AI_Melee, FightMode.Aggressor, 10, 1, 0.6, 0.8 )
		{
			InitStats( 400, 100, 100 );
			Title = "the guard";

			SpeechHue = Utility.RandomDyedHue();

			Hue = Utility.RandomSkinHue();

			if ( Female = Utility.RandomBool() )
			{
				Body = 0x191;
				Name = NameList.RandomName( "female" );

				switch( Utility.Random( 2 ) )
				{
					case 0: AddItem( new LeatherSkirt() ); break;
					case 1: AddItem( new LeatherShorts() ); break;
				}

				switch( Utility.Random( 5 ) )
				{
					case 0: AddItem( new FemaleLeatherChest() ); break;
					case 1: AddItem( new FemaleStuddedChest() ); break;
					case 2: AddItem( new LeatherBustierArms() ); break;
					case 3: AddItem( new StuddedBustierArms() ); break;
					case 4: AddItem( new FemalePlateChest() ); break;
				}
			}
			else
			{
				Body = 0x190;
				Name = NameList.RandomName( "male" );

				AddItem( new PlateChest() );
				AddItem( new PlateArms() );
				AddItem( new PlateGorget() );
				AddItem( new PlateLegs() );
			}

			Item hair = new Item( Utility.RandomList( 0x203B, 0x203C, 0x203D, 0x2044, 0x2045, 0x2047, 0x2049, 0x204A ) );

			hair.Hue = Utility.RandomHairHue();
			hair.Layer = Layer.Hair;
			hair.Movable = false;

			AddItem( hair );

			if( Utility.RandomBool() && !this.Female )
			{
				Item beard = new Item( Utility.RandomList( 0x203E, 0x203F, 0x2040, 0x2041, 0x204B, 0x204C, 0x204D ) );

				beard.Hue = hair.Hue;
				beard.Layer = Layer.FacialHair;
				beard.Movable = false;

				AddItem( beard );
			}

			Broadsword weapon = new Broadsword();

			weapon.Movable = false;
			weapon.Crafter = this;
			weapon.Quality = WeaponQuality.Exceptional;

			AddItem( weapon );

			Container pack = new Backpack();

			pack.Movable = false;

			pack.DropItem( new Gold( 10, 25 ) );

			AddItem( pack );

			SetSkill( SkillName.Anatomy, 70.1, 80.0 );
			SetSkill( SkillName.Tactics, 70.1, 80.0 );
			SetSkill( SkillName.Swords, 70.1, 80.0 );
			SetSkill( SkillName.MagicResist, 70.1, 80.0 );
		}
Beispiel #19
0
        public Warrior()
            : base(AIType.AI_Melee, FightMode.Agressor, 10, 1, 0.45, 0.8)
        {
            Female = Utility.RandomBool();
            Body = Female ? 401 : 400;
            Title = "the warrior";
            Name = NameList.RandomName( Female ? "female" : "male" );
            Hue = Utility.RandomSkinHue();
            SetStr( 18, 88 );
            SetDex( 18, 88 );
            SetInt( 13, 49 );
            Karma = Utility.RandomMinMax( 13, -45 );

            SetSkill( SkillName.Tactics, 45, 67.5 );
            SetSkill( SkillName.MagicResist, 45, 67.5 );
            SetSkill( SkillName.Parry, 45, 67.5 );
            SetSkill( SkillName.Swords, 45, 67.5 );
            SetSkill( SkillName.Macing, 45, 67.5 );
            SetSkill( SkillName.Fencing, 45, 67.5 );
            SetSkill( SkillName.Wrestling, 45, 67.5 );
            SetSkill( SkillName.ArmsLore, 42.5, 65 );

            Item item = null;
            if ( !Female )
            {
                item = AddRandomHair();
                item.Hue = Utility.RandomHairHue();
                item = AddRandomFacialHair( item.Hue );
                item = new RingmailChest();
                AddItem( item );
                item = new RingmailLegs();
                AddItem( item );
                item = new RingmailArms();
                AddItem( item );
                item = new RingmailGloves();
                AddItem( item );
                item = new ChainCoif();
                AddItem( item );
                item = new PlateGorget();
                AddItem( item );
                item = new WoodenShield();
                AddItem( item );
                item = new Broadsword();
                AddItem( item );
                PackGold( 15, 100 );
            } else {
                item = AddRandomHair();
                item.Hue = Utility.RandomHairHue();
                item = new RingmailChest();
                AddItem( item );
                item = new RingmailLegs();
                AddItem( item );
                item = new RingmailArms();
                AddItem( item );
                item = new RingmailGloves();
                AddItem( item );
                item = new ChainCoif();
                AddItem( item );
                item = new PlateGorget();
                AddItem( item );
                item = new WoodenShield();
                AddItem( item );
                item = new Broadsword();
                AddItem( item );
                PackGold( 15, 100 );
            }
        }
Beispiel #20
0
        public static void MimicThem(BaseCreature from, Mobile targ, bool allowskillchanges, bool allowAIchanges)
        {
            if (targ == null)
                return;

            if (from.BodyMod == 0)
            {
                from.BodyMod = targ.Body;
                from.Hue = targ.Hue;

                from.NameMod = targ.Name;
                from.Title = targ.Title;

                from.HairItemID = targ.HairItemID;
                from.FacialHairItemID = targ.FacialHairItemID;

                from.VirtualArmor = targ.VirtualArmor;

                foreach (var item in targ.Items)
                {
                    if (item.Layer != Layer.Backpack && item.Layer != Layer.Mount)
                    {
                        /*
                        We don't dupe armor because the creatures base seed stacks with armor
                        By duping a high resistance player we shoot the creature up into the 100's in res
                        Imagine being the player facing your 400+ HP creature and EVERY attack & spell only deals 1 damage to them.
                        */
                        if (item is BaseShield)
                        {
                            var shieldtomake = new Buckler();
                            shieldtomake.PoisonBonus = 0;
                            shieldtomake.ItemID = item.ItemID;
                            shieldtomake.Hue = item.Hue;
                            shieldtomake.Layer = item.Layer;
                            shieldtomake.Movable = false;
                            shieldtomake.Name = item.Name;
                            from.EquipItem(shieldtomake);
                        }
                        else if (item is BaseWeapon)
                        {
                            var weapontomake = new Broadsword();
                            weapontomake.ItemID = item.ItemID;
                            weapontomake.Hue = item.Hue;
                            weapontomake.Layer = item.Layer;
                            weapontomake.Movable = false;
                            weapontomake.Name = item.Name;

                            var weapon = item as BaseWeapon;
                            weapontomake.Animation = weapon.Animation;
                            weapontomake.HitSound = weapon.HitSound;
                            weapontomake.MissSound = weapon.MissSound;
                            weapontomake.MinDamage = weapon.MinDamage;
                            weapontomake.MaxDamage = weapon.MaxDamage;
                            weapontomake.Speed = weapon.Speed;
                            from.EquipItem(weapontomake);
                        }
                        else
                        {
                            var itemtomake = new Item(item.ItemID);
                            itemtomake.Hue = item.Hue;
                            itemtomake.Layer = item.Layer;
                            itemtomake.Movable = false;
                            itemtomake.Name = item.Name;
                            from.EquipItem(itemtomake);
                        }
                    }
                }

                /*
                Duping skills can mess up the AI.
                What good is trying to melee when you have 0 tactics?
                On the other side, What good is stopping it's attack to try and cast something it can't do?
                The bool allows you to use it as a staff command or spell or make clone creatures that don't run around with the same exact skills as the others.
                */

                if (allowskillchanges)
                    for (var i = 0; i < targ.Skills.Length && i < from.Skills.Length; i++)
                        from.Skills[i].Base = targ.Skills[i].Base;
            }
            else
            {
                from.BodyMod = 0;
                from.Hue = 0;

                from.NameMod = null;
                from.Title = null;

                from.HairItemID = 0;
                from.FacialHairItemID = 0;

                from.VirtualArmor = 0;

                var list = new List<Item>(from.Items);

                foreach (var item in list)
                {
                    if (item != null)
                        item.Delete();
                }

                if (allowskillchanges)
                {
                    for (var i = 0; i < targ.Skills.Length; ++i)
                        from.Skills[i].Base = 50.0;
                }
            }
        }
Beispiel #21
0
		public Vampire() : base( AIType.AI_SphereMage, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Hue = 0x497;
			Body = 0x190;
			Name = "Vampire";

			SetStr( 450 );
			SetDex( 200, 300 );
			SetInt( 150, 200 );
			SetHits( 200, 300 );
			SetStam( 200, 300 );
			SetMana( 150, 200 );
			SetDamage( 10, 20 );

			SetSkill( SkillName.Parry, 75.0, 80.0 );
			SetSkill( SkillName.Poisoning, 90.0, 100.0 );
			SetSkill( SkillName.MagicResist, 75.0, 88.0 );
			SetSkill( SkillName.Swords, 75.0, 85.0 );
			SetSkill( SkillName.Tactics, 80.0, 90.0 );
			SetSkill( SkillName.Wrestling, 67.0, 80.0 );
			SetSkill( SkillName.Magery, 65.0, 80.0 );
            SetSkill(SkillName.EvalInt, 75.0, 85.0);

			Fame = 4000;
			Karma = -4000;
			VirtualArmor = 20;

		    Item temp = new PlateGloves {Movable = false, Hue = 0x0590, Name = "Vampire Plate Gauntlets"};
		    AddItem( temp );
			temp = new PlateArms {Hue = 0x0845, Movable = false, Name = "Vampire Plate Arms"};
		    AddItem( temp );
			temp = new PlateGorget {Movable = false, Hue = 0x0590, Name = "Vampire Plate Gorget"};
		    AddItem( temp );
			temp = new PlateLegs {Movable = false, Hue = 0x0590, Name = "Vampire Plate Legs"};
		    AddItem( temp );
			temp = new PlateChest {Movable = false, Hue = 0x0590, Name = "Vampire Plate Chest"};
		    AddItem( temp );
			temp = new Cloak( 0x1 ) {Movable = false};
		    AddItem( temp );

		    HairItemID = 8252;
		    HairHue = Utility.RandomHairHue();

			BaseSword twep;
			switch( Utility.Random( 8 ) )
			{
				case 0:
					twep = new Broadsword();
					break;
				case 1:
					twep = new Cutlass();
					break;
				case 2:
					twep = new Scimitar();
					break;
				case 3:
					twep = new Katana();
					break;
				case 4:
					twep = new Kryss();
					break;
				case 5:
					twep = new Longsword();
					break;
				case 6:
					twep = new ThinLongsword();
					break;
				default:
					twep = new VikingSword();
					break;
			}
			switch( Utility.Random( 3 ) )
			{
				case 0:
					twep.DamageLevel = WeaponDamageLevel.Ruin;
					break;
				case 1:
					twep.DamageLevel = WeaponDamageLevel.Might;
					break;
				case 2:
					twep.DamageLevel = WeaponDamageLevel.Force;
					break;
			}

			AddItem( twep );
		}
Beispiel #22
0
        public static void EquipFreeSoldier(Armament a, Mobile m)
        {
            if (a == Armament.LightCavalry)
                a = (Armament)1;
            else if (a == Armament.HeavyCavalry)
                a = (Armament)3;

            int chance = Utility.RandomMinMax(1, 6);
            Nation nation = Nation.Vhalurian;

            switch (chance)
            {
                case 1: nation = Nation.Alyrian; break;
                case 2: nation = Nation.Azhuran; break;
                case 3: nation = Nation.Khemetar; break;
                case 4: nation = Nation.Mhordul; break;
                case 5: nation = Nation.Tyrean; break;
                case 6: nation = Nation.Vhalurian; break;
            }

            m.Language = "Common";
            m.Female = Utility.RandomBool();

            if (m.Female)
            {
                m.Body = 0x191;
                (m as Soldier).BaseName = RandomName(nation, true) + RandomSurname(nation, true);
            }

            else
            {
                m.Body = 0x190;
                (m as Soldier).BaseName = BaseKhaerosMobile.RandomName(nation, false) + RandomSurname(nation, false);
            }

            m.Hue = BaseKhaerosMobile.AssignRacialHue(nation);
            m.HairItemID = BaseKhaerosMobile.AssignRacialHair(nation, m.Female);
            int hairhue = BaseKhaerosMobile.AssignRacialHairHue(nation);
            m.HairHue = hairhue;

            if (!m.Female)
            {
                m.FacialHairItemID = BaseKhaerosMobile.AssignRacialFacialHair(nation);
                m.FacialHairHue = hairhue;
            }
            else
                m.FacialHairItemID = 0;

            if (m.Backpack == null)
                m.AddItem(new Backpack());

            m.Name = ((m as Soldier).BaseName + " the Free Soldier");

            ChainChest cc = new ChainChest();
            m.EquipItem(cc);
            PlateArms pa = new PlateArms();
            m.EquipItem(pa);
            TyreanHalfPlateGloves thpg = new TyreanHalfPlateGloves();
            m.EquipItem(thpg);
            PlateGorget pg = new PlateGorget();
            m.EquipItem(pg);
            PlateLegs pl = new PlateLegs();
            m.EquipItem(pl);
            m.EquipItem(new Cloak(Utility.RandomMinMax(1873, 1908)));
            m.EquipItem(new Tunic(Utility.RandomMinMax(1873, 1908)));

            int RandomWeapons = Utility.Random(3);

            switch (RandomWeapons)
            {
                case 0: Broadsword sword = new Broadsword(); m.EquipItem(sword); MetalShield shield = new MetalShield(); m.EquipItem(shield); break;
                case 1: WarHammer wh = new WarHammer(); m.EquipItem(wh); break;
                case 2: Bow b = new Bow(); m.EquipItem(b); m.AddToBackpack(new Arrow(Utility.Random(20))); (m as BaseCreature).AI = AIType.AI_Archer; break;
            }
        }
Beispiel #23
0
		public Deathknight() : base( AIType.AI_Necro, FightMode.Aggressor, 10, 1, 0.2, 0.4 ) 
		{ 

			Title = "the deathknight"; 

			SpeechHue = Utility.RandomDyedHue(); 

			Hue = 0; 
			Name = NameList.RandomName( "daemon" ); 

			SetStr( 306, 430 );
			SetDex( 271, 350 );
			SetInt( 250, 355 );

			SetHits ( 2200 );

			if ( Female = Utility.RandomBool() ) 
			{ 
				Body = 0x191;
			} 
			else 
			{ 
				Body = 0x190;
			} 

			new SkeletalMount().Rider = this; 

			PlateChest chest = new PlateChest();
            chest.LootType = LootType.Blessed;
			chest.Hue = 1175; 
			AddItem( chest ); 
			PlateArms arms = new PlateArms();
            arms.LootType = LootType.Blessed;
			arms.Hue = 1175; 
			AddItem( arms ); 
			PlateGloves gloves = new PlateGloves();
            gloves.LootType = LootType.Blessed;
			gloves.Hue = 1175; 
			AddItem( gloves ); 
			PlateGorget gorget = new PlateGorget();
            gorget.LootType = LootType.Blessed;
			gorget.Hue = 1175; 
			AddItem( gorget ); 
			PlateLegs legs = new PlateLegs();
            legs.LootType = LootType.Blessed;
			legs.Hue = 1175; 
			AddItem( legs ); 
			Cloak cloak = new Cloak();
            cloak.LootType = LootType.Blessed;
			cloak.Hue = 1175;
			AddItem( cloak );

			DeathknightsHelm helm = new DeathknightsHelm();
            helm.LootType = LootType.Blessed;
			AddItem( helm );



			switch ( Utility.Random( 4 ))
			{
				case 0:  LargeBattleAxe battleaxe = new LargeBattleAxe();
				battleaxe.Movable = false; 
				battleaxe.Crafter = this; 
				battleaxe.Hue = 1175;
				battleaxe.Quality = WeaponQuality.Exceptional; 
				AddItem( battleaxe ); break;
				case 1:  DoubleAxe doubleaxe = new DoubleAxe();
				doubleaxe.Movable = false; 
				doubleaxe.Crafter = this; 
				doubleaxe.Hue = 1175;
				doubleaxe.Quality = WeaponQuality.Exceptional; 
				AddItem( doubleaxe ); break;
				case 2:  Broadsword broadsword = new Broadsword();
				broadsword.Movable = false; 
				broadsword.Crafter = this; 
				broadsword.Hue = 1175;
				broadsword.Quality = WeaponQuality.Exceptional; 
				AddItem( broadsword ); break;
				case 3:  VikingSword vikingsword = new VikingSword();
				vikingsword.Movable = false; 
				vikingsword.Crafter = this; 
				vikingsword.Hue = 1175;
				vikingsword.Quality = WeaponQuality.Exceptional; 
				AddItem( vikingsword ); break;
			}

            if (Utility.RandomDouble() <= 0.40)
			    PackItem( new DeathknightsHelm() );
			

			PackGold( 980, 1400 );

			Skills[SkillName.Anatomy].Base = 120.0; 
			Skills[SkillName.Tactics].Base = 120.0; 
			Skills[SkillName.Swords].Base = 120.0; 
			Skills[SkillName.Necromancy].Base = 120.0; 
			Skills[SkillName.SpiritSpeak].Base = 120.0; 
			Skills[SkillName.MagicResist].Base = 120.0; 
			Skills[SkillName.Lumberjacking].Base = 100.0; 

		}