Example #1
0
        public BlackOrderGrandMage()
            : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name = "Black Order Grand Mage";
            Title = "of the Dragons's Flame Sect";
            Race = Utility.RandomBool() ? Race.Human : Race.Elf;
            Body = Race == Race.Elf ? 605 : 400;
            Hue = Utility.RandomSkinHue();

            Utility.AssignRandomHair( this );

            if ( Utility.RandomBool() )
                Utility.AssignRandomFacialHair( this, HairHue );

            SetStr( 325, 375 );
            SetDex( 290, 310 );
            SetInt( 485, 505 );

            SetHits( 1900, 2100 );

            SetDamage( 16, 30 );

            SetDamageType( ResistanceType.Physical, 100 );

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

            Fame = 15000;
            Karma = -15000;

            SetSkill( SkillName.MagicResist, 120.0, 130.0 );
            SetSkill( SkillName.Tactics, 115.0, 130.0 );
            SetSkill( SkillName.Wrestling, 95.0, 120.0 );
            SetSkill( SkillName.Anatomy, 105.0, 120.0 );
            SetSkill( SkillName.Magery, 120.0, 130.0 );
            SetSkill( SkillName.EvalInt, 120.0, 130.0 );

            /* Equip */
            Item item = null;

            AddItem( new Waraji() );

            item = new FancyShirt();
            item.Hue = 1309;
            AddItem( item );

            item = new Kasa();
            item.Hue = 1309;
            AddItem( item );

            item = new Hakama();
            item.Hue = 1309;
            AddItem( item );
        }
		public SamuraiScholar() : base( AIType.AI_Mage, FightMode.Weakest, 10, 1, 0.175, 0.3)
		{

			Name = "Samurai Scholar";
			Title= ", Defiance Cult Clan";
			Body = 400;
                        Hue = 33820;
			SpeechHue= 1150;
			BaseSoundID = 0;
			Team = 0;
                        //new EtherealHorse().Rider = this;

			SetStr( 155, 175);
			SetDex( 130, 140);
			SetInt( 260, 450);

			SetHits(125, 145);

			SetSkill( SkillName.Tactics, 100.7, 100.4);
                        SetSkill( SkillName.Magery, 110.7, 110.8);
                        SetSkill( SkillName.EvalInt, 115.7, 115.7);
			SetSkill( SkillName.MagicResist, 110.4, 115.7);
			SetSkill( SkillName.Wrestling, 110.4, 110.7);
			SetSkill( SkillName.Anatomy, 110.4, 110.7);
			SetSkill( SkillName.Parry, 75.1, 100.1);

                        Fame=15000;
			Karma=-15000;

			VirtualArmor= 75;

			Item Spellbook = new Spellbook();
			Spellbook.Movable=false;
			Spellbook.Hue=0;
		        Spellbook.Name="Tome of Ancient Wisdom";
                        EquipItem( Spellbook );

                        Item Kasa = new Kasa();
			Kasa.Movable=false;
			Kasa.Hue=0;
			EquipItem( Kasa );

			Item Shirt = new Shirt();
			Shirt.Movable=false;
			Shirt.Hue=0;
			EquipItem( Shirt );

                        Item LeatherGloves = new LeatherGloves();
			LeatherGloves.Movable=false;
			LeatherGloves.Hue=0;
                        EquipItem( LeatherGloves );

                        Item MaleKimono = new MaleKimono();
			MaleKimono.Movable=false;
			MaleKimono.Hue=0;
		        EquipItem( MaleKimono );

			Item Sandals = new Sandals();
			Sandals.Movable=false;
			Sandals.Hue=0;
			EquipItem( Sandals );

			Item hair = new Item( 0x203D);
			hair.Hue = 0;
			hair.Layer = Layer.Hair;
			hair.Movable = false;
			AddItem( hair );

                        Item beard = new Item( 0x203E);
			beard.Hue = 0;
			beard.Layer = Layer.FacialHair;
			beard.Movable = false;
			AddItem( beard );

			PackGold( 140, 255);
			PackMagicItems( 3, 7);
			PackMagicItems( 3, 7);
			PackMagicItems( 3, 7);
			PackMagicItems( 3, 7);

                                switch ( Utility.Random( 125 ))
        		 {
           			case 0: PackItem( new HakamaShita() ); break;
        		 }
		}
        /// <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 override void OnDamagedBySpell( Mobile from )
		{
			if (from.Combatant == null)
			return;

			Mobile m = from.Combatant;						

			if (m.Body == 58)
				m.Say( "I now own your soul!!!" ); 

			if (m.Body != from.Body)
                    	{
				m.BoltEffect( 0 );

				m.Body = from.Body; 
				m.Hue = from.Hue; 
				m.Name = from.Name;

      				m.Fame = from.Fame;
      				m.Karma = (0-from.Karma);
      				m.Title = from.Title;
      	 			
      				m.Str = from.Str;
      				m.Int = from.Int;
				m.Dex = from.Dex;

      				m.Hits =from.Hits + 2000;

      				m.Dex = from.Dex;
      				m.Mana = from.Mana;
      				m.Stam = from.Stam;

				m.Female = from.Female;
      	
      				m.VirtualArmor = (from.VirtualArmor +95);
      	
				Item hair = new Item( Utility.RandomList( 8265 ) );
				hair.Hue = 1167;
				hair.Layer = Layer.Hair;
				hair.Movable = false;
				m.AddItem( hair );

				Kasa hat = new Kasa();				
				hat.Hue = 1167;
				hat.Movable = false;
				m.AddItem( hat );

				DeathRobe robe = new DeathRobe();
				robe.Name = "Death Robe";
				robe.Hue = 1167;
				robe.Movable = false;
				m.AddItem( robe );
		
				Sandals sandals = new Sandals();				
				sandals.Hue = 1167;
				sandals.Movable = false;
				m.AddItem( sandals );				

				BagOfAllReagents bag = new BagOfAllReagents();
				m.AddToBackpack( bag );
			
				m.BoltEffect( 0 );
			}
			switch ( Utility.Random( 5 ) )
			{
				
				case 0: m.Say( "We are now one with each other!!" ); break;
				case 1: m.Say( "Your weak spells have no effect on me, muahahaha!!" ); break;
				case 2: m.Say( "Your end is near young adventurer!!" ); break;
				case 3: m.Say( "Thou shalt not pass my post!!" ); break;
				case 4: m.Say( "I now own your soul!!!" ); break;
			}
			from.BoltEffect( 0 );
			from.Damage( Utility.Random( 1, 50 ) );
			m.Hits += ( Utility.Random( 1, 50 ) );
		}
		public SamuraiFarmer() : base( AIType.AI_Melee, FightMode.Weakest, 10, 1, 0.175, 0.3)
		{

			Name = "Samurai Farmer";
			Title= ", Defiance Cult Clan";
			Body = 400;
                        Hue = 33820;
			SpeechHue= 1150;
			BaseSoundID = 0;
			Team = 0;
                        //new EtherealHorse().Rider = this;

			SetStr( 125, 145);
			SetDex( 130, 140);
			SetInt( 0, 0);

			SetHits(125, 145);

			SetSkill( SkillName.Tactics, 100.7, 100.4);
			SetSkill( SkillName.MagicResist, 100.4, 100.7);
			SetSkill( SkillName.Fencing, 110.4, 110.7);
			SetSkill( SkillName.Anatomy, 110.4, 110.7);
			SetSkill( SkillName.Parry, 75.1, 100.1);

                        Fame=15000;
			Karma=-15000;

			VirtualArmor= 75;

			Item Pitchfork = new Pitchfork();
			Pitchfork.Movable=false;
			Pitchfork.Hue=0;
		        //Bokuto.Name="SamuraiFarmer Bokuto";
                        EquipItem( Pitchfork );

                        Item Kasa = new Kasa();
			Kasa.Movable=false;
			Kasa.Hue=0;
			EquipItem( Kasa );

			Item Shirt = new Shirt();
			Shirt.Movable=false;
			Shirt.Hue=0;
			EquipItem( Shirt );

                        Item LeatherGloves = new LeatherGloves();
			LeatherGloves.Movable=false;
			LeatherGloves.Hue=0;
                        EquipItem( LeatherGloves );

                        Item TattsukeHakama = new TattsukeHakama();
			TattsukeHakama.Movable=false;
			TattsukeHakama.Hue=0;
		        EquipItem( TattsukeHakama );

			Item Sandals = new Sandals();
			Sandals.Movable=false;
			Sandals.Hue=0;
			EquipItem( Sandals );


			Item hair = new Item( 0x203D);
			hair.Hue = 1;
			hair.Layer = Layer.Hair;
			hair.Movable = false;
			AddItem( hair );

			PackGold( 140, 255);
			PackMagicItems( 3, 7);
			PackMagicItems( 3, 7);
			PackMagicItems( 3, 7);
			PackMagicItems( 3, 7);

                                switch ( Utility.Random( 125 ))
        		 {
           			case 0: PackItem( new Kasa() ); break;
        		 }
		}