public override void OnResponse( NetState state, RelayInfo info ) { Mobile from = state.Mobile; Container pack = from.Backpack; if (pack == null) return; SailTimer waitTime; int travelTime = 5; switch( info.ButtonID ) { default: { from.SendMessage( "Another time, perhaps." ); break; } case 1: { if( pack.ConsumeTotal( typeof( Copper ), m_Cost ) ) { if( from.Map != m_SailMap ) travelTime += 30; travelTime += (int)(m_Cost / Math.PI); if( travelTime > 90 && from.Map == m_SailMap ) travelTime = Utility.RandomMinMax( 75, 90 ); else if( travelTime > 120 && from.Map != m_SailMap ) travelTime = Utility.RandomMinMax( 110, 120 ); foreach (Mobile m in from.GetMobilesInRange(3)) { if (m is BaseCreature) { BaseCreature pet = (BaseCreature)m; if (pet.Controlled && pet.ControlMaster == from) { pet.Blessed = true; } } } BaseCreature.TeleportPets( from, m_SendTo, from.Map ); from.Location = m_SendTo; from.Blessed = true; waitTime = new SailTimer( from, m_SailTo, m_SailMap, TimeSpan.FromSeconds( travelTime ) ); waitTime.Start(); from.AddToBackpack( new SailTimerCheck() ); } else { from.SendMessage( "Please come back with the fare price in copper." ); } break; } case 2: { if( pack.ConsumeTotal( typeof( SailingMembershipCard ), 0 ) ) { if( from.Map != m_SailMap ) travelTime += 30; travelTime += (m_Cost / 15); if( travelTime > 90 && from.Map == m_SailMap ) travelTime = Utility.RandomMinMax( 75, 90 ); else if( travelTime > 120 && from.Map != m_SailMap ) travelTime = Utility.RandomMinMax( 110, 120 ); foreach (Mobile m in from.GetMobilesInRange(3)) { if (m is BaseCreature) { BaseCreature pet = (BaseCreature)m; if (pet.Controlled && pet.ControlMaster == from) { pet.Blessed = true; } } } BaseCreature.TeleportPets( from, m_SendTo, from.Map ); from.Location = m_SendTo; from.Blessed = true; waitTime = new SailTimer( from, m_SailTo, m_SailMap, TimeSpan.FromSeconds( travelTime ) ); waitTime.Start(); from.AddToBackpack( new SailTimerCheck() ); } else { from.SendMessage( "That's not a membership card!" ); } break; } case 3: { from.SendMessage( "Another time, perhaps." ); break; } } }
public override void OnResponse( NetState state, RelayInfo info ) { Mobile from = state.Mobile; Container pack = from.Backpack; SailTimer waitTime; int travelTime = 5; switch( info.ButtonID ) { default: { from.SendMessage( "Another time, perhaps." ); break; } case 1: { if( pack.ConsumeTotal( typeof( Copper ), m_Cost ) ) { if( from.Map != m_SailMap ) travelTime += 30; travelTime += (m_Cost / 10); if( travelTime > 90 && from.Map == m_SailMap ) travelTime = Utility.RandomMinMax( 75, 90 ); else if( travelTime > 120 && from.Map != m_SailMap ) travelTime = Utility.RandomMinMax( 110, 120 ); from.Location = m_SendTo; from.Map = Map.Backtrol; BaseCreature.TeleportPets( from, m_SendTo, Map.Backtrol ); waitTime = new SailTimer( from, m_SailTo, m_SailMap, TimeSpan.FromSeconds( travelTime ) ); waitTime.Start(); from.AddToBackpack( new SailTimerCheck() ); //from.SendMessage( "Cost: {0} | Travel Time: {1}", m_Cost, TimeSpan.FromSeconds(travelTime) ); } else { from.SendMessage( "Please come back with the fare price." ); } break; } case 2: { if( pack.ConsumeTotal( typeof( SailingMembershipCard ), 0 ) ) { if( from.Map != m_SailMap ) travelTime += 30; travelTime += (m_Cost / 10); if( travelTime > 90 && from.Map == m_SailMap ) travelTime = Utility.RandomMinMax( 75, 90 ); else if( travelTime > 120 && from.Map != m_SailMap ) travelTime = Utility.RandomMinMax( 110, 120 ); from.Location = m_SendTo; from.Map = Map.Backtrol; BaseCreature.TeleportPets( from, m_SendTo, Map.Backtrol ); waitTime = new SailTimer( from, m_SailTo, m_SailMap, TimeSpan.FromSeconds( travelTime ) ); waitTime.Start(); from.AddToBackpack( new SailTimerCheck() ); //from.SendMessage( "Cost: {0} | Travel Time: {1}", m_Cost, TimeSpan.FromSeconds(travelTime) ); } else { from.SendMessage( "That's not a membership card!" ); } break; } case 3: { from.SendMessage( "Another time, perhaps." ); break; } } }