Ticket #1215: patch2.patch

File patch2.patch, 2.5 KB (added by O.Davoodi, 12 years ago)
  • GuiInterface.js

     
    692692GuiInterface.prototype.GetTradingDetails = function(player, data)
    693693{
    694694    var cmpEntityTrader = Engine.QueryInterface(data.trader, IID_Trader);
    695     if (!cmpEntityTrader || !cmpEntityTrader.CanTrade(data.target))
     695    if (!cmpEntityTrader || !cmpEntityTrader.CanTrade(data.target, data.targetState))
    696696        return null;
    697697    var firstMarket = cmpEntityTrader.GetFirstMarket();
    698698    var secondMarket = cmpEntityTrader.GetSecondMarket();
  • Trader.js

     
    159159    this.preferredGoods = preferredGoods;
    160160}
    161161
    162 Trader.prototype.CanTrade = function(target)
     162Trader.prototype.CanTrade = function(target, targetState)
    163163{
     164    // Check that the target is not a foundation
     165    if (targetState.foundation)
     166        return false;
    164167    var cmpTraderIdentity = Engine.QueryInterface(this.entity, IID_Identity);
    165168    var cmpTargetIdentity = Engine.QueryInterface(target, IID_Identity);
    166169    // Check that the target exists
  • UnitAI.js

     
    24302430    this.AddOrder("ReturnResource", { "target": target }, queued);
    24312431};
    24322432
    2433 UnitAI.prototype.SetupTradeRoute = function(target, queued)
     2433UnitAI.prototype.SetupTradeRoute = function(target, queued, targetState)
    24342434{
    2435     if (!this.CanTrade(target))
     2435    if (!this.CanTrade(target, targetState))
    24362436    {
    24372437        this.WalkToTarget(target, queued);
    24382438        return;
     
    24682468
    24692469UnitAI.prototype.PerformTradeAndMoveToNextMarket = function(currentMarket, nextMarket, nextFsmStateName)
    24702470{
    2471     if (!this.CanTrade(currentMarket))
     2471    if (!this.CanTrade(currentMarket, currentMarket))
    24722472    {
    24732473        this.StopTrading();
    24742474        return;
     
    27242724    return true;
    27252725};
    27262726
    2727 UnitAI.prototype.CanTrade = function(target)
     2727UnitAI.prototype.CanTrade = function(target, targetState)
    27282728{
    27292729    // Formation controllers should always respond to commands
    27302730    // (then the individual units can make up their own minds)
     
    27332733
    27342734    // Verify that we're able to respond to Trade commands
    27352735    var cmpTrader = Engine.QueryInterface(this.entity, IID_Trader);
    2736     if (!cmpTrader || !cmpTrader.CanTrade(target))
     2736    if (!cmpTrader || !cmpTrader.CanTrade(target, targetState))
    27372737        return false;
    27382738
    27392739    return true;