1
0
forked from 0ad/0ad

Allow gathering regardless of resource owner

This was SVN commit r11478.
This commit is contained in:
leper 2012-04-10 21:09:21 +00:00
parent d3a24c26ba
commit 71a57ed3a7
2 changed files with 8 additions and 11 deletions

View File

@ -206,7 +206,7 @@ function getActionInfo(action, target)
data.target = target; data.target = target;
cursor = "action-garrison"; cursor = "action-garrison";
} }
else if (targetState.resourceSupply && (playerOwned || gaiaOwned)) else if (targetState.resourceSupply)
{ {
var resourceType = targetState.resourceSupply.type.specific; var resourceType = targetState.resourceSupply.type.specific;
if (targetState.resourceSupply.type.generic === "treasure") if (targetState.resourceSupply.type.generic === "treasure")
@ -300,7 +300,7 @@ function getActionInfo(action, target)
} }
break; break;
case "gather": case "gather":
if (targetState.resourceSupply && (playerOwned || gaiaOwned)) if (targetState.resourceSupply)
{ {
var resource = findGatherType(entState.resourceGatherRates, targetState.resourceSupply); var resource = findGatherType(entState.resourceGatherRates, targetState.resourceSupply);
if (resource) if (resource)

View File

@ -1868,12 +1868,11 @@ UnitAI.prototype.FindNearbyResource = function(filter)
{ {
var range = 64; // TODO: what's a sensible number? var range = 64; // TODO: what's a sensible number?
// Accept any resources owned by Gaia var playerMan = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager);
// We accept resources owned by Gaia or any player
var players = [0]; var players = [0];
// Also accept resources owned by this unit's player: for (var i = 1; i < playerMan.GetNumPlayers(); ++i)
var cmpOwnership = Engine.QueryInterface(this.entity, IID_Ownership); players.push(i);
if (cmpOwnership)
players.push(cmpOwnership.GetOwner());
var cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager); var cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager); var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
@ -2728,10 +2727,8 @@ UnitAI.prototype.CanGather = function(target)
if (!cmpResourceGatherer.GetTargetGatherRate(target)) if (!cmpResourceGatherer.GetTargetGatherRate(target))
return false; return false;
// Verify that the target is owned by gaia or this entity's player // No need to verify ownership as we should be able to gather from
var cmpOwnership = Engine.QueryInterface(this.entity, IID_Ownership); // a target regardless of ownership.
if (!cmpOwnership || (!IsOwnedByGaia(target) && !IsOwnedByPlayer(cmpOwnership.GetOwner(), target)))
return false;
return true; return true;
}; };