コード例 #1
0
        public CountryRegionViewModel(Entities.Region region)
        {
            Name         = region.Name;
            RegionID     = region.ID;
            SpawnEnabled = region.CanSpawn;

            var passages = region.Passages.ToList();

            passages = passages.Concat(region.Passages1).ToList();

            foreach (var passage in passages)
            {
                Passages.Add(new CountryRegionPassageViewModel(passage, region.ID));
            }

            Developement         = (double)region.Development;
            DefenseSystemQuality = region.DefenseSystemQuality;
            if (region.Hospital != null)
            {
                Hospital = new CountryRegionHospitalInformation(region.Hospital);
            }

            foreach (var resource in region.Resources.ToList())
            {
                Resources.Add(new RegionResourceViewModel(resource));
            }
        }
コード例 #2
0
        private void AddRandomNeighborChamber(Rectangle chamber)
        {
            Point passage    = new Point(0, 0);
            int   nborWidth  = Utilities.RandomNumber(MinChamberWidth, MaxChamberWidth);
            int   nborHeight = Utilities.RandomNumber(MinChamberHeight, MaxChamberHeight);
            Point nborPos    = new Point(0, 0);

            switch (Utilities.RandomNumber(1, 4))
            {
            case 1:
                passage = PassageNorth(chamber);
                nborPos = ChamberNorth(passage, nborWidth, nborHeight);
                break;

            case 2:
                passage = PassageSouth(chamber);
                nborPos = ChamberSouth(passage, nborWidth);
                break;

            case 3:
                passage = PassageWest(chamber);
                nborPos = ChamberWest(passage, nborWidth, nborHeight);
                break;

            case 4:
                passage = PassageEast(chamber);
                nborPos = ChamberEast(passage, nborHeight);
                break;

            default:
                break;
            }

            Rectangle neighbor = new Rectangle(nborPos, new Point(nborWidth, nborHeight));

            if (CanFitChamber(GetChamberWithWalls(neighbor)) &&
                (ForceRegularChambers && !ChamberIntersects(GetChamberWithWalls(neighbor)) || !ForceRegularChambers && !ChamberIntersects(neighbor)))
            {
                Chambers.Add(neighbor);
                Passages.Add(passage);
            }
        }
コード例 #3
0
        private void CreateDB(List <JsonQuery> collections, object sender = null)
        {
            int i     = 0;
            int total = collections.Count;

            foreach (JsonQuery jq in collections)
            {
                CollectionQuery cq = new CollectionQuery(jq);

                foreach (var jp in jq.passages)
                {
                    CollectionPassage cp = new CollectionPassage(jp, jq.query_id);
                    Passages.Add(cp.passage_ID, cp);

                    cq.AddPassagesID(jp.passage_ID);
                }

                Querys.Add(cq.query_id, cq);
                if (sender != null && i++ % 100 == 0)
                {
                    (sender as BackgroundWorker).ReportProgress(100 * i / total);
                }
            }
        }