Page MenuHomeWildfire Games

Freehand formation position
Changes PlannedPublic

Authored by OptimusShepard on Oct 18 2018, 6:30 PM.

Details

Reviewers
None
Summary

Allows by pressing "alt" while using the function freehandSelection, to position the units on the line like a pseudo formation.

Test Plan

Use freehandSelection while pressing "alt", the units should now position on the drawn line like a formation.

Diff Detail

Repository
rP 0 A.D. Public Repository
Lint
Lint Skipped
Unit
Unit Tests Skipped
Build Status
Buildable 6397
Build 10599: Vulcan BuildJenkins

Event Timeline

OptimusShepard created this revision.Oct 18 2018, 6:30 PM
OptimusShepard planned changes to this revision.Oct 18 2018, 6:32 PM

hotkey "alt" for change to freehand formation is not implemented yet. It's currently activated every time.

Vulcan added a subscriber: Vulcan.Oct 18 2018, 6:37 PM

Successful build - Chance fights ever on the side of the prudent.

Linter detected issues:
Executing section Default...
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 192| 192| 		}
| 193| 193| 	}
| 194| 194| 	else if (placementSupport.mode === "wall")
| 195|    |-	{
|    | 195|+	
| 196| 196| 		if (placementSupport.wallSet && placementSupport.position)
| 197| 197| 		{
| 198| 198| 			// Fetch an updated list of snapping candidate entities
| 210| 210| 				"snapEntities": placementSupport.wallSnapEntities,	// snapping entities (towers) for starting a wall segment
| 211| 211| 			});
| 212| 212| 		}
| 213|    |-	}
|    | 213|+	
| 214| 214| 
| 215| 215| 	return false;
| 216| 216| }
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 299| 299| 	}
| 300| 300| 
| 301| 301| 	if (!updateBuildingPlacementPreview())
| 302|    |-	{
|    | 302|+	
| 303| 303| 		// invalid location - don't build it
| 304| 304| 		// TODO: play a sound?
| 305| 305| 		return false;
| 306|    |-	}
|    | 306|+	
| 307| 307| 
| 308| 308| 	var selection = g_Selection.toList();
| 309| 309| 
|    | [NORMAL] ESLintBear (space-unary-ops):
|    | Unary word operator 'typeof' must be followed by whitespace.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 338| 338| 	}
| 339| 339| 
| 340| 340| 	var wallPlacementInfo = updateBuildingPlacementPreview(); // entities making up the wall (wall segments, towers, ...)
| 341|    |-	if (!(wallPlacementInfo === false || typeof(wallPlacementInfo) === "object"))
|    | 341|+	if (!(wallPlacementInfo === false || typeof (wallPlacementInfo) === "object"))
| 342| 342| 	{
| 343| 343| 		error("Invalid updateBuildingPlacementPreview return value: " + uneval(wallPlacementInfo));
| 344| 344| 		return false;
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'for-of'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 365| 365| 	// (this is somewhat non-ideal and hardcode-ish)
| 366| 366| 	var hasWallSegment = false;
| 367| 367| 	for (let piece of cmd.pieces)
| 368|    |-	{
|    | 368|+	
| 369| 369| 		if (piece.template != cmd.wallSet.templates.tower) // TODO: hardcode-ish :(
| 370| 370| 		{
| 371| 371| 			hasWallSegment = true;
| 372| 372| 			break;
| 373| 373| 		}
| 374|    |-	}
|    | 374|+	
| 375| 375| 
| 376| 376| 	if (hasWallSegment)
| 377| 377| 	{
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 488| 488| 	mouseIsOverObject = (hoveredObject != null);
| 489| 489| 
| 490| 490| 	// Close the menu when interacting with the game world
| 491|    |-	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown")
| 492|    |-		&& (ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
|    | 491|+	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown") &&
|    | 492|+		(ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
| 493| 493| 		closeMenu();
| 494| 494| 
| 495| 495| 	// State-machine processing:
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 529| 529| 
| 530| 530| 				// Update the list of selected units
| 531| 531| 				if (Engine.HotkeyIsPressed("selection.add"))
| 532|    |-				{
|    | 532|+				
| 533| 533| 					g_Selection.addList(ents);
| 534|    |-				}
|    | 534|+				
| 535| 535| 				else if (Engine.HotkeyIsPressed("selection.remove"))
| 536| 536| 				{
| 537| 537| 					g_Selection.removeList(ents);
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 533| 533| 					g_Selection.addList(ents);
| 534| 534| 				}
| 535| 535| 				else if (Engine.HotkeyIsPressed("selection.remove"))
| 536|    |-				{
|    | 536|+				
| 537| 537| 					g_Selection.removeList(ents);
| 538|    |-				}
|    | 538|+				
| 539| 539| 				else
| 540| 540| 				{
| 541| 541| 					g_Selection.reset();
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 589| 589| 				// If shift is down, let the player continue placing another of the same building
| 590| 590| 				var queued = Engine.HotkeyIsPressed("session.queue");
| 591| 591| 				if (tryPlaceBuilding(queued))
| 592|    |-				{
|    | 592|+				
| 593| 593| 					if (queued)
| 594| 594| 						inputState = INPUT_BUILDING_PLACEMENT;
| 595| 595| 					else
| 596| 596| 						inputState = INPUT_NORMAL;
| 597|    |-				}
|    | 597|+				
| 598| 598| 				else
| 599| 599| 				{
| 600| 600| 					inputState = INPUT_BUILDING_PLACEMENT;
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 596| 596| 						inputState = INPUT_NORMAL;
| 597| 597| 				}
| 598| 598| 				else
| 599|    |-				{
|    | 599|+				
| 600| 600| 					inputState = INPUT_BUILDING_PLACEMENT;
| 601|    |-				}
|    | 601|+				
| 602| 602| 				return true;
| 603| 603| 			}
| 604| 604| 			break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 649| 649| 		// user to continue building walls.
| 650| 650| 		switch (ev.type)
| 651| 651| 		{
| 652|    |-			case "mousemotion":
|    | 652|+		case "mousemotion":
| 653| 653| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 654| 654| 
| 655| 655| 				// Update the building placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 650| 650| 		switch (ev.type)
| 651| 651| 		{
| 652| 652| 			case "mousemotion":
| 653|    |-				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
|    | 653|+			placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 654| 654| 
| 655| 655| 				// Update the building placement preview, and by extension, the list of snapping candidate entities for both (!)
| 656| 656| 				// the ending point and the starting point to snap to.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 652| 652| 			case "mousemotion":
| 653| 653| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 654| 654| 
| 655|    |-				// Update the building placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | 655|+			// Update the building placement preview, and by extension, the list of snapping candidate entities for both (!)
| 656| 656| 				// the ending point and the starting point to snap to.
| 657| 657| 				//
| 658| 658| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 653| 653| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 654| 654| 
| 655| 655| 				// Update the building placement preview, and by extension, the list of snapping candidate entities for both (!)
| 656|    |-				// the ending point and the starting point to snap to.
|    | 656|+			// the ending point and the starting point to snap to.
| 657| 657| 				//
| 658| 658| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 659| 659| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 654| 654| 
| 655| 655| 				// Update the building placement preview, and by extension, the list of snapping candidate entities for both (!)
| 656| 656| 				// the ending point and the starting point to snap to.
| 657|    |-				//
|    | 657|+			//
| 658| 658| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 659| 659| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 660| 660| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 655| 655| 				// Update the building placement preview, and by extension, the list of snapping candidate entities for both (!)
| 656| 656| 				// the ending point and the starting point to snap to.
| 657| 657| 				//
| 658|    |-				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | 658|+			// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 659| 659| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 660| 660| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 661| 661| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 656| 656| 				// the ending point and the starting point to snap to.
| 657| 657| 				//
| 658| 658| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 659|    |-				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | 659|+			// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 660| 660| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 661| 661| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 662| 662| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 657| 657| 				//
| 658| 658| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 659| 659| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 660|    |-				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | 660|+			// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 661| 661| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 662| 662| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 663| 663| 				// points.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 658| 658| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 659| 659| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 660| 660| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 661|    |-				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | 661|+			// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 662| 662| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 663| 663| 				// points.
| 664| 664| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 659| 659| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 660| 660| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 661| 661| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 662|    |-				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | 662|+			// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 663| 663| 				// points.
| 664| 664| 
| 665| 665| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 660| 660| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 661| 661| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 662| 662| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 663|    |-				// points.
|    | 663|+			// points.
| 664| 664| 
| 665| 665| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 666| 666| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 662| 662| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 663| 663| 				// points.
| 664| 664| 
| 665|    |-				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | 665|+			placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 666| 666| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 667| 667| 
| 668| 668| 				if (result && result.cost)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 663| 663| 				// points.
| 664| 664| 
| 665| 665| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 666|    |-				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | 666|+			var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 667| 667| 
| 668| 668| 				if (result && result.cost)
| 669| 669| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 665| 665| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 666| 666| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 667| 667| 
| 668|    |-				if (result && result.cost)
|    | 668|+			if (result && result.cost)
| 669| 669| 				{
| 670| 670| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 671| 671| 					placementSupport.tooltipMessage = [
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 666| 666| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 667| 667| 
| 668| 668| 				if (result && result.cost)
| 669|    |-				{
|    | 669|+			{
| 670| 670| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 671| 671| 					placementSupport.tooltipMessage = [
| 672| 672| 						getEntityCostTooltip(result),
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 667| 667| 
| 668| 668| 				if (result && result.cost)
| 669| 669| 				{
| 670|    |-					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
|    | 670|+				var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 671| 671| 					placementSupport.tooltipMessage = [
| 672| 672| 						getEntityCostTooltip(result),
| 673| 673| 						getNeededResourcesTooltip(neededResources)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 668| 668| 				if (result && result.cost)
| 669| 669| 				{
| 670| 670| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 671|    |-					placementSupport.tooltipMessage = [
|    | 671|+				placementSupport.tooltipMessage = [
| 672| 672| 						getEntityCostTooltip(result),
| 673| 673| 						getNeededResourcesTooltip(neededResources)
| 674| 674| 					].filter(tip => tip).join("\n");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 669| 669| 				{
| 670| 670| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 671| 671| 					placementSupport.tooltipMessage = [
| 672|    |-						getEntityCostTooltip(result),
|    | 672|+					getEntityCostTooltip(result),
| 673| 673| 						getNeededResourcesTooltip(neededResources)
| 674| 674| 					].filter(tip => tip).join("\n");
| 675| 675| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 670| 670| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 671| 671| 					placementSupport.tooltipMessage = [
| 672| 672| 						getEntityCostTooltip(result),
| 673|    |-						getNeededResourcesTooltip(neededResources)
|    | 673|+					getNeededResourcesTooltip(neededResources)
| 674| 674| 					].filter(tip => tip).join("\n");
| 675| 675| 				}
| 676| 676| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 671| 671| 					placementSupport.tooltipMessage = [
| 672| 672| 						getEntityCostTooltip(result),
| 673| 673| 						getNeededResourcesTooltip(neededResources)
| 674|    |-					].filter(tip => tip).join("\n");
|    | 674|+				].filter(tip => tip).join("\n");
| 675| 675| 				}
| 676| 676| 
| 677| 677| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 672| 672| 						getEntityCostTooltip(result),
| 673| 673| 						getNeededResourcesTooltip(neededResources)
| 674| 674| 					].filter(tip => tip).join("\n");
| 675|    |-				}
|    | 675|+			}
| 676| 676| 
| 677| 677| 				break;
| 678| 678| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 674| 674| 					].filter(tip => tip).join("\n");
| 675| 675| 				}
| 676| 676| 
| 677|    |-				break;
|    | 677|+			break;
| 678| 678| 
| 679| 679| 			case "mousebuttondown":
| 680| 680| 				if (ev.button == SDL_BUTTON_LEFT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 676| 676| 
| 677| 677| 				break;
| 678| 678| 
| 679|    |-			case "mousebuttondown":
|    | 679|+		case "mousebuttondown":
| 680| 680| 				if (ev.button == SDL_BUTTON_LEFT)
| 681| 681| 				{
| 682| 682| 					var queued = Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 677| 677| 				break;
| 678| 678| 
| 679| 679| 			case "mousebuttondown":
| 680|    |-				if (ev.button == SDL_BUTTON_LEFT)
|    | 680|+			if (ev.button == SDL_BUTTON_LEFT)
| 681| 681| 				{
| 682| 682| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 683| 683| 					if (tryPlaceWall(queued))
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 678| 678| 
| 679| 679| 			case "mousebuttondown":
| 680| 680| 				if (ev.button == SDL_BUTTON_LEFT)
| 681|    |-				{
|    | 681|+			{
| 682| 682| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 683| 683| 					if (tryPlaceWall(queued))
| 684| 684| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 679| 679| 			case "mousebuttondown":
| 680| 680| 				if (ev.button == SDL_BUTTON_LEFT)
| 681| 681| 				{
| 682|    |-					var queued = Engine.HotkeyIsPressed("session.queue");
|    | 682|+				var queued = Engine.HotkeyIsPressed("session.queue");
| 683| 683| 					if (tryPlaceWall(queued))
| 684| 684| 					{
| 685| 685| 						if (queued)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 680| 680| 				if (ev.button == SDL_BUTTON_LEFT)
| 681| 681| 				{
| 682| 682| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 683|    |-					if (tryPlaceWall(queued))
|    | 683|+				if (tryPlaceWall(queued))
| 684| 684| 					{
| 685| 685| 						if (queued)
| 686| 686| 						{
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 681| 681| 				{
| 682| 682| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 683| 683| 					if (tryPlaceWall(queued))
| 684|    |-					{
|    | 684|+					
| 685| 685| 						if (queued)
| 686| 686| 						{
| 687| 687| 							// continue building, just set a new starting position where we left off
| 695| 695| 							placementSupport.Reset();
| 696| 696| 							inputState = INPUT_NORMAL;
| 697| 697| 						}
| 698|    |-					}
|    | 698|+					
| 699| 699| 					else
| 700| 700| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 701| 701| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 681| 681| 				{
| 682| 682| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 683| 683| 					if (tryPlaceWall(queued))
| 684|    |-					{
|    | 684|+				{
| 685| 685| 						if (queued)
| 686| 686| 						{
| 687| 687| 							// continue building, just set a new starting position where we left off
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 682| 682| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 683| 683| 					if (tryPlaceWall(queued))
| 684| 684| 					{
| 685|    |-						if (queued)
|    | 685|+					if (queued)
| 686| 686| 						{
| 687| 687| 							// continue building, just set a new starting position where we left off
| 688| 688| 							placementSupport.position = placementSupport.wallEndPosition;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 683| 683| 					if (tryPlaceWall(queued))
| 684| 684| 					{
| 685| 685| 						if (queued)
| 686|    |-						{
|    | 686|+					{
| 687| 687| 							// continue building, just set a new starting position where we left off
| 688| 688| 							placementSupport.position = placementSupport.wallEndPosition;
| 689| 689| 							placementSupport.wallEndPosition = undefined;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 684| 684| 					{
| 685| 685| 						if (queued)
| 686| 686| 						{
| 687|    |-							// continue building, just set a new starting position where we left off
|    | 687|+						// continue building, just set a new starting position where we left off
| 688| 688| 							placementSupport.position = placementSupport.wallEndPosition;
| 689| 689| 							placementSupport.wallEndPosition = undefined;
| 690| 690| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 685| 685| 						if (queued)
| 686| 686| 						{
| 687| 687| 							// continue building, just set a new starting position where we left off
| 688|    |-							placementSupport.position = placementSupport.wallEndPosition;
|    | 688|+						placementSupport.position = placementSupport.wallEndPosition;
| 689| 689| 							placementSupport.wallEndPosition = undefined;
| 690| 690| 
| 691| 691| 							inputState = INPUT_BUILDING_WALL_CLICK;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 686| 686| 						{
| 687| 687| 							// continue building, just set a new starting position where we left off
| 688| 688| 							placementSupport.position = placementSupport.wallEndPosition;
| 689|    |-							placementSupport.wallEndPosition = undefined;
|    | 689|+						placementSupport.wallEndPosition = undefined;
| 690| 690| 
| 691| 691| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 692| 692| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 688| 688| 							placementSupport.position = placementSupport.wallEndPosition;
| 689| 689| 							placementSupport.wallEndPosition = undefined;
| 690| 690| 
| 691|    |-							inputState = INPUT_BUILDING_WALL_CLICK;
|    | 691|+						inputState = INPUT_BUILDING_WALL_CLICK;
| 692| 692| 						}
| 693| 693| 						else
| 694| 694| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 689| 689| 							placementSupport.wallEndPosition = undefined;
| 690| 690| 
| 691| 691| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 692|    |-						}
|    | 692|+					}
| 693| 693| 						else
| 694| 694| 						{
| 695| 695| 							placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 690| 690| 
| 691| 691| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 692| 692| 						}
| 693|    |-						else
|    | 693|+					else
| 694| 694| 						{
| 695| 695| 							placementSupport.Reset();
| 696| 696| 							inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 691| 691| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 692| 692| 						}
| 693| 693| 						else
| 694|    |-						{
|    | 694|+					{
| 695| 695| 							placementSupport.Reset();
| 696| 696| 							inputState = INPUT_NORMAL;
| 697| 697| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 692| 692| 						}
| 693| 693| 						else
| 694| 694| 						{
| 695|    |-							placementSupport.Reset();
|    | 695|+						placementSupport.Reset();
| 696| 696| 							inputState = INPUT_NORMAL;
| 697| 697| 						}
| 698| 698| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 693| 693| 						else
| 694| 694| 						{
| 695| 695| 							placementSupport.Reset();
| 696|    |-							inputState = INPUT_NORMAL;
|    | 696|+						inputState = INPUT_NORMAL;
| 697| 697| 						}
| 698| 698| 					}
| 699| 699| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 694| 694| 						{
| 695| 695| 							placementSupport.Reset();
| 696| 696| 							inputState = INPUT_NORMAL;
| 697|    |-						}
|    | 697|+					}
| 698| 698| 					}
| 699| 699| 					else
| 700| 700| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 695| 695| 							placementSupport.Reset();
| 696| 696| 							inputState = INPUT_NORMAL;
| 697| 697| 						}
| 698|    |-					}
|    | 698|+				}
| 699| 699| 					else
| 700| 700| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 701| 701| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 696| 696| 							inputState = INPUT_NORMAL;
| 697| 697| 						}
| 698| 698| 					}
| 699|    |-					else
|    | 699|+				else
| 700| 700| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 701| 701| 
| 702| 702| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 697| 697| 						}
| 698| 698| 					}
| 699| 699| 					else
| 700|    |-						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | 700|+					placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 701| 701| 
| 702| 702| 					updateBuildingPlacementPreview();
| 703| 703| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 699| 699| 					else
| 700| 700| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 701| 701| 
| 702|    |-					updateBuildingPlacementPreview();
|    | 702|+				updateBuildingPlacementPreview();
| 703| 703| 					return true;
| 704| 704| 				}
| 705| 705| 				else if (ev.button == SDL_BUTTON_RIGHT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 700| 700| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 701| 701| 
| 702| 702| 					updateBuildingPlacementPreview();
| 703|    |-					return true;
|    | 703|+				return true;
| 704| 704| 				}
| 705| 705| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 706| 706| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 701| 701| 
| 702| 702| 					updateBuildingPlacementPreview();
| 703| 703| 					return true;
| 704|    |-				}
|    | 704|+			}
| 705| 705| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 706| 706| 				{
| 707| 707| 					// reset to normal input mode
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 702| 702| 					updateBuildingPlacementPreview();
| 703| 703| 					return true;
| 704| 704| 				}
| 705|    |-				else if (ev.button == SDL_BUTTON_RIGHT)
|    | 705|+			else if (ev.button == SDL_BUTTON_RIGHT)
| 706| 706| 				{
| 707| 707| 					// reset to normal input mode
| 708| 708| 					placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 703| 703| 					return true;
| 704| 704| 				}
| 705| 705| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 706|    |-				{
|    | 706|+			{
| 707| 707| 					// reset to normal input mode
| 708| 708| 					placementSupport.Reset();
| 709| 709| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 704| 704| 				}
| 705| 705| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 706| 706| 				{
| 707|    |-					// reset to normal input mode
|    | 707|+				// reset to normal input mode
| 708| 708| 					placementSupport.Reset();
| 709| 709| 					updateBuildingPlacementPreview();
| 710| 710| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 705| 705| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 706| 706| 				{
| 707| 707| 					// reset to normal input mode
| 708|    |-					placementSupport.Reset();
|    | 708|+				placementSupport.Reset();
| 709| 709| 					updateBuildingPlacementPreview();
| 710| 710| 
| 711| 711| 					inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 706| 706| 				{
| 707| 707| 					// reset to normal input mode
| 708| 708| 					placementSupport.Reset();
| 709|    |-					updateBuildingPlacementPreview();
|    | 709|+				updateBuildingPlacementPreview();
| 710| 710| 
| 711| 711| 					inputState = INPUT_NORMAL;
| 712| 712| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 708| 708| 					placementSupport.Reset();
| 709| 709| 					updateBuildingPlacementPreview();
| 710| 710| 
| 711|    |-					inputState = INPUT_NORMAL;
|    | 711|+				inputState = INPUT_NORMAL;
| 712| 712| 					return true;
| 713| 713| 				}
| 714| 714| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 709| 709| 					updateBuildingPlacementPreview();
| 710| 710| 
| 711| 711| 					inputState = INPUT_NORMAL;
| 712|    |-					return true;
|    | 712|+				return true;
| 713| 713| 				}
| 714| 714| 				break;
| 715| 715| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 710| 710| 
| 711| 711| 					inputState = INPUT_NORMAL;
| 712| 712| 					return true;
| 713|    |-				}
|    | 713|+			}
| 714| 714| 				break;
| 715| 715| 		}
| 716| 716| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 711| 711| 					inputState = INPUT_NORMAL;
| 712| 712| 					return true;
| 713| 713| 				}
| 714|    |-				break;
|    | 714|+			break;
| 715| 715| 		}
| 716| 716| 		break;
| 717| 717| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 721| 721| 		case "mousemotion":
| 722| 722| 			let maxDragDelta = 16;
| 723| 723| 			if (g_DragStart.distanceTo(ev) >= maxDragDelta)
| 724|    |-			{
|    | 724|+			
| 725| 725| 				// Rotate in the direction of the mouse
| 726| 726| 				placementSupport.angle = placementSupport.position.horizAngleTo(Engine.GetTerrainAtScreenPoint(ev.x, ev.y));
| 727|    |-			}
|    | 727|+			
| 728| 728| 			else
| 729| 729| 			{
| 730| 730| 				// If the mouse is near the center, snap back to the default orientation
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 726| 726| 				placementSupport.angle = placementSupport.position.horizAngleTo(Engine.GetTerrainAtScreenPoint(ev.x, ev.y));
| 727| 727| 			}
| 728| 728| 			else
| 729|    |-			{
|    | 729|+			
| 730| 730| 				// If the mouse is near the center, snap back to the default orientation
| 731| 731| 				placementSupport.SetDefaultAngle();
| 732|    |-			}
|    | 732|+			
| 733| 733| 
| 734| 734| 			var snapData = Engine.GuiInterfaceCall("GetFoundationSnapData", {
| 735| 735| 				"template": placementSupport.template,
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 752| 752| 				// If shift is down, let the player continue placing another of the same building
| 753| 753| 				var queued = Engine.HotkeyIsPressed("session.queue");
| 754| 754| 				if (tryPlaceBuilding(queued))
| 755|    |-				{
|    | 755|+				
| 756| 756| 					if (queued)
| 757| 757| 						inputState = INPUT_BUILDING_PLACEMENT;
| 758| 758| 					else
| 759| 759| 						inputState = INPUT_NORMAL;
| 760|    |-				}
|    | 760|+				
| 761| 761| 				else
| 762| 762| 				{
| 763| 763| 					inputState = INPUT_BUILDING_PLACEMENT;
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 759| 759| 						inputState = INPUT_NORMAL;
| 760| 760| 				}
| 761| 761| 				else
| 762|    |-				{
|    | 762|+				
| 763| 763| 					inputState = INPUT_BUILDING_PLACEMENT;
| 764|    |-				}
|    | 764|+				
| 765| 765| 				return true;
| 766| 766| 			}
| 767| 767| 			break;
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 808| 808| 
| 809| 809| 	// Handle the time-warp testing features, restricted to single-player
| 810| 810| 	if (!g_IsNetworked && Engine.GetGUIObjectByName("devTimeWarp").checked)
| 811|    |-	{
|    | 811|+	
| 812| 812| 		if (ev.type == "hotkeydown" && ev.hotkey == "session.timewarp.fastforward")
| 813| 813| 			Engine.SetSimRate(20.0);
| 814| 814| 		else if (ev.type == "hotkeyup" && ev.hotkey == "session.timewarp.fastforward")
| 815| 815| 			Engine.SetSimRate(1.0);
| 816| 816| 		else if (ev.type == "hotkeyup" && ev.hotkey == "session.timewarp.rewind")
| 817| 817| 			Engine.RewindTimeWarp();
| 818|    |-	}
|    | 818|+	
| 819| 819| 
| 820| 820| 	if (ev.hotkey == "session.highlightguarding")
| 821| 821| 	{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 867| 867| 			break;
| 868| 868| 
| 869| 869| 		case "hotkeydown":
| 870|    |-				if (ev.hotkey.indexOf("selection.group.") == 0)
|    | 870|+			if (ev.hotkey.indexOf("selection.group.") == 0)
| 871| 871| 				{
| 872| 872| 					let now = Date.now();
| 873| 873| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 868| 868| 
| 869| 869| 		case "hotkeydown":
| 870| 870| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 871|    |-				{
|    | 871|+			{
| 872| 872| 					let now = Date.now();
| 873| 873| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 874| 874| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 869| 869| 		case "hotkeydown":
| 870| 870| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 871| 871| 				{
| 872|    |-					let now = Date.now();
|    | 872|+				let now = Date.now();
| 873| 873| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 874| 874| 					{
| 875| 875| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 870| 870| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 871| 871| 				{
| 872| 872| 					let now = Date.now();
| 873|    |-					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | 873|+				if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 874| 874| 					{
| 875| 875| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 876| 876| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 871| 871| 				{
| 872| 872| 					let now = Date.now();
| 873| 873| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 874|    |-					{
|    | 874|+				{
| 875| 875| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 876| 876| 						{
| 877| 877| 							var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 872| 872| 					let now = Date.now();
| 873| 873| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 874| 874| 					{
| 875|    |-						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | 875|+					if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 876| 876| 						{
| 877| 877| 							var sptr = ev.hotkey.split(".");
| 878| 878| 							performGroup("snap", sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 873| 873| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 874| 874| 					{
| 875| 875| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 876|    |-						{
|    | 876|+					{
| 877| 877| 							var sptr = ev.hotkey.split(".");
| 878| 878| 							performGroup("snap", sptr[3]);
| 879| 879| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 874| 874| 					{
| 875| 875| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 876| 876| 						{
| 877|    |-							var sptr = ev.hotkey.split(".");
|    | 877|+						var sptr = ev.hotkey.split(".");
| 878| 878| 							performGroup("snap", sptr[3]);
| 879| 879| 						}
| 880| 880| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 875| 875| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 876| 876| 						{
| 877| 877| 							var sptr = ev.hotkey.split(".");
| 878|    |-							performGroup("snap", sptr[3]);
|    | 878|+						performGroup("snap", sptr[3]);
| 879| 879| 						}
| 880| 880| 					}
| 881| 881| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 876| 876| 						{
| 877| 877| 							var sptr = ev.hotkey.split(".");
| 878| 878| 							performGroup("snap", sptr[3]);
| 879|    |-						}
|    | 879|+					}
| 880| 880| 					}
| 881| 881| 					else
| 882| 882| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 877| 877| 							var sptr = ev.hotkey.split(".");
| 878| 878| 							performGroup("snap", sptr[3]);
| 879| 879| 						}
| 880|    |-					}
|    | 880|+				}
| 881| 881| 					else
| 882| 882| 					{
| 883| 883| 						var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 878| 878| 							performGroup("snap", sptr[3]);
| 879| 879| 						}
| 880| 880| 					}
| 881|    |-					else
|    | 881|+				else
| 882| 882| 					{
| 883| 883| 						var sptr = ev.hotkey.split(".");
| 884| 884| 						performGroup(sptr[2], sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 879| 879| 						}
| 880| 880| 					}
| 881| 881| 					else
| 882|    |-					{
|    | 882|+				{
| 883| 883| 						var sptr = ev.hotkey.split(".");
| 884| 884| 						performGroup(sptr[2], sptr[3]);
| 885| 885| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 880| 880| 					}
| 881| 881| 					else
| 882| 882| 					{
| 883|    |-						var sptr = ev.hotkey.split(".");
|    | 883|+					var sptr = ev.hotkey.split(".");
| 884| 884| 						performGroup(sptr[2], sptr[3]);
| 885| 885| 
| 886| 886| 						doublePressTimer = now;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 881| 881| 					else
| 882| 882| 					{
| 883| 883| 						var sptr = ev.hotkey.split(".");
| 884|    |-						performGroup(sptr[2], sptr[3]);
|    | 884|+					performGroup(sptr[2], sptr[3]);
| 885| 885| 
| 886| 886| 						doublePressTimer = now;
| 887| 887| 						prevHotkey = ev.hotkey;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 883| 883| 						var sptr = ev.hotkey.split(".");
| 884| 884| 						performGroup(sptr[2], sptr[3]);
| 885| 885| 
| 886|    |-						doublePressTimer = now;
|    | 886|+					doublePressTimer = now;
| 887| 887| 						prevHotkey = ev.hotkey;
| 888| 888| 					}
| 889| 889| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 884| 884| 						performGroup(sptr[2], sptr[3]);
| 885| 885| 
| 886| 886| 						doublePressTimer = now;
| 887|    |-						prevHotkey = ev.hotkey;
|    | 887|+					prevHotkey = ev.hotkey;
| 888| 888| 					}
| 889| 889| 				}
| 890| 890| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 885| 885| 
| 886| 886| 						doublePressTimer = now;
| 887| 887| 						prevHotkey = ev.hotkey;
| 888|    |-					}
|    | 888|+				}
| 889| 889| 				}
| 890| 890| 				break;
| 891| 891| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 886| 886| 						doublePressTimer = now;
| 887| 887| 						prevHotkey = ev.hotkey;
| 888| 888| 					}
| 889|    |-				}
|    | 889|+			}
| 890| 890| 				break;
| 891| 891| 		}
| 892| 892| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
| 887| 887| 						prevHotkey = ev.hotkey;
| 888| 888| 					}
| 889| 889| 				}
| 890|    |-				break;
|    | 890|+			break;
| 891| 891| 		}
| 892| 892| 		break;
| 893| 893| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|1055|1055| 			placementSupport.position = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
|1056|1056| 
|1057|1057| 			if (placementSupport.mode === "wall")
|1058|    |-			{
|    |1058|+			
|1059|1059| 				// Including only the on-screen towers in the next snap candidate list is sufficient here, since the user is
|1060|1060| 				// still selecting a starting point (which must necessarily be on-screen). (The update of the snap entities
|1061|1061| 				// itself happens in the call to updateBuildingPlacementPreview below).
|1062|1062| 				placementSupport.wallSnapEntitiesIncludeOffscreen = false;
|1063|    |-			}
|    |1063|+			
|1064|1064| 			else
|1065|1065| 			{
|1066|1066| 				// cancel if not enough resources
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 1 tab but found 0.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|1206|1206| 
|1207|1207| 	// Change to freehand formation position.
|1208|1208| 	let freehandFormation = false;
|1209|    |-//	if (ev.button == ALT && selection.length >= g_FreehandFormation_MinNumberOfUnits)
|    |1209|+	//	if (ev.button == ALT && selection.length >= g_FreehandFormation_MinNumberOfUnits)
|1210|1210| 		freehandFormation = true;
|1211|1211| 
|1212|1212| 	// Even distribution of the units on the line.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 1 tab but found 2.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|1207|1207| 	// Change to freehand formation position.
|1208|1208| 	let freehandFormation = false;
|1209|1209| //	if (ev.button == ALT && selection.length >= g_FreehandFormation_MinNumberOfUnits)
|1210|    |-		freehandFormation = true;
|    |1210|+	freehandFormation = true;
|1211|1211| 
|1212|1212| 	// Even distribution of the units on the line.
|1213|1213| 	let p0 = inputLine[0];
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|1359|1359| 	if (templateData.attack &&
|1360|1360| 		templateData.attack.Ranged &&
|1361|1361| 		templateData.attack.Ranged.maxRange)
|1362|    |-	{
|    |1362|+	
|1363|1363| 		// add attack information to display a good tooltip
|1364|1364| 		placementSupport.attack = templateData.attack;
|1365|    |-	}
|    |1365|+	
|1366|1366| }
|1367|1367| 
|1368|1368| // Batch training:
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|1443|1443| 	if (Engine.HotkeyIsPressed("session.batchtrain") && (canBeAddedCount == undefined || canBeAddedCount > 1))
|1444|1444| 	{
|1445|1445| 		if (inputState == INPUT_BATCHTRAINING)
|1446|    |-		{
|    |1446|+		
|1447|1447| 			// Check if we are training in the same building(s) as the last batch
|1448|1448| 			// NOTE: We just check if the arrays are the same and if the order is the same
|1449|1449| 			// If the order changed, we have a new selection and we should create a new batch.
|1476|1476| 			else if (!decrement)
|1477|1477| 				flushTrainingBatch();
|1478|1478| 				// fall through to create the new batch
|1479|    |-		}
|    |1479|+		
|1480|1480| 
|1481|1481| 		// Don't start a new batch if decrementing or unable to afford it.
|1482|1482| 		if (decrement || Engine.GuiInterfaceCall("GetNeededResources", { "cost":
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|1475|1475| 			// Otherwise start a new one
|1476|1476| 			else if (!decrement)
|1477|1477| 				flushTrainingBatch();
|1478|    |-				// fall through to create the new batch
|    |1478|+			// fall through to create the new batch
|1479|1479| 		}
|1480|1480| 
|1481|1481| 		// Don't start a new batch if decrementing or unable to afford it.
|    | [NORMAL] ESLintBear (space-in-parens):
|    | There should be no spaces inside this paren.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|1553|1553| 		g_BatchTrainingEntityAllowedCount < batchedSize * appropriateBuildings.length)
|1554|1554| 	{
|1555|1555| 		// Train as many full batches as we can
|1556|    |-		let buildingsCountToTrainFullBatch = Math.floor( g_BatchTrainingEntityAllowedCount / batchedSize);
|    |1556|+		let buildingsCountToTrainFullBatch = Math.floor(g_BatchTrainingEntityAllowedCount / batchedSize);
|1557|1557| 		Engine.PostNetworkCommand({
|1558|1558| 			"type": "train",
|1559|1559| 			"entities": appropriateBuildings.slice(0, buildingsCountToTrainFullBatch),
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/session/input.js
|1632|1632| 	var selectall = Engine.HotkeyIsPressed("selection.offscreen");
|1633|1633| 
|1634|1634| 	// Reset the last idle unit, etc., if the selection type has changed.
|1635|    |-	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v,i) => v === lastIdleClasses[i]))
|    |1635|+	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v, i) => v === lastIdleClasses[i]))
|1636|1636| 		resetIdleUnit();
|1637|1637| 	lastIdleClasses = classes;
|1638|1638| 

binaries/data/mods/public/gui/session/input.js
| 239| »   »   var·entState·=·GetEntityState(ent);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'entState' is already declared in the upper scope.

binaries/data/mods/public/gui/session/input.js
| 246| »   var·target·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'target' to undefined.

binaries/data/mods/public/gui/session/input.js
| 260| »   var·actionInfo·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'actionInfo' to undefined.

binaries/data/mods/public/gui/session/input.js
| 477| »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 504| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 508| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 563| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 573| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 621| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 650| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 719| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 836| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 839| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 939| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1028| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1042| »   »   »   »   let·action·=·determineAction(ev.x,·ev.y);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'action' is already declared in the upper scope.

binaries/data/mods/public/gui/session/input.js
|1051| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1120| »   »   »   switch·(ev.hotkey)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1583| »   switch·(action)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 246| »   var·target·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'target' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 260| »   var·actionInfo·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'actionInfo' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 274| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 277| »   »   »   var·r·=·g_UnitActions[action].hotkeyActionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 282| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 285| »   »   »   var·r·=·g_UnitActions[action].actionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 492| »   »   &&·(ev.button·==·SDL_BUTTON_LEFT·||·ev.button·==·SDL_BUTTON_RIGHT))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/gui/session/input.js
| 522| »   »   »   »   var·rect·=·updateBandbox(bandbox,·ev,·true);
|    | [NORMAL] JSHintBear:
|    | 'rect' is already defined.

binaries/data/mods/public/gui/session/input.js
| 525| »   »   »   »   var·ents·=·getPreferredEntities(Engine.PickPlayerEntitiesInRect(rect[0],·rect[1],·rect[2],·rect[3],·g_ViewedPlayer));
|    | [NORMAL] JSHintBear:
|    | 'ents' is already defined.

binaries/data/mods/public/gui/session/input.js
| 682| »   »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 722| »   »   »   let·maxDragDelta·=·16;
|    | [MAJOR] JSHintBear:
|    | 'maxDragDelta' has already been declared.

binaries/data/mods/public/gui/session/input.js
| 753| »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 883| »   »   »   »   »   »   var·sptr·=·ev.hotkey.split(".");
|    | [NORMAL] JSHintBear:
|    | 'sptr' is already defined.

binaries/data/mods/public/gui/session/input.js
| 899| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.

binaries/data/mods/public/gui/session/input.js
| 925| »   »   »   }
|    | [NORMAL] JSHintBear:
|    | Expected a 'break' statement before 'default'.

binaries/data/mods/public/gui/session/input.js
| 949| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.

binaries/data/mods/public/gui/session/input.js
|1191| »   if·(!ev.button·==·SDL_BUTTON_RIGHT)
|    | [NORMAL] JSHintBear:
|    | Confusing use of '!'.

Link to build: https://jenkins.wildfiregames.com/job/differential/745/display/redirect

nani added a subscriber: nani.Oct 19 2018, 1:15 PM

Does or will take into account units orientation? Most units in the image face outwards in the image except some.

smiley added a subscriber: smiley.Oct 19 2018, 4:08 PM

2 minor changes for the next update.

binaries/data/mods/public/gui/session/input.js
74

Shouldn't it be DepthOfLine?

1216

if (freehandFormation)