Inheritance: Item, ICraftable, ISlayer
 public static void OnPickedInstrument( Mobile from, BaseInstrument instrument )
 {
     from.RevealingAction();
     from.SendLocalizedMessage( 1049525 ); // Whom do you wish to calm?
     from.Target = new InternalTarget( from, instrument );
     from.NextSkillTime = DateTime.Now + TimeSpan.FromHours( 6.0 );
 }
Exemple #2
0
 public static void OnPickedInstrument( Mobile from, BaseInstrument instrument )
 {
     from.RevealingAction();
     //from.SendLocalizedMessage( 501587 ); // Whom do you wish to incite?
     from.SendAsciiMessage("Whom do you wish to incite?");
     from.Target = new InternalFirstTarget( from, instrument );
 }
Exemple #3
0
		public static void OnPickedInstrument(Mobile from, BaseInstrument instrument)
		{
			from.RevealingAction();
			from.SendLocalizedMessage(1049525); // Whom do you wish to calm?
			from.Target = new InternalTarget(from, instrument);
			from.NextSkillTime = Core.TickCount + 21600000;
		}
Exemple #4
0
		public static void OnPickedInstrument(Mobile from, BaseInstrument instrument)
		{
			from.RevealingAction();
			from.SendLocalizedMessage(1049541); // Choose the target for your song of discordance.
			from.Target = new DiscordanceTarget(from, instrument);
			from.NextSkillTime = Core.TickCount + 6000;
		}
Exemple #5
0
 public static void OnPickedInstrument( Mobile from, BaseInstrument instrument )
 {
     from.RevealingAction();
     from.SendLocalizedMessage( 1049541 ); // Choose the target for your song of discordance.
     from.Target = new DiscordanceTarget( from, instrument );
     from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds( 6.0 );
 }
			public InternalFirstTarget( Mobile from, BaseInstrument instrument ) : base( BaseInstrument.GetBardRange( from, SkillName.Provocation ), false, TargetFlags.None )
			{
				m_Instrument = instrument;

                if (from is PlayerMobile)
                    ((PlayerMobile)from).ResetPlayerAction(this);
			}
Exemple #7
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			if ( Backpack != null )
				m_Instrument = Backpack.FindItemByType( typeof( BaseInstrument ) ) as BaseInstrument;
		}
Exemple #8
0
        public static void OnPickedInstrument(Mobile from, BaseInstrument instrument)
        {
            from.RevealingAction();
            if (!BaseInstrument.CheckMusicianship(from))
            {
                from.SendLocalizedMessage(500612); // You play poorly, and there is no effect.
                instrument.PlayInstrumentBadly(from);
                instrument.ConsumeUse(from);
            }
            else if (!from.CheckSkill(SkillName.Peacemaking, 0.0, 100.0))
            {
                from.SendLocalizedMessage(500613); // You attempt to calm everyone, but fail.
                instrument.PlayInstrumentBadly(from);
                instrument.ConsumeUse(from);
            }
            else
            {
                instrument.PlayInstrumentWell(from);
                instrument.ConsumeUse(from);

                Map map = from.Map;

                if (map != null)
                {
                    int range = BaseInstrument.GetBardRange(from, SkillName.Peacemaking);

                    bool calmed = false;

                    foreach (Mobile m in from.GetMobilesInRange(range))
                    {
                        #region Dueling
                        if (m.Region is Engines.ConPVP.SafeZone)
                            continue;
                        #endregion

                        BaseCreature bc = m as BaseCreature;
                        if ((bc != null && bc.Uncalmable) || m == from || !m.Alive)
                            continue;

                        calmed = true;

                        m.SendLocalizedMessage(500616); // You hear lovely music, and forget to continue battling!
                        m.Combatant = null;
                        if (!m.Player)
                            m.Warmode = false;

                        if (bc != null && !bc.BardPacified)
                            bc.Pacify(from, DateTime.Now + TimeSpan.FromSeconds(2.5));
                    }

                    if (!calmed)
                        from.SendLocalizedMessage(1049648); // You play hypnotic music, but there is nothing in range for you to calm.
                    else
                        from.SendLocalizedMessage(500615); // You play your hypnotic music, stopping the battle.
                }
            }
        }
		public static void OnPickedInstrument( Mobile from, BaseInstrument instrument )
		{
			from.RevealingAction();

      if ( !BaseInstrument.CheckMusicianship( from ) )
      { 
        from.SendLocalizedMessage( 500612 ); // You play poorly, and there is no effect.
        instrument.PlayInstrumentBadly( from );
        instrument.ConsumeUse( from );
      }
      else if ( !from.CheckSkill( SkillName.Peacemaking, 0.0, 100.0 ) )
      {
        from.SendLocalizedMessage( 500613 ); // You attempt to calm everyone, but fail.
        instrument.PlayInstrumentBadly( from );
        instrument.ConsumeUse( from );
      }
      else
      {
        instrument.PlayInstrumentWell( from );
        instrument.ConsumeUse( from );

        Map map = from.Map;

        if ( map != null )
        {
          int range = BaseInstrument.GetBardRange( from, SkillName.Peacemaking );

          bool calmed = false;

          foreach ( Mobile m in from.GetMobilesInRange( range ) )
          {
            if ( (m is BaseCreature && ((BaseCreature)m).Uncalmable) || m == from || !from.CanBeHarmful( m, false ) )
              continue;

            calmed = true;

            m.SendLocalizedMessage( 500616 ); // You hear lovely music, and forget to continue battling!
            m.Combatant = null;
            m.Warmode = false;

            if ( m is BaseCreature && !((BaseCreature)m).BardPacified )
              ((BaseCreature)m).Pacify( from, DateTime.Now + TimeSpan.FromSeconds( 1.0 ) );
          }

          if ( !calmed )
            from.SendLocalizedMessage( 1049648 ); // You play hypnotic music, but there is nothing in range...
          else
            from.SendLocalizedMessage( 500615 ); // You play your hypnotic music, stopping the battle.
            
        }
      }
		}
Exemple #10
0
		public override void InitOutfit()
		{
			base.InitOutfit();

			if ( 0.0025 > Utility.RandomDouble() )
				m_Instrument = new BambooFlute();
			else
				switch ( Utility.Random( 6 ) )
				{
					case 0: m_Instrument = new Drums(); break;
					case 1: m_Instrument = new Harp(); break;
					case 2: m_Instrument = new LapHarp(); break;
					case 3: m_Instrument = new Lute(); break;
					case 4: m_Instrument = new Tambourine(); break;
					case 5: m_Instrument = new TambourineTassel(); break;
				}

			if ( m_Instrument != null )
				PackItem( m_Instrument );
		}
Exemple #11
0
		public static void PlayNote( PlayerMobile from, string note, BaseInstrument instrument )
		{
			try
			{
				//Pix: added sanity checks
				if (from == null || instrument == null) return;

				int it = (int)GetInstrumentType(instrument);
				int nv;

				// If Musicianship is not GM, there is a chance of playing a random note.
				if (!BaseInstrument.CheckMusicianship(from))
				{
					instrument.ConsumeUse(from);
					nv = Utility.Random(25);
					//Console.WriteLine("Random note value chosen: {0}", nv );
				}
				else
				{
					nv = (int)GetNoteValue(note);
				}

				//Pix: added bounds checking
				if (nv >= 0 && it >=0 &&
					nv < NoteSounds.Length && it < NoteSounds[nv].Length)
				{
					int sound = NoteSounds[nv][it];

					from.PlaySound(sound, true);
				}
			}
			catch (Exception ex)
			{
				Scripts.Commands.LogHelper.LogException(ex);
			}
		}
		public void AddInstrument( BaseInstrument bi, Mobile from)
		{
			if ( htSlayer == null )
				htSlayer = new Hashtable();
			int iHave = 0;
			string sKey = "";
			if ( bi.Slayer2 != SlayerName.None )
			{
				from.SendMessage(32, "This musical instrument is too powerfull to be combined.");
				return;
			}
			if ( bi.Slayer != SlayerName.None )
			{
				sKey = bi.Slayer.ToString();
				string sTemp = bi.Slayer.ToString();
				int iBreak = sTemp.IndexOfAny("ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(),1);
				if ( iBreak > -1 )
				{
					sKey = sTemp.Substring( 0, iBreak );
					sTemp = sTemp.Substring( iBreak );
					iBreak = sTemp.IndexOfAny("ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(),1);
					while ( iBreak > -1 )
					{
						sKey = sKey + " " + sTemp.Substring(0, iBreak );
						sTemp =  sTemp.Substring( iBreak );
						iBreak = sTemp.IndexOfAny("ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(),1);
					}
					if ( sTemp != null && sTemp != sKey )
						sKey += " " + sTemp;
				}
			}
			else if ( bi.Quality == InstrumentQuality.Exceptional )
				sKey = "Exceptional";
			else
				sKey = "Normal";
			
			if ( htSlayer[sKey] != null )
				iHave = (int)htSlayer[sKey];
			if ( iHave > 60000 )
			{
				from.SendGump( new BardsStandGump( from, this ) );
				from.SendMessage(33, "You can't add more charges, the limit is 60,000.");
				return;
			}
			if ( iHave + bi.UsesRemaining > 60000 )
			{
				bi.UsesRemaining = iHave + bi.UsesRemaining - 60000;
				iHave = 60000;
			}
			else
			{
				iHave += bi.UsesRemaining;
				bi.Delete();
			}

			if ( htSlayer.ContainsKey(sKey) )
				htSlayer[sKey] = iHave;
			else
				htSlayer.Add(sKey, iHave);
				
			BeginCombine( from );
			from.SendGump( new BardsStandGump( from, this ) );
			from.SendMessage(88, "You added the Instrument charges.");
		}
Exemple #13
0
        public static string ComputeName(BaseInstrument bi)
        {
            string name;

            if (bi.Name == null)
                name = CliLoc.LocToString(bi.LabelNumber);
            else
                name = bi.Name;

            if (bi.Crafter != null)
                name = string.Format("{0} crafted by {1}", name, bi.Crafter.Name);

            return name;
        }
		public static void SetInstrument( Mobile from, BaseInstrument item )
		{
			m_Instruments[from] = item;
		}
Exemple #15
0
        public static void OnPickedInstrument(Mobile from, BaseInstrument instrument)
        {
            BaseInstrument m_Instrument = instrument;
            from.RevealingAction();
            //m_SetSkillTime = false;
            //from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds(10.0);

            // Standard mode : reset combatants for everyone in the area

            if (!BaseInstrument.CheckMusicianship(from))
            {
                from.SendAsciiMessage("You play poorly, and there is no effect."); //
                m_Instrument.PlayInstrumentBadly(from);
                m_Instrument.ConsumeUse(from);
            }
            else if (!from.CheckSkill(SkillName.Peacemaking, 0.0, 100.0))
            {
                from.SendAsciiMessage("You attempt to calm everyone, but fail."); //
                m_Instrument.PlayInstrumentBadly(from);
                m_Instrument.ConsumeUse(from);
            }
            else
            {
                from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds(10.0);
                m_Instrument.PlayInstrumentWell(from);
                m_Instrument.ConsumeUse(from);

                Map map = from.Map;

                if (map != null)
                {
                    //int range = instrument.GetBardRange(from, SkillName.Peacemaking);

                    bool calmed = false;

                    foreach (Mobile m in from.GetMobilesInRange(12))
                    {
                        if ((m is BaseCreature && ((BaseCreature)m).Uncalmable) || m == from || !from.CanBeHarmful(m, false))
                            continue;

                        calmed = true;

                        m.SendAsciiMessage("You hear lovely music, and forget to continue battling!"); //
                        m.Combatant = null;
                        m.Warmode = false;

                        if (m is BaseCreature && !((BaseCreature)m).BardPacified)
                        {
                            ((BaseCreature)m).BardEndTime = DateTime.Now;
                            ((BaseCreature)m).BardTarget = null;
                            ((BaseCreature)m).BardMaster = null;
                            ((BaseCreature)m).BardProvoked = false;
                            ((BaseCreature)m).Pacify(from, DateTime.Now + TimeSpan.FromSeconds(2.0));
                        }

                    }

                    if (!calmed)
                        from.SendAsciiMessage("You play hypnotic music, but there is nothing in range for you to calm."); //
                    else
                        from.SendAsciiMessage("You play your hypnotic music, stopping the battle."); //
                }
            }
            //from.SendAsciiMessage("Whom do you wish to calm?");
            //from.SendLocalizedMessage( 1049525 ); // Whom do you wish to calm?
            //from.Target = new InternalTarget( from, instrument );
            //from.NextSkillTime = DateTime.Now + TimeSpan.FromHours( 6.0 );
        }
Exemple #16
0
		public static InstrumentType GetInstrumentType( BaseInstrument instrument )
		{
			// Can't play notes on drums or tamborines
			if ( instrument is Harp ) return InstrumentType.Harp;
			if ( instrument is LapHarp ) return InstrumentType.LapHarp;
			if ( instrument is Lute ) return InstrumentType.Lute;
			else return 0;
		}
 public InternalTarget(Mobile from, BaseInstrument instrument)
     : base(BaseInstrument.GetBardRange(from, SkillName.Peacemaking), false, TargetFlags.None)
 {
     m_Instrument = instrument;
 }
Exemple #18
0
        protected override void OnTarget(Mobile from, object target)
        {
            int SlayType = m_Deed.SlayerType;

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

                SlayerName slaying = SlayerDeed.GetDeedSlayer(SlayType);

                if (item.RootParent != from)
                {
                    from.SendMessage("The weapon must be in your pack.");
                }
                else if (item.Slayer != SlayerName.None && item.Slayer2 != SlayerName.None)
                {
                    from.SendMessage("The weapon is already a slayer.");
                }
                else if (item.Slayer == slaying || item.Slayer2 == slaying)
                {
                    from.SendMessage("The weapon already slays these creatures.");
                }
                else
                {
                    if (item.Slayer == SlayerName.None)
                    {
                        item.Slayer = slaying;
                        from.SendMessage("The weapon now slays these creatures.");
                        m_Deed.Delete();
                    }
                    else if (item.Slayer2 == SlayerName.None)
                    {
                        item.Slayer2 = slaying;
                        from.SendMessage("You weapon now slays these creatures.");
                        m_Deed.Delete();
                    }
                }
            }
            else if (target is BaseInstrument)
            {
                BaseInstrument item = (BaseInstrument)target;

                SlayerName slaying = SlayerDeed.GetDeedSlayer(SlayType);

                if (item.RootParent != from)
                {
                    from.SendMessage("The instrument must be in your pack.");
                }
                else if (item.Slayer != SlayerName.None && item.Slayer2 != SlayerName.None)
                {
                    from.SendMessage("The instrument is already a slayer.");
                }
                else if (item.Slayer == slaying || item.Slayer2 == slaying)
                {
                    from.SendMessage("The instrument already slays these creatures.");
                }
                else
                {
                    if (item.Slayer == SlayerName.None)
                    {
                        item.Slayer = slaying;
                        from.SendMessage("The instrument now slays these creatures.");
                        m_Deed.Delete();
                    }
                    else if (item.Slayer2 == SlayerName.None)
                    {
                        item.Slayer2 = slaying;
                        from.SendMessage("You instrument now slays these creatures.");
                        m_Deed.Delete();
                    }
                }
            }
            else if (target is Spellbook && !(target is HolyManSpellbook))
            {
                Spellbook item = (Spellbook)target;

                SlayerName slaying = SlayerDeed.GetDeedSlayer(SlayType);

                if (item.RootParent != from)
                {
                    from.SendMessage("The book must be in your pack.");
                }
                else if (item.Slayer != SlayerName.None && item.Slayer2 != SlayerName.None)
                {
                    from.SendMessage("The book is already a slayer.");
                }
                else if (item.Slayer == slaying || item.Slayer2 == slaying)
                {
                    from.SendMessage("The book already slays these creatures.");
                }
                else
                {
                    if (item.Slayer == SlayerName.None)
                    {
                        item.Slayer = slaying;
                        from.SendMessage("The book now slays these creatures.");
                        m_Deed.Delete();
                    }
                    else if (item.Slayer2 == SlayerName.None)
                    {
                        item.Slayer2 = slaying;
                        from.SendMessage("You book now slays these creatures.");
                        m_Deed.Delete();
                    }
                }
            }
        }
        public void AddInstrument(BaseInstrument bi, Mobile from)
        {
            if (htSlayer == null)
            {
                htSlayer = new Hashtable();
            }
            int    iHave = 0;
            string sKey  = "";

            if (bi.Slayer2 != SlayerName.None)
            {
                from.SendMessage(32, "This musical instrument is too powerfull to be combined.");
                return;
            }
            if (bi.Slayer != SlayerName.None)
            {
                sKey = bi.Slayer.ToString();
                string sTemp  = bi.Slayer.ToString();
                int    iBreak = sTemp.IndexOfAny("ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(), 1);
                if (iBreak > -1)
                {
                    sKey   = sTemp.Substring(0, iBreak);
                    sTemp  = sTemp.Substring(iBreak);
                    iBreak = sTemp.IndexOfAny("ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(), 1);
                    while (iBreak > -1)
                    {
                        sKey   = sKey + " " + sTemp.Substring(0, iBreak);
                        sTemp  = sTemp.Substring(iBreak);
                        iBreak = sTemp.IndexOfAny("ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(), 1);
                    }
                    if (sTemp != null && sTemp != sKey)
                    {
                        sKey += " " + sTemp;
                    }
                }
            }
            else if (bi.Quality == InstrumentQuality.Exceptional)
            {
                sKey = "Exceptional";
            }
            else
            {
                sKey = "Normal";
            }

            if (htSlayer[sKey] != null)
            {
                iHave = (int)htSlayer[sKey];
            }
            if (iHave > 60000)
            {
                from.SendGump(new BardsStandGump(from, this));
                from.SendMessage(33, "You can't add more charges, the limit is 60,000.");
                return;
            }
            if (iHave + bi.UsesRemaining > 60000)
            {
                bi.UsesRemaining = iHave + bi.UsesRemaining - 60000;
                iHave            = 60000;
            }
            else
            {
                iHave += bi.UsesRemaining;
                bi.Delete();
            }

            if (htSlayer.ContainsKey(sKey))
            {
                htSlayer[sKey] = iHave;
            }
            else
            {
                htSlayer.Add(sKey, iHave);
            }

            BeginCombine(from);
            from.SendGump(new BardsStandGump(from, this));
            from.SendMessage(88, "You added the Instrument charges.");
        }
        protected override void OnTarget(Mobile from, object target)
        {
            #region Lute Songs
            if (target is Lute)
            {
                BaseInstrument item = (BaseInstrument)target;

                if (item.Movable == true)
                {
                    switch (item.SuccessSound)
                    {
                    case 0x4C:
                        item.SuccessSound = 0x403;
                        from.SendMessage("You have tuned your lute to play a new song.");
                        from.PlaySound(0x403);
                        break;

                    case 0x403:
                        item.SuccessSound = 0x418;
                        from.SendMessage("You have tuned your lute to play a new song.");
                        from.PlaySound(0x418);
                        break;

                    case 0x418:
                        item.SuccessSound = 0x40B;
                        from.SendMessage("You have tuned your lute to play a new song.");
                        from.PlaySound(0x40B);
                        break;

                    case 0x40B:
                        item.SuccessSound = 0x4C;
                        from.SendMessage("You have tuned your lute to play a new song.");
                        from.PlaySound(0x4C);     // This is the normal UO Lute song.
                        break;

                    default:
                        item.SuccessSound = 0x4C;
                        from.SendMessage("You have tuned your lute.");
                        from.PlaySound(0x4C);     // This is the normal UO Lute song.
                        break;
                    }
                }
                else
                {
                    from.SendMessage("You may not tune a lute that is locked down.");
                }
            }
            #endregion

            #region Drum Songs
            else if (target is Drums)
            {
                BaseInstrument item = (BaseInstrument)target;

                if (item.Movable == true)
                {
                    switch (item.SuccessSound)
                    {
                    case 0x38:
                        item.SuccessSound = 0x2EA;
                        from.SendMessage("You have tuned your drum to play a new song.");
                        from.PlaySound(0x2EA);
                        break;

                    case 0x2EA:
                        item.SuccessSound = 0x2EC;
                        from.SendMessage("You have tuned your drum to play a new song.");
                        from.PlaySound(0x2EC);
                        break;

                    case 0x2EC:
                        item.SuccessSound = 0x2ED;
                        from.SendMessage("You have tuned your drum to play a new song.");
                        from.PlaySound(0x2ED);
                        break;

                    case 0x2ED:
                        item.SuccessSound = 0x38;
                        from.SendMessage("You have tuned your drum to play a new song.");
                        from.PlaySound(0x38);         // This is the normal UO Drums song.
                        break;

                    default:
                        item.SuccessSound = 0x38;
                        from.SendMessage("You have tuned your drum.");
                        from.PlaySound(0x38);         // This is the normal UO Drums song.
                        break;
                    }
                }
                else
                {
                    from.SendMessage("You may not tune drums that are locked down.");
                }
            }
            #endregion

            #region Tambourine Songs
            else if (target is Tambourine)
            {
                BaseInstrument item = (BaseInstrument)target;

                if (item.Movable == true)
                {
                    switch (item.SuccessSound)
                    {
                    case 0x52:
                        item.SuccessSound = 0x4B5;
                        from.SendMessage("You have tuned your tambourine to play a new song.");
                        from.PlaySound(0x4B5);
                        break;

                    case 0x4B5:
                        item.SuccessSound = 0x4B6;
                        from.SendMessage("You have tuned your tambourine to play a new song.");
                        from.PlaySound(0x4B6);
                        break;

                    case 0x4B6:
                        item.SuccessSound = 0x4B7;
                        from.SendMessage("You have tuned your tambourine to play a new song.");
                        from.PlaySound(0x4B7);
                        break;

                    case 0x4B7:
                        item.SuccessSound = 0x52;
                        from.SendMessage("You have tuned your tambourine to play a new song.");
                        from.PlaySound(0x52);         // This is the normal UO Tambourine song.
                        break;

                    default:
                        item.SuccessSound = 0x52;
                        from.SendMessage("You have tuned your tambourine.");
                        from.PlaySound(0x52);         // This is the normal UO Tambourine song.
                        break;
                    }
                }
                else
                {
                    from.SendMessage("You may not tune a tambourine that is locked down.");
                }
            }
            #endregion

            #region Tambourine with Tassel Songs
            else if (target is TambourineTassel)
            {
                BaseInstrument item = (BaseInstrument)target;

                if (item.Movable == true)
                {
                    switch (item.SuccessSound)
                    {
                    case 0x52:
                        item.SuccessSound = 0x4B5;
                        from.SendMessage("You have tuned your tambourine to play a new song.");
                        from.PlaySound(0x4B5);
                        break;

                    case 0x4B5:
                        item.SuccessSound = 0x4B6;
                        from.SendMessage("You have tuned your tambourine to play a new song.");
                        from.PlaySound(0x4B6);
                        break;

                    case 0x4B6:
                        item.SuccessSound = 0x4B7;
                        from.SendMessage("You have tuned your tambourine to play a new song.");
                        from.PlaySound(0x4B7);
                        break;

                    case 0x4B7:
                        item.SuccessSound = 0x52;
                        from.SendMessage("You have tuned your tambourine to play a new song.");
                        from.PlaySound(0x52);         // This is the normal UO Tambourine song.
                        break;

                    default:
                        item.SuccessSound = 0x52;
                        from.SendMessage("You have tuned your tambourine.");
                        from.PlaySound(0x52);         // This is the normal UO Tambourine song.
                        break;
                    }
                }
                else
                {
                    from.SendMessage("You may not tune a tambourine that is locked down.");
                }
            }

            else
            {
                from.SendMessage("You may only tune drums, lutes, or tambourines.");
            }
            #endregion
        }
		public static void OnPickedInstrument(Mobile from, BaseInstrument instrument)
		{
			from.Target = new InternalTarget(from, instrument);
		}
Exemple #22
0
 public static void OnPickedInstrument(Mobile from, BaseInstrument instrument)
 {
     from.RevealingAction();
     from.SendAsciiMessage(0x3B2, "Whom do you wish to entice?");//from.SendLocalizedMessage( 1049541 ); // Choose the target for your song of discordance.
     from.Target = new DiscordanceTarget(from, instrument);
 }
 public static void OnPickedInstrument( Mobile from, BaseInstrument instrument )
 {
     from.RevealingAction();
     from.SendLocalizedMessage( 1049541 ); // Choose the target for your song of Throwing.
     from.Target = new ThrowingTarget( from, instrument );
 }
 public static void OnPickedInstrument(Mobile from, BaseInstrument instrument)
 {
     from.Target = new InternalTarget(from, instrument);
 }
Exemple #25
0
        public static void OnPickedInstrument( Mobile from, BaseInstrument instrument )
        {
            //from.RevealingAction();
            //from.SendLocalizedMessage( 1049525 ); // Whom do you wish to calm?
            //from.Target = new InternalTarget( from, instrument );
            //from.NextSkillTime = DateTime.Now + TimeSpan.FromHours( 6.0 );
            from.RevealingAction();

            if ( !instrument.IsChildOf( from.Backpack ) )
            {
                from.SendLocalizedMessage( 1062488 ); // The instrument you are trying to play is no longer in your backpack!
            }
            else
            {
                //m_SetSkillTime = false;
                from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds( 10.0 );

                if ( !BaseInstrument.CheckMusicianship( from ) )
                {
                    from.SendLocalizedMessage( 500612 ); // You play poorly, and there is no effect.
                    instrument.PlayInstrumentBadly( from );
                    instrument.ConsumeUse( from );
                }
                else if ( !from.CheckSkill( SkillName.Peacemaking, 0.0, 100.0 ) )
                {
                    from.SendLocalizedMessage( 500613 ); // You attempt to calm everyone, but fail.
                    instrument.PlayInstrumentBadly( from );
                    instrument.ConsumeUse( from );
                }
                else
                {
                    from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds( 5.0 );
                    instrument.PlayInstrumentWell( from );
                    instrument.ConsumeUse( from );

                    Map map = from.Map;

                    if ( map != null )
                    {
                        int range = BaseInstrument.GetBardRange( from, SkillName.Peacemaking );

                        bool calmed = false;

                        foreach ( Mobile m in from.GetMobilesInRange( range ) )
                        {
                            if ( (m is BaseCreature && ((BaseCreature)m).Uncalmable) || m == from || !from.CanBeHarmful( m, false ) )
                                continue;

                            calmed = true;

                            m.SendLocalizedMessage( 500616 ); // You hear lovely music, and forget to continue battling!
                            m.Combatant = null;
                            m.Warmode = false;

                            if ( m is BaseCreature && !((BaseCreature)m).BardPacified )
                                ((BaseCreature)m).Pacify( from, DateTime.Now + TimeSpan.FromSeconds( 1.0 ) );
                        }

                        if ( !calmed )
                            from.SendLocalizedMessage( 1049648 ); // You play hypnotic music, but there is nothing in range for you to calm.
                        else
                            from.SendLocalizedMessage( 500615 ); // You play your hypnotic music, stopping the battle.
                    }
                }
            }
        }
			public DiscordanceTarget( Mobile from, BaseInstrument inst ) : base( BaseInstrument.GetBardRange( from, SkillName.Discordance ), false, TargetFlags.Harmful )
			{
				m_Instrument = inst;

                if (from is PlayerMobile)
                    ((PlayerMobile)from).ResetPlayerAction(this);
			}
Exemple #27
0
 public InternalSecondTarget( Mobile from, BaseInstrument instrument, BaseCreature creature )
     : base(BaseInstrument.GetBardRange( from, SkillName.Provocation ), false, TargetFlags.None)
 {
     m_Instrument = instrument;
     m_Creature = creature;
 }
 public static void SetInstrument(Mobile from, BaseInstrument item)
 {
     m_Instruments[from] = item;
 }
Exemple #29
0
 public InternalFirstTarget( Mobile from, BaseInstrument instrument )
     : base(BaseInstrument.GetBardRange( from, SkillName.Provocation ), false, TargetFlags.None)
 {
     m_Instrument = instrument;
 }
 public SquirePeacemakingTarget(Mobile from, Squire squire, BaseInstrument instrument) : base(BaseInstrument.GetBardRange(squire, SkillName.Peacemaking), false, TargetFlags.None)
 {
     m_Instrument = instrument;
     m_Squire = squire;
 }
 public ThrowingTarget( Mobile from, BaseInstrument inst )
     : base(BaseInstrument.GetBardRange( from, SkillName.Throwing ), false, TargetFlags.Harmful)
 {
     m_Instrument = inst;
 }
 public ProvokeTargetOne(Mobile from, Squire squire, BaseInstrument instrument) : base(BaseInstrument.GetBardRange(squire, SkillName.Provocation), false, TargetFlags.None)
 {
     m_Instrument = instrument;
     m_Squire = squire;
     if (squire.m_SquireBeQuiet == false)
     {
         SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.BeginProvoking, null, null);
     }
 }
 public InternalTarget( Mobile from, BaseInstrument instrument )
     : base(BaseInstrument.GetBardRange( from, SkillName.Peacemaking ), false, TargetFlags.None)
 {
     m_Instrument = instrument;
 }
 public ProvokeTargetTwo(Mobile from, Squire squire, BaseInstrument instrument, BaseCreature creature) : base(BaseInstrument.GetBardRange(squire, SkillName.Provocation), false, TargetFlags.None)
 {
     m_Instrument = instrument;
     m_Squire = squire;
     m_Creature = creature;
 }
Exemple #35
0
			public DiscordanceTarget( Mobile from, BaseInstrument inst ) : base( BaseInstrument.GetBardRange( from, SkillName.Discordance ), false, TargetFlags.Harmful )
			{
				m_Instrument = inst;
			}
 public SquireDiscordanceTarget(Mobile from, Squire squire, BaseInstrument inst) : base(BaseInstrument.GetBardRange(squire, SkillName.Discordance), false, TargetFlags.None)
 {
     m_Instrument = inst;
     m_Squire = squire;
 }