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);
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 private bool MatchClass(TankClass tankClass, TankClass key)
 {
     if (key == TankClass.Mixed)
     {
         return(true);
     }
     return(key == tankClass);
 }
Exemplo n.º 4
0
        //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();
        }
Exemplo n.º 5
0
 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();
 }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
 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();
 }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
 public int Compare(TankClass x, TankClass y)
 {
     return((int)x - (int)y);
 }
Exemplo n.º 11
0
 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));
 }