Esempio n. 1
0
        // per-frame data ----------

        public CrossboardNodeBuilder(Shader shader, ComputeShader computeShader, BuildPriority priority = BuildPriority.Low)
        {
            Priority = priority;

            _crossboardMaterial = new Material(shader);
            _computeShader      = computeShader;
        }
Esempio n. 2
0
 public void Think(int turn, int maxTurn, int player, GameField field, ICommander commander)
 {
     if (field.GetPrepareResource(plan.Excavator, player, true) >= 4 && field[plan.Excavator].Terrain == Terrain.Wasteland)
     {
         disposition.AddBuildOrder(1000, plan.Excavator, Terrain.Excavator);
         disposition.AddMoveOrder(100, plan.Excavator, GameField.GetNeedRobot(Terrain.Excavator));
     }
     foreach (Point town in plan.Town)
     {
         if (field.GetPrepareResource(town, player, true) < 9) continue;
         disposition.AddBuildOrder(1000, town, Terrain.Town);
         disposition.AddMoveOrder(100, town, GameField.GetNeedRobot(Terrain.Town));
     }
     DistanceMap distance = new DistanceMap(field, player, InitialPoint);
     BuildPriority priority = new BuildPriority(field, player, InitialPoint, 99);
     foreach (Point point in field.Iterator())
     {
         if (field.GetPrepareResource(point, player, true) < 4) continue;
         if (!field.IsAdjoinTerritory(point, player)) continue;
         if (point == new Point { X = 6, Y = 6 }) continue;
         Terrain building;
         switch(field[point].Terrain)
         {
             case Terrain.Wasteland: building = Terrain.House; break;
             case Terrain.Hole: building = Terrain.Bridge; break;
             default: continue;
         }
         disposition.AddBuildOrder(priority[point] * 10, point, building);
         disposition.AddMoveOrder(priority[point], point, GameField.GetNeedRobot(building));
     }
     foreach (OrderBuild build in disposition.EnumerateOrder<OrderBuild>())
     {
         disposition.AddSecureResource(build.Priority / 10 - 1, build.Point, player, field);
     }
     disposition.AddSecureGround(150, 100, player, field);
     disposition.AddKamikaze(0, player, field);
     disposition.Dispose(field, commander);
 }
        // per-frame data

        public DefaultGeometryNodeBuilder(Shader shader, BuildPriority priority = BuildPriority.Immediate)
        {
            Priority = priority;

            _defaultMaterial = new Material(shader);
        }
        /// <summary>
        /// Request a build
        /// </summary>
        /// <param name="projectName"></param>
        /// <param name="buildDefinitionId"></param>
        /// <param name="reason"></param>
        /// <param name="priority"></param>
        /// <param name="queueId"></param>
        /// <returns></returns>
        public async Task <BuildRequest> RequestBuild(string projectName, int buildDefinitionId, BuildReason reason, BuildPriority priority, int?queueId = null)
        {
            string response = await PostResponse("requests",
                                                 new { definition = new { id = buildDefinitionId }, reason = reason.ToString(), priority = priority.ToString(), queue = new { id = queueId } },
                                                 projectName);

            return(JsonConvert.DeserializeObject <BuildRequest>(response));
        }
Esempio n. 5
0
 /// <summary>
 /// Request a build
 /// </summary>
 /// <param name="projectName"></param>
 /// <param name="buildDefinitionId"></param>
 /// <param name="reason"></param>
 /// <param name="priority"></param>
 /// <param name="queueId"></param>
 /// <returns></returns>
 public async Task<BuildRequest> RequestBuild(string projectName, int buildDefinitionId, BuildReason reason, BuildPriority priority, int? queueId = null)
 {
     string response = await PostResponse("requests",
         new { definition = new { id = buildDefinitionId }, reason = reason.ToString(), priority = priority.ToString(), queue = new { id = queueId } },
         projectName);
     return JsonConvert.DeserializeObject<BuildRequest>(response);
 }
Esempio n. 6
0
 private void UpdateInfo()
 {
     TurnInfo.Text = manager.GetTurnInfo();
     Player1Info.Text = manager.GetPlayerInfo(0);
     Player2Info.Text = manager.GetPlayerInfo(1);
     Player3Info.Text = manager.GetPlayerInfo(2);
     distance = new DistanceMap(manager.Field, manager.Player, new Common.Point { X = selectX, Y = selectY });
     priority = new BuildPriority(manager.Field, manager.Player, new Common.Point { X = selectX, Y = selectY }, 255);
     GameField field = manager.Field;
     int w = field.Width, h = field.Height;
     for (int x = 0; x < w; x++)
     {
         for (int y = 0; y < h; y++)
         {
             mass[x, y].UpdateSelected(x == selectX && y == selectY);
             mass[x, y].UpdateTerrain(field[x, y].Player, field[x, y].Terrain);
             mass[x, y].UpdateTextInfo(BuildMassInfo(x, y));
         }
     }
 }