GTAOnlineCasinoHelper/GTAOnlineCasinoHelper/Classes/CeoPlate.cs

134 lines
8.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GTAOnlineCasinoHelper.Classes
{
public class CeoPlate
{
private static readonly Dictionary<string, CeoPlate> PLATE_OBJECT_MAP = new Dictionary<string, CeoPlate>();
#region Mid Range
public static readonly CeoPlate COQUETTE_CLASSIC_TOPLESS = new CeoPlate(CeoModel.COQUETTE_CLASSIC, "T0PL3SS", true);
public static readonly CeoPlate COQUETTE_CLASSIC_TOFFEE = new CeoPlate(CeoModel.COQUETTE_CLASSIC, "T0FF33", false);
public static readonly CeoPlate COQUETTE_CLASSIC_CLASSY = new CeoPlate(CeoModel.COQUETTE_CLASSIC, "CL45SY", false);
public static readonly CeoPlate VERLIERER_PRECIOUS = new CeoPlate(CeoModel.VERLIERER, "PR3C1OUS", true);
public static readonly CeoPlate VERLIERER_OUTFRONT = new CeoPlate(CeoModel.VERLIERER, "0UTFR0NT", false);
public static readonly CeoPlate VERLIERER_CURVES = new CeoPlate(CeoModel.VERLIERER, "CURV35", false);
public static readonly CeoPlate ZENTORNO_WINNING = new CeoPlate(CeoModel.ZENTORNO, "W1NN1NG", true);
public static readonly CeoPlate ZENTORNO_OLDNEWS = new CeoPlate(CeoModel.ZENTORNO, "0LDN3W5", false);
public static readonly CeoPlate ZENTORNO_HERO = new CeoPlate(CeoModel.ZENTORNO, "H3R0", false);
public static readonly CeoPlate TROPOS_RALLYE_1985 = new CeoPlate(CeoModel.TROPOS_RALLYE, "1985", true);
public static readonly CeoPlate TROPOS_RALLYE_IMSORAD = new CeoPlate(CeoModel.TROPOS_RALLYE, "1MS0RAD", false);
public static readonly CeoPlate TROPOS_RALLYE_EIGHTIES = new CeoPlate(CeoModel.TROPOS_RALLYE, "31GHT135", false);
public static readonly CeoPlate SULTAN_RS_SNOWFLKE = new CeoPlate(CeoModel.SULTAN_RS, "SN0WFLK3", true);
public static readonly CeoPlate SULTAN_RS_FIDELITY = new CeoPlate(CeoModel.SULTAN_RS, "F1D3L1TY", false);
public static readonly CeoPlate SULTAN_RS_SHOWOFF = new CeoPlate(CeoModel.SULTAN_RS, "5H0W0FF", false);
public static readonly CeoPlate CHEETAH_BUZZED = new CeoPlate(CeoModel.CHEETAH, "BUZZ3D", true);
public static readonly CeoPlate CHEETAH_MIDNIGHT = new CeoPlate(CeoModel.CHEETAH, "M1DN1GHT", false);
public static readonly CeoPlate CHEETAH_BIGCAT = new CeoPlate(CeoModel.CHEETAH, "B1GC4T", false);
public static readonly CeoPlate SEVEN_SEVENTY_ALLOYS = new CeoPlate(CeoModel.SEVEN_SEVENTY, "4LL0Y5", true);
public static readonly CeoPlate SEVEN_SEVENTY_FRUITY = new CeoPlate(CeoModel.SEVEN_SEVENTY, "FRU1TY", false);
public static readonly CeoPlate SEVEN_SEVENTY_SPEEDY = new CeoPlate(CeoModel.SEVEN_SEVENTY, "SP33DY", false);
public static readonly CeoPlate OMNIS_WIDEBOD = new CeoPlate(CeoModel.OMNIS, "W1D3B0D", true);
public static readonly CeoPlate OMNIS_OBEYME = new CeoPlate(CeoModel.OMNIS, "0BEYM3", false);
public static readonly CeoPlate OMNIS_DIRTY = new CeoPlate(CeoModel.OMNIS, "D1RTY", false);
public static readonly CeoPlate ENTITY_XF_OVERFLOD = new CeoPlate(CeoModel.ENTITY_XF, "0V3RFL0D", true);
public static readonly CeoPlate ENTITY_XF_IMLATE = new CeoPlate(CeoModel.ENTITY_XF, "IML4TE", false);
public static readonly CeoPlate ENTITY_XF_WIDEBOY = new CeoPlate(CeoModel.ENTITY_XF, "W1DEB0Y", false);
public static readonly CeoPlate COQUETTE_BLACKFIN_VINTAGE = new CeoPlate(CeoModel.COQUETTE_BLACKFIN, "V1NT4G3", true);
public static readonly CeoPlate COQUETTE_BLACKFIN_WIPEOUT = new CeoPlate(CeoModel.COQUETTE_BLACKFIN, "W1P3OUT", false);
public static readonly CeoPlate COQUETTE_BLACKFIN_BLKFIN = new CeoPlate(CeoModel.COQUETTE_BLACKFIN, "BLKF1N", false);
#endregion
#region Top Range
public static readonly CeoPlate Z_TYPE_BIGMONEY = new CeoPlate(CeoModel.Z_TYPE, "B1GMON3Y", true);
public static readonly CeoPlate Z_TYPE_KINGPIN = new CeoPlate(CeoModel.Z_TYPE, "K1NGP1N", false);
public static readonly CeoPlate Z_TYPE_CEO = new CeoPlate(CeoModel.Z_TYPE, "CE0", false);
public static readonly CeoPlate ETR_ONE_PRETTY = new CeoPlate(CeoModel.ETR_ONE, "PR3TTY", true);
public static readonly CeoPlate ETR_ONE_BIGBOY = new CeoPlate(CeoModel.ETR_ONE, "B1GB0Y", false);
public static readonly CeoPlate ETR_ONE_MONARCH = new CeoPlate(CeoModel.ETR_ONE, "M0N4RCH", false);
public static readonly CeoPlate EIGHT_ELEVEN_SLICK = new CeoPlate(CeoModel.EIGHT_ELEVEN, "SL1CK", true);
public static readonly CeoPlate EIGHT_ELEVEN_MIDLIFE = new CeoPlate(CeoModel.EIGHT_ELEVEN, "M1DL1F3", false);
public static readonly CeoPlate EIGHT_ELEVEN_REGAL = new CeoPlate(CeoModel.EIGHT_ELEVEN, "R3G4L", false);
public static readonly CeoPlate OSIRIS_SLEEK = new CeoPlate(CeoModel.OSIRIS, "SL33K", true);
public static readonly CeoPlate OSIRIS_OHELLO = new CeoPlate(CeoModel.OSIRIS, "OH3LL0", false);
public static readonly CeoPlate OSIRIS_PHARAOH = new CeoPlate(CeoModel.OSIRIS, "PH4R40H", false);
public static readonly CeoPlate REAPER_DEATH4U = new CeoPlate(CeoModel.REAPER, "D34TH4U", true);
public static readonly CeoPlate REAPER_2FAST4U = new CeoPlate(CeoModel.REAPER, "2FA5T4U", false);
public static readonly CeoPlate REAPER_GRIM = new CeoPlate(CeoModel.REAPER, "GR1M", false);
public static readonly CeoPlate MAMBA_BLKMAMBA = new CeoPlate(CeoModel.MAMBA, "BLKM4MB4", true);
public static readonly CeoPlate MAMBA_OLDBLUE = new CeoPlate(CeoModel.MAMBA, "0LDBLU3", false);
public static readonly CeoPlate MAMBA_VIP = new CeoPlate(CeoModel.MAMBA, "V1P", false);
public static readonly CeoPlate FMJ_CATCHME = new CeoPlate(CeoModel.FMJ, "C4TCHM3", true);
public static readonly CeoPlate FMJ_JOKER = new CeoPlate(CeoModel.FMJ, "J0K3R", false);
public static readonly CeoPlate FMJ_HOT4U = new CeoPlate(CeoModel.FMJ, "H0T4U", false);
public static readonly CeoPlate STIRLING_GT_RALLY = new CeoPlate(CeoModel.STIRLING_GT, "R4LLY", true);
public static readonly CeoPlate STIRLING_GT_MAJESTIC = new CeoPlate(CeoModel.STIRLING_GT, "M4J3ST1C", false);
public static readonly CeoPlate STIRLING_GT_TOURER = new CeoPlate(CeoModel.STIRLING_GT, "T0UR3R", false);
public static readonly CeoPlate X_EIGHTY_PROTO_MAKEBANK = new CeoPlate(CeoModel.X_EIGHTY_PROTO, "M4K3B4NK", true);
public static readonly CeoPlate X_EIGHTY_PROTO_FUTURE = new CeoPlate(CeoModel.X_EIGHTY_PROTO, "FUTUR3", false);
public static readonly CeoPlate X_EIGHTY_PROTO_TURBO = new CeoPlate(CeoModel.X_EIGHTY_PROTO, "TURB0", false);
public static readonly CeoPlate TYRUS_CITRUS = new CeoPlate(CeoModel.TYRUS, "C1TRUS", true);
public static readonly CeoPlate TYRUS_BESTLAP = new CeoPlate(CeoModel.TYRUS, "B35TL4P", false);
public static readonly CeoPlate TYRUS_TREX = new CeoPlate(CeoModel.TYRUS, "TR3X", false);
public static readonly CeoPlate T_TWENTY_DEVIL = new CeoPlate(CeoModel.T_TWENTY, "D3V1L", true);
public static readonly CeoPlate T_TWENTY_CARAMEL = new CeoPlate(CeoModel.T_TWENTY, "CAR4M3L", false);
public static readonly CeoPlate T_TWENTY_TOPSPEED = new CeoPlate(CeoModel.T_TWENTY, "T0PSP33D", false);
public static readonly CeoPlate ROOSEVELT_VALOR_OLDTIMER = new CeoPlate(CeoModel.ROOSEVELT_VALOR, "0LDT1M3R", true);
public static readonly CeoPlate ROOSEVELT_VALOR_LAWLESS = new CeoPlate(CeoModel.ROOSEVELT_VALOR, "L4WLE55", false);
public static readonly CeoPlate ROOSEVELT_VALOR_VALOR = new CeoPlate(CeoModel.ROOSEVELT_VALOR, "V4L0R", false);
#endregion
public CeoModel Model { get; }
public string Plate { get; }
public bool IsCollection { get; }
public string FormattedPlate
{
get
{
return $"{Plate}{(IsCollection ? "*" : "")}";
}
}
private CeoPlate(CeoModel model, string plate, bool collection)
{
Model = model;
Plate = plate;
IsCollection = collection;
PLATE_OBJECT_MAP[plate.ToLower()] = this;
}
public override string ToString()
{
return $"{Plate}{(IsCollection ? "*" : "")} ({Model.ToString()})";
}
public override bool Equals(object obj)
{
return ReferenceEquals(this, obj);
}
public override int GetHashCode()
{
int hashCode = 17;
hashCode = 31 * hashCode + Model.GetHashCode();
hashCode = 31 * hashCode + Plate.GetHashCode();
hashCode = 31 * hashCode + IsCollection.GetHashCode();
return hashCode;
}
public static bool TryFind(string plate, out CeoPlate ceoPlate)
{
if (plate.EndsWith("*"))
{
plate = plate.Substring(0, plate.Length - 1);
}
return PLATE_OBJECT_MAP.TryGetValue(plate.ToLower(), out ceoPlate);
}
}
}