private static void HandleDiscoverTaxi(GameSession session) { List<int> unlockedTaxis = session.Player.UnlockedTaxis; int mapId = session.Player.MapId; if (!unlockedTaxis.Contains(mapId)) { unlockedTaxis.Add(mapId); } session.Send(TaxiPacket.DiscoverTaxi(mapId)); }
public override void Handle(GameSession session, PacketReader packet) { RequestTaxiMode mode = (RequestTaxiMode)packet.ReadByte(); int mapId = 0; long mesoPrice = 60000; if (mode != RequestTaxiMode.DiscoverTaxi) { mapId = packet.ReadInt(); } switch (mode) { case RequestTaxiMode.Car: mesoPrice = 5000; //For now make all car taxis cost 5k, as we don't know the formula to calculate it yet. goto case RequestTaxiMode.RotorsMeso; case RequestTaxiMode.RotorsMeso: if (session.Player.Wallet.Meso.Modify(-mesoPrice)) { HandleTeleport(session, mapId); } else { // TODO: Reject packets } break; case RequestTaxiMode.RotorsMeret: if (session.Player.Wallet.Meret.Modify(-15)) { HandleTeleport(session, mapId); } else { // TODO: Reject packets } break; case RequestTaxiMode.DiscoverTaxi: //TODO: Save somewhere and load somewhere? Perhaps on login. session.Send(TaxiPacket.DiscoverTaxi(session.Player.MapId)); break; default: IPacketHandler <GameSession> .LogUnknownMode(mode); break; } }