Page MenuHomeWildfire Games

Spawn units in rally point direction
ClosedPublic

Authored by temple on Nov 15 2017, 2:48 AM.

Details

Reviewers
wraitii
bb
Group Reviewers
Restricted Owners Package(Owns No Changed Paths)
Restricted Owners Package(Owns No Changed Paths)
Commits
rP21144: Spawn units in rally point direction
Trac Tickets
#1857
#4735
Summary

It's frustrating when you want your units to go one way but your buildings are facing a different direction. For example if your trees or mines are behind your cc, all the extra walking adds up. When placing buildings you can try to orient them in the best direction, but sometimes what's "best" will change throughout a game.

Since units can garrison (and drop off resources, etc.) from any direction, they should be able to ungarrison from any direction too. Some buildings have "doors", but they're not all aligned perfectly with the center of the front of the building, and units don't actually interact with the buildings by walking up steps or through the doors (with the exception of standing on walls). In my opinion gameplay should have more weight than "realism", so I think being able to spawn in any direction is a good change. But I understand some people may feel differently so this can be a discussion.

Here's some screenshots of the rally point direction:

The current code tries the same number of points regardless of how big the footprint is, so units are more clustered around small buildings than large ones. Also, the spawn area is really large, so units (like rams in the screenshot below) can end up being far from the building if there are lots of units in the way.

In the patch I've adopted a more uniform approach to spacing, plus I've restricted large units to one row around the building so that they can't spawn a far distance away (instead you'll have to move units away from the building so there's room for them to spawn).

Let me know what you think.

Test Plan

I think you have to update workspaces. I'm still learning how everything fits together so I might've missed or messed up some stuff.

I wasn't sure where to put the helper functions, in a separate file or inside the class, so I've temporarily put them at the top of the file.

This won't work very well if obstructions are larger than the footprint (for example, the Ptolemy civic center), so they'll need to be checked and fixed, which I'll try to do in the coming days.

(I think #4484 and D119 could fit easily with this, although there's also #2038 which goes in a different direction.)

I probably should do some profiling...

Diff Detail

Repository
rP 0 A.D. Public Repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

temple created this revision.Nov 15 2017, 2:48 AM
wraitii added reviewers: Restricted Owners Package, Restricted Owners Package.Nov 15 2017, 12:16 PM
wraitii added subscribers: elexis, wraitii.

Don't forget to add reviewers so it pops up on people's screen.

@elexis I seem to recall that the spawn direction lead to bug in the past, hence the current behaviour, but I think you'd know this for sure.

Don't forget to add reviewers so it pops up on people's screen.

I'll try to do this in the future. I have no idea about adding repositories and other things, should I be doing those too? I looked into arc once but I often have different patches active at once and I didn't think it'd like that.

temple updated this revision to Diff 4327.EditedNov 23 2017, 1:13 AM

Handled the magic row numbers better.
Moved helper functions to geometry.
Also profiled, and the numbers are pretty negligible after rP20438. I can do a thorough comparison if anyone requests it.

wraitii requested changes to this revision.Nov 25 2017, 3:06 PM

I'm not a fan of the "rows" thing. I feel like you should decide on a max creation range, possibly linked to a max ungarrisoning range, and then divide that by the footprint size (+ some) to get the "rows".

The behaviour seems OK but I think the function names could be improved across the board.

I would also like to verify that this change doesn't break things with regards to walls, where I'm fairly sure we tried to avoid a situation where you can cross walls by garrisoning/ungarrisoning, but I'm a little too lazy atm to check.

source/simulation2/helpers/Geometry.h
108 ↗(On Diff #4327)

Can't you merge those two in an std::vector of pair instead?

This revision now requires changes to proceed.Nov 25 2017, 3:06 PM

I'm not a fan of the "rows" thing. I feel like you should decide on a max creation range, possibly linked to a max ungarrisoning range, and then divide that by the footprint size (+ some) to get the "rows".

We use the spawned unit's obstruction, not its footprint. That's what I was doing before, dividing by the obstruction size, but I thought it was messy, especially since we only have four passability classes.
Why would units be able to spawn farther out of certain buildings/units versus others? I guess we do have variable garrison loading ranges, though. (Why do we have them?)

I would also like to verify that this change doesn't break things with regards to walls, where I'm fairly sure we tried to avoid a situation where you can cross walls by garrisoning/ungarrisoning, but I'm a little too lazy atm to check.

It'll definitely break that, since you can garrison on one side of any building and ungarrison out the other. (We added rally points to walls in rP20498.)

source/simulation2/helpers/Geometry.h
108 ↗(On Diff #4327)

Is there an advantage in doing it that way?

I should check trac and/or the forums to see if I can find a source. I distinctly remember we talked about it, but I don't remember if we wanted to do something about it.

We use the spawned unit's obstruction, not its footprint. That's what I was doing before, dividing by the obstruction size, but I thought it was messy, especially since we only have four passability classes.
Why would units be able to spawn farther out of certain buildings/units versus others? I guess we do have variable garrison loading ranges, though. (Why do we have them?)

For garrisoning iirc it's to simulate a siege-tower like effect on some units. For spawning I can't think of an example atm, so probably not worth it.
I would prefer using the size because in general adding stuff to pathfinder specs seems ugly to me, particularly stuff that isn't really pathfinder related. In fact I find that whole file kind of ugly and would like if it became a component template at some point I suppose.

source/simulation2/helpers/Geometry.h
108 ↗(On Diff #4327)

Avoids code "repetition" in Geometry.cpp.

But the real concern is wether it makes the code in footprint clearer or not, I'll leave that up to you.

Lets try this for a23 good alpha test

I would prefer using the size because in general adding stuff to pathfinder specs seems ugly to me, particularly stuff that isn't really pathfinder related. In fact I find that whole file kind of ugly and would like if it became a component template at some point I suppose.

We use obstruction sizes for spawning units and that file is where unit obstruction size (clearance) is defined, so it makes sense to include max rows there. (Spawning units is very pathfinder related!)

I'm not a fan of the "rows" thing. I feel like you should decide on a max creation range, possibly linked to a max ungarrisoning range, and then divide that by the footprint size (+ some) to get the "rows".

Some docks can spawn both units and ships and it doesn't make sense to me that units and ships would spawn at the same ranged, so I prefer the max rows approach.

The behaviour seems OK but I think the function names could be improved across the board.

You'll have to suggest.

source/simulation2/helpers/Geometry.h
108 ↗(On Diff #4327)

It seems more confusing to me to have [0] and [1] and .first and .second, rather than x and y. Maybe I don't know what you mean.

I wrote this stuff before realizing that we usually start north and move clockwise, rather than east and counter-clockwise. That's just swapping x and y so maybe I'll rewrite this to follow convention.

temple updated this revision to Diff 4708.Dec 10 2017, 6:35 PM
temple set the repository for this revision to rP 0 A.D. Public Repository.

Decided not to change x,y order.

Owners added subscribers: Restricted Owners Package, Restricted Owners Package.Dec 10 2017, 6:35 PM
Vulcan added a subscriber: Vulcan.Dec 11 2017, 12:56 AM

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

Updating workspaces...
Build (release)...
Build (debug)...
Running release tests...
Running cxxtest tests (308 tests)............................................................................................................................................................................................................................ERROR: CVFSFile: file simulation/components/interfaces/RallyPoint.js couldn't be opened (vfs_load: -110101)

In TestComponentScripts::test_scripts:
/mnt/data/jenkins-phabricator/workspace/phabricator/source/simulation2/components/tests/test_scripts.h:50: Error: Assertion failed: componentManager->LoadScript(VfsPath(L"simulation/components") / pathname)
ERROR: CVFSFile: file simulation/components/interfaces/RallyPoint.js couldn't be opened (vfs_load: -110101)
/mnt/data/jenkins-phabricator/workspace/phabricator/source/simulation2/components/tests/test_scripts.h:50: Error: Assertion failed: componentManager->LoadScript(VfsPath(L"simulation/components") / pathname)
ERROR: CVFSFile: file simulation/components/interfaces/RallyPoint.js couldn't be opened (vfs_load: -110101)
/mnt/data/jenkins-phabricator/workspace/phabricator/source/simulation2/components/tests/test_scripts.h:50: Error: Assertion failed: componentManager->LoadScript(VfsPath(L"simulation/components") / pathname)
ERROR: CVFSFile: file simulation/components/interfaces/RallyPoint.js couldn't be opened (vfs_load: -110101)
/mnt/data/jenkins-phabricator/workspace/phabricator/source/simulation2/components/tests/test_scripts.h:50: Error: Assertion failed: componentManager->LoadScript(VfsPath(L"simulation/components") / pathname)
.......................................................................................
Failed 1 and Skipped 0 of 308 tests
Success rate: 99%
Running debug tests...
Running cxxtest tests (308 tests)............................................................................................................................................................................................................................ERROR: CVFSFile: file simulation/components/interfaces/RallyPoint.js couldn't be opened (vfs_load: -110101)

In TestComponentScripts::test_scripts:
/mnt/data/jenkins-phabricator/workspace/phabricator/source/simulation2/components/tests/test_scripts.h:50: Error: Assertion failed: componentManager->LoadScript(VfsPath(L"simulation/components") / pathname)
ERROR: CVFSFile: file simulation/components/interfaces/RallyPoint.js couldn't be opened (vfs_load: -110101)
/mnt/data/jenkins-phabricator/workspace/phabricator/source/simulation2/components/tests/test_scripts.h:50: Error: Assertion failed: componentManager->LoadScript(VfsPath(L"simulation/components") / pathname)
ERROR: CVFSFile: file simulation/components/interfaces/RallyPoint.js couldn't be opened (vfs_load: -110101)
/mnt/data/jenkins-phabricator/workspace/phabricator/source/simulation2/components/tests/test_scripts.h:50: Error: Assertion failed: componentManager->LoadScript(VfsPath(L"simulation/components") / pathname)
ERROR: CVFSFile: file simulation/components/interfaces/RallyPoint.js couldn't be opened (vfs_load: -110101)
/mnt/data/jenkins-phabricator/workspace/phabricator/source/simulation2/components/tests/test_scripts.h:50: Error: Assertion failed: componentManager->LoadScript(VfsPath(L"simulation/components") / pathname)
.......................................................................................
Failed 1 and Skipped 0 of 308 tests
Success rate: 99%
Checking XML files...
temple updated this revision to Diff 4719.Dec 11 2017, 7:13 PM

Define a MaxSpawnDistance in footprint rather than depending only on the spawned entity.
The effect is most units spawn in three rows while siege and ships spawn in one.

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

Updating workspaces...
Build (release)...
Build (debug)...
Running release tests...
Running cxxtest tests (308 tests)....................................................................................................................................................................................................................................................................................................................OK!
Running debug tests...
Running cxxtest tests (308 tests)....................................................................................................................................................................................................................................................................................................................OK!
Checking XML files...

See last comment in D1040

Might be worth unifying all this into a single "unit expeller" component of some kind.

See last comment in D1040

Might be worth unifying all this into a single "unit expeller" component of some kind.

Not quite sure what you mean.

bb added a subscriber: bb.Jan 30 2018, 1:50 PM

Liking the new behaviour

source/simulation2/TypeList.h
1 ↗(On Diff #4719)

happy new... almost feb

source/simulation2/components/CCmpFootprint.cpp
87 ↗(On Diff #4719)

can be used for garrison and productionqueue, so placing it here seems the lessest evil

117–119 ↗(On Diff #4719)

seems a bit random too me, why not just put it in all templates and unoptionalise it

241 ↗(On Diff #4719)

shouldn't that be on it previous line?

source/simulation2/helpers/Geometry.cpp
340–341 ↗(On Diff #4719)

that is invalid input right?, so also in GetPerimeterSteps?
Also what should happen with negative input?

source/simulation2/helpers/Geometry.h
105 ↗(On Diff #4719)

"number of steps", but what is the stepsize? isn't it just the walked distance?, the distance measure the is defined by the parameters

114 ↗(On Diff #4719)

walking a distance k?

temple added inline comments.Jan 31 2018, 2:53 AM
source/simulation2/components/CCmpFootprint.cpp
117–119 ↗(On Diff #4719)

Easier said than done. :)

~/0ad/binaries/data/mods/public/simulation/templates$ grep "Footprint replace" * -R | wc -l
88

I could do it in a second patch if you insist, but it's a lot of work.

source/simulation2/helpers/Geometry.cpp
340–341 ↗(On Diff #4719)

Negative k is fine, we make it non-negative a few lines later with k += 4 * quarter.

source/simulation2/helpers/Geometry.h
105 ↗(On Diff #4719)

Okay, I'll rephrase using distance.

temple updated this revision to Diff 5599.Jan 31 2018, 2:54 AM

steps -> points

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

Updating workspaces...
Build (release)...
Build (debug)...
Running release tests...
Running cxxtest tests (309 tests).....................................................................................................................................................................................................................................................................................................................OK!
Running debug tests...
Running cxxtest tests (309 tests).....................................................................................................................................................................................................................................................................................................................OK!
Checking XML files...
Executing section Default...
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|  45|  45| initialRallyPointTest((cmpRallyPoint) => {});
|  46|  46| 
|  47|  47| initialRallyPointTest((cmpRallyPoint) => {
|  48|    |-	cmpRallyPoint.Unset()
|    |  48|+	cmpRallyPoint.Unset();
|  49|  49| 	return true;
|  50|  50| });
|  51|  51| 
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|  50|  50| });
|  51|  51| 
|  52|  52| initialRallyPointTest((cmpRallyPoint) => {
|  53|    |-	cmpRallyPoint.Reset()
|    |  53|+	cmpRallyPoint.Reset();
|  54|  54| 	return true;
|  55|  55| });
|  56|  56| 

binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|  48| »   cmpRallyPoint.Unset()
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.

binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|  53| »   cmpRallyPoint.Reset()
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.

binaries/data/mods/public/simulation/components/tests/test_Foundation.js
|  47| »   let·pos·=·new·Vector2D(4,·5);
|    | [NORMAL] JSHintBear:
|    | 'pos' was used before it was defined.

binaries/data/mods/public/simulation/components/tests/test_Foundation.js
| 121| »   let·cmpFoundation·=·ConstructComponent(foundationEnt,·"Foundation",·{});
|    | [NORMAL] JSHintBear:
|    | 'cmpFoundation' was used before it was defined.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  47|  47| 	"GetResource": resource => ({
|  48|  48| 		"aiAnalysisInfluenceGroup":
|  49|  49| 			resource == "food" ? "ignore" :
|  50|    |-			resource == "wood" ? "abundant" : "sparse"
|    |  50|+				resource == "wood" ? "abundant" : "sparse"
|  51|  51| 	})
|  52|  52| };
|  53|  53| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPrices' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  55|  55| 
|  56|  56| 
|  57|  57| AddMock(SYSTEM_ENTITY, IID_Barter, {
|  58|    |-	GetPrices: function() {
|    |  58|+	"GetPrices": function() {
|  59|  59| 		return {
|  60|  60| 			"buy": { "food": 150 },
|  61|  61| 			"sell": { "food": 25 }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'PlayerHasMarket' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  61|  61| 			"sell": { "food": 25 }
|  62|  62| 		};
|  63|  63| 	},
|  64|    |-	PlayerHasMarket: function () { return false; }
|    |  64|+	"PlayerHasMarket": function () { return false; }
|  65|  65| });
|  66|  66| 
|  67|  67| AddMock(SYSTEM_ENTITY, IID_EndGameManager, {
|    | [NORMAL] ESLintBear (space-before-function-paren):
|    | Unexpected space before function parentheses.
|----|    | /mnt/data/jenkins-phab
bb added inline comments.Feb 7 2018, 12:48 PM
source/simulation2/components/CCmpFootprint.cpp
61 ↗(On Diff #5599)

add the maxSpawnDist here twice

117–119 ↗(On Diff #4719)

Didn't expect that too be such a work, but then indeed split that too another patch

source/simulation2/helpers/Geometry.cpp
340–341 ↗(On Diff #4719)

k

but what about negative x_max and/or y_max
Also why doesn't this check exist in GetPerimeterSteps? (ok we don't need to use modulus calculation), but Steps(Coordinates(x))=x right?, and this check seems to break that, also what is expected to be returned by GetPerimeterSteps when putting in negative values?

temple updated this revision to Diff 5703.Feb 7 2018, 5:56 PM
temple marked 5 inline comments as done.
temple added inline comments.
source/simulation2/helpers/Geometry.cpp
340–341 ↗(On Diff #4719)

Steps/Distance will always be between 0 and 4*quarter, just like angles are between 0 and 2pi. So if you try k = -1 it should be the same as k = 4*quarter - 1, i.e. moving one step clockwise is the same as moving 4*quarter - 1 steps counter-clockwise.

Vulcan added a comment.Feb 7 2018, 7:19 PM

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

Updating workspaces...
Build (release)...
Build (debug)...
Running release tests...
Running cxxtest tests (309 tests).....................................................................................................................................................................................................................................................................................................................OK!
Running debug tests...
Running cxxtest tests (309 tests).....................................................................................................................................................................................................................................................................................................................OK!
Checking XML files...
Vulcan added a comment.Feb 7 2018, 7:21 PM
Executing section Default...
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|  45|  45| initialRallyPointTest((cmpRallyPoint) => {});
|  46|  46| 
|  47|  47| initialRallyPointTest((cmpRallyPoint) => {
|  48|    |-	cmpRallyPoint.Unset()
|    |  48|+	cmpRallyPoint.Unset();
|  49|  49| 	return true;
|  50|  50| });
|  51|  51| 
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|  50|  50| });
|  51|  51| 
|  52|  52| initialRallyPointTest((cmpRallyPoint) => {
|  53|    |-	cmpRallyPoint.Reset()
|    |  53|+	cmpRallyPoint.Reset();
|  54|  54| 	return true;
|  55|  55| });
|  56|  56| 

binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|  48| »   cmpRallyPoint.Unset()
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.

binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|  53| »   cmpRallyPoint.Reset()
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.

binaries/data/mods/public/simulation/components/tests/test_Foundation.js
|  47| »   let·pos·=·new·Vector2D(4,·5);
|    | [NORMAL] JSHintBear:
|    | 'pos' was used before it was defined.

binaries/data/mods/public/simulation/components/tests/test_Foundation.js
| 121| »   let·cmpFoundation·=·ConstructComponent(foundationEnt,·"Foundation",·{});
|    | [NORMAL] JSHintBear:
|    | 'cmpFoundation' was used before it was defined.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  47|  47| 	"GetResource": resource => ({
|  48|  48| 		"aiAnalysisInfluenceGroup":
|  49|  49| 			resource == "food" ? "ignore" :
|  50|    |-			resource == "wood" ? "abundant" : "sparse"
|    |  50|+				resource == "wood" ? "abundant" : "sparse"
|  51|  51| 	})
|  52|  52| };
|  53|  53| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPrices' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  55|  55| 
|  56|  56| 
|  57|  57| AddMock(SYSTEM_ENTITY, IID_Barter, {
|  58|    |-	GetPrices: function() {
|    |  58|+	"GetPrices": function() {
|  59|  59| 		return {
|  60|  60| 			"buy": { "food": 150 },
|  61|  61| 			"sell": { "food": 25 }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'PlayerHasMarket' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  61|  61| 			"sell": { "food": 25 }
|  62|  62| 		};
|  63|  63| 	},
|  64|    |-	PlayerHasMarket: function () { return false; }
|    |  64|+	"PlayerHasMarket": function () { return false; }
|  65|  65| });
|  66|  66| 
|  67|  67| AddMock(SYSTEM_ENTITY, IID_EndGameManager, {
|    | [NORMAL] ESLintBear (space-before-function-paren):
|    | Unexpected space before function parentheses.
|----|    | /mnt/data/jenkins-phab
bb accepted this revision.Feb 7 2018, 8:08 PM

Patch reads correct

binaries/data/mods/public/simulation/components/RallyPoint.js
27 ↗(On Diff #5703)

Vector2D.from3D

elexis added inline comments.Feb 7 2018, 8:49 PM
binaries/data/mods/public/simulation/components/RallyPoint.js
27 ↗(On Diff #5703)

new Vector or undefined for the other return value.
There are surprisingly fewer places in the sim that could use vectors than in rmgen

source/simulation2/components/CCmpFootprint.cpp
119 ↗(On Diff #4719)

IMO Better make it mandatory and avoid magic numbers. Imagine we change the distance measure and had to go through all constants in the code.

source/simulation2/helpers/Geometry.cpp
357 ↗(On Diff #5703)

We avoid else after return afaik

temple updated this revision to Diff 5705.Feb 7 2018, 9:20 PM
temple marked 3 inline comments as done.

vector, else if -> if

Making the spawn distance mandatory is a lot of work, so it'll be in the next patch.
Thanks for the review, bb.

temple added a comment.Feb 7 2018, 9:29 PM

Also in another patch I need to check all buildings have footprints outside the obstructions, e.g. I remember the ptolemy cc needs fixing.

Vulcan added a comment.Feb 7 2018, 9:41 PM

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

Updating workspaces...
Build (release)...
Build (debug)...
Running release tests...
Running cxxtest tests (309 tests).....................................................................................................................................................................................................................................................................................................................OK!
Running debug tests...
Running cxxtest tests (309 tests).....................................................................................................................................................................................................................................................................................................................OK!
Checking XML files...
Vulcan added a comment.Feb 7 2018, 9:42 PM
Executing section Default...
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|  45|  45| initialRallyPointTest((cmpRallyPoint) => {});
|  46|  46| 
|  47|  47| initialRallyPointTest((cmpRallyPoint) => {
|  48|    |-	cmpRallyPoint.Unset()
|    |  48|+	cmpRallyPoint.Unset();
|  49|  49| 	return true;
|  50|  50| });
|  51|  51| 
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|  50|  50| });
|  51|  51| 
|  52|  52| initialRallyPointTest((cmpRallyPoint) => {
|  53|    |-	cmpRallyPoint.Reset()
|    |  53|+	cmpRallyPoint.Reset();
|  54|  54| 	return true;
|  55|  55| });
|  56|  56| 

binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|  48| »   cmpRallyPoint.Unset()
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.

binaries/data/mods/public/simulation/components/tests/test_RallyPoint.js
|  53| »   cmpRallyPoint.Reset()
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.

binaries/data/mods/public/simulation/components/tests/test_Foundation.js
|  47| »   let·pos·=·new·Vector2D(4,·5);
|    | [NORMAL] JSHintBear:
|    | 'pos' was used before it was defined.

binaries/data/mods/public/simulation/components/tests/test_Foundation.js
| 121| »   let·cmpFoundation·=·ConstructComponent(foundationEnt,·"Foundation",·{});
|    | [NORMAL] JSHintBear:
|    | 'cmpFoundation' was used before it was defined.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 3.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  47|  47| 	"GetResource": resource => ({
|  48|  48| 		"aiAnalysisInfluenceGroup":
|  49|  49| 			resource == "food" ? "ignore" :
|  50|    |-			resource == "wood" ? "abundant" : "sparse"
|    |  50|+				resource == "wood" ? "abundant" : "sparse"
|  51|  51| 	})
|  52|  52| };
|  53|  53| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPrices' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  55|  55| 
|  56|  56| 
|  57|  57| AddMock(SYSTEM_ENTITY, IID_Barter, {
|  58|    |-	GetPrices: function() {
|    |  58|+	"GetPrices": function() {
|  59|  59| 		return {
|  60|  60| 			"buy": { "food": 150 },
|  61|  61| 			"sell": { "food": 25 }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'PlayerHasMarket' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  61|  61| 			"sell": { "food": 25 }
|  62|  62| 		};
|  63|  63| 	},
|  64|    |-	PlayerHasMarket: function () { return false; }
|    |  64|+	"PlayerHasMarket": function () { return false; }
|  65|  65| });
|  66|  66| 
|  67|  67| AddMock(SYSTEM_ENTITY, IID_EndGameManager, {
|    | [NORMAL] ESLintBear (space-before-function-paren):
|    | Unexpected space before function parentheses.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  61|  61| 			"sell": { "food": 25 }
|  62|  62| 		};
|  63|  63| 	},
|  64|    |-	PlayerHasMarket: function () { return false; }
|    |  64|+	PlayerHasMarket: function() { return false; }
|  65|  65| });
|  66|  66| 
|  67|  67| AddMock(SYSTEM_ENTITY, IID_EndGameManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetGameType' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  65|  65| });
|  66|  66| 
|  67|  67| AddMock(SYSTEM_ENTITY, IID_EndGameManager, {
|  68|    |-	GetGameType: function() { return "conquest"; },
|    |  68|+	"GetGameType": function() { return "conquest"; },
|  69|  69| 	GetAlliedVictory: function() { return false; }
|  70|  70| });
|  71|  71| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetAlliedVictory' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  66|  66| 
|  67|  67| AddMock(SYSTEM_ENTITY, IID_EndGameManager, {
|  68|  68| 	GetGameType: function() { return "conquest"; },
|  69|    |-	GetAlliedVictory: function() { return false; }
|    |  69|+	"GetAlliedVictory": function() { return false; }
|  70|  70| });
|  71|  71| 
|  72|  72| AddMock(SYSTEM_ENTITY, IID_PlayerManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetNumPlayers' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  70|  70| });
|  71|  71| 
|  72|  72| AddMock(SYSTEM_ENTITY, IID_PlayerManager, {
|  73|    |-	GetNumPlayers: function() { return 2; },
|    |  73|+	"GetNumPlayers": function() { return 2; },
|  74|  74| 	GetPlayerByID: function(id) { TS_ASSERT(id === 0 || id === 1); return 100+id; }
|  75|  75| });
|  76|  76| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPlayerByID' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  71|  71| 
|  72|  72| AddMock(SYSTEM_ENTITY, IID_PlayerManager, {
|  73|  73| 	GetNumPlayers: function() { return 2; },
|  74|    |-	GetPlayerByID: function(id) { TS_ASSERT(id === 0 || id === 1); return 100+id; }
|    |  74|+	"GetPlayerByID": function(id) { TS_ASSERT(id === 0 || id === 1); return 100+id; }
|  75|  75| });
|  76|  76| 
|  77|  77| AddMock(SYSTEM_ENTITY, IID_RangeManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLosVisibility' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  75|  75| });
|  76|  76| 
|  77|  77| AddMock(SYSTEM_ENTITY, IID_RangeManager, {
|  78|    |-	GetLosVisibility: function(ent, player) { return "visible"; },
|    |  78|+	"GetLosVisibility": function(ent, player) { return "visible"; },
|  79|  79| 	GetLosCircular: function() { return false; }
|  80|  80| });
|  81|  81| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLosCircular' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  76|  76| 
|  77|  77| AddMock(SYSTEM_ENTITY, IID_RangeManager, {
|  78|  78| 	GetLosVisibility: function(ent, player) { return "visible"; },
|  79|    |-	GetLosCircular: function() { return false; }
|    |  79|+	"GetLosCircular": function() { return false; }
|  80|  80| });
|  81|  81| 
|  82|  82| AddMock(SYSTEM_ENTITY, IID_TemplateManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCurrentTemplateName' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  80|  80| });
|  81|  81| 
|  82|  82| AddMock(SYSTEM_ENTITY, IID_TemplateManager, {
|  83|    |-	GetCurrentTemplateName: function(ent) { return "example"; },
|    |  83|+	"GetCurrentTemplateName": function(ent) { return "example"; },
|  84|  84| 	GetTemplate: function(name) { return ""; }
|  85|  85| });
|  86|  86| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetTemplate' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  81|  81| 
|  82|  82| AddMock(SYSTEM_ENTITY, IID_TemplateManager, {
|  83|  83| 	GetCurrentTemplateName: function(ent) { return "example"; },
|  84|    |-	GetTemplate: function(name) { return ""; }
|    |  84|+	"GetTemplate": function(name) { return ""; }
|  85|  85| });
|  86|  86| 
|  87|  87| AddMock(SYSTEM_ENTITY, IID_Timer, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetTime' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  85|  85| });
|  86|  86| 
|  87|  87| AddMock(SYSTEM_ENTITY, IID_Timer, {
|  88|    |-	GetTime: function() { return 0; },
|    |  88|+	"GetTime": function() { return 0; },
|  89|  89| 	SetTimeout: function(ent, iid, funcname, time, data) { return 0; }
|  90|  90| });
|  91|  91| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'SetTimeout' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  86|  86| 
|  87|  87| AddMock(SYSTEM_ENTITY, IID_Timer, {
|  88|  88| 	GetTime: function() { return 0; },
|  89|    |-	SetTimeout: function(ent, iid, funcname, time, data) { return 0; }
|    |  89|+	"SetTimeout": function(ent, iid, funcname, time, data) { return 0; }
|  90|  90| });
|  91|  91| 
|  92|  92| AddMock(100, IID_Player, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetName' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  90|  90| });
|  91|  91| 
|  92|  92| AddMock(100, IID_Player, {
|  93|    |-	GetName: function() { return "Player 1"; },
|    |  93|+	"GetName": function() { return "Player 1"; },
|  94|  94| 	GetCiv: function() { return "gaia"; },
|  95|  95| 	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  96|  96| 	CanControlAllUnits: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCiv' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  91|  91| 
|  92|  92| AddMock(100, IID_Player, {
|  93|  93| 	GetName: function() { return "Player 1"; },
|  94|    |-	GetCiv: function() { return "gaia"; },
|    |  94|+	"GetCiv": function() { return "gaia"; },
|  95|  95| 	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  96|  96| 	CanControlAllUnits: function() { return false; },
|  97|  97| 	GetPopulationCount: function() { return 10; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetColor' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  92|  92| AddMock(100, IID_Player, {
|  93|  93| 	GetName: function() { return "Player 1"; },
|  94|  94| 	GetCiv: function() { return "gaia"; },
|  95|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  95|+	"GetColor": function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  96|  96| 	CanControlAllUnits: function() { return false; },
|  97|  97| 	GetPopulationCount: function() { return 10; },
|  98|  98| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'r' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  92|  92| AddMock(100, IID_Player, {
|  93|  93| 	GetName: function() { return "Player 1"; },
|  94|  94| 	GetCiv: function() { return "gaia"; },
|  95|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  95|+	GetColor: function() { return { "r": 1, g: 1, b: 1, a: 1}; },
|  96|  96| 	CanControlAllUnits: function() { return false; },
|  97|  97| 	GetPopulationCount: function() { return 10; },
|  98|  98| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'g' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  92|  92| AddMock(100, IID_Player, {
|  93|  93| 	GetName: function() { return "Player 1"; },
|  94|  94| 	GetCiv: function() { return "gaia"; },
|  95|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  95|+	GetColor: function() { return { r: 1, "g": 1, b: 1, a: 1}; },
|  96|  96| 	CanControlAllUnits: function() { return false; },
|  97|  97| 	GetPopulationCount: function() { return 10; },
|  98|  98| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'b' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  92|  92| AddMock(100, IID_Player, {
|  93|  93| 	GetName: function() { return "Player 1"; },
|  94|  94| 	GetCiv: function() { return "gaia"; },
|  95|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  95|+	GetColor: function() { return { r: 1, g: 1, "b": 1, a: 1}; },
|  96|  96| 	CanControlAllUnits: function() { return false; },
|  97|  97| 	GetPopulationCount: function() { return 10; },
|  98|  98| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'a' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  92|  92| AddMock(100, IID_Player, {
|  93|  93| 	GetName: function() { return "Player 1"; },
|  94|  94| 	GetCiv: function() { return "gaia"; },
|  95|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  95|+	GetColor: function() { return { r: 1, g: 1, b: 1, "a": 1}; },
|  96|  96| 	CanControlAllUnits: function() { return false; },
|  97|  97| 	GetPopulationCount: function() { return 10; },
|  98|  98| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  92|  92| AddMock(100, IID_Player, {
|  93|  93| 	GetName: function() { return "Player 1"; },
|  94|  94| 	GetCiv: function() { return "gaia"; },
|  95|    |-	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|    |  95|+	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1 }; },
|  96|  96| 	CanControlAllUnits: function() { return false; },
|  97|  97| 	GetPopulationCount: function() { return 10; },
|  98|  98| 	GetPopulationLimit: function() { return 20; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'CanControlAllUnits' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  93|  93| 	GetName: function() { return "Player 1"; },
|  94|  94| 	GetCiv: function() { return "gaia"; },
|  95|  95| 	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  96|    |-	CanControlAllUnits: function() { return false; },
|    |  96|+	"CanControlAllUnits": function() { return false; },
|  97|  97| 	GetPopulationCount: function() { return 10; },
|  98|  98| 	GetPopulationLimit: function() { return 20; },
|  99|  99| 	GetMaxPopulation: function() { return 200; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPopulationCount' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  94|  94| 	GetCiv: function() { return "gaia"; },
|  95|  95| 	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  96|  96| 	CanControlAllUnits: function() { return false; },
|  97|    |-	GetPopulationCount: function() { return 10; },
|    |  97|+	"GetPopulationCount": function() { return 10; },
|  98|  98| 	GetPopulationLimit: function() { return 20; },
|  99|  99| 	GetMaxPopulation: function() { return 200; },
| 100| 100| 	GetResourceCounts: function() { return { food: 100 }; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPopulationLimit' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  95|  95| 	GetColor: function() { return { r: 1, g: 1, b: 1, a: 1}; },
|  96|  96| 	CanControlAllUnits: function() { return false; },
|  97|  97| 	GetPopulationCount: function() { return 10; },
|  98|    |-	GetPopulationLimit: function() { return 20; },
|    |  98|+	"GetPopulationLimit": function() { return 20; },
|  99|  99| 	GetMaxPopulation: function() { return 200; },
| 100| 100| 	GetResourceCounts: function() { return { food: 100 }; },
| 101| 101| 	GetPanelEntities: function() { return []; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetMaxPopulation' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  96|  96| 	CanControlAllUnits: function() { return false; },
|  97|  97| 	GetPopulationCount: function() { return 10; },
|  98|  98| 	GetPopulationLimit: function() { return 20; },
|  99|    |-	GetMaxPopulation: function() { return 200; },
|    |  99|+	"GetMaxPopulation": function() { return 200; },
| 100| 100| 	GetResourceCounts: function() { return { food: 100 }; },
| 101| 101| 	GetPanelEntities: function() { return []; },
| 102| 102| 	IsTrainingBlocked: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetResourceCounts' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  97|  97| 	GetPopulationCount: function() { return 10; },
|  98|  98| 	GetPopulationLimit: function() { return 20; },
|  99|  99| 	GetMaxPopulation: function() { return 200; },
| 100|    |-	GetResourceCounts: function() { return { food: 100 }; },
|    | 100|+	"GetResourceCounts": function() { return { food: 100 }; },
| 101| 101| 	GetPanelEntities: function() { return []; },
| 102| 102| 	IsTrainingBlocked: function() { return false; },
| 103| 103| 	GetState: function() { return "active"; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'food' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  97|  97| 	GetPopulationCount: function() { return 10; },
|  98|  98| 	GetPopulationLimit: function() { return 20; },
|  99|  99| 	GetMaxPopulation: function() { return 200; },
| 100|    |-	GetResourceCounts: function() { return { food: 100 }; },
|    | 100|+	GetResourceCounts: function() { return { "food": 100 }; },
| 101| 101| 	GetPanelEntities: function() { return []; },
| 102| 102| 	IsTrainingBlocked: function() { return false; },
| 103| 103| 	GetState: function() { return "active"; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPanelEntities' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  98|  98| 	GetPopulationLimit: function() { return 20; },
|  99|  99| 	GetMaxPopulation: function() { return 200; },
| 100| 100| 	GetResourceCounts: function() { return { food: 100 }; },
| 101|    |-	GetPanelEntities: function() { return []; },
|    | 101|+	"GetPanelEntities": function() { return []; },
| 102| 102| 	IsTrainingBlocked: function() { return false; },
| 103| 103| 	GetState: function() { return "active"; },
| 104| 104| 	GetTeam: function() { return -1; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsTrainingBlocked' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|  99|  99| 	GetMaxPopulation: function() { return 200; },
| 100| 100| 	GetResourceCounts: function() { return { food: 100 }; },
| 101| 101| 	GetPanelEntities: function() { return []; },
| 102|    |-	IsTrainingBlocked: function() { return false; },
|    | 102|+	"IsTrainingBlocked": function() { return false; },
| 103| 103| 	GetState: function() { return "active"; },
| 104| 104| 	GetTeam: function() { return -1; },
| 105| 105| 	GetLockTeams: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetState' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 100| 100| 	GetResourceCounts: function() { return { food: 100 }; },
| 101| 101| 	GetPanelEntities: function() { return []; },
| 102| 102| 	IsTrainingBlocked: function() { return false; },
| 103|    |-	GetState: function() { return "active"; },
|    | 103|+	"GetState": function() { return "active"; },
| 104| 104| 	GetTeam: function() { return -1; },
| 105| 105| 	GetLockTeams: function() { return false; },
| 106| 106| 	GetCheatsEnabled: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetTeam' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 101| 101| 	GetPanelEntities: function() { return []; },
| 102| 102| 	IsTrainingBlocked: function() { return false; },
| 103| 103| 	GetState: function() { return "active"; },
| 104|    |-	GetTeam: function() { return -1; },
|    | 104|+	"GetTeam": function() { return -1; },
| 105| 105| 	GetLockTeams: function() { return false; },
| 106| 106| 	GetCheatsEnabled: function() { return false; },
| 107| 107| 	GetDiplomacy: function() { return [-1, 1]; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLockTeams' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 102| 102| 	IsTrainingBlocked: function() { return false; },
| 103| 103| 	GetState: function() { return "active"; },
| 104| 104| 	GetTeam: function() { return -1; },
| 105|    |-	GetLockTeams: function() { return false; },
|    | 105|+	"GetLockTeams": function() { return false; },
| 106| 106| 	GetCheatsEnabled: function() { return false; },
| 107| 107| 	GetDiplomacy: function() { return [-1, 1]; },
| 108| 108| 	IsAlly: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCheatsEnabled' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 103| 103| 	GetState: function() { return "active"; },
| 104| 104| 	GetTeam: function() { return -1; },
| 105| 105| 	GetLockTeams: function() { return false; },
| 106|    |-	GetCheatsEnabled: function() { return false; },
|    | 106|+	"GetCheatsEnabled": function() { return false; },
| 107| 107| 	GetDiplomacy: function() { return [-1, 1]; },
| 108| 108| 	IsAlly: function() { return false; },
| 109| 109| 	IsMutualAlly: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetDiplomacy' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 104| 104| 	GetTeam: function() { return -1; },
| 105| 105| 	GetLockTeams: function() { return false; },
| 106| 106| 	GetCheatsEnabled: function() { return false; },
| 107|    |-	GetDiplomacy: function() { return [-1, 1]; },
|    | 107|+	"GetDiplomacy": function() { return [-1, 1]; },
| 108| 108| 	IsAlly: function() { return false; },
| 109| 109| 	IsMutualAlly: function() { return false; },
| 110| 110| 	IsNeutral: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsAlly' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 105| 105| 	GetLockTeams: function() { return false; },
| 106| 106| 	GetCheatsEnabled: function() { return false; },
| 107| 107| 	GetDiplomacy: function() { return [-1, 1]; },
| 108|    |-	IsAlly: function() { return false; },
|    | 108|+	"IsAlly": function() { return false; },
| 109| 109| 	IsMutualAlly: function() { return false; },
| 110| 110| 	IsNeutral: function() { return false; },
| 111| 111| 	IsEnemy: function() { return true; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsMutualAlly' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 106| 106| 	GetCheatsEnabled: function() { return false; },
| 107| 107| 	GetDiplomacy: function() { return [-1, 1]; },
| 108| 108| 	IsAlly: function() { return false; },
| 109|    |-	IsMutualAlly: function() { return false; },
|    | 109|+	"IsMutualAlly": function() { return false; },
| 110| 110| 	IsNeutral: function() { return false; },
| 111| 111| 	IsEnemy: function() { return true; },
| 112| 112| 	GetDisabledTemplates: function() { return {}; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsNeutral' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 107| 107| 	GetDiplomacy: function() { return [-1, 1]; },
| 108| 108| 	IsAlly: function() { return false; },
| 109| 109| 	IsMutualAlly: function() { return false; },
| 110|    |-	IsNeutral: function() { return false; },
|    | 110|+	"IsNeutral": function() { return false; },
| 111| 111| 	IsEnemy: function() { return true; },
| 112| 112| 	GetDisabledTemplates: function() { return {}; },
| 113| 113| 	GetDisabledTechnologies: function() { return {}; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsEnemy' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 108| 108| 	IsAlly: function() { return false; },
| 109| 109| 	IsMutualAlly: function() { return false; },
| 110| 110| 	IsNeutral: function() { return false; },
| 111|    |-	IsEnemy: function() { return true; },
|    | 111|+	"IsEnemy": function() { return true; },
| 112| 112| 	GetDisabledTemplates: function() { return {}; },
| 113| 113| 	GetDisabledTechnologies: function() { return {}; },
| 114| 114| 	GetSpyCostMultiplier: function() { return 1; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetDisabledTemplates' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 109| 109| 	IsMutualAlly: function() { return false; },
| 110| 110| 	IsNeutral: function() { return false; },
| 111| 111| 	IsEnemy: function() { return true; },
| 112|    |-	GetDisabledTemplates: function() { return {}; },
|    | 112|+	"GetDisabledTemplates": function() { return {}; },
| 113| 113| 	GetDisabledTechnologies: function() { return {}; },
| 114| 114| 	GetSpyCostMultiplier: function() { return 1; },
| 115| 115| 	HasSharedDropsites: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetDisabledTechnologies' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 110| 110| 	IsNeutral: function() { return false; },
| 111| 111| 	IsEnemy: function() { return true; },
| 112| 112| 	GetDisabledTemplates: function() { return {}; },
| 113|    |-	GetDisabledTechnologies: function() { return {}; },
|    | 113|+	"GetDisabledTechnologies": function() { return {}; },
| 114| 114| 	GetSpyCostMultiplier: function() { return 1; },
| 115| 115| 	HasSharedDropsites: function() { return false; },
| 116| 116| 	HasSharedLos: function() { return false; }
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetSpyCostMultiplier' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 111| 111| 	IsEnemy: function() { return true; },
| 112| 112| 	GetDisabledTemplates: function() { return {}; },
| 113| 113| 	GetDisabledTechnologies: function() { return {}; },
| 114|    |-	GetSpyCostMultiplier: function() { return 1; },
|    | 114|+	"GetSpyCostMultiplier": function() { return 1; },
| 115| 115| 	HasSharedDropsites: function() { return false; },
| 116| 116| 	HasSharedLos: function() { return false; }
| 117| 117| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'HasSharedDropsites' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 112| 112| 	GetDisabledTemplates: function() { return {}; },
| 113| 113| 	GetDisabledTechnologies: function() { return {}; },
| 114| 114| 	GetSpyCostMultiplier: function() { return 1; },
| 115|    |-	HasSharedDropsites: function() { return false; },
|    | 115|+	"HasSharedDropsites": function() { return false; },
| 116| 116| 	HasSharedLos: function() { return false; }
| 117| 117| });
| 118| 118| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'HasSharedLos' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 113| 113| 	GetDisabledTechnologies: function() { return {}; },
| 114| 114| 	GetSpyCostMultiplier: function() { return 1; },
| 115| 115| 	HasSharedDropsites: function() { return false; },
| 116|    |-	HasSharedLos: function() { return false; }
|    | 116|+	"HasSharedLos": function() { return false; }
| 117| 117| });
| 118| 118| 
| 119| 119| AddMock(100, IID_EntityLimits, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLimits' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 117| 117| });
| 118| 118| 
| 119| 119| AddMock(100, IID_EntityLimits, {
| 120|    |-	GetLimits: function() { return {"Foo": 10}; },
|    | 120|+	"GetLimits": function() { return {"Foo": 10}; },
| 121| 121| 	GetCounts: function() { return {"Foo": 5}; },
| 122| 122| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 123| 123| });
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 117| 117| });
| 118| 118| 
| 119| 119| AddMock(100, IID_EntityLimits, {
| 120|    |-	GetLimits: function() { return {"Foo": 10}; },
|    | 120|+	GetLimits: function() { return { "Foo": 10}; },
| 121| 121| 	GetCounts: function() { return {"Foo": 5}; },
| 122| 122| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 123| 123| });
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 117| 117| });
| 118| 118| 
| 119| 119| AddMock(100, IID_EntityLimits, {
| 120|    |-	GetLimits: function() { return {"Foo": 10}; },
|    | 120|+	GetLimits: function() { return {"Foo": 10 }; },
| 121| 121| 	GetCounts: function() { return {"Foo": 5}; },
| 122| 122| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 123| 123| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCounts' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 118| 118| 
| 119| 119| AddMock(100, IID_EntityLimits, {
| 120| 120| 	GetLimits: function() { return {"Foo": 10}; },
| 121|    |-	GetCounts: function() { return {"Foo": 5}; },
|    | 121|+	"GetCounts": function() { return {"Foo": 5}; },
| 122| 122| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 123| 123| });
| 124| 124| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 118| 118| 
| 119| 119| AddMock(100, IID_EntityLimits, {
| 120| 120| 	GetLimits: function() { return {"Foo": 10}; },
| 121|    |-	GetCounts: function() { return {"Foo": 5}; },
|    | 121|+	GetCounts: function() { return { "Foo": 5}; },
| 122| 122| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 123| 123| });
| 124| 124| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 118| 118| 
| 119| 119| AddMock(100, IID_EntityLimits, {
| 120| 120| 	GetLimits: function() { return {"Foo": 10}; },
| 121|    |-	GetCounts: function() { return {"Foo": 5}; },
|    | 121|+	GetCounts: function() { return {"Foo": 5 }; },
| 122| 122| 	GetLimitChangers: function() {return {"Foo": {}}; }
| 123| 123| });
| 124| 124| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLimitChangers' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 119| 119| AddMock(100, IID_EntityLimits, {
| 120| 120| 	GetLimits: function() { return {"Foo": 10}; },
| 121| 121| 	GetCounts: function() { return {"Foo": 5}; },
| 122|    |-	GetLimitChangers: function() {return {"Foo": {}}; }
|    | 122|+	"GetLimitChangers": function() {return {"Foo": {}}; }
| 123| 123| });
| 124| 124| 
| 125| 125| AddMock(100, IID_TechnologyManager, {
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 119| 119| AddMock(100, IID_EntityLimits, {
| 120| 120| 	GetLimits: function() { return {"Foo": 10}; },
| 121| 121| 	GetCounts: function() { return {"Foo": 5}; },
| 122|    |-	GetLimitChangers: function() {return {"Foo": {}}; }
|    | 122|+	GetLimitChangers: function() {return { "Foo": {}}; }
| 123| 123| });
| 124| 124| 
| 125| 125| AddMock(100, IID_TechnologyManager, {
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 119| 119| AddMock(100, IID_EntityLimits, {
| 120| 120| 	GetLimits: function() { return {"Foo": 10}; },
| 121| 121| 	GetCounts: function() { return {"Foo": 5}; },
| 122|    |-	GetLimitChangers: function() {return {"Foo": {}}; }
|    | 122|+	GetLimitChangers: function() {return {"Foo": {} }; }
| 123| 123| });
| 124| 124| 
| 125| 125| AddMock(100, IID_TechnologyManager, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetBasicStatistics' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 132| 132| });
| 133| 133| 
| 134| 134| AddMock(100, IID_StatisticsTracker, {
| 135|    |-	GetBasicStatistics: function() {
|    | 135|+	"GetBasicStatistics": function() {
| 136| 136| 		return {
| 137| 137| 			"resourcesGathered": {
| 138| 138| 				"food": 100,
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetSequences' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 144| 144| 			"percentMapExplored": 10
| 145| 145| 		};
| 146| 146| 	},
| 147|    |-	GetSequences: function() {
|    | 147|+	"GetSequences": function() {
| 148| 148| 		return {
| 149| 149| 			"unitsTrained": [0, 10],
| 150| 150| 			"unitsLost": [0, 42],
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IncreaseTrainedUnitsCounter' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 169| 169| 			"teamPeakPercentOfMapControlled": [0, 10]
| 170| 170| 		};
| 171| 171| 	},
| 172|    |-	IncreaseTrainedUnitsCounter: function() { return 1; },
|    | 172|+	"IncreaseTrainedUnitsCounter": function() { return 1; },
| 173| 173| 	IncreaseConstructedBuildingsCounter: function() { return 1; },
| 174| 174| 	IncreaseBuiltCivCentresCounter: function() { return 1; }
| 175| 175| });
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IncreaseConstructedBuildingsCounter' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 170| 170| 		};
| 171| 171| 	},
| 172| 172| 	IncreaseTrainedUnitsCounter: function() { return 1; },
| 173|    |-	IncreaseConstructedBuildingsCounter: function() { return 1; },
|    | 173|+	"IncreaseConstructedBuildingsCounter": function() { return 1; },
| 174| 174| 	IncreaseBuiltCivCentresCounter: function() { return 1; }
| 175| 175| });
| 176| 176| 
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IncreaseBuiltCivCentresCounter' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 171| 171| 	},
| 172| 172| 	IncreaseTrainedUnitsCounter: function() { return 1; },
| 173| 173| 	IncreaseConstructedBuildingsCounter: function() { return 1; },
| 174|    |-	IncreaseBuiltCivCentresCounter: function() { return 1; }
|    | 174|+	"IncreaseBuiltCivCentresCounter": function() { return 1; }
| 175| 175| });
| 176| 176| 
| 177| 177| AddMock(101, IID_Player, {
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetName' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 175| 175| });
| 176| 176| 
| 177| 177| AddMock(101, IID_Player, {
| 178|    |-	GetName: function() { return "Player 2"; },
|    | 178|+	"GetName": function() { return "Player 2"; },
| 179| 179| 	GetCiv: function() { return "mace"; },
| 180| 180| 	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 181| 181| 	CanControlAllUnits: function() { return true; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCiv' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 176| 176| 
| 177| 177| AddMock(101, IID_Player, {
| 178| 178| 	GetName: function() { return "Player 2"; },
| 179|    |-	GetCiv: function() { return "mace"; },
|    | 179|+	"GetCiv": function() { return "mace"; },
| 180| 180| 	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 181| 181| 	CanControlAllUnits: function() { return true; },
| 182| 182| 	GetPopulationCount: function() { return 40; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetColor' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 177| 177| AddMock(101, IID_Player, {
| 178| 178| 	GetName: function() { return "Player 2"; },
| 179| 179| 	GetCiv: function() { return "mace"; },
| 180|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 180|+	"GetColor": function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 181| 181| 	CanControlAllUnits: function() { return true; },
| 182| 182| 	GetPopulationCount: function() { return 40; },
| 183| 183| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'r' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 177| 177| AddMock(101, IID_Player, {
| 178| 178| 	GetName: function() { return "Player 2"; },
| 179| 179| 	GetCiv: function() { return "mace"; },
| 180|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 180|+	GetColor: function() { return { "r": 1, g: 0, b: 0, a: 1}; },
| 181| 181| 	CanControlAllUnits: function() { return true; },
| 182| 182| 	GetPopulationCount: function() { return 40; },
| 183| 183| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'g' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 177| 177| AddMock(101, IID_Player, {
| 178| 178| 	GetName: function() { return "Player 2"; },
| 179| 179| 	GetCiv: function() { return "mace"; },
| 180|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 180|+	GetColor: function() { return { r: 1, "g": 0, b: 0, a: 1}; },
| 181| 181| 	CanControlAllUnits: function() { return true; },
| 182| 182| 	GetPopulationCount: function() { return 40; },
| 183| 183| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'b' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 177| 177| AddMock(101, IID_Player, {
| 178| 178| 	GetName: function() { return "Player 2"; },
| 179| 179| 	GetCiv: function() { return "mace"; },
| 180|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 180|+	GetColor: function() { return { r: 1, g: 0, "b": 0, a: 1}; },
| 181| 181| 	CanControlAllUnits: function() { return true; },
| 182| 182| 	GetPopulationCount: function() { return 40; },
| 183| 183| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'a' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 177| 177| AddMock(101, IID_Player, {
| 178| 178| 	GetName: function() { return "Player 2"; },
| 179| 179| 	GetCiv: function() { return "mace"; },
| 180|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 180|+	GetColor: function() { return { r: 1, g: 0, b: 0, "a": 1}; },
| 181| 181| 	CanControlAllUnits: function() { return true; },
| 182| 182| 	GetPopulationCount: function() { return 40; },
| 183| 183| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 177| 177| AddMock(101, IID_Player, {
| 178| 178| 	GetName: function() { return "Player 2"; },
| 179| 179| 	GetCiv: function() { return "mace"; },
| 180|    |-	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
|    | 180|+	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1 }; },
| 181| 181| 	CanControlAllUnits: function() { return true; },
| 182| 182| 	GetPopulationCount: function() { return 40; },
| 183| 183| 	GetPopulationLimit: function() { return 30; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'CanControlAllUnits' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 178| 178| 	GetName: function() { return "Player 2"; },
| 179| 179| 	GetCiv: function() { return "mace"; },
| 180| 180| 	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 181|    |-	CanControlAllUnits: function() { return true; },
|    | 181|+	"CanControlAllUnits": function() { return true; },
| 182| 182| 	GetPopulationCount: function() { return 40; },
| 183| 183| 	GetPopulationLimit: function() { return 30; },
| 184| 184| 	GetMaxPopulation: function() { return 300; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPopulationCount' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 179| 179| 	GetCiv: function() { return "mace"; },
| 180| 180| 	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 181| 181| 	CanControlAllUnits: function() { return true; },
| 182|    |-	GetPopulationCount: function() { return 40; },
|    | 182|+	"GetPopulationCount": function() { return 40; },
| 183| 183| 	GetPopulationLimit: function() { return 30; },
| 184| 184| 	GetMaxPopulation: function() { return 300; },
| 185| 185| 	GetResourceCounts: function() { return { food: 200 }; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPopulationLimit' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 180| 180| 	GetColor: function() { return { r: 1, g: 0, b: 0, a: 1}; },
| 181| 181| 	CanControlAllUnits: function() { return true; },
| 182| 182| 	GetPopulationCount: function() { return 40; },
| 183|    |-	GetPopulationLimit: function() { return 30; },
|    | 183|+	"GetPopulationLimit": function() { return 30; },
| 184| 184| 	GetMaxPopulation: function() { return 300; },
| 185| 185| 	GetResourceCounts: function() { return { food: 200 }; },
| 186| 186| 	GetPanelEntities: function() { return []; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetMaxPopulation' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 181| 181| 	CanControlAllUnits: function() { return true; },
| 182| 182| 	GetPopulationCount: function() { return 40; },
| 183| 183| 	GetPopulationLimit: function() { return 30; },
| 184|    |-	GetMaxPopulation: function() { return 300; },
|    | 184|+	"GetMaxPopulation": function() { return 300; },
| 185| 185| 	GetResourceCounts: function() { return { food: 200 }; },
| 186| 186| 	GetPanelEntities: function() { return []; },
| 187| 187| 	IsTrainingBlocked: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetResourceCounts' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 182| 182| 	GetPopulationCount: function() { return 40; },
| 183| 183| 	GetPopulationLimit: function() { return 30; },
| 184| 184| 	GetMaxPopulation: function() { return 300; },
| 185|    |-	GetResourceCounts: function() { return { food: 200 }; },
|    | 185|+	"GetResourceCounts": function() { return { food: 200 }; },
| 186| 186| 	GetPanelEntities: function() { return []; },
| 187| 187| 	IsTrainingBlocked: function() { return false; },
| 188| 188| 	GetState: function() { return "active"; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'food' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 182| 182| 	GetPopulationCount: function() { return 40; },
| 183| 183| 	GetPopulationLimit: function() { return 30; },
| 184| 184| 	GetMaxPopulation: function() { return 300; },
| 185|    |-	GetResourceCounts: function() { return { food: 200 }; },
|    | 185|+	GetResourceCounts: function() { return { "food": 200 }; },
| 186| 186| 	GetPanelEntities: function() { return []; },
| 187| 187| 	IsTrainingBlocked: function() { return false; },
| 188| 188| 	GetState: function() { return "active"; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetPanelEntities' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 183| 183| 	GetPopulationLimit: function() { return 30; },
| 184| 184| 	GetMaxPopulation: function() { return 300; },
| 185| 185| 	GetResourceCounts: function() { return { food: 200 }; },
| 186|    |-	GetPanelEntities: function() { return []; },
|    | 186|+	"GetPanelEntities": function() { return []; },
| 187| 187| 	IsTrainingBlocked: function() { return false; },
| 188| 188| 	GetState: function() { return "active"; },
| 189| 189| 	GetTeam: function() { return -1; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsTrainingBlocked' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 184| 184| 	GetMaxPopulation: function() { return 300; },
| 185| 185| 	GetResourceCounts: function() { return { food: 200 }; },
| 186| 186| 	GetPanelEntities: function() { return []; },
| 187|    |-	IsTrainingBlocked: function() { return false; },
|    | 187|+	"IsTrainingBlocked": function() { return false; },
| 188| 188| 	GetState: function() { return "active"; },
| 189| 189| 	GetTeam: function() { return -1; },
| 190| 190| 	GetLockTeams: function() {return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetState' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 185| 185| 	GetResourceCounts: function() { return { food: 200 }; },
| 186| 186| 	GetPanelEntities: function() { return []; },
| 187| 187| 	IsTrainingBlocked: function() { return false; },
| 188|    |-	GetState: function() { return "active"; },
|    | 188|+	"GetState": function() { return "active"; },
| 189| 189| 	GetTeam: function() { return -1; },
| 190| 190| 	GetLockTeams: function() {return false; },
| 191| 191| 	GetCheatsEnabled: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetTeam' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 186| 186| 	GetPanelEntities: function() { return []; },
| 187| 187| 	IsTrainingBlocked: function() { return false; },
| 188| 188| 	GetState: function() { return "active"; },
| 189|    |-	GetTeam: function() { return -1; },
|    | 189|+	"GetTeam": function() { return -1; },
| 190| 190| 	GetLockTeams: function() {return false; },
| 191| 191| 	GetCheatsEnabled: function() { return false; },
| 192| 192| 	GetDiplomacy: function() { return [-1, 1]; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetLockTeams' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 187| 187| 	IsTrainingBlocked: function() { return false; },
| 188| 188| 	GetState: function() { return "active"; },
| 189| 189| 	GetTeam: function() { return -1; },
| 190|    |-	GetLockTeams: function() {return false; },
|    | 190|+	"GetLockTeams": function() {return false; },
| 191| 191| 	GetCheatsEnabled: function() { return false; },
| 192| 192| 	GetDiplomacy: function() { return [-1, 1]; },
| 193| 193| 	IsAlly: function() { return true; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetCheatsEnabled' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 188| 188| 	GetState: function() { return "active"; },
| 189| 189| 	GetTeam: function() { return -1; },
| 190| 190| 	GetLockTeams: function() {return false; },
| 191|    |-	GetCheatsEnabled: function() { return false; },
|    | 191|+	"GetCheatsEnabled": function() { return false; },
| 192| 192| 	GetDiplomacy: function() { return [-1, 1]; },
| 193| 193| 	IsAlly: function() { return true; },
| 194| 194| 	IsMutualAlly: function() {return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'GetDiplomacy' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 189| 189| 	GetTeam: function() { return -1; },
| 190| 190| 	GetLockTeams: function() {return false; },
| 191| 191| 	GetCheatsEnabled: function() { return false; },
| 192|    |-	GetDiplomacy: function() { return [-1, 1]; },
|    | 192|+	"GetDiplomacy": function() { return [-1, 1]; },
| 193| 193| 	IsAlly: function() { return true; },
| 194| 194| 	IsMutualAlly: function() {return false; },
| 195| 195| 	IsNeutral: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted property 'IsAlly' found.
|----|    | /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
|    |++++| /mnt/data/jenkins-phabricator/workspace/phabricator_lint/binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js
| 190| 190| 	GetLockTeams: function() {return false; },
| 191| 191| 	GetCheatsEnabled: function() { return false; },
| 192| 192| 	GetDiplomacy: function() { return [-1, 1]; },
| 193|    |-	IsAlly: function() { return true; },
|    | 193|+	"IsAlly": function() { return true; },
| 194| 194| 	IsMutualAlly: function() {return false; },
| 195| 195| 	IsNeutral: function() { return false; },
| 196| 196| 	IsEnemy: function() { return false; },
|    | [NORMAL] ESLintBear (quote-props):
|    | Unquoted
This revision was not accepted when it landed; it landed in state Needs Review.Feb 7 2018, 9:58 PM
This revision was automatically updated to reflect the committed changes.