Page MenuHomeWildfire Games

Add proximity attack component.
Needs ReviewPublic

Authored by Freagarach on Apr 20 2019, 10:08 PM.

Details

Reviewers
bb
Group Reviewers
Restricted Owners Package(Owns No Changed Paths)
Trac Tickets
#995
Summary

Adding a ProximityAttack-component and changed the Damage-component so it can be used. This allows units to passively damage surrounding entities. Can perhaps be be used for e.g. trampling (and units which are on fire?). Perhaps for passively capturing nearby units as well? (With some adaptations.)

I will remove the template change when I'm (nearly) done, but I don't want to add it manually every single time,,,

Test Plan

Give a unit the ProximityDamage-component and see how it works :) Hope I didn't overlook anything.

Diff Detail

Repository
rP 0 A.D. Public Repository
Branch
/ps/trunk
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 8376
Build 13683: Vulcan BuildJenkins
Build 13680: arc lint + arc unit

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Implemented some suggestions.

Stan added a subscriber: elexis.Apr 26 2019, 10:05 PM
Stan added inline comments.
binaries/data/mods/public/simulation/components/Damage.js
286

You should split the line like your example. Maybe early return instead false. If the unit isnt in the world its likely not moving. The only units that do are planes.

cmpPosition.IsInWorld()

binaries/data/mods/public/simulation/components/ProximityDamage.js
64

By default everything is serialized :)

155

@elexis would know

binaries/data/mods/public/simulation/components/UnitAI.js
3328 ↗(On Diff #7817)

You could look at components using the UnitMotion component :)

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 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  23|  23| 	let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
|  24|  24| 	let turnLength = cmpTimer.GetLatestTurnLength();
|  25|  25| 	return new Vector3D(
|  26|    |-			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|    |  26|+		(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|  27| 			0,
|  28|  28| 			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  24|  24| 	let turnLength = cmpTimer.GetLatestTurnLength();
|  25|  25| 	return new Vector3D(
|  26|  26| 			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|    |-			0,
|    |  27|+		0,
|  28|  28| 			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|  30|  30| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  25|  25| 	return new Vector3D(
|  26|  26| 			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|  27| 			0,
|  28|    |-			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|    |  28|+		(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|  30|  30| 
|  31|  31| /**
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
| 111| 111| 
| 112| 112| 	// Do this first in case the direct hit kills the target
| 113| 113| 	if (data.isSplash)
| 114|    |-	{
|    | 114|+	
| 115| 115| 		this.CauseSplashDamage({
| 116| 116| 			"attacker": data.attacker,
| 117| 117| 			"origin": Vector2D.from3D(data.position),
| 124| 124| 			"type": data.type,
| 125| 125| 			"attackerOwner": data.attackerOwner
| 126| 126| 		});
| 127|    |-	}
|    | 127|+	
| 128| 128| 
| 129| 129| 	let cmpProjectileManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_ProjectileManager);
| 130| 130| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
| 212| 212| 				damageMultiplier = 0;
| 213| 213| 		}
| 214| 214| 		else // In case someone calls this function with an invalid shape.
| 215|    |-		{
|    | 215|+		
| 216| 216| 			warn("The " + data.shape + " splash damage shape is not implemented!");
| 217|    |-		}
|    | 217|+		
| 218| 218| 
| 219| 219| 		if (data.splashBonus)
| 220| 220| 			damageMultiplier *= GetDamageBonus(ent, data.splashBonus);
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 228| 228| 		// Move a tile outside the building
| 229| 229| 		let range = 4;
| 230| 230| 		if (this.MoveToTargetRangeExplicit(msg.data.target, range, range))
| 231|    |-		{
|    | 231|+		
| 232| 232| 			// We've started walking to the given point
| 233| 233| 			this.SetNextState("INDIVIDUAL.WALKING");
| 234|    |-		}
|    | 234|+		
| 235| 235| 		else
| 236| 236| 		{
| 237| 237| 			// We are already at the target, or can't move at all
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 233| 233| 			this.SetNextState("INDIVIDUAL.WALKING");
| 234| 234| 		}
| 235| 235| 		else
| 236|    |-		{
|    | 236|+		
| 237| 237| 			// We are already at the target, or can't move at all
| 238| 238| 			this.FinishOrder();
| 239|    |-		}
|    | 239|+		
| 240| 240| 	},
| 241| 241| 
| 242| 242| 	// Individual orders:
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 335| 335| 
| 336| 336| 		var ok = this.MoveToTarget(this.order.data.target);
| 337| 337| 		if (ok)
| 338|    |-		{
|    | 338|+		
| 339| 339| 			// We've started walking to the given point
| 340| 340| 			if (this.IsAnimal())
| 341| 341| 				this.SetNextState("ANIMAL.WALKING");
| 342| 342| 			else
| 343| 343| 				this.SetNextState("INDIVIDUAL.WALKING");
| 344|    |-		}
|    | 344|+		
| 345| 345| 		else
| 346| 346| 		{
| 347| 347| 			// We are already at the target, or can't move at all
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 363| 363| 		var cmpPosition = Engine.QueryInterface(this.entity, IID_Position);
| 364| 364| 		if (this.lastShorelinePosition && cmpPosition && (this.lastShorelinePosition.x == cmpPosition.GetPosition().x)
| 365| 365| 		    && (this.lastShorelinePosition.z == cmpPosition.GetPosition().z))
| 366|    |-		{
|    | 366|+		
| 367| 367| 			// we were already on the shoreline, and have not moved since
| 368| 368| 			if (DistanceBetweenEntities(this.entity, this.order.data.target) < 50)
| 369| 369| 				needToMove = false;
| 370|    |-		}
|    | 370|+		
| 371| 371| 
| 372| 372| 		// TODO: what if the units are on a cliff ? the ship will go below the cliff
| 373| 373| 		// and the units won't be able to garrison. Should go to the nearest (accessible) shore
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 361| 361| 		// Check if we need to move     TODO implement a better way to know if we are on the shoreline
| 362| 362| 		var needToMove = true;
| 363| 363| 		var cmpPosition = Engine.QueryInterface(this.entity, IID_Position);
| 364|    |-		if (this.lastShorelinePosition && cmpPosition && (this.lastShorelinePosition.x == cmpPosition.GetPosition().x)
| 365|    |-		    && (this.lastShorelinePosition.z == cmpPosition.GetPosition().z))
|    | 364|+		if (this.lastShorelinePosition && cmpPosition && (this.lastShorelinePosition.x == cmpPosition.GetPosition().x) &&
|    | 365|+		    (this.lastShorelinePosition.z == cmpPosition.GetPosition().z))
| 366| 366| 		{
| 367| 367| 			// we were already on the shoreline, and have not moved since
| 368| 368| 			if (DistanceBetweenEntities(this.entity, this.order.data.target) < 50)
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 372| 372| 		// TODO: what if the units are on a cliff ? the ship will go below the cliff
| 373| 373| 		// and the units won't be able to garrison. Should go to the nearest (accessible) shore
| 374| 374| 		if (needToMove && this.MoveToTarget(this.order.data.target))
| 375|    |-		{
|    | 375|+		
| 376| 376| 			this.SetNextState("INDIVIDUAL.PICKUP.APPROACHING");
| 377|    |-		}
|    | 377|+		
| 378| 378| 		else
| 379| 379| 		{
| 380| 380| 			// We are already at the target, or can't move at all
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 401| 401| 		var distance = DistanceBetweenEntities(this.entity, this.order.data.target) + (+this.template.FleeDistance);
| 402| 402| 		var cmpUnitMotion = Engine.QueryInterface(this.entity, IID_UnitMotion);
| 403| 403| 		if (cmpUnitMotion.MoveToTargetRange(this.order.data.target, distance, -1))
| 404|    |-		{
|    | 404|+		
| 405| 405| 			// We've started fleeing from the given target
| 406| 406| 			if (this.IsAnimal())
| 407| 407| 				this.SetNextState("ANIMAL.FLEEING");
| 408| 408| 			else
| 409| 409| 				this.SetNextState("INDIVIDUAL.FLEEING");
| 410|    |-		}
|    | 410|+		
| 411| 411| 		else
| 412| 412| 		{
| 413| 413| 			// We are already at the target, or can't move at all
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 448| 448| 			}
| 449| 449| 
| 450| 450| 			if (this.order.data.attackType == this.oldAttackType)
| 451|    |-			{
|    | 451|+			
| 452| 452| 				if (this.IsAnimal())
| 453| 453| 					this.SetNextState("ANIMAL.COMBAT.ATTACKING");
| 454| 454| 				else
| 455| 455| 					this.SetNextState("INDIVIDUAL.COMBAT.ATTACKING");
| 456|    |-			}
|    | 456|+			
| 457| 457| 			else
| 458| 458| 			{
| 459| 459| 				if (this.IsAnimal())
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 455| 455| 					this.SetNextState("INDIVIDUAL.COMBAT.ATTACKING");
| 456| 456| 			}
| 457| 457| 			else
| 458|    |-			{
|    | 458|+			
| 459| 459| 				if (this.IsAnimal())
| 460| 460| 					this.SetNextState("ANIMAL.COMBAT.ATTACKING");
| 461| 461| 				else
| 462| 462| 					this.SetNextState("INDIVIDUAL.COMBAT.ATTACKING");
| 463|    |-			}
|    | 463|+			
| 464| 464| 			return;
| 465| 465| 		}
| 466| 466| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 580| 580| 					this.PushOrderFront("Walk", this.order.data.lastPos);
| 581| 581| 				}
| 582| 582| 				else
| 583|    |-				{
|    | 583|+				
| 584| 584| 					// We couldn't move there, or the target moved away
| 585| 585| 					this.FinishOrder();
| 586|    |-				}
|    | 586|+				
| 587| 587| 				return;
| 588| 588| 			}
| 589| 589| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 593| 593| 
| 594| 594| 		// Try to move within range
| 595| 595| 		if (this.MoveToTargetRange(this.order.data.target, IID_ResourceGatherer))
| 596|    |-		{
|    | 596|+		
| 597| 597| 			// We've started walking to the given point
| 598| 598| 			this.SetNextState("INDIVIDUAL.GATHER.APPROACHING");
| 599|    |-		}
|    | 599|+		
| 600| 600| 		else
| 601| 601| 		{
| 602| 602| 			// We are already at the target, or can't move at all,
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 670| 670| 	"Order.Repair": function(msg) {
| 671| 671| 		// Try to move within range
| 672| 672| 		if (this.MoveToTargetRange(this.order.data.target, IID_Builder))
| 673|    |-		{
|    | 673|+		
| 674| 674| 			// We've started walking to the given point
| 675| 675| 			this.SetNextState("INDIVIDUAL.REPAIR.APPROACHING");
| 676|    |-		}
|    | 676|+		
| 677| 677| 		else
| 678| 678| 		{
| 679| 679| 			// We are already at the target, or can't move at all,
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 706| 706| 		}
| 707| 707| 
| 708| 708| 		if (this.MoveToGarrisonRange(this.order.data.target))
| 709|    |-		{
|    | 709|+		
| 710| 710| 			this.SetNextState("INDIVIDUAL.GARRISON.APPROACHING");
| 711|    |-		}
|    | 711|+		
| 712| 712| 		else
| 713| 713| 		{
| 714| 714| 			// We do a range check before actually garrisoning
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 834| 834| 			if (!this.CheckTargetAttackRange(target, target))
| 835| 835| 			{
| 836| 836| 				if (this.TargetIsAlive(target) && this.CheckTargetVisible(target))
| 837|    |-				{
|    | 837|+				
| 838| 838| 					if (this.MoveToTargetAttackRange(target, target))
| 839| 839| 					{
| 840| 840| 						this.SetNextState("COMBAT.APPROACHING");
| 841| 841| 						return;
| 842| 842| 					}
| 843|    |-				}
|    | 843|+				
| 844| 844| 				this.FinishOrder();
| 845| 845| 				return;
| 846| 846| 			}
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 859| 859| 			}
| 860| 860| 			// Check if we are already in range, otherwise walk there
| 861| 861| 			if (!this.CheckGarrisonRange(msg.data.target))
| 862|    |-			{
|    | 862|+			
| 863| 863| 				if (!this.CheckTargetVisible(msg.data.target))
| 864| 864| 				{
| 865| 865| 					this.FinishOrder();
| 874| 874| 						return;
| 875| 875| 					}
| 876| 876| 				}
| 877|    |-			}
|    | 877|+			
| 878| 878| 
| 879| 879| 			this.SetNextState("GARRISON.GARRISONING");
| 880| 880| 		},
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 866| 866| 					return;
| 867| 867| 				}
| 868| 868| 				else
| 869|    |-				{
|    | 869|+				
| 870| 870| 					// Out of range; move there in formation
| 871| 871| 					if (this.MoveToGarrisonRange(msg.data.target))
| 872| 872| 					{
| 873| 873| 						this.SetNextState("GARRISON.APPROACHING");
| 874| 874| 						return;
| 875| 875| 					}
| 876|    |-				}
|    | 876|+				
| 877| 877| 			}
| 878| 878| 
| 879| 879| 			this.SetNextState("GARRISON.GARRISONING");
|    | [NORMAL] ESLintBear (no-else-return):
|    | Unnecessary 'else' after 'return'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 865| 865| 					this.FinishOrder();
| 866| 866| 					return;
| 867| 867| 				}
| 868|    |-				else
| 869|    |-				{
|    | 868|+				
| 870| 869| 					// Out of range; move there in formation
| 871| 870| 					if (this.MoveToGarrisonRange(msg.data.target))
| 872| 871| 					{
| 873| 872| 						this.SetNextState("GARRISON.APPROACHING");
| 874| 873| 						return;
| 875| 874| 					}
| 876|    |-				}
|    | 875|+				
| 877| 876| 			}
| 878| 877| 
| 879| 878| 			this.SetNextState("GARRISON.GARRISONING");
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
| 892| 892| 						this.PushOrderFront("Walk", msg.data.lastPos);
| 893| 893| 					}
| 894| 894| 					else
| 895|    |-					{
|    | 895|+					
| 896| 896| 						// We couldn't move there, or the target moved away
| 897| 897| 						this.FinishOrder();
| 898|    |-					}
|    | 898|+					
| 899| 899| 					return;
| 900| 900| 				}
| 901| 901| 
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'GARRISON'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|1113|1113| 			},
|1114|1114| 		},
|1115|1115| 
|1116|    |-		"GARRISON":{
|    |1116|+		"GARRISON": {
|1117|1117| 			"enter": function() {
|1118|1118| 				// If the garrisonholder should pickup, warn it so it can take needed action
|1119|1119| 				var cmpGarrisonHolder = Engine.QueryInterface(this.order.data.target, IID_GarrisonHolder);
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|1297|1297| 			// If the controller handled an order but some members rejected it,
|1298|1298| 			// they will have no orders and be in the FORMATIONMEMBER.IDLE state.
|1299|1299| 			if (this.orderQueue.length)
|1300|    |-			{
|    |1300|+			
|1301|1301| 				// We're leaving the formation, so stop our FormationWalk order
|1302|1302| 				if (this.FinishOrder())
|1303|1303| 					return;
|1304|    |-			}
|    |1304|+			
|1305|1305| 
|1306|1306| 			// No orders left, we're an individual now
|1307|1307| 			if (this.IsAnimal())
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|1325|1325| 			// Move a tile outside the building
|1326|1326| 			let range = 4;
|1327|1327| 			if (this.MoveToTargetRangeExplicit(msg.data.target, range, range))
|1328|    |-			{
|    |1328|+			
|1329|1329| 				// We've started walking to the given point
|1330|1330| 				this.SetNextState("WALKINGTOPOINT");
|1331|    |-			}
|    |1331|+			
|1332|1332| 			else
|1333|1333| 			{
|1334|1334| 				// We are already at the target, or can't move at all
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|1330|1330| 				this.SetNextState("WALKINGTOPOINT");
|1331|1331| 			}
|1332|1332| 			else
|1333|    |-			{
|    |1333|+			
|1334|1334| 				// We are already at the target, or can't move at all
|1335|1335| 				this.FinishOrder();
|1336|    |-			}
|    |1336|+			
|1337|1337| 		},
|1338|1338| 
|1339|1339| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|1531|1531| 
|1532|1532| 			"LosRangeUpdate": function(msg) {
|1533|1533| 				if (this.GetStance().targetVisibleEnemies)
|1534|    |-				{
|    |1534|+				
|1535|1535| 					// Start attacking one of the newly-seen enemy (if any)
|1536|1536| 					this.AttackEntitiesByPreference(msg.data.added);
|1537|    |-				}
|    |1537|+				
|1538|1538| 			},
|1539|1539| 
|1540|1540| 			"LosHealRangeUpdate": function(msg) {
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|1717|1717| 						// if nothing better to do, check if the guarded needs to be healed or repaired
|1718|1718| 						var cmpHealth = Engine.QueryInterface(this.isGuardOf, IID_Health);
|1719|1719| 						if (cmpHealth && (cmpHealth.GetHitpoints() < cmpHealth.GetMaxHitpoints()))
|1720|    |-						{
|    |1720|+						
|1721|1721| 							if (this.CanHeal(this.isGuardOf))
|1722|1722| 								this.PushOrderFront("Heal", { "target": this.isGuardOf, "force": false });
|1723|1723| 							else if (this.CanRepair(this.isGuardOf))
|1724|1724| 								this.PushOrderFront("Repair", { "target": this.isGuardOf, "autocontinue": false, "force": false });
|1725|    |-						}
|    |1725|+						
|1726|1726| 					}
|1727|1727| 				},
|1728|1728| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|1802|1802| 				"MoveCompleted": function() {
|1803|1803| 
|1804|1804| 					if (this.CheckTargetAttackRange(this.order.data.target, this.order.data.attackType))
|1805|    |-					{
|    |1805|+					
|1806|1806| 						// If the unit needs to unpack, do so
|1807|1807| 						if (this.CanUnpack())
|1808|1808| 						{
|1811|1811| 						}
|1812|1812| 						else
|1813|1813| 							this.SetNextState("ATTACKING");
|1814|    |-					}
|    |1814|+					
|1815|1815| 					else
|1816|1816| 					{
|1817|1817| 						if (this.MoveToTargetAttackRange(this.order.data.target, this.order.data.attackType))
|    | [NORMAL] ESLintBear (no-else-return):
|    | Unnecessary 'else' after 'return'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|1809|1809| 							this.PushOrderFront("Unpack", { "force": true });
|1810|1810| 							return;
|1811|1811| 						}
|1812|    |-						else
|1813|    |-							this.SetNextState("ATTACKING");
|    |1812|+						this.SetNextState("ATTACKING");
|1814|1813| 					}
|1815|1814| 					else
|1816|1815| 					{
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|1813|1813| 							this.SetNextState("ATTACKING");
|1814|1814| 					}
|1815|1815| 					else
|1816|    |-					{
|    |1816|+					
|1817|1817| 						if (this.MoveToTargetAttackRange(this.order.data.target, this.order.data.attackType))
|1818|1818| 						{
|1819|1819| 							this.SetNextState("APPROACHING");
|1823|1823| 							// Give up
|1824|1824| 							this.FinishOrder();
|1825|1825| 						}
|1826|    |-					}
|    |1826|+					
|1827|1827| 				},
|1828|1828| 			},
|1829|1829| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|1815|1815| 					else
|1816|1816| 					{
|1817|1817| 						if (this.MoveToTargetAttackRange(this.order.data.target, this.order.data.attackType))
|1818|    |-						{
|    |1818|+						
|1819|1819| 							this.SetNextState("APPROACHING");
|1820|    |-						}
|    |1820|+						
|1821|1821| 						else
|1822|1822| 						{
|1823|1823| 							// Give up
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|1819|1819| 							this.SetNextState("APPROACHING");
|1820|1820| 						}
|1821|1821| 						else
|1822|    |-						{
|    |1822|+						
|1823|1823| 							// Give up
|1824|1824| 							this.FinishOrder();
|1825|    |-						}
|    |1825|+						
|1826|1826| 					}
|1827|1827| 				},
|1828|1828| 			},
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|1840|1840| 					}
|1841|1841| 					// Check the target is still alive and attackable
|1842|1842| 					if (this.CanAttack(target) && !this.CheckTargetAttackRange(target, this.order.data.attackType))
|1843|    |-					{
|    |1843|+					
|1844|1844| 						// Can't reach it - try to chase after it
|1845|1845| 						if (this.ShouldChaseTargetedEntity(target, this.order.data.force))
|1846|1846| 						{
|1855|1855| 								return;
|1856|1856| 							}
|1857|1857| 						}
|1858|    |-					}
|    |1858|+					
|1859|1859| 
|1860|1860| 					var cmpAttack = Engine.QueryInterface(this.entity, IID_Attack);
|1861|1861| 					this.attackTimers = cmpAttack.GetTimers(this.order.data.attackType);
|    | [NORMAL] ESLintBear (no-unneeded-ternary):
|    | Unnecessary use of boolean literals in conditional expression.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|1886|1886| 					// TODO: we should probably only bother syncing projectile attacks, not melee
|1887|1887| 
|1888|1888| 					// If using a non-default prepare time, re-sync the animation when the timer runs.
|1889|    |-					this.resyncAnimation = (prepare != this.attackTimers.prepare) ? true : false;
|    |1889|+					this.resyncAnimation = (prepare != this.attackTimers.prepare);
|1890|1890| 
|1891|1891| 					this.FaceTowardsTarget(this.order.data.target);
|1892|1892| 
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2015|2015| 
|2016|2016| 				"Attacked": function(msg) {
|2017|2017| 					// If we are capturing and are attacked by something that we would not capture, attack that entity instead
|2018|    |-					if (this.order.data.attackType == "Capture" && (this.GetStance().targetAttackersAlways || !this.order.data.force)
|2019|    |-						&& this.order.data.target != msg.data.attacker && this.GetBestAttackAgainst(msg.data.attacker, true) != "Capture")
|    |2018|+					if (this.order.data.attackType == "Capture" && (this.GetStance().targetAttackersAlways || !this.order.data.force) &&
|    |2019|+						this.order.data.target != msg.data.attacker && this.GetBestAttackAgainst(msg.data.attacker, true) != "Capture")
|2020|2020| 						this.RespondToTargetedEntities([msg.data.attacker]);
|2021|2021| 				},
|2022|2022| 			},
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2029|2029| 					this.SelectAnimation("move");
|2030|2030| 					var cmpUnitAI = Engine.QueryInterface(this.order.data.target, IID_UnitAI);
|2031|2031| 					if (cmpUnitAI && cmpUnitAI.IsFleeing())
|2032|    |-					{
|    |2032|+					
|2033|2033| 						// Run after a fleeing target
|2034|2034| 						this.SetMoveSpeedRatio(this.GetRunMultiplier());
|2035|    |-					}
|    |2035|+					
|2036|2036| 					this.StartTimer(1000, 1000);
|2037|2037| 				},
|2038|2038| 
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2088|2088| 						// Also don't switch to a different type of huntable animal
|2089|2089| 						var nearby = this.FindNearbyResource(function(ent, type, template) {
|2090|2090| 							return (
|2091|    |-								ent != oldTarget
|2092|    |-								 && ((type.generic == "treasure" && oldType.generic == "treasure")
|    |2091|+								ent != oldTarget &&
|    |2092|+								 ((type.generic == "treasure" && oldType.generic == "treasure")
|2093|2093| 								 || (type.specific == oldType.specific
|2094|2094| 								 && (type.specific != "meat" || oldTemplate == template)))
|2095|2095| 							);
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2089|2089| 						var nearby = this.FindNearbyResource(function(ent, type, template) {
|2090|2090| 							return (
|2091|2091| 								ent != oldTarget
|2092|    |-								 && ((type.generic == "treasure" && oldType.generic == "treasure")
|2093|    |-								 || (type.specific == oldType.specific
|    |2092|+								 && ((type.generic == "treasure" && oldType.generic == "treasure") ||
|    |2093|+								 (type.specific == oldType.specific
|2094|2094| 								 && (type.specific != "meat" || oldTemplate == template)))
|2095|2095| 							);
|2096|2096| 						}, oldTarget);
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2090|2090| 							return (
|2091|2091| 								ent != oldTarget
|2092|2092| 								 && ((type.generic == "treasure" && oldType.generic == "treasure")
|2093|    |-								 || (type.specific == oldType.specific
|2094|    |-								 && (type.specific != "meat" || oldTemplate == template)))
|    |2093|+								 || (type.specific == oldType.specific &&
|    |2094|+								 (type.specific != "meat" || oldTemplate == template)))
|2095|2095| 							);
|2096|2096| 						}, oldTarget);
|2097|2097| 						if (nearby)
|    | [NORMAL] ESLintBear (no-else-return):
|    | Unnecessary 'else' after 'return'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2099|2099| 							this.PerformGather(nearby, false, false);
|2100|2100| 							return true;
|2101|2101| 						}
|2102|    |-						else
|2103|    |-						{
|    |2102|+						
|2104|2103| 							// It's probably better in this case, to avoid units getting stuck around a dropsite
|2105|2104| 							// in a "Target is far away, full, nearby are no good resources, return to dropsite" loop
|2106|2105| 							// to order it to GatherNear the resource position.
|2121|2120| 									return true;
|2122|2121| 								}
|2123|2122| 							}
|2124|    |-						}
|    |2123|+						
|2125|2124| 						return true;
|2126|2125| 					}
|2127|2126| 					return false;
|    | [NORMAL] ESLintBear (no-else-return):
|    | Unnecessary 'else' after 'return'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2111|2111| 								this.GatherNearPosition(pos.x, pos.z, oldType, oldTemplate);
|2112|2112| 								return true;
|2113|2113| 							}
|2114|    |-							else
|2115|    |-							{
|    |2114|+							
|2116|2115| 								// we're kind of stuck here. Return resource.
|2117|2116| 								var nearby = this.FindNearestDropsite(oldType.generic);
|2118|2117| 								if (nearby)
|2120|2119| 									this.PushOrderFront("ReturnResource", { "target": nearby, "force": false });
|2121|2120| 									return true;
|2122|2121| 								}
|2123|    |-							}
|    |2122|+							
|2124|2123| 						}
|2125|2124| 						return true;
|2126|2125| 					}
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2153|2153| 						// Also don't switch to a different type of huntable animal
|2154|2154| 						var nearby = this.FindNearbyResource(function(ent, type, template) {
|2155|2155| 							return (
|2156|    |-								ent != oldTarget
|2157|    |-								&& ((type.generic == "treasure" && oldType.generic == "treasure")
|    |2156|+								ent != oldTarget &&
|    |2157|+								((type.generic == "treasure" && oldType.generic == "treasure")
|2158|2158| 								|| (type.specific == oldType.specific
|2159|2159| 								&& (type.specific != "meat" || oldTemplate == template)))
|2160|2160| 							);
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2154|2154| 						var nearby = this.FindNearbyResource(function(ent, type, template) {
|2155|2155| 							return (
|2156|2156| 								ent != oldTarget
|2157|    |-								&& ((type.generic == "treasure" && oldType.generic == "treasure")
|2158|    |-								|| (type.specific == oldType.specific
|    |2157|+								&& ((type.generic == "treasure" && oldType.generic == "treasure") ||
|    |2158|+								(type.specific == oldType.specific
|2159|2159| 								&& (type.specific != "meat" || oldTemplate == template)))
|2160|2160| 							);
|2161|2161| 						});
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2155|2155| 							return (
|2156|2156| 								ent != oldTarget
|2157|2157| 								&& ((type.generic == "treasure" && oldType.generic == "treasure")
|2158|    |-								|| (type.specific == oldType.specific
|2159|    |-								&& (type.specific != "meat" || oldTemplate == template)))
|    |2158|+								|| (type.specific == oldType.specific &&
|    |2159|+								(type.specific != "meat" || oldTemplate == template)))
|2160|2160| 							);
|2161|2161| 						});
|2162|2162| 						if (nearby)
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2200|2200| 					// Also don't switch to a different type of huntable animal
|2201|2201| 					var nearby = this.FindNearbyResource(function(ent, type, template) {
|2202|2202| 						return (
|2203|    |-							(type.generic == "treasure" && resourceType.generic == "treasure")
|2204|    |-							|| (type.specific == resourceType.specific
|    |2203|+							(type.generic == "treasure" && resourceType.generic == "treasure") ||
|    |2204|+							(type.specific == resourceType.specific
|2205|2205| 							&& (type.specific != "meat" || resourceTemplate == template))
|2206|2206| 						);
|2207|2207| 					});
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2201|2201| 					var nearby = this.FindNearbyResource(function(ent, type, template) {
|2202|2202| 						return (
|2203|2203| 							(type.generic == "treasure" && resourceType.generic == "treasure")
|2204|    |-							|| (type.specific == resourceType.specific
|2205|    |-							&& (type.specific != "meat" || resourceTemplate == template))
|    |2204|+							|| (type.specific == resourceType.specific &&
|    |2205|+							(type.specific != "meat" || resourceTemplate == template))
|2206|2206| 						);
|2207|2207| 					});
|2208|2208| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2317|2317| 
|2318|2318| 					var cmpSupply = Engine.QueryInterface(this.gatheringTarget, IID_ResourceSupply);
|2319|2319| 					if (cmpSupply && cmpSupply.IsAvailable(cmpOwnership.GetOwner(), this.entity))
|2320|    |-					{
|    |2320|+					
|2321|2321| 						// Check we can still reach and gather from the target
|2322|2322| 						if (this.CheckTargetRange(this.gatheringTarget, IID_ResourceGatherer) && this.CanGather(this.gatheringTarget))
|2323|2323| 						{
|2383|2383| 								return;
|2384|2384| 							}
|2385|2385| 						}
|2386|    |-					}
|    |2386|+					
|2387|2387| 
|2388|2388| 					// We're already in range, can't get anywhere near it or the target is exhausted.
|2389|2389| 
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2409|2409| 					// Also don't switch to a different type of huntable animal
|2410|2410| 					var nearby = this.FindNearbyResource(function(ent, type, template) {
|2411|2411| 						return (
|2412|    |-							(type.generic == "treasure" && resourceType.generic == "treasure")
|2413|    |-							|| (type.specific == resourceType.specific
|    |2412|+							(type.generic == "treasure" && resourceType.generic == "treasure") ||
|    |2413|+							(type.specific == resourceType.specific
|2414|2414| 							&& (type.specific != "meat" || resourceTemplate == template))
|2415|2415| 						);
|2416|2416| 					});
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2410|2410| 					var nearby = this.FindNearbyResource(function(ent, type, template) {
|2411|2411| 						return (
|2412|2412| 							(type.generic == "treasure" && resourceType.generic == "treasure")
|2413|    |-							|| (type.specific == resourceType.specific
|2414|    |-							&& (type.specific != "meat" || resourceTemplate == template))
|    |2413|+							|| (type.specific == resourceType.specific &&
|    |2414|+							(type.specific != "meat" || resourceTemplate == template))
|2415|2415| 						);
|2416|2416| 					});
|2417|2417| 					if (nearby)
|    | [NORMAL] ESLintBear (no-unneeded-ternary):
|    | Unnecessary use of boolean literals in conditional expression.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2497|2497| 					this.StartTimer(prepare, this.healTimers.repeat);
|2498|2498| 
|2499|2499| 					// If using a non-default prepare time, re-sync the animation when the timer runs.
|2500|    |-					this.resyncAnimation = (prepare != this.healTimers.prepare) ? true : false;
|    |2500|+					this.resyncAnimation = (prepare != this.healTimers.prepare);
|2501|2501| 
|2502|2502| 					this.FaceTowardsTarget(this.order.data.target);
|2503|2503| 				},
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2712|2712| 					{
|2713|2713| 						// The building was already finished/fully repaired before we arrived;
|2714|2714| 						// let the ConstructionFinished handler handle this.
|2715|    |-						this.OnGlobalConstructionFinished({"entity": this.repairTarget, "newentity": this.repairTarget});
|    |2715|+						this.OnGlobalConstructionFinished({ "entity": this.repairTarget, "newentity": this.repairTarget});
|2716|2716| 						return true;
|2717|2717| 					}
|2718|2718| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2712|2712| 					{
|2713|2713| 						// The building was already finished/fully repaired before we arrived;
|2714|2714| 						// let the ConstructionFinished handler handle this.
|2715|    |-						this.OnGlobalConstructionFinished({"entity": this.repairTarget, "newentity": this.repairTarget});
|    |2715|+						this.OnGlobalConstructionFinished({"entity": this.repairTarget, "newentity": this.repairTarget });
|2716|2716| 						return true;
|2717|2717| 					}
|2718|2718| 
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2752|2752| 					if (this.MoveToTargetRange(this.repairTarget, IID_Builder))
|2753|2753| 						this.SetNextState("APPROACHING");
|2754|2754| 					else if (!this.CheckTargetRange(this.repairTarget, IID_Builder))
|2755|    |-						this.FinishOrder(); //can't approach and isn't in reach
|    |2755|+						this.FinishOrder(); // can't approach and isn't in reach
|2756|2756| 				},
|2757|2757| 			},
|2758|2758| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2839|2839| 
|2840|2840| 				// Unit was approaching and there's nothing to do now, so switch to walking
|2841|2841| 				if (oldState === "INDIVIDUAL.REPAIR.APPROACHING")
|2842|    |-				{
|    |2842|+				
|2843|2843| 					// We're already walking to the given point, so add this as a order.
|2844|2844| 					this.WalkToTarget(msg.data.newentity, true);
|2845|    |-				}
|    |2845|+				
|2846|2846| 			},
|2847|2847| 		},
|2848|2848| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|2892|2892| 
|2893|2893| 					// Check that we can garrison here
|2894|2894| 					if (this.CanGarrison(target))
|2895|    |-					{
|    |2895|+					
|2896|2896| 						// Check that we're in range of the garrison target
|2897|2897| 						if (this.CheckGarrisonRange(target))
|2898|2898| 						{
|2968|2968| 								return false;
|2969|2969| 							}
|2970|2970| 						}
|2971|    |-					}
|    |2971|+					
|2972|2972| 					// Garrisoning failed for some reason, so finish the order
|2973|2973| 					this.FinishOrder();
|2974|2974| 					return true;
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3075|3075| 		"Attacked": function(msg) {
|3076|3076| 			if (this.template.NaturalBehaviour == "skittish" ||
|3077|3077| 			    this.template.NaturalBehaviour == "passive")
|3078|    |-			{
|    |3078|+			
|3079|3079| 				this.Flee(msg.data.attacker, false);
|3080|    |-			}
|    |3080|+			
|3081|3081| 			else if (this.IsDangerousAnimal() || this.template.NaturalBehaviour == "defensive")
|3082|3082| 			{
|3083|3083| 				if (this.CanAttack(msg.data.attacker))
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3084|3084| 					this.Attack(msg.data.attacker, false);
|3085|3085| 			}
|3086|3086| 			else if (this.template.NaturalBehaviour == "domestic")
|3087|    |-			{
|    |3087|+			
|3088|3088| 				// Never flee, stop what we were doing
|3089|3089| 				this.SetNextState("IDLE");
|3090|    |-			}
|    |3090|+			
|3091|3091| 		},
|3092|3092| 
|3093|3093| 		"Order.LeaveFoundation": function(msg) {
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3094|3094| 			// Move a tile outside the building
|3095|3095| 			var range = 4;
|3096|3096| 			if (this.MoveToTargetRangeExplicit(msg.data.target, range, range))
|3097|    |-			{
|    |3097|+			
|3098|3098| 				// We've started walking to the given point
|3099|3099| 				this.SetNextState("WALKING");
|3100|    |-			}
|    |3100|+			
|3101|3101| 			else
|3102|3102| 			{
|3103|3103| 				// We are already at the target, or can't move at all
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3099|3099| 				this.SetNextState("WALKING");
|3100|3100| 			}
|3101|3101| 			else
|3102|    |-			{
|    |3102|+			
|3103|3103| 				// We are already at the target, or can't move at all
|3104|3104| 				this.FinishOrder();
|3105|    |-			}
|    |3105|+			
|3106|3106| 		},
|3107|3107| 
|3108|3108| 		"IDLE": {
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3141|3141| 				}
|3142|3142| 				// Start attacking one of the newly-seen enemy (if any)
|3143|3143| 				else if (this.IsDangerousAnimal())
|3144|    |-				{
|    |3144|+				
|3145|3145| 					this.AttackVisibleEntity(msg.data.added);
|3146|    |-				}
|    |3146|+				
|3147|3147| 
|3148|3148| 				// TODO: if two units enter our range together, we'll attack the
|3149|3149| 				// first and then the second won't trigger another LosRangeUpdate
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3184|3184| 				}
|3185|3185| 				// Start attacking one of the newly-seen enemy (if any)
|3186|3186| 				else if (this.template.NaturalBehaviour == "violent")
|3187|    |-				{
|    |3187|+				
|3188|3188| 					this.AttackVisibleEntity(msg.data.added);
|3189|    |-				}
|    |3189|+				
|3190|3190| 			},
|3191|3191| 
|3192|3192| 			"MoveCompleted": function() { },
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 7.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3201|3201| 		"COMBAT": "INDIVIDUAL.COMBAT", // reuse the same combat behaviour for animals
|3202|3202| 
|3203|3203| 		"WALKING": "INDIVIDUAL.WALKING",	// reuse the same walking behaviour for animals
|3204|    |-							// only used for domestic animals
|    |3204|+		// only used for domestic animals
|3205|3205| 	},
|3206|3206| };
|3207|3207| 
|    | [NORMAL] ESLintBear (no-unneeded-ternary):
|    | Unnecessary use of boolean literals in conditional expression.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3258|3258| 
|3259|3259| UnitAI.prototype.IsAnimal = function()
|3260|3260| {
|3261|    |-	return (this.template.NaturalBehaviour ? true : false);
|    |3261|+	return (!!this.template.NaturalBehaviour);
|3262|3262| };
|3263|3263| 
|3264|3264| UnitAI.prototype.IsDangerousAnimal = function()
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3296|3296| UnitAI.prototype.GetGarrisonHolder = function()
|3297|3297| {
|3298|3298| 	if (this.IsGarrisoned())
|3299|    |-	{
|    |3299|+	
|3300|3300| 		for (let order of this.orderQueue)
|3301|3301| 			if (order.type == "Garrison")
|3302|3302| 				return order.data.target;
|3303|    |-	}
|    |3303|+	
|3304|3304| 	return INVALID_ENTITY;
|3305|3305| };
|3306|3306| 
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3380|3380| 		{
|3381|3381| 			let index = this.GetCurrentState().indexOf(".");
|3382|3382| 			if (index != -1)
|3383|    |-				this.UnitFsm.SwitchToNextState(this, this.GetCurrentState().slice(0,index));
|    |3383|+				this.UnitFsm.SwitchToNextState(this, this.GetCurrentState().slice(0, index));
|3384|3384| 			this.Stop(false);
|3385|3385| 		}
|3386|3386| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3436|3436| 		if (this.orderQueue[i].type != "PickupUnit" || this.orderQueue[i].data.target != msg.entity)
|3437|3437| 			continue;
|3438|3438| 		if (i == 0)
|3439|    |-			this.UnitFsm.ProcessMessage(this, {"type": "PickupCanceled", "data": msg});
|    |3439|+			this.UnitFsm.ProcessMessage(this, { "type": "PickupCanceled", "data": msg});
|3440|3440| 		else
|3441|3441| 			this.orderQueue.splice(i, 1);
|3442|3442| 		Engine.PostMessage(this.entity, MT_UnitAIOrderDataChanged, { "to": this.GetOrderData() });
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3436|3436| 		if (this.orderQueue[i].type != "PickupUnit" || this.orderQueue[i].data.target != msg.entity)
|3437|3437| 			continue;
|3438|3438| 		if (i == 0)
|3439|    |-			this.UnitFsm.ProcessMessage(this, {"type": "PickupCanceled", "data": msg});
|    |3439|+			this.UnitFsm.ProcessMessage(this, {"type": "PickupCanceled", "data": msg });
|3440|3440| 		else
|3441|3441| 			this.orderQueue.splice(i, 1);
|3442|3442| 		Engine.PostMessage(this.entity, MT_UnitAIOrderDataChanged, { "to": this.GetOrderData() });
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3520|3520| };
|3521|3521| 
|3522|3522| 
|3523|    |-//// FSM linkage functions ////
|    |3523|+// // FSM linkage functions ////
|3524|3524| 
|3525|3525| // Setting the next state to the current state will leave/re-enter the top-most substate.
|3526|3526| UnitAI.prototype.SetNextState = function(state)
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3692|3692| 				continue;
|3693|3693| 			if (this.orderQueue[i].type == type)
|3694|3694| 				continue;
|3695|    |-			this.orderQueue.splice(i, 0, {"type": type, "data": data});
|    |3695|+			this.orderQueue.splice(i, 0, { "type": type, "data": data});
|3696|3696| 			Engine.PostMessage(this.entity, MT_UnitAIOrderDataChanged, { "to": this.GetOrderData() });
|3697|3697| 			return;
|3698|3698| 		}
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3692|3692| 				continue;
|3693|3693| 			if (this.orderQueue[i].type == type)
|3694|3694| 				continue;
|3695|    |-			this.orderQueue.splice(i, 0, {"type": type, "data": data});
|    |3695|+			this.orderQueue.splice(i, 0, {"type": type, "data": data });
|3696|3696| 			Engine.PostMessage(this.entity, MT_UnitAIOrderDataChanged, { "to": this.GetOrderData() });
|3697|3697| 			return;
|3698|3698| 		}
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3706|3706| {
|3707|3707| 	// Remember the previous work orders to be able to go back to them later if required
|3708|3708| 	if (data && data.force)
|3709|    |-	{
|    |3709|+	
|3710|3710| 		if (this.IsFormationController())
|3711|3711| 			this.CallMemberFunction("UpdateWorkOrders", [type]);
|3712|3712| 		else
|3713|3713| 			this.UpdateWorkOrders(type);
|3714|    |-	}
|    |3714|+	
|3715|3715| 
|3716|3716| 	let garrisonHolder = this.IsGarrisoned() && type != "Ungarrison" ? this.GetGarrisonHolder() : null;
|3717|3717| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3783|3783| 	{
|3784|3784| 		var cmpUnitAI = Engine.QueryInterface(this.formationController, IID_UnitAI);
|3785|3785| 		if (cmpUnitAI)
|3786|    |-		{
|    |3786|+		
|3787|3787| 			for (var i = 0; i < cmpUnitAI.orderQueue.length; ++i)
|3788|3788| 			{
|3789|3789| 				if (isWorkType(cmpUnitAI.orderQueue[i].type))
|3792|3792| 					return;
|3793|3793| 				}
|3794|3794| 			}
|3795|    |-		}
|    |3795|+		
|3796|3796| 	}
|3797|3797| 
|3798|3798| 	// If nothing found, take the unit orders
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'for' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3785|3785| 		if (cmpUnitAI)
|3786|3786| 		{
|3787|3787| 			for (var i = 0; i < cmpUnitAI.orderQueue.length; ++i)
|3788|    |-			{
|    |3788|+			
|3789|3789| 				if (isWorkType(cmpUnitAI.orderQueue[i].type))
|3790|3790| 				{
|3791|3791| 					this.workOrders = cmpUnitAI.orderQueue.slice(i);
|3792|3792| 					return;
|3793|3793| 				}
|3794|    |-			}
|    |3794|+			
|3795|3795| 		}
|3796|3796| 	}
|3797|3797| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'for' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3797|3797| 
|3798|3798| 	// If nothing found, take the unit orders
|3799|3799| 	for (var i = 0; i < this.orderQueue.length; ++i)
|3800|    |-	{
|    |3800|+	
|3801|3801| 		if (isWorkType(this.orderQueue[i].type))
|3802|3802| 		{
|3803|3803| 			this.workOrders = this.orderQueue.slice(i);
|3804|3804| 			return;
|3805|3805| 		}
|3806|    |-	}
|    |3806|+	
|3807|3807| };
|3808|3808| 
|3809|3809| UnitAI.prototype.BackToWork = function()
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3863|3863| 	if (data.timerRepeat === undefined)
|3864|3864| 		this.timer = undefined;
|3865|3865| 
|3866|    |-	this.UnitFsm.ProcessMessage(this, {"type": "Timer", "data": data, "lateness": lateness});
|    |3866|+	this.UnitFsm.ProcessMessage(this, { "type": "Timer", "data": data, "lateness": lateness});
|3867|3867| };
|3868|3868| 
|3869|3869| /**
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3863|3863| 	if (data.timerRepeat === undefined)
|3864|3864| 		this.timer = undefined;
|3865|3865| 
|3866|    |-	this.UnitFsm.ProcessMessage(this, {"type": "Timer", "data": data, "lateness": lateness});
|    |3866|+	this.UnitFsm.ProcessMessage(this, {"type": "Timer", "data": data, "lateness": lateness });
|3867|3867| };
|3868|3868| 
|3869|3869| /**
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3898|3898| 	this.timer = undefined;
|3899|3899| };
|3900|3900| 
|3901|    |-//// Message handlers /////
|    |3901|+// // Message handlers /////
|3902|3902| 
|3903|3903| UnitAI.prototype.OnMotionChanged = function(msg)
|3904|3904| {
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3903|3903| UnitAI.prototype.OnMotionChanged = function(msg)
|3904|3904| {
|3905|3905| 	if (msg.starting && !msg.error)
|3906|    |-		this.UnitFsm.ProcessMessage(this, {"type": "MoveStarted", "data": msg});
|    |3906|+		this.UnitFsm.ProcessMessage(this, { "type": "MoveStarted", "data": msg});
|3907|3907| 	else if (!msg.starting || msg.error)
|3908|3908| 		this.UnitFsm.ProcessMessage(this, {"type": "MoveCompleted", "data": msg});
|3909|3909| };
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3903|3903| UnitAI.prototype.OnMotionChanged = function(msg)
|3904|3904| {
|3905|3905| 	if (msg.starting && !msg.error)
|3906|    |-		this.UnitFsm.ProcessMessage(this, {"type": "MoveStarted", "data": msg});
|    |3906|+		this.UnitFsm.ProcessMessage(this, {"type": "MoveStarted", "data": msg });
|3907|3907| 	else if (!msg.starting || msg.error)
|3908|3908| 		this.UnitFsm.ProcessMessage(this, {"type": "MoveCompleted", "data": msg});
|3909|3909| };
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3905|3905| 	if (msg.starting && !msg.error)
|3906|3906| 		this.UnitFsm.ProcessMessage(this, {"type": "MoveStarted", "data": msg});
|3907|3907| 	else if (!msg.starting || msg.error)
|3908|    |-		this.UnitFsm.ProcessMessage(this, {"type": "MoveCompleted", "data": msg});
|    |3908|+		this.UnitFsm.ProcessMessage(this, { "type": "MoveCompleted", "data": msg});
|3909|3909| };
|3910|3910| 
|3911|3911| UnitAI.prototype.OnGlobalConstructionFinished = function(msg)
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3905|3905| 	if (msg.starting && !msg.error)
|3906|3906| 		this.UnitFsm.ProcessMessage(this, {"type": "MoveStarted", "data": msg});
|3907|3907| 	else if (!msg.starting || msg.error)
|3908|    |-		this.UnitFsm.ProcessMessage(this, {"type": "MoveCompleted", "data": msg});
|    |3908|+		this.UnitFsm.ProcessMessage(this, {"type": "MoveCompleted", "data": msg });
|3909|3909| };
|3910|3910| 
|3911|3911| UnitAI.prototype.OnGlobalConstructionFinished = function(msg)
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3913|3913| 	// TODO: This is a bit inefficient since every unit listens to every
|3914|3914| 	// construction message - ideally we could scope it to only the one we're building
|3915|3915| 
|3916|    |-	this.UnitFsm.ProcessMessage(this, {"type": "ConstructionFinished", "data": msg});
|    |3916|+	this.UnitFsm.ProcessMessage(this, { "type": "ConstructionFinished", "data": msg});
|3917|3917| };
|3918|3918| 
|3919|3919| UnitAI.prototype.OnGlobalEntityRenamed = function(msg)
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3913|3913| 	// TODO: This is a bit inefficient since every unit listens to every
|3914|3914| 	// construction message - ideally we could scope it to only the one we're building
|3915|3915| 
|3916|    |-	this.UnitFsm.ProcessMessage(this, {"type": "ConstructionFinished", "data": msg});
|    |3916|+	this.UnitFsm.ProcessMessage(this, {"type": "ConstructionFinished", "data": msg });
|3917|3917| };
|3918|3918| 
|3919|3919| UnitAI.prototype.OnGlobalEntityRenamed = function(msg)
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3938|3938| 
|3939|3939| UnitAI.prototype.OnAttacked = function(msg)
|3940|3940| {
|3941|    |-	this.UnitFsm.ProcessMessage(this, {"type": "Attacked", "data": msg});
|    |3941|+	this.UnitFsm.ProcessMessage(this, { "type": "Attacked", "data": msg});
|3942|3942| };
|3943|3943| 
|3944|3944| UnitAI.prototype.OnGuardedAttacked = function(msg)
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3938|3938| 
|3939|3939| UnitAI.prototype.OnAttacked = function(msg)
|3940|3940| {
|3941|    |-	this.UnitFsm.ProcessMessage(this, {"type": "Attacked", "data": msg});
|    |3941|+	this.UnitFsm.ProcessMessage(this, {"type": "Attacked", "data": msg });
|3942|3942| };
|3943|3943| 
|3944|3944| UnitAI.prototype.OnGuardedAttacked = function(msg)
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3943|3943| 
|3944|3944| UnitAI.prototype.OnGuardedAttacked = function(msg)
|3945|3945| {
|3946|    |-	this.UnitFsm.ProcessMessage(this, {"type": "GuardedAttacked", "data": msg.data});
|    |3946|+	this.UnitFsm.ProcessMessage(this, { "type": "GuardedAttacked", "data": msg.data});
|3947|3947| };
|3948|3948| 
|3949|3949| UnitAI.prototype.OnHealthChanged = function(msg)
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3943|3943| 
|3944|3944| UnitAI.prototype.OnGuardedAttacked = function(msg)
|3945|3945| {
|3946|    |-	this.UnitFsm.ProcessMessage(this, {"type": "GuardedAttacked", "data": msg.data});
|    |3946|+	this.UnitFsm.ProcessMessage(this, {"type": "GuardedAttacked", "data": msg.data });
|3947|3947| };
|3948|3948| 
|3949|3949| UnitAI.prototype.OnHealthChanged = function(msg)
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3948|3948| 
|3949|3949| UnitAI.prototype.OnHealthChanged = function(msg)
|3950|3950| {
|3951|    |-	this.UnitFsm.ProcessMessage(this, {"type": "HealthChanged", "from": msg.from, "to": msg.to});
|    |3951|+	this.UnitFsm.ProcessMessage(this, { "type": "HealthChanged", "from": msg.from, "to": msg.to});
|3952|3952| };
|3953|3953| 
|3954|3954| UnitAI.prototype.OnRangeUpdate = function(msg)
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3948|3948| 
|3949|3949| UnitAI.prototype.OnHealthChanged = function(msg)
|3950|3950| {
|3951|    |-	this.UnitFsm.ProcessMessage(this, {"type": "HealthChanged", "from": msg.from, "to": msg.to});
|    |3951|+	this.UnitFsm.ProcessMessage(this, {"type": "HealthChanged", "from": msg.from, "to": msg.to });
|3952|3952| };
|3953|3953| 
|3954|3954| UnitAI.prototype.OnRangeUpdate = function(msg)
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3954|3954| UnitAI.prototype.OnRangeUpdate = function(msg)
|3955|3955| {
|3956|3956| 	if (msg.tag == this.losRangeQuery)
|3957|    |-		this.UnitFsm.ProcessMessage(this, {"type": "LosRangeUpdate", "data": msg});
|    |3957|+		this.UnitFsm.ProcessMessage(this, { "type": "LosRangeUpdate", "data": msg});
|3958|3958| 	else if (msg.tag == this.losHealRangeQuery)
|3959|3959| 		this.UnitFsm.ProcessMessage(this, {"type": "LosHealRangeUpdate", "data": msg});
|3960|3960| };
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3954|3954| UnitAI.prototype.OnRangeUpdate = function(msg)
|3955|3955| {
|3956|3956| 	if (msg.tag == this.losRangeQuery)
|3957|    |-		this.UnitFsm.ProcessMessage(this, {"type": "LosRangeUpdate", "data": msg});
|    |3957|+		this.UnitFsm.ProcessMessage(this, {"type": "LosRangeUpdate", "data": msg });
|3958|3958| 	else if (msg.tag == this.losHealRangeQuery)
|3959|3959| 		this.UnitFsm.ProcessMessage(this, {"type": "LosHealRangeUpdate", "data": msg});
|3960|3960| };
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3956|3956| 	if (msg.tag == this.losRangeQuery)
|3957|3957| 		this.UnitFsm.ProcessMessage(this, {"type": "LosRangeUpdate", "data": msg});
|3958|3958| 	else if (msg.tag == this.losHealRangeQuery)
|3959|    |-		this.UnitFsm.ProcessMessage(this, {"type": "LosHealRangeUpdate", "data": msg});
|    |3959|+		this.UnitFsm.ProcessMessage(this, { "type": "LosHealRangeUpdate", "data": msg});
|3960|3960| };
|3961|3961| 
|3962|3962| UnitAI.prototype.OnPackFinished = function(msg)
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3956|3956| 	if (msg.tag == this.losRangeQuery)
|3957|3957| 		this.UnitFsm.ProcessMessage(this, {"type": "LosRangeUpdate", "data": msg});
|3958|3958| 	else if (msg.tag == this.losHealRangeQuery)
|3959|    |-		this.UnitFsm.ProcessMessage(this, {"type": "LosHealRangeUpdate", "data": msg});
|    |3959|+		this.UnitFsm.ProcessMessage(this, {"type": "LosHealRangeUpdate", "data": msg });
|3960|3960| };
|3961|3961| 
|3962|3962| UnitAI.prototype.OnPackFinished = function(msg)
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3961|3961| 
|3962|3962| UnitAI.prototype.OnPackFinished = function(msg)
|3963|3963| {
|3964|    |-	this.UnitFsm.ProcessMessage(this, {"type": "PackFinished", "packed": msg.packed});
|    |3964|+	this.UnitFsm.ProcessMessage(this, { "type": "PackFinished", "packed": msg.packed});
|3965|3965| };
|3966|3966| 
|3967|3967| //// Helper functions to be called by the FSM ////
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3961|3961| 
|3962|3962| UnitAI.prototype.OnPackFinished = function(msg)
|3963|3963| {
|3964|    |-	this.UnitFsm.ProcessMessage(this, {"type": "PackFinished", "packed": msg.packed});
|    |3964|+	this.UnitFsm.ProcessMessage(this, {"type": "PackFinished", "packed": msg.packed });
|3965|3965| };
|3966|3966| 
|3967|3967| //// Helper functions to be called by the FSM ////
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|3964|3964| 	this.UnitFsm.ProcessMessage(this, {"type": "PackFinished", "packed": msg.packed});
|3965|3965| };
|3966|3966| 
|3967|    |-//// Helper functions to be called by the FSM ////
|    |3967|+// // Helper functions to be called by the FSM ////
|3968|3968| 
|3969|3969| UnitAI.prototype.GetWalkSpeed = function()
|3970|3970| {
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|4066|4066| 	if (!cmpOwnership || cmpOwnership.GetOwner() == INVALID_PLAYER)
|4067|4067| 		return undefined;
|4068|4068| 
|4069|    |-	let cmpPosition = Engine.QueryInterface(this.entity, IID_Position)
|    |4069|+	let cmpPosition = Engine.QueryInterface(this.entity, IID_Position);
|4070|4070| 	if (!cmpPosition || !cmpPosition.IsInWorld())
|4071|4071| 		return undefined;
|4072|4072| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|4151|4151| 			PlaySound(name, member);
|4152|4152| 	}
|4153|4153| 	else
|4154|    |-	{
|    |4154|+	
|4155|4155| 		// Otherwise use our own sounds
|4156|4156| 		PlaySound(name, this.entity);
|4157|    |-	}
|    |4157|+	
|4158|4158| };
|4159|4159| 
|4160|4160| /*
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|4320|4320| 	else
|4321|4321| 		// return false? Or hope you come close enough?
|4322|4322| 		var parabolicMaxRange = 0;
|4323|    |-		//return false;
|    |4323|+		// return false;
|4324|4324| 
|4325|4325| 	// the parabole changes while walking, take something in the middle
|4326|4326| 	var guessedMaxRange = (range.max + parabolicMaxRange)/2;
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|4385|4385| 	if (this.IsFormationMember())
|4386|4386| 	{
|4387|4387| 		var cmpFormationUnitAI = Engine.QueryInterface(this.formationController, IID_UnitAI);
|4388|    |-		if (cmpFormationUnitAI && cmpFormationUnitAI.IsAttackingAsFormation()
|4389|    |-			&& cmpFormationUnitAI.order.data.target == target)
|    |4388|+		if (cmpFormationUnitAI && cmpFormationUnitAI.IsAttackingAsFormation() &&
|    |4389|+			cmpFormationUnitAI.order.data.target == target)
|4390|4390| 			return true;
|4391|4391| 	}
|4392|4392| 
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|4553|4553| UnitAI.prototype.AttackEntityInZone = function(ents)
|4554|4554| {
|4555|4555| 	var target = ents.find(target =>
|4556|    |-		this.CanAttack(target)
|4557|    |-		&& this.CheckTargetDistanceFromHeldPosition(target, IID_Attack, this.GetBestAttackAgainst(target, true))
|    |4556|+		this.CanAttack(target) &&
|    |4557|+		this.CheckTargetDistanceFromHeldPosition(target, IID_Attack, this.GetBestAttackAgainst(target, true))
|4558|4558| 		&& (this.GetStance().respondChaseBeyondVision || this.CheckTargetIsInVisionRange(target))
|4559|4559| 	);
|4560|4560| 	if (!target)
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|4554|4554| {
|4555|4555| 	var target = ents.find(target =>
|4556|4556| 		this.CanAttack(target)
|4557|    |-		&& this.CheckTargetDistanceFromHeldPosition(target, IID_Attack, this.GetBestAttackAgainst(target, true))
|4558|    |-		&& (this.GetStance().respondChaseBeyondVision || this.CheckTargetIsInVisionRange(target))
|    |4557|+		&& this.CheckTargetDistanceFromHeldPosition(target, IID_Attack, this.GetBestAttackAgainst(target, true)) &&
|    |4558|+		(this.GetStance().respondChaseBeyondVision || this.CheckTargetIsInVisionRange(target))
|4559|4559| 	);
|4560|4560| 	if (!target)
|4561|4561| 		return false;
|    | [NORMAL] ESLintBear (no-multi-spaces):
|    | Multiple spaces found before 'Engine'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|4618|4618| 	// If we are guarding/escorting, don't abandon as long as the guarded unit is in target range of the attacker
|4619|4619| 	if (this.isGuardOf)
|4620|4620| 	{
|4621|    |-		var cmpUnitAI =  Engine.QueryInterface(target, IID_UnitAI);
|    |4621|+		var cmpUnitAI = Engine.QueryInterface(target, IID_UnitAI);
|4622|4622| 		var cmpAttack = Engine.QueryInterface(target, IID_Attack);
|4623|4623| 		if (cmpUnitAI && cmpAttack &&
|4624|4624| 		    cmpAttack.GetAttackTypes().some(type => cmpUnitAI.CheckTargetAttackRange(this.isGuardOf, type)))
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|4622|4622| 		var cmpAttack = Engine.QueryInterface(target, IID_Attack);
|4623|4623| 		if (cmpUnitAI && cmpAttack &&
|4624|4624| 		    cmpAttack.GetAttackTypes().some(type => cmpUnitAI.CheckTargetAttackRange(this.isGuardOf, type)))
|4625|    |-				return false;
|    |4625|+			return false;
|4626|4626| 	}
|4627|4627| 
|4628|4628| 	// Stop if we're in hold-ground mode and it's too far from the holding point
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|4627|4627| 
|4628|4628| 	// Stop if we're in hold-ground mode and it's too far from the holding point
|4629|4629| 	if (this.GetStance().respondHoldGround)
|4630|    |-	{
|    |4630|+	
|4631|4631| 		if (!this.CheckTargetDistanceFromHeldPosition(target, iid, type))
|4632|4632| 			return true;
|4633|    |-	}
|    |4633|+	
|4634|4634| 
|4635|4635| 	// Stop if it's left our vision range, unless we're especially persistent
|4636|4636| 	if (!this.GetStance().respondChaseBeyondVision)
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|4634|4634| 
|4635|4635| 	// Stop if it's left our vision range, unless we're especially persistent
|4636|4636| 	if (!this.GetStance().respondChaseBeyondVision)
|4637|    |-	{
|    |4637|+	
|4638|4638| 		if (!this.CheckTargetIsInVisionRange(target))
|4639|4639| 			return true;
|4640|    |-	}
|    |4640|+	
|4641|4641| 
|4642|4642| 	// (Note that CCmpUnitMotion will detect if the target is lost in FoW,
|4643|4643| 	// and will continue moving to its last seen position and then stop)
|    | [NORMAL] ESLintBear (no-multi-spaces):
|    | Multiple spaces found before 'Engine'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|4660|4660| 	// If we are guarding/escorting, chase at least as long as the guarded unit is in target range of the attacker
|4661|4661| 	if (this.isGuardOf)
|4662|4662| 	{
|4663|    |-		let cmpUnitAI =  Engine.QueryInterface(target, IID_UnitAI);
|    |4663|+		let cmpUnitAI = Engine.QueryInterface(target, IID_UnitAI);
|4664|4664| 		let cmpAttack = Engine.QueryInterface(target, IID_Attack);
|4665|4665| 		if (cmpUnitAI && cmpAttack &&
|4666|4666| 		    cmpAttack.GetAttackTypes().some(type => cmpUnitAI.CheckTargetAttackRange(this.isGuardOf, type)))
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|4673|4673| 	return false;
|4674|4674| };
|4675|4675| 
|4676|    |-//// External interface functions ////
|    |4676|+// // External interface functions ////
|4677|4677| 
|4678|4678| UnitAI.prototype.SetFormationController = function(ent)
|4679|4679| {
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|4683|4683| 	// of our own formation (or ourself if not in formation)
|4684|4684| 	var cmpObstruction = Engine.QueryInterface(this.entity, IID_Obstruction);
|4685|4685| 	if (cmpObstruction)
|4686|    |-	{
|    |4686|+	
|4687|4687| 		if (ent == INVALID_ENTITY)
|4688|4688| 			cmpObstruction.SetControlGroup(this.entity);
|4689|4689| 		else
|4690|4690| 			cmpObstruction.SetControlGroup(ent);
|4691|    |-	}
|    |4691|+	
|4692|4692| 
|4693|4693| 	// If we were removed from a formation, let the FSM switch back to INDIVIDUAL
|4694|4694| 	if (ent == INVALID_ENTITY)
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|4826|4826| 	// if we already had an old guard order, do nothing if the target is the same
|4827|4827| 	// and the order is running, otherwise remove the previous order
|4828|4828| 	if (this.isGuardOf)
|4829|    |-	{
|    |4829|+	
|4830|4830| 		if (this.isGuardOf == target && this.order && this.order.type == "Guard")
|4831|4831| 			return;
|4832|4832| 		else
|4833|4833| 			this.RemoveGuard();
|4834|    |-	}
|    |4834|+	
|4835|4835| 
|4836|4836| 	this.AddOrder("Guard", { "target": target, "force": false }, queued);
|4837|4837| };
|    | [NORMAL] ESLintBear (no-else-return):
|    | Unnecessary 'else' after 'return'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|4829|4829| 	{
|4830|4830| 		if (this.isGuardOf == target && this.order && this.order.type == "Guard")
|4831|4831| 			return;
|4832|    |-		else
|4833|    |-			this.RemoveGuard();
|    |4832|+		this.RemoveGuard();
|4834|4833| 	}
|4835|4834| 
|4836|4835| 	this.AddOrder("Guard", { "target": target, "force": false }, queued);
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|5000|5000| 			this.WalkToTarget(target, queued);
|5001|5001| 		return;
|5002|5002| 	}
|5003|    |-	this.AddOrder("Attack", { "target": target, "force": true, "allowCapture": allowCapture}, queued);
|    |5003|+	this.AddOrder("Attack", { "target": target, "force": true, "allowCapture": allowCapture }, queued);
|5004|5004| };
|5005|5005| 
|5006|5006| /**
|    | [NORMAL] ESLintBear (no-trailing-spaces):
|    | Trailing spaces not allowed.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|5149|5149| 	    this.workOrders.length && this.workOrders[0].type == "Trade")
|5150|5150| 	{
|5151|5151| 		let cmpTrader = Engine.QueryInterface(this.entity, IID_Trader);
|5152|    |-		if (cmpTrader.HasBothMarkets() && 
|    |5152|+		if (cmpTrader.HasBothMarkets() &&
|5153|5153| 		   (cmpTrader.GetFirstMarket() == target && cmpTrader.GetSecondMarket() == source ||
|5154|5154| 		    cmpTrader.GetFirstMarket() == source && cmpTrader.GetSecondMarket() == target))
|5155|5155| 		{
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|5430|5430| 				{
|5431|5431| 					var cmpIdentity = Engine.QueryInterface(targ, IID_Identity);
|5432|5432| 					var targetClasses = this.order.data.targetClasses;
|5433|    |-					if (targetClasses.attack && cmpIdentity
|5434|    |-						&& !MatchesClassList(cmpIdentity.GetClassesList(), targetClasses.attack))
|    |5433|+					if (targetClasses.attack && cmpIdentity &&
|    |5434|+						!MatchesClassList(cmpIdentity.GetClassesList(), targetClasses.attack))
|5435|5435| 						continue;
|5436|5436| 					if (targetClasses.avoid && cmpIdentity
|5437|5437| 						&& MatchesClassList(cmpIdentity.GetClassesList(), targetClasses.avoid))
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|5433|5433| 					if (targetClasses.attack && cmpIdentity
|5434|5434| 						&& !MatchesClassList(cmpIdentity.GetClassesList(), targetClasses.attack))
|5435|5435| 						continue;
|5436|    |-					if (targetClasses.avoid && cmpIdentity
|5437|    |-						&& MatchesClassList(cmpIdentity.GetClassesList(), targetClasses.avoid))
|    |5436|+					if (targetClasses.avoid && cmpIdentity &&
|    |5437|+						MatchesClassList(cmpIdentity.GetClassesList(), targetClasses.avoid))
|5438|5438| 						continue;
|5439|5439| 					// Only used by the AIs to prevent some choices of targets
|5440|5440| 					if (targetClasses.vetoEntities && targetClasses.vetoEntities[targ])
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|5456|5456| 		{
|5457|5457| 			var cmpIdentity = Engine.QueryInterface(targ, IID_Identity);
|5458|5458| 			var targetClasses = this.order.data.targetClasses;
|5459|    |-			if (cmpIdentity && targetClasses.attack
|5460|    |-				&& !MatchesClassList(cmpIdentity.GetClassesList(), targetClasses.attack))
|    |5459|+			if (cmpIdentity && targetClasses.attack &&
|    |5460|+				!MatchesClassList(cmpIdentity.GetClassesList(), targetClasses.attack))
|5461|5461| 				continue;
|5462|5462| 			if (cmpIdentity && targetClasses.avoid
|5463|5463| 				&& MatchesClassList(cmpIdentity.GetClassesList(), targetClasses.avoid))
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|5459|5459| 			if (cmpIdentity && targetClasses.attack
|5460|5460| 				&& !MatchesClassList(cmpIdentity.GetClassesList(), targetClasses.attack))
|5461|5461| 				continue;
|5462|    |-			if (cmpIdentity && targetClasses.avoid
|5463|    |-				&& MatchesClassList(cmpIdentity.GetClassesList(), targetClasses.avoid))
|    |5462|+			if (cmpIdentity && targetClasses.avoid &&
|    |5463|+				MatchesClassList(cmpIdentity.GetClassesList(), targetClasses.avoid))
|5464|5464| 				continue;
|5465|5465| 			// Only used by the AIs to prevent some choices of targets
|5466|5466| 			if (targetClasses.vetoEntities && targetClasses.vetoEntities[targ])
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|5602|5602| 
|5603|5603| UnitAI.prototype.SetHeldPosition = function(x, z)
|5604|5604| {
|5605|    |-	this.heldPosition = {"x": x, "z": z};
|    |5605|+	this.heldPosition = { "x": x, "z": z};
|5606|5606| };
|5607|5607| 
|5608|5608| UnitAI.prototype.SetHeldPositionOnEntity = function(entity)
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|5602|5602| 
|5603|5603| UnitAI.prototype.SetHeldPosition = function(x, z)
|5604|5604| {
|5605|    |-	this.heldPosition = {"x": x, "z": z};
|    |5605|+	this.heldPosition = {"x": x, "z": z };
|5606|5606| };
|5607|5607| 
|5608|5608| UnitAI.prototype.SetHeldPositionOnEntity = function(entity)
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|5629|5629| 	return false;
|5630|5630| };
|5631|5631| 
|5632|    |-//// Helper functions ////
|    |5632|+// // Helper functions ////
|5633|5633| 
|5634|5634| UnitAI.prototype.CanAttack = function(target)
|5635|5635| {
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|5833|5833| 	return cmpPack && cmpPack.IsPacking();
|5834|5834| };
|5835|5835| 
|5836|    |-//// Formation specific functions ////
|    |5836|+// // Formation specific functions ////
|5837|5837| 
|5838|5838| UnitAI.prototype.IsAttackingAsFormation = function()
|5839|5839| {
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|5838|5838| UnitAI.prototype.IsAttackingAsFormation = function()
|5839|5839| {
|5840|5840| 	var cmpAttack = Engine.QueryInterface(this.entity, IID_Attack);
|5841|    |-	return cmpAttack && cmpAttack.CanAttackAsFormation()
|5842|    |-		&& this.GetCurrentState() == "FORMATIONCONTROLLER.COMBAT.ATTACKING";
|    |5841|+	return cmpAttack && cmpAttack.CanAttackAsFormation() &&
|    |5842|+		this.GetCurrentState() == "FORMATIONCONTROLLER.COMBAT.ATTACKING";
|5843|5843| };
|5844|5844| 
|5845|5845| //// Animal specific functions ////
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/UnitAI.js
|5842|5842| 		&& this.GetCurrentState() == "FORMATIONCONTROLLER.COMBAT.ATTACKING";
|5843|5843| };
|5844|5844| 
|5845|    |-//// Animal specific functions ////
|    |5845|+// // Animal specific functions ////
|5846|5846| 
|5847|5847| UnitAI.prototype.MoveRandomly = function(distance)
|5848|5848| {

binaries/data/mods/public/simulation/components/UnitAI.js
|2399| »   »   »   »   »   »   let·nearby·=·this.FindNearestDropsite(resourceType.generic);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'nearby' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/UnitAI.js
|3768| »   var·isWorkType·=·type·=>·type·==·"Gather"·||·type·==·"Trade"·||·type·==·"Repair"·||·type·==·"ReturnResource";
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'type' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/UnitAI.js
|4540| »   var·target·=·ents.find(target·=>·this.CanAttack(target));
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'target' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/UnitAI.js
|4555| »   var·target·=·ents.find(target·=>
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'target' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/UnitAI.js
|4601| »   var·ent·=·ents.find(ent·=>·this.CanHeal(ent));
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'ent' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/UnitAI.js
|4624| »   »   ····cmpAttack.GetAttackTypes().some(type·=>·cmpUnitAI.CheckTargetAttackRange(this.isGuardOf,·type)))
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'type' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/UnitAI.js
|5080| »   var·lastPos·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'lastPos' to undefined.

binaries/data/mods/public/simulation/components/UnitAI.js
| 365| »   »   ····&&·(this.lastShorelinePosition.z·==·cmpPosition.GetPosition().z))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|1878| »   »   »   »   »   »   var·cmpFormation·=·Engine.QueryInterface(this.formationController,·IID_Formation);
|    | [NORMAL] JSHintBear:
|    | 'cmpFormation' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|2019| »   »   »   »   »   »   &&·this.order.data.target·!=·msg.data.attacker·&&·this.GetBestAttackAgainst(msg.data.attacker,·true)·!=·"Capture")
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|2092| »   »   »   »   »   »   »   »   ·&&·((type.generic·==·"treasure"·&&·oldType.generic·==·"treasure")
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|2093| »   »   »   »   »   »   »   »   ·||·(type.specific·==·oldType.specific
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|2094| »   »   »   »   »   »   »   »   ·&&·(type.specific·!=·"meat"·||·oldTemplate·==·template)))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|2117| »   »   »   »   »   »   »   »   var·nearby·=·this.FindNearestDropsite(oldType.generic);
|    | [NORMAL] JSHintBear:
|    | 'nearby' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|2157| »   »   »   »   »   »   »   »   &&·((type.generic·==·"treasure"·&&·oldType.generic·==·"treasure")
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|2158| »   »   »   »   »   »   »   »   ||·(type.specific·==·oldType.specific
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|2159| »   »   »   »   »   »   »   »   &&·(type.specific·!=·"meat"·||·oldTemplate·==·template)))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|2204| »   »   »   »   »   »   »   ||·(type.specific·==·resourceType.specific
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|2205| »   »   »   »   »   »   »   &&·(type.specific·!=·"meat"·||·resourceTemplate·==·template))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|2221| »   »   »   »   »   var·nearby·=·this.FindNearestDropsite(resourceType.generic);
|    | [NORMAL] JSHintBear:
|    | 'nearby' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|2394| »   »   »   »   »   var·cmpResourceGatherer·=·Engine.QueryInterface(this.entity,·IID_ResourceGatherer);
|    | [NORMAL] JSHintBear:
|    | 'cmpResourceGatherer' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|2410| »   »   »   »   »   var·nearby·=·this.FindNearbyResource(function(ent,·type,·template)·{
|    | [NORMAL] JSHintBear:
|    | 'nearby' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|2413| »   »   »   »   »   »   »   ||·(type.specific·==·resourceType.specific
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|2414| »   »   »   »   »   »   »   &&·(type.specific·!=·"meat"·||·resourceTemplate·==·template))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|2434| »   »   »   »   »   var·nearby·=·this.FindNearestDropsite(resourceType.generic);
|    | [NORMAL] JSHintBear:
|    | 'nearby' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|2623| »   »   »   »   »   var·cmpResourceGatherer·=·Engine.QueryInterface(this.entity,·IID_ResourceGatherer);
|    | [NORMAL] JSHintBear:
|    | 'cmpResourceGatherer' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|2818| »   »   »   »   »   var·cmpResourceDropsite·=·Engine.QueryInterface(msg.data.newentity,·IID_ResourceDropsite);
|    | [NORMAL] JSHintBear:
|    | 'cmpResourceDropsite' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|2894| »   »   »   »   »   if·(this.CanGarrison(target))
|    | [NORMAL] JSHintBear:
|    | 'target' used out of scope.

binaries/data/mods/public/simulation/components/UnitAI.js
|2897| »   »   »   »   »   »   if·(this.CheckGarrisonRange(target))
|    | [NORMAL] JSHintBear:
|    | 'target' used out of scope.

binaries/data/mods/public/simulation/components/UnitAI.js
|2899| »   »   »   »   »   »   »   var·cmpGarrisonHolder·=·Engine.QueryInterface(target,·IID_GarrisonHolder);
|    | [NORMAL] JSHintBear:
|    | 'target' used out of scope.

binaries/data/mods/public/simulation/components/UnitAI.js
|2921| »   »   »   »   »   »   »   »   var·cmpResourceDropsite·=·Engine.QueryInterface(target,·IID_ResourceDropsite);
|    | [NORMAL] JSHintBear:
|    | 'target' used out of scope.

binaries/data/mods/public/simulation/components/UnitAI.js
|2922| »   »   »   »   »   »   »   »   if·(cmpResourceDropsite·&&·this.CanReturnResource(target,·true))
|    | [NORMAL] JSHintBear:
|    | 'target' used out of scope.

binaries/data/mods/public/simulation/components/UnitAI.js
|2937| »   »   »   »   »   »   »   »   »   var·cmpHolderPosition·=·Engine.QueryInterface(target,·IID_Position);
|    | [NORMAL] JSHintBear:
|    | 'target' used out of scope.

binaries/data/mods/public/simulation/components/UnitAI.js
|2938| »   »   »   »   »   »   »   »   »   var·cmpHolderUnitAI·=·Engine.QueryInterface(target,·IID_UnitAI);
|    | [NORMAL] JSHintBear:
|    | 'target' used out of scope.

binaries/data/mods/public/simulation/components/UnitAI.js
|2965| »   »   »   »   »   »   »   if·(this.MoveToTarget(target))
|    | [NORMAL] JSHintBear:
|    | 'target' used out of scope.

binaries/data/mods/public/simulation/components/UnitAI.js
|3730| »   »   var·order·=·{·"type":·type,·"data":·data·};
|    | [NORMAL] JSHintBear:
|    | 'order' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|3799| »   for·(var·i·=·0;·i·<·this.orderQueue.length;·++i)
|    | [NORMAL] JSHintBear:
|    | 'i' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|4069| »   let·cmpPosition·=·Engine.QueryInterface(this.entity,·IID_Position)
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.

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

binaries/data/mods/public/simulation/components/UnitAI.js
|4326| »   var·guessedMaxRange·=·(range.max·+·parabolicMaxRange)/2;
|    | [NORMAL] JSHintBear:
|    | 'parabolicMaxRange' used out of scope.

binaries/data/mods/public/simulation/components/UnitAI.js
|4333| »   return·cmpUnitMotion.MoveToTargetRange(target,·range.min,·Math.min(range.max,·parabolicMaxRange));
|    | [NORMAL] JSHintBear:
|    | 'parabolicMaxRange' used out of scope.

binaries/data/mods/public/simulation/components/UnitAI.js
|4389| »   »   »   &&·cmpFormationUnitAI.order.data.target·==·target)
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|4557| »   »   &&·this.CheckTargetDistanceFromHeldPosition(target,·IID_Attack,·this.GetBestAttackAgainst(target,·true))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|4558| »   »   &&·(this.GetStance().respondChaseBeyondVision·||·this.CheckTargetIsInVisionRange(target))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|5080| »   var·lastPos·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'lastPos' to 'undefined'.

binaries/data/mods/public/simulation/components/UnitAI.js
|5434| »   »   »   »   »   »   &&·!MatchesClassList(cmpIdentity.GetClassesList(),·targetClasses.attack))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|5437| »   »   »   »   »   »   &&·MatchesClassList(cmpIdentity.GetClassesList(),·targetClasses.avoid))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|5450| »   var·targets·=·this.GetTargetsFromUnit();
|    | [NORMAL] JSHintBear:
|    | 'targets' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|5451| »   for·(var·targ·of·targets)
|    | [NORMAL] JSHintBear:
|    | 'targ' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|5457| »   »   »   var·cmpIdentity·=·Engine.QueryInterface(targ,·IID_Identity);
|    | [NORMAL] JSHintBear:
|    | 'cmpIdentity' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|5458| »   »   »   var·targetClasses·=·this.order.data.targetClasses;
|    | [NORMAL] JSHintBear:
|    | 'targetClasses' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|5460| »   »   »   »   &&·!MatchesClassList(cmpIdentity.GetClassesList(),·targetClasses.attack))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|5463| »   »   »   »   &&·MatchesClassList(cmpIdentity.GetClassesList(),·targetClasses.avoid))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/components/UnitAI.js
|5538| »   »   var·cmpVision·=·Engine.QueryInterface(this.entity,·IID_Vision);
|    | [NORMAL] JSHintBear:
|    | 'cmpVision' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|5541| »   »   var·range·=·cmpVision.GetRange();
|    | [NORMAL] JSHintBear:
|    | 'range' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|5546| »   »   var·cmpRanged·=·Engine.QueryInterface(this.entity,·iid);
|    | [NORMAL] JSHintBear:
|    | 'cmpRanged' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|5549| »   »   var·range·=·iid·!==·IID_Attack·?·cmpRanged.GetRange()·:·cmpRanged.GetFullAttackRange();
|    | [NORMAL] JSHintBear:
|    | 'range' is already defined.

binaries/data/mods/public/simulation/components/UnitAI.js
|5549| »   »   var·range·=·iid·!==·IID_Attack·?·cmpRanged.GetRange()·:·cmpRanged.GetFullAttackRange();
|    | [MAJOR] JSHintBear:
|    | Too many errors. (92% scanned).
Executing section cli...

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

Freagarach added inline comments.Apr 26 2019, 10:16 PM
binaries/data/mods/public/simulation/components/ProximityDamage.js
64

Ah, okay. My grep returned mostly null ;)

binaries/data/mods/public/simulation/components/UnitAI.js
3328 ↗(On Diff #7817)

Yep, found it: posting here for my reference.
let cmpUnitMotion = Engine.QueryInterface(this.entity, IID_UnitMotion);
cmpUnitMotion.IsMoving()

Freagarach updated this revision to Diff 7875.Apr 27 2019, 4:51 PM
Freagarach marked 5 inline comments as done.
Freagarach edited the summary of this revision. (Show Details)

Better way for checking unit motion. Some more fixes.

binaries/data/mods/public/simulation/components/Damage.js
286

Off-topic: Are flying objects considered to be not in the world?

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 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  23|  23| 	let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
|  24|  24| 	let turnLength = cmpTimer.GetLatestTurnLength();
|  25|  25| 	return new Vector3D(
|  26|    |-			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|    |  26|+		(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|  27| 			0,
|  28|  28| 			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  24|  24| 	let turnLength = cmpTimer.GetLatestTurnLength();
|  25|  25| 	return new Vector3D(
|  26|  26| 			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|    |-			0,
|    |  27|+		0,
|  28|  28| 			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|  30|  30| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  25|  25| 	return new Vector3D(
|  26|  26| 			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|  27| 			0,
|  28|    |-			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|    |  28|+		(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|  30|  30| 
|  31|  31| /**
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
| 111| 111| 
| 112| 112| 	// Do this first in case the direct hit kills the target
| 113| 113| 	if (data.isSplash)
| 114|    |-	{
|    | 114|+	
| 115| 115| 		this.CauseSplashDamage({
| 116| 116| 			"attacker": data.attacker,
| 117| 117| 			"origin": Vector2D.from3D(data.position),
| 124| 124| 			"type": data.type,
| 125| 125| 			"attackerOwner": data.attackerOwner
| 126| 126| 		});
| 127|    |-	}
|    | 127|+	
| 128| 128| 
| 129| 129| 	let cmpProjectileManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_ProjectileManager);
| 130| 130| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
| 212| 212| 				damageMultiplier = 0;
| 213| 213| 		}
| 214| 214| 		else // In case someone calls this function with an invalid shape.
| 215|    |-		{
|    | 215|+		
| 216| 216| 			warn("The " + data.shape + " splash damage shape is not implemented!");
| 217|    |-		}
|    | 217|+		
| 218| 218| 
| 219| 219| 		if (data.splashBonus)
| 220| 220| 			damageMultiplier *= GetDamageBonus(ent, data.splashBonus);
Executing section cli...

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

Stan added inline comments.Apr 27 2019, 5:02 PM
binaries/data/mods/public/simulation/components/Damage.js
286

I don't think so but they have their own unit motion.

Freagarach marked 6 inline comments as done.Apr 29 2019, 8:19 PM
Freagarach added inline comments.
binaries/data/mods/public/simulation/components/Damage.js
286

Ah I see, thanks!

binaries/data/mods/public/simulation/components/ProximityDamage.js
64

Did you try to save ?

I tried, it works fine. What is your suggestion now?

143

I think there are little messages to be ignored whith this (OnMotionChanged) check ;)

Angen added a subscriber: Angen.Apr 29 2019, 8:28 PM

Quick question:
Would not be better to use range query to get entities around instead calling this.EntitiesNearPoint ?

Freagarach marked 2 inline comments as done.Apr 30 2019, 7:46 PM
In D1838#76640, @Angen wrote:

Quick question:
Would not be better to use range query to get entities around instead calling this.EntitiesNearPoint ?

You mean:

let nearEnts = cmpRangeManager.ExecuteQuery(data.attacker, 0, data.radius, data.playersToDamage, IID_DamageReceiver);

instead of:

let nearEnts = this.EntitiesNearPoint(data.origin, data.radius, data.playersToDamage);

? That seems to be neater, I guess. Would this also ensure that an entity does not damage itself?

Freagarach updated this revision to Diff 7895.May 1 2019, 4:57 PM
Freagarach edited the summary of this revision. (Show Details)
  • Added test
  • Replaced the timer-check at init with one at Ownership-change to prevent entities with OnlyWhenMoving == true to do damage upon creation.
  • Use range query instead of EntitiesNearPoint as suggested by Angen
  • Typo (bonusses)
  • Fixed error with FriendlyFire
  • Updated JSDoc
Vulcan added a comment.May 1 2019, 4:59 PM

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'turnLength' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  10|  10| Engine.LoadComponentScript("Timer.js");
|  11|  11| 
|  12|  12| let cmpTimer = ConstructComponent(SYSTEM_ENTITY, "Timer");
|  13|    |-cmpTimer.OnUpdate({ turnLength: 1 });
|    |  13|+cmpTimer.OnUpdate({ "turnLength": 1 });
|  14|  14| 
|  15|  15| let damagingEnt = 42;
|  16|  16| let player = 1;
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'RestrictedClasses'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  81|  81| 	"Hack": 0.0,
|  82|  82| 	"Pierce": 10.0,
|  83|  83| 	"Crush": 50.0,
|  84|    |-	"RestrictedClasses":{
|    |  84|+	"RestrictedClasses": {
|  85|  85| 		"_string": "Javelin"
|  86|  86| 	},
|  87|  87| 	"Bonuses": {
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'Bonus1'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  85|  85| 		"_string": "Javelin"
|  86|  86| 	},
|  87|  87| 	"Bonuses": {
|  88|    |-		"Bonus1":{
|    |  88|+		"Bonus1": {
|  89|  89| 			"Civ": "iber"
|  90|  90| 		},
|  91|  91| 		"Bonus2":{
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'Bonus2'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  88|  88| 		"Bonus1":{
|  89|  89| 			"Civ": "iber"
|  90|  90| 		},
|  91|    |-		"Bonus2":{
|    |  91|+		"Bonus2": {
|  92|  92| 			"Classes": "Javelin"
|  93|  93| 		},
|  94|  94| 		"Bonus3":{
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'Bonus3'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  91|  91| 		"Bonus2":{
|  92|  92| 			"Classes": "Javelin"
|  93|  93| 		},
|  94|    |-		"Bonus3":{
|    |  94|+		"Bonus3": {
|  95|  95| 			"Civ": "athen",
|  96|  96| 			"Multiplier": 2
|  97|  97| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  23|  23| 	let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
|  24|  24| 	let turnLength = cmpTimer.GetLatestTurnLength();
|  25|  25| 	return new Vector3D(
|  26|    |-			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|    |  26|+		(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|  27| 			0,
|  28|  28| 			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  24|  24| 	let turnLength = cmpTimer.GetLatestTurnLength();
|  25|  25| 	return new Vector3D(
|  26|  26| 			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|    |-			0,
|    |  27|+		0,
|  28|  28| 			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|  30|  30| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  25|  25| 	return new Vector3D(
|  26|  26| 			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|  27| 			0,
|  28|    |-			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|    |  28|+		(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|  30|  30| 
|  31|  31| /**
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
| 111| 111| 
| 112| 112| 	// Do this first in case the direct hit kills the target
| 113| 113| 	if (data.isSplash)
| 114|    |-	{
|    | 114|+	
| 115| 115| 		this.CauseSplashDamage({
| 116| 116| 			"attacker": data.attacker,
| 117| 117| 			"origin": Vector2D.from3D(data.position),
| 124| 124| 			"type": data.type,
| 125| 125| 			"attackerOwner": data.attackerOwner
| 126| 126| 		});
| 127|    |-	}
|    | 127|+	
| 128| 128| 
| 129| 129| 	let cmpProjectileManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_ProjectileManager);
| 130| 130| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
| 212| 212| 				damageMultiplier = 0;
| 213| 213| 		}
| 214| 214| 		else // In case someone calls this function with an invalid shape.
| 215|    |-		{
|    | 215|+		
| 216| 216| 			warn("The " + data.shape + " splash damage shape is not implemented!");
| 217|    |-		}
|    | 217|+		
| 218| 218| 
| 219| 219| 		if (data.splashBonus)
| 220| 220| 			damageMultiplier *= GetDamageBonus(ent, data.splashBonus);
Executing section cli...

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

Freagarach edited the summary of this revision. (Show Details)May 15 2019, 4:19 PM
Freagarach added inline comments.
binaries/data/mods/public/simulation/components/Damage.js
265

MTM: Check if the entity causing proximity damage has a position and is in world.

Freagarach updated this revision to Diff 8052.May 18 2019, 10:38 AM

Removed duplicate type in cmpDamage.CauseProximityDamage at CauseDamage.

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'turnLength' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  10|  10| Engine.LoadComponentScript("Timer.js");
|  11|  11| 
|  12|  12| let cmpTimer = ConstructComponent(SYSTEM_ENTITY, "Timer");
|  13|    |-cmpTimer.OnUpdate({ turnLength: 1 });
|    |  13|+cmpTimer.OnUpdate({ "turnLength": 1 });
|  14|  14| 
|  15|  15| let damagingEnt = 42;
|  16|  16| let player = 1;
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'RestrictedClasses'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  81|  81| 	"Hack": 0.0,
|  82|  82| 	"Pierce": 10.0,
|  83|  83| 	"Crush": 50.0,
|  84|    |-	"RestrictedClasses":{
|    |  84|+	"RestrictedClasses": {
|  85|  85| 		"_string": "Javelin"
|  86|  86| 	},
|  87|  87| 	"Bonuses": {
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'Bonus1'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  85|  85| 		"_string": "Javelin"
|  86|  86| 	},
|  87|  87| 	"Bonuses": {
|  88|    |-		"Bonus1":{
|    |  88|+		"Bonus1": {
|  89|  89| 			"Civ": "iber"
|  90|  90| 		},
|  91|  91| 		"Bonus2":{
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'Bonus2'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  88|  88| 		"Bonus1":{
|  89|  89| 			"Civ": "iber"
|  90|  90| 		},
|  91|    |-		"Bonus2":{
|    |  91|+		"Bonus2": {
|  92|  92| 			"Classes": "Javelin"
|  93|  93| 		},
|  94|  94| 		"Bonus3":{
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'Bonus3'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  91|  91| 		"Bonus2":{
|  92|  92| 			"Classes": "Javelin"
|  93|  93| 		},
|  94|    |-		"Bonus3":{
|    |  94|+		"Bonus3": {
|  95|  95| 			"Civ": "athen",
|  96|  96| 			"Multiplier": 2
|  97|  97| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  23|  23| 	let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
|  24|  24| 	let turnLength = cmpTimer.GetLatestTurnLength();
|  25|  25| 	return new Vector3D(
|  26|    |-			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|    |  26|+		(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|  27| 			0,
|  28|  28| 			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  24|  24| 	let turnLength = cmpTimer.GetLatestTurnLength();
|  25|  25| 	return new Vector3D(
|  26|  26| 			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|    |-			0,
|    |  27|+		0,
|  28|  28| 			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|  30|  30| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  25|  25| 	return new Vector3D(
|  26|  26| 			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|  27| 			0,
|  28|    |-			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|    |  28|+		(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|  30|  30| 
|  31|  31| /**
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
| 111| 111| 
| 112| 112| 	// Do this first in case the direct hit kills the target
| 113| 113| 	if (data.isSplash)
| 114|    |-	{
|    | 114|+	
| 115| 115| 		this.CauseSplashDamage({
| 116| 116| 			"attacker": data.attacker,
| 117| 117| 			"origin": Vector2D.from3D(data.position),
| 124| 124| 			"type": data.type,
| 125| 125| 			"attackerOwner": data.attackerOwner
| 126| 126| 		});
| 127|    |-	}
|    | 127|+	
| 128| 128| 
| 129| 129| 	let cmpProjectileManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_ProjectileManager);
| 130| 130| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
| 212| 212| 				damageMultiplier = 0;
| 213| 213| 		}
| 214| 214| 		else // In case someone calls this function with an invalid shape.
| 215|    |-		{
|    | 215|+		
| 216| 216| 			warn("The " + data.shape + " splash damage shape is not implemented!");
| 217|    |-		}
|    | 217|+		
| 218| 218| 
| 219| 219| 		if (data.splashBonus)
| 220| 220| 			damageMultiplier *= GetDamageBonus(ent, data.splashBonus);
Executing section cli...

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

Freagarach updated this revision to Diff 8168.May 26 2019, 9:18 PM
Freagarach marked 3 inline comments as done.

(Hopefully) fixed serialising. (Load/Save works fine.)

@elexis Do you know if it should be "null" or "undefined" at line 166 in ProximityDamage.js?

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'turnLength' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  10|  10| Engine.LoadComponentScript("Timer.js");
|  11|  11| 
|  12|  12| let cmpTimer = ConstructComponent(SYSTEM_ENTITY, "Timer");
|  13|    |-cmpTimer.OnUpdate({ turnLength: 1 });
|    |  13|+cmpTimer.OnUpdate({ "turnLength": 1 });
|  14|  14| 
|  15|  15| let damagingEnt = 42;
|  16|  16| let player = 1;
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'RestrictedClasses'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  81|  81| 	"Hack": 0.0,
|  82|  82| 	"Pierce": 10.0,
|  83|  83| 	"Crush": 50.0,
|  84|    |-	"RestrictedClasses":{
|    |  84|+	"RestrictedClasses": {
|  85|  85| 		"_string": "Javelin"
|  86|  86| 	},
|  87|  87| 	"Bonuses": {
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'Bonus1'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  85|  85| 		"_string": "Javelin"
|  86|  86| 	},
|  87|  87| 	"Bonuses": {
|  88|    |-		"Bonus1":{
|    |  88|+		"Bonus1": {
|  89|  89| 			"Civ": "iber"
|  90|  90| 		},
|  91|  91| 		"Bonus2":{
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'Bonus2'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  88|  88| 		"Bonus1":{
|  89|  89| 			"Civ": "iber"
|  90|  90| 		},
|  91|    |-		"Bonus2":{
|    |  91|+		"Bonus2": {
|  92|  92| 			"Classes": "Javelin"
|  93|  93| 		},
|  94|  94| 		"Bonus3":{
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'Bonus3'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  91|  91| 		"Bonus2":{
|  92|  92| 			"Classes": "Javelin"
|  93|  93| 		},
|  94|    |-		"Bonus3":{
|    |  94|+		"Bonus3": {
|  95|  95| 			"Civ": "athen",
|  96|  96| 			"Multiplier": 2
|  97|  97| 		}
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/ProximityDamage.js
|  71|  71| 
|  72|  72| ProximityDamage.prototype.Deserialize = function(data)
|  73|  73| {
|  74|    |-	this.proximityDamageTimer = data.proximityDamageTimer
|    |  74|+	this.proximityDamageTimer = data.proximityDamageTimer;
|  75|  75| };
|  76|  76| 
|  77|  77| 

binaries/data/mods/public/simulation/components/ProximityDamage.js
|  74| »   this.proximityDamageTimer·=·data.proximityDamageTimer
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  23|  23| 	let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
|  24|  24| 	let turnLength = cmpTimer.GetLatestTurnLength();
|  25|  25| 	return new Vector3D(
|  26|    |-			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|    |  26|+		(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|  27| 			0,
|  28|  28| 			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  24|  24| 	let turnLength = cmpTimer.GetLatestTurnLength();
|  25|  25| 	return new Vector3D(
|  26|  26| 			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|    |-			0,
|    |  27|+		0,
|  28|  28| 			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|  30|  30| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  25|  25| 	return new Vector3D(
|  26|  26| 			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|  27| 			0,
|  28|    |-			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|    |  28|+		(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|  30|  30| 
|  31|  31| /**
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
| 112| 112| 
| 113| 113| 	// Do this first in case the direct hit kills the target
| 114| 114| 	if (data.isSplash)
| 115|    |-	{
|    | 115|+	
| 116| 116| 		this.CauseSplashDamage({
| 117| 117| 			"attacker": data.attacker,
| 118| 118| 			"origin": Vector2D.from3D(data.position),
| 125| 125| 			"type": data.type,
| 126| 126| 			"attackerOwner": data.attackerOwner
| 127| 127| 		});
| 128|    |-	}
|    | 128|+	
| 129| 129| 
| 130| 130| 	let cmpProjectileManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_ProjectileManager);
| 131| 131| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
| 218| 218| 				damageMultiplier = 0;
| 219| 219| 		}
| 220| 220| 		else // In case someone calls this function with an invalid shape.
| 221|    |-		{
|    | 221|+		
| 222| 222| 			warn("The " + data.shape + " splash damage shape is not implemented!");
| 223|    |-		}
|    | 223|+		
| 224| 224| 
| 225| 225| 		if (data.splashBonus)
| 226| 226| 			damageMultiplier *= GetDamageBonus(ent, data.splashBonus);
Executing section cli...

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

Freagarach updated this revision to Diff 8538.Mon, Jun 17, 9:52 PM
Freagarach edited the summary of this revision. (Show Details)

Updated due to D1950.

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'turnLength' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  10|  10| Engine.LoadComponentScript("Timer.js");
|  11|  11| 
|  12|  12| let cmpTimer = ConstructComponent(SYSTEM_ENTITY, "Timer");
|  13|    |-cmpTimer.OnUpdate({ turnLength: 1 });
|    |  13|+cmpTimer.OnUpdate({ "turnLength": 1 });
|  14|  14| 
|  15|  15| let damagingEnt = 42;
|  16|  16| let player = 1;
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'RestrictedClasses'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  85|  85| 		"Pierce": 10.0,
|  86|  86| 		"Crush": 50.0,
|  87|  87| 	},
|  88|    |-	"RestrictedClasses":{
|    |  88|+	"RestrictedClasses": {
|  89|  89| 		"_string": "Javelin"
|  90|  90| 	},
|  91|  91| 	"Bonuses": {
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'Bonus1'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  89|  89| 		"_string": "Javelin"
|  90|  90| 	},
|  91|  91| 	"Bonuses": {
|  92|    |-		"Bonus1":{
|    |  92|+		"Bonus1": {
|  93|  93| 			"Civ": "iber"
|  94|  94| 		},
|  95|  95| 		"Bonus2":{
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'Bonus2'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  92|  92| 		"Bonus1":{
|  93|  93| 			"Civ": "iber"
|  94|  94| 		},
|  95|    |-		"Bonus2":{
|    |  95|+		"Bonus2": {
|  96|  96| 			"Classes": "Javelin"
|  97|  97| 		},
|  98|  98| 		"Bonus3":{
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'Bonus3'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  95|  95| 		"Bonus2":{
|  96|  96| 			"Classes": "Javelin"
|  97|  97| 		},
|  98|    |-		"Bonus3":{
|    |  98|+		"Bonus3": {
|  99|  99| 			"Civ": "athen",
| 100| 100| 			"Multiplier": 2
| 101| 101| 		}
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/ProximityDamage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/ProximityDamage.js
|  75|  75| 
|  76|  76| ProximityDamage.prototype.Deserialize = function(data)
|  77|  77| {
|  78|    |-	this.proximityDamageTimer = data.proximityDamageTimer
|    |  78|+	this.proximityDamageTimer = data.proximityDamageTimer;
|  79|  79| };
|  80|  80| 
|  81|  81| 

binaries/data/mods/public/simulation/components/ProximityDamage.js
|  78| »   this.proximityDamageTimer·=·data.proximityDamageTimer
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  23|  23| 	let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
|  24|  24| 	let turnLength = cmpTimer.GetLatestTurnLength();
|  25|  25| 	return new Vector3D(
|  26|    |-			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|    |  26|+		(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|  27| 			0,
|  28|  28| 			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  24|  24| 	let turnLength = cmpTimer.GetLatestTurnLength();
|  25|  25| 	return new Vector3D(
|  26|  26| 			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|    |-			0,
|    |  27|+		0,
|  28|  28| 			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|  30|  30| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|  25|  25| 	return new Vector3D(
|  26|  26| 			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|  27| 			0,
|  28|    |-			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|    |  28|+		(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|  30|  30| 
|  31|  31| /**
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
| 112| 112| 
| 113| 113| 	// Do this first in case the direct hit kills the target
| 114| 114| 	if (data.isSplash)
| 115|    |-	{
|    | 115|+	
| 116| 116| 		this.CauseSplashDamage({
| 117| 117| 			"attacker": data.attacker,
| 118| 118| 			"origin": Vector2D.from3D(data.position),
| 125| 125| 			"type": data.type,
| 126| 126| 			"attackerOwner": data.attackerOwner
| 127| 127| 		});
| 128|    |-	}
|    | 128|+	
| 129| 129| 
| 130| 130| 	let cmpProjectileManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_ProjectileManager);
| 131| 131| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/simulation/components/Damage.js
| 218| 218| 				damageMultiplier = 0;
| 219| 219| 		}
| 220| 220| 		else // In case someone calls this function with an invalid shape.
| 221|    |-		{
|    | 221|+		
| 222| 222| 			warn("The " + data.shape + " splash damage shape is not implemented!");
| 223|    |-		}
|    | 223|+		
| 224| 224| 
| 225| 225| 		if (data.splashBonus)
| 226| 226| 			damageMultiplier *= GetDamageBonus(data.attacker, ent, data.type, data.splashBonus);
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/globalscripts/Templates.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/differential/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.
Executing section cli...

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

bb requested changes to this revision.Fri, Jul 12, 10:16 PM
bb added a subscriber: bb.

vulcan Lint is yelling about some stuff in the tests

Thanks for working on this, this approach is much better than my ancient patch buried in that old ticket

Perhaps for passively capturing nearby units as well?

Needs this patch + me rebasing some ;), (in principle what it needs is that capture becomes a damageType)

binaries/data/mods/public/globalscripts/Templates.js
225

you pass the values to the gui now, but never use them... probably add it in the tooltip

binaries/data/mods/public/simulation/components/Damage.js
253

Should be a cap (fixed the rest of the file in rP22461)

264

It appears to me that this function is just a copy of the splash code except for the restricted classes, wouldn't it just be better to add that to the splash code too, and reuse that function? One could add a template entry Attack[type].Splash.RestrictedClasses or so.

269

system component, no need to check

271–272

calling back to the component we just got called from? better add it in the arguments

binaries/data/mods/public/simulation/components/ProximityDamage.js
45–49

comparing to the attack schema (not necessarily splash) one could consider adding a Delay, minRange and/or statusEffect tag

60–61

periods

63–70

Out of Scope, but at some point we might want to merge this with its duplicates in an attack helper or so

85–86

periods

101–102

periods

131

Damage component (no hyphen)

171

The interval should be in the template too

175

period

176

object spaces

184

period

185

same

189–190

Theoretically correct, since the timer component guesses that the timer needs to be removed, however we shouldn't be guessing, just clean the timer here

binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
30–35

No need to test this here

41

One could also test the movement code by setting this to true and mocking a unitMotion that is first moving then not (one should mock the Damage.CauseProximityDamage to set some parameter to see if it is called)

69

IID_Damage? and that isn't a system component...

76

Appears to me nothing is tested here, since Damage.CauseProximityDamage is never called, needs a Timer.onUpdate({ turnLength: 100 })

This revision now requires changes to proceed.Fri, Jul 12, 10:16 PM
Freagarach added inline comments.Sat, Jul 13, 6:14 AM
binaries/data/mods/public/simulation/components/Damage.js
264

Just keep the name causeSplashDamage then? Or make it more generic?

269

Didn't know that :)

290

Does anyone have a use case for proximity damage without distance falloff? So that the value at 10 m is the same as at 1 m?

binaries/data/mods/public/simulation/components/ProximityDamage.js
171

Pass that to the GUI as well?

Freagarach marked 12 inline comments as done.Sat, Jul 13, 7:15 AM
Freagarach added inline comments.
binaries/data/mods/public/simulation/components/ProximityDamage.js
45–49

Not sure whether a MinRange would make sense?

binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
30–35

Well it's not really a test, its needed to enable the use of ApplyValueModificationsToEntity in the component.

Freagarach marked 6 inline comments as done.Sat, Jul 13, 9:11 AM
Freagarach added inline comments.
binaries/data/mods/public/simulation/components/Damage.js
264

Like causeAreaDamage?

binaries/data/mods/public/simulation/components/ProximityDamage.js
45–49

Nevermind, it does (viz. a magic unit with a ring of fire).

Freagarach updated this revision to Diff 8849.Sat, Jul 13, 9:44 AM
Freagarach edited the summary of this revision. (Show Details)
  • Added tooltip.
  • Many fixes from inlines.

Test not yet done.

Owners added a subscriber: Restricted Owners Package.Sat, Jul 13, 9:44 AM

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'turnLength' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  10|  10| Engine.LoadComponentScript("Timer.js");
|  11|  11| 
|  12|  12| let cmpTimer = ConstructComponent(SYSTEM_ENTITY, "Timer");
|  13|    |-cmpTimer.OnUpdate({ turnLength: 1 });
|    |  13|+cmpTimer.OnUpdate({ "turnLength": 1 });
|  14|  14| 
|  15|  15| let damagingEnt = 42;
|  16|  16| let player = 1;
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'RestrictedClasses'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  86|  86| 		"Pierce": 10.0,
|  87|  87| 		"Crush": 50.0,
|  88|  88| 	},
|  89|    |-	"RestrictedClasses":{
|    |  89|+	"RestrictedClasses": {
|  90|  90| 		"_string": "Javelin"
|  91|  91| 	},
|  92|  92| 	"Bonuses": {
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'Bonus1'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  90|  90| 		"_string": "Javelin"
|  91|  91| 	},
|  92|  92| 	"Bonuses": {
|  93|    |-		"Bonus1":{
|    |  93|+		"Bonus1": {
|  94|  94| 			"Civ": "iber"
|  95|  95| 		},
|  96|  96| 		"Bonus2":{
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'Bonus2'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  93|  93| 		"Bonus1":{
|  94|  94| 			"Civ": "iber"
|  95|  95| 		},
|  96|    |-		"Bonus2":{
|    |  96|+		"Bonus2": {
|  97|  97| 			"Classes": "Javelin"
|  98|  98| 		},
|  99|  99| 		"Bonus3":{
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'Bonus3'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_ProximityDamage.js
|  96|  96| 		"Bonus2":{
|  97|  97| 			"Classes": "Javelin"
|  98|  98| 		},
|  99|    |-		"Bonus3":{
|    |  99|+		"Bonus3": {
| 100| 100| 			"Civ": "athen",
| 101| 101| 			"Multiplier": 2
| 102| 102| 		}
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/ProximityDamage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/ProximityDamage.js
| 130| 130| {
| 131| 131| 	let min = ApplyValueModificationsToEntity("ProximityDamage/MinRange", +this.template.MinRange, this.entity);
| 132| 132| 	let max = ApplyValueModificationsToEntity("ProximityDamage/MaxRange", +this.template.MaxRange, this.entity);
| 133|    |-	return { "max": max, "min": min }
|    | 133|+	return { "max": max, "min": min };
| 134| 134| }
| 135| 135| 
| 136| 136| /**
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/ProximityDamage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/ProximityDamage.js
| 131| 131| 	let min = ApplyValueModificationsToEntity("ProximityDamage/MinRange", +this.template.MinRange, this.entity);
| 132| 132| 	let max = ApplyValueModificationsToEntity("ProximityDamage/MaxRange", +this.template.MaxRange, this.entity);
| 133| 133| 	return { "max": max, "min": min }
| 134|    |-}
|    | 134|+};
| 135| 135| 
| 136| 136| /**
| 137| 137|  * Work out the timer value with technology effects.
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/ProximityDamage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/ProximityDamage.js
| 142| 142| 	let prepare = ApplyValueModificationsToEntity("ProximityDamage/PrepareTime", +this.template.PrepareTime, this.entity);
| 143| 143| 	let repeat = ApplyValueModificationsToEntity("ProximityDamage/RepeatTime", +this.template.RepeatTime, this.entity);
| 144| 144| 	return { "prepare": prepare, "repeat": repeat };
| 145|    |-}
|    | 145|+};
| 146| 146| 
| 147| 147| /**
| 148| 148|  * Work out the damage values with technology effects.

binaries/data/mods/public/simulation/components/ProximityDamage.js
| 133| »   return·{·"max":·max,·"min":·min·}
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.

binaries/data/mods/public/simulation/components/ProximityDamage.js
| 134| }
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.

binaries/data/mods/public/simulation/components/ProximityDamage.js
| 145| }
|    | [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.
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|  66|  66| 		let phase = "";
|  67|  67| 		let cmpTechnologyManager = QueryPlayerIDInterface(i, IID_TechnologyManager);
|  68|  68| 		if (cmpTechnologyManager)
|  69|    |-		{
|    |  69|+		
|  70|  70| 			if (cmpTechnologyManager.IsTechnologyResearched("phase_city"))
|  71|  71| 				phase = "city";
|  72|  72| 			else if (cmpTechnologyManager.IsTechnologyResearched("phase_town"))
|  73|  73| 				phase = "town";
|  74|  74| 			else if (cmpTechnologyManager.IsTechnologyResearched("phase_village"))
|  75|  75| 				phase = "village";
|  76|    |-		}
|    |  76|+		
|  77|  77| 
|  78|  78| 		// store player ally/neutral/enemy data as arrays
|  79|  79| 		let allies = [];
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 415| 415| 			ret.attack[type].elevationBonus = range.elevationBonus;
| 416| 416| 
| 417| 417| 			if (cmpUnitAI && cmpPosition && cmpPosition.IsInWorld())
| 418|    |-			{
|    | 418|+			
| 419| 419| 				// For units, take the range in front of it, no spread. So angle = 0
| 420| 420| 				ret.attack[type].elevationAdaptedRange = cmpRangeManager.GetElevationAdaptedRange(cmpPosition.GetPosition(), cmpPosition.GetRotation(), range.max, range.elevationBonus, 0);
| 421|    |-			}
|    | 421|+			
| 422| 422| 			else if(cmpPosition && cmpPosition.IsInWorld())
| 423| 423| 			{
| 424| 424| 				// For buildings, take the average elevation around it. So angle = 2*pi
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 420| 420| 				ret.attack[type].elevationAdaptedRange = cmpRangeManager.GetElevationAdaptedRange(cmpPosition.GetPosition(), cmpPosition.GetRotation(), range.max, range.elevationBonus, 0);
| 421| 421| 			}
| 422| 422| 			else if(cmpPosition && cmpPosition.IsInWorld())
| 423|    |-			{
|    | 423|+			
| 424| 424| 				// For buildings, take the average elevation around it. So angle = 2*pi
| 425| 425| 				ret.attack[type].elevationAdaptedRange = cmpRangeManager.GetElevationAdaptedRange(cmpPosition.GetPosition(), cmpPosition.GetRotation(), range.max, range.elevationBonus, 2*Math.PI);
| 426|    |-			}
|    | 426|+			
| 427| 427| 			else
| 428| 428| 			{
| 429| 429| 				// not in world, set a default?
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 425| 425| 				ret.attack[type].elevationAdaptedRange = cmpRangeManager.GetElevationAdaptedRange(cmpPosition.GetPosition(), cmpPosition.GetRotation(), range.max, range.elevationBonus, 2*Math.PI);
| 426| 426| 			}
| 427| 427| 			else
| 428|    |-			{
|    | 428|+			
| 429| 429| 				// not in world, set a default?
| 430| 430| 				ret.attack[type].elevationAdaptedRange = ret.attack.maxRange;
| 431|    |-			}
|    | 431|+			
| 432| 432| 		}
| 433| 433| 	}
| 434| 434| 
|    | [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
| 805| 805| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 806| 806| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 807| 807| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 808|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 808|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 809| 809| 	}
| 810| 810| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 811| 811| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1324|1324| 		}
|1325|1325| 	}
|1326|1326| 	else
|1327|    |-	{
|    |1327|+	
|1328|1328| 		// Didn't snap to an existing entity, add the starting tower manually. To prevent odd-looking rotation jumps
|1329|1329| 		// when shift-clicking to build a wall, reuse the placement angle that was last seen on a validly positioned
|1330|1330| 		// wall piece.
|1345|1345| 			"pos": start.pos,
|1346|1346| 			"angle": previewEntities.length > 0 ? previewEntities[0].angle : this.placementWallLastAngle
|1347|1347| 		});
|1348|    |-	}
|    |1348|+	
|1349|1349| 
|1350|1350| 	if (end.pos)
|1351|1351| 	{
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1348|1348| 	}
|1349|1349| 
|1350|1350| 	if (end.pos)
|1351|    |-	{
|    |1351|+	
|1352|1352| 		// Analogous to the starting side case above
|1353|1353| 		if (end.snappedEnt && end.snappedEnt != INVALID_ENTITY)
|1354|1354| 		{
|1386|1386| 				"pos": end.pos,
|1387|1387| 				"angle": previewEntities.length > 0 ? previewEntities[previewEntities.length-1].angle : this.placementWallLastAngle
|1388|1388| 			});
|1389|    |-	}
|    |1389|+	
|1390|1390| 
|1391|1391| 	let cmpTerrain = Engine.QueryInterface(SYSTEM_ENTITY, IID_Terrain);
|1392|1392| 	if (!cmpTerrain)
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1564|1564| 
|1565|1565| 		let cmpVisual = Engine.QueryInterface(ent, IID_Visual);
|1566|1566| 		if (cmpVisual)
|1567|    |-		{
|    |1567|+		
|1568|1568| 			if (!allPiecesValid || !canAfford)
|1569|1569| 				cmpVisual.SetShadingColor(1.4, 0.4, 0.4, 1);
|1570|1570| 			else
|1571|1571| 				cmpVisual.SetShadingColor(1, 1, 1, 1);
|1572|    |-		}
|    |1572|+		
|1573|1573| 
|1574|1574| 		++entPool.numUsed;
|1575|1575| 	}
|    | [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| 			{
|1639|1639| 				minDist2 = dist2;
|1640|1640| 				minDistEntitySnapData = {
|1641|    |-						"x": pos.x,
|    |1641|+					"x": pos.x,
|1642|1642| 						"z": pos.z,
|1643|1643| 						"angle": cmpPosition.GetRotation().y,
|1644|1644| 						"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
|1639|1639| 				minDist2 = dist2;
|1640|1640| 				minDistEntitySnapData = {
|1641|1641| 						"x": pos.x,
|1642|    |-						"z": pos.z,
|    |1642|+					"z": pos.z,
|1643|1643| 						"angle": cmpPosition.GetRotation().y,
|1644|1644| 						"ent": ent
|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| 				minDistEntitySnapData = {
|1641|1641| 						"x": pos.x,
|1642|1642| 						"z": pos.z,
|1643|    |-						"angle": cmpPosition.GetRotation().y,
|    |1643|+					"angle": cmpPosition.GetRotation().y,
|1644|1644| 						"ent": ent
|1645|1645| 				};
|1646|1646| 			}
|    | [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
|1641|1641| 						"x": pos.x,
|1642|1642| 						"z": pos.z,
|1643|1643| 						"angle": cmpPosition.GetRotation().y,
|1644|    |-						"ent": ent
|    |1644|+					"ent": ent
|1645|1645| 				};
|1646|1646| 			}
|1647|1647| 		}
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1786|1786| 			result.gain = cmpEntityTrader.GetGoods().amount;
|1787|1787| 	}
|1788|1788| 	else if (data.target === secondMarket)
|1789|    |-	{
|    |1789|+	
|1790|1790| 		result = {
|1791|1791| 			"type": "is second",
|1792|1792| 			"gain": cmpEntityTrader.GetGoods().amount,
|1793|1793| 		};
|1794|    |-	}
|    |1794|+	
|1795|1795| 	else if (!firstMarket)
|1796|1796| 	{
|1797|1797| 		result = { "type": "set first" };
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1793|1793| 		};
|1794|1794| 	}
|1795|1795| 	else if (!firstMarket)
|1796|    |-	{
|    |1796|+	
|1797|1797| 		result = { "type": "set first" };
|1798|    |-	}
|    |1798|+	
|1799|1799| 	else if (!secondMarket)
|1800|1800| 	{
|1801|1801| 		result = {
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1797|1797| 		result = { "type": "set first" };
|1798|1798| 	}
|1799|1799| 	else if (!secondMarket)
|1800|    |-	{
|    |1800|+	
|1801|1801| 		result = {
|1802|1802| 			"type": "set second",
|1803|1803| 			"gain": cmpEntityTrader.CalculateGain(firstMarket, data.target),
|1804|1804| 		};
|1805|    |-	}
|    |1805|+	
|1806|1806| 	else
|1807|1807| 	{
|1808|1808| 		// Else both markets are not null and target is different from them
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1804|1804| 		};
|1805|1805| 	}
|1806|1806| 	else
|1807|    |-	{
|    |1807|+	
|1808|1808| 		// Else both markets are not null and target is different from them
|1809|1809| 		result = { "type": "set first" };
|1810|    |-	}
|    |1810|+	
|1811|1811| 	return result;
|1812|1812| };
|1813|1813| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
|  23|  23| 	let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
|  24|  24| 	let turnLength = cmpTimer.GetLatestTurnLength();
|  25|  25| 	return new Vector3D(
|  26|    |-			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|    |  26|+		(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|  27| 			0,
|  28|  28| 			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
|  24|  24| 	let turnLength = cmpTimer.GetLatestTurnLength();
|  25|  25| 	return new Vector3D(
|  26|  26| 			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|    |-			0,
|    |  27|+		0,
|  28|  28| 			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|  30|  30| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
|  25|  25| 	return new Vector3D(
|  26|  26| 			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|  27| 			0,
|  28|    |-			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|    |  28|+		(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|  30|  30| 
|  31|  31| /**
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
| 112| 112| 
| 113| 113| 	// Do this first in case the direct hit kills the target
| 114| 114| 	if (data.isSplash)
| 115|    |-	{
|    | 115|+	
| 116| 116| 		this.CauseSplashDamage({
| 117| 117| 			"attacker": data.attacker,
| 118| 118| 			"origin": Vector2D.from3D(data.position),
| 125| 125| 			"type": data.type,
| 126| 126| 			"attackerOwner": data.attackerOwner
| 127| 127| 		});
| 128|    |-	}
|    | 128|+	
| 129| 129| 
| 130| 130| 	let cmpProjectileManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_ProjectileManager);
| 131| 131| 
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
| 218| 218| 				damageMultiplier = 0;
| 219| 219| 		}
| 220| 220| 		else // In case someone calls this function with an invalid shape.
| 221|    |-		{
|    | 221|+		
| 222| 222| 			warn("The " + data.shape + " splash damage shape is not implemented!");
| 223|    |-		}
|    | 223|+		
| 224| 224| 
| 225| 225| 		if (data.splashBonus)
| 226| 226| 			damageMultiplier *= GetDamageBonus(data.attacker, ent, data.type, data.splashBonus);
|    | [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
| 419| 419| function getRepairTimeTooltip(entState)
| 420| 420| {
| 421| 421| 	return sprintf(translate("%(label)s %(details)s"), {
| 422|    |-			"label": headerFont(translate("Number of repairers:")),
|    | 422|+		"label": headerFont(translate("Number of repairers:")),
| 423| 423| 			"details": entState.repairable.numBuilders
| 424| 424| 		}) + "\n" + (entState.repairable.numBuilders ?
| 425| 425| 		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
| 420| 420| {
| 421| 421| 	return sprintf(translate("%(label)s %(details)s"), {
| 422| 422| 			"label": headerFont(translate("Number of repairers:")),
| 423|    |-			"details": entState.repairable.numBuilders
|    | 423|+		"details": entState.repairable.numBuilders
| 424| 424| 		}) + "\n" + (entState.repairable.numBuilders ?
| 425| 425| 		sprintf(translatePlural(
| 426| 426| 			"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
| 421| 421| 	return sprintf(translate("%(label)s %(details)s"), {
| 422| 422| 			"label": headerFont(translate("Number of repairers:")),
| 423| 423| 			"details": entState.repairable.numBuilders
| 424|    |-		}) + "\n" + (entState.repairable.numBuilders ?
|    | 424|+	}) + "\n" + (entState.repairable.numBuilders ?
| 425| 425| 		sprintf(translatePlural(
| 426| 426| 			"Add another worker to speed up the repairs by %(second)s second.",
| 427| 427| 			"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
| 441| 441| function getBuildTimeTooltip(entState)
| 442| 442| {
| 443| 443| 	return sprintf(translate("%(label)s %(details)s"), {
| 444|    |-			"label": headerFont(translate("Number of builders:")),
|    | 444|+		"label": headerFont(translate("Number of builders:")),
| 445| 445| 			"details": entState.foundation.numBuilders
| 446| 446| 		}) + "\n" + (entState.foundation.numBuilders ?
| 447| 447| 		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
| 442| 442| {
| 443| 443| 	return sprintf(translate("%(label)s %(details)s"), {
| 444| 444| 			"label": headerFont(translate("Number of builders:")),
| 445|    |-			"details": entState.foundation.numBuilders
|    | 445|+		"details": entState.foundation.numBuilders
| 446| 446| 		}) + "\n" + (entState.foundation.numBuilders ?
| 447| 447| 		sprintf(translatePlural(
| 448| 448| 			"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
| 443| 443| 	return sprintf(translate("%(label)s %(details)s"), {
| 444| 444| 			"label": headerFont(translate("Number of builders:")),
| 445| 445| 			"details": entState.foundation.numBuilders
| 446|    |-		}) + "\n" + (entState.foundation.numBuilders ?
|    | 446|+	}) + "\n" + (entState.foundation.numBuilders ?
| 447| 447| 		sprintf(translatePlural(
| 448| 448| 			"Add another worker to speed up the construction by %(second)s second.",
| 449| 449| 			"Add another worker to speed up the construction by %(second)s seconds.",
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  48|  48| 	"GetResource": resource => ({
|  49|  49| 		"aiAnalysisInfluenceGroup":
|  50|  50| 			resource == "food" ? "ignore" :
|  51|    |-			resource == "wood" ? "abundant" : "sparse"
|    |  51|+				resource == "wood" ? "abundant" : "sparse"
|  52|  52| 	})
|  53|  53| };
|  54|  54| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPrices' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  56|  56| 
|  57|  57| 
|  58|  58| AddMock(SYSTEM_ENTITY, IID_Barter, {
|  59|    |-	GetPrices: function() {
|    |  59|+	"GetPrices": function() {
|  60|  60| 		return {
|  61|  61| 			"buy": { "food": 150 },
|  62|  62| 			"sell": { "food": 25 }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'PlayerHasMarket' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  62|  62| 			"sell": { "food": 25 }
|  63|  63| 		};
|  64|  64| 	},
|  65|    |-	PlayerHasMarket: function () { return false; }
|    |  65|+	"PlayerHasMarket": function () { return false; }
|  66|  66| });
|  67|  67| 
|  68|  68| AddMock(SYSTEM_ENTITY, IID_EndGameManager, {
|    | [NORMAL] ESLintBear (space-before-function-paren):
|    | Unexpected space before function parentheses.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  62|  62| 			"sell": { "food": 25 }
|  63|  63| 		};
|  64|  64| 	},
|  65|    |-	PlayerHasMarket: function () { return false; }
|    |  65|+	PlayerHasMarket: function() { return false; }
|  66|  66| });
|  67|  67| 
|  68|  68| AddMock(SYSTEM_ENTITY, IID_EndGameManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetVictoryConditions' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  66|  66| });
|  67|  67| 
|  68|  68| AddMock(SYSTEM_ENTITY, IID_EndGameManager, {
|  69|    |-	GetVictoryConditions: () => ["conquest", "wonder"],
|    |  69|+	"GetVictoryConditions": () => ["conquest", "wonder"],
|  70|  70| 	GetAlliedVictory: function() { return false; }
|  71|  71| });
|  72|  72| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetAlliedVictory' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  67|  67| 
|  68|  68| AddMock(SYSTEM_ENTITY, IID_EndGameManager, {
|  69|  69| 	GetVictoryConditions: () => ["conquest", "wonder"],
|  70|    |-	GetAlliedVictory: function() { return false; }
|    |  70|+	"GetAlliedVictory": function() { return false; }
|  71|  71| });
|  72|  72| 
|  73|  73| AddMock(SYSTEM_ENTITY, IID_PlayerManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetNumPlayers' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  71|  71| });
|  72|  72| 
|  73|  73| AddMock(SYSTEM_ENTITY, IID_PlayerManager, {
|  74|    |-	GetNumPlayers: function() { return 2; },
|    |  74|+	"GetNumPlayers": function() { return 2; },
|  75|  75| 	GetPlayerByID: function(id) { TS_ASSERT(id === 0 || id === 1); return 100+id; }
|  76|  76| });
|  77|  77| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPlayerByID' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  72|  72| 
|  73|  73| AddMock(SYSTEM_ENTITY, IID_PlayerManager, {
|  74|  74| 	GetNumPlayers: function() { return 2; },
|  75|    |-	GetPlayerByID: function(id) { TS_ASSERT(id === 0 || id === 1); return 100+id; }
|    |  75|+	"GetPlayerByID": function(id) { TS_ASSERT(id === 0 || id === 1); return 100+id; }
|  76|  76| });
|  77|  77| 
|  78|  78| AddMock(SYSTEM_ENTITY, IID_RangeManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLosVisibility' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  76|  76| });
|  77|  77| 
|  78|  78| AddMock(SYSTEM_ENTITY, IID_RangeManager, {
|  79|    |-	GetLosVisibility: function(ent, player) { return "visible"; },
|    |  79|+	"GetLosVisibility": function(ent, player) { return "visible"; },
|  80|  80| 	GetLosCircular: function() { return false; }
|  81|  81| });
|  82|  82| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLosCircular' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  77|  77| 
|  78|  78| AddMock(SYSTEM_ENTITY, IID_RangeManager, {
|  79|  79| 	GetLosVisibility: function(ent, player) { return "visible"; },
|  80|    |-	GetLosCircular: function() { return false; }
|    |  80|+	"GetLosCircular": function() { return false; }
|  81|  81| });
|  82|  82| 
|  83|  83| AddMock(SYSTEM_ENTITY, IID_TemplateManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCurrentTemplateName' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  81|  81| });
|  82|  82| 
|  83|  83| AddMock(SYSTEM_ENTITY, IID_TemplateManager, {
|  84|    |-	GetCurrentTemplateName: function(ent) { return "example"; },
|    |  84|+	"GetCurrentTemplateName": function(ent) { return "example"; },
|  85|  85| 	GetTemplate: function(name) { return ""; }
|  86|  86| });
|  87|  87| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetTemplate' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  82|  82| 
|  83|  83| AddMock(SYSTEM_ENTITY, IID_TemplateManager, {
|  84|  84| 	GetCurrentTemplateName: function(ent) { return "example"; },
|  85|    |-	GetTemplate: function(name) { return ""; }
|    |  85|+	"GetTemplate": function(name) { return ""; }
|  86|  86| });
|  87|  87| 
|  88|  88| AddMock(SYSTEM_ENTITY, IID_Timer, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetTime' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  86|  86| });
|  87|  87| 
|  88|  88| AddMock(SYSTEM_ENTITY, IID_Timer, {
|  89|    |-	GetTime: function() { return 0; },
|    |  89|+	"GetTime": function() { return 0; },
|  90|  90| 	SetTimeout: function(ent, iid, funcname, time, data) { return 0; }
|  91|  91| });
|  92|  92| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'SetTimeout' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  87|  87| 
|  88|  88| AddMock(SYSTEM_ENTITY, IID_Timer, {
|  89|  89| 	GetTime: function() { return 0; },
|  90|    |-	SetTimeout: function(ent, iid, funcname, time, data) { return 0; }
|    |  90|+	"SetTimeout": function(ent, iid, funcname, time, data) { return 0; }
|  91|  91| });
|  92|  92| 
|  93|  93| AddMock(100, IID_Player, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetName' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  91|  91| });
|  92|  92| 
|  93|  93| AddMock(100, IID_Player, {
|  94|    |-	GetName: function() { return "Player 1"; },
|    |  94|+	"GetName": function() { return "Player 1"; },
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|  96| 	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCiv' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  92|  92| 
|  93|  93| AddMock(100, IID_Player, {
|  94|  94| 	GetName: function() { return "Player 1"; },
|  95|    |-	GetCiv: function() { return "gaia"; },
|    |  95|+	"GetCiv": function() { return "gaia"; },
|  96|  96| 	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetColor' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  93|  93| AddMock(100, IID_Player, {
|  94|  94| 	GetName: function() { return "Player 1"; },
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  96|+	"GetColor": function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'r' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  93|  93| AddMock(100, IID_Player, {
|  94|  94| 	GetName: function() { return "Player 1"; },
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  96|+	GetColor: function() { return { "r": 1, g: 1, b: 1, a: 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'g' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  93|  93| AddMock(100, IID_Player, {
|  94|  94| 	GetName: function() { return "Player 1"; },
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  96|+	GetColor: function() { return { r: 1, "g": 1, b: 1, a: 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'b' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  93|  93| AddMock(100, IID_Player, {
|  94|  94| 	GetName: function() { return "Player 1"; },
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  96|+	GetColor: function() { return { r: 1, g: 1, "b": 1, a: 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'a' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  93|  93| AddMock(100, IID_Player, {
|  94|  94| 	GetName: function() { return "Player 1"; },
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  96|+	GetColor: function() { return { r: 1, g: 1, b: 1, "a": 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  93|  93| AddMock(100, IID_Player, {
|  94|  94| 	GetName: function() { return "Player 1"; },
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  96|+	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1 }; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'CanControlAllUnits' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  94|  94| 	GetName: function() { return "Player 1"; },
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|  96| 	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  97|    |-	CanControlAllUnits: function() { return false; },
|    |  97|+	"CanControlAllUnits": function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
| 100| 100| 	GetMaxPopulation: function() { return 200; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPopulationCount' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|  96| 	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|    |-	GetPopulationCount: function() { return 10; },
|    |  98|+	"GetPopulationCount": function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
| 100| 100| 	GetMaxPopulation: function() { return 200; },
| 101| 101| 	GetResourceCounts: function() { return { food: 100 }; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPopulationLimit' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  96|  96| 	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|    |-	GetPopulationLimit: function() { return 20; },
|    |  99|+	"GetPopulationLimit": function() { return 20; },
| 100| 100| 	GetMaxPopulation: function() { return 200; },
| 101| 101| 	GetResourceCounts: function() { return { food: 100 }; },
| 102| 102| 	GetPanelEntities: function() { return []; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetMaxPopulation' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
| 100|    |-	GetMaxPopulation: function() { return 200; },
|    | 100|+	"GetMaxPopulation": function() { return 200; },
| 101| 101| 	GetResourceCounts: function() { return { food: 100 }; },
| 102| 102| 	GetPanelEntities: function() { return []; },
| 103| 103| 	IsTrainingBlocked: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetResourceCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
| 100| 100| 	GetMaxPopulation: function() { return 200; },
| 101|    |-	GetResourceCounts: function() { return { food: 100 }; },
|    | 101|+	"GetResourceCounts": function() { return { food: 100 }; },
| 102| 102| 	GetPanelEntities: function() { return []; },
| 103| 103| 	IsTrainingBlocked: function() { return false; },
| 104| 104| 	GetState: function() { return "active"; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'food' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
| 100| 100| 	GetMaxPopulation: function() { return 200; },
| 101|    |-	GetResourceCounts: function() { return { food: 100 }; },
|    | 101|+	GetResourceCounts: function() { return { "food": 100 }; },
| 102| 102| 	GetPanelEntities: function() { return []; },
| 103| 103| 	IsTrainingBlocked: function() { return false; },
| 104| 104| 	GetState: function() { return "active"; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPanelEntities' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  99|  99| 	GetPopulationLimit: function() { return 20; },
| 100| 100| 	GetMaxPopulation: function() { return 200; },
| 101| 101| 	GetResourceCounts: function() { return { food: 100 }; },
| 102|    |-	GetPanelEntities: function() { return []; },
|    | 102|+	"GetPanelEntities": function() { return []; },
| 103| 103| 	IsTrainingBlocked: function() { return false; },
| 104| 104| 	GetState: function() { return "active"; },
| 105| 105| 	GetTeam: function() { return -1; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsTrainingBlocked' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 100| 100| 	GetMaxPopulation: function() { return 200; },
| 101| 101| 	GetResourceCounts: function() { return { food: 100 }; },
| 102| 102| 	GetPanelEntities: function() { return []; },
| 103|    |-	IsTrainingBlocked: function() { return false; },
|    | 103|+	"IsTrainingBlocked": function() { return false; },
| 104| 104| 	GetState: function() { return "active"; },
| 105| 105| 	GetTeam: function() { return -1; },
| 106| 106| 	GetLockTeams: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetState' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 101| 101| 	GetResourceCounts: function() { return { food: 100 }; },
| 102| 102| 	GetPanelEntities: function() { return []; },
| 103| 103| 	IsTrainingBlocked: function() { return false; },
| 104|    |-	GetState: function() { return "active"; },
|    | 104|+	"GetState": function() { return "active"; },
| 105| 105| 	GetTeam: function() { return -1; },
| 106| 106| 	GetLockTeams: function() { return false; },
| 107| 107| 	GetCheatsEnabled: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetTeam' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 102| 102| 	GetPanelEntities: function() { return []; },
| 103| 103| 	IsTrainingBlocked: function() { return false; },
| 104| 104| 	GetState: function() { return "active"; },
| 105|    |-	GetTeam: function() { return -1; },
|    | 105|+	"GetTeam": function() { return -1; },
| 106| 106| 	GetLockTeams: function() { return false; },
| 107| 107| 	GetCheatsEnabled: function() { return false; },
| 108| 108| 	GetDiplomacy: function() { return [-1, 1]; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLockTeams' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 103| 103| 	IsTrainingBlocked: function() { return false; },
| 104| 104| 	GetState: function() { return "active"; },
| 105| 105| 	GetTeam: function() { return -1; },
| 106|    |-	GetLockTeams: function() { return false; },
|    | 106|+	"GetLockTeams": function() { return false; },
| 107| 107| 	GetCheatsEnabled: function() { return false; },
| 108| 108| 	GetDiplomacy: function() { return [-1, 1]; },
| 109| 109| 	IsAlly: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCheatsEnabled' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 104| 104| 	GetState: function() { return "active"; },
| 105| 105| 	GetTeam: function() { return -1; },
| 106| 106| 	GetLockTeams: function() { return false; },
| 107|    |-	GetCheatsEnabled: function() { return false; },
|    | 107|+	"GetCheatsEnabled": function() { return false; },
| 108| 108| 	GetDiplomacy: function() { return [-1, 1]; },
| 109| 109| 	IsAlly: function() { return false; },
| 110| 110| 	IsMutualAlly: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetDiplomacy' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 105| 105| 	GetTeam: function() { return -1; },
| 106| 106| 	GetLockTeams: function() { return false; },
| 107| 107| 	GetCheatsEnabled: function() { return false; },
| 108|    |-	GetDiplomacy: function() { return [-1, 1]; },
|    | 108|+	"GetDiplomacy": function() { return [-1, 1]; },
| 109| 109| 	IsAlly: function() { return false; },
| 110| 110| 	IsMutualAlly: function() { return false; },
| 111| 111| 	IsNeutral: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsAlly' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 106| 106| 	GetLockTeams: function() { return false; },
| 107| 107| 	GetCheatsEnabled: function() { return false; },
| 108| 108| 	GetDiplomacy: function() { return [-1, 1]; },
| 109|    |-	IsAlly: function() { return false; },
|    | 109|+	"IsAlly": function() { return false; },
| 110| 110| 	IsMutualAlly: function() { return false; },
| 111| 111| 	IsNeutral: function() { return false; },
| 112| 112| 	IsEnemy: function() { return true; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsMutualAlly' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 107| 107| 	GetCheatsEnabled: function() { return false; },
| 108| 108| 	GetDiplomacy: function() { return [-1, 1]; },
| 109| 109| 	IsAlly: function() { return false; },
| 110|    |-	IsMutualAlly: function() { return false; },
|    | 110|+	"IsMutualAlly": function() { return false; },
| 111| 111| 	IsNeutral: function() { return false; },
| 112| 112| 	IsEnemy: function() { return true; },
| 113| 113| 	GetDisabledTemplates: function() { return {}; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsNeutral' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 108| 108| 	GetDiplomacy: function() { return [-1, 1]; },
| 109| 109| 	IsAlly: function() { return false; },
| 110| 110| 	IsMutualAlly: function() { return false; },
| 111|    |-	IsNeutral: function() { return false; },
|    | 111|+	"IsNeutral": function() { return false; },
| 112| 112| 	IsEnemy: function() { return true; },
| 113| 113| 	GetDisabledTemplates: function() { return {}; },
| 114| 114| 	GetDisabledTechnologies: function() { return {}; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsEnemy' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 109| 109| 	IsAlly: function() { return false; },
| 110| 110| 	IsMutualAlly: function() { return false; },
| 111| 111| 	IsNeutral: function() { return false; },
| 112|    |-	IsEnemy: function() { return true; },
|    | 112|+	"IsEnemy": function() { return true; },
| 113| 113| 	GetDisabledTemplates: function() { return {}; },
| 114| 114| 	GetDisabledTechnologies: function() { return {}; },
| 115| 115| 	GetSpyCostMultiplier: function() { return 1; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetDisabledTemplates' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 110| 110| 	IsMutualAlly: function() { return false; },
| 111| 111| 	IsNeutral: function() { return false; },
| 112| 112| 	IsEnemy: function() { return true; },
| 113|    |-	GetDisabledTemplates: function() { return {}; },
|    | 113|+	"GetDisabledTemplates": function() { return {}; },
| 114| 114| 	GetDisabledTechnologies: function() { return {}; },
| 115| 115| 	GetSpyCostMultiplier: function() { return 1; },
| 116| 116| 	HasSharedDropsites: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetDisabledTechnologies' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 111| 111| 	IsNeutral: function() { return false; },
| 112| 112| 	IsEnemy: function() { return true; },
| 113| 113| 	GetDisabledTemplates: function() { return {}; },
| 114|    |-	GetDisabledTechnologies: function() { return {}; },
|    | 114|+	"GetDisabledTechnologies": function() { return {}; },
| 115| 115| 	GetSpyCostMultiplier: function() { return 1; },
| 116| 116| 	HasSharedDropsites: function() { return false; },
| 117| 117| 	HasSharedLos: function() { return false; }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetSpyCostMultiplier' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 112| 112| 	IsEnemy: function() { return true; },
| 113| 113| 	GetDisabledTemplates: function() { return {}; },
| 114| 114| 	GetDisabledTechnologies: function() { return {}; },
| 115|    |-	GetSpyCostMultiplier: function() { return 1; },
|    | 115|+	"GetSpyCostMultiplier": function() { return 1; },
| 116| 116| 	HasSharedDropsites: function() { return false; },
| 117| 117| 	HasSharedLos: function() { return false; }
| 118| 118| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'HasSharedDropsites' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 113| 113| 	GetDisabledTemplates: function() { return {}; },
| 114| 114| 	GetDisabledTechnologies: function() { return {}; },
| 115| 115| 	GetSpyCostMultiplier: function() { return 1; },
| 116|    |-	HasSharedDropsites: function() { return false; },
|    | 116|+	"HasSharedDropsites": function() { return false; },
| 117| 117| 	HasSharedLos: function() { return false; }
| 118| 118| });
| 119| 119| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'HasSharedLos' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 114| 114| 	GetDisabledTechnologies: function() { return {}; },
| 115| 115| 	GetSpyCostMultiplier: function() { return 1; },
| 116| 116| 	HasSharedDropsites: function() { return false; },
| 117|    |-	HasSharedLos: function() { return false; }
|    | 117|+	"HasSharedLos": function() { return false; }
| 118| 118| });
| 119| 119| 
| 120| 120| AddMock(100, IID_EntityLimits, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLimits' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 118| 118| });
| 119| 119| 
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121|    |-	GetLimits: function() { return {"Foo": 10}; },
|    | 121|+	"GetLimits": function() { return {"Foo": 10}; },
| 122| 122| 	GetCounts: function() { return {"Foo": 5}; },
| 123| 123| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 124| 124| });
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 118| 118| });
| 119| 119| 
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121|    |-	GetLimits: function() { return {"Foo": 10}; },
|    | 121|+	GetLimits: function() { return { "Foo": 10}; },
| 122| 122| 	GetCounts: function() { return {"Foo": 5}; },
| 123| 123| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 124| 124| });
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 118| 118| });
| 119| 119| 
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121|    |-	GetLimits: function() { return {"Foo": 10}; },
|    | 121|+	GetLimits: function() { return {"Foo": 10 }; },
| 122| 122| 	GetCounts: function() { return {"Foo": 5}; },
| 123| 123| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 124| 124| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 119| 119| 
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121| 121| 	GetLimits: function() { return {"Foo": 10}; },
| 122|    |-	GetCounts: function() { return {"Foo": 5}; },
|    | 122|+	"GetCounts": function() { return {"Foo": 5}; },
| 123| 123| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 124| 124| });
| 125| 125| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 119| 119| 
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121| 121| 	GetLimits: function() { return {"Foo": 10}; },
| 122|    |-	GetCounts: function() { return {"Foo": 5}; },
|    | 122|+	GetCounts: function() { return { "Foo": 5}; },
| 123| 123| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 124| 124| });
| 125| 125| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 119| 119| 
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121| 121| 	GetLimits: function() { return {"Foo": 10}; },
| 122|    |-	GetCounts: function() { return {"Foo": 5}; },
|    | 122|+	GetCounts: function() { return {"Foo": 5 }; },
| 123| 123| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 124| 124| });
| 125| 125| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLimitChangers' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121| 121| 	GetLimits: function() { return {"Foo": 10}; },
| 122| 122| 	GetCounts: function() { return {"Foo": 5}; },
| 123|    |-	GetLimitChangers: function() {return {"Foo": {}}; }
|    | 123|+	"GetLimitChangers": function() {return {"Foo": {}}; }
| 124| 124| });
| 125| 125| 
| 126| 126| AddMock(100, IID_TechnologyManager, {
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121| 121| 	GetLimits: function() { return {"Foo": 10}; },
| 122| 122| 	GetCounts: function() { return {"Foo": 5}; },
| 123|    |-	GetLimitChangers: function() {return {"Foo": {}}; }
|    | 123|+	GetLimitChangers: function() {return { "Foo": {}}; }
| 124| 124| });
| 125| 125| 
| 126| 126| AddMock(100, IID_TechnologyManager, {
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121| 121| 	GetLimits: function() { return {"Foo": 10}; },
| 122| 122| 	GetCounts: function() { return {"Foo": 5}; },
| 123|    |-	GetLimitChangers: function() {return {"Foo": {}}; }
|    | 123|+	GetLimitChangers: function() {return {"Foo": {} }; }
| 124| 124| });
| 125| 125| 
| 126| 126| AddMock(100, IID_TechnologyManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetBasicStatistics' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 133| 133| });
| 134| 134| 
| 135| 135| AddMock(100, IID_StatisticsTracker, {
| 136|    |-	GetBasicStatistics: function() {
|    | 136|+	"GetBasicStatistics": function() {
| 137| 137| 		return {
| 138| 138| 			"resourcesGathered": {
| 139| 139| 				"food": 100,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetSequences' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 145| 145| 			"percentMapExplored": 10
| 146| 146| 		};
| 147| 147| 	},
| 148|    |-	GetSequences: function() {
|    | 148|+	"GetSequences": function() {
| 149| 149| 		return {
| 150| 150| 			"unitsTrained": [0, 10],
| 151| 151| 			"unitsLost": [0, 42],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IncreaseTrainedUnitsCounter' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 170| 170| 			"teamPeakPercentOfMapControlled": [0, 10]
| 171| 171| 		};
| 172| 172| 	},
| 173|    |-	IncreaseTrainedUnitsCounter: function() { return 1; },
|    | 173|+	"IncreaseTrainedUnitsCounter": function() { return 1; },
| 174| 174| 	IncreaseConstructedBuildingsCounter: function() { return 1; },
| 175| 175| 	IncreaseBuiltCivCentresCounter: function() { return 1; }
| 176| 176| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IncreaseConstructedBuildingsCounter' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 171| 171| 		};
| 172| 172| 	},
| 173| 173| 	IncreaseTrainedUnitsCounter: function() { return 1; },
| 174|    |-	IncreaseConstructedBuildingsCounter: function() { return 1; },
|    | 174|+	"IncreaseConstructedBuildingsCounter": function() { return 1; },
| 175| 175| 	IncreaseBuiltCivCentresCounter: function() { return 1; }
| 176| 176| });
| 177| 177| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IncreaseBuiltCivCentresCounter' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 172| 172| 	},
| 173| 173| 	IncreaseTrainedUnitsCounter: function() { return 1; },
| 174| 174| 	IncreaseConstructedBuildingsCounter: function() { return 1; },
| 175|    |-	IncreaseBuiltCivCentresCounter: function() { return 1; }
|    | 175|+	"IncreaseBuiltCivCentresCounter": function() { return 1; }
| 176| 176| });
| 177| 177| 
| 178| 178| AddMock(101, IID_Player, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetName' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 176| 176| });
| 177| 177| 
| 178| 178| AddMock(101, IID_Player, {
| 179|    |-	GetName: function() { return "Player 2"; },
|    | 179|+	"GetName": function() { return "Player 2"; },
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181| 181| 	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCiv' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 177| 177| 
| 178| 178| AddMock(101, IID_Player, {
| 179| 179| 	GetName: function() { return "Player 2"; },
| 180|    |-	GetCiv: function() { return "mace"; },
|    | 180|+	"GetCiv": function() { return "mace"; },
| 181| 181| 	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetColor' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 178| 178| AddMock(101, IID_Player, {
| 179| 179| 	GetName: function() { return "Player 2"; },
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 181|+	"GetColor": function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'r' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 178| 178| AddMock(101, IID_Player, {
| 179| 179| 	GetName: function() { return "Player 2"; },
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 181|+	GetColor: function() { return { "r": 1, g: 0, b: 0, a: 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'g' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 178| 178| AddMock(101, IID_Player, {
| 179| 179| 	GetName: function() { return "Player 2"; },
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 181|+	GetColor: function() { return { r: 1, "g": 0, b: 0, a: 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'b' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 178| 178| AddMock(101, IID_Player, {
| 179| 179| 	GetName: function() { return "Player 2"; },
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 181|+	GetColor: function() { return { r: 1, g: 0, "b": 0, a: 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'a' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 178| 178| AddMock(101, IID_Player, {
| 179| 179| 	GetName: function() { return "Player 2"; },
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 181|+	GetColor: function() { return { r: 1, g: 0, b: 0, "a": 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 178| 178| AddMock(101, IID_Player, {
| 179| 179| 	GetName: function() { return "Player 2"; },
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 181|+	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1 }; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'CanControlAllUnits' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 179| 179| 	GetName: function() { return "Player 2"; },
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181| 181| 	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 182|    |-	CanControlAllUnits: function() { return true; },
|    | 182|+	"CanControlAllUnits": function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
| 185| 185| 	GetMaxPopulation: function() { return 300; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPopulationCount' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181| 181| 	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183|    |-	GetPopulationCount: function() { return 40; },
|    | 183|+	"GetPopulationCount": function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
| 185| 185| 	GetMaxPopulation: function() { return 300; },
| 186| 186| 	GetResourceCounts: function() { return { food: 200 }; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPopulationLimit' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 181| 181| 	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184|    |-	GetPopulationLimit: function() { return 30; },
|    | 184|+	"GetPopulationLimit": function() { return 30; },
| 185| 185| 	GetMaxPopulation: function() { return 300; },
| 186| 186| 	GetResourceCounts: function() { return { food: 200 }; },
| 187| 187| 	GetPanelEntities: function() { return []; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetMaxPopulation' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
| 185|    |-	GetMaxPopulation: function() { return 300; },
|    | 185|+	"GetMaxPopulation": function() { return 300; },
| 186| 186| 	GetResourceCounts: function() { return { food: 200 }; },
| 187| 187| 	GetPanelEntities: function() { return []; },
| 188| 188| 	IsTrainingBlocked: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetResourceCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
| 185| 185| 	GetMaxPopulation: function() { return 300; },
| 186|    |-	GetResourceCounts: function() { return { food: 200 }; },
|    | 186|+	"GetResourceCounts": function() { return { food: 200 }; },
| 187| 187| 	GetPanelEntities: function() { return []; },
| 188| 188| 	IsTrainingBlocked: function() { return false; },
| 189| 189| 	GetState: function() { return "active"; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'food' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
| 185| 185| 	GetMaxPopulation: function() { return 300; },
| 186|    |-	GetResourceCounts: function() { return { food: 200 }; },
|    | 186|+	GetResourceCounts: function() { return { "food": 200 }; },
| 187| 187| 	GetPanelEntities: function() { return []; },
| 188| 188| 	IsTrainingBlocked: function() { return false; },
| 189| 189| 	GetState: function() { return "active"; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPanelEntities' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 184| 184| 	GetPopulationLimit: function() { return 30; },
| 185| 185| 	GetMaxPopulation: function() { return 300; },
| 186| 186| 	GetResourceCounts: function() { return { food: 200 }; },
| 187|    |-	GetPanelEntities: function() { return []; },
|    | 187|+	"GetPanelEntities": function() { return []; },
| 188| 188| 	IsTrainingBlocked: function() { return false; },
| 189| 189| 	GetState: function() { return "active"; },
| 190| 190| 	GetTeam: function() { return -1; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsTrainingBlocked' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 185| 185| 	GetMaxPopulation: function() { return 300; },
| 186| 186| 	GetResourceCounts: function() { return { food: 200 }; },
| 187| 187| 	GetPanelEntities: function() { return []; },
| 188|    |-	IsTrainingBlocked: function() { return false; },
|    | 188|+	"IsTrainingBlocked": function() { return false; },
| 189| 189| 	GetState: function() { return "active"; },
| 190| 190| 	GetTeam: function() { return -1; },
| 191| 191| 	GetLockTeams: function() {return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetState' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 186| 186| 	GetResourceCounts: function() { return { food: 200 }; },
| 187| 187| 	GetPanelEntities: function() { return []; },
| 188| 188| 	IsTrainingBlocked: function() { return false; },
| 189|    |-	GetState: function() { return "active"; },
|    | 189|+	"GetState": function() { return "active"; },
| 190| 190| 	GetTeam: function() { return -1; },
| 191| 191| 	GetLockTeams: function() {return false; },
| 192| 192| 	GetCheatsEnabled: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetTeam' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 187| 187| 	GetPanelEntities: function() { return []; },
| 188| 188| 	IsTrainingBlocked: function() { return false; },
| 189| 189| 	GetState: function() { return "active"; },
| 190|    |-	GetTeam: function() { return -1; },
|    | 190|+	"GetTeam": function() { return -1; },
| 191| 191| 	GetLockTeams: function() {return false; },
| 192| 192| 	GetCheatsEnabled: function() { return false; },
| 193| 193| 	GetDiplomacy: function() { return [-1, 1]; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLockTeams' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 188| 188| 	IsTrainingBlocked: function() { return false; },
| 189| 189| 	GetState: function() { return "active"; },
| 190| 190| 	GetTeam: function() { return -1; },
| 191|    |-	GetLockTeams: function() {return false; },
|    | 191|+	"GetLockTeams": function() {return false; },
| 192| 192| 	GetCheatsEnabled: function() { return false; },
| 193| 193| 	GetDiplomacy: function() { return [-1, 1]; },
| 194| 194| 	IsAlly: function() { return true; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCheatsEnabled' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 189| 189| 	GetState: function() { return "active"; },
| 190| 190| 	GetTeam: function() { return -1; },
| 191| 191| 	GetLockTeams: function() {return false; },
| 192|    |-	GetCheatsEnabled: function() { return false; },
|    | 192|+	"GetCheatsEnabled": function() { return false; },
| 193| 193| 	GetDiplomacy: function() { return [-1, 1]; },
| 194| 194| 	IsAlly: function() { return true; },
| 195| 195| 	IsMutualAlly: function() {return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetDiplomacy' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 190| 190| 	GetTeam: function() { return -1; },
| 191| 191| 	GetLockTeams: function() {return false; },
| 192| 192| 	GetCheatsEnabled: function() { return false; },
| 193|    |-	GetDiplomacy: function() { return [-1, 1]; },
|    | 193|+	"GetDiplomacy": function() { return [-1, 1]; },
| 194| 194| 	IsAlly: function() { return true; },
| 195| 195| 	IsMutualAlly: function() {return false; },
| 196| 196| 	IsNeutral: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsAlly' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 191| 191| 	GetLockTeams: function() {return false; },
| 192| 192| 	GetCheatsEnabled: function() { return false; },
| 193| 193| 	GetDiplomacy: function() { return [-1, 1]; },
| 194|    |-	IsAlly: function() { return true; },
|    | 194|+	"IsAlly": function() { return true; },
| 195| 195| 	IsMutualAlly: function() {return false; },
| 196| 196| 	IsNeutral: function() { return false; },
| 197| 197| 	IsEnemy: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsMutualAlly' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 192| 192| 	GetCheatsEnabled: function() { return false; },
| 193| 193| 	GetDiplomacy: function() { return [-1, 1]; },
| 194| 194| 	IsAlly: function() { return true; },
| 195|    |-	IsMutualAlly: function() {return false; },
|    | 195|+	"IsMutualAlly": function() {return false; },
| 196| 196| 	IsNeutral: function() { return false; },
| 197| 197| 	IsEnemy: function() { return false; },
| 198| 198| 	GetDisabledTemplates: function() { return {}; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsNeutral' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 193| 193| 	GetDiplomacy: function() { return [-1, 1]; },
| 194| 194| 	IsAlly: function() { return true; },
| 195| 195| 	IsMutualAlly: function() {return false; },
| 196|    |-	IsNeutral: function() { return false; },
|    | 196|+	"IsNeutral": function() { return false; },
| 197| 197| 	IsEnemy: function() { return false; },
| 198| 198| 	GetDisabledTemplates: function() { return {}; },
| 199| 199| 	GetDisabledTechnologies: function() { return {}; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsEnemy' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 194| 194| 	IsAlly: function() { return true; },
| 195| 195| 	IsMutualAlly: function() {return false; },
| 196| 196| 	IsNeutral: function() { return false; },
| 197|    |-	IsEnemy: function() { return false; },
|    | 197|+	"IsEnemy": function() { return false; },
| 198| 198| 	GetDisabledTemplates: function() { return {}; },
| 199| 199| 	GetDisabledTechnologies: function() { return {}; },
| 200| 200| 	GetSpyCostMultiplier: function() { return 1; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetDisabledTemplates' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 195| 195| 	IsMutualAlly: function() {return false; },
| 196| 196| 	IsNeutral: function() { return false; },
| 197| 197| 	IsEnemy: function() { return false; },
| 198|    |-	GetDisabledTemplates: function() { return {}; },
|    | 198|+	"GetDisabledTemplates": function() { return {}; },
| 199| 199| 	GetDisabledTechnologies: function() { return {}; },
| 200| 200| 	GetSpyCostMultiplier: function() { return 1; },
| 201| 201| 	HasSharedDropsites: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetDisabledTechnologies' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 196| 196| 	IsNeutral: function() { return false; },
| 197| 197| 	IsEnemy: function() { return false; },
| 198| 198| 	GetDisabledTemplates: function() { return {}; },
| 199|    |-	GetDisabledTechnologies: function() { return {}; },
|    | 199|+	"GetDisabledTechnologies": function() { return {}; },
| 200| 200| 	GetSpyCostMultiplier: function() { return 1; },
| 201| 201| 	HasSharedDropsites: function() { return false; },
| 202| 202| 	HasSharedLos: function() { return false; }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetSpyCostMultiplier' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 197| 197| 	IsEnemy: function() { return false; },
| 198| 198| 	GetDisabledTemplates: function() { return {}; },
| 199| 199| 	GetDisabledTechnologies: function() { return {}; },
| 200|    |-	GetSpyCostMultiplier: function() { return 1; },
|    | 200|+	"GetSpyCostMultiplier": function() { return 1; },
| 201| 201| 	HasSharedDropsites: function() { return false; },
| 202| 202| 	HasSharedLos: function() { return false; }
| 203| 203| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'HasSharedDropsites' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 198| 198| 	GetDisabledTemplates: function() { return {}; },
| 199| 199| 	GetDisabledTechnologies: function() { return {}; },
| 200| 200| 	GetSpyCostMultiplier: function() { return 1; },
| 201|    |-	HasSharedDropsites: function() { return false; },
|    | 201|+	"HasSharedDropsites": function() { return false; },
| 202| 202| 	HasSharedLos: function() { return false; }
| 203| 203| });
| 204| 204| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'HasSharedLos' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 199| 199| 	GetDisabledTechnologies: function() { return {}; },
| 200| 200| 	GetSpyCostMultiplier: function() { return 1; },
| 201| 201| 	HasSharedDropsites: function() { return false; },
| 202|    |-	HasSharedLos: function() { return false; }
|    | 202|+	"HasSharedLos": function() { return false; }
| 203| 203| });
| 204| 204| 
| 205| 205| AddMock(101, IID_EntityLimits, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLimits' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 203| 203| });
| 204| 204| 
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206|    |-	GetLimits: function() { return {"Bar": 20}; },
|    | 206|+	"GetLimits": function() { return {"Bar": 20}; },
| 207| 207| 	GetCounts: function() { return {"Bar": 0}; },
| 208| 208| 	GetLimitChangers: function() {return {"Bar": {}}; }
| 209| 209| });
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 203| 203| });
| 204| 204| 
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206|    |-	GetLimits: function() { return {"Bar": 20}; },
|    | 206|+	GetLimits: function() { return { "Bar": 20}; },
| 207| 207| 	GetCounts: function() { return {"Bar": 0}; },
| 208| 208| 	GetLimitChangers: function() {return {"Bar": {}}; }
| 209| 209| });
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 203| 203| });
| 204| 204| 
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206|    |-	GetLimits: function() { return {"Bar": 20}; },
|    | 206|+	GetLimits: function() { return {"Bar": 20 }; },
| 207| 207| 	GetCounts: function() { return {"Bar": 0}; },
| 208| 208| 	GetLimitChangers: function() {return {"Bar": {}}; }
| 209| 209| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 204| 204| 
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206| 206| 	GetLimits: function() { return {"Bar": 20}; },
| 207|    |-	GetCounts: function() { return {"Bar": 0}; },
|    | 207|+	"GetCounts": function() { return {"Bar": 0}; },
| 208| 208| 	GetLimitChangers: function() {return {"Bar": {}}; }
| 209| 209| });
| 210| 210| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 204| 204| 
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206| 206| 	GetLimits: function() { return {"Bar": 20}; },
| 207|    |-	GetCounts: function() { return {"Bar": 0}; },
|    | 207|+	GetCounts: function() { return { "Bar": 0}; },
| 208| 208| 	GetLimitChangers: function() {return {"Bar": {}}; }
| 209| 209| });
| 210| 210| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 204| 204| 
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206| 206| 	GetLimits: function() { return {"Bar": 20}; },
| 207|    |-	GetCounts: function() { return {"Bar": 0}; },
|    | 207|+	GetCounts: function() { return {"Bar": 0 }; },
| 208| 208| 	GetLimitChangers: function() {return {"Bar": {}}; }
| 209| 209| });
| 210| 210| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLimitChangers' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206| 206| 	GetLimits: function() { return {"Bar": 20}; },
| 207| 207| 	GetCounts: function() { return {"Bar": 0}; },
| 208|    |-	GetLimitChangers: function() {return {"Bar": {}}; }
|    | 208|+	"GetLimitChangers": function() {return {"Bar": {}}; }
| 209| 209| });
| 210| 210| 
| 211| 211| AddMock(101, IID_TechnologyManager, {
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206| 206| 	GetLimits: function() { return {"Bar": 20}; },
| 207| 207| 	GetCounts: function() { return {"Bar": 0}; },
| 208|    |-	GetLimitChangers: function() {return {"Bar": {}}; }
|    | 208|+	GetLimitChangers: function() {return { "Bar": {}}; }
| 209| 209| });
| 210| 210| 
| 211| 211| AddMock(101, IID_TechnologyManager, {
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206| 206| 	GetLimits: function() { return {"Bar": 20}; },
| 207| 207| 	GetCounts: function() { return {"Bar": 0}; },
| 208|    |-	GetLimitChangers: function() {return {"Bar": {}}; }
|    | 208|+	GetLimitChangers: function() {return {"Bar": {} }; }
| 209| 209| });
| 210| 210| 
| 211| 211| AddMock(101, IID_TechnologyManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetBasicStatistics' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 218| 218| });
| 219| 219| 
| 220| 220| AddMock(101, IID_StatisticsTracker, {
| 221|    |-	GetBasicStatistics: function() {
|    | 221|+	"GetBasicStatistics": function() {
| 222| 222| 		return {
| 223| 223| 			"resourcesGathered": {
| 224| 224| 				"food": 100,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetSequences' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 230| 230| 			"percentMapExplored": 10
| 231| 231| 		};
| 232| 232| 	},
| 233|    |-	GetSequences: function() {
|    | 233|+	"GetSequences": function() {
| 234| 234| 		return {
| 235| 235| 			"unitsTrained": [0, 10],
| 236| 236| 			"unitsLost": [0, 9],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IncreaseTrainedUnitsCounter' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 255| 255| 			"teamPeakPercentOfMapControlled": [0, 10]
| 256| 256| 		};
| 257| 257| 	},
| 258|    |-	IncreaseTrainedUnitsCounter: function() { return 1; },
|    | 258|+	"IncreaseTrainedUnitsCounter": function() { return 1; },
| 259| 259| 	IncreaseConstructedBuildingsCounter: function() { return 1; },
| 260| 260| 	IncreaseBuiltCivCentresCounter: function() { return 1; }
| 261| 261| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IncreaseConstructedBuildingsCounter' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 256| 256| 		};
| 257| 257| 	},
| 258| 258| 	IncreaseTrainedUnitsCounter: function() { return 1; },
| 259|    |-	IncreaseConstructedBuildingsCounter: function() { return 1; },
|    | 259|+	"IncreaseConstructedBuildingsCounter": function() { return 1; },
| 260| 260| 	IncreaseBuiltCivCentresCounter: function() { return 1; }
| 261| 261| });
| 262| 262| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IncreaseBuiltCivCentresCounter' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 257| 257| 	},
| 258| 258| 	IncreaseTrainedUnitsCounter: function() { return 1; },
| 259| 259| 	IncreaseConstructedBuildingsCounter: function() { return 1; },
| 260|    |-	IncreaseBuiltCivCentresCounter: function() { return 1; }
|    | 260|+	"IncreaseBuiltCivCentresCounter": function() { return 1; }
| 261| 261| });
| 262| 262| 
| 263| 263| // Note: property order matters when using TS_ASSERT_UNEVAL_EQUALS,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'players' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 264| 264| //	because uneval preserves property order. So make sure this object
| 265| 265| //	matches the ordering in GuiInterface.
| 266| 266| TS_ASSERT_UNEVAL_EQUALS(cmp.GetSimulationState(), {
| 267|    |-	players: [
|    | 267|+	"players": [
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'name' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 266| 266| TS_ASSERT_UNEVAL_EQUALS(cmp.GetSimulationState(), {
| 267| 267| 	players: [
| 268| 268| 		{
| 269|    |-			name: "Player 1",
|    | 269|+			"name": "Player 1",
| 270| 270| 			civ: "gaia",
| 271| 271| 			color: { r:1, g:1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'civ' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 267| 267| 	players: [
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270|    |-			civ: "gaia",
|    | 270|+			"civ": "gaia",
| 271| 271| 			color: { r:1, g:1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'color' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			"color": { r:1, g:1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'r' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			color: { "r":1, g:1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'r'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			color: { r: 1, g:1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'g' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			color: { r:1, "g":1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'g'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			color: { r:1, g: 1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'b' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			color: { r:1, g:1, "b":1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'b'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			color: { r:1, g:1, b: 1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'a' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			color: { r:1, g:1, b:1, "a":1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'a'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			color: { r:1, g:1, b:1, a: 1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'controlsAll' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271| 271| 			color: { r:1, g:1, b:1, a:1 },
| 272|    |-			controlsAll: false,
|    | 272|+			"controlsAll": false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
| 275| 275| 			popMax: 200,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'popCount' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 270| 270| 			civ: "gaia",
| 271| 271| 			color: { r:1, g:1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
| 273|    |-			popCount: 10,
|    | 273|+			"popCount": 10,
| 274| 274| 			popLimit: 20,
| 275| 275| 			popMax: 200,
| 276| 276| 			panelEntities: [],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'popLimit' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 271| 271| 			color: { r:1, g:1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274|    |-			popLimit: 20,
|    | 274|+			"popLimit": 20,
| 275| 275| 			popMax: 200,
| 276| 276| 			panelEntities: [],
| 277| 277| 			resourceCounts: { food: 100 },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'popMax' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
| 275|    |-			popMax: 200,
|    | 275|+			"popMax": 200,
| 276| 276| 			panelEntities: [],
| 277| 277| 			resourceCounts: { food: 100 },
| 278| 278| 			trainingBlocked: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'panelEntities' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
| 275| 275| 			popMax: 200,
| 276|    |-			panelEntities: [],
|    | 276|+			"panelEntities": [],
| 277| 277| 			resourceCounts: { food: 100 },
| 278| 278| 			trainingBlocked: false,
| 279| 279| 			state: "active",
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'resourceCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 274| 274| 			popLimit: 20,
| 275| 275| 			popMax: 200,
| 276| 276| 			panelEntities: [],
| 277|    |-			resourceCounts: { food: 100 },
|    | 277|+			"resourceCounts": { food: 100 },
| 278| 278| 			trainingBlocked: false,
| 279| 279| 			state: "active",
| 280| 280| 			team: -1,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'food' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 274| 274| 			popLimit: 20,
| 275| 275| 			popMax: 200,
| 276| 276| 			panelEntities: [],
| 277|    |-			resourceCounts: { food: 100 },
|    | 277|+			resourceCounts: { "food": 100 },
| 278| 278| 			trainingBlocked: false,
| 279| 279| 			state: "active",
| 280| 280| 			team: -1,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'trainingBlocked' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 275| 275| 			popMax: 200,
| 276| 276| 			panelEntities: [],
| 277| 277| 			resourceCounts: { food: 100 },
| 278|    |-			trainingBlocked: false,
|    | 278|+			"trainingBlocked": false,
| 279| 279| 			state: "active",
| 280| 280| 			team: -1,
| 281| 281| 			teamsLocked: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'state' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 276| 276| 			panelEntities: [],
| 277| 277| 			resourceCounts: { food: 100 },
| 278| 278| 			trainingBlocked: false,
| 279|    |-			state: "active",
|    | 279|+			"state": "active",
| 280| 280| 			team: -1,
| 281| 281| 			teamsLocked: false,
| 282| 282| 			cheatsEnabled: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'team' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 277| 277| 			resourceCounts: { food: 100 },
| 278| 278| 			trainingBlocked: false,
| 279| 279| 			state: "active",
| 280|    |-			team: -1,
|    | 280|+			"team": -1,
| 281| 281| 			teamsLocked: false,
| 282| 282| 			cheatsEnabled: false,
| 283| 283| 			disabledTemplates: {},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'teamsLocked' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 278| 278| 			trainingBlocked: false,
| 279| 279| 			state: "active",
| 280| 280| 			team: -1,
| 281|    |-			teamsLocked: false,
|    | 281|+			"teamsLocked": false,
| 282| 282| 			cheatsEnabled: false,
| 283| 283| 			disabledTemplates: {},
| 284| 284| 			disabledTechnologies: {},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'cheatsEnabled' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 279| 279| 			state: "active",
| 280| 280| 			team: -1,
| 281| 281| 			teamsLocked: false,
| 282|    |-			cheatsEnabled: false,
|    | 282|+			"cheatsEnabled": false,
| 283| 283| 			disabledTemplates: {},
| 284| 284| 			disabledTechnologies: {},
| 285| 285| 			hasSharedDropsites: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'disabledTemplates' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 280| 280| 			team: -1,
| 281| 281| 			teamsLocked: false,
| 282| 282| 			cheatsEnabled: false,
| 283|    |-			disabledTemplates: {},
|    | 283|+			"disabledTemplates": {},
| 284| 284| 			disabledTechnologies: {},
| 285| 285| 			hasSharedDropsites: false,
| 286| 286| 			hasSharedLos: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'disabledTechnologies' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 281| 281| 			teamsLocked: false,
| 282| 282| 			cheatsEnabled: false,
| 283| 283| 			disabledTemplates: {},
| 284|    |-			disabledTechnologies: {},
|    | 284|+			"disabledTechnologies": {},
| 285| 285| 			hasSharedDropsites: false,
| 286| 286| 			hasSharedLos: false,
| 287| 287| 			spyCostMultiplier: 1,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'hasSharedDropsites' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 282| 282| 			cheatsEnabled: false,
| 283| 283| 			disabledTemplates: {},
| 284| 284| 			disabledTechnologies: {},
| 285|    |-			hasSharedDropsites: false,
|    | 285|+			"hasSharedDropsites": false,
| 286| 286| 			hasSharedLos: false,
| 287| 287| 			spyCostMultiplier: 1,
| 288| 288| 			phase: "village",
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'hasSharedLos' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 283| 283| 			disabledTemplates: {},
| 284| 284| 			disabledTechnologies: {},
| 285| 285| 			hasSharedDropsites: false,
| 286|    |-			hasSharedLos: false,
|    | 286|+			"hasSharedLos": false,
| 287| 287| 			spyCostMultiplier: 1,
| 288| 288| 			phase: "village",
| 289| 289| 			isAlly: [false, false],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'spyCostMultiplier' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 284| 284| 			disabledTechnologies: {},
| 285| 285| 			hasSharedDropsites: false,
| 286| 286| 			hasSharedLos: false,
| 287|    |-			spyCostMultiplier: 1,
|    | 287|+			"spyCostMultiplier": 1,
| 288| 288| 			phase: "village",
| 289| 289| 			isAlly: [false, false],
| 290| 290| 			isMutualAlly: [false, false],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'phase' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 285| 285| 			hasSharedDropsites: false,
| 286| 286| 			hasSharedLos: false,
| 287| 287| 			spyCostMultiplier: 1,
| 288|    |-			phase: "village",
|    | 288|+			"phase": "village",
| 289| 289| 			isAlly: [false, false],
| 290| 290| 			isMutualAlly: [false, false],
| 291| 291| 			isNeutral: [false, false],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'isAlly' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 286| 286| 			hasSharedLos: false,
| 287| 287| 			spyCostMultiplier: 1,
| 288| 288| 			phase: "village",
| 289|    |-			isAlly: [false, false],
|    | 289|+			"isAlly": [false, false],
| 290| 290| 			isMutualAlly: [false, false],
| 291| 291| 			isNeutral: [false, false],
| 292| 292| 			isEnemy: [true, true],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'isMutualAlly' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 287| 287| 			spyCostMultiplier: 1,
| 288| 288| 			phase: "village",
| 289| 289| 			isAlly: [false, false],
| 290|    |-			isMutualAlly: [false, false],
|    | 290|+			"isMutualAlly": [false, false],
| 291| 291| 			isNeutral: [false, false],
| 292| 292| 			isEnemy: [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'isNeutral' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 288| 288| 			phase: "village",
| 289| 289| 			isAlly: [false, false],
| 290| 290| 			isMutualAlly: [false, false],
| 291|    |-			isNeutral: [false, false],
|    | 291|+			"isNeutral": [false, false],
| 292| 292| 			isEnemy: [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
| 294| 294| 			entityCounts: {"Foo": 5},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'isEnemy' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 289| 289| 			isAlly: [false, false],
| 290| 290| 			isMutualAlly: [false, false],
| 291| 291| 			isNeutral: [false, false],
| 292|    |-			isEnemy: [true, true],
|    | 292|+			"isEnemy": [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
| 294| 294| 			entityCounts: {"Foo": 5},
| 295| 295| 			entityLimitChangers: {"Foo": {}},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'entityLimits' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 290| 290| 			isMutualAlly: [false, false],
| 291| 291| 			isNeutral: [false, false],
| 292| 292| 			isEnemy: [true, true],
| 293|    |-			entityLimits: {"Foo": 10},
|    | 293|+			"entityLimits": {"Foo": 10},
| 294| 294| 			entityCounts: {"Foo": 5},
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 290| 290| 			isMutualAlly: [false, false],
| 291| 291| 			isNeutral: [false, false],
| 292| 292| 			isEnemy: [true, true],
| 293|    |-			entityLimits: {"Foo": 10},
|    | 293|+			entityLimits: { "Foo": 10},
| 294| 294| 			entityCounts: {"Foo": 5},
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 290| 290| 			isMutualAlly: [false, false],
| 291| 291| 			isNeutral: [false, false],
| 292| 292| 			isEnemy: [true, true],
| 293|    |-			entityLimits: {"Foo": 10},
|    | 293|+			entityLimits: {"Foo": 10 },
| 294| 294| 			entityCounts: {"Foo": 5},
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'entityCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 291| 291| 			isNeutral: [false, false],
| 292| 292| 			isEnemy: [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
| 294|    |-			entityCounts: {"Foo": 5},
|    | 294|+			"entityCounts": {"Foo": 5},
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
| 297| 297| 			researchStarted: new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 291| 291| 			isNeutral: [false, false],
| 292| 292| 			isEnemy: [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
| 294|    |-			entityCounts: {"Foo": 5},
|    | 294|+			entityCounts: { "Foo": 5},
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
| 297| 297| 			researchStarted: new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 291| 291| 			isNeutral: [false, false],
| 292| 292| 			isEnemy: [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
| 294|    |-			entityCounts: {"Foo": 5},
|    | 294|+			entityCounts: {"Foo": 5 },
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
| 297| 297| 			researchStarted: new Set(),
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'entityLimitChangers' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 292| 292| 			isEnemy: [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
| 294| 294| 			entityCounts: {"Foo": 5},
| 295|    |-			entityLimitChangers: {"Foo": {}},
|    | 295|+			"entityLimitChangers": {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
| 297| 297| 			researchStarted: new Set(),
| 298| 298| 			researchedTechs: new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 292| 292| 			isEnemy: [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
| 294| 294| 			entityCounts: {"Foo": 5},
| 295|    |-			entityLimitChangers: {"Foo": {}},
|    | 295|+			entityLimitChangers: { "Foo": {}},
| 296| 296| 			researchQueued: new Map(),
| 297| 297| 			researchStarted: new Set(),
| 298| 298| 			researchedTechs: new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 292| 292| 			isEnemy: [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
| 294| 294| 			entityCounts: {"Foo": 5},
| 295|    |-			entityLimitChangers: {"Foo": {}},
|    | 295|+			entityLimitChangers: {"Foo": {} },
| 296| 296| 			researchQueued: new Map(),
| 297| 297| 			researchStarted: new Set(),
| 298| 298| 			researchedTechs: new Set(),
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'researchQueued' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 293| 293| 			entityLimits: {"Foo": 10},
| 294| 294| 			entityCounts: {"Foo": 5},
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296|    |-			researchQueued: new Map(),
|    | 296|+			"researchQueued": new Map(),
| 297| 297| 			researchStarted: new Set(),
| 298| 298| 			researchedTechs: new Set(),
| 299| 299| 			classCounts: {},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'researchStarted' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 294| 294| 			entityCounts: {"Foo": 5},
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
| 297|    |-			researchStarted: new Set(),
|    | 297|+			"researchStarted": new Set(),
| 298| 298| 			researchedTechs: new Set(),
| 299| 299| 			classCounts: {},
| 300| 300| 			typeCountsByClass: {},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'researchedTechs' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
| 297| 297| 			researchStarted: new Set(),
| 298|    |-			researchedTechs: new Set(),
|    | 298|+			"researchedTechs": new Set(),
| 299| 299| 			classCounts: {},
| 300| 300| 			typeCountsByClass: {},
| 301| 301| 			canBarter: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'classCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 296| 296| 			researchQueued: new Map(),
| 297| 297| 			researchStarted: new Set(),
| 298| 298| 			researchedTechs: new Set(),
| 299|    |-			classCounts: {},
|    | 299|+			"classCounts": {},
| 300| 300| 			typeCountsByClass: {},
| 301| 301| 			canBarter: false,
| 302| 302| 			barterPrices: {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'typeCountsByClass' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 297| 297| 			researchStarted: new Set(),
| 298| 298| 			researchedTechs: new Set(),
| 299| 299| 			classCounts: {},
| 300|    |-			typeCountsByClass: {},
|    | 300|+			"typeCountsByClass": {},
| 301| 301| 			canBarter: false,
| 302| 302| 			barterPrices: {
| 303| 303| 				"buy": { "food": 150 },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'canBarter' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 298| 298| 			researchedTechs: new Set(),
| 299| 299| 			classCounts: {},
| 300| 300| 			typeCountsByClass: {},
| 301|    |-			canBarter: false,
|    | 301|+			"canBarter": false,
| 302| 302| 			barterPrices: {
| 303| 303| 				"buy": { "food": 150 },
| 304| 304| 				"sell": { "food": 25 }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'barterPrices' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 299| 299| 			classCounts: {},
| 300| 300| 			typeCountsByClass: {},
| 301| 301| 			canBarter: false,
| 302|    |-			barterPrices: {
|    | 302|+			"barterPrices": {
| 303| 303| 				"buy": { "food": 150 },
| 304| 304| 				"sell": { "food": 25 }
| 305| 305| 			},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'statistics' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 303| 303| 				"buy": { "food": 150 },
| 304| 304| 				"sell": { "food": 25 }
| 305| 305| 			},
| 306|    |-			statistics: {
|    | 306|+			"statistics": {
| 307| 307| 				resourcesGathered: {
| 308| 308| 					food: 100,
| 309| 309| 					wood: 0,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'resourcesGathered' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 304| 304| 				"sell": { "food": 25 }
| 305| 305| 			},
| 306| 306| 			statistics: {
| 307|    |-				resourcesGathered: {
|    | 307|+				"resourcesGathered": {
| 308| 308| 					food: 100,
| 309| 309| 					wood: 0,
| 310| 310| 					metal: 0,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'food' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 305| 305| 			},
| 306| 306| 			statistics: {
| 307| 307| 				resourcesGathered: {
| 308|    |-					food: 100,
|    | 308|+					"food": 100,
| 309| 309| 					wood: 0,
| 310| 310| 					metal: 0,
| 311| 311| 					stone: 0,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'wood' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 306| 306| 			statistics: {
| 307| 307| 				resourcesGathered: {
| 308| 308| 					food: 100,
| 309|    |-					wood: 0,
|    | 309|+					"wood": 0,
| 310| 310| 					metal: 0,
| 311| 311| 					stone: 0,
| 312| 312| 					vegetarianFood: 0
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'metal' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 307| 307| 				resourcesGathered: {
| 308| 308| 					food: 100,
| 309| 309| 					wood: 0,
| 310|    |-					metal: 0,
|    | 310|+					"metal": 0,
| 311| 311| 					stone: 0,
| 312| 312| 					vegetarianFood: 0
| 313| 313| 				},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'stone' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 308| 308| 					food: 100,
| 309| 309| 					wood: 0,
| 310| 310| 					metal: 0,
| 311|    |-					stone: 0,
|    | 311|+					"stone": 0,
| 312| 312| 					vegetarianFood: 0
| 313| 313| 				},
| 314| 314| 				percentMapExplored: 10
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'vegetarianFood' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 309| 309| 					wood: 0,
| 310| 310| 					metal: 0,
| 311| 311| 					stone: 0,
| 312|    |-					vegetarianFood: 0
|    | 312|+					"vegetarianFood": 0
| 313| 313| 				},
| 314| 314| 				percentMapExplored: 10
| 315| 315| 			}
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'percentMapExplored' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 311| 311| 					stone: 0,
| 312| 312| 					vegetarianFood: 0
| 313| 313| 				},
| 314|    |-				percentMapExplored: 10
|    | 314|+				"percentMapExplored": 10
| 315| 315| 			}
| 316| 316| 		},
| 317| 317| 		{
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'name' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 315| 315| 			}
| 316| 316| 		},
| 317| 317| 		{
| 318|    |-			name: "Player 2",
|    | 318|+			"name": "Player 2",
| 319| 319| 			civ: "mace",
| 320| 320| 			color: { r:1, g:0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'civ' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 316| 316| 		},
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319|    |-			civ: "mace",
|    | 319|+			"civ": "mace",
| 320| 320| 			color: { r:1, g:0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'color' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			"color": { r:1, g:0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'r' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			color: { "r":1, g:0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'r'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			color: { r: 1, g:0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'g' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			color: { r:1, "g":0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'g'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			color: { r:1, g: 0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'b' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			color: { r:1, g:0, "b":0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'b'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			color: { r:1, g:0, b: 0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'a' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			color: { r:1, g:0, b:0, "a":1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'a'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			color: { r:1, g:0, b:0, a: 1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'controlsAll' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320| 320| 			color: { r:1, g:0, b:0, a:1 },
| 321|    |-			controlsAll: true,
|    | 321|+			"controlsAll": true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
| 324| 324| 			popMax: 300,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'popCount' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 319| 319| 			civ: "mace",
| 320| 320| 			color: { r:1, g:0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
| 322|    |-			popCount: 40,
|    | 322|+			"popCount": 40,
| 323| 323| 			popLimit: 30,
| 324| 324| 			popMax: 300,
| 325| 325| 			panelEntities: [],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'popLimit' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 320| 320| 			color: { r:1, g:0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323|    |-			popLimit: 30,
|    | 323|+			"popLimit": 30,
| 324| 324| 			popMax: 300,
| 325| 325| 			panelEntities: [],
| 326| 326| 			resourceCounts: { food: 200 },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'popMax' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
| 324|    |-			popMax: 300,
|    | 324|+			"popMax": 300,
| 325| 325| 			panelEntities: [],
| 326| 326| 			resourceCounts: { food: 200 },
| 327| 327| 			trainingBlocked: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'panelEntities' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
| 324| 324| 			popMax: 300,
| 325|    |-			panelEntities: [],
|    | 325|+			"panelEntities": [],
| 326| 326| 			resourceCounts: { food: 200 },
| 327| 327| 			trainingBlocked: false,
| 328| 328| 			state: "active",
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'resourceCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 323| 323| 			popLimit: 30,
| 324| 324| 			popMax: 300,
| 325| 325| 			panelEntities: [],
| 326|    |-			resourceCounts: { food: 200 },
|    | 326|+			"resourceCounts": { food: 200 },
| 327| 327| 			trainingBlocked: false,
| 328| 328| 			state: "active",
| 329| 329| 			team: -1,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'food' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 323| 323| 			popLimit: 30,
| 324| 324| 			popMax: 300,
| 325| 325| 			panelEntities: [],
| 326|    |-			resourceCounts: { food: 200 },
|    | 326|+			resourceCounts: { "food": 200 },
| 327| 327| 			trainingBlocked: false,
| 328| 328| 			state: "active",
| 329| 329| 			team: -1,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'trainingBlocked' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 324| 324| 			popMax: 300,
| 325| 325| 			panelEntities: [],
| 326| 326| 			resourceCounts: { food: 200 },
| 327|    |-			trainingBlocked: false,
|    | 327|+			"trainingBlocked": false,
| 328| 328| 			state: "active",
| 329| 329| 			team: -1,
| 330| 330| 			teamsLocked: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'state' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 325| 325| 			panelEntities: [],
| 326| 326| 			resourceCounts: { food: 200 },
| 327| 327| 			trainingBlocked: false,
| 328|    |-			state: "active",
|    | 328|+			"state": "active",
| 329| 329| 			team: -1,
| 330| 330| 			teamsLocked: false,
| 331| 331| 			cheatsEnabled: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'team' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 326| 326| 			resourceCounts: { food: 200 },
| 327| 327| 			trainingBlocked: false,
| 328| 328| 			state: "active",
| 329|    |-			team: -1,
|    | 329|+			"team": -1,
| 330| 330| 			teamsLocked: false,
| 331| 331| 			cheatsEnabled: false,
| 332| 332| 			disabledTemplates: {},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'teamsLocked' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 327| 327| 			trainingBlocked: false,
| 328| 328| 			state: "active",
| 329| 329| 			team: -1,
| 330|    |-			teamsLocked: false,
|    | 330|+			"teamsLocked": false,
| 331| 331| 			cheatsEnabled: false,
| 332| 332| 			disabledTemplates: {},
| 333| 333| 			disabledTechnologies: {},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'cheatsEnabled' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 328| 328| 			state: "active",
| 329| 329| 			team: -1,
| 330| 330| 			teamsLocked: false,
| 331|    |-			cheatsEnabled: false,
|    | 331|+			"cheatsEnabled": false,
| 332| 332| 			disabledTemplates: {},
| 333| 333| 			disabledTechnologies: {},
| 334| 334| 			hasSharedDropsites: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'disabledTemplates' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 329| 329| 			team: -1,
| 330| 330| 			teamsLocked: false,
| 331| 331| 			cheatsEnabled: false,
| 332|    |-			disabledTemplates: {},
|    | 332|+			"disabledTemplates": {},
| 333| 333| 			disabledTechnologies: {},
| 334| 334| 			hasSharedDropsites: false,
| 335| 335| 			hasSharedLos: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'disabledTechnologies' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 330| 330| 			teamsLocked: false,
| 331| 331| 			cheatsEnabled: false,
| 332| 332| 			disabledTemplates: {},
| 333|    |-			disabledTechnologies: {},
|    | 333|+			"disabledTechnologies": {},
| 334| 334| 			hasSharedDropsites: false,
| 335| 335| 			hasSharedLos: false,
| 336| 336| 			spyCostMultiplier: 1,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'hasSharedDropsites' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 331| 331| 			cheatsEnabled: false,
| 332| 332| 			disabledTemplates: {},
| 333| 333| 			disabledTechnologies: {},
| 334|    |-			hasSharedDropsites: false,
|    | 334|+			"hasSharedDropsites": false,
| 335| 335| 			hasSharedLos: false,
| 336| 336| 			spyCostMultiplier: 1,
| 337| 337| 			phase: "village",
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'hasSharedLos' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 332| 332| 			disabledTemplates: {},
| 333| 333| 			disabledTechnologies: {},
| 334| 334| 			hasSharedDropsites: false,
| 335|    |-			hasSharedLos: false,
|    | 335|+			"hasSharedLos": false,
| 336| 336| 			spyCostMultiplier: 1,
| 337| 337| 			phase: "village",
| 338| 338| 			isAlly: [true, true],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'spyCostMultiplier' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 333| 333| 			disabledTechnologies: {},
| 334| 334| 			hasSharedDropsites: false,
| 335| 335| 			hasSharedLos: false,
| 336|    |-			spyCostMultiplier: 1,
|    | 336|+			"spyCostMultiplier": 1,
| 337| 337| 			phase: "village",
| 338| 338| 			isAlly: [true, true],
| 339| 339| 			isMutualAlly: [false, false],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'phase' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 334| 334| 			hasSharedDropsites: false,
| 335| 335| 			hasSharedLos: false,
| 336| 336| 			spyCostMultiplier: 1,
| 337|    |-			phase: "village",
|    | 337|+			"phase": "village",
| 338| 338| 			isAlly: [true, true],
| 339| 339| 			isMutualAlly: [false, false],
| 340| 340| 			isNeutral: [false, false],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'isAlly' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 335| 335| 			hasSharedLos: false,
| 336| 336| 			spyCostMultiplier: 1,
| 337| 337| 			phase: "village",
| 338|    |-			isAlly: [true, true],
|    | 338|+			"isAlly": [true, true],
| 339| 339| 			isMutualAlly: [false, false],
| 340| 340| 			isNeutral: [false, false],
| 341| 341| 			isEnemy: [false, false],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'isMutualAlly' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 336| 336| 			spyCostMultiplier: 1,
| 337| 337| 			phase: "village",
| 338| 338| 			isAlly: [true, true],
| 339|    |-			isMutualAlly: [false, false],
|    | 339|+			"isMutualAlly": [false, false],
| 340| 340| 			isNeutral: [false, false],
| 341| 341| 			isEnemy: [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'isNeutral' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 337| 337| 			phase: "village",
| 338| 338| 			isAlly: [true, true],
| 339| 339| 			isMutualAlly: [false, false],
| 340|    |-			isNeutral: [false, false],
|    | 340|+			"isNeutral": [false, false],
| 341| 341| 			isEnemy: [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
| 343| 343| 			entityCounts: {"Bar": 0},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'isEnemy' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 338| 338| 			isAlly: [true, true],
| 339| 339| 			isMutualAlly: [false, false],
| 340| 340| 			isNeutral: [false, false],
| 341|    |-			isEnemy: [false, false],
|    | 341|+			"isEnemy": [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
| 343| 343| 			entityCounts: {"Bar": 0},
| 344| 344| 			entityLimitChangers: {"Bar": {}},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'entityLimits' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 339| 339| 			isMutualAlly: [false, false],
| 340| 340| 			isNeutral: [false, false],
| 341| 341| 			isEnemy: [false, false],
| 342|    |-			entityLimits: {"Bar": 20},
|    | 342|+			"entityLimits": {"Bar": 20},
| 343| 343| 			entityCounts: {"Bar": 0},
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 339| 339| 			isMutualAlly: [false, false],
| 340| 340| 			isNeutral: [false, false],
| 341| 341| 			isEnemy: [false, false],
| 342|    |-			entityLimits: {"Bar": 20},
|    | 342|+			entityLimits: { "Bar": 20},
| 343| 343| 			entityCounts: {"Bar": 0},
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 339| 339| 			isMutualAlly: [false, false],
| 340| 340| 			isNeutral: [false, false],
| 341| 341| 			isEnemy: [false, false],
| 342|    |-			entityLimits: {"Bar": 20},
|    | 342|+			entityLimits: {"Bar": 20 },
| 343| 343| 			entityCounts: {"Bar": 0},
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'entityCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 340| 340| 			isNeutral: [false, false],
| 341| 341| 			isEnemy: [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
| 343|    |-			entityCounts: {"Bar": 0},
|    | 343|+			"entityCounts": {"Bar": 0},
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
| 346| 346| 			researchStarted: new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 340| 340| 			isNeutral: [false, false],
| 341| 341| 			isEnemy: [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
| 343|    |-			entityCounts: {"Bar": 0},
|    | 343|+			entityCounts: { "Bar": 0},
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
| 346| 346| 			researchStarted: new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 340| 340| 			isNeutral: [false, false],
| 341| 341| 			isEnemy: [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
| 343|    |-			entityCounts: {"Bar": 0},
|    | 343|+			entityCounts: {"Bar": 0 },
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
| 346| 346| 			researchStarted: new Set(),
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'entityLimitChangers' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 341| 341| 			isEnemy: [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
| 343| 343| 			entityCounts: {"Bar": 0},
| 344|    |-			entityLimitChangers: {"Bar": {}},
|    | 344|+			"entityLimitChangers": {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
| 346| 346| 			researchStarted: new Set(),
| 347| 347| 			researchedTechs: new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 341| 341| 			isEnemy: [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
| 343| 343| 			entityCounts: {"Bar": 0},
| 344|    |-			entityLimitChangers: {"Bar": {}},
|    | 344|+			entityLimitChangers: { "Bar": {}},
| 345| 345| 			researchQueued: new Map(),
| 346| 346| 			researchStarted: new Set(),
| 347| 347| 			researchedTechs: new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 341| 341| 			isEnemy: [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
| 343| 343| 			entityCounts: {"Bar": 0},
| 344|    |-			entityLimitChangers: {"Bar": {}},
|    | 344|+			entityLimitChangers: {"Bar": {} },
| 345| 345| 			researchQueued: new Map(),
| 346| 346| 			researchStarted: new Set(),
| 347| 347| 			researchedTechs: new Set(),
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'researchQueued' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 342| 342| 			entityLimits: {"Bar": 20},
| 343| 343| 			entityCounts: {"Bar": 0},
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345|    |-			researchQueued: new Map(),
|    | 345|+			"researchQueued": new Map(),
| 346| 346| 			researchStarted: new Set(),
| 347| 347| 			researchedTechs: new Set(),
| 348| 348| 			classCounts: {},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'researchStarted' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 343| 343| 			entityCounts: {"Bar": 0},
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
| 346|    |-			researchStarted: new Set(),
|    | 346|+			"researchStarted": new Set(),
| 347| 347| 			researchedTechs: new Set(),
| 348| 348| 			classCounts: {},
| 349| 349| 			typeCountsByClass: {},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'researchedTechs' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
| 346| 346| 			researchStarted: new Set(),
| 347|    |-			researchedTechs: new Set(),
|    | 347|+			"researchedTechs": new Set(),
| 348| 348| 			classCounts: {},
| 349| 349| 			typeCountsByClass: {},
| 350| 350| 			canBarter: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'classCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 345| 345| 			researchQueued: new Map(),
| 346| 346| 			researchStarted: new Set(),
| 347| 347| 			researchedTechs: new Set(),
| 348|    |-			classCounts: {},
|    | 348|+			"classCounts": {},
| 349| 349| 			typeCountsByClass: {},
| 350| 350| 			canBarter: false,
| 351| 351| 			barterPrices: {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'typeCountsByClass' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 346| 346| 			researchStarted: new Set(),
| 347| 347| 			researchedTechs: new Set(),
| 348| 348| 			classCounts: {},
| 349|    |-			typeCountsByClass: {},
|    | 349|+			"typeCountsByClass": {},
| 350| 350| 			canBarter: false,
| 351| 351| 			barterPrices: {
| 352| 352| 				"buy": { "food": 150 },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'canBarter' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 347| 347| 			researchedTechs: new Set(),
| 348| 348| 			classCounts: {},
| 349| 349| 			typeCountsByClass: {},
| 350|    |-			canBarter: false,
|    | 350|+			"canBarter": false,
| 351| 351| 			barterPrices: {
| 352| 352| 				"buy": { "food": 150 },
| 353| 353| 				"sell": { "food": 25 }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'barterPrices' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 348| 348| 			classCounts: {},
| 349| 349| 			typeCountsByClass: {},
| 350| 350| 			canBarter: false,
| 351|    |-			barterPrices: {
|    | 351|+			"barterPrices": {
| 352| 352| 				"buy": { "food": 150 },
| 353| 353| 				"sell": { "food": 25 }
| 354| 354| 			},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'statistics' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 352| 352| 				"buy": { "food": 150 },
| 353| 353| 				"sell": { "food": 25 }
| 354| 354| 			},
| 355|    |-			statistics: {
|    | 355|+			"statistics": {
| 356| 356| 				resourcesGathered: {
| 357| 357| 					food: 100,
| 358| 358| 					wood: 0,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'resourcesGathered' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 353| 353| 				"sell": { "food": 25 }
| 354| 354| 			},
| 355| 355| 			statistics: {
| 356|    |-				resourcesGathered: {
|    | 356|+				"resourcesGathered": {
| 357| 357| 					food: 100,
| 358| 358| 					wood: 0,
| 359| 359| 					metal: 0,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'food' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 354| 354| 			},
| 355| 355| 			statistics: {
| 356| 356| 				resourcesGathered: {
| 357|    |-					food: 100,
|    | 357|+					"food": 100,
| 358| 358| 					wood: 0,
| 359| 359| 					metal: 0,
| 360| 360| 					stone: 0,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'wood' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 355| 355| 			statistics: {
| 356| 356| 				resourcesGathered: {
| 357| 357| 					food: 100,
| 358|    |-					wood: 0,
|    | 358|+					"wood": 0,
| 359| 359| 					metal: 0,
| 360| 360| 					stone: 0,
| 361| 361| 					vegetarianFood: 0
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'metal' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 356| 356| 				resourcesGathered: {
| 357| 357| 					food: 100,
| 358| 358| 					wood: 0,
| 359|    |-					metal: 0,
|    | 359|+					"metal": 0,
| 360| 360| 					stone: 0,
| 361| 361| 					vegetarianFood: 0
| 362| 362| 				},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'stone' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 357| 357| 					food: 100,
| 358| 358| 					wood: 0,
| 359| 359| 					metal: 0,
| 360|    |-					stone: 0,
|    | 360|+					"stone": 0,
| 361| 361| 					vegetarianFood: 0
| 362| 362| 				},
| 363| 363| 				percentMapExplored: 10
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'vegetarianFood' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 358| 358| 					wood: 0,
| 359| 359| 					metal: 0,
| 360| 360| 					stone: 0,
| 361|    |-					vegetarianFood: 0
|    | 361|+					"vegetarianFood": 0
| 362| 362| 				},
| 363| 363| 				percentMapExplored: 10
| 364| 364| 			}
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'percentMapExplored' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 360| 360| 					stone: 0,
| 361| 361| 					vegetarianFood: 0
| 362| 362| 				},
| 363|    |-				percentMapExplored: 10
|    | 363|+				"percentMapExplored": 10
| 364| 364| 			}
| 365| 365| 		}
| 366| 366| 	],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'circularMap' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 364| 364| 			}
| 365| 365| 		}
| 366| 366| 	],
| 367|    |-	circularMap: false,
|    | 367|+	"circularMap": false,
| 368| 368| 	timeElapsed: 0,
| 369| 369| 	"victoryConditions": ["conquest", "wonder"],
| 370| 370| 	alliedVictory: false
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'timeElapsed' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 365| 365| 		}
| 366| 366| 	],
| 367| 367| 	circularMap: false,
| 368|    |-	timeElapsed: 0,
|    | 368|+	"timeElapsed": 0,
| 369| 369| 	"victoryConditions": ["conquest", "wonder"],
| 370| 370| 	alliedVictory: false
| 371| 371| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'alliedVictory' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 367| 367| 	circularMap: false,
| 368| 368| 	timeElapsed: 0,
| 369| 369| 	"victoryConditions": ["conquest", "wonder"],
| 370|    |-	alliedVictory: false
|    | 370|+	"alliedVictory": false
| 371| 371| });
| 372| 372| 
| 373| 373| TS_ASSERT_UNEVAL_EQUALS(cmp.GetExtendedSimulationState(), {
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'r'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 375| 375| 		{
| 376| 376| 			"name": "Player 1",
| 377| 377| 			"civ": "gaia",
| 378|    |-			"color": { "r":1, "g":1, "b":1, "a":1 },
|    | 378|+			"color": { "r": 1, "g":1, "b":1, "a":1 },
| 379| 379| 			"controlsAll": false,
| 380| 380| 			"popCount": 10,
| 381| 381| 			"popLimit": 20,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'g'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 375| 375| 		{
| 376| 376| 			"name": "Player 1",
| 377| 377| 			"civ": "gaia",
| 378|    |-			"color": { "r":1, "g":1, "b":1, "a":1 },
|    | 378|+			"color": { "r":1, "g": 1, "b":1, "a":1 },
| 379| 379| 			"controlsAll": false,
| 380| 380| 			"popCount": 10,
| 381| 381| 			"popLimit": 20,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'b'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 375| 375| 		{
| 376| 376| 			"name": "Player 1",
| 377| 377| 			"civ": "gaia",
| 378|    |-			"color": { "r":1, "g":1, "b":1, "a":1 },
|    | 378|+			"color": { "r":1, "g":1, "b": 1, "a":1 },
| 379| 379| 			"controlsAll": false,
| 380| 380| 			"popCount": 10,
| 381| 381| 			"popLimit": 20,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'a'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 375| 375| 		{
| 376| 376| 			"name": "Player 1",
| 377| 377| 			"civ": "gaia",
| 378|    |-			"color": { "r":1, "g":1, "b":1, "a":1 },
|    | 378|+			"color": { "r":1, "g":1, "b":1, "a": 1 },
| 379| 379| 			"controlsAll": false,
| 380| 380| 			"popCount": 10,
| 381| 381| 			"popLimit": 20,
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 397| 397| 			"isMutualAlly": [false, false],
| 398| 398| 			"isNeutral": [false, false],
| 399| 399| 			"isEnemy": [true, true],
| 400|    |-			"entityLimits": {"Foo": 10},
|    | 400|+			"entityLimits": { "Foo": 10},
| 401| 401| 			"entityCounts": {"Foo": 5},
| 402| 402| 			"entityLimitChangers": {"Foo": {}},
| 403| 403| 			"researchQueued": new Map(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 397| 397| 			"isMutualAlly": [false, false],
| 398| 398| 			"isNeutral": [false, false],
| 399| 399| 			"isEnemy": [true, true],
| 400|    |-			"entityLimits": {"Foo": 10},
|    | 400|+			"entityLimits": {"Foo": 10 },
| 401| 401| 			"entityCounts": {"Foo": 5},
| 402| 402| 			"entityLimitChangers": {"Foo": {}},
| 403| 403| 			"researchQueued": new Map(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 398| 398| 			"isNeutral": [false, false],
| 399| 399| 			"isEnemy": [true, true],
| 400| 400| 			"entityLimits": {"Foo": 10},
| 401|    |-			"entityCounts": {"Foo": 5},
|    | 401|+			"entityCounts": { "Foo": 5},
| 402| 402| 			"entityLimitChangers": {"Foo": {}},
| 403| 403| 			"researchQueued": new Map(),
| 404| 404| 			"researchStarted": new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 398| 398| 			"isNeutral": [false, false],
| 399| 399| 			"isEnemy": [true, true],
| 400| 400| 			"entityLimits": {"Foo": 10},
| 401|    |-			"entityCounts": {"Foo": 5},
|    | 401|+			"entityCounts": {"Foo": 5 },
| 402| 402| 			"entityLimitChangers": {"Foo": {}},
| 403| 403| 			"researchQueued": new Map(),
| 404| 404| 			"researchStarted": new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 399| 399| 			"isEnemy": [true, true],
| 400| 400| 			"entityLimits": {"Foo": 10},
| 401| 401| 			"entityCounts": {"Foo": 5},
| 402|    |-			"entityLimitChangers": {"Foo": {}},
|    | 402|+			"entityLimitChangers": { "Foo": {}},
| 403| 403| 			"researchQueued": new Map(),
| 404| 404| 			"researchStarted": new Set(),
| 405| 405| 			"researchedTechs": new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 399| 399| 			"isEnemy": [true, true],
| 400| 400| 			"entityLimits": {"Foo": 10},
| 401| 401| 			"entityCounts": {"Foo": 5},
| 402|    |-			"entityLimitChangers": {"Foo": {}},
|    | 402|+			"entityLimitChangers": {"Foo": {} },
| 403| 403| 			"researchQueued": new Map(),
| 404| 404| 			"researchStarted": new Set(),
| 405| 405| 			"researchedTechs": new Set(),
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'r'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 447| 447| 		{
| 448| 448| 			"name": "Player 2",
| 449| 449| 			"civ": "mace",
| 450|    |-			"color": { "r":1, "g":0, "b":0, "a":1 },
|    | 450|+			"color": { "r": 1, "g":0, "b":0, "a":1 },
| 451| 451| 			"controlsAll": true,
| 452| 452| 			"popCount": 40,
| 453| 453| 			"popLimit": 30,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'g'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 447| 447| 		{
| 448| 448| 			"name": "Player 2",
| 449| 449| 			"civ": "mace",
| 450|    |-			"color": { "r":1, "g":0, "b":0, "a":1 },
|    | 450|+			"color": { "r":1, "g": 0, "b":0, "a":1 },
| 451| 451| 			"controlsAll": true,
| 452| 452| 			"popCount": 40,
| 453| 453| 			"popLimit": 30,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'b'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 447| 447| 		{
| 448| 448| 			"name": "Player 2",
| 449| 449| 			"civ": "mace",
| 450|    |-			"color": { "r":1, "g":0, "b":0, "a":1 },
|    | 450|+			"color": { "r":1, "g":0, "b": 0, "a":1 },
| 451| 451| 			"controlsAll": true,
| 452| 452| 			"popCount": 40,
| 453| 453| 			"popLimit": 30,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'a'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 447| 447| 		{
| 448| 448| 			"name": "Player 2",
| 449| 449| 			"civ": "mace",
| 450|    |-			"color": { "r":1, "g":0, "b":0, "a":1 },
|    | 450|+			"color": { "r":1, "g":0, "b":0, "a": 1 },
| 451| 451| 			"controlsAll": true,
| 452| 452| 			"popCount": 40,
| 453| 453| 			"popLimit": 30,
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 469| 469| 			"isMutualAlly": [false, false],
| 470| 470| 			"isNeutral": [false, false],
| 471| 471| 			"isEnemy": [false, false],
| 472|    |-			"entityLimits": {"Bar": 20},
|    | 472|+			"entityLimits": { "Bar": 20},
| 473| 473| 			"entityCounts": {"Bar": 0},
| 474| 474| 			"entityLimitChangers": {"Bar": {}},
| 475| 475| 			"researchQueued": new Map(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 469| 469| 			"isMutualAlly": [false, false],
| 470| 470| 			"isNeutral": [false, false],
| 471| 471| 			"isEnemy": [false, false],
| 472|    |-			"entityLimits": {"Bar": 20},
|    | 472|+			"entityLimits": {"Bar": 20 },
| 473| 473| 			"entityCounts": {"Bar": 0},
| 474| 474| 			"entityLimitChangers": {"Bar": {}},
| 475| 475| 			"researchQueued": new Map(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 470| 470| 			"isNeutral": [false, false],
| 471| 471| 			"isEnemy": [false, false],
| 472| 472| 			"entityLimits": {"Bar": 20},
| 473|    |-			"entityCounts": {"Bar": 0},
|    | 473|+			"entityCounts": { "Bar": 0},
| 474| 474| 			"entityLimitChangers": {"Bar": {}},
| 475| 475| 			"researchQueued": new Map(),
| 476| 476| 			"researchStarted": new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 470| 470| 			"isNeutral": [false, false],
| 471| 471| 			"isEnemy": [false, false],
| 472| 472| 			"entityLimits": {"Bar": 20},
| 473|    |-			"entityCounts": {"Bar": 0},
|    | 473|+			"entityCounts": {"Bar": 0 },
| 474| 474| 			"entityLimitChangers": {"Bar": {}},
| 475| 475| 			"researchQueued": new Map(),
| 476| 476| 			"researchStarted": new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 471| 471| 			"isEnemy": [false, false],
| 472| 472| 			"entityLimits": {"Bar": 20},
| 473| 473| 			"entityCounts": {"Bar": 0},
| 474|    |-			"entityLimitChangers": {"Bar": {}},
|    | 474|+			"entityLimitChangers": { "Bar": {}},
| 475| 475| 			"researchQueued": new Map(),
| 476| 476| 			"researchStarted": new Set(),
| 477| 477| 			"researchedTechs": new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 471| 471| 			"isEnemy": [false, false],
| 472| 472| 			"entityLimits": {"Bar": 20},
| 473| 473| 			"entityCounts": {"Bar": 0},
| 474|    |-			"entityLimitChangers": {"Bar": {}},
|    | 474|+			"entityLimitChangers": {"Bar": {} },
| 475| 475| 			"researchQueued": new Map(),
| 476| 476| 			"researchStarted": new Set(),
| 477| 477| 			"researchedTechs": new Set(),
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetEntitiesList' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 525| 525| 
| 526| 526| 
| 527| 527| AddMock(10, IID_Builder, {
| 528|    |-	GetEntitiesList: function() {
|    | 528|+	"GetEntitiesList": function() {
| 529| 529| 		return ["test1", "test2"];
| 530| 530| 	},
| 531| 531| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetHitpoints' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 531| 531| });
| 532| 532| 
| 533| 533| AddMock(10, IID_Health, {
| 534|    |-	GetHitpoints: function() { return 50; },
|    | 534|+	"GetHitpoints": function() { return 50; },
| 535| 535| 	GetMaxHitpoints: function() { return 60; },
| 536| 536| 	IsRepairable: function() { return false; },
| 537| 537| 	IsUnhealable: function() { return false; }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetMaxHitpoints' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 532| 532| 
| 533| 533| AddMock(10, IID_Health, {
| 534| 534| 	GetHitpoints: function() { return 50; },
| 535|    |-	GetMaxHitpoints: function() { return 60; },
|    | 535|+	"GetMaxHitpoints": function() { return 60; },
| 536| 536| 	IsRepairable: function() { return false; },
| 537| 537| 	IsUnhealable: function() { return false; }
| 538| 538| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsRepairable' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 533| 533| AddMock(10, IID_Health, {
| 534| 534| 	GetHitpoints: function() { return 50; },
| 535| 535| 	GetMaxHitpoints: function() { return 60; },
| 536|    |-	IsRepairable: function() { return false; },
|    | 536|+	"IsRepairable": function() { return false; },
| 537| 537| 	IsUnhealable: function() { return false; }
| 538| 538| });
| 539| 539| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsUnhealable' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 534| 534| 	GetHitpoints: function() { return 50; },
| 535| 535| 	GetMaxHitpoints: function() { return 60; },
| 536| 536| 	IsRepairable: function() { return false; },
| 537|    |-	IsUnhealable: function() { return false; }
|    | 537|+	"IsUnhealable": function() { return false; }
| 538| 538| });
| 539| 539| 
| 540| 540| AddMock(10, IID_Identity, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetClassesList' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 538| 538| });
| 539| 539| 
| 540| 540| AddMock(10, IID_Identity, {
| 541|    |-	GetClassesList: function() { return ["class1", "class2"]; },
|    | 541|+	"GetClassesList": function() { return ["class1", "class2"]; },
| 542| 542| 	GetVisibleClassesList: function() { return ["class3", "class4"]; },
| 543| 543| 	GetRank: function() { return "foo"; },
| 544| 544| 	GetSelectionGroupName: function() { return "Selection Group Name"; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetVisibleClassesList' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 539| 539| 
| 540| 540| AddMock(10, IID_Identity, {
| 541| 541| 	GetClassesList: function() { return ["class1", "class2"]; },
| 542|    |-	GetVisibleClassesList: function() { return ["class3", "class4"]; },
|    | 542|+	"GetVisibleClassesList": function() { return ["class3", "class4"]; },
| 543| 543| 	GetRank: function() { return "foo"; },
| 544| 544| 	GetSelectionGroupName: function() { return "Selection Group Name"; },
| 545| 545| 	HasClass: function() { return true; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetRank' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 540| 540| AddMock(10, IID_Identity, {
| 541| 541| 	GetClassesList: function() { return ["class1", "class2"]; },
| 542| 542| 	GetVisibleClassesList: function() { return ["class3", "class4"]; },
| 543|    |-	GetRank: function() { return "foo"; },
|    | 543|+	"GetRank": function() { return "foo"; },
| 544| 544| 	GetSelectionGroupName: function() { return "Selection Group Name"; },
| 545| 545| 	HasClass: function() { return true; },
| 546| 546| 	IsUndeletable: function() { return false; }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetSelectionGroupName' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 541| 541| 	GetClassesList: function() { return ["class1", "class2"]; },
| 542| 542| 	GetVisibleClassesList: function() { return ["class3", "class4"]; },
| 543| 543| 	GetRank: function() { return "foo"; },
| 544|    |-	GetSelectionGroupName: function() { return "Selection Group Name"; },
|    | 544|+	"GetSelectionGroupName": function() { return "Selection Group Name"; },
| 545| 545| 	HasClass: function() { return true; },
| 546| 546| 	IsUndeletable: function() { return false; }
| 547| 547| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'HasClass' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 542| 542| 	GetVisibleClassesList: function() { return ["class3", "class4"]; },
| 543| 543| 	GetRank: function() { return "foo"; },
| 544| 544| 	GetSelectionGroupName: function() { return "Selection Group Name"; },
| 545|    |-	HasClass: function() { return true; },
|    | 545|+	"HasClass": function() { return true; },
| 546| 546| 	IsUndeletable: function() { return false; }
| 547| 547| });
| 548| 548| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsUndeletable' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 543| 543| 	GetRank: function() { return "foo"; },
| 544| 544| 	GetSelectionGroupName: function() { return "Selection Group Name"; },
| 545| 545| 	HasClass: function() { return true; },
| 546|    |-	IsUndeletable: function() { return false; }
|    | 546|+	"IsUndeletable": function() { return false; }
| 547| 547| });
| 548| 548| 
| 549| 549| AddMock(10, IID_Position, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetTurretParent' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 547| 547| });
| 548| 548| 
| 549| 549| AddMock(10, IID_Position, {
| 550|    |-	GetTurretParent: function() {return INVALID_ENTITY;},
|    | 550|+	"GetTurretParent": function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552| 552| 		return {x:1, y:2, z:3};
| 553| 553| 	},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPosition' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 548| 548| 
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551|    |-	GetPosition: function() {
|    | 551|+	"GetPosition": function() {
| 552| 552| 		return {x:1, y:2, z:3};
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552|    |-		return {x:1, y:2, z:3};
|    | 552|+		return { x:1, y:2, z:3};
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
| 555| 555| 		return true;
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'x' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552|    |-		return {x:1, y:2, z:3};
|    | 552|+		return {"x":1, y:2, z:3};
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
| 555| 555| 		return true;
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'x'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552|    |-		return {x:1, y:2, z:3};
|    | 552|+		return {x: 1, y:2, z:3};
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
| 555| 555| 		return true;
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'y' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552|    |-		return {x:1, y:2, z:3};
|    | 552|+		return {x:1, "y":2, z:3};
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
| 555| 555| 		return true;
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'y'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552|    |-		return {x:1, y:2, z:3};
|    | 552|+		return {x:1, y: 2, z:3};
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
| 555| 555| 		return true;
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'z' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552|    |-		return {x:1, y:2, z:3};
|    | 552|+		return {x:1, y:2, "z":3};
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
| 555| 555| 		return true;
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'z'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552|    |-		return {x:1, y:2, z:3};
|    | 552|+		return {x:1, y:2, z: 3};
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
| 555| 555| 		return true;
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552|    |-		return {x:1, y:2, z:3};
|    | 552|+		return {x:1, y:2, z:3 };
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
| 555| 555| 		return true;
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsInWorld' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 551| 551| 	GetPosition: function() {
| 552| 552| 		return {x:1, y:2, z:3};
| 553| 553| 	},
| 554|    |-	IsInWorld: function() {
|    | 554|+	"IsInWorld": function() {
| 555| 555| 		return true;
| 556| 556| 	}
| 557| 557| });
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 575| 575| 		"selectionGroupName": "Selection Group Name",
| 576| 576| 		"canDelete": true
| 577| 577| 	},
| 578|    |-	"position": {x:1, y:2, z:3},
|    | 578|+	"position": { x:1, y:2, z:3},
| 579| 579| 	"hitpoints": 50,
| 580| 580| 	"maxHitpoints": 60,
| 581| 581| 	"needsRepair": false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'x' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 575| 575| 		"selectionGroupName": "Selection Group Name",
| 576| 576| 		"canDelete": true
| 577| 577| 	},
| 578|    |-	"position": {x:1, y:2, z:3},
|    | 578|+	"position": {"x":1, y:2, z:3},
| 579| 579| 	"hitpoints": 50,
| 580| 580| 	"maxHitpoints": 60,
| 581| 581| 	"needsRepair": false,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'x'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 575| 575| 		"selectionGroupName": "Selection Group Name",
| 576| 576| 		"canDelete": true
| 577| 577| 	},
| 578|    |-	"position": {x:1, y:2, z:3},
|    | 578|+	"position": {x: 1, y:2, z:3},
| 579| 579| 	"hitpoints": 50,
| 580| 580| 	"maxHitpoints": 60,
| 581| 581| 	"needsRepair": false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'y' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 575| 575| 		"selectionGroupName": "Selection Group Name",
| 576| 576| 		"canDelete": true
| 577| 577| 	},
| 578|    |-	"position": {x:1, y:2, z:3},
|    | 578|+	"position": {x:1, "y":2, z:3},
| 579| 579| 	"hitpoints": 50,
| 580| 580| 	"maxHitpoints": 60,
| 581| 581| 	"needsRepair": false,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'y'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 575| 575| 		"selectionGroupName": "Selection Group Name",
| 576| 576| 		"canDelete": true
| 577| 577| 	},
| 578|    |-	"position": {x:1, y:2, z:3},
|    | 578|+	"position": {x:1, y: 2, z:3},
| 579| 579| 	"hitpoints": 50,
| 580| 580| 	"maxHitpoints": 60,
| 581| 581| 	"needsRepair": false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'z' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 575| 575| 		"selectionGroupName": "Selection Group Name",
| 576| 576| 		"canDelete": true
| 577| 577| 	},
| 578|    |-	"position": {x:1, y:2, z:3},
|    | 578|+	"position": {x:1, y:2, "z":3},
| 579| 579| 	"hitpoints": 50,
| 580| 580| 	"maxHitpoints": 60,
| 581| 581| 	"needsRepair": false,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'z'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 575| 575| 		"selectionGroupName": "Selection Group Name",
| 576| 576| 		"canDelete": true
| 577| 577| 	},
| 578|    |-	"position": {x:1, y:2, z:3},
|    | 578|+	"position": {x:1, y:2, z: 3},
| 579| 579| 	"hitpoints": 50,
| 580| 580| 	"maxHitpoints": 60,
| 581| 581| 	"needsRepair": false,
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 575| 575| 		"selectionGroupName": "Selection Group Name",
| 576| 576| 		"canDelete": true
| 577| 577| 	},
| 578|    |-	"position": {x:1, y:2, z:3},
|    | 578|+	"position": {x:1, y:2, z:3 },
| 579| 579| 	"hitpoints": 50,
| 580| 580| 	"maxHitpoints": 60,
| 581| 581| 	"needsRepair": false,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'isBarterMarket'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 583| 583| 	"builder": true,
| 584| 584| 	"canGarrison": false,
| 585| 585| 	"visibility": "visible",
| 586|    |-	"isBarterMarket":true,
|    | 586|+	"isBarterMarket": true,
| 587| 587| 	"resourceTrickle": {
| 588| 588| 		"interval": 1250,
| 589| 589| 		"rates": { "food": 2, "wood": 3, "stone": 5, "metal": 9 }
Executing section cli...

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

Freagarach updated this revision to Diff 8910.Mon, Jul 15, 5:54 PM
Freagarach marked an inline comment as done.
  • Moved cmpDamage-function to CauseSplashDamage.
  • Removed support for status effects and restrictedClasses which are to be added in a seperete diff (D2081)

I can't get the test working properly, too little experience with that I guess, but I do not really want to leave it out. I'll try harder soon.

Owners added a subscriber: Restricted Owners Package.Mon, Jul 15, 5:54 PM

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 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
|  23|  23| 	let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
|  24|  24| 	let turnLength = cmpTimer.GetLatestTurnLength();
|  25|  25| 	return new Vector3D(
|  26|    |-			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|    |  26|+		(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|  27| 			0,
|  28|  28| 			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
|  24|  24| 	let turnLength = cmpTimer.GetLatestTurnLength();
|  25|  25| 	return new Vector3D(
|  26|  26| 			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|    |-			0,
|    |  27|+		0,
|  28|  28| 			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|  30|  30| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
|  25|  25| 	return new Vector3D(
|  26|  26| 			(curPos.x * (turnLength - lateness) + prevPos.x * lateness) / turnLength,
|  27|  27| 			0,
|  28|    |-			(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|    |  28|+		(curPos.z * (turnLength - lateness) + prevPos.z * lateness) / turnLength);
|  29|  29| };
|  30|  30| 
|  31|  31| /**
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Damage.js
| 112| 112| 
| 113| 113| 	// Do this first in case the direct hit kills the target
| 114| 114| 	if (data.isSplash)
| 115|    |-	{
|    | 115|+	
| 116| 116| 		this.CauseSplashDamage({
| 117| 117| 			"attacker": data.attacker,
| 118| 118| 			"origin": Vector2D.from3D(data.position),
| 126| 126| 			"type": data.type,
| 127| 127| 			"attackerOwner": data.attackerOwner
| 128| 128| 		});
| 129|    |-	}
|    | 129|+	
| 130| 130| 
| 131| 131| 	let cmpProjectileManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_ProjectileManager);
| 132| 132| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'turnLength' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
|  25|  25| 
|  26|  26| 	let cmpDamage = ConstructComponent(SYSTEM_ENTITY, "Damage");
|  27|  27| 	let cmpTimer = ConstructComponent(SYSTEM_ENTITY, "Timer");
|  28|    |-	cmpTimer.OnUpdate({ turnLength: 1 });
|    |  28|+	cmpTimer.OnUpdate({ "turnLength": 1 });
|  29|  29| 	let attacker = 11;
|  30|  30| 	let atkPlayerEntity = 1;
|  31|  31| 	let attackerOwner = 6;
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
|  63|  63| 		"position": targetPos,
|  64|  64| 		"isSplash": false,
|  65|  65| 		"projectileId": 9,
|  66|    |-		"direction": new Vector3D(1,0,0)
|    |  66|+		"direction": new Vector3D(1, 0,0)
|  67|  67| 	};
|  68|  68| 
|  69|  69| 	AddMock(atkPlayerEntity, IID_Player, {
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
|  63|  63| 		"position": targetPos,
|  64|  64| 		"isSplash": false,
|  65|  65| 		"projectileId": 9,
|  66|    |-		"direction": new Vector3D(1,0,0)
|    |  66|+		"direction": new Vector3D(1,0, 0)
|  67|  67| 	};
|  68|  68| 
|  69|  69| 	AddMock(atkPlayerEntity, IID_Player, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'turnLength' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
| 114| 114| 
| 115| 115| 	function TestDamage()
| 116| 116| 	{
| 117|    |-		cmpTimer.OnUpdate({ turnLength: 1 });
|    | 117|+		cmpTimer.OnUpdate({ "turnLength": 1 });
| 118| 118| 		TS_ASSERT(damageTaken);
| 119| 119| 		damageTaken = false;
| 120| 120| 	}
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'hack'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
| 157| 157| 		"minRange": 0,
| 158| 158| 		"maxRange": 10,
| 159| 159| 		"shape": "Linear",
| 160|    |-		"strengths": { "hack" : 100, "pierce" : 0, "crush": 0 },
|    | 160|+		"strengths": { "hack": 100, "pierce" : 0, "crush": 0 },
| 161| 161| 		"direction": new Vector3D(1, 747, 0),
| 162| 162| 		"playersToDamage": [2],
| 163| 163| 		"type": "Ranged",
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'pierce'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
| 157| 157| 		"minRange": 0,
| 158| 158| 		"maxRange": 10,
| 159| 159| 		"shape": "Linear",
| 160|    |-		"strengths": { "hack" : 100, "pierce" : 0, "crush": 0 },
|    | 160|+		"strengths": { "hack" : 100, "pierce": 0, "crush": 0 },
| 161| 161| 		"direction": new Vector3D(1, 747, 0),
| 162| 162| 		"playersToDamage": [2],
| 163| 163| 		"type": "Ranged",
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
| 164| 164| 		"attackerOwner": attackerOwner
| 165| 165| 	};
| 166| 166| 
| 167|    |-	let fallOff = function(x,y)
|    | 167|+	let fallOff = function(x, y)
| 168| 168| 	{
| 169| 169| 		return (1 - x * x / (data.maxRange * data.maxRange)) * (1 - 25 * y * y / (data.maxRange * data.maxRange));
| 170| 170| 	};
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'hack'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
| 325| 325| 		"minRange": 0,
| 326| 326| 		"maxRange": radius,
| 327| 327| 		"shape": "Circular",
| 328|    |-		"strengths": { "hack" : 100, "pierce" : 0, "crush": 0 },
|    | 328|+		"strengths": { "hack": 100, "pierce" : 0, "crush": 0 },
| 329| 329| 		"playersToDamage": [2],
| 330| 330| 		"type": "Ranged",
| 331| 331| 		"attackerOwner": 1
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'pierce'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
| 325| 325| 		"minRange": 0,
| 326| 326| 		"maxRange": radius,
| 327| 327| 		"shape": "Circular",
| 328|    |-		"strengths": { "hack" : 100, "pierce" : 0, "crush": 0 },
|    | 328|+		"strengths": { "hack" : 100, "pierce": 0, "crush": 0 },
| 329| 329| 		"playersToDamage": [2],
| 330| 330| 		"type": "Ranged",
| 331| 331| 		"attackerOwner": 1

binaries/data/mods/public/simulation/components/tests/test_Damage.js
| 125| »   type·=·data.type·=·"Ranged";
|    | [NORMAL] ESLintBear (no-multi-assign):
|    | Unexpected chained assignment.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  48|  48| 	"GetResource": resource => ({
|  49|  49| 		"aiAnalysisInfluenceGroup":
|  50|  50| 			resource == "food" ? "ignore" :
|  51|    |-			resource == "wood" ? "abundant" : "sparse"
|    |  51|+				resource == "wood" ? "abundant" : "sparse"
|  52|  52| 	})
|  53|  53| };
|  54|  54| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPrices' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  56|  56| 
|  57|  57| 
|  58|  58| AddMock(SYSTEM_ENTITY, IID_Barter, {
|  59|    |-	GetPrices: function() {
|    |  59|+	"GetPrices": function() {
|  60|  60| 		return {
|  61|  61| 			"buy": { "food": 150 },
|  62|  62| 			"sell": { "food": 25 }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'PlayerHasMarket' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  62|  62| 			"sell": { "food": 25 }
|  63|  63| 		};
|  64|  64| 	},
|  65|    |-	PlayerHasMarket: function () { return false; }
|    |  65|+	"PlayerHasMarket": function () { return false; }
|  66|  66| });
|  67|  67| 
|  68|  68| AddMock(SYSTEM_ENTITY, IID_EndGameManager, {
|    | [NORMAL] ESLintBear (space-before-function-paren):
|    | Unexpected space before function parentheses.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  62|  62| 			"sell": { "food": 25 }
|  63|  63| 		};
|  64|  64| 	},
|  65|    |-	PlayerHasMarket: function () { return false; }
|    |  65|+	PlayerHasMarket: function() { return false; }
|  66|  66| });
|  67|  67| 
|  68|  68| AddMock(SYSTEM_ENTITY, IID_EndGameManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetVictoryConditions' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  66|  66| });
|  67|  67| 
|  68|  68| AddMock(SYSTEM_ENTITY, IID_EndGameManager, {
|  69|    |-	GetVictoryConditions: () => ["conquest", "wonder"],
|    |  69|+	"GetVictoryConditions": () => ["conquest", "wonder"],
|  70|  70| 	GetAlliedVictory: function() { return false; }
|  71|  71| });
|  72|  72| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetAlliedVictory' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  67|  67| 
|  68|  68| AddMock(SYSTEM_ENTITY, IID_EndGameManager, {
|  69|  69| 	GetVictoryConditions: () => ["conquest", "wonder"],
|  70|    |-	GetAlliedVictory: function() { return false; }
|    |  70|+	"GetAlliedVictory": function() { return false; }
|  71|  71| });
|  72|  72| 
|  73|  73| AddMock(SYSTEM_ENTITY, IID_PlayerManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetNumPlayers' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  71|  71| });
|  72|  72| 
|  73|  73| AddMock(SYSTEM_ENTITY, IID_PlayerManager, {
|  74|    |-	GetNumPlayers: function() { return 2; },
|    |  74|+	"GetNumPlayers": function() { return 2; },
|  75|  75| 	GetPlayerByID: function(id) { TS_ASSERT(id === 0 || id === 1); return 100+id; }
|  76|  76| });
|  77|  77| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPlayerByID' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  72|  72| 
|  73|  73| AddMock(SYSTEM_ENTITY, IID_PlayerManager, {
|  74|  74| 	GetNumPlayers: function() { return 2; },
|  75|    |-	GetPlayerByID: function(id) { TS_ASSERT(id === 0 || id === 1); return 100+id; }
|    |  75|+	"GetPlayerByID": function(id) { TS_ASSERT(id === 0 || id === 1); return 100+id; }
|  76|  76| });
|  77|  77| 
|  78|  78| AddMock(SYSTEM_ENTITY, IID_RangeManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLosVisibility' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  76|  76| });
|  77|  77| 
|  78|  78| AddMock(SYSTEM_ENTITY, IID_RangeManager, {
|  79|    |-	GetLosVisibility: function(ent, player) { return "visible"; },
|    |  79|+	"GetLosVisibility": function(ent, player) { return "visible"; },
|  80|  80| 	GetLosCircular: function() { return false; }
|  81|  81| });
|  82|  82| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLosCircular' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  77|  77| 
|  78|  78| AddMock(SYSTEM_ENTITY, IID_RangeManager, {
|  79|  79| 	GetLosVisibility: function(ent, player) { return "visible"; },
|  80|    |-	GetLosCircular: function() { return false; }
|    |  80|+	"GetLosCircular": function() { return false; }
|  81|  81| });
|  82|  82| 
|  83|  83| AddMock(SYSTEM_ENTITY, IID_TemplateManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCurrentTemplateName' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  81|  81| });
|  82|  82| 
|  83|  83| AddMock(SYSTEM_ENTITY, IID_TemplateManager, {
|  84|    |-	GetCurrentTemplateName: function(ent) { return "example"; },
|    |  84|+	"GetCurrentTemplateName": function(ent) { return "example"; },
|  85|  85| 	GetTemplate: function(name) { return ""; }
|  86|  86| });
|  87|  87| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetTemplate' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  82|  82| 
|  83|  83| AddMock(SYSTEM_ENTITY, IID_TemplateManager, {
|  84|  84| 	GetCurrentTemplateName: function(ent) { return "example"; },
|  85|    |-	GetTemplate: function(name) { return ""; }
|    |  85|+	"GetTemplate": function(name) { return ""; }
|  86|  86| });
|  87|  87| 
|  88|  88| AddMock(SYSTEM_ENTITY, IID_Timer, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetTime' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  86|  86| });
|  87|  87| 
|  88|  88| AddMock(SYSTEM_ENTITY, IID_Timer, {
|  89|    |-	GetTime: function() { return 0; },
|    |  89|+	"GetTime": function() { return 0; },
|  90|  90| 	SetTimeout: function(ent, iid, funcname, time, data) { return 0; }
|  91|  91| });
|  92|  92| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'SetTimeout' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  87|  87| 
|  88|  88| AddMock(SYSTEM_ENTITY, IID_Timer, {
|  89|  89| 	GetTime: function() { return 0; },
|  90|    |-	SetTimeout: function(ent, iid, funcname, time, data) { return 0; }
|    |  90|+	"SetTimeout": function(ent, iid, funcname, time, data) { return 0; }
|  91|  91| });
|  92|  92| 
|  93|  93| AddMock(100, IID_Player, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetName' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  91|  91| });
|  92|  92| 
|  93|  93| AddMock(100, IID_Player, {
|  94|    |-	GetName: function() { return "Player 1"; },
|    |  94|+	"GetName": function() { return "Player 1"; },
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|  96| 	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCiv' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  92|  92| 
|  93|  93| AddMock(100, IID_Player, {
|  94|  94| 	GetName: function() { return "Player 1"; },
|  95|    |-	GetCiv: function() { return "gaia"; },
|    |  95|+	"GetCiv": function() { return "gaia"; },
|  96|  96| 	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetColor' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  93|  93| AddMock(100, IID_Player, {
|  94|  94| 	GetName: function() { return "Player 1"; },
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  96|+	"GetColor": function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'r' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  93|  93| AddMock(100, IID_Player, {
|  94|  94| 	GetName: function() { return "Player 1"; },
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  96|+	GetColor: function() { return { "r": 1, g: 1, b: 1, a: 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'g' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  93|  93| AddMock(100, IID_Player, {
|  94|  94| 	GetName: function() { return "Player 1"; },
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  96|+	GetColor: function() { return { r: 1, "g": 1, b: 1, a: 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'b' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  93|  93| AddMock(100, IID_Player, {
|  94|  94| 	GetName: function() { return "Player 1"; },
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  96|+	GetColor: function() { return { r: 1, g: 1, "b": 1, a: 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'a' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  93|  93| AddMock(100, IID_Player, {
|  94|  94| 	GetName: function() { return "Player 1"; },
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  96|+	GetColor: function() { return { r: 1, g: 1, b: 1, "a": 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  93|  93| AddMock(100, IID_Player, {
|  94|  94| 	GetName: function() { return "Player 1"; },
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  96|+	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1 }; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'CanControlAllUnits' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  94|  94| 	GetName: function() { return "Player 1"; },
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|  96| 	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  97|    |-	CanControlAllUnits: function() { return false; },
|    |  97|+	"CanControlAllUnits": function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
| 100| 100| 	GetMaxPopulation: function() { return 200; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPopulationCount' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  95|  95| 	GetCiv: function() { return "gaia"; },
|  96|  96| 	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|    |-	GetPopulationCount: function() { return 10; },
|    |  98|+	"GetPopulationCount": function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
| 100| 100| 	GetMaxPopulation: function() { return 200; },
| 101| 101| 	GetResourceCounts: function() { return { food: 100 }; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPopulationLimit' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  96|  96| 	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|    |-	GetPopulationLimit: function() { return 20; },
|    |  99|+	"GetPopulationLimit": function() { return 20; },
| 100| 100| 	GetMaxPopulation: function() { return 200; },
| 101| 101| 	GetResourceCounts: function() { return { food: 100 }; },
| 102| 102| 	GetPanelEntities: function() { return []; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetMaxPopulation' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  97|  97| 	CanControlAllUnits: function() { return false; },
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
| 100|    |-	GetMaxPopulation: function() { return 200; },
|    | 100|+	"GetMaxPopulation": function() { return 200; },
| 101| 101| 	GetResourceCounts: function() { return { food: 100 }; },
| 102| 102| 	GetPanelEntities: function() { return []; },
| 103| 103| 	IsTrainingBlocked: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetResourceCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
| 100| 100| 	GetMaxPopulation: function() { return 200; },
| 101|    |-	GetResourceCounts: function() { return { food: 100 }; },
|    | 101|+	"GetResourceCounts": function() { return { food: 100 }; },
| 102| 102| 	GetPanelEntities: function() { return []; },
| 103| 103| 	IsTrainingBlocked: function() { return false; },
| 104| 104| 	GetState: function() { return "active"; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'food' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  98|  98| 	GetPopulationCount: function() { return 10; },
|  99|  99| 	GetPopulationLimit: function() { return 20; },
| 100| 100| 	GetMaxPopulation: function() { return 200; },
| 101|    |-	GetResourceCounts: function() { return { food: 100 }; },
|    | 101|+	GetResourceCounts: function() { return { "food": 100 }; },
| 102| 102| 	GetPanelEntities: function() { return []; },
| 103| 103| 	IsTrainingBlocked: function() { return false; },
| 104| 104| 	GetState: function() { return "active"; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPanelEntities' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  99|  99| 	GetPopulationLimit: function() { return 20; },
| 100| 100| 	GetMaxPopulation: function() { return 200; },
| 101| 101| 	GetResourceCounts: function() { return { food: 100 }; },
| 102|    |-	GetPanelEntities: function() { return []; },
|    | 102|+	"GetPanelEntities": function() { return []; },
| 103| 103| 	IsTrainingBlocked: function() { return false; },
| 104| 104| 	GetState: function() { return "active"; },
| 105| 105| 	GetTeam: function() { return -1; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsTrainingBlocked' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 100| 100| 	GetMaxPopulation: function() { return 200; },
| 101| 101| 	GetResourceCounts: function() { return { food: 100 }; },
| 102| 102| 	GetPanelEntities: function() { return []; },
| 103|    |-	IsTrainingBlocked: function() { return false; },
|    | 103|+	"IsTrainingBlocked": function() { return false; },
| 104| 104| 	GetState: function() { return "active"; },
| 105| 105| 	GetTeam: function() { return -1; },
| 106| 106| 	GetLockTeams: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetState' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 101| 101| 	GetResourceCounts: function() { return { food: 100 }; },
| 102| 102| 	GetPanelEntities: function() { return []; },
| 103| 103| 	IsTrainingBlocked: function() { return false; },
| 104|    |-	GetState: function() { return "active"; },
|    | 104|+	"GetState": function() { return "active"; },
| 105| 105| 	GetTeam: function() { return -1; },
| 106| 106| 	GetLockTeams: function() { return false; },
| 107| 107| 	GetCheatsEnabled: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetTeam' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 102| 102| 	GetPanelEntities: function() { return []; },
| 103| 103| 	IsTrainingBlocked: function() { return false; },
| 104| 104| 	GetState: function() { return "active"; },
| 105|    |-	GetTeam: function() { return -1; },
|    | 105|+	"GetTeam": function() { return -1; },
| 106| 106| 	GetLockTeams: function() { return false; },
| 107| 107| 	GetCheatsEnabled: function() { return false; },
| 108| 108| 	GetDiplomacy: function() { return [-1, 1]; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLockTeams' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 103| 103| 	IsTrainingBlocked: function() { return false; },
| 104| 104| 	GetState: function() { return "active"; },
| 105| 105| 	GetTeam: function() { return -1; },
| 106|    |-	GetLockTeams: function() { return false; },
|    | 106|+	"GetLockTeams": function() { return false; },
| 107| 107| 	GetCheatsEnabled: function() { return false; },
| 108| 108| 	GetDiplomacy: function() { return [-1, 1]; },
| 109| 109| 	IsAlly: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCheatsEnabled' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 104| 104| 	GetState: function() { return "active"; },
| 105| 105| 	GetTeam: function() { return -1; },
| 106| 106| 	GetLockTeams: function() { return false; },
| 107|    |-	GetCheatsEnabled: function() { return false; },
|    | 107|+	"GetCheatsEnabled": function() { return false; },
| 108| 108| 	GetDiplomacy: function() { return [-1, 1]; },
| 109| 109| 	IsAlly: function() { return false; },
| 110| 110| 	IsMutualAlly: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetDiplomacy' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 105| 105| 	GetTeam: function() { return -1; },
| 106| 106| 	GetLockTeams: function() { return false; },
| 107| 107| 	GetCheatsEnabled: function() { return false; },
| 108|    |-	GetDiplomacy: function() { return [-1, 1]; },
|    | 108|+	"GetDiplomacy": function() { return [-1, 1]; },
| 109| 109| 	IsAlly: function() { return false; },
| 110| 110| 	IsMutualAlly: function() { return false; },
| 111| 111| 	IsNeutral: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsAlly' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 106| 106| 	GetLockTeams: function() { return false; },
| 107| 107| 	GetCheatsEnabled: function() { return false; },
| 108| 108| 	GetDiplomacy: function() { return [-1, 1]; },
| 109|    |-	IsAlly: function() { return false; },
|    | 109|+	"IsAlly": function() { return false; },
| 110| 110| 	IsMutualAlly: function() { return false; },
| 111| 111| 	IsNeutral: function() { return false; },
| 112| 112| 	IsEnemy: function() { return true; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsMutualAlly' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 107| 107| 	GetCheatsEnabled: function() { return false; },
| 108| 108| 	GetDiplomacy: function() { return [-1, 1]; },
| 109| 109| 	IsAlly: function() { return false; },
| 110|    |-	IsMutualAlly: function() { return false; },
|    | 110|+	"IsMutualAlly": function() { return false; },
| 111| 111| 	IsNeutral: function() { return false; },
| 112| 112| 	IsEnemy: function() { return true; },
| 113| 113| 	GetDisabledTemplates: function() { return {}; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsNeutral' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 108| 108| 	GetDiplomacy: function() { return [-1, 1]; },
| 109| 109| 	IsAlly: function() { return false; },
| 110| 110| 	IsMutualAlly: function() { return false; },
| 111|    |-	IsNeutral: function() { return false; },
|    | 111|+	"IsNeutral": function() { return false; },
| 112| 112| 	IsEnemy: function() { return true; },
| 113| 113| 	GetDisabledTemplates: function() { return {}; },
| 114| 114| 	GetDisabledTechnologies: function() { return {}; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsEnemy' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 109| 109| 	IsAlly: function() { return false; },
| 110| 110| 	IsMutualAlly: function() { return false; },
| 111| 111| 	IsNeutral: function() { return false; },
| 112|    |-	IsEnemy: function() { return true; },
|    | 112|+	"IsEnemy": function() { return true; },
| 113| 113| 	GetDisabledTemplates: function() { return {}; },
| 114| 114| 	GetDisabledTechnologies: function() { return {}; },
| 115| 115| 	GetSpyCostMultiplier: function() { return 1; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetDisabledTemplates' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 110| 110| 	IsMutualAlly: function() { return false; },
| 111| 111| 	IsNeutral: function() { return false; },
| 112| 112| 	IsEnemy: function() { return true; },
| 113|    |-	GetDisabledTemplates: function() { return {}; },
|    | 113|+	"GetDisabledTemplates": function() { return {}; },
| 114| 114| 	GetDisabledTechnologies: function() { return {}; },
| 115| 115| 	GetSpyCostMultiplier: function() { return 1; },
| 116| 116| 	HasSharedDropsites: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetDisabledTechnologies' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 111| 111| 	IsNeutral: function() { return false; },
| 112| 112| 	IsEnemy: function() { return true; },
| 113| 113| 	GetDisabledTemplates: function() { return {}; },
| 114|    |-	GetDisabledTechnologies: function() { return {}; },
|    | 114|+	"GetDisabledTechnologies": function() { return {}; },
| 115| 115| 	GetSpyCostMultiplier: function() { return 1; },
| 116| 116| 	HasSharedDropsites: function() { return false; },
| 117| 117| 	HasSharedLos: function() { return false; }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetSpyCostMultiplier' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 112| 112| 	IsEnemy: function() { return true; },
| 113| 113| 	GetDisabledTemplates: function() { return {}; },
| 114| 114| 	GetDisabledTechnologies: function() { return {}; },
| 115|    |-	GetSpyCostMultiplier: function() { return 1; },
|    | 115|+	"GetSpyCostMultiplier": function() { return 1; },
| 116| 116| 	HasSharedDropsites: function() { return false; },
| 117| 117| 	HasSharedLos: function() { return false; }
| 118| 118| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'HasSharedDropsites' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 113| 113| 	GetDisabledTemplates: function() { return {}; },
| 114| 114| 	GetDisabledTechnologies: function() { return {}; },
| 115| 115| 	GetSpyCostMultiplier: function() { return 1; },
| 116|    |-	HasSharedDropsites: function() { return false; },
|    | 116|+	"HasSharedDropsites": function() { return false; },
| 117| 117| 	HasSharedLos: function() { return false; }
| 118| 118| });
| 119| 119| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'HasSharedLos' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 114| 114| 	GetDisabledTechnologies: function() { return {}; },
| 115| 115| 	GetSpyCostMultiplier: function() { return 1; },
| 116| 116| 	HasSharedDropsites: function() { return false; },
| 117|    |-	HasSharedLos: function() { return false; }
|    | 117|+	"HasSharedLos": function() { return false; }
| 118| 118| });
| 119| 119| 
| 120| 120| AddMock(100, IID_EntityLimits, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLimits' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 118| 118| });
| 119| 119| 
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121|    |-	GetLimits: function() { return {"Foo": 10}; },
|    | 121|+	"GetLimits": function() { return {"Foo": 10}; },
| 122| 122| 	GetCounts: function() { return {"Foo": 5}; },
| 123| 123| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 124| 124| });
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 118| 118| });
| 119| 119| 
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121|    |-	GetLimits: function() { return {"Foo": 10}; },
|    | 121|+	GetLimits: function() { return { "Foo": 10}; },
| 122| 122| 	GetCounts: function() { return {"Foo": 5}; },
| 123| 123| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 124| 124| });
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 118| 118| });
| 119| 119| 
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121|    |-	GetLimits: function() { return {"Foo": 10}; },
|    | 121|+	GetLimits: function() { return {"Foo": 10 }; },
| 122| 122| 	GetCounts: function() { return {"Foo": 5}; },
| 123| 123| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 124| 124| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 119| 119| 
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121| 121| 	GetLimits: function() { return {"Foo": 10}; },
| 122|    |-	GetCounts: function() { return {"Foo": 5}; },
|    | 122|+	"GetCounts": function() { return {"Foo": 5}; },
| 123| 123| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 124| 124| });
| 125| 125| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 119| 119| 
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121| 121| 	GetLimits: function() { return {"Foo": 10}; },
| 122|    |-	GetCounts: function() { return {"Foo": 5}; },
|    | 122|+	GetCounts: function() { return { "Foo": 5}; },
| 123| 123| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 124| 124| });
| 125| 125| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 119| 119| 
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121| 121| 	GetLimits: function() { return {"Foo": 10}; },
| 122|    |-	GetCounts: function() { return {"Foo": 5}; },
|    | 122|+	GetCounts: function() { return {"Foo": 5 }; },
| 123| 123| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 124| 124| });
| 125| 125| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLimitChangers' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121| 121| 	GetLimits: function() { return {"Foo": 10}; },
| 122| 122| 	GetCounts: function() { return {"Foo": 5}; },
| 123|    |-	GetLimitChangers: function() {return {"Foo": {}}; }
|    | 123|+	"GetLimitChangers": function() {return {"Foo": {}}; }
| 124| 124| });
| 125| 125| 
| 126| 126| AddMock(100, IID_TechnologyManager, {
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121| 121| 	GetLimits: function() { return {"Foo": 10}; },
| 122| 122| 	GetCounts: function() { return {"Foo": 5}; },
| 123|    |-	GetLimitChangers: function() {return {"Foo": {}}; }
|    | 123|+	GetLimitChangers: function() {return { "Foo": {}}; }
| 124| 124| });
| 125| 125| 
| 126| 126| AddMock(100, IID_TechnologyManager, {
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 120| 120| AddMock(100, IID_EntityLimits, {
| 121| 121| 	GetLimits: function() { return {"Foo": 10}; },
| 122| 122| 	GetCounts: function() { return {"Foo": 5}; },
| 123|    |-	GetLimitChangers: function() {return {"Foo": {}}; }
|    | 123|+	GetLimitChangers: function() {return {"Foo": {} }; }
| 124| 124| });
| 125| 125| 
| 126| 126| AddMock(100, IID_TechnologyManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetBasicStatistics' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 133| 133| });
| 134| 134| 
| 135| 135| AddMock(100, IID_StatisticsTracker, {
| 136|    |-	GetBasicStatistics: function() {
|    | 136|+	"GetBasicStatistics": function() {
| 137| 137| 		return {
| 138| 138| 			"resourcesGathered": {
| 139| 139| 				"food": 100,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetSequences' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 145| 145| 			"percentMapExplored": 10
| 146| 146| 		};
| 147| 147| 	},
| 148|    |-	GetSequences: function() {
|    | 148|+	"GetSequences": function() {
| 149| 149| 		return {
| 150| 150| 			"unitsTrained": [0, 10],
| 151| 151| 			"unitsLost": [0, 42],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IncreaseTrainedUnitsCounter' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 170| 170| 			"teamPeakPercentOfMapControlled": [0, 10]
| 171| 171| 		};
| 172| 172| 	},
| 173|    |-	IncreaseTrainedUnitsCounter: function() { return 1; },
|    | 173|+	"IncreaseTrainedUnitsCounter": function() { return 1; },
| 174| 174| 	IncreaseConstructedBuildingsCounter: function() { return 1; },
| 175| 175| 	IncreaseBuiltCivCentresCounter: function() { return 1; }
| 176| 176| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IncreaseConstructedBuildingsCounter' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 171| 171| 		};
| 172| 172| 	},
| 173| 173| 	IncreaseTrainedUnitsCounter: function() { return 1; },
| 174|    |-	IncreaseConstructedBuildingsCounter: function() { return 1; },
|    | 174|+	"IncreaseConstructedBuildingsCounter": function() { return 1; },
| 175| 175| 	IncreaseBuiltCivCentresCounter: function() { return 1; }
| 176| 176| });
| 177| 177| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IncreaseBuiltCivCentresCounter' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 172| 172| 	},
| 173| 173| 	IncreaseTrainedUnitsCounter: function() { return 1; },
| 174| 174| 	IncreaseConstructedBuildingsCounter: function() { return 1; },
| 175|    |-	IncreaseBuiltCivCentresCounter: function() { return 1; }
|    | 175|+	"IncreaseBuiltCivCentresCounter": function() { return 1; }
| 176| 176| });
| 177| 177| 
| 178| 178| AddMock(101, IID_Player, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetName' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 176| 176| });
| 177| 177| 
| 178| 178| AddMock(101, IID_Player, {
| 179|    |-	GetName: function() { return "Player 2"; },
|    | 179|+	"GetName": function() { return "Player 2"; },
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181| 181| 	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCiv' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 177| 177| 
| 178| 178| AddMock(101, IID_Player, {
| 179| 179| 	GetName: function() { return "Player 2"; },
| 180|    |-	GetCiv: function() { return "mace"; },
|    | 180|+	"GetCiv": function() { return "mace"; },
| 181| 181| 	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetColor' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 178| 178| AddMock(101, IID_Player, {
| 179| 179| 	GetName: function() { return "Player 2"; },
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 181|+	"GetColor": function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'r' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 178| 178| AddMock(101, IID_Player, {
| 179| 179| 	GetName: function() { return "Player 2"; },
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 181|+	GetColor: function() { return { "r": 1, g: 0, b: 0, a: 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'g' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 178| 178| AddMock(101, IID_Player, {
| 179| 179| 	GetName: function() { return "Player 2"; },
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 181|+	GetColor: function() { return { r: 1, "g": 0, b: 0, a: 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'b' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 178| 178| AddMock(101, IID_Player, {
| 179| 179| 	GetName: function() { return "Player 2"; },
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 181|+	GetColor: function() { return { r: 1, g: 0, "b": 0, a: 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'a' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 178| 178| AddMock(101, IID_Player, {
| 179| 179| 	GetName: function() { return "Player 2"; },
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 181|+	GetColor: function() { return { r: 1, g: 0, b: 0, "a": 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 178| 178| AddMock(101, IID_Player, {
| 179| 179| 	GetName: function() { return "Player 2"; },
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 181|+	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1 }; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'CanControlAllUnits' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 179| 179| 	GetName: function() { return "Player 2"; },
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181| 181| 	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 182|    |-	CanControlAllUnits: function() { return true; },
|    | 182|+	"CanControlAllUnits": function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
| 185| 185| 	GetMaxPopulation: function() { return 300; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPopulationCount' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 180| 180| 	GetCiv: function() { return "mace"; },
| 181| 181| 	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183|    |-	GetPopulationCount: function() { return 40; },
|    | 183|+	"GetPopulationCount": function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
| 185| 185| 	GetMaxPopulation: function() { return 300; },
| 186| 186| 	GetResourceCounts: function() { return { food: 200 }; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPopulationLimit' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 181| 181| 	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184|    |-	GetPopulationLimit: function() { return 30; },
|    | 184|+	"GetPopulationLimit": function() { return 30; },
| 185| 185| 	GetMaxPopulation: function() { return 300; },
| 186| 186| 	GetResourceCounts: function() { return { food: 200 }; },
| 187| 187| 	GetPanelEntities: function() { return []; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetMaxPopulation' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 182| 182| 	CanControlAllUnits: function() { return true; },
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
| 185|    |-	GetMaxPopulation: function() { return 300; },
|    | 185|+	"GetMaxPopulation": function() { return 300; },
| 186| 186| 	GetResourceCounts: function() { return { food: 200 }; },
| 187| 187| 	GetPanelEntities: function() { return []; },
| 188| 188| 	IsTrainingBlocked: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetResourceCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
| 185| 185| 	GetMaxPopulation: function() { return 300; },
| 186|    |-	GetResourceCounts: function() { return { food: 200 }; },
|    | 186|+	"GetResourceCounts": function() { return { food: 200 }; },
| 187| 187| 	GetPanelEntities: function() { return []; },
| 188| 188| 	IsTrainingBlocked: function() { return false; },
| 189| 189| 	GetState: function() { return "active"; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'food' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 183| 183| 	GetPopulationCount: function() { return 40; },
| 184| 184| 	GetPopulationLimit: function() { return 30; },
| 185| 185| 	GetMaxPopulation: function() { return 300; },
| 186|    |-	GetResourceCounts: function() { return { food: 200 }; },
|    | 186|+	GetResourceCounts: function() { return { "food": 200 }; },
| 187| 187| 	GetPanelEntities: function() { return []; },
| 188| 188| 	IsTrainingBlocked: function() { return false; },
| 189| 189| 	GetState: function() { return "active"; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPanelEntities' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 184| 184| 	GetPopulationLimit: function() { return 30; },
| 185| 185| 	GetMaxPopulation: function() { return 300; },
| 186| 186| 	GetResourceCounts: function() { return { food: 200 }; },
| 187|    |-	GetPanelEntities: function() { return []; },
|    | 187|+	"GetPanelEntities": function() { return []; },
| 188| 188| 	IsTrainingBlocked: function() { return false; },
| 189| 189| 	GetState: function() { return "active"; },
| 190| 190| 	GetTeam: function() { return -1; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsTrainingBlocked' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 185| 185| 	GetMaxPopulation: function() { return 300; },
| 186| 186| 	GetResourceCounts: function() { return { food: 200 }; },
| 187| 187| 	GetPanelEntities: function() { return []; },
| 188|    |-	IsTrainingBlocked: function() { return false; },
|    | 188|+	"IsTrainingBlocked": function() { return false; },
| 189| 189| 	GetState: function() { return "active"; },
| 190| 190| 	GetTeam: function() { return -1; },
| 191| 191| 	GetLockTeams: function() {return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetState' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 186| 186| 	GetResourceCounts: function() { return { food: 200 }; },
| 187| 187| 	GetPanelEntities: function() { return []; },
| 188| 188| 	IsTrainingBlocked: function() { return false; },
| 189|    |-	GetState: function() { return "active"; },
|    | 189|+	"GetState": function() { return "active"; },
| 190| 190| 	GetTeam: function() { return -1; },
| 191| 191| 	GetLockTeams: function() {return false; },
| 192| 192| 	GetCheatsEnabled: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetTeam' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 187| 187| 	GetPanelEntities: function() { return []; },
| 188| 188| 	IsTrainingBlocked: function() { return false; },
| 189| 189| 	GetState: function() { return "active"; },
| 190|    |-	GetTeam: function() { return -1; },
|    | 190|+	"GetTeam": function() { return -1; },
| 191| 191| 	GetLockTeams: function() {return false; },
| 192| 192| 	GetCheatsEnabled: function() { return false; },
| 193| 193| 	GetDiplomacy: function() { return [-1, 1]; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLockTeams' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 188| 188| 	IsTrainingBlocked: function() { return false; },
| 189| 189| 	GetState: function() { return "active"; },
| 190| 190| 	GetTeam: function() { return -1; },
| 191|    |-	GetLockTeams: function() {return false; },
|    | 191|+	"GetLockTeams": function() {return false; },
| 192| 192| 	GetCheatsEnabled: function() { return false; },
| 193| 193| 	GetDiplomacy: function() { return [-1, 1]; },
| 194| 194| 	IsAlly: function() { return true; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCheatsEnabled' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 189| 189| 	GetState: function() { return "active"; },
| 190| 190| 	GetTeam: function() { return -1; },
| 191| 191| 	GetLockTeams: function() {return false; },
| 192|    |-	GetCheatsEnabled: function() { return false; },
|    | 192|+	"GetCheatsEnabled": function() { return false; },
| 193| 193| 	GetDiplomacy: function() { return [-1, 1]; },
| 194| 194| 	IsAlly: function() { return true; },
| 195| 195| 	IsMutualAlly: function() {return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetDiplomacy' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 190| 190| 	GetTeam: function() { return -1; },
| 191| 191| 	GetLockTeams: function() {return false; },
| 192| 192| 	GetCheatsEnabled: function() { return false; },
| 193|    |-	GetDiplomacy: function() { return [-1, 1]; },
|    | 193|+	"GetDiplomacy": function() { return [-1, 1]; },
| 194| 194| 	IsAlly: function() { return true; },
| 195| 195| 	IsMutualAlly: function() {return false; },
| 196| 196| 	IsNeutral: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsAlly' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 191| 191| 	GetLockTeams: function() {return false; },
| 192| 192| 	GetCheatsEnabled: function() { return false; },
| 193| 193| 	GetDiplomacy: function() { return [-1, 1]; },
| 194|    |-	IsAlly: function() { return true; },
|    | 194|+	"IsAlly": function() { return true; },
| 195| 195| 	IsMutualAlly: function() {return false; },
| 196| 196| 	IsNeutral: function() { return false; },
| 197| 197| 	IsEnemy: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsMutualAlly' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 192| 192| 	GetCheatsEnabled: function() { return false; },
| 193| 193| 	GetDiplomacy: function() { return [-1, 1]; },
| 194| 194| 	IsAlly: function() { return true; },
| 195|    |-	IsMutualAlly: function() {return false; },
|    | 195|+	"IsMutualAlly": function() {return false; },
| 196| 196| 	IsNeutral: function() { return false; },
| 197| 197| 	IsEnemy: function() { return false; },
| 198| 198| 	GetDisabledTemplates: function() { return {}; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsNeutral' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 193| 193| 	GetDiplomacy: function() { return [-1, 1]; },
| 194| 194| 	IsAlly: function() { return true; },
| 195| 195| 	IsMutualAlly: function() {return false; },
| 196|    |-	IsNeutral: function() { return false; },
|    | 196|+	"IsNeutral": function() { return false; },
| 197| 197| 	IsEnemy: function() { return false; },
| 198| 198| 	GetDisabledTemplates: function() { return {}; },
| 199| 199| 	GetDisabledTechnologies: function() { return {}; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsEnemy' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 194| 194| 	IsAlly: function() { return true; },
| 195| 195| 	IsMutualAlly: function() {return false; },
| 196| 196| 	IsNeutral: function() { return false; },
| 197|    |-	IsEnemy: function() { return false; },
|    | 197|+	"IsEnemy": function() { return false; },
| 198| 198| 	GetDisabledTemplates: function() { return {}; },
| 199| 199| 	GetDisabledTechnologies: function() { return {}; },
| 200| 200| 	GetSpyCostMultiplier: function() { return 1; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetDisabledTemplates' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 195| 195| 	IsMutualAlly: function() {return false; },
| 196| 196| 	IsNeutral: function() { return false; },
| 197| 197| 	IsEnemy: function() { return false; },
| 198|    |-	GetDisabledTemplates: function() { return {}; },
|    | 198|+	"GetDisabledTemplates": function() { return {}; },
| 199| 199| 	GetDisabledTechnologies: function() { return {}; },
| 200| 200| 	GetSpyCostMultiplier: function() { return 1; },
| 201| 201| 	HasSharedDropsites: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetDisabledTechnologies' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 196| 196| 	IsNeutral: function() { return false; },
| 197| 197| 	IsEnemy: function() { return false; },
| 198| 198| 	GetDisabledTemplates: function() { return {}; },
| 199|    |-	GetDisabledTechnologies: function() { return {}; },
|    | 199|+	"GetDisabledTechnologies": function() { return {}; },
| 200| 200| 	GetSpyCostMultiplier: function() { return 1; },
| 201| 201| 	HasSharedDropsites: function() { return false; },
| 202| 202| 	HasSharedLos: function() { return false; }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetSpyCostMultiplier' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 197| 197| 	IsEnemy: function() { return false; },
| 198| 198| 	GetDisabledTemplates: function() { return {}; },
| 199| 199| 	GetDisabledTechnologies: function() { return {}; },
| 200|    |-	GetSpyCostMultiplier: function() { return 1; },
|    | 200|+	"GetSpyCostMultiplier": function() { return 1; },
| 201| 201| 	HasSharedDropsites: function() { return false; },
| 202| 202| 	HasSharedLos: function() { return false; }
| 203| 203| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'HasSharedDropsites' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 198| 198| 	GetDisabledTemplates: function() { return {}; },
| 199| 199| 	GetDisabledTechnologies: function() { return {}; },
| 200| 200| 	GetSpyCostMultiplier: function() { return 1; },
| 201|    |-	HasSharedDropsites: function() { return false; },
|    | 201|+	"HasSharedDropsites": function() { return false; },
| 202| 202| 	HasSharedLos: function() { return false; }
| 203| 203| });
| 204| 204| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'HasSharedLos' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 199| 199| 	GetDisabledTechnologies: function() { return {}; },
| 200| 200| 	GetSpyCostMultiplier: function() { return 1; },
| 201| 201| 	HasSharedDropsites: function() { return false; },
| 202|    |-	HasSharedLos: function() { return false; }
|    | 202|+	"HasSharedLos": function() { return false; }
| 203| 203| });
| 204| 204| 
| 205| 205| AddMock(101, IID_EntityLimits, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLimits' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 203| 203| });
| 204| 204| 
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206|    |-	GetLimits: function() { return {"Bar": 20}; },
|    | 206|+	"GetLimits": function() { return {"Bar": 20}; },
| 207| 207| 	GetCounts: function() { return {"Bar": 0}; },
| 208| 208| 	GetLimitChangers: function() {return {"Bar": {}}; }
| 209| 209| });
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 203| 203| });
| 204| 204| 
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206|    |-	GetLimits: function() { return {"Bar": 20}; },
|    | 206|+	GetLimits: function() { return { "Bar": 20}; },
| 207| 207| 	GetCounts: function() { return {"Bar": 0}; },
| 208| 208| 	GetLimitChangers: function() {return {"Bar": {}}; }
| 209| 209| });
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 203| 203| });
| 204| 204| 
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206|    |-	GetLimits: function() { return {"Bar": 20}; },
|    | 206|+	GetLimits: function() { return {"Bar": 20 }; },
| 207| 207| 	GetCounts: function() { return {"Bar": 0}; },
| 208| 208| 	GetLimitChangers: function() {return {"Bar": {}}; }
| 209| 209| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 204| 204| 
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206| 206| 	GetLimits: function() { return {"Bar": 20}; },
| 207|    |-	GetCounts: function() { return {"Bar": 0}; },
|    | 207|+	"GetCounts": function() { return {"Bar": 0}; },
| 208| 208| 	GetLimitChangers: function() {return {"Bar": {}}; }
| 209| 209| });
| 210| 210| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 204| 204| 
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206| 206| 	GetLimits: function() { return {"Bar": 20}; },
| 207|    |-	GetCounts: function() { return {"Bar": 0}; },
|    | 207|+	GetCounts: function() { return { "Bar": 0}; },
| 208| 208| 	GetLimitChangers: function() {return {"Bar": {}}; }
| 209| 209| });
| 210| 210| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 204| 204| 
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206| 206| 	GetLimits: function() { return {"Bar": 20}; },
| 207|    |-	GetCounts: function() { return {"Bar": 0}; },
|    | 207|+	GetCounts: function() { return {"Bar": 0 }; },
| 208| 208| 	GetLimitChangers: function() {return {"Bar": {}}; }
| 209| 209| });
| 210| 210| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLimitChangers' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206| 206| 	GetLimits: function() { return {"Bar": 20}; },
| 207| 207| 	GetCounts: function() { return {"Bar": 0}; },
| 208|    |-	GetLimitChangers: function() {return {"Bar": {}}; }
|    | 208|+	"GetLimitChangers": function() {return {"Bar": {}}; }
| 209| 209| });
| 210| 210| 
| 211| 211| AddMock(101, IID_TechnologyManager, {
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206| 206| 	GetLimits: function() { return {"Bar": 20}; },
| 207| 207| 	GetCounts: function() { return {"Bar": 0}; },
| 208|    |-	GetLimitChangers: function() {return {"Bar": {}}; }
|    | 208|+	GetLimitChangers: function() {return { "Bar": {}}; }
| 209| 209| });
| 210| 210| 
| 211| 211| AddMock(101, IID_TechnologyManager, {
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 205| 205| AddMock(101, IID_EntityLimits, {
| 206| 206| 	GetLimits: function() { return {"Bar": 20}; },
| 207| 207| 	GetCounts: function() { return {"Bar": 0}; },
| 208|    |-	GetLimitChangers: function() {return {"Bar": {}}; }
|    | 208|+	GetLimitChangers: function() {return {"Bar": {} }; }
| 209| 209| });
| 210| 210| 
| 211| 211| AddMock(101, IID_TechnologyManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetBasicStatistics' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 218| 218| });
| 219| 219| 
| 220| 220| AddMock(101, IID_StatisticsTracker, {
| 221|    |-	GetBasicStatistics: function() {
|    | 221|+	"GetBasicStatistics": function() {
| 222| 222| 		return {
| 223| 223| 			"resourcesGathered": {
| 224| 224| 				"food": 100,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetSequences' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 230| 230| 			"percentMapExplored": 10
| 231| 231| 		};
| 232| 232| 	},
| 233|    |-	GetSequences: function() {
|    | 233|+	"GetSequences": function() {
| 234| 234| 		return {
| 235| 235| 			"unitsTrained": [0, 10],
| 236| 236| 			"unitsLost": [0, 9],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IncreaseTrainedUnitsCounter' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 255| 255| 			"teamPeakPercentOfMapControlled": [0, 10]
| 256| 256| 		};
| 257| 257| 	},
| 258|    |-	IncreaseTrainedUnitsCounter: function() { return 1; },
|    | 258|+	"IncreaseTrainedUnitsCounter": function() { return 1; },
| 259| 259| 	IncreaseConstructedBuildingsCounter: function() { return 1; },
| 260| 260| 	IncreaseBuiltCivCentresCounter: function() { return 1; }
| 261| 261| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IncreaseConstructedBuildingsCounter' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 256| 256| 		};
| 257| 257| 	},
| 258| 258| 	IncreaseTrainedUnitsCounter: function() { return 1; },
| 259|    |-	IncreaseConstructedBuildingsCounter: function() { return 1; },
|    | 259|+	"IncreaseConstructedBuildingsCounter": function() { return 1; },
| 260| 260| 	IncreaseBuiltCivCentresCounter: function() { return 1; }
| 261| 261| });
| 262| 262| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IncreaseBuiltCivCentresCounter' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 257| 257| 	},
| 258| 258| 	IncreaseTrainedUnitsCounter: function() { return 1; },
| 259| 259| 	IncreaseConstructedBuildingsCounter: function() { return 1; },
| 260|    |-	IncreaseBuiltCivCentresCounter: function() { return 1; }
|    | 260|+	"IncreaseBuiltCivCentresCounter": function() { return 1; }
| 261| 261| });
| 262| 262| 
| 263| 263| // Note: property order matters when using TS_ASSERT_UNEVAL_EQUALS,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'players' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 264| 264| //	because uneval preserves property order. So make sure this object
| 265| 265| //	matches the ordering in GuiInterface.
| 266| 266| TS_ASSERT_UNEVAL_EQUALS(cmp.GetSimulationState(), {
| 267|    |-	players: [
|    | 267|+	"players": [
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'name' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 266| 266| TS_ASSERT_UNEVAL_EQUALS(cmp.GetSimulationState(), {
| 267| 267| 	players: [
| 268| 268| 		{
| 269|    |-			name: "Player 1",
|    | 269|+			"name": "Player 1",
| 270| 270| 			civ: "gaia",
| 271| 271| 			color: { r:1, g:1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'civ' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 267| 267| 	players: [
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270|    |-			civ: "gaia",
|    | 270|+			"civ": "gaia",
| 271| 271| 			color: { r:1, g:1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'color' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			"color": { r:1, g:1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'r' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			color: { "r":1, g:1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'r'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			color: { r: 1, g:1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'g' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			color: { r:1, "g":1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'g'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			color: { r:1, g: 1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'b' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			color: { r:1, g:1, "b":1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'b'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			color: { r:1, g:1, b: 1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'a' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			color: { r:1, g:1, b:1, "a":1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'a'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 268| 268| 		{
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271|    |-			color: { r:1, g:1, b:1, a:1 },
|    | 271|+			color: { r:1, g:1, b:1, a: 1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'controlsAll' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 269| 269| 			name: "Player 1",
| 270| 270| 			civ: "gaia",
| 271| 271| 			color: { r:1, g:1, b:1, a:1 },
| 272|    |-			controlsAll: false,
|    | 272|+			"controlsAll": false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
| 275| 275| 			popMax: 200,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'popCount' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 270| 270| 			civ: "gaia",
| 271| 271| 			color: { r:1, g:1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
| 273|    |-			popCount: 10,
|    | 273|+			"popCount": 10,
| 274| 274| 			popLimit: 20,
| 275| 275| 			popMax: 200,
| 276| 276| 			panelEntities: [],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'popLimit' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 271| 271| 			color: { r:1, g:1, b:1, a:1 },
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274|    |-			popLimit: 20,
|    | 274|+			"popLimit": 20,
| 275| 275| 			popMax: 200,
| 276| 276| 			panelEntities: [],
| 277| 277| 			resourceCounts: { food: 100 },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'popMax' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 272| 272| 			controlsAll: false,
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
| 275|    |-			popMax: 200,
|    | 275|+			"popMax": 200,
| 276| 276| 			panelEntities: [],
| 277| 277| 			resourceCounts: { food: 100 },
| 278| 278| 			trainingBlocked: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'panelEntities' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 273| 273| 			popCount: 10,
| 274| 274| 			popLimit: 20,
| 275| 275| 			popMax: 200,
| 276|    |-			panelEntities: [],
|    | 276|+			"panelEntities": [],
| 277| 277| 			resourceCounts: { food: 100 },
| 278| 278| 			trainingBlocked: false,
| 279| 279| 			state: "active",
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'resourceCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 274| 274| 			popLimit: 20,
| 275| 275| 			popMax: 200,
| 276| 276| 			panelEntities: [],
| 277|    |-			resourceCounts: { food: 100 },
|    | 277|+			"resourceCounts": { food: 100 },
| 278| 278| 			trainingBlocked: false,
| 279| 279| 			state: "active",
| 280| 280| 			team: -1,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'food' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 274| 274| 			popLimit: 20,
| 275| 275| 			popMax: 200,
| 276| 276| 			panelEntities: [],
| 277|    |-			resourceCounts: { food: 100 },
|    | 277|+			resourceCounts: { "food": 100 },
| 278| 278| 			trainingBlocked: false,
| 279| 279| 			state: "active",
| 280| 280| 			team: -1,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'trainingBlocked' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 275| 275| 			popMax: 200,
| 276| 276| 			panelEntities: [],
| 277| 277| 			resourceCounts: { food: 100 },
| 278|    |-			trainingBlocked: false,
|    | 278|+			"trainingBlocked": false,
| 279| 279| 			state: "active",
| 280| 280| 			team: -1,
| 281| 281| 			teamsLocked: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'state' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 276| 276| 			panelEntities: [],
| 277| 277| 			resourceCounts: { food: 100 },
| 278| 278| 			trainingBlocked: false,
| 279|    |-			state: "active",
|    | 279|+			"state": "active",
| 280| 280| 			team: -1,
| 281| 281| 			teamsLocked: false,
| 282| 282| 			cheatsEnabled: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'team' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 277| 277| 			resourceCounts: { food: 100 },
| 278| 278| 			trainingBlocked: false,
| 279| 279| 			state: "active",
| 280|    |-			team: -1,
|    | 280|+			"team": -1,
| 281| 281| 			teamsLocked: false,
| 282| 282| 			cheatsEnabled: false,
| 283| 283| 			disabledTemplates: {},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'teamsLocked' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 278| 278| 			trainingBlocked: false,
| 279| 279| 			state: "active",
| 280| 280| 			team: -1,
| 281|    |-			teamsLocked: false,
|    | 281|+			"teamsLocked": false,
| 282| 282| 			cheatsEnabled: false,
| 283| 283| 			disabledTemplates: {},
| 284| 284| 			disabledTechnologies: {},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'cheatsEnabled' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 279| 279| 			state: "active",
| 280| 280| 			team: -1,
| 281| 281| 			teamsLocked: false,
| 282|    |-			cheatsEnabled: false,
|    | 282|+			"cheatsEnabled": false,
| 283| 283| 			disabledTemplates: {},
| 284| 284| 			disabledTechnologies: {},
| 285| 285| 			hasSharedDropsites: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'disabledTemplates' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 280| 280| 			team: -1,
| 281| 281| 			teamsLocked: false,
| 282| 282| 			cheatsEnabled: false,
| 283|    |-			disabledTemplates: {},
|    | 283|+			"disabledTemplates": {},
| 284| 284| 			disabledTechnologies: {},
| 285| 285| 			hasSharedDropsites: false,
| 286| 286| 			hasSharedLos: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'disabledTechnologies' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 281| 281| 			teamsLocked: false,
| 282| 282| 			cheatsEnabled: false,
| 283| 283| 			disabledTemplates: {},
| 284|    |-			disabledTechnologies: {},
|    | 284|+			"disabledTechnologies": {},
| 285| 285| 			hasSharedDropsites: false,
| 286| 286| 			hasSharedLos: false,
| 287| 287| 			spyCostMultiplier: 1,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'hasSharedDropsites' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 282| 282| 			cheatsEnabled: false,
| 283| 283| 			disabledTemplates: {},
| 284| 284| 			disabledTechnologies: {},
| 285|    |-			hasSharedDropsites: false,
|    | 285|+			"hasSharedDropsites": false,
| 286| 286| 			hasSharedLos: false,
| 287| 287| 			spyCostMultiplier: 1,
| 288| 288| 			phase: "village",
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'hasSharedLos' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 283| 283| 			disabledTemplates: {},
| 284| 284| 			disabledTechnologies: {},
| 285| 285| 			hasSharedDropsites: false,
| 286|    |-			hasSharedLos: false,
|    | 286|+			"hasSharedLos": false,
| 287| 287| 			spyCostMultiplier: 1,
| 288| 288| 			phase: "village",
| 289| 289| 			isAlly: [false, false],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'spyCostMultiplier' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 284| 284| 			disabledTechnologies: {},
| 285| 285| 			hasSharedDropsites: false,
| 286| 286| 			hasSharedLos: false,
| 287|    |-			spyCostMultiplier: 1,
|    | 287|+			"spyCostMultiplier": 1,
| 288| 288| 			phase: "village",
| 289| 289| 			isAlly: [false, false],
| 290| 290| 			isMutualAlly: [false, false],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'phase' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 285| 285| 			hasSharedDropsites: false,
| 286| 286| 			hasSharedLos: false,
| 287| 287| 			spyCostMultiplier: 1,
| 288|    |-			phase: "village",
|    | 288|+			"phase": "village",
| 289| 289| 			isAlly: [false, false],
| 290| 290| 			isMutualAlly: [false, false],
| 291| 291| 			isNeutral: [false, false],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'isAlly' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 286| 286| 			hasSharedLos: false,
| 287| 287| 			spyCostMultiplier: 1,
| 288| 288| 			phase: "village",
| 289|    |-			isAlly: [false, false],
|    | 289|+			"isAlly": [false, false],
| 290| 290| 			isMutualAlly: [false, false],
| 291| 291| 			isNeutral: [false, false],
| 292| 292| 			isEnemy: [true, true],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'isMutualAlly' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 287| 287| 			spyCostMultiplier: 1,
| 288| 288| 			phase: "village",
| 289| 289| 			isAlly: [false, false],
| 290|    |-			isMutualAlly: [false, false],
|    | 290|+			"isMutualAlly": [false, false],
| 291| 291| 			isNeutral: [false, false],
| 292| 292| 			isEnemy: [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'isNeutral' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 288| 288| 			phase: "village",
| 289| 289| 			isAlly: [false, false],
| 290| 290| 			isMutualAlly: [false, false],
| 291|    |-			isNeutral: [false, false],
|    | 291|+			"isNeutral": [false, false],
| 292| 292| 			isEnemy: [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
| 294| 294| 			entityCounts: {"Foo": 5},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'isEnemy' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 289| 289| 			isAlly: [false, false],
| 290| 290| 			isMutualAlly: [false, false],
| 291| 291| 			isNeutral: [false, false],
| 292|    |-			isEnemy: [true, true],
|    | 292|+			"isEnemy": [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
| 294| 294| 			entityCounts: {"Foo": 5},
| 295| 295| 			entityLimitChangers: {"Foo": {}},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'entityLimits' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 290| 290| 			isMutualAlly: [false, false],
| 291| 291| 			isNeutral: [false, false],
| 292| 292| 			isEnemy: [true, true],
| 293|    |-			entityLimits: {"Foo": 10},
|    | 293|+			"entityLimits": {"Foo": 10},
| 294| 294| 			entityCounts: {"Foo": 5},
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 290| 290| 			isMutualAlly: [false, false],
| 291| 291| 			isNeutral: [false, false],
| 292| 292| 			isEnemy: [true, true],
| 293|    |-			entityLimits: {"Foo": 10},
|    | 293|+			entityLimits: { "Foo": 10},
| 294| 294| 			entityCounts: {"Foo": 5},
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 290| 290| 			isMutualAlly: [false, false],
| 291| 291| 			isNeutral: [false, false],
| 292| 292| 			isEnemy: [true, true],
| 293|    |-			entityLimits: {"Foo": 10},
|    | 293|+			entityLimits: {"Foo": 10 },
| 294| 294| 			entityCounts: {"Foo": 5},
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'entityCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 291| 291| 			isNeutral: [false, false],
| 292| 292| 			isEnemy: [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
| 294|    |-			entityCounts: {"Foo": 5},
|    | 294|+			"entityCounts": {"Foo": 5},
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
| 297| 297| 			researchStarted: new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 291| 291| 			isNeutral: [false, false],
| 292| 292| 			isEnemy: [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
| 294|    |-			entityCounts: {"Foo": 5},
|    | 294|+			entityCounts: { "Foo": 5},
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
| 297| 297| 			researchStarted: new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 291| 291| 			isNeutral: [false, false],
| 292| 292| 			isEnemy: [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
| 294|    |-			entityCounts: {"Foo": 5},
|    | 294|+			entityCounts: {"Foo": 5 },
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
| 297| 297| 			researchStarted: new Set(),
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'entityLimitChangers' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 292| 292| 			isEnemy: [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
| 294| 294| 			entityCounts: {"Foo": 5},
| 295|    |-			entityLimitChangers: {"Foo": {}},
|    | 295|+			"entityLimitChangers": {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
| 297| 297| 			researchStarted: new Set(),
| 298| 298| 			researchedTechs: new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 292| 292| 			isEnemy: [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
| 294| 294| 			entityCounts: {"Foo": 5},
| 295|    |-			entityLimitChangers: {"Foo": {}},
|    | 295|+			entityLimitChangers: { "Foo": {}},
| 296| 296| 			researchQueued: new Map(),
| 297| 297| 			researchStarted: new Set(),
| 298| 298| 			researchedTechs: new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 292| 292| 			isEnemy: [true, true],
| 293| 293| 			entityLimits: {"Foo": 10},
| 294| 294| 			entityCounts: {"Foo": 5},
| 295|    |-			entityLimitChangers: {"Foo": {}},
|    | 295|+			entityLimitChangers: {"Foo": {} },
| 296| 296| 			researchQueued: new Map(),
| 297| 297| 			researchStarted: new Set(),
| 298| 298| 			researchedTechs: new Set(),
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'researchQueued' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 293| 293| 			entityLimits: {"Foo": 10},
| 294| 294| 			entityCounts: {"Foo": 5},
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296|    |-			researchQueued: new Map(),
|    | 296|+			"researchQueued": new Map(),
| 297| 297| 			researchStarted: new Set(),
| 298| 298| 			researchedTechs: new Set(),
| 299| 299| 			classCounts: {},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'researchStarted' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 294| 294| 			entityCounts: {"Foo": 5},
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
| 297|    |-			researchStarted: new Set(),
|    | 297|+			"researchStarted": new Set(),
| 298| 298| 			researchedTechs: new Set(),
| 299| 299| 			classCounts: {},
| 300| 300| 			typeCountsByClass: {},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'researchedTechs' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 295| 295| 			entityLimitChangers: {"Foo": {}},
| 296| 296| 			researchQueued: new Map(),
| 297| 297| 			researchStarted: new Set(),
| 298|    |-			researchedTechs: new Set(),
|    | 298|+			"researchedTechs": new Set(),
| 299| 299| 			classCounts: {},
| 300| 300| 			typeCountsByClass: {},
| 301| 301| 			canBarter: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'classCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 296| 296| 			researchQueued: new Map(),
| 297| 297| 			researchStarted: new Set(),
| 298| 298| 			researchedTechs: new Set(),
| 299|    |-			classCounts: {},
|    | 299|+			"classCounts": {},
| 300| 300| 			typeCountsByClass: {},
| 301| 301| 			canBarter: false,
| 302| 302| 			barterPrices: {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'typeCountsByClass' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 297| 297| 			researchStarted: new Set(),
| 298| 298| 			researchedTechs: new Set(),
| 299| 299| 			classCounts: {},
| 300|    |-			typeCountsByClass: {},
|    | 300|+			"typeCountsByClass": {},
| 301| 301| 			canBarter: false,
| 302| 302| 			barterPrices: {
| 303| 303| 				"buy": { "food": 150 },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'canBarter' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 298| 298| 			researchedTechs: new Set(),
| 299| 299| 			classCounts: {},
| 300| 300| 			typeCountsByClass: {},
| 301|    |-			canBarter: false,
|    | 301|+			"canBarter": false,
| 302| 302| 			barterPrices: {
| 303| 303| 				"buy": { "food": 150 },
| 304| 304| 				"sell": { "food": 25 }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'barterPrices' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 299| 299| 			classCounts: {},
| 300| 300| 			typeCountsByClass: {},
| 301| 301| 			canBarter: false,
| 302|    |-			barterPrices: {
|    | 302|+			"barterPrices": {
| 303| 303| 				"buy": { "food": 150 },
| 304| 304| 				"sell": { "food": 25 }
| 305| 305| 			},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'statistics' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 303| 303| 				"buy": { "food": 150 },
| 304| 304| 				"sell": { "food": 25 }
| 305| 305| 			},
| 306|    |-			statistics: {
|    | 306|+			"statistics": {
| 307| 307| 				resourcesGathered: {
| 308| 308| 					food: 100,
| 309| 309| 					wood: 0,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'resourcesGathered' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 304| 304| 				"sell": { "food": 25 }
| 305| 305| 			},
| 306| 306| 			statistics: {
| 307|    |-				resourcesGathered: {
|    | 307|+				"resourcesGathered": {
| 308| 308| 					food: 100,
| 309| 309| 					wood: 0,
| 310| 310| 					metal: 0,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'food' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 305| 305| 			},
| 306| 306| 			statistics: {
| 307| 307| 				resourcesGathered: {
| 308|    |-					food: 100,
|    | 308|+					"food": 100,
| 309| 309| 					wood: 0,
| 310| 310| 					metal: 0,
| 311| 311| 					stone: 0,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'wood' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 306| 306| 			statistics: {
| 307| 307| 				resourcesGathered: {
| 308| 308| 					food: 100,
| 309|    |-					wood: 0,
|    | 309|+					"wood": 0,
| 310| 310| 					metal: 0,
| 311| 311| 					stone: 0,
| 312| 312| 					vegetarianFood: 0
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'metal' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 307| 307| 				resourcesGathered: {
| 308| 308| 					food: 100,
| 309| 309| 					wood: 0,
| 310|    |-					metal: 0,
|    | 310|+					"metal": 0,
| 311| 311| 					stone: 0,
| 312| 312| 					vegetarianFood: 0
| 313| 313| 				},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'stone' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 308| 308| 					food: 100,
| 309| 309| 					wood: 0,
| 310| 310| 					metal: 0,
| 311|    |-					stone: 0,
|    | 311|+					"stone": 0,
| 312| 312| 					vegetarianFood: 0
| 313| 313| 				},
| 314| 314| 				percentMapExplored: 10
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'vegetarianFood' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 309| 309| 					wood: 0,
| 310| 310| 					metal: 0,
| 311| 311| 					stone: 0,
| 312|    |-					vegetarianFood: 0
|    | 312|+					"vegetarianFood": 0
| 313| 313| 				},
| 314| 314| 				percentMapExplored: 10
| 315| 315| 			}
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'percentMapExplored' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 311| 311| 					stone: 0,
| 312| 312| 					vegetarianFood: 0
| 313| 313| 				},
| 314|    |-				percentMapExplored: 10
|    | 314|+				"percentMapExplored": 10
| 315| 315| 			}
| 316| 316| 		},
| 317| 317| 		{
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'name' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 315| 315| 			}
| 316| 316| 		},
| 317| 317| 		{
| 318|    |-			name: "Player 2",
|    | 318|+			"name": "Player 2",
| 319| 319| 			civ: "mace",
| 320| 320| 			color: { r:1, g:0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'civ' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 316| 316| 		},
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319|    |-			civ: "mace",
|    | 319|+			"civ": "mace",
| 320| 320| 			color: { r:1, g:0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'color' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			"color": { r:1, g:0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'r' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			color: { "r":1, g:0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'r'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			color: { r: 1, g:0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'g' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			color: { r:1, "g":0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'g'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			color: { r:1, g: 0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'b' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			color: { r:1, g:0, "b":0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'b'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			color: { r:1, g:0, b: 0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'a' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			color: { r:1, g:0, b:0, "a":1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'a'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 317| 317| 		{
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320|    |-			color: { r:1, g:0, b:0, a:1 },
|    | 320|+			color: { r:1, g:0, b:0, a: 1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'controlsAll' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 318| 318| 			name: "Player 2",
| 319| 319| 			civ: "mace",
| 320| 320| 			color: { r:1, g:0, b:0, a:1 },
| 321|    |-			controlsAll: true,
|    | 321|+			"controlsAll": true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
| 324| 324| 			popMax: 300,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'popCount' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 319| 319| 			civ: "mace",
| 320| 320| 			color: { r:1, g:0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
| 322|    |-			popCount: 40,
|    | 322|+			"popCount": 40,
| 323| 323| 			popLimit: 30,
| 324| 324| 			popMax: 300,
| 325| 325| 			panelEntities: [],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'popLimit' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 320| 320| 			color: { r:1, g:0, b:0, a:1 },
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323|    |-			popLimit: 30,
|    | 323|+			"popLimit": 30,
| 324| 324| 			popMax: 300,
| 325| 325| 			panelEntities: [],
| 326| 326| 			resourceCounts: { food: 200 },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'popMax' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 321| 321| 			controlsAll: true,
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
| 324|    |-			popMax: 300,
|    | 324|+			"popMax": 300,
| 325| 325| 			panelEntities: [],
| 326| 326| 			resourceCounts: { food: 200 },
| 327| 327| 			trainingBlocked: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'panelEntities' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 322| 322| 			popCount: 40,
| 323| 323| 			popLimit: 30,
| 324| 324| 			popMax: 300,
| 325|    |-			panelEntities: [],
|    | 325|+			"panelEntities": [],
| 326| 326| 			resourceCounts: { food: 200 },
| 327| 327| 			trainingBlocked: false,
| 328| 328| 			state: "active",
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'resourceCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 323| 323| 			popLimit: 30,
| 324| 324| 			popMax: 300,
| 325| 325| 			panelEntities: [],
| 326|    |-			resourceCounts: { food: 200 },
|    | 326|+			"resourceCounts": { food: 200 },
| 327| 327| 			trainingBlocked: false,
| 328| 328| 			state: "active",
| 329| 329| 			team: -1,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'food' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 323| 323| 			popLimit: 30,
| 324| 324| 			popMax: 300,
| 325| 325| 			panelEntities: [],
| 326|    |-			resourceCounts: { food: 200 },
|    | 326|+			resourceCounts: { "food": 200 },
| 327| 327| 			trainingBlocked: false,
| 328| 328| 			state: "active",
| 329| 329| 			team: -1,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'trainingBlocked' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 324| 324| 			popMax: 300,
| 325| 325| 			panelEntities: [],
| 326| 326| 			resourceCounts: { food: 200 },
| 327|    |-			trainingBlocked: false,
|    | 327|+			"trainingBlocked": false,
| 328| 328| 			state: "active",
| 329| 329| 			team: -1,
| 330| 330| 			teamsLocked: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'state' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 325| 325| 			panelEntities: [],
| 326| 326| 			resourceCounts: { food: 200 },
| 327| 327| 			trainingBlocked: false,
| 328|    |-			state: "active",
|    | 328|+			"state": "active",
| 329| 329| 			team: -1,
| 330| 330| 			teamsLocked: false,
| 331| 331| 			cheatsEnabled: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'team' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 326| 326| 			resourceCounts: { food: 200 },
| 327| 327| 			trainingBlocked: false,
| 328| 328| 			state: "active",
| 329|    |-			team: -1,
|    | 329|+			"team": -1,
| 330| 330| 			teamsLocked: false,
| 331| 331| 			cheatsEnabled: false,
| 332| 332| 			disabledTemplates: {},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'teamsLocked' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 327| 327| 			trainingBlocked: false,
| 328| 328| 			state: "active",
| 329| 329| 			team: -1,
| 330|    |-			teamsLocked: false,
|    | 330|+			"teamsLocked": false,
| 331| 331| 			cheatsEnabled: false,
| 332| 332| 			disabledTemplates: {},
| 333| 333| 			disabledTechnologies: {},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'cheatsEnabled' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 328| 328| 			state: "active",
| 329| 329| 			team: -1,
| 330| 330| 			teamsLocked: false,
| 331|    |-			cheatsEnabled: false,
|    | 331|+			"cheatsEnabled": false,
| 332| 332| 			disabledTemplates: {},
| 333| 333| 			disabledTechnologies: {},
| 334| 334| 			hasSharedDropsites: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'disabledTemplates' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 329| 329| 			team: -1,
| 330| 330| 			teamsLocked: false,
| 331| 331| 			cheatsEnabled: false,
| 332|    |-			disabledTemplates: {},
|    | 332|+			"disabledTemplates": {},
| 333| 333| 			disabledTechnologies: {},
| 334| 334| 			hasSharedDropsites: false,
| 335| 335| 			hasSharedLos: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'disabledTechnologies' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 330| 330| 			teamsLocked: false,
| 331| 331| 			cheatsEnabled: false,
| 332| 332| 			disabledTemplates: {},
| 333|    |-			disabledTechnologies: {},
|    | 333|+			"disabledTechnologies": {},
| 334| 334| 			hasSharedDropsites: false,
| 335| 335| 			hasSharedLos: false,
| 336| 336| 			spyCostMultiplier: 1,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'hasSharedDropsites' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 331| 331| 			cheatsEnabled: false,
| 332| 332| 			disabledTemplates: {},
| 333| 333| 			disabledTechnologies: {},
| 334|    |-			hasSharedDropsites: false,
|    | 334|+			"hasSharedDropsites": false,
| 335| 335| 			hasSharedLos: false,
| 336| 336| 			spyCostMultiplier: 1,
| 337| 337| 			phase: "village",
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'hasSharedLos' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 332| 332| 			disabledTemplates: {},
| 333| 333| 			disabledTechnologies: {},
| 334| 334| 			hasSharedDropsites: false,
| 335|    |-			hasSharedLos: false,
|    | 335|+			"hasSharedLos": false,
| 336| 336| 			spyCostMultiplier: 1,
| 337| 337| 			phase: "village",
| 338| 338| 			isAlly: [true, true],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'spyCostMultiplier' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 333| 333| 			disabledTechnologies: {},
| 334| 334| 			hasSharedDropsites: false,
| 335| 335| 			hasSharedLos: false,
| 336|    |-			spyCostMultiplier: 1,
|    | 336|+			"spyCostMultiplier": 1,
| 337| 337| 			phase: "village",
| 338| 338| 			isAlly: [true, true],
| 339| 339| 			isMutualAlly: [false, false],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'phase' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 334| 334| 			hasSharedDropsites: false,
| 335| 335| 			hasSharedLos: false,
| 336| 336| 			spyCostMultiplier: 1,
| 337|    |-			phase: "village",
|    | 337|+			"phase": "village",
| 338| 338| 			isAlly: [true, true],
| 339| 339| 			isMutualAlly: [false, false],
| 340| 340| 			isNeutral: [false, false],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'isAlly' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 335| 335| 			hasSharedLos: false,
| 336| 336| 			spyCostMultiplier: 1,
| 337| 337| 			phase: "village",
| 338|    |-			isAlly: [true, true],
|    | 338|+			"isAlly": [true, true],
| 339| 339| 			isMutualAlly: [false, false],
| 340| 340| 			isNeutral: [false, false],
| 341| 341| 			isEnemy: [false, false],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'isMutualAlly' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 336| 336| 			spyCostMultiplier: 1,
| 337| 337| 			phase: "village",
| 338| 338| 			isAlly: [true, true],
| 339|    |-			isMutualAlly: [false, false],
|    | 339|+			"isMutualAlly": [false, false],
| 340| 340| 			isNeutral: [false, false],
| 341| 341| 			isEnemy: [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'isNeutral' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 337| 337| 			phase: "village",
| 338| 338| 			isAlly: [true, true],
| 339| 339| 			isMutualAlly: [false, false],
| 340|    |-			isNeutral: [false, false],
|    | 340|+			"isNeutral": [false, false],
| 341| 341| 			isEnemy: [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
| 343| 343| 			entityCounts: {"Bar": 0},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'isEnemy' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 338| 338| 			isAlly: [true, true],
| 339| 339| 			isMutualAlly: [false, false],
| 340| 340| 			isNeutral: [false, false],
| 341|    |-			isEnemy: [false, false],
|    | 341|+			"isEnemy": [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
| 343| 343| 			entityCounts: {"Bar": 0},
| 344| 344| 			entityLimitChangers: {"Bar": {}},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'entityLimits' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 339| 339| 			isMutualAlly: [false, false],
| 340| 340| 			isNeutral: [false, false],
| 341| 341| 			isEnemy: [false, false],
| 342|    |-			entityLimits: {"Bar": 20},
|    | 342|+			"entityLimits": {"Bar": 20},
| 343| 343| 			entityCounts: {"Bar": 0},
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 339| 339| 			isMutualAlly: [false, false],
| 340| 340| 			isNeutral: [false, false],
| 341| 341| 			isEnemy: [false, false],
| 342|    |-			entityLimits: {"Bar": 20},
|    | 342|+			entityLimits: { "Bar": 20},
| 343| 343| 			entityCounts: {"Bar": 0},
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 339| 339| 			isMutualAlly: [false, false],
| 340| 340| 			isNeutral: [false, false],
| 341| 341| 			isEnemy: [false, false],
| 342|    |-			entityLimits: {"Bar": 20},
|    | 342|+			entityLimits: {"Bar": 20 },
| 343| 343| 			entityCounts: {"Bar": 0},
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'entityCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 340| 340| 			isNeutral: [false, false],
| 341| 341| 			isEnemy: [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
| 343|    |-			entityCounts: {"Bar": 0},
|    | 343|+			"entityCounts": {"Bar": 0},
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
| 346| 346| 			researchStarted: new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 340| 340| 			isNeutral: [false, false],
| 341| 341| 			isEnemy: [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
| 343|    |-			entityCounts: {"Bar": 0},
|    | 343|+			entityCounts: { "Bar": 0},
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
| 346| 346| 			researchStarted: new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 340| 340| 			isNeutral: [false, false],
| 341| 341| 			isEnemy: [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
| 343|    |-			entityCounts: {"Bar": 0},
|    | 343|+			entityCounts: {"Bar": 0 },
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
| 346| 346| 			researchStarted: new Set(),
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'entityLimitChangers' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 341| 341| 			isEnemy: [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
| 343| 343| 			entityCounts: {"Bar": 0},
| 344|    |-			entityLimitChangers: {"Bar": {}},
|    | 344|+			"entityLimitChangers": {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
| 346| 346| 			researchStarted: new Set(),
| 347| 347| 			researchedTechs: new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 341| 341| 			isEnemy: [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
| 343| 343| 			entityCounts: {"Bar": 0},
| 344|    |-			entityLimitChangers: {"Bar": {}},
|    | 344|+			entityLimitChangers: { "Bar": {}},
| 345| 345| 			researchQueued: new Map(),
| 346| 346| 			researchStarted: new Set(),
| 347| 347| 			researchedTechs: new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 341| 341| 			isEnemy: [false, false],
| 342| 342| 			entityLimits: {"Bar": 20},
| 343| 343| 			entityCounts: {"Bar": 0},
| 344|    |-			entityLimitChangers: {"Bar": {}},
|    | 344|+			entityLimitChangers: {"Bar": {} },
| 345| 345| 			researchQueued: new Map(),
| 346| 346| 			researchStarted: new Set(),
| 347| 347| 			researchedTechs: new Set(),
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'researchQueued' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 342| 342| 			entityLimits: {"Bar": 20},
| 343| 343| 			entityCounts: {"Bar": 0},
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345|    |-			researchQueued: new Map(),
|    | 345|+			"researchQueued": new Map(),
| 346| 346| 			researchStarted: new Set(),
| 347| 347| 			researchedTechs: new Set(),
| 348| 348| 			classCounts: {},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'researchStarted' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 343| 343| 			entityCounts: {"Bar": 0},
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
| 346|    |-			researchStarted: new Set(),
|    | 346|+			"researchStarted": new Set(),
| 347| 347| 			researchedTechs: new Set(),
| 348| 348| 			classCounts: {},
| 349| 349| 			typeCountsByClass: {},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'researchedTechs' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 344| 344| 			entityLimitChangers: {"Bar": {}},
| 345| 345| 			researchQueued: new Map(),
| 346| 346| 			researchStarted: new Set(),
| 347|    |-			researchedTechs: new Set(),
|    | 347|+			"researchedTechs": new Set(),
| 348| 348| 			classCounts: {},
| 349| 349| 			typeCountsByClass: {},
| 350| 350| 			canBarter: false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'classCounts' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 345| 345| 			researchQueued: new Map(),
| 346| 346| 			researchStarted: new Set(),
| 347| 347| 			researchedTechs: new Set(),
| 348|    |-			classCounts: {},
|    | 348|+			"classCounts": {},
| 349| 349| 			typeCountsByClass: {},
| 350| 350| 			canBarter: false,
| 351| 351| 			barterPrices: {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'typeCountsByClass' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 346| 346| 			researchStarted: new Set(),
| 347| 347| 			researchedTechs: new Set(),
| 348| 348| 			classCounts: {},
| 349|    |-			typeCountsByClass: {},
|    | 349|+			"typeCountsByClass": {},
| 350| 350| 			canBarter: false,
| 351| 351| 			barterPrices: {
| 352| 352| 				"buy": { "food": 150 },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'canBarter' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 347| 347| 			researchedTechs: new Set(),
| 348| 348| 			classCounts: {},
| 349| 349| 			typeCountsByClass: {},
| 350|    |-			canBarter: false,
|    | 350|+			"canBarter": false,
| 351| 351| 			barterPrices: {
| 352| 352| 				"buy": { "food": 150 },
| 353| 353| 				"sell": { "food": 25 }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'barterPrices' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 348| 348| 			classCounts: {},
| 349| 349| 			typeCountsByClass: {},
| 350| 350| 			canBarter: false,
| 351|    |-			barterPrices: {
|    | 351|+			"barterPrices": {
| 352| 352| 				"buy": { "food": 150 },
| 353| 353| 				"sell": { "food": 25 }
| 354| 354| 			},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'statistics' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 352| 352| 				"buy": { "food": 150 },
| 353| 353| 				"sell": { "food": 25 }
| 354| 354| 			},
| 355|    |-			statistics: {
|    | 355|+			"statistics": {
| 356| 356| 				resourcesGathered: {
| 357| 357| 					food: 100,
| 358| 358| 					wood: 0,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'resourcesGathered' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 353| 353| 				"sell": { "food": 25 }
| 354| 354| 			},
| 355| 355| 			statistics: {
| 356|    |-				resourcesGathered: {
|    | 356|+				"resourcesGathered": {
| 357| 357| 					food: 100,
| 358| 358| 					wood: 0,
| 359| 359| 					metal: 0,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'food' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 354| 354| 			},
| 355| 355| 			statistics: {
| 356| 356| 				resourcesGathered: {
| 357|    |-					food: 100,
|    | 357|+					"food": 100,
| 358| 358| 					wood: 0,
| 359| 359| 					metal: 0,
| 360| 360| 					stone: 0,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'wood' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 355| 355| 			statistics: {
| 356| 356| 				resourcesGathered: {
| 357| 357| 					food: 100,
| 358|    |-					wood: 0,
|    | 358|+					"wood": 0,
| 359| 359| 					metal: 0,
| 360| 360| 					stone: 0,
| 361| 361| 					vegetarianFood: 0
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'metal' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 356| 356| 				resourcesGathered: {
| 357| 357| 					food: 100,
| 358| 358| 					wood: 0,
| 359|    |-					metal: 0,
|    | 359|+					"metal": 0,
| 360| 360| 					stone: 0,
| 361| 361| 					vegetarianFood: 0
| 362| 362| 				},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'stone' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 357| 357| 					food: 100,
| 358| 358| 					wood: 0,
| 359| 359| 					metal: 0,
| 360|    |-					stone: 0,
|    | 360|+					"stone": 0,
| 361| 361| 					vegetarianFood: 0
| 362| 362| 				},
| 363| 363| 				percentMapExplored: 10
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'vegetarianFood' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 358| 358| 					wood: 0,
| 359| 359| 					metal: 0,
| 360| 360| 					stone: 0,
| 361|    |-					vegetarianFood: 0
|    | 361|+					"vegetarianFood": 0
| 362| 362| 				},
| 363| 363| 				percentMapExplored: 10
| 364| 364| 			}
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'percentMapExplored' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 360| 360| 					stone: 0,
| 361| 361| 					vegetarianFood: 0
| 362| 362| 				},
| 363|    |-				percentMapExplored: 10
|    | 363|+				"percentMapExplored": 10
| 364| 364| 			}
| 365| 365| 		}
| 366| 366| 	],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'circularMap' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 364| 364| 			}
| 365| 365| 		}
| 366| 366| 	],
| 367|    |-	circularMap: false,
|    | 367|+	"circularMap": false,
| 368| 368| 	timeElapsed: 0,
| 369| 369| 	"victoryConditions": ["conquest", "wonder"],
| 370| 370| 	alliedVictory: false
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'timeElapsed' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 365| 365| 		}
| 366| 366| 	],
| 367| 367| 	circularMap: false,
| 368|    |-	timeElapsed: 0,
|    | 368|+	"timeElapsed": 0,
| 369| 369| 	"victoryConditions": ["conquest", "wonder"],
| 370| 370| 	alliedVictory: false
| 371| 371| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'alliedVictory' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 367| 367| 	circularMap: false,
| 368| 368| 	timeElapsed: 0,
| 369| 369| 	"victoryConditions": ["conquest", "wonder"],
| 370|    |-	alliedVictory: false
|    | 370|+	"alliedVictory": false
| 371| 371| });
| 372| 372| 
| 373| 373| TS_ASSERT_UNEVAL_EQUALS(cmp.GetExtendedSimulationState(), {
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'r'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 375| 375| 		{
| 376| 376| 			"name": "Player 1",
| 377| 377| 			"civ": "gaia",
| 378|    |-			"color": { "r":1, "g":1, "b":1, "a":1 },
|    | 378|+			"color": { "r": 1, "g":1, "b":1, "a":1 },
| 379| 379| 			"controlsAll": false,
| 380| 380| 			"popCount": 10,
| 381| 381| 			"popLimit": 20,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'g'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 375| 375| 		{
| 376| 376| 			"name": "Player 1",
| 377| 377| 			"civ": "gaia",
| 378|    |-			"color": { "r":1, "g":1, "b":1, "a":1 },
|    | 378|+			"color": { "r":1, "g": 1, "b":1, "a":1 },
| 379| 379| 			"controlsAll": false,
| 380| 380| 			"popCount": 10,
| 381| 381| 			"popLimit": 20,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'b'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 375| 375| 		{
| 376| 376| 			"name": "Player 1",
| 377| 377| 			"civ": "gaia",
| 378|    |-			"color": { "r":1, "g":1, "b":1, "a":1 },
|    | 378|+			"color": { "r":1, "g":1, "b": 1, "a":1 },
| 379| 379| 			"controlsAll": false,
| 380| 380| 			"popCount": 10,
| 381| 381| 			"popLimit": 20,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'a'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 375| 375| 		{
| 376| 376| 			"name": "Player 1",
| 377| 377| 			"civ": "gaia",
| 378|    |-			"color": { "r":1, "g":1, "b":1, "a":1 },
|    | 378|+			"color": { "r":1, "g":1, "b":1, "a": 1 },
| 379| 379| 			"controlsAll": false,
| 380| 380| 			"popCount": 10,
| 381| 381| 			"popLimit": 20,
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 397| 397| 			"isMutualAlly": [false, false],
| 398| 398| 			"isNeutral": [false, false],
| 399| 399| 			"isEnemy": [true, true],
| 400|    |-			"entityLimits": {"Foo": 10},
|    | 400|+			"entityLimits": { "Foo": 10},
| 401| 401| 			"entityCounts": {"Foo": 5},
| 402| 402| 			"entityLimitChangers": {"Foo": {}},
| 403| 403| 			"researchQueued": new Map(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 397| 397| 			"isMutualAlly": [false, false],
| 398| 398| 			"isNeutral": [false, false],
| 399| 399| 			"isEnemy": [true, true],
| 400|    |-			"entityLimits": {"Foo": 10},
|    | 400|+			"entityLimits": {"Foo": 10 },
| 401| 401| 			"entityCounts": {"Foo": 5},
| 402| 402| 			"entityLimitChangers": {"Foo": {}},
| 403| 403| 			"researchQueued": new Map(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 398| 398| 			"isNeutral": [false, false],
| 399| 399| 			"isEnemy": [true, true],
| 400| 400| 			"entityLimits": {"Foo": 10},
| 401|    |-			"entityCounts": {"Foo": 5},
|    | 401|+			"entityCounts": { "Foo": 5},
| 402| 402| 			"entityLimitChangers": {"Foo": {}},
| 403| 403| 			"researchQueued": new Map(),
| 404| 404| 			"researchStarted": new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 398| 398| 			"isNeutral": [false, false],
| 399| 399| 			"isEnemy": [true, true],
| 400| 400| 			"entityLimits": {"Foo": 10},
| 401|    |-			"entityCounts": {"Foo": 5},
|    | 401|+			"entityCounts": {"Foo": 5 },
| 402| 402| 			"entityLimitChangers": {"Foo": {}},
| 403| 403| 			"researchQueued": new Map(),
| 404| 404| 			"researchStarted": new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 399| 399| 			"isEnemy": [true, true],
| 400| 400| 			"entityLimits": {"Foo": 10},
| 401| 401| 			"entityCounts": {"Foo": 5},
| 402|    |-			"entityLimitChangers": {"Foo": {}},
|    | 402|+			"entityLimitChangers": { "Foo": {}},
| 403| 403| 			"researchQueued": new Map(),
| 404| 404| 			"researchStarted": new Set(),
| 405| 405| 			"researchedTechs": new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 399| 399| 			"isEnemy": [true, true],
| 400| 400| 			"entityLimits": {"Foo": 10},
| 401| 401| 			"entityCounts": {"Foo": 5},
| 402|    |-			"entityLimitChangers": {"Foo": {}},
|    | 402|+			"entityLimitChangers": {"Foo": {} },
| 403| 403| 			"researchQueued": new Map(),
| 404| 404| 			"researchStarted": new Set(),
| 405| 405| 			"researchedTechs": new Set(),
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'r'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 447| 447| 		{
| 448| 448| 			"name": "Player 2",
| 449| 449| 			"civ": "mace",
| 450|    |-			"color": { "r":1, "g":0, "b":0, "a":1 },
|    | 450|+			"color": { "r": 1, "g":0, "b":0, "a":1 },
| 451| 451| 			"controlsAll": true,
| 452| 452| 			"popCount": 40,
| 453| 453| 			"popLimit": 30,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'g'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 447| 447| 		{
| 448| 448| 			"name": "Player 2",
| 449| 449| 			"civ": "mace",
| 450|    |-			"color": { "r":1, "g":0, "b":0, "a":1 },
|    | 450|+			"color": { "r":1, "g": 0, "b":0, "a":1 },
| 451| 451| 			"controlsAll": true,
| 452| 452| 			"popCount": 40,
| 453| 453| 			"popLimit": 30,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'b'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 447| 447| 		{
| 448| 448| 			"name": "Player 2",
| 449| 449| 			"civ": "mace",
| 450|    |-			"color": { "r":1, "g":0, "b":0, "a":1 },
|    | 450|+			"color": { "r":1, "g":0, "b": 0, "a":1 },
| 451| 451| 			"controlsAll": true,
| 452| 452| 			"popCount": 40,
| 453| 453| 			"popLimit": 30,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'a'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 447| 447| 		{
| 448| 448| 			"name": "Player 2",
| 449| 449| 			"civ": "mace",
| 450|    |-			"color": { "r":1, "g":0, "b":0, "a":1 },
|    | 450|+			"color": { "r":1, "g":0, "b":0, "a": 1 },
| 451| 451| 			"controlsAll": true,
| 452| 452| 			"popCount": 40,
| 453| 453| 			"popLimit": 30,
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 469| 469| 			"isMutualAlly": [false, false],
| 470| 470| 			"isNeutral": [false, false],
| 471| 471| 			"isEnemy": [false, false],
| 472|    |-			"entityLimits": {"Bar": 20},
|    | 472|+			"entityLimits": { "Bar": 20},
| 473| 473| 			"entityCounts": {"Bar": 0},
| 474| 474| 			"entityLimitChangers": {"Bar": {}},
| 475| 475| 			"researchQueued": new Map(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 469| 469| 			"isMutualAlly": [false, false],
| 470| 470| 			"isNeutral": [false, false],
| 471| 471| 			"isEnemy": [false, false],
| 472|    |-			"entityLimits": {"Bar": 20},
|    | 472|+			"entityLimits": {"Bar": 20 },
| 473| 473| 			"entityCounts": {"Bar": 0},
| 474| 474| 			"entityLimitChangers": {"Bar": {}},
| 475| 475| 			"researchQueued": new Map(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 470| 470| 			"isNeutral": [false, false],
| 471| 471| 			"isEnemy": [false, false],
| 472| 472| 			"entityLimits": {"Bar": 20},
| 473|    |-			"entityCounts": {"Bar": 0},
|    | 473|+			"entityCounts": { "Bar": 0},
| 474| 474| 			"entityLimitChangers": {"Bar": {}},
| 475| 475| 			"researchQueued": new Map(),
| 476| 476| 			"researchStarted": new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 470| 470| 			"isNeutral": [false, false],
| 471| 471| 			"isEnemy": [false, false],
| 472| 472| 			"entityLimits": {"Bar": 20},
| 473|    |-			"entityCounts": {"Bar": 0},
|    | 473|+			"entityCounts": {"Bar": 0 },
| 474| 474| 			"entityLimitChangers": {"Bar": {}},
| 475| 475| 			"researchQueued": new Map(),
| 476| 476| 			"researchStarted": new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 471| 471| 			"isEnemy": [false, false],
| 472| 472| 			"entityLimits": {"Bar": 20},
| 473| 473| 			"entityCounts": {"Bar": 0},
| 474|    |-			"entityLimitChangers": {"Bar": {}},
|    | 474|+			"entityLimitChangers": { "Bar": {}},
| 475| 475| 			"researchQueued": new Map(),
| 476| 476| 			"researchStarted": new Set(),
| 477| 477| 			"researchedTechs": new Set(),
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 471| 471| 			"isEnemy": [false, false],
| 472| 472| 			"entityLimits": {"Bar": 20},
| 473| 473| 			"entityCounts": {"Bar": 0},
| 474|    |-			"entityLimitChangers": {"Bar": {}},
|    | 474|+			"entityLimitChangers": {"Bar": {} },
| 475| 475| 			"researchQueued": new Map(),
| 476| 476| 			"researchStarted": new Set(),
| 477| 477| 			"researchedTechs": new Set(),
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetEntitiesList' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 525| 525| 
| 526| 526| 
| 527| 527| AddMock(10, IID_Builder, {
| 528|    |-	GetEntitiesList: function() {
|    | 528|+	"GetEntitiesList": function() {
| 529| 529| 		return ["test1", "test2"];
| 530| 530| 	},
| 531| 531| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetHitpoints' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 531| 531| });
| 532| 532| 
| 533| 533| AddMock(10, IID_Health, {
| 534|    |-	GetHitpoints: function() { return 50; },
|    | 534|+	"GetHitpoints": function() { return 50; },
| 535| 535| 	GetMaxHitpoints: function() { return 60; },
| 536| 536| 	IsRepairable: function() { return false; },
| 537| 537| 	IsUnhealable: function() { return false; }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetMaxHitpoints' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 532| 532| 
| 533| 533| AddMock(10, IID_Health, {
| 534| 534| 	GetHitpoints: function() { return 50; },
| 535|    |-	GetMaxHitpoints: function() { return 60; },
|    | 535|+	"GetMaxHitpoints": function() { return 60; },
| 536| 536| 	IsRepairable: function() { return false; },
| 537| 537| 	IsUnhealable: function() { return false; }
| 538| 538| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsRepairable' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 533| 533| AddMock(10, IID_Health, {
| 534| 534| 	GetHitpoints: function() { return 50; },
| 535| 535| 	GetMaxHitpoints: function() { return 60; },
| 536|    |-	IsRepairable: function() { return false; },
|    | 536|+	"IsRepairable": function() { return false; },
| 537| 537| 	IsUnhealable: function() { return false; }
| 538| 538| });
| 539| 539| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsUnhealable' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 534| 534| 	GetHitpoints: function() { return 50; },
| 535| 535| 	GetMaxHitpoints: function() { return 60; },
| 536| 536| 	IsRepairable: function() { return false; },
| 537|    |-	IsUnhealable: function() { return false; }
|    | 537|+	"IsUnhealable": function() { return false; }
| 538| 538| });
| 539| 539| 
| 540| 540| AddMock(10, IID_Identity, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetClassesList' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 538| 538| });
| 539| 539| 
| 540| 540| AddMock(10, IID_Identity, {
| 541|    |-	GetClassesList: function() { return ["class1", "class2"]; },
|    | 541|+	"GetClassesList": function() { return ["class1", "class2"]; },
| 542| 542| 	GetVisibleClassesList: function() { return ["class3", "class4"]; },
| 543| 543| 	GetRank: function() { return "foo"; },
| 544| 544| 	GetSelectionGroupName: function() { return "Selection Group Name"; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetVisibleClassesList' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 539| 539| 
| 540| 540| AddMock(10, IID_Identity, {
| 541| 541| 	GetClassesList: function() { return ["class1", "class2"]; },
| 542|    |-	GetVisibleClassesList: function() { return ["class3", "class4"]; },
|    | 542|+	"GetVisibleClassesList": function() { return ["class3", "class4"]; },
| 543| 543| 	GetRank: function() { return "foo"; },
| 544| 544| 	GetSelectionGroupName: function() { return "Selection Group Name"; },
| 545| 545| 	HasClass: function() { return true; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetRank' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 540| 540| AddMock(10, IID_Identity, {
| 541| 541| 	GetClassesList: function() { return ["class1", "class2"]; },
| 542| 542| 	GetVisibleClassesList: function() { return ["class3", "class4"]; },
| 543|    |-	GetRank: function() { return "foo"; },
|    | 543|+	"GetRank": function() { return "foo"; },
| 544| 544| 	GetSelectionGroupName: function() { return "Selection Group Name"; },
| 545| 545| 	HasClass: function() { return true; },
| 546| 546| 	IsUndeletable: function() { return false; }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetSelectionGroupName' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 541| 541| 	GetClassesList: function() { return ["class1", "class2"]; },
| 542| 542| 	GetVisibleClassesList: function() { return ["class3", "class4"]; },
| 543| 543| 	GetRank: function() { return "foo"; },
| 544|    |-	GetSelectionGroupName: function() { return "Selection Group Name"; },
|    | 544|+	"GetSelectionGroupName": function() { return "Selection Group Name"; },
| 545| 545| 	HasClass: function() { return true; },
| 546| 546| 	IsUndeletable: function() { return false; }
| 547| 547| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'HasClass' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 542| 542| 	GetVisibleClassesList: function() { return ["class3", "class4"]; },
| 543| 543| 	GetRank: function() { return "foo"; },
| 544| 544| 	GetSelectionGroupName: function() { return "Selection Group Name"; },
| 545|    |-	HasClass: function() { return true; },
|    | 545|+	"HasClass": function() { return true; },
| 546| 546| 	IsUndeletable: function() { return false; }
| 547| 547| });
| 548| 548| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsUndeletable' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 543| 543| 	GetRank: function() { return "foo"; },
| 544| 544| 	GetSelectionGroupName: function() { return "Selection Group Name"; },
| 545| 545| 	HasClass: function() { return true; },
| 546|    |-	IsUndeletable: function() { return false; }
|    | 546|+	"IsUndeletable": function() { return false; }
| 547| 547| });
| 548| 548| 
| 549| 549| AddMock(10, IID_Position, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetTurretParent' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 547| 547| });
| 548| 548| 
| 549| 549| AddMock(10, IID_Position, {
| 550|    |-	GetTurretParent: function() {return INVALID_ENTITY;},
|    | 550|+	"GetTurretParent": function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552| 552| 		return {x:1, y:2, z:3};
| 553| 553| 	},
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPosition' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 548| 548| 
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551|    |-	GetPosition: function() {
|    | 551|+	"GetPosition": function() {
| 552| 552| 		return {x:1, y:2, z:3};
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552|    |-		return {x:1, y:2, z:3};
|    | 552|+		return { x:1, y:2, z:3};
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
| 555| 555| 		return true;
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'x' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552|    |-		return {x:1, y:2, z:3};
|    | 552|+		return {"x":1, y:2, z:3};
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
| 555| 555| 		return true;
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'x'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552|    |-		return {x:1, y:2, z:3};
|    | 552|+		return {x: 1, y:2, z:3};
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
| 555| 555| 		return true;
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'y' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552|    |-		return {x:1, y:2, z:3};
|    | 552|+		return {x:1, "y":2, z:3};
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
| 555| 555| 		return true;
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'y'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552|    |-		return {x:1, y:2, z:3};
|    | 552|+		return {x:1, y: 2, z:3};
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
| 555| 555| 		return true;
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'z' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552|    |-		return {x:1, y:2, z:3};
|    | 552|+		return {x:1, y:2, "z":3};
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
| 555| 555| 		return true;
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'z'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552|    |-		return {x:1, y:2, z:3};
|    | 552|+		return {x:1, y:2, z: 3};
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
| 555| 555| 		return true;
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 549| 549| AddMock(10, IID_Position, {
| 550| 550| 	GetTurretParent: function() {return INVALID_ENTITY;},
| 551| 551| 	GetPosition: function() {
| 552|    |-		return {x:1, y:2, z:3};
|    | 552|+		return {x:1, y:2, z:3 };
| 553| 553| 	},
| 554| 554| 	IsInWorld: function() {
| 555| 555| 		return true;
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsInWorld' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 551| 551| 	GetPosition: function() {
| 552| 552| 		return {x:1, y:2, z:3};
| 553| 553| 	},
| 554|    |-	IsInWorld: function() {
|    | 554|+	"IsInWorld": function() {
| 555| 555| 		return true;
| 556| 556| 	}
| 557| 557| });
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 575| 575| 		"selectionGroupName": "Selection Group Name",
| 576| 576| 		"canDelete": true
| 577| 577| 	},
| 578|    |-	"position": {x:1, y:2, z:3},
|    | 578|+	"position": { x:1, y:2, z:3},
| 579| 579| 	"hitpoints": 50,
| 580| 580| 	"maxHitpoints": 60,
| 581| 581| 	"needsRepair": false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'x' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 575| 575| 		"selectionGroupName": "Selection Group Name",
| 576| 576| 		"canDelete": true
| 577| 577| 	},
| 578|    |-	"position": {x:1, y:2, z:3},
|    | 578|+	"position": {"x":1, y:2, z:3},
| 579| 579| 	"hitpoints": 50,
| 580| 580| 	"maxHitpoints": 60,
| 581| 581| 	"needsRepair": false,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'x'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 575| 575| 		"selectionGroupName": "Selection Group Name",
| 576| 576| 		"canDelete": true
| 577| 577| 	},
| 578|    |-	"position": {x:1, y:2, z:3},
|    | 578|+	"position": {x: 1, y:2, z:3},
| 579| 579| 	"hitpoints": 50,
| 580| 580| 	"maxHitpoints": 60,
| 581| 581| 	"needsRepair": false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'y' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 575| 575| 		"selectionGroupName": "Selection Group Name",
| 576| 576| 		"canDelete": true
| 577| 577| 	},
| 578|    |-	"position": {x:1, y:2, z:3},
|    | 578|+	"position": {x:1, "y":2, z:3},
| 579| 579| 	"hitpoints": 50,
| 580| 580| 	"maxHitpoints": 60,
| 581| 581| 	"needsRepair": false,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'y'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 575| 575| 		"selectionGroupName": "Selection Group Name",
| 576| 576| 		"canDelete": true
| 577| 577| 	},
| 578|    |-	"position": {x:1, y:2, z:3},
|    | 578|+	"position": {x:1, y: 2, z:3},
| 579| 579| 	"hitpoints": 50,
| 580| 580| 	"maxHitpoints": 60,
| 581| 581| 	"needsRepair": false,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'z' found.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 575| 575| 		"selectionGroupName": "Selection Group Name",
| 576| 576| 		"canDelete": true
| 577| 577| 	},
| 578|    |-	"position": {x:1, y:2, z:3},
|    | 578|+	"position": {x:1, y:2, "z":3},
| 579| 579| 	"hitpoints": 50,
| 580| 580| 	"maxHitpoints": 60,
| 581| 581| 	"needsRepair": false,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'z'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 575| 575| 		"selectionGroupName": "Selection Group Name",
| 576| 576| 		"canDelete": true
| 577| 577| 	},
| 578|    |-	"position": {x:1, y:2, z:3},
|    | 578|+	"position": {x:1, y:2, z: 3},
| 579| 579| 	"hitpoints": 50,
| 580| 580| 	"maxHitpoints": 60,
| 581| 581| 	"needsRepair": false,
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 575| 575| 		"selectionGroupName": "Selection Group Name",
| 576| 576| 		"canDelete": true
| 577| 577| 	},
| 578|    |-	"position": {x:1, y:2, z:3},
|    | 578|+	"position": {x:1, y:2, z:3 },
| 579| 579| 	"hitpoints": 50,
| 580| 580| 	"maxHitpoints": 60,
| 581| 581| 	"needsRepair": false,
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'isBarterMarket'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 583| 583| 	"builder": true,
| 584| 584| 	"canGarrison": false,
| 585| 585| 	"visibility": "visible",
| 586|    |-	"isBarterMarket":true,
|    | 586|+	"isBarterMarket": true,
| 587| 587| 	"resourceTrickle": {
| 588| 588| 		"interval": 1250,
| 589| 589| 		"rates": { "food": 2, "wood": 3, "stone": 5, "metal": 9 }
|    | [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
| 419| 419| function getRepairTimeTooltip(entState)
| 420| 420| {
| 421| 421| 	return sprintf(translate("%(label)s %(details)s"), {
| 422|    |-			"label": headerFont(translate("Number of repairers:")),
|    | 422|+		"label": headerFont(translate("Number of repairers:")),
| 423| 423| 			"details": entState.repairable.numBuilders
| 424| 424| 		}) + "\n" + (entState.repairable.numBuilders ?
| 425| 425| 		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
| 420| 420| {
| 421| 421| 	return sprintf(translate("%(label)s %(details)s"), {
| 422| 422| 			"label": headerFont(translate("Number of repairers:")),
| 423|    |-			"details": entState.repairable.numBuilders
|    | 423|+		"details": entState.repairable.numBuilders
| 424| 424| 		}) + "\n" + (entState.repairable.numBuilders ?
| 425| 425| 		sprintf(translatePlural(
| 426| 426| 			"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
| 421| 421| 	return sprintf(translate("%(label)s %(details)s"), {
| 422| 422| 			"label": headerFont(translate("Number of repairers:")),
| 423| 423| 			"details": entState.repairable.numBuilders
| 424|    |-		}) + "\n" + (entState.repairable.numBuilders ?
|    | 424|+	}) + "\n" + (entState.repairable.numBuilders ?
| 425| 425| 		sprintf(translatePlural(
| 426| 426| 			"Add another worker to speed up the repairs by %(second)s second.",
| 427| 427| 			"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
| 441| 441| function getBuildTimeTooltip(entState)
| 442| 442| {
| 443| 443| 	return sprintf(translate("%(label)s %(details)s"), {
| 444|    |-			"label": headerFont(translate("Number of builders:")),
|    | 444|+		"label": headerFont(translate("Number of builders:")),
| 445| 445| 			"details": entState.foundation.numBuilders
| 446| 446| 		}) + "\n" + (entState.foundation.numBuilders ?
| 447| 447| 		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
| 442| 442| {
| 443| 443| 	return sprintf(translate("%(label)s %(details)s"), {
| 444| 444| 			"label": headerFont(translate("Number of builders:")),
| 445|    |-			"details": entState.foundation.numBuilders
|    | 445|+		"details": entState.foundation.numBuilders
| 446| 446| 		}) + "\n" + (entState.foundation.numBuilders ?
| 447| 447| 		sprintf(translatePlural(
| 448| 448| 			"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
| 443| 443| 	return sprintf(translate("%(label)s %(details)s"), {
| 444| 444| 			"label": headerFont(translate("Number of builders:")),
| 445| 445| 			"details": entState.foundation.numBuilders
| 446|    |-		}) + "\n" + (entState.foundation.numBuilders ?
|    | 446|+	}) + "\n" + (entState.foundation.numBuilders ?
| 447| 447| 		sprintf(translatePlural(
| 448| 448| 			"Add another worker to speed up the construction by %(second)s second.",
| 449| 449| 			"Add another worker to speed up the construction by %(second)s seconds.",
|    | [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 (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|  66|  66| 		let phase = "";
|  67|  67| 		let cmpTechnologyManager = QueryPlayerIDInterface(i, IID_TechnologyManager);
|  68|  68| 		if (cmpTechnologyManager)
|  69|    |-		{
|    |  69|+		
|  70|  70| 			if (cmpTechnologyManager.IsTechnologyResearched("phase_city"))
|  71|  71| 				phase = "city";
|  72|  72| 			else if (cmpTechnologyManager.IsTechnologyResearched("phase_town"))
|  73|  73| 				phase = "town";
|  74|  74| 			else if (cmpTechnologyManager.IsTechnologyResearched("phase_village"))
|  75|  75| 				phase = "village";
|  76|    |-		}
|    |  76|+		
|  77|  77| 
|  78|  78| 		// store player ally/neutral/enemy data as arrays
|  79|  79| 		let allies = [];
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 415| 415| 			ret.attack[type].elevationBonus = range.elevationBonus;
| 416| 416| 
| 417| 417| 			if (cmpUnitAI && cmpPosition && cmpPosition.IsInWorld())
| 418|    |-			{
|    | 418|+			
| 419| 419| 				// For units, take the range in front of it, no spread. So angle = 0
| 420| 420| 				ret.attack[type].elevationAdaptedRange = cmpRangeManager.GetElevationAdaptedRange(cmpPosition.GetPosition(), cmpPosition.GetRotation(), range.max, range.elevationBonus, 0);
| 421|    |-			}
|    | 421|+			
| 422| 422| 			else if(cmpPosition && cmpPosition.IsInWorld())
| 423| 423| 			{
| 424| 424| 				// For buildings, take the average elevation around it. So angle = 2*pi
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 420| 420| 				ret.attack[type].elevationAdaptedRange = cmpRangeManager.GetElevationAdaptedRange(cmpPosition.GetPosition(), cmpPosition.GetRotation(), range.max, range.elevationBonus, 0);
| 421| 421| 			}
| 422| 422| 			else if(cmpPosition && cmpPosition.IsInWorld())
| 423|    |-			{
|    | 423|+			
| 424| 424| 				// For buildings, take the average elevation around it. So angle = 2*pi
| 425| 425| 				ret.attack[type].elevationAdaptedRange = cmpRangeManager.GetElevationAdaptedRange(cmpPosition.GetPosition(), cmpPosition.GetRotation(), range.max, range.elevationBonus, 2*Math.PI);
| 426|    |-			}
|    | 426|+			
| 427| 427| 			else
| 428| 428| 			{
| 429| 429| 				// not in world, set a default?
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 425| 425| 				ret.attack[type].elevationAdaptedRange = cmpRangeManager.GetElevationAdaptedRange(cmpPosition.GetPosition(), cmpPosition.GetRotation(), range.max, range.elevationBonus, 2*Math.PI);
| 426| 426| 			}
| 427| 427| 			else
| 428|    |-			{
|    | 428|+			
| 429| 429| 				// not in world, set a default?
| 430| 430| 				ret.attack[type].elevationAdaptedRange = ret.attack.maxRange;
| 431|    |-			}
|    | 431|+			
| 432| 432| 		}
| 433| 433| 	}
| 434| 434| 
|    | [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
| 805| 805| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 806| 806| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 807| 807| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 808|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 808|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 809| 809| 	}
| 810| 810| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 811| 811| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1324|1324| 		}
|1325|1325| 	}
|1326|1326| 	else
|1327|    |-	{
|    |1327|+	
|1328|1328| 		// Didn't snap to an existing entity, add the starting tower manually. To prevent odd-looking rotation jumps
|1329|1329| 		// when shift-clicking to build a wall, reuse the placement angle that was last seen on a validly positioned
|1330|1330| 		// wall piece.
|1345|1345| 			"pos": start.pos,
|1346|1346| 			"angle": previewEntities.length > 0 ? previewEntities[0].angle : this.placementWallLastAngle
|1347|1347| 		});
|1348|    |-	}
|    |1348|+	
|1349|1349| 
|1350|1350| 	if (end.pos)
|1351|1351| 	{
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1348|1348| 	}
|1349|1349| 
|1350|1350| 	if (end.pos)
|1351|    |-	{
|    |1351|+	
|1352|1352| 		// Analogous to the starting side case above
|1353|1353| 		if (end.snappedEnt && end.snappedEnt != INVALID_ENTITY)
|1354|1354| 		{
|1386|1386| 				"pos": end.pos,
|1387|1387| 				"angle": previewEntities.length > 0 ? previewEntities[previewEntities.length-1].angle : this.placementWallLastAngle
|1388|1388| 			});
|1389|    |-	}
|    |1389|+	
|1390|1390| 
|1391|1391| 	let cmpTerrain = Engine.QueryInterface(SYSTEM_ENTITY, IID_Terrain);
|1392|1392| 	if (!cmpTerrain)
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1564|1564| 
|1565|1565| 		let cmpVisual = Engine.QueryInterface(ent, IID_Visual);
|1566|1566| 		if (cmpVisual)
|1567|    |-		{
|    |1567|+		
|1568|1568| 			if (!allPiecesValid || !canAfford)
|1569|1569| 				cmpVisual.SetShadingColor(1.4, 0.4, 0.4, 1);
|1570|1570| 			else
|1571|1571| 				cmpVisual.SetShadingColor(1, 1, 1, 1);
|1572|    |-		}
|    |1572|+		
|1573|1573| 
|1574|1574| 		++entPool.numUsed;
|1575|1575| 	}
|    | [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| 			{
|1639|1639| 				minDist2 = dist2;
|1640|1640| 				minDistEntitySnapData = {
|1641|    |-						"x": pos.x,
|    |1641|+					"x": pos.x,
|1642|1642| 						"z": pos.z,
|1643|1643| 						"angle": cmpPosition.GetRotation().y,
|1644|1644| 						"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
|1639|1639| 				minDist2 = dist2;
|1640|1640| 				minDistEntitySnapData = {
|1641|1641| 						"x": pos.x,
|1642|    |-						"z": pos.z,
|    |1642|+					"z": pos.z,
|1643|1643| 						"angle": cmpPosition.GetRotation().y,
|1644|1644| 						"ent": ent
|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| 				minDistEntitySnapData = {
|1641|1641| 						"x": pos.x,
|1642|1642| 						"z": pos.z,
|1643|    |-						"angle": cmpPosition.GetRotation().y,
|    |1643|+					"angle": cmpPosition.GetRotation().y,
|1644|1644| 						"ent": ent
|1645|1645| 				};
|1646|1646| 			}
|    | [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
|1641|1641| 						"x": pos.x,
|1642|1642| 						"z": pos.z,
|1643|1643| 						"angle": cmpPosition.GetRotation().y,
|1644|    |-						"ent": ent
|    |1644|+					"ent": ent
|1645|1645| 				};
|1646|1646| 			}
|1647|1647| 		}
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1786|1786| 			result.gain = cmpEntityTrader.GetGoods().amount;
|1787|1787| 	}
|1788|1788| 	else if (data.target === secondMarket)
|1789|    |-	{
|    |1789|+	
|1790|1790| 		result = {
|1791|1791| 			"type": "is second",
|1792|1792| 			"gain": cmpEntityTrader.GetGoods().amount,
|1793|1793| 		};
|1794|    |-	}
|    |1794|+	
|1795|1795| 	else if (!firstMarket)
|1796|1796| 	{
|1797|1797| 		result = { "type": "set first" };
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1793|1793| 		};
|1794|1794| 	}
|1795|1795| 	else if (!firstMarket)
|1796|    |-	{
|    |1796|+	
|1797|1797| 		result = { "type": "set first" };
|1798|    |-	}
|    |1798|+	
|1799|1799| 	else if (!secondMarket)
|1800|1800| 	{
|1801|1801| 		result = {
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'if' condition.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1797|1797| 		result = { "type": "set first" };
|1798|1798| 	}
|1799|1799| 	else if (!secondMarket)
|1800|    |-	{
|    |1800|+	
|1801|1801| 		result = {
|1802|1802| 			"type": "set second",
|1803|1803| 			"gain": cmpEntityTrader.CalculateGain(firstMarket, data.target),
|1804|1804| 		};
|1805|    |-	}
|    |1805|+	
|1806|1806| 	else
|1807|1807| 	{
|1808|1808| 		// Else both markets are not null and target is different from them
|    | [NORMAL] ESLintBear (curly):
|    | Unnecessary { after 'else'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1804|1804| 		};
|1805|1805| 	}
|1806|1806| 	else
|1807|    |-	{
|    |1807|+	
|1808|1808| 		// Else both markets are not null and target is different from them
|1809|1809| 		result = { "type": "set first" };
|1810|    |-	}
|    |1810|+	
|1811|1811| 	return result;
|1812|1812| };
|1813|1813| 
Executing section cli...

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