Differential D1137 Diff 4769 ps/trunk/binaries/data/mods/public/simulation/components/StatisticsTracker.js
Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/binaries/data/mods/public/simulation/components/StatisticsTracker.js
Show First 20 Lines • Show All 476 Lines • ▼ Show 20 Lines | |||||
StatisticsTracker.prototype.IncreaseFailedBribesCounter = function() | StatisticsTracker.prototype.IncreaseFailedBribesCounter = function() | ||||
{ | { | ||||
++this.failedBribes; | ++this.failedBribes; | ||||
}; | }; | ||||
StatisticsTracker.prototype.GetPercentMapExplored = function() | StatisticsTracker.prototype.GetPercentMapExplored = function() | ||||
{ | { | ||||
var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager); | let cmpPlayer = Engine.QueryInterface(this.entity, IID_Player); | ||||
var cmpPlayer = Engine.QueryInterface(this.entity, IID_Player); | if (!cmpPlayer) | ||||
return cmpRangeManager.GetPercentMapExplored(cmpPlayer.GetPlayerID()); | return 0; | ||||
return Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager).GetPercentMapExplored(cmpPlayer.GetPlayerID()); | |||||
}; | }; | ||||
/** | /** | ||||
* Note: cmpRangeManager.GetUnionPercentMapExplored computes statistics from scratch! | * Note: cmpRangeManager.GetUnionPercentMapExplored computes statistics from scratch! | ||||
* As a consequence, this function should not be called too often. | * As a consequence, this function should not be called too often. | ||||
*/ | */ | ||||
StatisticsTracker.prototype.GetTeamPercentMapExplored = function() | StatisticsTracker.prototype.GetTeamPercentMapExplored = function() | ||||
{ | { | ||||
var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager); | let cmpPlayer = Engine.QueryInterface(this.entity, IID_Player); | ||||
var cmpPlayerManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager); | |||||
var cmpPlayer = Engine.QueryInterface(this.entity, IID_Player); | |||||
if (!cmpPlayer) | if (!cmpPlayer) | ||||
return 0; | return 0; | ||||
var team = cmpPlayer.GetTeam(); | let team = cmpPlayer.GetTeam(); | ||||
let cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager); | |||||
// If teams are not locked, this statistic won't be displayed, so don't bother computing | // If teams are not locked, this statistic won't be displayed, so don't bother computing | ||||
if (team == -1 || !cmpPlayer.GetLockTeams()) | if (team == -1 || !cmpPlayer.GetLockTeams()) | ||||
return cmpRangeManager.GetPercentMapExplored(cmpPlayer.GetPlayerID()); | return cmpRangeManager.GetPercentMapExplored(cmpPlayer.GetPlayerID()); | ||||
var teamPlayers = []; | let teamPlayers = []; | ||||
for (var i = 1; i < cmpPlayerManager.GetNumPlayers(); ++i) | let numPlayers = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager).GetNumPlayers(); | ||||
for (let i = 1; i < numPlayers; ++i) | |||||
{ | { | ||||
let cmpOtherPlayer = QueryPlayerIDInterface(i); | let cmpOtherPlayer = QueryPlayerIDInterface(i); | ||||
if (cmpOtherPlayer && cmpOtherPlayer.GetTeam() == team) | if (cmpOtherPlayer && cmpOtherPlayer.GetTeam() == team) | ||||
teamPlayers.push(i); | teamPlayers.push(i); | ||||
} | } | ||||
return cmpRangeManager.GetUnionPercentMapExplored(teamPlayers); | return cmpRangeManager.GetUnionPercentMapExplored(teamPlayers); | ||||
}; | }; | ||||
StatisticsTracker.prototype.GetPercentMapControlled = function() | StatisticsTracker.prototype.GetPercentMapControlled = function() | ||||
{ | { | ||||
var cmpPlayer = Engine.QueryInterface(this.entity, IID_Player); | let cmpPlayer = Engine.QueryInterface(this.entity, IID_Player); | ||||
var cmpTerritoryManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager); | if (!cmpPlayer) | ||||
if (!cmpPlayer || !cmpTerritoryManager) | |||||
return 0; | return 0; | ||||
return cmpTerritoryManager.GetTerritoryPercentage(cmpPlayer.GetPlayerID()); | return Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).GetTerritoryPercentage(cmpPlayer.GetPlayerID()); | ||||
}; | }; | ||||
StatisticsTracker.prototype.GetTeamPercentMapControlled = function() | StatisticsTracker.prototype.GetTeamPercentMapControlled = function() | ||||
{ | { | ||||
var cmpPlayer = Engine.QueryInterface(this.entity, IID_Player); | let cmpPlayer = Engine.QueryInterface(this.entity, IID_Player); | ||||
var cmpPlayerManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager); | if (!cmpPlayer) | ||||
var cmpTerritoryManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager); | |||||
if (!cmpPlayer || !cmpTerritoryManager) | |||||
return 0; | return 0; | ||||
var team = cmpPlayer.GetTeam(); | let team = cmpPlayer.GetTeam(); | ||||
let cmpTerritoryManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager); | |||||
if (team == -1 || !cmpPlayer.GetLockTeams()) | if (team == -1 || !cmpPlayer.GetLockTeams()) | ||||
return cmpTerritoryManager.GetTerritoryPercentage(cmpPlayer.GetPlayerID()); | return cmpTerritoryManager.GetTerritoryPercentage(cmpPlayer.GetPlayerID()); | ||||
var teamPercent = 0; | let teamPercent = 0; | ||||
for (let i = 1; i < cmpPlayerManager.GetNumPlayers(); ++i) | let numPlayers = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager).GetNumPlayers(); | ||||
for (let i = 1; i < numPlayers; ++i) | |||||
{ | { | ||||
let cmpOtherPlayer = QueryPlayerIDInterface(i); | let cmpOtherPlayer = QueryPlayerIDInterface(i); | ||||
if (cmpOtherPlayer && cmpOtherPlayer.GetTeam() == team) | if (cmpOtherPlayer && cmpOtherPlayer.GetTeam() == team) | ||||
teamPercent += cmpTerritoryManager.GetTerritoryPercentage(i); | teamPercent += cmpTerritoryManager.GetTerritoryPercentage(i); | ||||
} | } | ||||
return teamPercent; | return teamPercent; | ||||
}; | }; | ||||
▲ Show 20 Lines • Show All 41 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator