Inheritance: BasePoleArm
Beispiel #1
0
        public Revenant( Mobile caster, Mobile target, TimeSpan duration )
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.18, 0.36)
        {
            Name = "a revenant";
            Body = 400;
            Hue = 1;
            // TODO: Sound values?

            double scalar = caster.Skills[SkillName.SpiritSpeak].Value * 0.01;

            m_Target = target;
            m_ExpireTime = DateTime.Now + duration;

            SetStr( 200 );
            SetDex( 150 );
            SetInt( 150 );

            SetDamage( 16, 17 );

            // Bestiary says 50 phys 50 cold, animal lore says differently
            SetDamageType( ResistanceType.Physical, 100 );

            SetSkill( SkillName.MagicResist, 100.0 * scalar ); // magic resist is absolute value of spiritspeak
            SetSkill( SkillName.Tactics, 100.0 ); // always 100
            SetSkill( SkillName.Swords, 100.0 * scalar ); // not displayed in animal lore but tests clearly show this is influenced
            SetSkill( SkillName.DetectHidden, 75.0 * scalar );

            scalar /= 1.2;

            SetResistance( ResistanceType.Physical, 40 + (int)(20 * scalar), 50 + (int)(20 * scalar)  );
            SetResistance( ResistanceType.Cold, 40 + (int)(20 * scalar), 50 + (int)(20 * scalar) );
            SetResistance( ResistanceType.Fire, (int)(20 * scalar) );
            SetResistance( ResistanceType.Poison, 100 );
            SetResistance( ResistanceType.Energy, 40 + (int)(20 * scalar), 50 + (int)(20 * scalar) );

            Fame = 0;
            Karma = 0;

            ControlSlots = 3;

            VirtualArmor = 32;

            BardImmune = true;

            Item shroud = new DeathShroud();

            shroud.Hue = 0x455;

            shroud.Movable = false;

            AddItem( shroud );

            Halberd weapon = new Halberd();

            weapon.Hue = 1;
            weapon.Movable = false;

            AddItem( weapon );
        }
Beispiel #2
0
        private void AddItems(Container pack)
        {
            pack.DropItem(new BagOfReagents());
            pack.DropItem(new Spellbook(ulong.MaxValue));

            BaseWeapon weaps = new Halberd();

            weaps.Quality = WeaponQuality.Exceptional;
            pack.DropItem(weaps);

            weaps         = new Katana();
            weaps.Quality = WeaponQuality.Exceptional;
            pack.DropItem(weaps);

            weaps         = new ShortSpear();
            weaps.Quality = WeaponQuality.Exceptional;
            pack.DropItem(weaps);

            weaps         = new WarMace();
            weaps.Quality = WeaponQuality.Exceptional;
            pack.DropItem(weaps);

            pack.DropItem(new GreaterPoisonPotion());
            pack.DropItem(new GreaterPoisonPotion());

            pack.DropItem(new GreaterHealPotion());
            pack.DropItem(new GreaterHealPotion());
            pack.DropItem(new GreaterHealPotion());
            pack.DropItem(new GreaterHealPotion());

            pack.DropItem(new GreaterCurePotion());
            pack.DropItem(new GreaterCurePotion());
            pack.DropItem(new GreaterCurePotion());

            pack.DropItem(new TotalRefreshPotion());
            pack.DropItem(new TotalRefreshPotion());

            pack.DropItem(new GreaterExplosionPotion());
            pack.DropItem(new GreaterExplosionPotion());
            pack.DropItem(new GreaterExplosionPotion());

            pack.DropItem(new Bandage(20));

            for (int i = 0; i < 3; i++)
            {
                TrapableContainer cont = new Pouch();
                cont.TrapType  = TrapType.MagicTrap;
                cont.TrapPower = 1;
                cont.TrapLevel = 0;
                pack.DropItem(cont);
            }
        }
Beispiel #3
0
        public Revenant(Mobile caster, Mobile target, TimeSpan duration)
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.18, 0.36)
        {
            Body = 400;
            Hue = 1;
            // TODO: Sound values?

            double scalar = caster.Skills[SkillName.SpiritSpeak].Value * 0.01;

            m_Target = target;
            m_ExpireTime = DateTime.UtcNow + duration;

            SetStr(200);
            SetDex(150);
            SetInt(150);

            SetDamage(16, 17);

            // Bestiary says 50 phys 50 cold, animal lore says differently

            Alignment = Alignment.Undead;

            SetSkill(SkillName.MagicResist, 100.0 * scalar); // magic resist is absolute value of spiritspeak
            SetSkill(SkillName.Tactics, 100.0); // always 100
            SetSkill(SkillName.Swords, 100.0 * scalar);
                // not displayed in animal lore but tests clearly show this is influenced
            SetSkill(SkillName.DetectHidden, 75.0 * scalar);

            scalar /= 1.2;


            Fame = 0;
            Karma = 0;

            ControlSlots = 3;

            VirtualArmor = 32;

            Item shroud = new DeathShroud();

            shroud.Hue = 0x455;

            shroud.Movable = false;

            AddItem(shroud);

            var weapon = new Halberd {Hue = 1, Movable = false};

            AddItem(weapon);
        }
        public KhaldunRevenant( Mobile target )
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.18, 0.36)
        {
            Name = "a revenant";
            Body = 0x3CA;
            Hue = 0x41CE;

            m_Target = target;
            m_ExpireTime = DateTime.Now + TimeSpan.FromMinutes( 10.0 );

            SetStr( 401, 500 );
            SetDex( 296, 315 );
            SetInt( 101, 200 );

            SetHits( 241, 300 );
            SetStam( 242, 280 );

            SetDamage( 20, 30 );

            SetDamageType( ResistanceType.Physical, 50 );
            SetDamageType( ResistanceType.Cold, 50 );

            SetSkill( SkillName.MagicResist, 100.1, 150.0 );
            SetSkill( SkillName.Tactics, 90.1, 100.0 );
            SetSkill( SkillName.Swords, 140.1, 150.0 );
            SetSkill( SkillName.Wrestling, 90.1, 100.0 );

            SetResistance( ResistanceType.Physical, 55, 65  );
            SetResistance( ResistanceType.Fire, 30, 40 );
            SetResistance( ResistanceType.Cold, 60, 70 );
            SetResistance( ResistanceType.Poison, 20, 30 );
            SetResistance( ResistanceType.Energy, 20, 30 );

            Fame = 0;
            Karma = 0;

            VirtualArmor = 60;

            BardImmune = true;

            Halberd weapon = new Halberd();
            weapon.Hue = 0x41CE;
            weapon.Movable = false;

            AddItem( weapon );
        }
        public GoblinBountyHunter()
        {
            Title = "the goblin bounty hunter";

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

            AddItem(new PlateChest());
            AddItem(new PlateArms());
            AddItem(new PlateLegs());
            AddItem(new BodySash(Utility.RandomYellowHue()));
            //DropItem(Robe());

            Utility.AssignRandomHair(this);

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

            Halberd weapon = new Halberd();

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

            AddItem(weapon);

            Container pack = new Backpack();

            pack.Movable = false;

            pack.DropItem(new Factions.Silver(10, 25));

            AddItem(pack);

            Skills[SkillName.Anatomy].Base = 120.0;
            Skills[SkillName.Tactics].Base = 120.0;
            Skills[SkillName.Swords].Base = 120.0;
            Skills[SkillName.MagicResist].Base = 120.0;
            Skills[SkillName.DetectHidden].Base = 100.0;

            SetSkill(SkillName.Camping, 80.0, 100.0);
            SetSkill(SkillName.Forensics, 80.0, 100.0);
            SetSkill(SkillName.SpiritSpeak, 80.0, 100.0);
        }
		public JailSlaveDriver() : base( AIType.AI_Melee, FightMode.Aggressor, 10, 1, 0.15, 0.9 )
		{
			Body = 0x190;
			AddItem( new PlateChest() );
			AddItem( new PlateArms() );
			AddItem( new PlateGloves() );
			AddItem( new PlateLegs() );
			Hue = Utility.RandomSkinHue();
			Name = NameList.RandomName( "male" );
			Title = "the Jail Guard";

			SetStr( 70, 100 );
			SetDex( 55, 90 );
			SetInt( 25, 35 );
			SetDamage( 11, 25 );

			SetHits ( 90, 125 );

			Halberd weapon = new Halberd();
			weapon.Movable = false;
			AddItem( weapon );

			SetDamageType( ResistanceType.Physical, 100 );

			SetResistance( ResistanceType.Physical, 30, 45 );
			SetResistance( ResistanceType.Fire, 20, 30 );
			SetResistance( ResistanceType.Cold, 20, 30 );
			SetResistance( ResistanceType.Poison, 5, 20 );
			SetResistance( ResistanceType.Energy, 5, 20 );

			SetSkill( SkillName.Anatomy, 90.0 );
			SetSkill( SkillName.MagicResist, 100.0 );
			SetSkill( SkillName.Fencing, 80.0 );
			SetSkill( SkillName.Tactics, 90.0 );

			m_NextSpeakTime = DateTime.Now + ( TimeSpan.FromSeconds( 6 ) );

			Fame = 1000;
			Karma = -1000;
		}
 public virtual void InitWeapon()
 {
     Halberd weapon = new Halberd();
     weapon.Movable = false;
     weapon.LootType = LootType.Newbied;
     weapon.Quality = CraftQuality.Exceptional;
     weapon.MinDamage = 100;
     weapon.MaxDamage = 500;
     weapon.Speed = 100;
     AddItem( weapon );
 }
      public Valvakka()
          : base( AIType.AI_Melee, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
      {
          Name = "Valvakka";
	Body = 0x190;

	SpeechHue = 44;

	Hue = 1175;

          BaseSoundID = 362;

          	SetStr( 2500 );
          	SetDex( 300 );
          	SetInt( 1100 );

          	SetHits( 55000 );

          	SetDamage( 30, 35 );

          	SetDamageType( ResistanceType.Physical, 50 );
          	SetDamageType( ResistanceType.Fire, 50 );

          	SetResistance( ResistanceType.Physical, 0, 0 );
          	SetResistance( ResistanceType.Fire, 120 );
          	SetResistance( ResistanceType.Cold, 10, 12 );
          	SetResistance( ResistanceType.Poison, 10, 12 );
          	SetResistance( ResistanceType.Energy, 10, 12 );

          	SetSkill( SkillName.EvalInt, 125.3 );
		    SetSkill( SkillName.Swords, 120.1, 130.0 );
		    SetSkill( SkillName.Necromancy, 120.1, 130.0 );
          	SetSkill( SkillName.Magery, 125.0 );
          	SetSkill( SkillName.MagicResist, 125.0 );
          	SetSkill( SkillName.Tactics, 130.0 );
          	SetSkill( SkillName.Wrestling, 130.0 );
          	SetSkill( SkillName.Meditation, 130.0 );
          	SetSkill( SkillName.Anatomy, 125.0 );
          	SetSkill(SkillName.DetectHidden, 120.0 );
		    SetSkill( SkillName.SpiritSpeak, 120 );
          
          Fame = 20000;
          Karma = -20000;

          VirtualArmor = 80;

			AddItem( new ThighBoots( 1175 ) ); //black

			Halberd staff = new Halberd();
			staff.Movable = false;
			AddItem( staff );

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

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

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

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

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

        } 
		public DemonExec () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			Name = "a demonic executioner";
			Body = 400;
			BaseSoundID = 427;
			Hue = 1175;

			SetStr( 767, 945 );
			SetDex( 66, 75 );
			SetInt( 46, 70 );

			SetHits( 476, 552 );

			SetDamage( 20, 25 );

			SetSkill( SkillName.MagicResist, 125.1, 140.0 );
			SetSkill( SkillName.Tactics, 90.1, 100.0 );
			SetSkill( SkillName.Wrestling, 90.1, 100.0 );

			Fame = 15000;
			Karma = -15000;

			VirtualArmor = 50;

			NorseHelm helm = new NorseHelm();
			helm.Hue = 1175;
			helm.Movable = false;
			AddItem( helm );

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

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

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

			Kilt kilt = new Kilt();
			kilt.Hue = 1158;
			kilt.Movable = false;
			AddItem( kilt );

			LongHair hair = new LongHair();
			hair.Hue = 1154;
			hair.Movable = false;
			hair.Layer = Layer.Hair;
			AddItem( hair );

			Halberd hands = new Halberd();
			hands.Hue = 1258;
			hands.Movable = false;
			AddItem( hands );

			if ( Utility.Random( 750 ) == 0 ) PackItem( new DemonSandals() );
			if ( Utility.Random( 750 ) == 0 ) PackItem( new DemonDoublet() );
			if ( Utility.Random( 750 ) == 0 ) PackItem( new DemonWizardsHat() );
			if ( Utility.Random( 750 ) == 0 ) PackItem( new DemonHalfApron() );
			if ( Utility.Random( 750 ) == 0 ) PackItem( new DemonSkirt() );
		}
		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;
					}
			}
		}
Beispiel #11
0
        public SpawningGuard()
            : base(AIType.AI_Melee, FightMode.Aggressor, 14, 1, 0.8, 1.6)
        {
            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 PlateLegs());

                switch (Utility.Random(3))
                {
                    case 0: AddItem(new Doublet(Utility.RandomNondyedHue())); break;
                    case 1: AddItem(new Tunic(Utility.RandomNondyedHue())); break;
                    case 2: AddItem(new BodySash(Utility.RandomNondyedHue())); break;
                }
            }
            Utility.AssignRandomHair(this);

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

            Halberd weapon = new Halberd();

            weapon.Movable = false;

            AddItem(weapon);

            Container pack = new Backpack();

            pack.Movable = false;

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

            AddItem(pack);

            SetStr(81, 105);
            SetDex(91, 115);
            SetInt(96, 120);

            SetHits(81, 105);

            SetDamage(10, 25);
            Karma = 25;
            VirtualArmor = 16;

            Skills[SkillName.Tactics].Base = 100.0;
            Skills[SkillName.Swords].Base = 100.0;
            Skills[SkillName.MagicResist].Base = 100.0;
            Skills[SkillName.DetectHidden].Base = 100.0;

            //this.NextCombatTime = DateTime.Now + TimeSpan.FromSeconds(0.5);
        }
Beispiel #12
0
        public WarriorGuard(Mobile target)
            : base(target)
        {
            //10OCT2007 Reorganized Guards *** START ***
            //Reduce stats to a normal level
            //InitStats(1000, 1000, 1000);

            InitStats((Utility.RandomMinMax(50, 75)), (Utility.RandomMinMax(50, 75)), (Utility.RandomMinMax(50, 75)));
            Title = "the guard";

            SpeechHue = Utility.RandomDyedHue();

            Hue = Utility.RandomSkinHue();

            if (Female = Utility.RandomBool())
            {
                Body = 0x191;
                Name = NameList.RandomName("female");
                AddItem(new FemalePlateChest());
            }
            else
            {
                Body = 0x190;
                Name = NameList.RandomName("male");
                AddItem(new PlateChest());
                AddItem(new PlateArms());

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

            AddItem(new PlateGloves());
            AddItem(new PlateGorget());
            AddItem(new PlateLegs());
            AddItem(new Boots());
            AddItem(new NorseHelm());

            AddItem(new BodySash(Utility.RandomNondyedHue()));

            Utility.AssignRandomHair(this);

            switch (Utility.Random(1))  //picks one of the following
            {
                case 0:
                    {
                        Longsword weapon = new Longsword();
                        weapon.Movable = false;
                        weapon.Crafter = this;
                        weapon.Quality = WeaponQuality.Exceptional;

                        AddItem(weapon);
                        AddItem(new MetalShield());
                        break;
                    }
                case 1:
                    {
                        Halberd weapon = new Halberd();
                        weapon.Movable = false;
                        weapon.Crafter = this;
                        weapon.Quality = WeaponQuality.Exceptional;

                        AddItem(weapon); break;
                    }
            }
            //10OCT2007 Reorganized Guards *** END   ***

            Container pack = new Backpack();

            pack.Movable = false;

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

            AddItem(pack);

            Skills[SkillName.Anatomy].Base = 120.0;
            Skills[SkillName.Tactics].Base = 120.0;
            Skills[SkillName.Swords].Base = 120.0;
            Skills[SkillName.MagicResist].Base = 120.0;
            Skills[SkillName.DetectHidden].Base = 100.0;

            this.NextCombatTime = DateTime.Now + TimeSpan.FromSeconds(0.5);
            this.Focus = target;
        }
        public KhaldunRevenant(Mobile target) : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.18, 0.36)
        {
            Body = 0x3CA;
            Hue = 0x41CE;

            m_Target = target;
            m_ExpireTime = DateTime.UtcNow + TimeSpan.FromMinutes(10.0);

            SetStr(401, 500);
            SetDex(296, 315);
            SetInt(101, 200);

            SetHits(241, 300);
            SetStam(242, 280);

            SetDamage(20, 30);

            Alignment = Alignment.Undead;


            SetSkill(SkillName.MagicResist, 100.1, 150.0);
            SetSkill(SkillName.Tactics, 90.1, 100.0);
            SetSkill(SkillName.Swords, 140.1, 150.0);
            SetSkill(SkillName.Wrestling, 90.1, 100.0);


            Fame = 0;
            Karma = 0;

            VirtualArmor = 60;

            var weapon = new Halberd();
            weapon.Hue = 0x41CE;
            weapon.Movable = false;

            AddItem(weapon);
        }
		private static void AddThemeLoot (LockableContainer cont, int level, ChestThemeType type)
		{
			MonsterStatuette mx = null;

			//switch to add in theme treasures
			switch ( type )
			{
				case ChestThemeType.Solen:
				{

					//drop are special weapon
					QuarterStaff special = new QuarterStaff();
					special.Name = "Chitanous Staff";
					cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true));

					//go into dropping normal loot

					int onlyonedrop = Utility.RandomMinMax(0,1);

					if(onlyonedrop ==0 )cont.DropItem(new Seed(PlantType.Hedge,0,false)); //new solen seed
					if(onlyonedrop ==1 )cont.DropItem(new WaterBucket() ); //new waterbucket

					if (Utility.RandomDouble() <= 0.30 ) //30% chance to drop a statue
					{
						int whichone = Utility.RandomMinMax(0,1);
						if(whichone == 0)mx = new MonsterStatuette (m_Monster[0]);
						if(whichone == 1)mx = new MonsterStatuette (m_Monster[1]);
						mx.LootType = LootType.Regular;		// not blessed
						cont.DropItem( mx );			// drop it baby!
					}
					break;
				}

				case ChestThemeType.Brigand:
				{
					//drop are special weapon
					Katana special = new Katana();
					special.Name = "Bandit's Blade";
					cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true));

					int onlyonedrop = Utility.RandomMinMax(0,1);

					if(onlyonedrop ==0 )cont.DropItem(new Brazier(true)); //new movable brazier
					if(onlyonedrop ==1 )cont.DropItem(new DecorativeBow(Utility.RandomMinMax(0,3))); //random decorative bow type

					for ( int i = 0; i < level * 5; ++i )
					{
						cont.DropItem (new PowderOfTranslocation() );  //drop powder of translocation
					}

					if (Utility.RandomDouble() <= 0.30 ) //30% chance to drop a statue
					{
						int whichone = Utility.RandomMinMax(0,1);
						if(whichone == 0)mx = new MonsterStatuette (m_Monster[2]);
						if(whichone == 1)mx = new MonsterStatuette (m_Monster[3]);
						mx.LootType = LootType.Regular;		// not blessed
						cont.DropItem( mx );			// drop it baby!
					}
					break;
				}

				case ChestThemeType.Savage:
				{
					//drop are special weapon
					ShortSpear special = new ShortSpear();
					special.Name = "Ornate Ritual Spear";
					cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true));

					int rug = Utility.RandomMinMax(0,1);
					int onlyonedrop = Utility.RandomMinMax(0,1);

					if(onlyonedrop ==0 )cont.DropItem(new SkullPole() ); //new skull pole

					if(onlyonedrop ==1 )
					{
						if(rug == 0) cont.DropItem(new BrownBearRugEastDeed() ); //new rug east
						if(rug == 1) cont.DropItem(new BrownBearRugSouthDeed() ); //new rug south
					}

					if (Utility.RandomDouble() <= .30 ) //30% chance to drop a statue
					{
						int whichone = Utility.RandomMinMax(0,1);
						if(whichone == 0)mx = new MonsterStatuette (m_Monster[4]);
						if(whichone == 1)mx = new MonsterStatuette (m_Monster[5]);
						mx.LootType = LootType.Regular;			// not blessed
						cont.DropItem( mx );				// drop it baby!
					}
					break;
				}

				case ChestThemeType.Undead:
				{
					Halberd special = new Halberd();
					special.Name = "Soul Reaver";
					cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true));

					int onlyonedrop = Utility.RandomMinMax(0,1);
					if(onlyonedrop ==0 )cont.DropItem(new BoneContainer(Utility.RandomMinMax(0,2))); //new bone container 3 differnt types 0-2
					int stone = Utility.RandomMinMax(0,3); // get random gravestone type to drop

					if(onlyonedrop ==1 )
					{
						if(stone == 0) cont.DropItem(new GraveStone1());
						if(stone == 1) cont.DropItem(new GraveStone2());
						if(stone == 2) cont.DropItem(new GraveStone3());
						if(stone == 3) cont.DropItem(new GraveStone4());
					}

					for ( int i = 0; i < level * 5; ++i )
					{
						cont.DropItem(new Moonstone()); //drop moonstones
					}

					if (Utility.RandomDouble() <= 0.30 ) //30% chance to drop a statue
					{
						int whichone = Utility.RandomMinMax(0,1);
						if(whichone == 0)mx = new MonsterStatuette (m_Monster[6]);
						if(whichone == 1)mx = new MonsterStatuette (m_Monster[7]);
						mx.LootType = LootType.Regular;			// not blessed
						cont.DropItem( mx );				// drop it baby!
					}
					break;
				}

				case ChestThemeType.Pirate:
				{

					Bow special = new Bow();
					special.Name = "Bow of the Buccaneer";
					cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true));

					int onlyonedrop = Utility.RandomMinMax(0,1);
					PirateHat hat = new PirateHat();
					hat.Hue = 0x1;
					int oars = Utility.RandomMinMax(0,1); //2 oar types

					if(onlyonedrop ==0 )
					{
						if(oars == 0) cont.DropItem(new Oars1());
						if(oars == 1) cont.DropItem(new Oars2());
					}

					if(onlyonedrop == 1 )cont.DropItem(new GenieBottle(false) ); //lamp currently disabled genie not done
					if (Utility.RandomDouble() <= 0.50 )cont.DropItem(hat); // 50% chance at black piratehat

					if (Utility.RandomDouble() <= 0.30 ) //30% chance to drop a statue
					{
						int whichone = Utility.RandomMinMax(0,1);
						if(whichone == 0)mx = new MonsterStatuette (m_Monster[8]);
						if(whichone == 1) mx = new MonsterStatuette (m_Monster[9]);
						mx.LootType = LootType.Regular;					// not blessed
						cont.DropItem( mx );						// drop it baby!
					}
					break;
				}

				case ChestThemeType.Dragon:
				{
					WarFork special = new WarFork();
					special.Name = "Claw of the Dragon";
					cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true));

					int onlyonedrop = Utility.RandomMinMax(0,1);
					//new dragonhead trophydeed type
					if(onlyonedrop ==0 ) cont.DropItem(new TrophyDeed(8757, 8756, "a dragon head trophy", "a dragon head trophy", 10 ));
					int armor = Utility.RandomMinMax(0,2); // drop 1 piece of dragonarmor

					if(onlyonedrop == 1 )
					{
						if(armor == 0) cont.DropItem(new HangingDragonChest());
						if(armor == 1) cont.DropItem(new HangingDragonLegs());
						if(armor == 2) cont.DropItem(new HangingDragonArms());
					}

					if (Utility.RandomDouble() <= 0.30 ) //30% chance to drop a statue
					{
						int whichone = Utility.RandomMinMax(0,1);
						if(whichone == 0)mx = new MonsterStatuette (m_Monster[10]);
						if(whichone == 1)mx = new MonsterStatuette (m_Monster[11]);
						mx.LootType = LootType.Regular;			// not blessed
						cont.DropItem( mx );				// drop it baby!
					}
					break;
				}

				case ChestThemeType.Lizardmen: 
				{
					if (Utility.RandomBool())
						cont.DropItem( new LizardmansStaff() ); 
					else
						cont.DropItem( new LizardmansMace() ); 
				}
					break;
				
				case ChestThemeType.Ettin:
				{
					cont.DropItem( new EttinHammer() ); 
				}
					break;
				
				case ChestThemeType.Ogre: 
				{
					cont.DropItem( new OgresClub() ); 
				}
					break;

				case ChestThemeType.Ophidian:
				{
					cont.DropItem( new OphidianBardiche() ); 
				}
					break;
				
				case ChestThemeType.Skeleton:
				{
					switch (Utility.Random(3))
					{
						case 0: cont.DropItem( new SkeletonScimitar() ); break;
						case 1: cont.DropItem( new SkeletonAxe() ); break;
						case 2: cont.DropItem( new BoneMageStaff() ); break;
					}
				}
					break;

				case ChestThemeType.Ratmen:
				{
					if (Utility.RandomBool())
						cont.DropItem( new RatmanSword() ); 
					else
						cont.DropItem( new RatmanAxe() ); 
				}
					break;

				case ChestThemeType.Orc:
				{
					switch (Utility.Random(3))
					{
						case 0: cont.DropItem( new OrcClub() ); break;
						case 1: cont.DropItem( new OrcMageStaff() ); break;
						case 2: cont.DropItem( new OrcLordBattleaxe() ); break;
					}
				}
					break;

				case ChestThemeType.Terathan:
				{
					switch (Utility.Random(3))
					{
						case 0: cont.DropItem( new TerathanStaff() ); break;
						case 1: cont.DropItem( new TerathanSpear() ); break;
						case 2: cont.DropItem( new TerathanMace() ); break;
					}
				}
					break;

				case ChestThemeType.FrostTroll:
				{
					switch (Utility.Random(3))
					{
						case 0: cont.DropItem( new FrostTrollClub() ); break;
						case 1: cont.DropItem( new TrollAxe() ); break;
						case 2: cont.DropItem( new TrollMaul() ); break;
					}
				}
					break;

			}//end switch

		}
		public ForgottenOneHalberd() : base( AIType.AI_Melee, FightMode.Good, 10, 1, 0.2, 0.4 ) 
		{ 	
			Title = "a ForgottenOne Fighter";
			Name = NameList.RandomName( "male" );
			Body = 0x191;
			Hue = 33805;
			Female = false;

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

			Fame = -1000;
			Karma = -1000;

			SetHits( 1000, 2000 );

			SetDamage( 24, 33 );

			SetDamageType( ResistanceType.Physical, 100 );

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

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

			VirtualArmor = 80;


			Halberd halberd = new Halberd();
			halberd.Movable = false;
   			AddItem(halberd);
   			//AddItem(new Bolt(100));
   			
   			HumilityCloak cloak = new HumilityCloak();
   			cloak.Movable = false;
   			AddItem(cloak);
			
   			SpiritualityHelm spiritualityhelm = new SpiritualityHelm();
			spiritualityhelm.Movable = false;
   			AddItem(spiritualityhelm);

   			HonestyGorget honestygorget = new HonestyGorget();
			honestygorget.Movable = false;
   			AddItem(honestygorget);
   			
   			JusticeBreastplate justicebreastplate = new JusticeBreastplate();
			justicebreastplate.Movable = false;
   			AddItem(justicebreastplate);

   			BodySash bodysash = new BodySash();
			bodysash.Movable = false;
			bodysash.Name = "ForgottenOne";
   			AddItem(bodysash);
   			
   			CompassionArms compassionarms = new CompassionArms();
			compassionarms.Movable = false;
   			AddItem(compassionarms);
   			
   			ValorGauntlets valorgauntlets = new ValorGauntlets();
			valorgauntlets.Movable = false;
   			AddItem(valorgauntlets);
   			
   			HonorLegs honorlegs = new HonorLegs();
			honorlegs.Movable = false;
   			AddItem(honorlegs);
   			
   			SacrificeSollerets sacrificesollerets = new SacrificeSollerets();
   			sacrificesollerets.Movable = false;
   			AddItem(sacrificesollerets);
   			
//   		PlateChest chest = new PlateChest();
//			chest.Movable = false;
//			chest.Hue = 137;
//   		AddItem(chest);
   			
   			

			VampiriacSteed vampiriacsteed = new VampiriacSteed();
        	vampiriacsteed.Hue = 2412;
			//horse.Hits = 200;
			//horse.Karma = 500;
        	vampiriacsteed.Rider = this;
        	
        	//new VampiriacSteed().Rider = this;
			halberd.Hue = 2412;
   			cloak.Hue = 2412;
			spiritualityhelm.Hue = 137;
			honestygorget.Hue = 137;
			justicebreastplate.Hue = 137;
			bodysash.Hue = 2412;
			compassionarms.Hue = 137;
			valorgauntlets.Hue = 137;
			honorlegs.Hue = 137;
			sacrificesollerets.Hue = 137;

		}
Beispiel #16
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;
            }
        }
 public override void InitWeapon()
 {
     Halberd weapon = new Halberd();
     weapon.Movable = false;
     weapon.LootType = LootType.Newbied;
     weapon.Quality = CraftQuality.Exceptional;
     AddItem( weapon );
 }
Beispiel #18
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 #19
0
        public PomiGuard(TownStone town, GuardSpawner spawn)
            : base(AIType.AI_Pomi, FightMode.Closest, 15, 1, 0.2, 1)
        {
            m_spawn = spawn;
            Location = m_spawn.Location;
            m_Town = town;
            Map = spawn.Map;
            InitStats(200, 200, 200);
            SpeechHue = Utility.RandomDyedHue();
            Hue = Utility.RandomSkinHue();
            Body = 0x190;
            Name = NameList.RandomName("male");
            Title = "Garde de " + m_Town.Nom;

            PlateChest chest = new PlateChest();
            chest.Hue = 0;
            chest.Movable = false;
            AddItem(chest);
            PlateArms arms = new PlateArms();
            arms.Hue = 0;
            arms.Movable = false;
            AddItem(arms);
            PlateGloves gloves = new PlateGloves();
            gloves.Hue = 0;
            gloves.Movable = false;
            AddItem(gloves);
            PlateGorget gorget = new PlateGorget();
            gorget.Hue = 0;
            gorget.Movable = false;
            AddItem(gorget);
            PlateLegs legs = new PlateLegs();
            legs.Hue = 0;
            legs.Movable = false;
            AddItem(legs);
            PlateHelm helm = new PlateHelm();
            helm.Hue = 0;
            helm.Movable = false;
            AddItem(helm);
            Surcoat surcoat = new Surcoat();
            surcoat.Hue = m_Town.Hue;
            surcoat.Movable = false;
            AddItem(surcoat);


            AddItem(new PomiCloak(m_Town, "Garde"));

            HairItemID = Utility.RandomList(0x203B, 0x203C, 0x203D, 0x2044, 0x2045, 0x2047, 0x2049, 0x204A);
            HairHue = Utility.RandomHairHue();

            if (Utility.RandomBool())
            {
                FacialHairItemID = Utility.RandomList(0x203E, 0x203F, 0x2040, 0x2041, 0x204B, 0x204C, 0x204D);
                FacialHairHue = HairHue;
            }

            Halberd weapon = new Halberd();
            //weapon.Hue = m_Town.Hue;
            weapon.Movable = false;
            weapon.Crafter = this;
            weapon.Quality = WeaponQuality.Exceptional;
            VirtualArmor = 100;

            AddItem(weapon);

            Skills[SkillName.Anatomy].Base = 100.0;
            Skills[SkillName.Tactics].Base = 110.0;
            Skills[SkillName.Swords].Base = 160.0;
            Skills[SkillName.MagicResist].Base = 110.0;
            Skills[SkillName.DetectHidden].Base = 100.0;
        }
Beispiel #20
0
        public VivreGuard(String townName)
            : base(AIType.AI_VivreGuard, FightMode.Closest, 18, 1, 0.12, 1) // 0.15 echapable à pied, 0.05 = très rapide
        {
            m_TownName = townName;
            InitStats(200, 200, 200);
            SpeechHue = Utility.RandomDyedHue();
            Hue = Utility.RandomSkinHue();
            Body = 0x190;
            Name = NameList.RandomName("male");
            Title = ", Garde de " + m_TownName;
            Karma = 12000;

            PlateChest chest = new PlateChest();
            chest.Hue = 0;
            chest.Resource = CraftResource.MBronze;
            chest.Movable = false;
            AddItem(chest);
            PlateArms arms = new PlateArms();
            arms.Hue = 0;
            arms.Movable = false;
            arms.Resource = CraftResource.MBronze;
            AddItem(arms);
            PlateGloves gloves = new PlateGloves();
            gloves.Hue = 0;
            gloves.Movable = false;
            gloves.Resource = CraftResource.MBronze;
            AddItem(gloves);
            PlateGorget gorget = new PlateGorget();
            gorget.Hue = 0;
            gorget.Movable = false;
            gorget.Resource = CraftResource.MBronze;
            AddItem(gorget);
            PlateLegs legs = new PlateLegs();
            legs.Hue = 0;
            legs.Movable = false;
            legs.Resource = CraftResource.MBronze;
            AddItem(legs);
            NorseHelm helm = new NorseHelm();
            helm.Hue = 0;
            helm.Movable = false;
            helm.Resource = CraftResource.MBronze;
            AddItem(helm);
            Surcoat surcoat = new Surcoat();
            surcoat.Hue = 0;
            surcoat.Movable = false;
            AddItem(surcoat);
            Cloak cloak = new Cloak();
            cloak.Hue = TownHue;
            cloak.Movable = false;
            AddItem(cloak);


            HairItemID = Utility.RandomList(0x203B, 0x203C, 0x203D, 0x2044, 0x2045, 0x2047, 0x2049, 0x204A);
            HairHue = Utility.RandomHairHue();

            if (Utility.RandomBool())
            {
                FacialHairItemID = Utility.RandomList(0x203E, 0x203F, 0x2040, 0x2041, 0x204B, 0x204C, 0x204D);
                FacialHairHue = HairHue;
            }

            Halberd weapon = new Halberd();
            weapon.Movable = false;
            weapon.Crafter = this;
            weapon.Quality = WeaponQuality.Exceptional;
            VirtualArmor = 100;

            AddItem(weapon);

            Skills[SkillName.Anatomy].Base = 100.0;
            Skills[SkillName.Tactics].Base = 110.0;
            Skills[SkillName.Swords].Base = 160.0;
            Skills[SkillName.MagicResist].Base = 110.0;
            Skills[SkillName.DetectHidden].Base = 100.0;
        }
Beispiel #21
0
        public WarriorGuard(Mobile target) : base(target)
        {
            InitStats(1000, 1000, 1000);

            SpeechHue = 0;

            Hue = Utility.RandomSkinHue();

            #region Armor
            for (int i = 0; i < m_GuardArmor.Length; ++i)
            {
                m_GuardArmor[i].Resource = GuardTheme;
                AddItem(m_GuardArmor[i]);
                m_GuardArmor[i].Movable = false;
            }
            #endregion

            #region Cloth
            BaseClothing bC = null;

            switch (Utility.Random(3))
            {
                case 0:
                    bC = new Doublet();
                    break;
                case 1:
                    bC = new Tunic();
                    break;
                case 2:
                    bC = new BodySash();
                    bC.Layer = Layer.Earrings;
                    break;
            }

            if (bC != null)
            {
                bC.Resource = GuardTheme;
                AddItem(bC);
                bC.Movable = false;
            }
            #endregion

            #region Male/Female
            if (Female = Utility.RandomBool())
            {
                Body = 0x191;
                if (string.IsNullOrEmpty(Name))
                {
                    Name = NameList.RandomName("female");
                    Title = "the guard";
                }

                FemalePlateChest ar = new FemalePlateChest();
                ar.Resource = GuardTheme;
                AddItem(ar);
                ar.Movable = false;
            }
            else
            {
                Body = 0x190;
                if (string.IsNullOrEmpty(Name))
                {
                    Name = NameList.RandomName("male");
                    Title = "the guard";
                }

                PlateChest ar = new PlateChest();
                ar.Resource = GuardTheme;
                AddItem(ar);
                ar.Movable = false;
            }
            #endregion

            Utility.AssignRandomHair(this);

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

            #region Weapon
            BaseWeapon weapon;

            switch(Utility.Random(2))
            {
                case 1: weapon = new Halberd(); break;
                case 2:
                    weapon = new Longsword();
                    BaseShield shield = new OrderShield();
                    shield.Resource = GuardTheme;
                    AddItem(shield);
                    shield.Movable = false;
                    break;
                default:
                    weapon = new Halberd(); break;
            }

            weapon.Crafter = this;
            weapon.Resource = GuardTheme;
            weapon.Quality = WeaponQuality.Exceptional;
            weapon.Speed = 300;
            weapon.MinDamage = 10000;
            weapon.MaxDamage = 10000;
            AddItem(weapon);
            weapon.Movable = false;
            #endregion

            Container pack = new Backpack();
            pack.Movable = false;
            pack.DropItem(new Gold(10, 25));
            AddItem(pack);

            Skills[SkillName.Anatomy].Base = 120.0;
            Skills[SkillName.Tactics].Base = 125.0;
            Skills[SkillName.Swords].Base = 100.0;
            Skills[SkillName.MagicResist].Base = 120.0;
            Skills[SkillName.DetectHidden].Base = 100.0;

            //if (Utility.RandomDouble() <= 0.1)
            //    new Horse().Rider = this;

            NextCombatTime = DateTime.Now + TimeSpan.FromSeconds(1.10);
            Focus = target;
        }
Beispiel #22
0
        public TownGuard()
            : base(AIType.AI_Melee, FightMode.Closest, 15, 1, 0.175, 0.2)
        {
            Title = "the guard";
            Body = 400;
                    Hue = Utility.RandomSkinHue();
            SpeechHue=1153;
            this.Body = 0x190;
            this.Name = NameList.RandomName( "male" );
                    SetStr( 150 );
            SetDex( 100 );
            SetInt( 25 );

            SetSkill( SkillName.MagicResist, 200.0 );
            SetSkill( SkillName.Tactics, 100.0 );
            SetSkill( SkillName.Healing, 100.0 );
            SetSkill( SkillName.Anatomy, 100.0 );
            SetSkill( SkillName.Swords, 100.0 );
            SetSkill( SkillName.Lumberjacking, 100.0 );
            SetSkill( SkillName.Healing, 100.0 );

            Fame = 2500;
            Karma = 5000;

            VirtualArmor = 30;

            Item hair = new Item( Utility.RandomList( 0x203B, 0x2049, 0x2048, 0x204A ) );
            hair.Hue = Utility.RandomHairHue();
            hair.Layer = Layer.Hair;
            hair.Movable = false;
            AddItem( hair );

            switch ( Utility.Random( 50 ) )
            {
                case 0:
                {
                    Item beard = new Item( Utility.RandomList( 0x2040, 0x204B, 0x203F, 0x2041 ) );
                    beard.Hue = hair.Hue;
                    beard.Layer = Layer.FacialHair;
                    beard.Movable = false;
                    AddItem( beard );
                    break;
                }
            }

            PackGold( 0 );
            switch ( Utility.Random( 35 ) )
            {
                case 0:
                {
                    Item helm = new PlateHelm();
                    EquipItem( helm );
                    break;
                }
            }
            switch ( Utility.Random( 35 ) )
            {
                case 0:
                {
                    Item gloves = new PlateGloves();
                    EquipItem( gloves );
                    break;
                }
            }
            Item platechest = new PlateChest();
            EquipItem( platechest );
            Item platearms = new PlateArms();
            EquipItem( platearms );
            Item platelegs = new PlateLegs();
            EquipItem( platelegs );
            Item plategorget = new PlateGorget();
            EquipItem( plategorget );
            Halberd halberd = new Halberd();
            halberd.Movable = false;
            halberd.MinDamage = 40;
            halberd.MaxDamage = 45;
            EquipItem( halberd );
            PackItem( new Halberd() );
            PackItem( new Bandage( 100 ) );
        }
		public NewGuard(Mobile target) : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.05, 0.2 )
		{
			if ( Female = Utility.RandomBool() )
			{
				Body = 0x191;
				Name = NameList.RandomName( "female" );
			}
			else
			{
				Body = 0x190;
				Name = NameList.RandomName( "male" );
			}

			Title = "the guard";

			m_Target = target;
			TimeSpan duration = TimeSpan.FromMinutes(5);
			m_ExpireTime = DateTime.Now + duration;

			SetStr( 200 );
			SetDex( 150 );
			SetInt( 150 );

			SetDamage( 10, 17 );

			// Bestiary says 50 phys 50 cold, animal lore says differently
			SetDamageType( ResistanceType.Physical, 65 );

			SetSkill( SkillName.MagicResist, 100.0 ); // magic resist is absolute value of spiritspeak
			SetSkill( SkillName.Tactics, 120.0 ); // always 100
			SetSkill( SkillName.Swords, 120.0); // not displayed in animal lore but tests clearly show this is influenced
			SetSkill( SkillName.DetectHidden, 100);


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

			Fame = 0;
			Karma = 0;

			VirtualArmor = 32;

			Item shroud = new DeathShroud();

			shroud.Hue = 0x455;

			shroud.Movable = false;

			AddItem( shroud );

			Halberd weapon = new Halberd();

			weapon.Hue = 1;
			weapon.Movable = false;
			weapon.Attributes.SpellChanneling = 1;

			AddItem( weapon );
		}
Beispiel #24
0
		public BaseGuard( Mobile target ) : base( AIType.AI_Melee, FightMode.Aggressor, 20, 10, 0.5, 0.25 )
		{
			if ( target != null )
			{
				int newX = Utility.RandomBool() ? target.X + Utility.Random(5) : target.X - Utility.Random(5);
				int newY = Utility.RandomBool() ? target.Y + Utility.Random(5) : target.Y - Utility.Random(5);
				Location = new Point3D( newX, newY, target.Z );
				// Location = target.Location;
				Map = target.Map;

				Effects.SendLocationParticles( EffectItem.Create( Location, Map, EffectItem.DefaultDuration ), 0x3728, 10, 10, 5023 );
			}

			InitStats( 250, 250, 250 );
			Title = "the guard";
			BardImmune = true;

			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() );

				switch( Utility.Random( 3 ) )
				{
					case 0: AddItem( new Doublet( Utility.RandomNondyedHue() ) ); break;
					case 1: AddItem( new Tunic( Utility.RandomNondyedHue() ) ); break;
					case 2: AddItem( new BodySash( Utility.RandomNondyedHue() ) ); break;
				}
			}

			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 );
			}

			Halberd weapon = new Halberd();

			weapon.Movable = false;
			weapon.Crafter = null;
			weapon.Quality = WeaponQuality.Exceptional;
			weapon.Slayer = SlayerName.Silver;
			weapon.Identified = true;
			weapon.Name = "Property of Britain Armory";

			AddItem( weapon );

			Container pack = new Backpack();

			pack.Movable = false;

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

			AddItem( pack );

			Skills[SkillName.Anatomy].Base = 120.0;
			Skills[SkillName.Tactics].Base = 120.0;
			Skills[SkillName.Swords].Base = 120.0;
			Skills[SkillName.MagicResist].Base = 120.0;
			Skills[SkillName.DetectHidden].Base = 100.0; 

			SetDamage( 20, 25 );

			this.NextCombatTime = DateTime.Now + TimeSpan.FromSeconds( 0.5 );
			this.Focus = target;

		}
		public WarriorGuard( Mobile target ) : base( target )
		{
			InitStats( 1000, 1000, 1000 );
			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 PlateLegs() );

				switch( Utility.Random( 3 ) )
				{
					case 0: AddItem( new Doublet( Utility.RandomNondyedHue() ) ); break;
					case 1: AddItem( new Tunic( Utility.RandomNondyedHue() ) ); break;
					case 2: AddItem( new BodySash( Utility.RandomNondyedHue() ) ); break;
				}
			}
			Utility.AssignRandomHair( this );

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

			Halberd weapon = new Halberd();

			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 );

			Skills[SkillName.Anatomy].Base = 120.0;
			Skills[SkillName.Tactics].Base = 120.0;
			Skills[SkillName.Swords].Base = 120.0;
			Skills[SkillName.MagicResist].Base = 120.0;
			Skills[SkillName.DetectHidden].Base = 100.0;

			this.NextCombatTime = DateTime.Now + TimeSpan.FromSeconds( 0.5 );
			this.Focus = target;
		}
Beispiel #26
0
        private void AddItems(Container pack)
        {
            pack.DropItem(new BagOfReagents());
            pack.DropItem(new Spellbook(ulong.MaxValue));

            BaseWeapon weaps = new Halberd();
            weaps.Quality = WeaponQuality.Exceptional;
            pack.DropItem(weaps);

            weaps = new Katana();
            weaps.Quality = WeaponQuality.Exceptional;
            pack.DropItem(weaps);

            weaps = new ShortSpear();
            weaps.Quality = WeaponQuality.Exceptional;
            pack.DropItem(weaps);

            weaps = new WarMace();
            weaps.Quality = WeaponQuality.Exceptional;
            pack.DropItem(weaps);

            pack.DropItem(new GreaterPoisonPotion());
            pack.DropItem(new GreaterPoisonPotion());

            pack.DropItem(new GreaterHealPotion());
            pack.DropItem(new GreaterHealPotion());
            pack.DropItem(new GreaterHealPotion());
            pack.DropItem(new GreaterHealPotion());

            pack.DropItem(new GreaterCurePotion());
            pack.DropItem(new GreaterCurePotion());
            pack.DropItem(new GreaterCurePotion());

            pack.DropItem(new TotalRefreshPotion());
            pack.DropItem(new TotalRefreshPotion());

            pack.DropItem(new GreaterExplosionPotion());
            pack.DropItem(new GreaterExplosionPotion());
            pack.DropItem(new GreaterExplosionPotion());

            pack.DropItem(new Bandage(20));

            for(int i = 0; i < 3; i++)
            {
                TrapableContainer cont = new Pouch();
                cont.TrapType = TrapType.MagicTrap;
                cont.TrapPower = 1;
                cont.TrapLevel = 0;
                pack.DropItem(cont);
            }
        }
        private static void AddThemeLoot(LockableContainer cont, int level, ChestThemeType type)
        {
            MonsterStatuette mx = null;

            //switch to add in theme treasures
            switch (type)
            {
            case ChestThemeType.Solen:
            {
                //drop are special weapon
                QuarterStaff special = new QuarterStaff();
                special.Name = "Chitanous Staff";
                cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true));

                //go into dropping normal loot

                int onlyonedrop = Utility.RandomMinMax(0, 1);

                if (onlyonedrop == 0)
                {
                    cont.DropItem(new Seed(PlantType.Hedge, 0, false));                                       //new solen seed
                }
                if (onlyonedrop == 1)
                {
                    cont.DropItem(new WaterBucket());                        //new waterbucket
                }
                if (Utility.RandomDouble() <= 0.30)                          //30% chance to drop a statue
                {
                    int whichone = Utility.RandomMinMax(0, 1);
                    if (whichone == 0)
                    {
                        mx = new MonsterStatuette(m_Monster[0]);
                    }
                    if (whichone == 1)
                    {
                        mx = new MonsterStatuette(m_Monster[1]);
                    }
                    mx.LootType = LootType.Regular;                                     // not blessed
                    cont.DropItem(mx);                                                  // drop it baby!
                }
                break;
            }

            case ChestThemeType.Brigand:
            {
                //drop are special weapon
                Katana special = new Katana();
                special.Name = "Bandit's Blade";
                cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true));

                int onlyonedrop = Utility.RandomMinMax(0, 1);

                if (onlyonedrop == 0)
                {
                    cont.DropItem(new Brazier(true));                                         //new movable brazier
                }
                if (onlyonedrop == 1)
                {
                    cont.DropItem(new DecorativeBow(Utility.RandomMinMax(0, 3)));                                        //random decorative bow type
                }
                for (int i = 0; i < level * 5; ++i)
                {
                    cont.DropItem(new PowderOfTranslocation());                                //drop powder of translocation
                }

                if (Utility.RandomDouble() <= 0.30)                          //30% chance to drop a statue
                {
                    int whichone = Utility.RandomMinMax(0, 1);
                    if (whichone == 0)
                    {
                        mx = new MonsterStatuette(m_Monster[2]);
                    }
                    if (whichone == 1)
                    {
                        mx = new MonsterStatuette(m_Monster[3]);
                    }
                    mx.LootType = LootType.Regular;                                     // not blessed
                    cont.DropItem(mx);                                                  // drop it baby!
                }
                break;
            }

            case ChestThemeType.Savage:
            {
                //drop are special weapon
                ShortSpear special = new ShortSpear();
                special.Name = "Ornate Ritual Spear";
                cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true));

                int rug         = Utility.RandomMinMax(0, 1);
                int onlyonedrop = Utility.RandomMinMax(0, 1);

                if (onlyonedrop == 0)
                {
                    cont.DropItem(new SkullPole());                                          //new skull pole
                }
                if (onlyonedrop == 1)
                {
                    if (rug == 0)
                    {
                        cont.DropItem(new BrownBearRugEastDeed());                                       //new rug east
                    }
                    if (rug == 1)
                    {
                        cont.DropItem(new BrownBearRugSouthDeed());                                       //new rug south
                    }
                }

                if (Utility.RandomDouble() <= .30)                          //30% chance to drop a statue
                {
                    int whichone = Utility.RandomMinMax(0, 1);
                    if (whichone == 0)
                    {
                        mx = new MonsterStatuette(m_Monster[4]);
                    }
                    if (whichone == 1)
                    {
                        mx = new MonsterStatuette(m_Monster[5]);
                    }
                    mx.LootType = LootType.Regular;                                             // not blessed
                    cont.DropItem(mx);                                                          // drop it baby!
                }
                break;
            }

            case ChestThemeType.Undead:
            {
                Halberd special = new Halberd();
                special.Name = "Soul Reaver";
                cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true));

                int onlyonedrop = Utility.RandomMinMax(0, 1);
                if (onlyonedrop == 0)
                {
                    cont.DropItem(new BoneContainer(Utility.RandomMinMax(0, 2))); //new bone container 3 differnt types 0-2
                }
                int stone = Utility.RandomMinMax(0, 3);                           // get random gravestone type to drop

                if (onlyonedrop == 1)
                {
                    if (stone == 0)
                    {
                        cont.DropItem(new GraveStone1());
                    }
                    if (stone == 1)
                    {
                        cont.DropItem(new GraveStone2());
                    }
                    if (stone == 2)
                    {
                        cont.DropItem(new GraveStone3());
                    }
                    if (stone == 3)
                    {
                        cont.DropItem(new GraveStone4());
                    }
                }

                for (int i = 0; i < level * 5; ++i)
                {
                    cont.DropItem(new Moonstone());                             //drop moonstones
                }

                if (Utility.RandomDouble() <= 0.30)                          //30% chance to drop a statue
                {
                    int whichone = Utility.RandomMinMax(0, 1);
                    if (whichone == 0)
                    {
                        mx = new MonsterStatuette(m_Monster[6]);
                    }
                    if (whichone == 1)
                    {
                        mx = new MonsterStatuette(m_Monster[7]);
                    }
                    mx.LootType = LootType.Regular;                                             // not blessed
                    cont.DropItem(mx);                                                          // drop it baby!
                }
                break;
            }

            case ChestThemeType.Pirate:
            {
                Bow special = new Bow();
                special.Name = "Bow of the Buccaneer";
                cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true));

                int       onlyonedrop = Utility.RandomMinMax(0, 1);
                PirateHat hat         = new PirateHat();
                hat.Hue = 0x1;
                int oars = Utility.RandomMinMax(0, 1);                        //2 oar types

                if (onlyonedrop == 0)
                {
                    if (oars == 0)
                    {
                        cont.DropItem(new Oars1());
                    }
                    if (oars == 1)
                    {
                        cont.DropItem(new Oars2());
                    }
                }

                if (onlyonedrop == 1)
                {
                    cont.DropItem(new GenieBottle(false));                                           //lamp currently disabled genie not done
                }
                if (Utility.RandomDouble() <= 0.50)
                {
                    cont.DropItem(hat);                                      // 50% chance at black piratehat
                }
                if (Utility.RandomDouble() <= 0.30)                          //30% chance to drop a statue
                {
                    int whichone = Utility.RandomMinMax(0, 1);
                    if (whichone == 0)
                    {
                        mx = new MonsterStatuette(m_Monster[8]);
                    }
                    if (whichone == 1)
                    {
                        mx = new MonsterStatuette(m_Monster[9]);
                    }
                    mx.LootType = LootType.Regular;                                                             // not blessed
                    cont.DropItem(mx);                                                                          // drop it baby!
                }
                break;
            }

            case ChestThemeType.Dragon:
            {
                WarFork special = new WarFork();
                special.Name = "Claw of the Dragon";
                cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true));

                int onlyonedrop = Utility.RandomMinMax(0, 1);
                //new dragonhead trophydeed type
                if (onlyonedrop == 0)
                {
                    cont.DropItem(new TrophyDeed(8757, 8756, "a dragon head trophy", "a dragon head trophy", 10));
                }
                int armor = Utility.RandomMinMax(0, 2);                        // drop 1 piece of dragonarmor

                if (onlyonedrop == 1)
                {
                    if (armor == 0)
                    {
                        cont.DropItem(new HangingDragonChest());
                    }
                    if (armor == 1)
                    {
                        cont.DropItem(new HangingDragonLegs());
                    }
                    if (armor == 2)
                    {
                        cont.DropItem(new HangingDragonArms());
                    }
                }

                if (Utility.RandomDouble() <= 0.30)                          //30% chance to drop a statue
                {
                    int whichone = Utility.RandomMinMax(0, 1);
                    if (whichone == 0)
                    {
                        mx = new MonsterStatuette(m_Monster[10]);
                    }
                    if (whichone == 1)
                    {
                        mx = new MonsterStatuette(m_Monster[11]);
                    }
                    mx.LootType = LootType.Regular;                                             // not blessed
                    cont.DropItem(mx);                                                          // drop it baby!
                }
                break;
            }

            case ChestThemeType.Lizardmen:
            {
                if (Utility.RandomBool())
                {
                    cont.DropItem(new LizardmansStaff());
                }
                else
                {
                    cont.DropItem(new LizardmansMace());
                }
            }
            break;

            case ChestThemeType.Ettin:
            {
                cont.DropItem(new EttinHammer());
            }
            break;

            case ChestThemeType.Ogre:
            {
                cont.DropItem(new OgresClub());
            }
            break;

            case ChestThemeType.Ophidian:
            {
                cont.DropItem(new OphidianBardiche());
            }
            break;

            case ChestThemeType.Skeleton:
            {
                switch (Utility.Random(3))
                {
                case 0: cont.DropItem(new SkeletonScimitar()); break;

                case 1: cont.DropItem(new SkeletonAxe()); break;

                case 2: cont.DropItem(new BoneMageStaff()); break;
                }
            }
            break;

            case ChestThemeType.Ratmen:
            {
                if (Utility.RandomBool())
                {
                    cont.DropItem(new RatmanSword());
                }
                else
                {
                    cont.DropItem(new RatmanAxe());
                }
            }
            break;

            case ChestThemeType.Orc:
            {
                switch (Utility.Random(3))
                {
                case 0: cont.DropItem(new OrcClub()); break;

                case 1: cont.DropItem(new OrcMageStaff()); break;

                case 2: cont.DropItem(new OrcLordBattleaxe()); break;
                }
            }
            break;

            case ChestThemeType.Terathan:
            {
                switch (Utility.Random(3))
                {
                case 0: cont.DropItem(new TerathanStaff()); break;

                case 1: cont.DropItem(new TerathanSpear()); break;

                case 2: cont.DropItem(new TerathanMace()); break;
                }
            }
            break;

            case ChestThemeType.FrostTroll:
            {
                switch (Utility.Random(3))
                {
                case 0: cont.DropItem(new FrostTrollClub()); break;

                case 1: cont.DropItem(new TrollAxe()); break;

                case 2: cont.DropItem(new TrollMaul()); break;
                }
            }
            break;
            }            //end switch
        }
Beispiel #28
0
        protected override void OnTarget(Mobile from, object targeted)
        {
            if (!(targeted is BaseAttackPiece))
                return;

            m_Blade = targeted as BaseAttackPiece;

            if (m_Blade is AxeHead)
            {
                Halberd weapon = new Halberd();
                weapon.NewCrafting = true;
                weapon.QualityDamage = m_Hilt.GetDamageBonus() / 2 + m_Blade.Damage;
                weapon.QualitySpeed = m_Hilt.GetSpeedBonus() / 2 + m_Blade.Speed;
                weapon.QualityAccuracy = m_Hilt.GetHitChanceBonus() / 2 + m_Blade.Attack;
                weapon.QualityDefense = m_Hilt.GetHitChanceBonus() / 2 + m_Blade.Defense;
                weapon.Resource = m_Blade.Resource;
                int quality = (int)(m_Blade.Durability * 0.15 + m_Hilt.MaxHitPoints * 0.85);
                weapon.MaxHitPoints = quality; weapon.HitPoints = quality;
                weapon.Crafter = from;
                weapon.CraftersOriginalName = from.Name;
                quality = (int)(m_Blade.Quality * 0.85 + ((int)m_Hilt.Quality * 50) * 0.15);
                if (quality == 500)
                    weapon.Quality = WeaponQuality.Legendary;
                if (quality < 500)
                    weapon.Quality = WeaponQuality.Masterwork;
                if (quality < 450)
                    weapon.Quality = WeaponQuality.Illustrious;
                if (quality < 400)
                    weapon.Quality = WeaponQuality.Extraordinary;
                if (quality < 350)
                    weapon.Quality = WeaponQuality.Remarkable;
                if (quality < 300)
                    weapon.Quality = WeaponQuality.Exceptional;
                if (quality < 250)
                    weapon.Quality = WeaponQuality.Superior;
                if (quality < 200)
                    weapon.Quality = WeaponQuality.Regular;
                if (quality < 150)
                    weapon.Quality = WeaponQuality.Inferior;
                if (quality < 100)
                    weapon.Quality = WeaponQuality.Low;
                if (quality < 50)
                    weapon.Quality = WeaponQuality.Poor;
                weapon.BetaNerf = true;
                weapon.InvalidateProperties();
                from.AddToBackpack(weapon);
                weapon.AddItem(m_Blade);
                weapon.AddItem(m_Hilt);
            }

            if (m_Blade is CurvedBlade)
                from.Prompt = new StaffCurvedBladePrompt(from, m_Hilt, (CurvedBlade)m_Blade);
            if (m_Blade is HammerHead && (((PlayerMobile)from).Nation == Nation.Khemetar || ((PlayerMobile)from).Nation == Nation.Mhordul))
            {
                if (((PlayerMobile)from).Nation == Nation.Khemetar)
                {
                    PriestStaff weapon = new PriestStaff();
                    weapon.NewCrafting = true;
                    weapon.QualityDamage = m_Hilt.GetDamageBonus() / 2 + m_Blade.Damage;
                    weapon.QualitySpeed = m_Hilt.GetSpeedBonus() / 2 + m_Blade.Speed;
                    weapon.QualityAccuracy = m_Hilt.GetHitChanceBonus() / 2 + m_Blade.Attack;
                    weapon.QualityDefense = m_Hilt.GetHitChanceBonus() / 2 + m_Blade.Defense;
                    weapon.Resource = m_Hilt.Resource;
                    int quality = (int)(m_Blade.Durability * 0.2 + m_Hilt.MaxHitPoints * 0.8);
                    weapon.MaxHitPoints = quality; weapon.HitPoints = quality;
                    weapon.Crafter = from;
                    weapon.CraftersOriginalName = from.Name;
                    quality = (int)(m_Blade.Quality * 0.2 + ((int)m_Hilt.Quality * 50) * 0.8);
                    if (quality == 500)
                        weapon.Quality = WeaponQuality.Legendary;
                    if (quality < 500)
                        weapon.Quality = WeaponQuality.Masterwork;
                    if (quality < 450)
                        weapon.Quality = WeaponQuality.Illustrious;
                    if (quality < 400)
                        weapon.Quality = WeaponQuality.Extraordinary;
                    if (quality < 350)
                        weapon.Quality = WeaponQuality.Remarkable;
                    if (quality < 300)
                        weapon.Quality = WeaponQuality.Exceptional;
                    if (quality < 250)
                        weapon.Quality = WeaponQuality.Superior;
                    if (quality < 200)
                        weapon.Quality = WeaponQuality.Regular;
                    if (quality < 150)
                        weapon.Quality = WeaponQuality.Inferior;
                    if (quality < 100)
                        weapon.Quality = WeaponQuality.Low;
                    if (quality < 50)
                        weapon.Quality = WeaponQuality.Poor;
                    weapon.BetaNerf = true;
                    weapon.InvalidateProperties();
                    from.AddToBackpack(weapon);
                    weapon.AddItem(m_Blade);
                    weapon.AddItem(m_Hilt);
                }
                else
                {
                    ShamanStaff weapon = new ShamanStaff();
                    weapon.NewCrafting = true;
                    weapon.QualityDamage = m_Hilt.GetDamageBonus() / 2 + m_Blade.Damage;
                    weapon.QualitySpeed = m_Hilt.GetSpeedBonus() / 2 + m_Blade.Speed;
                    weapon.QualityAccuracy = m_Hilt.GetHitChanceBonus() / 2 + m_Blade.Attack;
                    weapon.QualityDefense = m_Hilt.GetHitChanceBonus() / 2 + m_Blade.Defense;
                    weapon.Resource = m_Hilt.Resource;
                    int quality = (int)(m_Blade.Durability * 0.2 + m_Hilt.MaxHitPoints * 0.8);
                    weapon.MaxHitPoints = quality; weapon.HitPoints = quality;
                    weapon.Crafter = from;
                    weapon.CraftersOriginalName = from.Name;
                    quality = (int)(m_Blade.Quality * 0.2 + ((int)m_Hilt.Quality * 50) * 0.8);
                    if (quality == 500)
                        weapon.Quality = WeaponQuality.Legendary;
                    if (quality < 500)
                        weapon.Quality = WeaponQuality.Masterwork;
                    if (quality < 450)
                        weapon.Quality = WeaponQuality.Illustrious;
                    if (quality < 400)
                        weapon.Quality = WeaponQuality.Extraordinary;
                    if (quality < 350)
                        weapon.Quality = WeaponQuality.Remarkable;
                    if (quality < 300)
                        weapon.Quality = WeaponQuality.Exceptional;
                    if (quality < 250)
                        weapon.Quality = WeaponQuality.Superior;
                    if (quality < 200)
                        weapon.Quality = WeaponQuality.Regular;
                    if (quality < 150)
                        weapon.Quality = WeaponQuality.Inferior;
                    if (quality < 100)
                        weapon.Quality = WeaponQuality.Low;
                    if (quality < 50)
                        weapon.Quality = WeaponQuality.Poor;
                    weapon.BetaNerf = true;
                    weapon.InvalidateProperties();
                    from.AddToBackpack(weapon);
                    weapon.AddItem(m_Blade);
                    weapon.AddItem(m_Hilt);
                }
            }

            if (m_Blade is LongBlade && ((PlayerMobile)from).Nation == Nation.Azhuran)
            {
                AzhuranBladedStaff weapon = new AzhuranBladedStaff();
                weapon.NewCrafting = true;
                weapon.QualityDamage = m_Hilt.GetDamageBonus() / 2 + m_Blade.Damage;
                weapon.QualitySpeed = m_Hilt.GetSpeedBonus() / 2 + m_Blade.Speed;
                weapon.QualityAccuracy = m_Hilt.GetHitChanceBonus() / 2 + m_Blade.Attack;
                weapon.QualityDefense = m_Hilt.GetHitChanceBonus() / 2 + m_Blade.Defense;
                weapon.Resource = m_Blade.Resource;
                int quality = (int)(m_Blade.Durability * 0.4 + m_Hilt.MaxHitPoints * 0.6);
                weapon.MaxHitPoints = quality; weapon.HitPoints = quality;
                weapon.Crafter = from;
                weapon.CraftersOriginalName = from.Name;
                quality = (int)(m_Blade.Quality * 0.6 + ((int)m_Hilt.Quality * 50) * 0.4);
                if (quality == 500)
                    weapon.Quality = WeaponQuality.Legendary;
                if (quality < 500)
                    weapon.Quality = WeaponQuality.Masterwork;
                if (quality < 450)
                    weapon.Quality = WeaponQuality.Illustrious;
                if (quality < 400)
                    weapon.Quality = WeaponQuality.Extraordinary;
                if (quality < 350)
                    weapon.Quality = WeaponQuality.Remarkable;
                if (quality < 300)
                    weapon.Quality = WeaponQuality.Exceptional;
                if (quality < 250)
                    weapon.Quality = WeaponQuality.Superior;
                if (quality < 200)
                    weapon.Quality = WeaponQuality.Regular;
                if (quality < 150)
                    weapon.Quality = WeaponQuality.Inferior;
                if (quality < 100)
                    weapon.Quality = WeaponQuality.Low;
                if (quality < 50)
                    weapon.Quality = WeaponQuality.Poor;
                weapon.BetaNerf = true;
                weapon.InvalidateProperties();
                from.AddToBackpack(weapon);
                weapon.AddItem(m_Blade);
                weapon.AddItem(m_Hilt);
            }

            if (m_Blade is MediumBlade && ((PlayerMobile)from).Nation == Nation.Azhuran)
            {
                AzhuranSpear weapon = new AzhuranSpear();
                weapon.NewCrafting = true;
                weapon.QualityDamage = m_Hilt.GetDamageBonus() / 2 + m_Blade.Damage;
                weapon.QualitySpeed = m_Hilt.GetSpeedBonus() / 2 + m_Blade.Speed;
                weapon.QualityAccuracy = m_Hilt.GetHitChanceBonus() / 2 + m_Blade.Attack;
                weapon.QualityDefense = m_Hilt.GetHitChanceBonus() / 2 + m_Blade.Defense;
                weapon.Resource = m_Blade.Resource;
                int quality = (int)(m_Blade.Durability * 0.4 + m_Hilt.MaxHitPoints * 0.6);
                weapon.MaxHitPoints = quality; weapon.HitPoints = quality;
                weapon.Crafter = from;
                weapon.CraftersOriginalName = from.Name;
                quality = (int)(m_Blade.Quality * 0.6 + ((int)m_Hilt.Quality * 50) * 0.4);
                if (quality == 500)
                    weapon.Quality = WeaponQuality.Legendary;
                if (quality < 500)
                    weapon.Quality = WeaponQuality.Masterwork;
                if (quality < 450)
                    weapon.Quality = WeaponQuality.Illustrious;
                if (quality < 400)
                    weapon.Quality = WeaponQuality.Extraordinary;
                if (quality < 350)
                    weapon.Quality = WeaponQuality.Remarkable;
                if (quality < 300)
                    weapon.Quality = WeaponQuality.Exceptional;
                if (quality < 250)
                    weapon.Quality = WeaponQuality.Superior;
                if (quality < 200)
                    weapon.Quality = WeaponQuality.Regular;
                if (quality < 150)
                    weapon.Quality = WeaponQuality.Inferior;
                if (quality < 100)
                    weapon.Quality = WeaponQuality.Low;
                if (quality < 50)
                    weapon.Quality = WeaponQuality.Poor;
                weapon.BetaNerf = true;
                weapon.InvalidateProperties();
                from.AddToBackpack(weapon);
                weapon.AddItem(m_Blade);
                weapon.AddItem(m_Hilt);
            }

            if (m_Blade is ShortBlade)
                from.Prompt = new StaffShortBladePrompt(from, m_Hilt, (ShortBlade)m_Blade);

            if (m_Blade is MaceHead && ((IKhaerosMobile)from).Feats.GetFeatLevel(FeatList.Bone) > 2 && from.Backpack.ConsumeTotal(typeof(Bone), 10) )
            {
                MhordulBoneStaff weapon = new MhordulBoneStaff();
                weapon.NewCrafting = true;
                weapon.QualityDamage = m_Hilt.GetDamageBonus() / 2 + m_Blade.Damage;
                weapon.QualitySpeed = m_Hilt.GetSpeedBonus() / 2 + m_Blade.Speed;
                weapon.QualityAccuracy = m_Hilt.GetHitChanceBonus() / 2 + m_Blade.Attack;
                weapon.QualityDefense = m_Hilt.GetHitChanceBonus() / 2 + m_Blade.Defense;
                weapon.Resource = m_Hilt.Resource;
                int quality = (int)(m_Blade.Durability * 0.25 + m_Hilt.MaxHitPoints * 0.75);
                weapon.MaxHitPoints = quality; weapon.HitPoints = quality;
                weapon.Crafter = from;
                weapon.CraftersOriginalName = from.Name;
                quality = (int)(m_Blade.Quality * 0.25 + ((int)m_Hilt.Quality * 50) * 0.75);
                if (quality == 500)
                    weapon.Quality = WeaponQuality.Legendary;
                if (quality < 500)
                    weapon.Quality = WeaponQuality.Masterwork;
                if (quality < 450)
                    weapon.Quality = WeaponQuality.Illustrious;
                if (quality < 400)
                    weapon.Quality = WeaponQuality.Extraordinary;
                if (quality < 350)
                    weapon.Quality = WeaponQuality.Remarkable;
                if (quality < 300)
                    weapon.Quality = WeaponQuality.Exceptional;
                if (quality < 250)
                    weapon.Quality = WeaponQuality.Superior;
                if (quality < 200)
                    weapon.Quality = WeaponQuality.Regular;
                if (quality < 150)
                    weapon.Quality = WeaponQuality.Inferior;
                if (quality < 100)
                    weapon.Quality = WeaponQuality.Low;
                if (quality < 50)
                    weapon.Quality = WeaponQuality.Poor;
                weapon.BetaNerf = true;
                weapon.InvalidateProperties();
                from.AddToBackpack(weapon);
                weapon.AddItem(m_Blade);
                weapon.AddItem(m_Hilt);
            }
        }
		public EvilNecroWarrior() : base( AIType.AI_Melee, FightMode.Weakest, 10, 1, 0.08, 0.2 )
		{
			InitStats( 110, 110, 110 );
			Name = "Necromatic Warrior";
			SpeechHue = Utility.RandomDyedHue();
			Kills = 5;
			RangePerception = 40;
			Body = 400;
			Hits = 850;
			Dex = 100;
			SetDamage( 25, 45 );
			VirtualArmor = 65;
			if ( Female = Utility.RandomBool() )
			{
				Body = 0x191;
			}
			else
			{
				Body = 0x190;

			}

			new SkeletalMount().Rider = this;

			Halberd halberd = new Halberd();
			halberd.Name = "Halberd of the Fallen Souls";
			halberd.Movable = false;
			halberd.Hue = 33;
			halberd.LootType = LootType.Blessed;
			AddItem( halberd );

			PackGold( 450, 550 );

			Skills[SkillName.Anatomy].Base = 130.0;
			Skills[SkillName.Tactics].Base = 100.0;
			Skills[SkillName.Swords].Base = 125.0;
			Skills[SkillName.MagicResist].Base = 120.0;
			Skills[SkillName.DetectHidden].Base = 100.0;
			Skills[SkillName.Poisoning].Base = 120;
			Skills[SkillName.Magery].Base = 120;


      			Item shroud = new HoodedShroudOfShadows();

       		        shroud.Name = "Shroud of the Fallen Souls";
         		shroud.Hue = 1157;
         		shroud.Movable = false;

         		AddItem( shroud );

			Item sandals = new Sandals();
			sandals.Name = "Sandals of the Fallen";
			sandals.Hue = 1;
			sandals.Movable = false;
			PackItem( new NecroCrystal( 1 ) );
			AddItem( sandals );

			Item llegs = new StuddedLegs();

			AddItem( llegs );

			Item larms = new StuddedArms();

			AddItem( larms );

			Item ltunic = new StuddedChest();

			AddItem( ltunic );

			Item lgloves = new StuddedGloves();

			AddItem( lgloves );

			Item lgorget = new StuddedGorget();

			AddItem( lgorget );


}
Beispiel #30
0
        public WarriorGuard(Mobile target)
            : base(target)
        {
            SpeechHue = Utility.RandomDyedHue();
            Hue = Utility.RandomSkinHue();
            Title = "the guard";

            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;
                }

                AddItem(new FemalePlateChest());
            }
            else
            {
                Body = 0x190;
                Name = NameList.RandomName("male");

                Item item = new Shirt();
                AddItem(item);
                item.Hue = Utility.RandomNondyedHue();

                item = new ShortPants();
                AddItem(item);
                item.Hue = Utility.RandomNondyedHue();

                item = new PlateChest();
                AddItem(item);

                item = new PlateLegs();
                AddItem(item);

                item = new PlateArms();
                AddItem(item);

                item = new Tunic();
                AddItem(item);
                item.Hue = Utility.RandomNondyedHue();
            }
            Utility.AssignRandomHair(this);

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

            Halberd weapon = new Halberd();

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

            AddItem(weapon);

            Container pack = new Backpack();

            pack.Movable = false;

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

            AddItem(pack);
        }
Beispiel #31
0
		public override void InitOutfit( Faction faction )
		{
			if ( Female )
			{
				if ( faction != null )
				{
					if ( Utility.RandomBool() )
					{
						AddItem( InitItem( new FemalePlateChest(), faction.Definition.HuePrimary ) );
						AddItem( InitItem( new PlateArms(), faction.Definition.HuePrimary ) );
						AddItem( InitItem( new PlateGloves(), faction.Definition.HuePrimary ) );
					}
					else
					{
						switch( Utility.Random( 4 ) )
						{
							case 0: AddItem( InitItem( new FemaleLeatherChest(), faction.Definition.HuePrimary ) ); break;
							case 1: AddItem( InitItem( new FemaleStuddedChest(), faction.Definition.HuePrimary ) ); break;
							case 2: AddItem( InitItem( new LeatherBustierArms(), faction.Definition.HuePrimary ) ); break;
							case 3: AddItem( InitItem( new StuddedBustierArms(), faction.Definition.HuePrimary ) ); break;
						}

						AddItem( InitItem( new LeatherGloves(), faction.Definition.HuePrimary ) );
					}

					AddItem( InitItem( new PlateLegs(), faction.Definition.HuePrimary ) );
					AddItem( InitItem( new BodySash(), faction.Definition.HueSecondary ) );
					AddItem( InitItem( new LeatherGorget(), faction.Definition.HueSecondary ) );
				}
				else
				{
					switch( Utility.Random( 2 ) )
					{
						case 0: AddItem( InitItem( new LeatherSkirt() ) ); break;
						case 1: AddItem( InitItem( new LeatherShorts() ) ); break;
					}

					switch( Utility.Random( 5 ) )
					{
						case 0: AddItem( InitItem( new FemaleLeatherChest() ) ); break;
						case 1: AddItem( InitItem( new FemaleStuddedChest() ) ); break;
						case 2: AddItem( InitItem( new LeatherBustierArms() ) ); break;
						case 3: AddItem( InitItem( new StuddedBustierArms() ) ); break;
						case 4: AddItem( InitItem( new FemalePlateChest() ) ); break;
					}

					if ( Utility.Random( 5 ) == 1 ) //20% chance
						AddItem( InitItem( new LeatherGloves() ) );
				}
			}
			else
			{
				if ( faction != null )
				{
					AddItem( InitItem( new PlateChest(), faction.Definition.HuePrimary ) );
					AddItem( InitItem( new PlateArms(), faction.Definition.HuePrimary ) );
					AddItem( InitItem( new PlateGloves(), faction.Definition.HuePrimary ) );

					AddItem( InitItem( new PlateLegs(), faction.Definition.HuePrimary ) );
					AddItem( InitItem( new LeatherGorget(), faction.Definition.HueSecondary ) );

					AddItem( InitItem( new BodySash(), faction.Definition.HueSecondary ) );
				}
				else
				{
					AddItem( InitItem( new PlateChest() ) );
					AddItem( InitItem( new PlateArms() ) );
					AddItem( InitItem( new PlateLegs() ) );

					switch( Utility.Random( 3 ) )
					{
						case 0: AddItem( InitItem( new Doublet( Utility.RandomNondyedHue() ) ) ); break;
						case 1: AddItem( InitItem( new Tunic( Utility.RandomNondyedHue() ) ) ); break;
						case 2: AddItem( InitItem( new BodySash( Utility.RandomNondyedHue() ) ) ); break;
					}
				}
			}

			Halberd weapon = new Halberd();
			InitItem( weapon, faction != null ? faction.Definition.HueSecondary : 0 );

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

			AddItem( weapon );
		}