// per-frame data ---------- public CrossboardNodeBuilder(Shader shader, ComputeShader computeShader, BuildPriority priority = BuildPriority.Low) { Priority = priority; _crossboardMaterial = new Material(shader); _computeShader = computeShader; }
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)); }
/// <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); }
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)); } } }