public static string ToClassKey(this TankClass type) { switch (type) { case TankClass.Observer: return(TankClassHelper.ObserverClassKey); case TankClass.LightTank: return(TankClassHelper.LightTankClassKey); case TankClass.MediumTank: return(TankClassHelper.MediumTankClassKey); case TankClass.HeavyTank: return(TankClassHelper.HeavyTankClassKey); case TankClass.ATSPG: return(TankClassHelper.ATSPGClassKey); case TankClass.SPG: return(TankClassHelper.SPGClassKey); default: throw new ArgumentOutOfRangeException("type", type, null); } }
public IEnumerable <ITankInfo> Search(string keyword, int tier = -1, TankClass tankClass = TankClass.Mixed, bool includeVirtualTanks = false) { if (keyword.Length == 0 && tier == -1 && tankClass == TankClass.Mixed) { return(new ITankInfo[0]); } List <ITankInfo> result = new List <ITankInfo>(); if (includeVirtualTanks) { result.AddRange( this.BenchmarkTanks.Values .SelectMany(g => g.Values) .Where(t => this.MatchTank(t, keyword, tier, tankClass))); } foreach (var nation in this.Nations.Values) { result.AddRange( nation.TankInfoCollection .Where(t => this.MatchTank(t, keyword, tier, tankClass))); } return(result); }
private bool MatchClass(TankClass tankClass, TankClass key) { if (key == TankClass.Mixed) { return(true); } return(key == tankClass); }
//conts public FillingStart(EquipamentType typeEq, string Product) { this.eq = this.eqFact.ConstructEquipament(typeEq); this.infos = BasicInfoClass.GetBasicInfo(); this.prod = ProductClass.GetProductClass(); this.tank = TankClass.GetTankClass(); this.convert = new Convertion(typeEq); this.errorlog = new ErrorLog(); }
public EndFilling(EquipamentType typeEq, bool checkBreak) { this.eq = this.eqFact.ConstructEquipament(typeEq); this.infos = BasicInfoClass.GetBasicInfo(); this.tank = TankClass.GetTankClass(); this.convert = new Convertion(typeEq); this.errorlog = new ErrorLog(); this.checkBreak = checkBreak; //this.logAction = new //logAction(); }
public BenchmarkTank GetBenchmarkTank(int tier, TankClass @class) { if (this.BenchmarkTanks.TryGetValue(tier, out Dictionary <TankClass, BenchmarkTank> classBenchmarks)) { if (classBenchmarks.TryGetValue(@class, out BenchmarkTank benchmark)) { return(benchmark); } } return(null); }
public ZeroLoadCell(EquipamentType typeEq) { //ID da Operação - cada operação possui um ID exceto a incial(BeginOfMAnipulation) // e a ZeroLoadCell this.operationID = "2"; this.tank = TankClass.GetTankClass(); this.basicInfo = BasicInfoClass.GetBasicInfo(); this.eq = this.eqFact.ConstructEquipament(typeEq); errorlog = new ErrorLog(); this.convert = new Convertion(typeEq); this.logAction = new LogAction(); }
public TankFinalWeight(EquipamentType typeEq, string OperationName, bool checkBreak) { //ID da Operação - cada operação possui um ID exceto a incial(BeginOfMAnipulation) this.operationID = "11"; this.eq = this.eqFact.ConstructEquipament(typeEq); this.OperationName = OperationName; this.checkBreak = checkBreak; this.infos = BasicInfoClass.GetBasicInfo(); this.tanks = TankClass.GetTankClass(); this.errorlog = new ErrorLog(); this.convert = new Convertion(typeEq); //this.logAction = new //logAction(); }
internal static BenchmarkTank Create(string key, uint id, IEnumerable <ITank> tanks) { var benchmark = new BenchmarkTank(); benchmark.Key = key; benchmark.Id = id; BenchmarkTankObject.Initialize(benchmark, tanks); var premiumTanks = tanks.Where(t => t.CurrencyType == CurrencyType.Gold); benchmark.GoldPrice = premiumTanks.Count() == 0 ? 0 : premiumTanks.Average(t => t.Price); var regularTanks = tanks.Where(t => t.CurrencyType == CurrencyType.Credit); benchmark.CreditPrice = regularTanks.Count() == 0 ? 0 : regularTanks.Average(t => t.Price); const TankClass unknownTankClass = (TankClass)(-2); benchmark.Class = unknownTankClass; foreach (var tank in tanks) { if (benchmark.Class == unknownTankClass) { benchmark.Class = tank.Class; } else if (benchmark.Class != TankClass.Mixed && benchmark.Class != tank.Class) { benchmark.Class = tank.Class; } } benchmark.NationKey = DefaultNationKey; benchmark.NationId = DefaultNationId; // this value is not compared, dummy benchmark.BattleTiers = tanks.First().BattleTiers; var camouflages = tanks.Where(t => t.CamouflageValue != null).Select(t => t.CamouflageValue).ToArray(); if (camouflages.Length > 0) { benchmark.CamouflageValue = new CamouflageValue(camouflages.Average(c => c.Stationary), camouflages.Average(c => c.Moving), camouflages.Average(c => c.Firing)); } else { benchmark.CamouflageValue = null; } var invisibilities = tanks.Where(t => t.Invisibility != null).Select(t => t.Invisibility).ToArray(); if (invisibilities.Length > 0) { benchmark.Invisibility = new Invisibility(invisibilities.Average(i => i.Moving), invisibilities.Average(i => i.Still), invisibilities.Average(i => i.CamouflageBonus), invisibilities.Average(i => i.CamouflageNetBonus), invisibilities.Average(i => i.FirePenalty)); } else { benchmark.Invisibility = null; } benchmark.CrewExperienceFactor = tanks.Average(t => t.CrewExperienceFactor); var mmWeights = tanks.Where(t => t.MatchMakingWeight > 0).Select(t => t.MatchMakingWeight).ToArray(); if (mmWeights.Length > 0) { benchmark.MatchMakingWeight = mmWeights.Average(); } else { benchmark.MatchMakingWeight = -1; } benchmark.RepairCostFactor = tanks.Average(t => t.RepairCostFactor); benchmark.Chassis = BenchmarkChassis.Create(key + "Chassis", benchmark.ObjectKey, tanks.Select(t => t.AvailableChassis.Values.Last())); benchmark.Turret = BenchmarkTurret.Create(key + "Turret", benchmark.ObjectKey, tanks.Select(t => t.AvailableTurrets.Values.Last())); benchmark.Gun = benchmark.Turret.AvailableGuns.Values.Last(); benchmark.Engine = BenchmarkEngine.Create(key + "Engine", benchmark.ObjectKey, tanks.Select(t => t.AvailableEngines.Values.Last())); benchmark.FuelTank = BenchmarkFuelTank.Create(key + "FuelTank", benchmark.ObjectKey, tanks.Select(t => t.AvailableFuelTanks.Values.Last())); benchmark.Radio = BenchmarkRadio.Create(key + "Radio", benchmark.ObjectKey, tanks.Select(t => t.AvailableRadios.Values.Last())); benchmark.Hull = BenchmarkHull.Create(key + "Hull", benchmark.ObjectKey, tanks.Select(t => t.Hull)); benchmark.Crews.Add(new Crew { PrimaryRole = CrewRoleType.Commander }); benchmark.Crews.Add(new Crew { PrimaryRole = CrewRoleType.Driver }); benchmark.Crews.Add(new Crew { PrimaryRole = CrewRoleType.Gunner }); benchmark.Crews.Add(new Crew { PrimaryRole = CrewRoleType.Loader }); benchmark.Crews.Add(new Crew { PrimaryRole = CrewRoleType.Radioman }); BenchmarkTank.WriteBenchmarkTankTags(benchmark); return(benchmark); }
public int Compare(TankClass x, TankClass y) { return((int)x - (int)y); }
private bool MatchTank(ITankInfo tank, string keyword, int tier = -1, TankClass tankClass = TankClass.Mixed) { return(this.MatchTier(tank.Tier, tier) && this.MatchClass(tank.Class, tankClass) && this.MatchKeyword(tank, keyword)); }