1
0
forked from 0ad/0ad

Prevent trade with foundations, based on patch by Spahbod, fixes #1215.

This was SVN commit r11440.
This commit is contained in:
leper 2012-04-05 22:00:15 +00:00
parent a5076c1eb1
commit 7ff99cc218
2 changed files with 8 additions and 2 deletions

View File

@ -269,12 +269,14 @@ function getActionInfo(action, target)
break;
case "setup-trade-route":
// If ground or sea trade possible
if ((entState.trader && hasClass(entState, "Organic") && (playerOwned || allyOwned) && hasClass(targetState, "Market")) ||
(entState.trader && hasClass(entState, "Ship") && (playerOwned || allyOwned) && hasClass(targetState, "NavalMarket")))
if (!targetState.foundation && ((entState.trader && hasClass(entState, "Organic") && (playerOwned || allyOwned) && hasClass(targetState, "Market")) ||
(entState.trader && hasClass(entState, "Ship") && (playerOwned || allyOwned) && hasClass(targetState, "NavalMarket"))))
{
var tradingData = {"trader": entState.id, "target": target};
var tradingDetails = Engine.GuiInterfaceCall("GetTradingDetails", tradingData);
var tooltip;
if (tradingDetails === null)
return {"possible": false};
switch (tradingDetails.type)
{
case "is first":

View File

@ -166,6 +166,10 @@ Trader.prototype.CanTrade = function(target)
// Check that the target exists
if (!cmpTargetIdentity)
return false;
// Check that the target is not a foundation
var cmpTargetFoundation = Engine.QueryInterface(target, IID_Foundation);
if (cmpTargetFoundation)
return false;
var landTradingPossible = cmpTraderIdentity.HasClass("Organic") && cmpTargetIdentity.HasClass("Market");
var seaTradingPossible = cmpTraderIdentity.HasClass("Ship") && cmpTargetIdentity.HasClass("NavalMarket");
if (!landTradingPossible && !seaTradingPossible)