示例#1
0
        public Feature feature(string varName, IList <Feature> from = null)
        {
            Feature offs;
            Func <Feature, bool> search = ss => string.Equals(ss.name, varName, StringComparison.OrdinalIgnoreCase);

            if (from == null)
            {
                offs = FeaturesResources.FirstOrDefault(search) ?? FeaturesCountry.FirstOrDefault(search) ??
                       FeaturesWarfare.FirstOrDefault(search) ?? FeaturesSpecial.FirstOrDefault(search);
            }
            else
            {
                offs = from.First(search);
            }
            return(offs);
            // if(from == null)
            //     offs = FeaturesResources
            //         .Concat(FeaturesCountry)
            //         .Concat(FeaturesWarfare)
            //         .Concat(FeaturesSpecial)
            //         .First(ss => ss.name.ToLower() == varName.ToLower());
            // else
            //     offs = from.First(ss => ss.name.ToLower() == varName.ToLower());
            // return offs;
        }
示例#2
0
        public IList <Feature> seekWarfareVariable(string[] varList)
        {
            IList <Feature> lf;
            IList <Feature> tmp = new List <Feature>();

            foreach (var v in varList)
            {
                var tmp2 = FeaturesWarfare.Where(s => v == s.name);
                if (tmp2.Any())
                {
                    tmp.Add(tmp2.First());
                }
            }
            lf = tmp;
            return(lf);
        }
示例#3
0
        public Feature FeatureByCategoryAndName(string category, string varname)
        {
            Feature feat;

            if (string.Equals(category, "warfare", StringComparison.OrdinalIgnoreCase))
            {
                feat = FeaturesWarfare.First(s => s.name == varname);
            }
            else if (string.Equals(category, "country", StringComparison.OrdinalIgnoreCase))
            {
                feat = FeaturesCountry.First(s => s.name == varname);
            }
            else if (string.Equals(category, "special", StringComparison.OrdinalIgnoreCase))
            {
                feat = FeaturesSpecial.First(s => s.name == varname);
            }
            else
            {
                feat = FeaturesResources.First(s => s.name == varname);
            }
            return(feat);
        }
示例#4
0
        public string pointerStore(string varName)
        {
            Feature offs;
            Func <Feature, bool> search = ss => string.Equals(ss.name, varName, StringComparison.OrdinalIgnoreCase);

            offs = FeaturesResources.FirstOrDefault(search) ?? FeaturesCountry.FirstOrDefault(search) ??
                   FeaturesWarfare.FirstOrDefault(search) ?? FeaturesSpecial.FirstOrDefault(search);
            var p      = DataPointer.First(s => s.id == offs.pointerId).pointer;
            var offset = String.IsNullOrEmpty(offs.offset) ? "" : "," + offs.offset;

            return(DataGame.ProcessName + "+" + p + offset);
            // Feature offs;
            // offs = FeaturesResources
            //    .Concat(FeaturesCountry)
            //    .Concat(FeaturesWarfare)
            //    .Concat(FeaturesSpecial)
            //    .First(ss => ss.name == varName);
            //
            // var p = DataPointer.First(s =>
            //     s.id == offs.pointerId).pointer;
            // var offset = String.IsNullOrEmpty(offs.offset) ? "" : "," + offs.offset;
            //
            // return DataGame.ProcessName + "+" + p + offset;
        }
示例#5
0
 public string getUnitId(IList <Feature> fList)
 {
     return(fList.Any(s => s.name == "UnitID") ? FeaturesWarfare.First(f => f.name == "UnitID").value : "");
 }
示例#6
0
 public string getUnitName()
 {
     return(FeaturesWarfare.First(f => f.name == "UnitName").value);
 }