1
0
forked from 0ad/0ad

petra support of disabled technologies, fixes #4500

Reviewed By: Sandarac
Differential Revision: https://code.wildfiregames.com/D178
This was SVN commit r19275.
This commit is contained in:
mimo 2017-03-06 19:23:18 +00:00
parent 46eb20c5ea
commit 21798caa45
3 changed files with 15 additions and 4 deletions

View File

@ -203,6 +203,9 @@ m.GameState.prototype.isResearching = function(template)
/** this is an "in-absolute" check that doesn't check if we have a building to research from. */
m.GameState.prototype.canResearch = function(techTemplateName, noRequirementCheck)
{
if (this.playerData.disabledTechnologies[techTemplateName])
return false;
let template = this.getTemplate(techTemplateName);
if (!template)
return false;
@ -739,14 +742,15 @@ m.GameState.prototype.findAvailableTech = function()
{
let allResearchable = [];
let civ = this.playerData.civ;
this.getOwnEntities().forEach(function(ent) {
for (let ent of this.getOwnEntities().values())
{
let searchable = ent.researchableTechs(civ);
if (!searchable)
return;
continue;
for (let tech of searchable)
if (allResearchable.indexOf(tech) === -1)
if (!this.playerData.disabledTechnologies[tech] && allResearchable.indexOf(tech) === -1)
allResearchable.push(tech);
});
}
let ret = [];
for (let tech of allResearchable)

View File

@ -106,6 +106,7 @@ GuiInterface.prototype.GetSimulationState = function()
"teamsLocked": cmpPlayer.GetLockTeams(),
"cheatsEnabled": cmpPlayer.GetCheatsEnabled(),
"disabledTemplates": cmpPlayer.GetDisabledTemplates(),
"disabledTechnologies": cmpPlayer.GetDisabledTechnologies(),
"hasSharedDropsites": cmpPlayer.HasSharedDropsites(),
"hasSharedLos": cmpPlayer.HasSharedLos(),
"phase": phase,

View File

@ -107,6 +107,7 @@ AddMock(100, IID_Player, {
IsNeutral: function() { return false; },
IsEnemy: function() { return true; },
GetDisabledTemplates: function() { return {}; },
GetDisabledTechnologies: function() { return {}; },
HasSharedDropsites: function() { return false; },
HasSharedLos: function() { return false; },
});
@ -191,6 +192,7 @@ AddMock(101, IID_Player, {
IsNeutral: function() { return false; },
IsEnemy: function() { return false; },
GetDisabledTemplates: function() { return {}; },
GetDisabledTechnologies: function() { return {}; },
HasSharedDropsites: function() { return false; },
HasSharedLos: function() { return false; },
});
@ -275,6 +277,7 @@ TS_ASSERT_UNEVAL_EQUALS(cmp.GetSimulationState(), {
teamsLocked: false,
cheatsEnabled: false,
disabledTemplates: {},
disabledTechnologies: {},
hasSharedDropsites: false,
hasSharedLos: false,
phase: "village",
@ -317,6 +320,7 @@ TS_ASSERT_UNEVAL_EQUALS(cmp.GetSimulationState(), {
teamsLocked: false,
cheatsEnabled: false,
disabledTemplates: {},
disabledTechnologies: {},
hasSharedDropsites: false,
hasSharedLos: false,
phase: "village",
@ -387,6 +391,7 @@ TS_ASSERT_UNEVAL_EQUALS(cmp.GetExtendedSimulationState(), {
teamsLocked: false,
cheatsEnabled: false,
disabledTemplates: {},
disabledTechnologies: {},
hasSharedDropsites: false,
hasSharedLos: false,
phase: "village",
@ -442,6 +447,7 @@ TS_ASSERT_UNEVAL_EQUALS(cmp.GetExtendedSimulationState(), {
teamsLocked: false,
cheatsEnabled: false,
disabledTemplates: {},
disabledTechnologies: {},
hasSharedDropsites: false,
hasSharedLos: false,
phase: "village",