Exemplo n.º 1
0
 public void Do()
 {
     foreach (var resourceCell in cellResources)
     {
         resourceLayer.ClearResources(resourceCell.Cell);
         resourceLayer.AddResource(resourceCell.NewResourceType, resourceCell.Cell, resourceLayer.GetMaxDensity(resourceCell.NewResourceType));
     }
 }
 public void Do()
 {
     foreach (var resourceCell in cellResources)
     {
         var density = resourceLayer.GetResource(resourceCell.Cell).Density + 1;
         resourceLayer.ClearResources(resourceCell.Cell);
         resourceLayer.AddResource(resourceCell.NewResourceType, resourceCell.Cell, density);
     }
 }
Exemplo n.º 3
0
        public void Seed(Actor self)
        {
            var cell = Util.RandomWalk(self.Location, self.World.SharedRandom)
                       .Take(info.MaxRange)
                       .SkipWhile(p => resourceLayer.GetResource(p).Type == info.ResourceType && !resourceLayer.CanAddResource(info.ResourceType, p))
                       .Cast <CPos?>().FirstOrDefault();

            if (cell != null && resourceLayer.CanAddResource(info.ResourceType, cell.Value))
            {
                resourceLayer.AddResource(info.ResourceType, cell.Value);
            }
        }
Exemplo n.º 4
0
        public void Flood(Actor self)
        {
            var waveFront = Util.ExpandFootprint(cells, true)
                            .Take(info.MaxRange)
                            .SkipWhile(p => !self.World.Map.Contains(p) ||
                                       (resourceLayer.GetResource(p).Type == info.ResourceType))
                            .ToArray();

            foreach (var cell in waveFront)
            {
                if (resourceLayer.CanAddResource(info.ResourceType, cell))
                {
                    cells.Add(cell);
                    resourceLayer.AddResource(info.ResourceType, cell, 1);
                }
            }
        }
Exemplo n.º 5
0
 public void Undo()
 {
     resourceLayer.ClearResources(cell);
     resourceLayer.AddResource(resourceContents.Type, cell, resourceContents.Density);
 }