示例#1
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            if (info.ButtonID != 1)
            {
                return;
            }

            if (Faction.Find(m_From) != m_Faction)
            {
                return;
            }

            Container pack = m_From.Backpack;

            if (pack == null)
            {
                return;
            }

            FactionWarHorse horse = new FactionWarHorse(m_Faction);

            if (m_From.Followers + horse.ControlSlots > m_From.FollowersMax)
            {
                // TODO: Message?
                horse.Delete();
            }
            else
            {
                if (pack.GetAmount(typeof(Silver)) < FactionWarHorse.SilverPrice)
                {
                    sender.Mobile.SendLocalizedMessage(1042204); // You do not have enough silver.
                    horse.Delete();
                }
                else if (pack.GetAmount(typeof(Gold)) < FactionWarHorse.GoldPrice)
                {
                    sender.Mobile.SendLocalizedMessage(1042205); // You do not have enough gold.
                    horse.Delete();
                }
                else if (pack.ConsumeTotal(typeof(Silver), FactionWarHorse.SilverPrice) &&
                         pack.ConsumeTotal(typeof(Gold), FactionWarHorse.GoldPrice))
                {
                    horse.Controlled    = true;
                    horse.ControlMaster = m_From;

                    horse.ControlOrder  = OrderType.Follow;
                    horse.ControlTarget = m_From;

                    horse.MoveToWorld(m_From.Location, m_From.Map);
                }
                else
                {
                    horse.Delete();
                }
            }
        }
		public override void OnResponse( NetState sender, RelayInfo info )
		{
			if ( info.ButtonID != 1 )
				return;

			if ( Faction.Find( m_From ) != m_Faction )
				return;

			Container pack = m_From.Backpack;

			if ( pack == null )
				return;

			FactionWarHorse horse = new FactionWarHorse( m_Faction );

			if ( (m_From.Followers + horse.ControlSlots) > m_From.FollowersMax )
			{
				// TODO: Message?
				horse.Delete();
			}
			else
			{
				if ( pack.GetAmount( typeof( Silver ) ) < FactionWarHorse.SilverPrice )
				{
					sender.Mobile.SendLocalizedMessage( 1042204 ); // You do not have enough silver.
					horse.Delete();
				}
				else if ( pack.GetAmount( typeof( Gold ) ) < FactionWarHorse.GoldPrice )
				{
					sender.Mobile.SendLocalizedMessage( 1042205 ); // You do not have enough gold.
					horse.Delete();
				}
				else if ( pack.ConsumeTotal( typeof( Silver ), FactionWarHorse.SilverPrice ) && pack.ConsumeTotal( typeof( Gold ), FactionWarHorse.GoldPrice ) )
				{
					horse.Controlled = true;
					horse.ControlMaster = m_From;

					horse.ControlOrder = OrderType.Follow;
					horse.ControlTarget = m_From;

					horse.MoveToWorld( m_From.Location, m_From.Map );
				    if( info.IsSwitched( 1 ) )
                        horse.Hue = m_Faction.Definition.HuePrimary; 
                    else if( info.IsSwitched( 2 ) )
                        horse.Hue = m_Faction.Definition.HueSecondary;
				}
				else
				{
					horse.Delete();
				}
			}
		}