Page MenuHomeWildfire Games

Elaborate Armour.
Needs ReviewPublic

Authored by Freagarach on Aug 25 2019, 10:03 PM.

Details

Reviewers
wraitii
Group Reviewers
Restricted Owners Package(Owns No Changed Paths)
Summary

This patch:

  • Puts the armour in nodes (damage types in a damage node).
  • Puts those nodes in anyName-nodes, so that in the future a mod can circumvent a type of armour (e.g. shield not used when hit from the back).
  • Also adds support for resistance against capture.
  • Armour -> Resistance.

(Some inquiry on the forum.)

Test Plan

Verify that no node is forgotten.

  • Units_demo loads fine.
  • Armour is applied (effect reduced when hit).
  • Techs apply.
  • Auras apply.
  • PetraAI gets the point (though does not use "capture"-armour (yet)).

Diff Detail

Event Timeline

Freagarach created this revision.Aug 25 2019, 10:03 PM

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/496/display/redirect

Freagarach updated this revision to Diff 9517.Aug 25 2019, 10:20 PM

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|  87|  87| 		// If the elements are still strings, split them by space or by '+'
|  88|  88| 		if (typeof sublist == "string")
|  89|  89| 			sublist = sublist.split(/[+\s]+/);
|  90|    |-		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1)
|  91|    |-		                    || (c[0] != "!" && classes.indexOf(c) != -1)))
|    |  90|+		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1) ||
|    |  91|+		                    (c[0] != "!" && classes.indexOf(c) != -1)))
|  92|  92| 			return true;
|  93|  93| 	}
|  94|  94| 

binaries/data/mods/public/globalscripts/Templates.js
|  91| »   »   ····················||·(c[0]·!=·"!"·&&·classes.indexOf(c)·!=·-1)))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 799| 799| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 800| 800| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 801| 801| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 802|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 802|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 803| 803| 	}
| 804| 804| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 805| 805| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1632|1632| 			{
|1633|1633| 				minDist2 = dist2;
|1634|1634| 				minDistEntitySnapData = {
|1635|    |-						"x": pos.x,
|    |1635|+					"x": pos.x,
|1636|1636| 						"z": pos.z,
|1637|1637| 						"angle": cmpPosition.GetRotation().y,
|1638|1638| 						"ent": ent
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1633|1633| 				minDist2 = dist2;
|1634|1634| 				minDistEntitySnapData = {
|1635|1635| 						"x": pos.x,
|1636|    |-						"z": pos.z,
|    |1636|+					"z": pos.z,
|1637|1637| 						"angle": cmpPosition.GetRotation().y,
|1638|1638| 						"ent": ent
|1639|1639| 				};
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1634|1634| 				minDistEntitySnapData = {
|1635|1635| 						"x": pos.x,
|1636|1636| 						"z": pos.z,
|1637|    |-						"angle": cmpPosition.GetRotation().y,
|    |1637|+					"angle": cmpPosition.GetRotation().y,
|1638|1638| 						"ent": ent
|1639|1639| 				};
|1640|1640| 			}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1635|1635| 						"x": pos.x,
|1636|1636| 						"z": pos.z,
|1637|1637| 						"angle": cmpPosition.GetRotation().y,
|1638|    |-						"ent": ent
|    |1638|+					"ent": ent
|1639|1639| 				};
|1640|1640| 			}
|1641|1641| 		}
Executing section cli...

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/497/display/redirect

Freagarach updated this revision to Diff 9519.Aug 26 2019, 12:11 PM
Freagarach retitled this revision from [WIP] - Elaborate Armour. to Elaborate Armour..
Freagarach edited the summary of this revision. (Show Details)
Freagarach edited the test plan for this revision. (Show Details)
Freagarach added a reviewer: Restricted Owners Package.
Freagarach edited subscribers, added: Nescio; removed: wraitii.
  • Auras.
  • Tooltip support for capture resistance.
  • Updated PetraAI.
Owners added subscribers: Restricted Owners Package, Restricted Owners Package.Aug 26 2019, 12:11 PM

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|  18|  18| 	this.cp = [];
|  19|  19| };
|  20|  20| 
|  21|    |-//// Interface functions ////
|    |  21|+// // Interface functions ////
|  22|  22| 
|  23|  23| /**
|  24|  24|  * Returns the current capture points array
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
| 145| 145| 	return sourceEnemyCp > 0;
| 146| 146| };
| 147| 147| 
| 148|    |-//// Private functions ////
|    | 148|+// // Private functions ////
| 149| 149| 
| 150| 150| /**
| 151| 151|  * This has to be called whenever the capture points are changed.
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
| 260| 260| 	Engine.PostMessage(this.entity, MT_CaptureRegenStateChanged, { "regenerating": true, "regenRate": regenRate, "territoryDecay": decay });
| 261| 261| };
| 262| 262| 
| 263|    |-//// Message Listeners ////
|    | 263|+// // Message Listeners ////
| 264| 264| 
| 265| 265| Capturable.prototype.OnValueModification = function(msg)
| 266| 266| {

binaries/data/mods/public/simulation/components/Capturable.js
| 192| »   »   var·garrisonRegenRate·=·0;
|    | [NORMAL] JSHintBear:
|    | 'garrisonRegenRate' is already defined.

binaries/data/mods/public/simulation/components/Capturable.js
| 194| »   return·regenRate·+·garrisonRegenRate;
|    | [NORMAL] JSHintBear:
|    | 'garrisonRegenRate' used out of scope.
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|  87|  87| 		// If the elements are still strings, split them by space or by '+'
|  88|  88| 		if (typeof sublist == "string")
|  89|  89| 			sublist = sublist.split(/[+\s]+/);
|  90|    |-		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1)
|  91|    |-		                    || (c[0] != "!" && classes.indexOf(c) != -1)))
|    |  90|+		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1) ||
|    |  91|+		                    (c[0] != "!" && classes.indexOf(c) != -1)))
|  92|  92| 			return true;
|  93|  93| 	}
|  94|  94| 

binaries/data/mods/public/globalscripts/Templates.js
|  91| »   »   ····················||·(c[0]·!=·"!"·&&·classes.indexOf(c)·!=·-1)))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 435| 435| 	let cmpArmour = Engine.QueryInterface(ent, IID_Resistance);
| 436| 436| 	if (cmpArmour)
| 437| 437| 	{
| 438|    |-		ret.armour = {}
|    | 438|+		ret.armour = {};
| 439| 439| 		Object.assign(ret.armour, cmpArmour.GetArmourStrengths("Damage"));
| 440| 440| 		Object.assign(ret.armour, cmpArmour.GetArmourStrengths("Capture"));
| 441| 441| 	}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 800| 800| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 801| 801| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 802| 802| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 803|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 803|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 804| 804| 	}
| 805| 805| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 806| 806| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1633|1633| 			{
|1634|1634| 				minDist2 = dist2;
|1635|1635| 				minDistEntitySnapData = {
|1636|    |-						"x": pos.x,
|    |1636|+					"x": pos.x,
|1637|1637| 						"z": pos.z,
|1638|1638| 						"angle": cmpPosition.GetRotation().y,
|1639|1639| 						"ent": ent
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1634|1634| 				minDist2 = dist2;
|1635|1635| 				minDistEntitySnapData = {
|1636|1636| 						"x": pos.x,
|1637|    |-						"z": pos.z,
|    |1637|+					"z": pos.z,
|1638|1638| 						"angle": cmpPosition.GetRotation().y,
|1639|1639| 						"ent": ent
|1640|1640| 				};
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1635|1635| 				minDistEntitySnapData = {
|1636|1636| 						"x": pos.x,
|1637|1637| 						"z": pos.z,
|1638|    |-						"angle": cmpPosition.GetRotation().y,
|    |1638|+					"angle": cmpPosition.GetRotation().y,
|1639|1639| 						"ent": ent
|1640|1640| 				};
|1641|1641| 			}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1636|1636| 						"x": pos.x,
|1637|1637| 						"z": pos.z,
|1638|1638| 						"angle": cmpPosition.GetRotation().y,
|1639|    |-						"ent": ent
|    |1639|+					"ent": ent
|1640|1640| 				};
|1641|1641| 			}
|1642|1642| 		}

binaries/data/mods/public/simulation/components/GuiInterface.js
| 438| »   »   ret.armour·=·{}
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 825| »   »   if·(this.position()·!==·undefined)·{
|    | [NORMAL] ESLintBear (brace-rules/brace-on-same-line):
|    | Opening curly brace appears on the same line as controlling statement.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 842| »   »   if·(this.position()·!==·undefined·&&·unitToFleeFrom.position()·!==·undefined)·{
|    | [NORMAL] ESLintBear (brace-rules/brace-on-same-line):
|    | Opening curly brace appears on the same line as controlling statement.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 972| }(API3);
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'API3' was used before it was defined.

binaries/data/mods/public/simulation/ai/petra/entityExtend.js
| 426| }(PETRA);
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'PETRA' was used before it was defined.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 249| 249| 		tooltips.push(sprintf(translate("%(label)s %(details)s"), {
| 250| 250| 			"label": headerFont(translate("Status Effects Resistance:")),
| 251| 251| 			"details": "ToDo."
| 252|    |-				//sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
|    | 252|+			//sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
| 253| 253| 				//	"damage": template.armour.Capture.toFixed(1),
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"armorPercentage":
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 249| 249| 		tooltips.push(sprintf(translate("%(label)s %(details)s"), {
| 250| 250| 			"label": headerFont(translate("Status Effects Resistance:")),
| 251| 251| 			"details": "ToDo."
| 252|    |-				//sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
|    | 252|+				// sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
| 253| 253| 				//	"damage": template.armour.Capture.toFixed(1),
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"armorPercentage":
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 250| 250| 			"label": headerFont(translate("Status Effects Resistance:")),
| 251| 251| 			"details": "ToDo."
| 252| 252| 				//sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
| 253|    |-				//	"damage": template.armour.Capture.toFixed(1),
|    | 253|+			//	"damage": template.armour.Capture.toFixed(1),
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"armorPercentage":
| 256| 256| 				//		'[font="sans-10"]' +
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 251| 251| 			"details": "ToDo."
| 252| 252| 				//sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
| 253| 253| 				//	"damage": template.armour.Capture.toFixed(1),
| 254|    |-				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
|    | 254|+			//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"armorPercentage":
| 256| 256| 				//		'[font="sans-10"]' +
| 257| 257| 				//		sprintf(translate("(%(armorPercentage)s)"), {
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 252| 252| 				//sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
| 253| 253| 				//	"damage": template.armour.Capture.toFixed(1),
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255|    |-				//	"armorPercentage":
|    | 255|+			//	"armorPercentage":
| 256| 256| 				//		'[font="sans-10"]' +
| 257| 257| 				//		sprintf(translate("(%(armorPercentage)s)"), {
| 258| 258| 				//			"armorPercentage": armorLevelToPercentageString(template.armour.Capture)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 253| 253| 				//	"damage": template.armour.Capture.toFixed(1),
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"armorPercentage":
| 256|    |-				//		'[font="sans-10"]' +
|    | 256|+			//		'[font="sans-10"]' +
| 257| 257| 				//		sprintf(translate("(%(armorPercentage)s)"), {
| 258| 258| 				//			"armorPercentage": armorLevelToPercentageString(template.armour.Capture)
| 259| 259| 				//		}) + '[/font]'
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"armorPercentage":
| 256| 256| 				//		'[font="sans-10"]' +
| 257|    |-				//		sprintf(translate("(%(armorPercentage)s)"), {
|    | 257|+			//		sprintf(translate("(%(armorPercentage)s)"), {
| 258| 258| 				//			"armorPercentage": armorLevelToPercentageString(template.armour.Capture)
| 259| 259| 				//		}) + '[/font]'
| 260| 260| 				//})
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 255| 255| 				//	"armorPercentage":
| 256| 256| 				//		'[font="sans-10"]' +
| 257| 257| 				//		sprintf(translate("(%(armorPercentage)s)"), {
| 258|    |-				//			"armorPercentage": armorLevelToPercentageString(template.armour.Capture)
|    | 258|+			//			"armorPercentage": armorLevelToPercentageString(template.armour.Capture)
| 259| 259| 				//		}) + '[/font]'
| 260| 260| 				//})
| 261| 261| 		}));
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 256| 256| 				//		'[font="sans-10"]' +
| 257| 257| 				//		sprintf(translate("(%(armorPercentage)s)"), {
| 258| 258| 				//			"armorPercentage": armorLevelToPercentageString(template.armour.Capture)
| 259|    |-				//		}) + '[/font]'
|    | 259|+			//		}) + '[/font]'
| 260| 260| 				//})
| 261| 261| 		}));
| 262| 262| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 257| 257| 				//		sprintf(translate("(%(armorPercentage)s)"), {
| 258| 258| 				//			"armorPercentage": armorLevelToPercentageString(template.armour.Capture)
| 259| 259| 				//		}) + '[/font]'
| 260|    |-				//})
|    | 260|+			//})
| 261| 261| 		}));
| 262| 262| 
| 263| 263| 	return tooltips.join("\n");
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 257| 257| 				//		sprintf(translate("(%(armorPercentage)s)"), {
| 258| 258| 				//			"armorPercentage": armorLevelToPercentageString(template.armour.Capture)
| 259| 259| 				//		}) + '[/font]'
| 260|    |-				//})
|    | 260|+				// })
| 261| 261| 		}));
| 262| 262| 
| 263| 263| 	return tooltips.join("\n");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 421| 421| function getRepairTimeTooltip(entState)
| 422| 422| {
| 423| 423| 	return sprintf(translate("%(label)s %(details)s"), {
| 424|    |-			"label": headerFont(translate("Number of repairers:")),
|    | 424|+		"label": headerFont(translate("Number of repairers:")),
| 425| 425| 			"details": entState.repairable.numBuilders
| 426| 426| 		}) + "\n" + (entState.repairable.numBuilders ?
| 427| 427| 		sprintf(translatePlural(
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 422| 422| {
| 423| 423| 	return sprintf(translate("%(label)s %(details)s"), {
| 424| 424| 			"label": headerFont(translate("Number of repairers:")),
| 425|    |-			"details": entState.repairable.numBuilders
|    | 425|+		"details": entState.repairable.numBuilders
| 426| 426| 		}) + "\n" + (entState.repairable.numBuilders ?
| 427| 427| 		sprintf(translatePlural(
| 428| 428| 			"Add another worker to speed up the repairs by %(second)s second.",
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 1 tab but found 2.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 423| 423| 	return sprintf(translate("%(label)s %(details)s"), {
| 424| 424| 			"label": headerFont(translate("Number of repairers:")),
| 425| 425| 			"details": entState.repairable.numBuilders
| 426|    |-		}) + "\n" + (entState.repairable.numBuilders ?
|    | 426|+	}) + "\n" + (entState.repairable.numBuilders ?
| 427| 427| 		sprintf(translatePlural(
| 428| 428| 			"Add another worker to speed up the repairs by %(second)s second.",
| 429| 429| 			"Add another worker to speed up the repairs by %(second)s seconds.",
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 443| 443| function getBuildTimeTooltip(entState)
| 444| 444| {
| 445| 445| 	return sprintf(translate("%(label)s %(details)s"), {
| 446|    |-			"label": headerFont(translate("Number of builders:")),
|    | 446|+		"label": headerFont(translate("Number of builders:")),
| 447| 447| 			"details": entState.foundation.numBuilders
| 448| 448| 		}) + "\n" + (entState.foundation.numBuilders ?
| 449| 449| 		sprintf(translatePlural(
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 444| 444| {
| 445| 445| 	return sprintf(translate("%(label)s %(details)s"), {
| 446| 446| 			"label": headerFont(translate("Number of builders:")),
| 447|    |-			"details": entState.foundation.numBuilders
|    | 447|+		"details": entState.foundation.numBuilders
| 448| 448| 		}) + "\n" + (entState.foundation.numBuilders ?
| 449| 449| 		sprintf(translatePlural(
| 450| 450| 			"Add another worker to speed up the construction by %(second)s second.",
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 1 tab but found 2.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 445| 445| 	return sprintf(translate("%(label)s %(details)s"), {
| 446| 446| 			"label": headerFont(translate("Number of builders:")),
| 447| 447| 			"details": entState.foundation.numBuilders
| 448|    |-		}) + "\n" + (entState.foundation.numBuilders ?
|    | 448|+	}) + "\n" + (entState.foundation.numBuilders ?
| 449| 449| 		sprintf(translatePlural(
| 450| 450| 			"Add another worker to speed up the construction by %(second)s second.",
| 451| 451| 			"Add another worker to speed up the construction by %(second)s seconds.",
Executing section cli...

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/499/display/redirect

Puts those nodes in anyName-nodes, so that in the future a mod can circumvent a type of armour (e.g. shield not used when hit from the back).

I'll be honest, I'm not sure this is needed right now... To make it useful one would need to have separate armour types that themselves aren't sub-entities, which sounds like it would have rather limited use.

http://irclogs.wildfiregames.com/2019-08/2019-08-26-QuakeNet-%230ad-dev.log ~13:32 onwards.

Puts those nodes in anyName-nodes, so that in the future a mod can circumvent a type of armour (e.g. shield not used when hit from the back).

I'll be honest, I'm not sure this is needed right now... To make it useful one would need to have separate armour types that themselves aren't sub-entities, which sounds like it would have rather limited use.

If we do not do it ("it" being adding another level of indentation), a modder *has* to change *every* template which has armour. If we do it (not specifically any name, we could hardcode it "Armour" for now) modders could suffice with adding just a few lines in "Armour.js" (if we do not allow anyName) and a node for the extra resistance type in the template at wish.

binaries/data/mods/public/simulation/components/Armour.js
3

Split from attacking, make own schema here.

4

Change.

Could you briefly explain why this would be an improvement? To me

<Armour>
  <Armour>
    <Damage>
      <Hack>5</Hack>
      <Pierce>8</Pierce>
      <Crush>10</Crush>
    </Damage>
  </Armour>
</Armour>

instead of

<Armour>
  <Hack>5</Hack>
  <Pierce>8</Pierce>
  <Crush>10</Crush>
</Armour>

seems merely to be twice as many lines for the same thing.

Resistance (or Resistances? @Nescio)

Without s; there is no need to pluralize things. Also, Americans tend to spell armour without an “u” (it doesn't really matter, it's not a user-facing string).

In D2229#92630, @Nescio wrote:

Could you briefly explain why this would be an improvement? To me

Wrapping in "Damage" would make it possible to have armour against Capture and status effects easily.
I don't think we need another level on top of that, hence the forum thread.
Imo:

<Armour>
  <Damage>
    <Hack>5</Hack>
    <Pierce>8</Pierce>
    <Crush>10</Crush>
  </Damage>
  <Capture>5</Capture>
</Armour>

is sufficient.

Freagarach added a comment.EditedAug 26 2019, 5:48 PM
In D2229#92630, @Nescio wrote:

Could you briefly explain why this would be an improvement? To me
seems merely to be twice as many lines for the same thing.

A fact is that the damages ought to be grouped in order to allow resistance to e.g. capture attack or status effects, so this:

<Armour>
  <Damage>
    <Hack>5</Hack>
    <Pierce>8</Pierce>
    <Crush>10</Crush>
  </Damage>
</Armour>

has to be done anyway. Creating the extra node means resistances are nicely grouped (cf. Foundation) and, as a result, it could be easily modded into neglecting a kind of resistance at specific circumstances.

Freagarach updated this revision to Diff 9522.Aug 26 2019, 6:02 PM

Armour schema (back) to Armour.js.

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|  18|  18| 	this.cp = [];
|  19|  19| };
|  20|  20| 
|  21|    |-//// Interface functions ////
|    |  21|+// // Interface functions ////
|  22|  22| 
|  23|  23| /**
|  24|  24|  * Returns the current capture points array
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
| 145| 145| 	return sourceEnemyCp > 0;
| 146| 146| };
| 147| 147| 
| 148|    |-//// Private functions ////
|    | 148|+// // Private functions ////
| 149| 149| 
| 150| 150| /**
| 151| 151|  * This has to be called whenever the capture points are changed.
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
| 260| 260| 	Engine.PostMessage(this.entity, MT_CaptureRegenStateChanged, { "regenerating": true, "regenRate": regenRate, "territoryDecay": decay });
| 261| 261| };
| 262| 262| 
| 263|    |-//// Message Listeners ////
|    | 263|+// // Message Listeners ////
| 264| 264| 
| 265| 265| Capturable.prototype.OnValueModification = function(msg)
| 266| 266| {

binaries/data/mods/public/simulation/components/Capturable.js
| 192| »   »   var·garrisonRegenRate·=·0;
|    | [NORMAL] JSHintBear:
|    | 'garrisonRegenRate' is already defined.

binaries/data/mods/public/simulation/components/Capturable.js
| 194| »   return·regenRate·+·garrisonRegenRate;
|    | [NORMAL] JSHintBear:
|    | 'garrisonRegenRate' used out of scope.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 249| 249| 		tooltips.push(sprintf(translate("%(label)s %(details)s"), {
| 250| 250| 			"label": headerFont(translate("Status Effects Resistance:")),
| 251| 251| 			"details": "ToDo."
| 252|    |-				//sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
|    | 252|+			//sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
| 253| 253| 				//	"damage": template.armour.Capture.toFixed(1),
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"armorPercentage":
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 249| 249| 		tooltips.push(sprintf(translate("%(label)s %(details)s"), {
| 250| 250| 			"label": headerFont(translate("Status Effects Resistance:")),
| 251| 251| 			"details": "ToDo."
| 252|    |-				//sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
|    | 252|+				// sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
| 253| 253| 				//	"damage": template.armour.Capture.toFixed(1),
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"armorPercentage":
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 250| 250| 			"label": headerFont(translate("Status Effects Resistance:")),
| 251| 251| 			"details": "ToDo."
| 252| 252| 				//sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
| 253|    |-				//	"damage": template.armour.Capture.toFixed(1),
|    | 253|+			//	"damage": template.armour.Capture.toFixed(1),
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"armorPercentage":
| 256| 256| 				//		'[font="sans-10"]' +
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 251| 251| 			"details": "ToDo."
| 252| 252| 				//sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
| 253| 253| 				//	"damage": template.armour.Capture.toFixed(1),
| 254|    |-				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
|    | 254|+			//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"armorPercentage":
| 256| 256| 				//		'[font="sans-10"]' +
| 257| 257| 				//		sprintf(translate("(%(armorPercentage)s)"), {
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 252| 252| 				//sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
| 253| 253| 				//	"damage": template.armour.Capture.toFixed(1),
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255|    |-				//	"armorPercentage":
|    | 255|+			//	"armorPercentage":
| 256| 256| 				//		'[font="sans-10"]' +
| 257| 257| 				//		sprintf(translate("(%(armorPercentage)s)"), {
| 258| 258| 				//			"armorPercentage": armorLevelToPercentageString(template.armour.Capture)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 253| 253| 				//	"damage": template.armour.Capture.toFixed(1),
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"armorPercentage":
| 256|    |-				//		'[font="sans-10"]' +
|    | 256|+			//		'[font="sans-10"]' +
| 257| 257| 				//		sprintf(translate("(%(armorPercentage)s)"), {
| 258| 258| 				//			"armorPercentage": armorLevelToPercentageString(template.armour.Capture)
| 259| 259| 				//		}) + '[/font]'
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"armorPercentage":
| 256| 256| 				//		'[font="sans-10"]' +
| 257|    |-				//		sprintf(translate("(%(armorPercentage)s)"), {
|    | 257|+			//		sprintf(translate("(%(armorPercentage)s)"), {
| 258| 258| 				//			"armorPercentage": armorLevelToPercentageString(template.armour.Capture)
| 259| 259| 				//		}) + '[/font]'
| 260| 260| 				//})
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 255| 255| 				//	"armorPercentage":
| 256| 256| 				//		'[font="sans-10"]' +
| 257| 257| 				//		sprintf(translate("(%(armorPercentage)s)"), {
| 258|    |-				//			"armorPercentage": armorLevelToPercentageString(template.armour.Capture)
|    | 258|+			//			"armorPercentage": armorLevelToPercentageString(template.armour.Capture)
| 259| 259| 				//		}) + '[/font]'
| 260| 260| 				//})
| 261| 261| 		}));
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 256| 256| 				//		'[font="sans-10"]' +
| 257| 257| 				//		sprintf(translate("(%(armorPercentage)s)"), {
| 258| 258| 				//			"armorPercentage": armorLevelToPercentageString(template.armour.Capture)
| 259|    |-				//		}) + '[/font]'
|    | 259|+			//		}) + '[/font]'
| 260| 260| 				//})
| 261| 261| 		}));
| 262| 262| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 257| 257| 				//		sprintf(translate("(%(armorPercentage)s)"), {
| 258| 258| 				//			"armorPercentage": armorLevelToPercentageString(template.armour.Capture)
| 259| 259| 				//		}) + '[/font]'
| 260|    |-				//})
|    | 260|+			//})
| 261| 261| 		}));
| 262| 262| 
| 263| 263| 	return tooltips.join("\n");
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 257| 257| 				//		sprintf(translate("(%(armorPercentage)s)"), {
| 258| 258| 				//			"armorPercentage": armorLevelToPercentageString(template.armour.Capture)
| 259| 259| 				//		}) + '[/font]'
| 260|    |-				//})
|    | 260|+				// })
| 261| 261| 		}));
| 262| 262| 
| 263| 263| 	return tooltips.join("\n");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 421| 421| function getRepairTimeTooltip(entState)
| 422| 422| {
| 423| 423| 	return sprintf(translate("%(label)s %(details)s"), {
| 424|    |-			"label": headerFont(translate("Number of repairers:")),
|    | 424|+		"label": headerFont(translate("Number of repairers:")),
| 425| 425| 			"details": entState.repairable.numBuilders
| 426| 426| 		}) + "\n" + (entState.repairable.numBuilders ?
| 427| 427| 		sprintf(translatePlural(
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 422| 422| {
| 423| 423| 	return sprintf(translate("%(label)s %(details)s"), {
| 424| 424| 			"label": headerFont(translate("Number of repairers:")),
| 425|    |-			"details": entState.repairable.numBuilders
|    | 425|+		"details": entState.repairable.numBuilders
| 426| 426| 		}) + "\n" + (entState.repairable.numBuilders ?
| 427| 427| 		sprintf(translatePlural(
| 428| 428| 			"Add another worker to speed up the repairs by %(second)s second.",
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 1 tab but found 2.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 423| 423| 	return sprintf(translate("%(label)s %(details)s"), {
| 424| 424| 			"label": headerFont(translate("Number of repairers:")),
| 425| 425| 			"details": entState.repairable.numBuilders
| 426|    |-		}) + "\n" + (entState.repairable.numBuilders ?
|    | 426|+	}) + "\n" + (entState.repairable.numBuilders ?
| 427| 427| 		sprintf(translatePlural(
| 428| 428| 			"Add another worker to speed up the repairs by %(second)s second.",
| 429| 429| 			"Add another worker to speed up the repairs by %(second)s seconds.",
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 443| 443| function getBuildTimeTooltip(entState)
| 444| 444| {
| 445| 445| 	return sprintf(translate("%(label)s %(details)s"), {
| 446|    |-			"label": headerFont(translate("Number of builders:")),
|    | 446|+		"label": headerFont(translate("Number of builders:")),
| 447| 447| 			"details": entState.foundation.numBuilders
| 448| 448| 		}) + "\n" + (entState.foundation.numBuilders ?
| 449| 449| 		sprintf(translatePlural(
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 444| 444| {
| 445| 445| 	return sprintf(translate("%(label)s %(details)s"), {
| 446| 446| 			"label": headerFont(translate("Number of builders:")),
| 447|    |-			"details": entState.foundation.numBuilders
|    | 447|+		"details": entState.foundation.numBuilders
| 448| 448| 		}) + "\n" + (entState.foundation.numBuilders ?
| 449| 449| 		sprintf(translatePlural(
| 450| 450| 			"Add another worker to speed up the construction by %(second)s second.",
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 1 tab but found 2.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 445| 445| 	return sprintf(translate("%(label)s %(details)s"), {
| 446| 446| 			"label": headerFont(translate("Number of builders:")),
| 447| 447| 			"details": entState.foundation.numBuilders
| 448|    |-		}) + "\n" + (entState.foundation.numBuilders ?
|    | 448|+	}) + "\n" + (entState.foundation.numBuilders ?
| 449| 449| 		sprintf(translatePlural(
| 450| 450| 			"Add another worker to speed up the construction by %(second)s second.",
| 451| 451| 			"Add another worker to speed up the construction by %(second)s seconds.",

binaries/data/mods/public/simulation/ai/petra/entityExtend.js
| 426| }(PETRA);
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'PETRA' was used before it was defined.
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|  87|  87| 		// If the elements are still strings, split them by space or by '+'
|  88|  88| 		if (typeof sublist == "string")
|  89|  89| 			sublist = sublist.split(/[+\s]+/);
|  90|    |-		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1)
|  91|    |-		                    || (c[0] != "!" && classes.indexOf(c) != -1)))
|    |  90|+		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1) ||
|    |  91|+		                    (c[0] != "!" && classes.indexOf(c) != -1)))
|  92|  92| 			return true;
|  93|  93| 	}
|  94|  94| 

binaries/data/mods/public/globalscripts/Templates.js
|  91| »   »   ····················||·(c[0]·!=·"!"·&&·classes.indexOf(c)·!=·-1)))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 435| 435| 	let cmpArmour = Engine.QueryInterface(ent, IID_Resistance);
| 436| 436| 	if (cmpArmour)
| 437| 437| 	{
| 438|    |-		ret.armour = {}
|    | 438|+		ret.armour = {};
| 439| 439| 		Object.assign(ret.armour, cmpArmour.GetArmourStrengths("Damage"));
| 440| 440| 		Object.assign(ret.armour, cmpArmour.GetArmourStrengths("Capture"));
| 441| 441| 	}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 800| 800| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 801| 801| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 802| 802| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 803|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 803|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 804| 804| 	}
| 805| 805| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 806| 806| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1633|1633| 			{
|1634|1634| 				minDist2 = dist2;
|1635|1635| 				minDistEntitySnapData = {
|1636|    |-						"x": pos.x,
|    |1636|+					"x": pos.x,
|1637|1637| 						"z": pos.z,
|1638|1638| 						"angle": cmpPosition.GetRotation().y,
|1639|1639| 						"ent": ent
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1634|1634| 				minDist2 = dist2;
|1635|1635| 				minDistEntitySnapData = {
|1636|1636| 						"x": pos.x,
|1637|    |-						"z": pos.z,
|    |1637|+					"z": pos.z,
|1638|1638| 						"angle": cmpPosition.GetRotation().y,
|1639|1639| 						"ent": ent
|1640|1640| 				};
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1635|1635| 				minDistEntitySnapData = {
|1636|1636| 						"x": pos.x,
|1637|1637| 						"z": pos.z,
|1638|    |-						"angle": cmpPosition.GetRotation().y,
|    |1638|+					"angle": cmpPosition.GetRotation().y,
|1639|1639| 						"ent": ent
|1640|1640| 				};
|1641|1641| 			}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1636|1636| 						"x": pos.x,
|1637|1637| 						"z": pos.z,
|1638|1638| 						"angle": cmpPosition.GetRotation().y,
|1639|    |-						"ent": ent
|    |1639|+					"ent": ent
|1640|1640| 				};
|1641|1641| 			}
|1642|1642| 		}

binaries/data/mods/public/simulation/components/GuiInterface.js
| 438| »   »   ret.armour·=·{}
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 825| »   »   if·(this.position()·!==·undefined)·{
|    | [NORMAL] ESLintBear (brace-rules/brace-on-same-line):
|    | Opening curly brace appears on the same line as controlling statement.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 842| »   »   if·(this.position()·!==·undefined·&&·unitToFleeFrom.position()·!==·undefined)·{
|    | [NORMAL] ESLintBear (brace-rules/brace-on-same-line):
|    | Opening curly brace appears on the same line as controlling statement.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 972| }(API3);
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'API3' was used before it was defined.
Executing section cli...

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/501/display/redirect

So it would make it possible to have e.g. uncapturable structures with capturable foundations, or vice versa?

In D2229#92642, @Nescio wrote:

So it would make it possible to have e.g. uncapturable structures with capturable foundations, or vice versa?

No that is already possible I think.
It could be supported with:

<Resistance>
  <Armour>
    <Damage>
      <Hack>5</Hack>
      <Pierce>8</Pierce>
      <Crush>10</Crush>
    </Damage>
  </Armour>
  </Shield>
    <Damage>
      <Hack>5</Hack>
      <Pierce>8</Pierce>
      <Crush>10</Crush>
    </Damage>
  </Shield>
</Resistance>

that Shield is not used to reduce damage when attacked from behind (or when stunned).

Stan added a subscriber: Stan.Aug 28 2019, 1:39 PM

Reading "http://irclogs.wildfiregames.com/2019-08/2019-08-26-QuakeNet-%230ad-dev.log" I was wondering whether we could maybe use prop points like D1989 to define a hitbox for directional damage.

Freagarach edited the summary of this revision. (Show Details)Aug 31 2019, 9:19 PM
Freagarach updated this revision to Diff 9558.Sep 1 2019, 8:59 AM
Freagarach edited the summary of this revision. (Show Details)

Armour -> Resistance.

In D2229#92737, @Stan wrote:

Reading "http://irclogs.wildfiregames.com/2019-08/2019-08-26-QuakeNet-%230ad-dev.log" I was wondering whether we could maybe use prop points like D1989 to define a hitbox for directional damage.

That would indeed be cool :) But then we would also need real-time hit detection, right?

Vulcan added a comment.Sep 1 2019, 9:02 AM

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

Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/22/display/redirect

Vulcan added a comment.Sep 1 2019, 9:10 AM

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|  87|  87| 		// If the elements are still strings, split them by space or by '+'
|  88|  88| 		if (typeof sublist == "string")
|  89|  89| 			sublist = sublist.split(/[+\s]+/);
|  90|    |-		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1)
|  91|    |-		                    || (c[0] != "!" && classes.indexOf(c) != -1)))
|    |  90|+		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1) ||
|    |  91|+		                    (c[0] != "!" && classes.indexOf(c) != -1)))
|  92|  92| 			return true;
|  93|  93| 	}
|  94|  94| 

binaries/data/mods/public/globalscripts/Templates.js
|  91| »   »   ····················||·(c[0]·!=·"!"·&&·classes.indexOf(c)·!=·-1)))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 825| »   »   if·(this.position()·!==·undefined)·{
|    | [NORMAL] ESLintBear (brace-rules/brace-on-same-line):
|    | Opening curly brace appears on the same line as controlling statement.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 842| »   »   if·(this.position()·!==·undefined·&&·unitToFleeFrom.position()·!==·undefined)·{
|    | [NORMAL] ESLintBear (brace-rules/brace-on-same-line):
|    | Opening curly brace appears on the same line as controlling statement.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 972| }(API3);
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'API3' was used before it was defined.
|    | [NORMAL] ESLintBear (space-before-function-paren):
|    | Unexpected space before function parentheses.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/selection_panels.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/selection_panels.js
| 763| 763| 				addResearchToQueue(data.item.researchFacilityId, t);
| 764| 764| 			})(tech);
| 765| 765| 
| 766|    |-			button.onPressRight = (t => function () {
|    | 766|+			button.onPressRight = (t => function() {
| 767| 767| 				showTemplateDetails(
| 768| 768| 					t,
| 769| 769| 					GetTemplateData(data.unitEntStates.find(state => state.id == data.item.researchFacilityId).template).nativeCiv);

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

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

binaries/data/mods/public/gui/session/selection_panels.js
| 731| »   »   »   »   »   »   switch·(entity.check)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 435| 435| 	let cmpResistance = Engine.QueryInterface(ent, IID_Resistance);
| 436| 436| 	if (cmpResistance)
| 437| 437| 	{
| 438|    |-		ret.resistance = {}
|    | 438|+		ret.resistance = {};
| 439| 439| 		Object.assign(ret.resistance, cmpResistance.GetResistanceStrengths("Damage"));
| 440| 440| 		Object.assign(ret.resistance, cmpResistance.GetResistanceStrengths("Capture"));
| 441| 441| 	}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 800| 800| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 801| 801| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 802| 802| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 803|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 803|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 804| 804| 	}
| 805| 805| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 806| 806| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1633|1633| 			{
|1634|1634| 				minDist2 = dist2;
|1635|1635| 				minDistEntitySnapData = {
|1636|    |-						"x": pos.x,
|    |1636|+					"x": pos.x,
|1637|1637| 						"z": pos.z,
|1638|1638| 						"angle": cmpPosition.GetRotation().y,
|1639|1639| 						"ent": ent
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1634|1634| 				minDist2 = dist2;
|1635|1635| 				minDistEntitySnapData = {
|1636|1636| 						"x": pos.x,
|1637|    |-						"z": pos.z,
|    |1637|+					"z": pos.z,
|1638|1638| 						"angle": cmpPosition.GetRotation().y,
|1639|1639| 						"ent": ent
|1640|1640| 				};
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1635|1635| 				minDistEntitySnapData = {
|1636|1636| 						"x": pos.x,
|1637|1637| 						"z": pos.z,
|1638|    |-						"angle": cmpPosition.GetRotation().y,
|    |1638|+					"angle": cmpPosition.GetRotation().y,
|1639|1639| 						"ent": ent
|1640|1640| 				};
|1641|1641| 			}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1636|1636| 						"x": pos.x,
|1637|1637| 						"z": pos.z,
|1638|1638| 						"angle": cmpPosition.GetRotation().y,
|1639|    |-						"ent": ent
|    |1639|+					"ent": ent
|1640|1640| 				};
|1641|1641| 			}
|1642|1642| 		}

binaries/data/mods/public/simulation/components/GuiInterface.js
| 438| »   »   ret.resistance·=·{}
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|  18|  18| 	this.cp = [];
|  19|  19| };
|  20|  20| 
|  21|    |-//// Interface functions ////
|    |  21|+// // Interface functions ////
|  22|  22| 
|  23|  23| /**
|  24|  24|  * Returns the current capture points array
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
| 145| 145| 	return sourceEnemyCp > 0;
| 146| 146| };
| 147| 147| 
| 148|    |-//// Private functions ////
|    | 148|+// // Private functions ////
| 149| 149| 
| 150| 150| /**
| 151| 151|  * This has to be called whenever the capture points are changed.
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
| 260| 260| 	Engine.PostMessage(this.entity, MT_CaptureRegenStateChanged, { "regenerating": true, "regenRate": regenRate, "territoryDecay": decay });
| 261| 261| };
| 262| 262| 
| 263|    |-//// Message Listeners ////
|    | 263|+// // Message Listeners ////
| 264| 264| 
| 265| 265| Capturable.prototype.OnValueModification = function(msg)
| 266| 266| {

binaries/data/mods/public/simulation/components/Capturable.js
| 192| »   »   var·garrisonRegenRate·=·0;
|    | [NORMAL] JSHintBear:
|    | 'garrisonRegenRate' is already defined.

binaries/data/mods/public/simulation/components/Capturable.js
| 194| »   return·regenRate·+·garrisonRegenRate;
|    | [NORMAL] JSHintBear:
|    | 'garrisonRegenRate' used out of scope.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
| 392| 392| 				// Players see colors depending on diplomacy
| 393| 393| 				g_DisplayedPlayerColors[i] =
| 394| 394| 					g_ViewedPlayer == i ? getDiplomacyColor("self") :
| 395|    |-					g_Players[g_ViewedPlayer].isAlly[i] ? getDiplomacyColor("ally") :
|    | 395|+						g_Players[g_ViewedPlayer].isAlly[i] ? getDiplomacyColor("ally") :
| 396| 396| 					g_Players[g_ViewedPlayer].isNeutral[i] ? getDiplomacyColor("neutral") :
| 397| 397| 					getDiplomacyColor("enemy");
| 398| 398| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 7 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
| 393| 393| 				g_DisplayedPlayerColors[i] =
| 394| 394| 					g_ViewedPlayer == i ? getDiplomacyColor("self") :
| 395| 395| 					g_Players[g_ViewedPlayer].isAlly[i] ? getDiplomacyColor("ally") :
| 396|    |-					g_Players[g_ViewedPlayer].isNeutral[i] ? getDiplomacyColor("neutral") :
|    | 396|+							g_Players[g_ViewedPlayer].isNeutral[i] ? getDiplomacyColor("neutral") :
| 397| 397| 					getDiplomacyColor("enemy");
| 398| 398| 
| 399| 399| 		g_DisplayedPlayerColors[0] = g_Players[0].color;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 8 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
| 394| 394| 					g_ViewedPlayer == i ? getDiplomacyColor("self") :
| 395| 395| 					g_Players[g_ViewedPlayer].isAlly[i] ? getDiplomacyColor("ally") :
| 396| 396| 					g_Players[g_ViewedPlayer].isNeutral[i] ? getDiplomacyColor("neutral") :
| 397|    |-					getDiplomacyColor("enemy");
|    | 397|+								getDiplomacyColor("enemy");
| 398| 398| 
| 399| 399| 		g_DisplayedPlayerColors[0] = g_Players[0].color;
| 400| 400| 	}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
| 656| 656| 					"civ": setStringTags(g_CivData[g_Players[g_ViewedPlayer].civ].Name, { "font": "sans-bold-stroke-14" }),
| 657| 657| 					"hotkey_civinfo": colorizeHotkey("%(hotkey)s", "civinfo"),
| 658| 658| 					"hotkey_structree": colorizeHotkey("%(hotkey)s", "structree")
| 659|    |-			});
|    | 659|+				});
| 660| 660| 	}
| 661| 661| 
| 662| 662| 	// Following gaia can be interesting on scripted maps
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 2.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|1211|1211| 
|1212|1212| 	let orderHotkeyTooltip = Object.keys(viewablePlayerStates).length <= 1 ? "" :
|1213|1213| 		"\n" + sprintf(translate("%(order)s: %(hotkey)s to change order."), {
|1214|    |-		"hotkey": setStringTags("\\[Click]", g_HotkeyTags),
|    |1214|+			"hotkey": setStringTags("\\[Click]", g_HotkeyTags),
|1215|1215| 		"order": tooltipSort == 0 ? translate("Unordered") : tooltipSort == 1 ? translate("Descending") : translate("Ascending")
|1216|1216| 	});
|1217|1217| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 2.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|1212|1212| 	let orderHotkeyTooltip = Object.keys(viewablePlayerStates).length <= 1 ? "" :
|1213|1213| 		"\n" + sprintf(translate("%(order)s: %(hotkey)s to change order."), {
|1214|1214| 		"hotkey": setStringTags("\\[Click]", g_HotkeyTags),
|1215|    |-		"order": tooltipSort == 0 ? translate("Unordered") : tooltipSort == 1 ? translate("Descending") : translate("Ascending")
|    |1215|+			"order": tooltipSort == 0 ? translate("Unordered") : tooltipSort == 1 ? translate("Descending") : translate("Ascending")
|1216|1216| 	});
|1217|1217| 
|1218|1218| 	let resCodes = g_ResourceData.GetCodes();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 1.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|1213|1213| 		"\n" + sprintf(translate("%(order)s: %(hotkey)s to change order."), {
|1214|1214| 		"hotkey": setStringTags("\\[Click]", g_HotkeyTags),
|1215|1215| 		"order": tooltipSort == 0 ? translate("Unordered") : tooltipSort == 1 ? translate("Descending") : translate("Ascending")
|1216|    |-	});
|    |1216|+		});
|1217|1217| 
|1218|1218| 	let resCodes = g_ResourceData.GetCodes();
|1219|1219| 	for (let r = 0; r < resCodes.length; ++r)

binaries/data/mods/public/gui/session/session.js
|1072| »   let·getPanelEntNameTooltip·=·panelEntState·=>·"[font=\"sans-bold-16\"]"·+·template.name.specific·+·"[/font]";
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'panelEntState' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
|1147| »   »   button.onpress·=·(function(i)·{·return·function()·{·performGroup((Engine.HotkeyIsPressed("selection.add")·?·"add"·:·"select"),·i);·};·})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
|1148| »   »   button.ondoublepress·=·(function(i)·{·return·function()·{·performGroup("snap",·i);·};·})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
|1149| »   »   button.onpressright·=·(function(i)·{·return·function()·{·performGroup("breakUp",·i);·};·})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 249| 249| 		tooltips.push(sprintf(translate("%(label)s %(details)s"), {
| 250| 250| 			"label": headerFont(translate("Status Effects Resistance:")),
| 251| 251| 			"details": "ToDo."
| 252|    |-				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
|    | 252|+			//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 253| 253| 				//	"damage": template.resistance.Capture.toFixed(1),
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"resistancePercentage":
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 249| 249| 		tooltips.push(sprintf(translate("%(label)s %(details)s"), {
| 250| 250| 			"label": headerFont(translate("Status Effects Resistance:")),
| 251| 251| 			"details": "ToDo."
| 252|    |-				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
|    | 252|+				// sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 253| 253| 				//	"damage": template.resistance.Capture.toFixed(1),
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"resistancePercentage":
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 250| 250| 			"label": headerFont(translate("Status Effects Resistance:")),
| 251| 251| 			"details": "ToDo."
| 252| 252| 				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 253|    |-				//	"damage": template.resistance.Capture.toFixed(1),
|    | 253|+			//	"damage": template.resistance.Capture.toFixed(1),
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"resistancePercentage":
| 256| 256| 				//		'[font="sans-10"]' +
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 251| 251| 			"details": "ToDo."
| 252| 252| 				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 253| 253| 				//	"damage": template.resistance.Capture.toFixed(1),
| 254|    |-				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
|    | 254|+			//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"resistancePercentage":
| 256| 256| 				//		'[font="sans-10"]' +
| 257| 257| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 252| 252| 				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 253| 253| 				//	"damage": template.resistance.Capture.toFixed(1),
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255|    |-				//	"resistancePercentage":
|    | 255|+			//	"resistancePercentage":
| 256| 256| 				//		'[font="sans-10"]' +
| 257| 257| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 258| 258| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 253| 253| 				//	"damage": template.resistance.Capture.toFixed(1),
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"resistancePercentage":
| 256|    |-				//		'[font="sans-10"]' +
|    | 256|+			//		'[font="sans-10"]' +
| 257| 257| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 258| 258| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 259| 259| 				//		}) + '[/font]'
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 254| 254| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 255| 255| 				//	"resistancePercentage":
| 256| 256| 				//		'[font="sans-10"]' +
| 257|    |-				//		sprintf(translate("(%(resistancePercentage)s)"), {
|    | 257|+			//		sprintf(translate("(%(resistancePercentage)s)"), {
| 258| 258| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 259| 259| 				//		}) + '[/font]'
| 260| 260| 				//})
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 255| 255| 				//	"resistancePercentage":
| 256| 256| 				//		'[font="sans-10"]' +
| 257| 257| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 258|    |-				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
|    | 258|+			//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 259| 259| 				//		}) + '[/font]'
| 260| 260| 				//})
| 261| 261| 		}));
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 256| 256| 				//		'[font="sans-10"]' +
| 257| 257| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 258| 258| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 259|    |-				//		}) + '[/font]'
|    | 259|+			//		}) + '[/font]'
| 260| 260| 				//})
| 261| 261| 		}));
| 262| 262| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 257| 257| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 258| 258| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 259| 259| 				//		}) + '[/font]'
| 260|    |-				//})
|    | 260|+			//})
| 261| 261| 		}));
| 262| 262| 
| 263| 263| 	return tooltips.join("\n");
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 257| 257| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 258| 258| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 259| 259| 				//		}) + '[/font]'
| 260|    |-				//})
|    | 260|+				// })
| 261| 261| 		}));
| 262| 262| 
| 263| 263| 	return tooltips.join("\n");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 421| 421| function getRepairTimeTooltip(entState)
| 422| 422| {
| 423| 423| 	return sprintf(translate("%(label)s %(details)s"), {
| 424|    |-			"label": headerFont(translate("Number of repairers:")),
|    | 424|+		"label": headerFont(translate("Number of repairers:")),
| 425| 425| 			"details": entState.repairable.numBuilders
| 426| 426| 		}) + "\n" + (entState.repairable.numBuilders ?
| 427| 427| 		sprintf(translatePlural(
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 422| 422| {
| 423| 423| 	return sprintf(translate("%(label)s %(details)s"), {
| 424| 424| 			"label": headerFont(translate("Number of repairers:")),
| 425|    |-			"details": entState.repairable.numBuilders
|    | 425|+		"details": entState.repairable.numBuilders
| 426| 426| 		}) + "\n" + (entState.repairable.numBuilders ?
| 427| 427| 		sprintf(translatePlural(
| 428| 428| 			"Add another worker to speed up the repairs by %(second)s second.",
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 1 tab but found 2.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 423| 423| 	return sprintf(translate("%(label)s %(details)s"), {
| 424| 424| 			"label": headerFont(translate("Number of repairers:")),
| 425| 425| 			"details": entState.repairable.numBuilders
| 426|    |-		}) + "\n" + (entState.repairable.numBuilders ?
|    | 426|+	}) + "\n" + (entState.repairable.numBuilders ?
| 427| 427| 		sprintf(translatePlural(
| 428| 428| 			"Add another worker to speed up the repairs by %(second)s second.",
| 429| 429| 			"Add another worker to speed up the repairs by %(second)s seconds.",
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 443| 443| function getBuildTimeTooltip(entState)
| 444| 444| {
| 445| 445| 	return sprintf(translate("%(label)s %(details)s"), {
| 446|    |-			"label": headerFont(translate("Number of builders:")),
|    | 446|+		"label": headerFont(translate("Number of builders:")),
| 447| 447| 			"details": entState.foundation.numBuilders
| 448| 448| 		}) + "\n" + (entState.foundation.numBuilders ?
| 449| 449| 		sprintf(translatePlural(
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 444| 444| {
| 445| 445| 	return sprintf(translate("%(label)s %(details)s"), {
| 446| 446| 			"label": headerFont(translate("Number of builders:")),
| 447|    |-			"details": entState.foundation.numBuilders
|    | 447|+		"details": entState.foundation.numBuilders
| 448| 448| 		}) + "\n" + (entState.foundation.numBuilders ?
| 449| 449| 		sprintf(translatePlural(
| 450| 450| 			"Add another worker to speed up the construction by %(second)s second.",
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 1 tab but found 2.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 445| 445| 	return sprintf(translate("%(label)s %(details)s"), {
| 446| 446| 			"label": headerFont(translate("Number of builders:")),
| 447| 447| 			"details": entState.foundation.numBuilders
| 448|    |-		}) + "\n" + (entState.foundation.numBuilders ?
|    | 448|+	}) + "\n" + (entState.foundation.numBuilders ?
| 449| 449| 		sprintf(translatePlural(
| 450| 450| 			"Add another worker to speed up the construction by %(second)s second.",
| 451| 451| 			"Add another worker to speed up the construction by %(second)s seconds.",
Executing section cli...

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/531/display/redirect

Freagarach updated this revision to Diff 9676.Sep 9 2019, 1:38 PM

Rebased and some minor correction.

Owners added a subscriber: Restricted Owners Package.Sep 9 2019, 1:38 PM
Vulcan added a comment.Sep 9 2019, 1:41 PM

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

Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/106/display/redirect

Vulcan added a comment.Sep 9 2019, 1:44 PM

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|  87|  87| 		// If the elements are still strings, split them by space or by '+'
|  88|  88| 		if (typeof sublist == "string")
|  89|  89| 			sublist = sublist.split(/[+\s]+/);
|  90|    |-		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1)
|  91|    |-		                    || (c[0] != "!" && classes.indexOf(c) != -1)))
|    |  90|+		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1) ||
|    |  91|+		                    (c[0] != "!" && classes.indexOf(c) != -1)))
|  92|  92| 			return true;
|  93|  93| 	}
|  94|  94| 

binaries/data/mods/public/globalscripts/Templates.js
|  91| »   »   ····················||·(c[0]·!=·"!"·&&·classes.indexOf(c)·!=·-1)))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 201| 201| 		tooltips.push(sprintf(translate("%(label)s %(details)s"), {
| 202| 202| 			"label": headerFont(translate("Status Effects Resistance:")),
| 203| 203| 			"details": "ToDo."
| 204|    |-				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
|    | 204|+			//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 205| 205| 				//	"damage": template.resistance.Capture.toFixed(1),
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 201| 201| 		tooltips.push(sprintf(translate("%(label)s %(details)s"), {
| 202| 202| 			"label": headerFont(translate("Status Effects Resistance:")),
| 203| 203| 			"details": "ToDo."
| 204|    |-				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
|    | 204|+				// sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 205| 205| 				//	"damage": template.resistance.Capture.toFixed(1),
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 202| 202| 			"label": headerFont(translate("Status Effects Resistance:")),
| 203| 203| 			"details": "ToDo."
| 204| 204| 				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 205|    |-				//	"damage": template.resistance.Capture.toFixed(1),
|    | 205|+			//	"damage": template.resistance.Capture.toFixed(1),
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
| 208| 208| 				//		'[font="sans-10"]' +
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 203| 203| 			"details": "ToDo."
| 204| 204| 				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 205| 205| 				//	"damage": template.resistance.Capture.toFixed(1),
| 206|    |-				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
|    | 206|+			//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
| 208| 208| 				//		'[font="sans-10"]' +
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 204| 204| 				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 205| 205| 				//	"damage": template.resistance.Capture.toFixed(1),
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207|    |-				//	"resistancePercentage":
|    | 207|+			//	"resistancePercentage":
| 208| 208| 				//		'[font="sans-10"]' +
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 205| 205| 				//	"damage": template.resistance.Capture.toFixed(1),
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
| 208|    |-				//		'[font="sans-10"]' +
|    | 208|+			//		'[font="sans-10"]' +
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211| 211| 				//		}) + '[/font]'
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
| 208| 208| 				//		'[font="sans-10"]' +
| 209|    |-				//		sprintf(translate("(%(resistancePercentage)s)"), {
|    | 209|+			//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211| 211| 				//		}) + '[/font]'
| 212| 212| 				//})
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 207| 207| 				//	"resistancePercentage":
| 208| 208| 				//		'[font="sans-10"]' +
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210|    |-				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
|    | 210|+			//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211| 211| 				//		}) + '[/font]'
| 212| 212| 				//})
| 213| 213| 		}));
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 208| 208| 				//		'[font="sans-10"]' +
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211|    |-				//		}) + '[/font]'
|    | 211|+			//		}) + '[/font]'
| 212| 212| 				//})
| 213| 213| 		}));
| 214| 214| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211| 211| 				//		}) + '[/font]'
| 212|    |-				//})
|    | 212|+			//})
| 213| 213| 		}));
| 214| 214| 
| 215| 215| 	return tooltips.join("\n");
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211| 211| 				//		}) + '[/font]'
| 212|    |-				//})
|    | 212|+				// })
| 213| 213| 		}));
| 214| 214| 
| 215| 215| 	return tooltips.join("\n");
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 435| 435| 	let cmpResistance = Engine.QueryInterface(ent, IID_Resistance);
| 436| 436| 	if (cmpResistance)
| 437| 437| 	{
| 438|    |-		ret.resistance = {}
|    | 438|+		ret.resistance = {};
| 439| 439| 		Object.assign(ret.resistance, cmpResistance.GetResistanceStrengths("Damage"));
| 440| 440| 		Object.assign(ret.resistance, cmpResistance.GetResistanceStrengths("Capture"));
| 441| 441| 	}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 800| 800| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 801| 801| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 802| 802| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 803|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 803|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 804| 804| 	}
| 805| 805| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 806| 806| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1633|1633| 			{
|1634|1634| 				minDist2 = dist2;
|1635|1635| 				minDistEntitySnapData = {
|1636|    |-						"x": pos.x,
|    |1636|+					"x": pos.x,
|1637|1637| 						"z": pos.z,
|1638|1638| 						"angle": cmpPosition.GetRotation().y,
|1639|1639| 						"ent": ent
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1634|1634| 				minDist2 = dist2;
|1635|1635| 				minDistEntitySnapData = {
|1636|1636| 						"x": pos.x,
|1637|    |-						"z": pos.z,
|    |1637|+					"z": pos.z,
|1638|1638| 						"angle": cmpPosition.GetRotation().y,
|1639|1639| 						"ent": ent
|1640|1640| 				};
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1635|1635| 				minDistEntitySnapData = {
|1636|1636| 						"x": pos.x,
|1637|1637| 						"z": pos.z,
|1638|    |-						"angle": cmpPosition.GetRotation().y,
|    |1638|+					"angle": cmpPosition.GetRotation().y,
|1639|1639| 						"ent": ent
|1640|1640| 				};
|1641|1641| 			}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1636|1636| 						"x": pos.x,
|1637|1637| 						"z": pos.z,
|1638|1638| 						"angle": cmpPosition.GetRotation().y,
|1639|    |-						"ent": ent
|    |1639|+					"ent": ent
|1640|1640| 				};
|1641|1641| 			}
|1642|1642| 		}

binaries/data/mods/public/simulation/components/GuiInterface.js
| 438| »   »   ret.resistance·=·{}
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.
|    | [NORMAL] ESLintBear (space-before-function-paren):
|    | Unexpected space before function parentheses.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/selection_panels.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/selection_panels.js
| 763| 763| 				addResearchToQueue(data.item.researchFacilityId, t);
| 764| 764| 			})(tech);
| 765| 765| 
| 766|    |-			button.onPressRight = (t => function () {
|    | 766|+			button.onPressRight = (t => function() {
| 767| 767| 				showTemplateDetails(
| 768| 768| 					t,
| 769| 769| 					GetTemplateData(data.unitEntStates.find(state => state.id == data.item.researchFacilityId).template).nativeCiv);

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

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

binaries/data/mods/public/gui/session/selection_panels.js
| 731| »   »   »   »   »   »   switch·(entity.check)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
| 392| 392| 				// Players see colors depending on diplomacy
| 393| 393| 				g_DisplayedPlayerColors[i] =
| 394| 394| 					g_ViewedPlayer == i ? getDiplomacyColor("self") :
| 395|    |-					g_Players[g_ViewedPlayer].isAlly[i] ? getDiplomacyColor("ally") :
|    | 395|+						g_Players[g_ViewedPlayer].isAlly[i] ? getDiplomacyColor("ally") :
| 396| 396| 					g_Players[g_ViewedPlayer].isNeutral[i] ? getDiplomacyColor("neutral") :
| 397| 397| 					getDiplomacyColor("enemy");
| 398| 398| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 7 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
| 393| 393| 				g_DisplayedPlayerColors[i] =
| 394| 394| 					g_ViewedPlayer == i ? getDiplomacyColor("self") :
| 395| 395| 					g_Players[g_ViewedPlayer].isAlly[i] ? getDiplomacyColor("ally") :
| 396|    |-					g_Players[g_ViewedPlayer].isNeutral[i] ? getDiplomacyColor("neutral") :
|    | 396|+							g_Players[g_ViewedPlayer].isNeutral[i] ? getDiplomacyColor("neutral") :
| 397| 397| 					getDiplomacyColor("enemy");
| 398| 398| 
| 399| 399| 		g_DisplayedPlayerColors[0] = g_Players[0].color;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 8 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
| 394| 394| 					g_ViewedPlayer == i ? getDiplomacyColor("self") :
| 395| 395| 					g_Players[g_ViewedPlayer].isAlly[i] ? getDiplomacyColor("ally") :
| 396| 396| 					g_Players[g_ViewedPlayer].isNeutral[i] ? getDiplomacyColor("neutral") :
| 397|    |-					getDiplomacyColor("enemy");
|    | 397|+								getDiplomacyColor("enemy");
| 398| 398| 
| 399| 399| 		g_DisplayedPlayerColors[0] = g_Players[0].color;
| 400| 400| 	}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
| 656| 656| 					"civ": setStringTags(g_CivData[g_Players[g_ViewedPlayer].civ].Name, { "font": "sans-bold-stroke-14" }),
| 657| 657| 					"hotkey_civinfo": colorizeHotkey("%(hotkey)s", "civinfo"),
| 658| 658| 					"hotkey_structree": colorizeHotkey("%(hotkey)s", "structree")
| 659|    |-			});
|    | 659|+				});
| 660| 660| 	}
| 661| 661| 
| 662| 662| 	// Following gaia can be interesting on scripted maps
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 2.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|1211|1211| 
|1212|1212| 	let orderHotkeyTooltip = Object.keys(viewablePlayerStates).length <= 1 ? "" :
|1213|1213| 		"\n" + sprintf(translate("%(order)s: %(hotkey)s to change order."), {
|1214|    |-		"hotkey": setStringTags("\\[Click]", g_HotkeyTags),
|    |1214|+			"hotkey": setStringTags("\\[Click]", g_HotkeyTags),
|1215|1215| 		"order": tooltipSort == 0 ? translate("Unordered") : tooltipSort == 1 ? translate("Descending") : translate("Ascending")
|1216|1216| 	});
|1217|1217| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 2.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|1212|1212| 	let orderHotkeyTooltip = Object.keys(viewablePlayerStates).length <= 1 ? "" :
|1213|1213| 		"\n" + sprintf(translate("%(order)s: %(hotkey)s to change order."), {
|1214|1214| 		"hotkey": setStringTags("\\[Click]", g_HotkeyTags),
|1215|    |-		"order": tooltipSort == 0 ? translate("Unordered") : tooltipSort == 1 ? translate("Descending") : translate("Ascending")
|    |1215|+			"order": tooltipSort == 0 ? translate("Unordered") : tooltipSort == 1 ? translate("Descending") : translate("Ascending")
|1216|1216| 	});
|1217|1217| 
|1218|1218| 	let resCodes = g_ResourceData.GetCodes();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 1.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|1213|1213| 		"\n" + sprintf(translate("%(order)s: %(hotkey)s to change order."), {
|1214|1214| 		"hotkey": setStringTags("\\[Click]", g_HotkeyTags),
|1215|1215| 		"order": tooltipSort == 0 ? translate("Unordered") : tooltipSort == 1 ? translate("Descending") : translate("Ascending")
|1216|    |-	});
|    |1216|+		});
|1217|1217| 
|1218|1218| 	let resCodes = g_ResourceData.GetCodes();
|1219|1219| 	for (let r = 0; r < resCodes.length; ++r)

binaries/data/mods/public/gui/session/session.js
|1072| »   let·getPanelEntNameTooltip·=·panelEntState·=>·"[font=\"sans-bold-16\"]"·+·template.name.specific·+·"[/font]";
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'panelEntState' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
|1147| »   »   button.onpress·=·(function(i)·{·return·function()·{·performGroup((Engine.HotkeyIsPressed("selection.add")·?·"add"·:·"select"),·i);·};·})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
|1148| »   »   button.ondoublepress·=·(function(i)·{·return·function()·{·performGroup("snap",·i);·};·})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
|1149| »   »   button.onpressright·=·(function(i)·{·return·function()·{·performGroup("breakUp",·i);·};·})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|  18|  18| 	this.cp = [];
|  19|  19| };
|  20|  20| 
|  21|    |-//// Interface functions ////
|    |  21|+// // Interface functions ////
|  22|  22| 
|  23|  23| /**
|  24|  24|  * Returns the current capture points array
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
| 145| 145| 	return sourceEnemyCp > 0;
| 146| 146| };
| 147| 147| 
| 148|    |-//// Private functions ////
|    | 148|+// // Private functions ////
| 149| 149| 
| 150| 150| /**
| 151| 151|  * This has to be called whenever the capture points are changed.
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
| 260| 260| 	Engine.PostMessage(this.entity, MT_CaptureRegenStateChanged, { "regenerating": true, "regenRate": regenRate, "territoryDecay": decay });
| 261| 261| };
| 262| 262| 
| 263|    |-//// Message Listeners ////
|    | 263|+// // Message Listeners ////
| 264| 264| 
| 265| 265| Capturable.prototype.OnValueModification = function(msg)
| 266| 266| {

binaries/data/mods/public/simulation/components/Capturable.js
| 192| »   »   var·garrisonRegenRate·=·0;
|    | [NORMAL] JSHintBear:
|    | 'garrisonRegenRate' is already defined.

binaries/data/mods/public/simulation/components/Capturable.js
| 194| »   return·regenRate·+·garrisonRegenRate;
|    | [NORMAL] JSHintBear:
|    | 'garrisonRegenRate' used out of scope.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 825| »   »   if·(this.position()·!==·undefined)·{
|    | [NORMAL] ESLintBear (brace-rules/brace-on-same-line):
|    | Opening curly brace appears on the same line as controlling statement.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 842| »   »   if·(this.position()·!==·undefined·&&·unitToFleeFrom.position()·!==·undefined)·{
|    | [NORMAL] ESLintBear (brace-rules/brace-on-same-line):
|    | Opening curly brace appears on the same line as controlling statement.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 972| }(API3);
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'API3' was used before it was defined.
Executing section cli...

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/615/display/redirect

Freagarach updated this revision to Diff 9677.Sep 9 2019, 1:49 PM

Forgot to revert previous patch,,,

Vulcan added a comment.Sep 9 2019, 1:51 PM

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

Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/107/display/redirect

Vulcan added a comment.Sep 9 2019, 1:54 PM

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|  18|  18| 	this.cp = [];
|  19|  19| };
|  20|  20| 
|  21|    |-//// Interface functions ////
|    |  21|+// // Interface functions ////
|  22|  22| 
|  23|  23| /**
|  24|  24|  * Returns the current capture points array
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
| 145| 145| 	return sourceEnemyCp > 0;
| 146| 146| };
| 147| 147| 
| 148|    |-//// Private functions ////
|    | 148|+// // Private functions ////
| 149| 149| 
| 150| 150| /**
| 151| 151|  * This has to be called whenever the capture points are changed.
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
| 260| 260| 	Engine.PostMessage(this.entity, MT_CaptureRegenStateChanged, { "regenerating": true, "regenRate": regenRate, "territoryDecay": decay });
| 261| 261| };
| 262| 262| 
| 263|    |-//// Message Listeners ////
|    | 263|+// // Message Listeners ////
| 264| 264| 
| 265| 265| Capturable.prototype.OnValueModification = function(msg)
| 266| 266| {

binaries/data/mods/public/simulation/components/Capturable.js
| 192| »   »   var·garrisonRegenRate·=·0;
|    | [NORMAL] JSHintBear:
|    | 'garrisonRegenRate' is already defined.

binaries/data/mods/public/simulation/components/Capturable.js
| 194| »   return·regenRate·+·garrisonRegenRate;
|    | [NORMAL] JSHintBear:
|    | 'garrisonRegenRate' used out of scope.
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|  87|  87| 		// If the elements are still strings, split them by space or by '+'
|  88|  88| 		if (typeof sublist == "string")
|  89|  89| 			sublist = sublist.split(/[+\s]+/);
|  90|    |-		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1)
|  91|    |-		                    || (c[0] != "!" && classes.indexOf(c) != -1)))
|    |  90|+		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1) ||
|    |  91|+		                    (c[0] != "!" && classes.indexOf(c) != -1)))
|  92|  92| 			return true;
|  93|  93| 	}
|  94|  94| 

binaries/data/mods/public/globalscripts/Templates.js
|  91| »   »   ····················||·(c[0]·!=·"!"·&&·classes.indexOf(c)·!=·-1)))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 435| 435| 	let cmpResistance = Engine.QueryInterface(ent, IID_Resistance);
| 436| 436| 	if (cmpResistance)
| 437| 437| 	{
| 438|    |-		ret.resistance = {}
|    | 438|+		ret.resistance = {};
| 439| 439| 		Object.assign(ret.resistance, cmpResistance.GetResistanceStrengths("Damage"));
| 440| 440| 		Object.assign(ret.resistance, cmpResistance.GetResistanceStrengths("Capture"));
| 441| 441| 	}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 800| 800| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 801| 801| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 802| 802| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 803|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 803|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 804| 804| 	}
| 805| 805| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 806| 806| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1633|1633| 			{
|1634|1634| 				minDist2 = dist2;
|1635|1635| 				minDistEntitySnapData = {
|1636|    |-						"x": pos.x,
|    |1636|+					"x": pos.x,
|1637|1637| 						"z": pos.z,
|1638|1638| 						"angle": cmpPosition.GetRotation().y,
|1639|1639| 						"ent": ent
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1634|1634| 				minDist2 = dist2;
|1635|1635| 				minDistEntitySnapData = {
|1636|1636| 						"x": pos.x,
|1637|    |-						"z": pos.z,
|    |1637|+					"z": pos.z,
|1638|1638| 						"angle": cmpPosition.GetRotation().y,
|1639|1639| 						"ent": ent
|1640|1640| 				};
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1635|1635| 				minDistEntitySnapData = {
|1636|1636| 						"x": pos.x,
|1637|1637| 						"z": pos.z,
|1638|    |-						"angle": cmpPosition.GetRotation().y,
|    |1638|+					"angle": cmpPosition.GetRotation().y,
|1639|1639| 						"ent": ent
|1640|1640| 				};
|1641|1641| 			}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1636|1636| 						"x": pos.x,
|1637|1637| 						"z": pos.z,
|1638|1638| 						"angle": cmpPosition.GetRotation().y,
|1639|    |-						"ent": ent
|    |1639|+					"ent": ent
|1640|1640| 				};
|1641|1641| 			}
|1642|1642| 		}

binaries/data/mods/public/simulation/components/GuiInterface.js
| 438| »   »   ret.resistance·=·{}
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
| 392| 392| 				// Players see colors depending on diplomacy
| 393| 393| 				g_DisplayedPlayerColors[i] =
| 394| 394| 					g_ViewedPlayer == i ? getDiplomacyColor("self") :
| 395|    |-					g_Players[g_ViewedPlayer].isAlly[i] ? getDiplomacyColor("ally") :
|    | 395|+						g_Players[g_ViewedPlayer].isAlly[i] ? getDiplomacyColor("ally") :
| 396| 396| 					g_Players[g_ViewedPlayer].isNeutral[i] ? getDiplomacyColor("neutral") :
| 397| 397| 					getDiplomacyColor("enemy");
| 398| 398| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 7 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
| 393| 393| 				g_DisplayedPlayerColors[i] =
| 394| 394| 					g_ViewedPlayer == i ? getDiplomacyColor("self") :
| 395| 395| 					g_Players[g_ViewedPlayer].isAlly[i] ? getDiplomacyColor("ally") :
| 396|    |-					g_Players[g_ViewedPlayer].isNeutral[i] ? getDiplomacyColor("neutral") :
|    | 396|+							g_Players[g_ViewedPlayer].isNeutral[i] ? getDiplomacyColor("neutral") :
| 397| 397| 					getDiplomacyColor("enemy");
| 398| 398| 
| 399| 399| 		g_DisplayedPlayerColors[0] = g_Players[0].color;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 8 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
| 394| 394| 					g_ViewedPlayer == i ? getDiplomacyColor("self") :
| 395| 395| 					g_Players[g_ViewedPlayer].isAlly[i] ? getDiplomacyColor("ally") :
| 396| 396| 					g_Players[g_ViewedPlayer].isNeutral[i] ? getDiplomacyColor("neutral") :
| 397|    |-					getDiplomacyColor("enemy");
|    | 397|+								getDiplomacyColor("enemy");
| 398| 398| 
| 399| 399| 		g_DisplayedPlayerColors[0] = g_Players[0].color;
| 400| 400| 	}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
| 656| 656| 					"civ": setStringTags(g_CivData[g_Players[g_ViewedPlayer].civ].Name, { "font": "sans-bold-stroke-14" }),
| 657| 657| 					"hotkey_civinfo": colorizeHotkey("%(hotkey)s", "civinfo"),
| 658| 658| 					"hotkey_structree": colorizeHotkey("%(hotkey)s", "structree")
| 659|    |-			});
|    | 659|+				});
| 660| 660| 	}
| 661| 661| 
| 662| 662| 	// Following gaia can be interesting on scripted maps
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 2.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|1211|1211| 
|1212|1212| 	let orderHotkeyTooltip = Object.keys(viewablePlayerStates).length <= 1 ? "" :
|1213|1213| 		"\n" + sprintf(translate("%(order)s: %(hotkey)s to change order."), {
|1214|    |-		"hotkey": setStringTags("\\[Click]", g_HotkeyTags),
|    |1214|+			"hotkey": setStringTags("\\[Click]", g_HotkeyTags),
|1215|1215| 		"order": tooltipSort == 0 ? translate("Unordered") : tooltipSort == 1 ? translate("Descending") : translate("Ascending")
|1216|1216| 	});
|1217|1217| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 2.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|1212|1212| 	let orderHotkeyTooltip = Object.keys(viewablePlayerStates).length <= 1 ? "" :
|1213|1213| 		"\n" + sprintf(translate("%(order)s: %(hotkey)s to change order."), {
|1214|1214| 		"hotkey": setStringTags("\\[Click]", g_HotkeyTags),
|1215|    |-		"order": tooltipSort == 0 ? translate("Unordered") : tooltipSort == 1 ? translate("Descending") : translate("Ascending")
|    |1215|+			"order": tooltipSort == 0 ? translate("Unordered") : tooltipSort == 1 ? translate("Descending") : translate("Ascending")
|1216|1216| 	});
|1217|1217| 
|1218|1218| 	let resCodes = g_ResourceData.GetCodes();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 1.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|1213|1213| 		"\n" + sprintf(translate("%(order)s: %(hotkey)s to change order."), {
|1214|1214| 		"hotkey": setStringTags("\\[Click]", g_HotkeyTags),
|1215|1215| 		"order": tooltipSort == 0 ? translate("Unordered") : tooltipSort == 1 ? translate("Descending") : translate("Ascending")
|1216|    |-	});
|    |1216|+		});
|1217|1217| 
|1218|1218| 	let resCodes = g_ResourceData.GetCodes();
|1219|1219| 	for (let r = 0; r < resCodes.length; ++r)

binaries/data/mods/public/gui/session/session.js
|1072| »   let·getPanelEntNameTooltip·=·panelEntState·=>·"[font=\"sans-bold-16\"]"·+·template.name.specific·+·"[/font]";
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'panelEntState' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
|1147| »   »   button.onpress·=·(function(i)·{·return·function()·{·performGroup((Engine.HotkeyIsPressed("selection.add")·?·"add"·:·"select"),·i);·};·})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
|1148| »   »   button.ondoublepress·=·(function(i)·{·return·function()·{·performGroup("snap",·i);·};·})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
|1149| »   »   button.onpressright·=·(function(i)·{·return·function()·{·performGroup("breakUp",·i);·};·})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 201| 201| 		tooltips.push(sprintf(translate("%(label)s %(details)s"), {
| 202| 202| 			"label": headerFont(translate("Status Effects Resistance:")),
| 203| 203| 			"details": "ToDo."
| 204|    |-				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
|    | 204|+			//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 205| 205| 				//	"damage": template.resistance.Capture.toFixed(1),
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 201| 201| 		tooltips.push(sprintf(translate("%(label)s %(details)s"), {
| 202| 202| 			"label": headerFont(translate("Status Effects Resistance:")),
| 203| 203| 			"details": "ToDo."
| 204|    |-				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
|    | 204|+				// sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 205| 205| 				//	"damage": template.resistance.Capture.toFixed(1),
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 202| 202| 			"label": headerFont(translate("Status Effects Resistance:")),
| 203| 203| 			"details": "ToDo."
| 204| 204| 				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 205|    |-				//	"damage": template.resistance.Capture.toFixed(1),
|    | 205|+			//	"damage": template.resistance.Capture.toFixed(1),
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
| 208| 208| 				//		'[font="sans-10"]' +
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 203| 203| 			"details": "ToDo."
| 204| 204| 				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 205| 205| 				//	"damage": template.resistance.Capture.toFixed(1),
| 206|    |-				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
|    | 206|+			//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
| 208| 208| 				//		'[font="sans-10"]' +
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 204| 204| 				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 205| 205| 				//	"damage": template.resistance.Capture.toFixed(1),
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207|    |-				//	"resistancePercentage":
|    | 207|+			//	"resistancePercentage":
| 208| 208| 				//		'[font="sans-10"]' +
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 205| 205| 				//	"damage": template.resistance.Capture.toFixed(1),
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
| 208|    |-				//		'[font="sans-10"]' +
|    | 208|+			//		'[font="sans-10"]' +
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211| 211| 				//		}) + '[/font]'
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
| 208| 208| 				//		'[font="sans-10"]' +
| 209|    |-				//		sprintf(translate("(%(resistancePercentage)s)"), {
|    | 209|+			//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211| 211| 				//		}) + '[/font]'
| 212| 212| 				//})
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 207| 207| 				//	"resistancePercentage":
| 208| 208| 				//		'[font="sans-10"]' +
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210|    |-				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
|    | 210|+			//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211| 211| 				//		}) + '[/font]'
| 212| 212| 				//})
| 213| 213| 		}));
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 208| 208| 				//		'[font="sans-10"]' +
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211|    |-				//		}) + '[/font]'
|    | 211|+			//		}) + '[/font]'
| 212| 212| 				//})
| 213| 213| 		}));
| 214| 214| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211| 211| 				//		}) + '[/font]'
| 212|    |-				//})
|    | 212|+			//})
| 213| 213| 		}));
| 214| 214| 
| 215| 215| 	return tooltips.join("\n");
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211| 211| 				//		}) + '[/font]'
| 212|    |-				//})
|    | 212|+				// })
| 213| 213| 		}));
| 214| 214| 
| 215| 215| 	return tooltips.join("\n");

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 825| »   »   if·(this.position()·!==·undefined)·{
|    | [NORMAL] ESLintBear (brace-rules/brace-on-same-line):
|    | Opening curly brace appears on the same line as controlling statement.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 842| »   »   if·(this.position()·!==·undefined·&&·unitToFleeFrom.position()·!==·undefined)·{
|    | [NORMAL] ESLintBear (brace-rules/brace-on-same-line):
|    | Opening curly brace appears on the same line as controlling statement.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 972| }(API3);
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'API3' was used before it was defined.
|    | [NORMAL] ESLintBear (space-before-function-paren):
|    | Unexpected space before function parentheses.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/selection_panels.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/selection_panels.js
| 763| 763| 				addResearchToQueue(data.item.researchFacilityId, t);
| 764| 764| 			})(tech);
| 765| 765| 
| 766|    |-			button.onPressRight = (t => function () {
|    | 766|+			button.onPressRight = (t => function() {
| 767| 767| 				showTemplateDetails(
| 768| 768| 					t,
| 769| 769| 					GetTemplateData(data.unitEntStates.find(state => state.id == data.item.researchFacilityId).template).nativeCiv);

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

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

binaries/data/mods/public/gui/session/selection_panels.js
| 731| »   »   »   »   »   »   switch·(entity.check)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.
Executing section cli...

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/616/display/redirect

Stan added inline comments.Sep 9 2019, 4:02 PM
binaries/data/mods/public/globalscripts/Templates.js
168

filter ?

binaries/data/mods/public/gui/common/tooltips.js
203

will it display to do in the interface ?

binaries/data/mods/public/simulation/ai/common-api/entity.js
211

if(!template)
continue ?

binaries/data/mods/public/simulation/ai/petra/entityExtend.js
58–66

Maybe you could filter the array ?

61

what happens if you use + instead ? Parse float being slower.

binaries/data/mods/public/simulation/components/Resistance.js
110

I always wonder if merging early continues is faster ?

117

if !template continue ?

Freagarach added inline comments.Sep 9 2019, 4:38 PM
binaries/data/mods/public/gui/common/tooltips.js
203

Only if someone adds a statusEffect resistance.

binaries/data/mods/public/simulation/helpers/Attacking.js
107

resistanceStrengths ? resistanceStrengths[type] || 0 : 0

Freagarach updated this revision to Diff 9804.Mon, Sep 16, 4:01 PM
Freagarach marked 5 inline comments as done.

Some minor fixes.

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
| 392| 392| 				// Players see colors depending on diplomacy
| 393| 393| 				g_DisplayedPlayerColors[i] =
| 394| 394| 					g_ViewedPlayer == i ? getDiplomacyColor("self") :
| 395|    |-					g_Players[g_ViewedPlayer].isAlly[i] ? getDiplomacyColor("ally") :
|    | 395|+						g_Players[g_ViewedPlayer].isAlly[i] ? getDiplomacyColor("ally") :
| 396| 396| 					g_Players[g_ViewedPlayer].isNeutral[i] ? getDiplomacyColor("neutral") :
| 397| 397| 					getDiplomacyColor("enemy");
| 398| 398| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 7 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
| 393| 393| 				g_DisplayedPlayerColors[i] =
| 394| 394| 					g_ViewedPlayer == i ? getDiplomacyColor("self") :
| 395| 395| 					g_Players[g_ViewedPlayer].isAlly[i] ? getDiplomacyColor("ally") :
| 396|    |-					g_Players[g_ViewedPlayer].isNeutral[i] ? getDiplomacyColor("neutral") :
|    | 396|+							g_Players[g_ViewedPlayer].isNeutral[i] ? getDiplomacyColor("neutral") :
| 397| 397| 					getDiplomacyColor("enemy");
| 398| 398| 
| 399| 399| 		g_DisplayedPlayerColors[0] = g_Players[0].color;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 8 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
| 394| 394| 					g_ViewedPlayer == i ? getDiplomacyColor("self") :
| 395| 395| 					g_Players[g_ViewedPlayer].isAlly[i] ? getDiplomacyColor("ally") :
| 396| 396| 					g_Players[g_ViewedPlayer].isNeutral[i] ? getDiplomacyColor("neutral") :
| 397|    |-					getDiplomacyColor("enemy");
|    | 397|+								getDiplomacyColor("enemy");
| 398| 398| 
| 399| 399| 		g_DisplayedPlayerColors[0] = g_Players[0].color;
| 400| 400| 	}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
| 656| 656| 					"civ": setStringTags(g_CivData[g_Players[g_ViewedPlayer].civ].Name, { "font": "sans-bold-stroke-14" }),
| 657| 657| 					"hotkey_civinfo": colorizeHotkey("%(hotkey)s", "civinfo"),
| 658| 658| 					"hotkey_structree": colorizeHotkey("%(hotkey)s", "structree")
| 659|    |-			});
|    | 659|+				});
| 660| 660| 	}
| 661| 661| 
| 662| 662| 	// Following gaia can be interesting on scripted maps
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 2.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|1211|1211| 
|1212|1212| 	let orderHotkeyTooltip = Object.keys(viewablePlayerStates).length <= 1 ? "" :
|1213|1213| 		"\n" + sprintf(translate("%(order)s: %(hotkey)s to change order."), {
|1214|    |-		"hotkey": setStringTags("\\[Click]", g_HotkeyTags),
|    |1214|+			"hotkey": setStringTags("\\[Click]", g_HotkeyTags),
|1215|1215| 		"order": tooltipSort == 0 ? translate("Unordered") : tooltipSort == 1 ? translate("Descending") : translate("Ascending")
|1216|1216| 	});
|1217|1217| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 2.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|1212|1212| 	let orderHotkeyTooltip = Object.keys(viewablePlayerStates).length <= 1 ? "" :
|1213|1213| 		"\n" + sprintf(translate("%(order)s: %(hotkey)s to change order."), {
|1214|1214| 		"hotkey": setStringTags("\\[Click]", g_HotkeyTags),
|1215|    |-		"order": tooltipSort == 0 ? translate("Unordered") : tooltipSort == 1 ? translate("Descending") : translate("Ascending")
|    |1215|+			"order": tooltipSort == 0 ? translate("Unordered") : tooltipSort == 1 ? translate("Descending") : translate("Ascending")
|1216|1216| 	});
|1217|1217| 
|1218|1218| 	let resCodes = g_ResourceData.GetCodes();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 1.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/session.js
|1213|1213| 		"\n" + sprintf(translate("%(order)s: %(hotkey)s to change order."), {
|1214|1214| 		"hotkey": setStringTags("\\[Click]", g_HotkeyTags),
|1215|1215| 		"order": tooltipSort == 0 ? translate("Unordered") : tooltipSort == 1 ? translate("Descending") : translate("Ascending")
|1216|    |-	});
|    |1216|+		});
|1217|1217| 
|1218|1218| 	let resCodes = g_ResourceData.GetCodes();
|1219|1219| 	for (let r = 0; r < resCodes.length; ++r)

binaries/data/mods/public/gui/session/session.js
|1072| »   let·getPanelEntNameTooltip·=·panelEntState·=>·"[font=\"sans-bold-16\"]"·+·template.name.specific·+·"[/font]";
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'panelEntState' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
|1147| »   »   button.onpress·=·(function(i)·{·return·function()·{·performGroup((Engine.HotkeyIsPressed("selection.add")·?·"add"·:·"select"),·i);·};·})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
|1148| »   »   button.ondoublepress·=·(function(i)·{·return·function()·{·performGroup("snap",·i);·};·})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/gui/session/session.js
|1149| »   »   button.onpressright·=·(function(i)·{·return·function()·{·performGroup("breakUp",·i);·};·})(i);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 439| 439| 	let cmpResistance = Engine.QueryInterface(ent, IID_Resistance);
| 440| 440| 	if (cmpResistance)
| 441| 441| 	{
| 442|    |-		ret.resistance = {}
|    | 442|+		ret.resistance = {};
| 443| 443| 		Object.assign(ret.resistance, cmpResistance.GetResistanceStrengths("Damage"));
| 444| 444| 		Object.assign(ret.resistance, cmpResistance.GetResistanceStrengths("Capture"));
| 445| 445| 	}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 804| 804| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 805| 805| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 806| 806| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 807|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 807|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 808| 808| 	}
| 809| 809| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 810| 810| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1637|1637| 			{
|1638|1638| 				minDist2 = dist2;
|1639|1639| 				minDistEntitySnapData = {
|1640|    |-						"x": pos.x,
|    |1640|+					"x": pos.x,
|1641|1641| 						"z": pos.z,
|1642|1642| 						"angle": cmpPosition.GetRotation().y,
|1643|1643| 						"ent": ent
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1638|1638| 				minDist2 = dist2;
|1639|1639| 				minDistEntitySnapData = {
|1640|1640| 						"x": pos.x,
|1641|    |-						"z": pos.z,
|    |1641|+					"z": pos.z,
|1642|1642| 						"angle": cmpPosition.GetRotation().y,
|1643|1643| 						"ent": ent
|1644|1644| 				};
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1639|1639| 				minDistEntitySnapData = {
|1640|1640| 						"x": pos.x,
|1641|1641| 						"z": pos.z,
|1642|    |-						"angle": cmpPosition.GetRotation().y,
|    |1642|+					"angle": cmpPosition.GetRotation().y,
|1643|1643| 						"ent": ent
|1644|1644| 				};
|1645|1645| 			}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1640|1640| 						"x": pos.x,
|1641|1641| 						"z": pos.z,
|1642|1642| 						"angle": cmpPosition.GetRotation().y,
|1643|    |-						"ent": ent
|    |1643|+					"ent": ent
|1644|1644| 				};
|1645|1645| 			}
|1646|1646| 		}

binaries/data/mods/public/simulation/components/GuiInterface.js
| 442| »   »   ret.resistance·=·{}
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|  87|  87| 		// If the elements are still strings, split them by space or by '+'
|  88|  88| 		if (typeof sublist == "string")
|  89|  89| 			sublist = sublist.split(/[+\s]+/);
|  90|    |-		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1)
|  91|    |-		                    || (c[0] != "!" && classes.indexOf(c) != -1)))
|    |  90|+		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1) ||
|    |  91|+		                    (c[0] != "!" && classes.indexOf(c) != -1)))
|  92|  92| 			return true;
|  93|  93| 	}
|  94|  94| 

binaries/data/mods/public/globalscripts/Templates.js
|  91| »   »   ····················||·(c[0]·!=·"!"·&&·classes.indexOf(c)·!=·-1)))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 823| »   »   if·(this.position()·!==·undefined)·{
|    | [NORMAL] ESLintBear (brace-rules/brace-on-same-line):
|    | Opening curly brace appears on the same line as controlling statement.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 840| »   »   if·(this.position()·!==·undefined·&&·unitToFleeFrom.position()·!==·undefined)·{
|    | [NORMAL] ESLintBear (brace-rules/brace-on-same-line):
|    | Opening curly brace appears on the same line as controlling statement.

binaries/data/mods/public/simulation/ai/common-api/entity.js
| 970| }(API3);
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'API3' was used before it was defined.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 201| 201| 		tooltips.push(sprintf(translate("%(label)s %(details)s"), {
| 202| 202| 			"label": headerFont(translate("Status Effects Resistance:")),
| 203| 203| 			"details": "ToDo."
| 204|    |-				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
|    | 204|+			//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 205| 205| 				//	"damage": template.resistance.Capture.toFixed(1),
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 201| 201| 		tooltips.push(sprintf(translate("%(label)s %(details)s"), {
| 202| 202| 			"label": headerFont(translate("Status Effects Resistance:")),
| 203| 203| 			"details": "ToDo."
| 204|    |-				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
|    | 204|+				// sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 205| 205| 				//	"damage": template.resistance.Capture.toFixed(1),
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 202| 202| 			"label": headerFont(translate("Status Effects Resistance:")),
| 203| 203| 			"details": "ToDo."
| 204| 204| 				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 205|    |-				//	"damage": template.resistance.Capture.toFixed(1),
|    | 205|+			//	"damage": template.resistance.Capture.toFixed(1),
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
| 208| 208| 				//		'[font="sans-10"]' +
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 203| 203| 			"details": "ToDo."
| 204| 204| 				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 205| 205| 				//	"damage": template.resistance.Capture.toFixed(1),
| 206|    |-				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
|    | 206|+			//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
| 208| 208| 				//		'[font="sans-10"]' +
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 204| 204| 				//sprintf(translate("%(damage)s %(damageType)s %(resistancePercentage)s"), {
| 205| 205| 				//	"damage": template.resistance.Capture.toFixed(1),
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207|    |-				//	"resistancePercentage":
|    | 207|+			//	"resistancePercentage":
| 208| 208| 				//		'[font="sans-10"]' +
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 205| 205| 				//	"damage": template.resistance.Capture.toFixed(1),
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
| 208|    |-				//		'[font="sans-10"]' +
|    | 208|+			//		'[font="sans-10"]' +
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211| 211| 				//		}) + '[/font]'
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 206| 206| 				//	"damageType": unitFont(translateWithContext("damage type", "Capture")),
| 207| 207| 				//	"resistancePercentage":
| 208| 208| 				//		'[font="sans-10"]' +
| 209|    |-				//		sprintf(translate("(%(resistancePercentage)s)"), {
|    | 209|+			//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211| 211| 				//		}) + '[/font]'
| 212| 212| 				//})
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 207| 207| 				//	"resistancePercentage":
| 208| 208| 				//		'[font="sans-10"]' +
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210|    |-				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
|    | 210|+			//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211| 211| 				//		}) + '[/font]'
| 212| 212| 				//})
| 213| 213| 		}));
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 208| 208| 				//		'[font="sans-10"]' +
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211|    |-				//		}) + '[/font]'
|    | 211|+			//		}) + '[/font]'
| 212| 212| 				//})
| 213| 213| 		}));
| 214| 214| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211| 211| 				//		}) + '[/font]'
| 212|    |-				//})
|    | 212|+			//})
| 213| 213| 		}));
| 214| 214| 
| 215| 215| 	return tooltips.join("\n");
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/common/tooltips.js
| 209| 209| 				//		sprintf(translate("(%(resistancePercentage)s)"), {
| 210| 210| 				//			"resistancePercentage": resistanceLevelToPercentageString(template.resistance.Capture)
| 211| 211| 				//		}) + '[/font]'
| 212|    |-				//})
|    | 212|+				// })
| 213| 213| 		}));
| 214| 214| 
| 215| 215| 	return tooltips.join("\n");
|    | [NORMAL] ESLintBear (space-before-function-paren):
|    | Unexpected space before function parentheses.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/selection_panels.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/selection_panels.js
| 763| 763| 				addResearchToQueue(data.item.researchFacilityId, t);
| 764| 764| 			})(tech);
| 765| 765| 
| 766|    |-			button.onPressRight = (t => function () {
|    | 766|+			button.onPressRight = (t => function() {
| 767| 767| 				showTemplateDetails(
| 768| 768| 					t,
| 769| 769| 					GetTemplateData(data.unitEntStates.find(state => state.id == data.item.researchFacilityId).template).nativeCiv);

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

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

binaries/data/mods/public/gui/session/selection_panels.js
| 731| »   »   »   »   »   »   switch·(entity.check)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|  18|  18| 	this.cp = [];
|  19|  19| };
|  20|  20| 
|  21|    |-//// Interface functions ////
|    |  21|+// // Interface functions ////
|  22|  22| 
|  23|  23| /**
|  24|  24|  * Returns the current capture points array
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
| 145| 145| 	return sourceEnemyCp > 0;
| 146| 146| };
| 147| 147| 
| 148|    |-//// Private functions ////
|    | 148|+// // Private functions ////
| 149| 149| 
| 150| 150| /**
| 151| 151|  * This has to be called whenever the capture points are changed.
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Capturable.js
| 260| 260| 	Engine.PostMessage(this.entity, MT_CaptureRegenStateChanged, { "regenerating": true, "regenRate": regenRate, "territoryDecay": decay });
| 261| 261| };
| 262| 262| 
| 263|    |-//// Message Listeners ////
|    | 263|+// // Message Listeners ////
| 264| 264| 
| 265| 265| Capturable.prototype.OnValueModification = function(msg)
| 266| 266| {

binaries/data/mods/public/simulation/components/Capturable.js
| 192| »   »   var·garrisonRegenRate·=·0;
|    | [NORMAL] JSHintBear:
|    | 'garrisonRegenRate' is already defined.

binaries/data/mods/public/simulation/components/Capturable.js
| 194| »   return·regenRate·+·garrisonRegenRate;
|    | [NORMAL] JSHintBear:
|    | 'garrisonRegenRate' used out of scope.
Executing section cli...

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/718/display/redirect

Freagarach added inline comments.Mon, Sep 16, 4:27 PM
binaries/data/mods/public/simulation/ai/petra/entityExtend.js
58–66

What is the benefit of that if I may ask? Less looping?

binaries/data/mods/public/simulation/components/Resistance.js
110

Less readable.

Freagarach added a child revision: Restricted Differential Revision.Fri, Sep 20, 3:00 PM