public override Item Dupe( int amount )
		{
			Spellbook book = new BookOfBushido();

			book.Content = this.Content;

			return base.Dupe( book, amount );
		}
Exemple #2
0
        private static void SetSkills( Mobile m, SkillNameValue[] skills, int prof )
        {
            switch ( prof )
            {
                case 1: // Warrior
                {
                    skills = new SkillNameValue[]
                        {
                            new SkillNameValue( SkillName.Anatomy, 30 ),
                            new SkillNameValue( SkillName.Healing, 45 ),
                            new SkillNameValue( SkillName.Swords, 35 ),
                            new SkillNameValue( SkillName.Tactics, 50 )
                        };

                    break;
                }
                case 2: // Magician
                {
                    skills = new SkillNameValue[]
                        {
                            new SkillNameValue( SkillName.EvalInt, 30 ),
                            new SkillNameValue( SkillName.Wrestling, 30 ),
                            new SkillNameValue( SkillName.Magery, 50 ),
                            new SkillNameValue( SkillName.Meditation, 50 )
                        };

                    break;
                }
                case 3: // Blacksmith
                {
                    skills = new SkillNameValue[]
                        {
                            new SkillNameValue( SkillName.Mining, 30 ),
                            new SkillNameValue( SkillName.ArmsLore, 30 ),
                            new SkillNameValue( SkillName.Blacksmith, 50 ),
                            new SkillNameValue( SkillName.Tinkering, 50 )
                        };

                    break;
                }
                case 4: // Necromancer
                {
                    skills = new SkillNameValue[]
                        {
                            new SkillNameValue( SkillName.Necromancy, 50 ),
                            new SkillNameValue( SkillName.Focus, 30 ),
                            new SkillNameValue( SkillName.SpiritSpeak, 30 ),
                            new SkillNameValue( SkillName.Swords, 30 ),
                            new SkillNameValue( SkillName.Tactics, 20 )
                        };

                    break;
                }
                case 5: // Paladin
                {
                    skills = new SkillNameValue[]
                        {
                            new SkillNameValue( SkillName.Chivalry, 51 ),
                            new SkillNameValue( SkillName.Swords, 49 ),
                            new SkillNameValue( SkillName.Focus, 30 ),
                            new SkillNameValue( SkillName.Tactics, 30 )
                        };

                    break;
                }
                case 6:	//Samurai
                {
                    skills = new SkillNameValue[]
                        {
                            new SkillNameValue( SkillName.Bushido, 50 ),
                            new SkillNameValue( SkillName.Swords, 50 ),
                            new SkillNameValue( SkillName.Anatomy, 30 ),
                            new SkillNameValue( SkillName.Healing, 30 )
                    };
                    break;
                }
                case 7:	//Ninja
                {
                    skills = new SkillNameValue[]
                        {
                            new SkillNameValue( SkillName.Ninjitsu, 50 ),
                            new SkillNameValue( SkillName.Hiding, 50 ),
                            new SkillNameValue( SkillName.Fencing, 30 ),
                            new SkillNameValue( SkillName.Stealth, 30 )
                        };
                    break;
                }
                default:
                {
                    if ( !ValidSkills( skills ) )
                        return;

                    break;
                }
            }

            bool addSkillItems = true;
            bool elf = (m.Race == Race.Elf);

            switch ( prof )
            {
                case 1: // Warrior
                {
                    if ( elf )
                        EquipItem( new LeafChest() );
                    else
                        EquipItem( new LeatherChest() );
                    break;
                }
                case 4: // Necromancer
                {
                    Container regs = new BagOfNecroReagents( 50 );

                    if ( !Core.AOS )
                    {
                        foreach ( Item item in regs.Items )
                            item.LootType = LootType.Newbied;
                    }

                    PackItem( regs );

                    regs.LootType = LootType.Regular;

                    EquipItem( new BoneHelm() );

                    if ( elf )
                    {
                        EquipItem( new ElvenMachete() );
                        EquipItem( NecroHue( new LeafChest() ) );
                        EquipItem( NecroHue( new LeafArms() ) );
                        EquipItem( NecroHue( new LeafGloves() ) );
                        EquipItem( NecroHue( new LeafGorget() ) );
                        EquipItem( NecroHue( new LeafGorget() ) );
                        EquipItem( NecroHue( new ElvenPants() ) );	//TODO: Verify the pants
                        EquipItem( new ElvenBoots() );
                    }
                    else
                    {
                        EquipItem( new BoneHarvester() );
                        EquipItem( NecroHue( new LeatherChest() ) );
                        EquipItem( NecroHue( new LeatherArms() ) );
                        EquipItem( NecroHue( new LeatherGloves() ) );
                        EquipItem( NecroHue( new LeatherGorget() ) );
                        EquipItem( NecroHue( new LeatherLegs() ) );
                        EquipItem( NecroHue( new Skirt() ) );
                        EquipItem( new Sandals( 0x8FD ) );
                    }

                    Spellbook book = new NecromancerSpellbook( (ulong)0x8981 ); // animate dead, evil omen, pain spike, summon familiar, wraith form

                    PackItem( book );

                    book.LootType = LootType.Blessed;

                    addSkillItems = false;

                    break;
                }
                case 5: // Paladin
                {
                    if ( elf )
                    {
                        EquipItem( new ElvenMachete() );
                        EquipItem( new WingedHelm() );
                        EquipItem( new LeafGorget() );
                        EquipItem( new LeafArms() );
                        EquipItem( new LeafChest() );
                        EquipItem( new LeafLegs() );
                        EquipItem( new ElvenBoots() );	//Verify hue
                    }
                    else
                    {
                        EquipItem( new Broadsword() );
                        EquipItem( new Helmet() );
                        EquipItem( new PlateGorget() );
                        EquipItem( new RingmailArms() );
                        EquipItem( new RingmailChest() );
                        EquipItem( new RingmailLegs() );
                        EquipItem( new ThighBoots( 0x748 ) );
                        EquipItem( new Cloak( 0xCF ) );
                        EquipItem( new BodySash( 0xCF ) );
                    }

                    Spellbook book = new BookOfChivalry( (ulong)0x3FF );

                    PackItem( book );

                    book.LootType = LootType.Blessed;

                    addSkillItems = false;

                    break;
                }

                case 6: // Samurai
                {
                    addSkillItems = false;
                    EquipItem( new HakamaShita( 0x2C3 ) );
                    EquipItem( new Hakama( 0x2C3 ) );
                    EquipItem( new SamuraiTabi( 0x2C3 ) );
                    EquipItem( new TattsukeHakama( 0x22D ) );
                    EquipItem( new Bokuto() );

                    if ( elf )
                        EquipItem( new RavenHelm() );
                    else
                        EquipItem( new LeatherJingasa() );

                    PackItem( new Scissors() );
                    PackItem( new Bandage( 50 ) );

                    Spellbook book = new BookOfBushido();
                    PackItem( book );

                    break;
                }
                case 7: // Ninja
                {
                    addSkillItems = false;
                    EquipItem( new Kasa() );

                    int[] hues = new int[] { 0x1A8, 0xEC, 0x99, 0x90, 0xB5, 0x336, 0x89	};
                    //TODO: Verify that's ALL the hues for that above.

                    EquipItem( new TattsukeHakama( hues[Utility.Random(hues.Length)] ) );

                    EquipItem( new HakamaShita( 0x2C3 ) );
                    EquipItem( new NinjaTabi( 0x2C3 ) );

                    if ( elf )
                        EquipItem( new AssassinSpike() );
                    else
                        EquipItem( new Tekagi() );

                    PackItem( new SmokeBomb() );

                    Spellbook book = new BookOfNinjitsu();
                    PackItem( book );

                    break;
                }
            }

            for ( int i = 0; i < skills.Length; ++i )
            {
                SkillNameValue snv = skills[i];

                if ( snv.Value > 0 && ( snv.Name != SkillName.Stealth || prof == 7 ) && snv.Name != SkillName.RemoveTrap && snv.Name != SkillName.Spellweaving )
                {
                    Skill skill = m.Skills[snv.Name];

                    if ( skill != null )
                    {
                        skill.BaseFixedPoint = snv.Value * 10;

                        if ( addSkillItems )
                            AddSkillItems( snv.Name, m );
                    }
                }
            }
        }
Exemple #3
0
			protected override void OnTarget( Mobile from, object targeted )
			{
				if ( targeted is Mobile )
				{
					Mobile targ = (Mobile)targeted;
					if ( from != targ ) 
						from.SendMessage( "You may only set your own body to GM style." );

					else 
					{
						m_Mobile = from;

						CommandLogging.WriteLine( from, "{0} {1} is assuming a GM body", from.AccessLevel, CommandLogging.Format( from ) );

						Container pack = from.Backpack;

						if ( pack == null )
						{
							pack = new Backpack();
							pack.Movable = false;

							from.AddItem( pack );
						}

						from.Hunger = 20;
						from.Thirst = 20;
						from.Fame = 0;
						from.Karma = 0;
						from.Kills = 0;
						from.Hidden = true;
						from.Blessed = true;
						from.Hits = from.HitsMax;
						from.Mana = from.ManaMax;
						from.Stam = from.StamMax;

						if(from.AccessLevel >= AccessLevel.Counselor)
						{
							EquipItem( new StaffRing() );
							Spellbook book1 = new Spellbook( (ulong)18446744073709551615 );
							Spellbook book2 = new NecromancerSpellbook( (ulong)0xffff );
							Spellbook book3 = new BookOfChivalry();
							Spellbook book4 = new BookOfBushido();
                            Spellbook book5 = new BookOfNinjitsu();

                            PackItem(new GMHidingStone());

							PackItem( book1 );
							PackItem( book2 );
							PackItem( book3 );
							PackItem( book4 );
							PackItem( book5 );
							from.RawStr = 100;
							from.RawDex = 100;
							from.RawInt = 100;
							from.Hits = from.HitsMax;
							from.Mana = from.ManaMax;
							from.Stam = from.StamMax;

							for ( int i = 0; i < targ.Skills.Length; ++i )
								targ.Skills[i].Base = 120;
						}

						if(from.AccessLevel == AccessLevel.Counselor)
						{
							EquipItem( new CounselorRobe() );
							EquipItem( new ThighBoots( 3 ) );
							from.Title = "[Counselor]";
						}

						if(from.AccessLevel == AccessLevel.GameMaster)
						{
							EquipItem( new GMRobe() );
							EquipItem( new ThighBoots( 39 ) );
							from.Title = "[GM]";
						}

						if(from.AccessLevel == AccessLevel.Seer)
						{
							EquipItem( new SeerRobe() );
							EquipItem( new ThighBoots( 467 ) );
							from.Title = "[Seer]";
						}

						if(from.AccessLevel == AccessLevel.Administrator)
						{
							EquipItem( new AdminRobe() );
							EquipItem( new ThighBoots( 1001 ) );
							from.Title = "[Admin]";
						}

						if(from.AccessLevel == AccessLevel.Developer)
						{
							EquipItem( new AdminRobe() );
							EquipItem( new ThighBoots( 1001 ) );
							from.Title = "[Developer]";
						}

						if(from.AccessLevel == AccessLevel.Owner)
						{
							EquipItem( new AdminRobe() );
							EquipItem( new ThighBoots( 1001 ) );
							from.Title = "[Owner]";
						}
					}
				}
			}
 public override bool OnBeforeDeath()
 {
     this.Hits = 100;
     this.Blessed = true;
      if (!(QuestPlayer.Backpack.FindItemByType(typeof(NecromancerSpellbook)) != null 
         || (QuestPlayer.FindItemOnLayer(Layer.FirstValid) != null && QuestPlayer.FindItemOnLayer(Layer.FirstValid).GetType() == typeof(NecromancerSpellbook)))){
             if (!(QuestPlayer.Backpack.FindItemByType(typeof(BookOfNinjitsu)) != null
                || (QuestPlayer.FindItemOnLayer(Layer.FirstValid) != null && QuestPlayer.FindItemOnLayer(Layer.FirstValid).GetType() == typeof(BookOfNinjitsu))))
             {
                 if (!(QuestPlayer.Backpack.FindItemByType(typeof(BookOfChivalry)) != null
                     || (QuestPlayer.FindItemOnLayer(Layer.FirstValid) != null && QuestPlayer.FindItemOnLayer(Layer.FirstValid).GetType() == typeof(BookOfChivalry))))
                 {
                     if (!(QuestPlayer.Backpack.FindItemByType(typeof(BookOfBushido)) != null
                         || (QuestPlayer.FindItemOnLayer(Layer.FirstValid) != null && QuestPlayer.FindItemOnLayer(Layer.FirstValid).GetType() == typeof(BookOfBushido))))
                     {
                         Say("Vous vous êtes battu avec Honneur, prenez ce livre et poursuivez dans cette voie.");
                         BookOfBushido b = new BookOfBushido();
                         b.Content = 3;
                         QuestPlayer.Backpack.AddItem(b);
                         if (QuestPlayer.Skills.Bushido.Base < 25.0)
                         {
                             QuestPlayer.Skills.Bushido.Base = 25.0;
                         }
                     }
                 }
             }
     }
     Say("C'est toujours agréable de se dégourdir un peu.");
     QuestPlayer.Criminal = false;
     this.Combatant = null;
     this.QuestPlayer = null;
     this.Warmode = false;
     return false;
 }