XRWS           uÄ   â  tâext_01.cat ext_01.dat aiscripts/order.trade.wareexchange.advanced.xml 28661 1735573296 61906f4622c81a563e2399b9925fc3fe
libraries/icons.xml 224 1724053396 194aee76fc0c4d5836b524845f5e05c7
t/0001.xml 1037 1733236609 233fa155b4dd6b555632680c3d0918c7
<?xml version="1.0" encoding="utf-8"?>
<aiscript name="order.trade.wareexchange.advanced" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="aiscripts.xsd">
  <order id="TradeExchangeAdvanced" name="{1041,7001}" description="{1041,7002}" category="trade" infinite="true">
    <params>
      <param name="stationA" type="object" default="null" text="{1041,17001}" required="true">
        <input_param name="class" value="[class.station]"/>
        <input_param name="owner" value="this.object.owner"/>
      </param>
      <param name="stationB" type="object" default="null" text="{1041,17003}" required="true">
        <input_param name="class" value="[class.station]"/>
        <input_param name="owner" value="this.object.owner"/>
      </param>
      <param name="wareBasket1" type="list" default="[]" text="{1041,17002}">
        <input_param name="type" value="'ware'"/>
        <input_param name="cancarry" value="this.ship"/>
        <!--Ограничитель не работает - ломает торговые станции - не видит просто лежащие товары.-->
        <!-- <input_param name="soldby" value="$station1" /> -->
        <!-- <input_param name="boughtby" value="$station2" /> -->
      </param>
      <param name="needTradeBack" type="bool" default="true" text="{1041,17005}"/>
      <param name="wareBasket2" type="list" default="[]" text="{1041,17004}">
        <input_param name="type" value="'ware'"/>
        <input_param name="cancarry" value="this.ship"/>
        <!-- <input_param name="soldby" value="$station2" /> -->
        <!-- <input_param name="boughtby" value="$station1" /> -->
      </param>
      <param name="skipStockLimits" type="internal" default="false" text="{1041,17006}" comment="не обращать внимания на пределы количества товара для выставления торгового предложения, не работает как задумано"/>
      <param name="isEqualVolumes" type="bool" default="false" text="{1041,17007}" comment="true - накладывать равный объём каждого товара; false - объём каждого товара пропорционален потреблению (чем сильнее дефицит на станции назначения тем больше корабль возьмёт с собой)"/>
      <param name="isAssignA" type="bool" default="false" text="{1041,17008}" />
      <param name="isAssignB" type="bool" default="true" text="{1041,17009}" />
      <param name="isOnBackRun" type="internal" default="'check'" />
    </params>
    <skill min="20"/>
    <!--Ограничение только для товаров в ящиках <= корабль может иметь или раздельные грузовые отсеки или совместные - замучаешься это учитывать и считать.-->
    <requires primarypurpose="purpose.trade" waretransport="waretransport.container"/>
  </order>
  <interrupts>
    <handler ref="SectorChangeHandler"/>
    <handler ref="AttackHandler" />
    <handler ref="MissileLockHandler" />
    <handler ref="ScannedHandler" />
    <handler ref="InspectedHandler"/>
    <handler ref="FoundAbandonedHandler"/>
    <handler ref="FoundLockboxHandler"/>
    <handler ref="ResupplyHandler" />
    <handler ref="TargetInvalidHandler"/>
    <handler ref="TideHandler"/>
  </interrupts>
  <init>
    <set_value name="$debugChance" exact="100" />
    <set_value name="$debugFilename" exact="'ship %s'.[this.ship.idcode]" />
    <create_list name="$fakeOfferList" />
    <set_command command="command.wait" />
    <set_command_action commandaction="commandaction.standingby" />
  </init>
  <attention min="unknown">
    <actions>

      <do_if value="this.assignedcontrolled.defaultorder.id != 'TradeExchangeAdvanced'">
        <!--Логика сценария не рассчитана для вызова откуда-то ещё. TODO? предусмотреть этот случай. REMIND isOnBackRun нужно где-то хранить при этом.-->
        <resume label="finish" />
      </do_if>

      <!--Назначить на станцию А, если запрошено.-->
      <do_if value="$isAssignA and this.assignedcontrolled.trueowner == $stationA.trueowner">
        <do_if value="this.assignedcontrolled.commander != $stationA">
          <set_object_commander object="this.assignedcontrolled" commander="$stationA" assignment="assignment.trade" />
        </do_if>
      </do_if>
      <!--Назначить на станцию Б, если запрошено.-->
      <do_elseif value="$isAssignB and this.assignedcontrolled.trueowner == $stationB.trueowner">
        <do_if value="this.assignedcontrolled.commander != $stationB">
          <set_object_commander object="this.assignedcontrolled" commander="$stationB" assignment="assignment.trade" />
        </do_if>
      </do_elseif>
      <!--Проверить отсутствие станционного командира.-->
      <do_elseif value="@this.assignedcontrolled.commander.isclass.station">
        <remove_object_commander object="this.assignedcontrolled"/>
      </do_elseif>
      <!--Обновить приказ всех подчинённых.-->
      <do_for_each name="$subordinate" in="this.assignedcontrolled.subordinates">
        <do_if value="$subordinate.primarypurpose != purpose.trade or $subordinate.waretransport.indexof.{waretransport.container} == 0">
          <continue />
        </do_if>
        <set_value name="$thisOrder" exact="this.assignedcontrolled.defaultorder" />
        <set_value name="$thatOrder" exact="$subordinate.defaultorder" />
        <do_if value="$thatOrder.id != 'TradeExchangeAdvanced' or 
          $thisOrder.$stationA != $thatOrder.$stationA or $thisOrder.$stationB != $thatOrder.$stationB or 
          $thisOrder.$wareBasket1 != $thatOrder.$wareBasket1 or $thisOrder.$needTradeBack != $thatOrder.$needTradeBack or $thisOrder.$wareBasket2 != $thatOrder.$wareBasket2 or 
          $thisOrder.$skipStockLimits != $thatOrder.$skipStockLimits or $thisOrder.$isEqualVolumes != $thatOrder.$isEqualVolumes"
        >
          <create_order object="$subordinate" id="'TradeExchangeAdvanced'" default="true">
            <param name="stationA" value="$thisOrder.$stationA" />
            <param name="stationB" value="$thisOrder.$stationB" />
            <param name="wareBasket1" value="$thisOrder.$wareBasket1" />
            <param name="needTradeBack" value="$thisOrder.$needTradeBack" />
            <param name="wareBasket2" value="$thisOrder.$wareBasket2" />
            <param name="skipStockLimits" value="$thisOrder.$skipStockLimits" />
            <param name="isEqualVolumes" value="$thisOrder.$isEqualVolumes" />
            <param name="isAssignA" value="false" />
            <param name="isAssignB" value="false" />
          </create_order>
        </do_if>
        <remove_value name="$thisOrder" />
        <remove_value name="$thatOrder" />
      </do_for_each>
      <!--Проверить направление похода в первый раз.-->
      <do_if value="$isOnBackRun == 'check'">
        <!--TODO определить к какой станции корабль ближе и перейти сразу к походу Б->А если надо.-->
        <edit_order_param order="this.assignedcontrolled.defaultorder" param="'isOnBackRun'" value="false" />
      </do_if>
      <!--Проверить неверное направление похода после редактирования приказа.-->
      <do_elseif value="$isOnBackRun and not $needTradeBack">
        <edit_order_param order="this.assignedcontrolled.defaultorder" param="'isOnBackRun'" value="false" />
      </do_elseif>
      <wait exact="1ms" />

      <label name="start"/>
      <!--Проверка снабжения.-->
      <do_if value="true" chance="30">
        <set_command_action commandaction="commandaction.repairchecking" />
        <signal_objects object="this.ship" param="'resupply'" param2="[false]" comment="param2 = [urgent?, resupplystationID], param3 = $debugchance"/>
        <set_command_action commandaction="commandaction.standingby" />
      </do_if>
      <!--Проверка станции А.-->
      <do_if value="not $stationA.isoperational or not $stationA.dockingallowed.{this.ship}">
        <set_order_failed order="this.assignedcontrolled.defaultorder" text="{1041,17101}" />
        <cancel_order order="this.assignedcontrolled.defaultorder" />
        <wait exact="1ms"/>
        <resume label="finish" />
      </do_if>
      <!--Проверка станции Б.-->
      <do_elseif value="not $stationB.isoperational or not $stationB.dockingallowed.{this.ship}">
        <set_order_failed order="this.assignedcontrolled.defaultorder" text="{1041,17102}" />
        <cancel_order order="this.assignedcontrolled.defaultorder" />
        <wait exact="1ms"/>
        <resume label="finish" />
      </do_elseif>

      <set_order_syncpoint_reached order="this.assignedcontrolled.order" />
      <set_command_action commandaction="commandaction.searchingtrades" />
      <wait min="1s" max="3s"/>

      <do_if value="$isOnBackRun">
        <!--Обратный поход от станции Б к А.-->
        <set_value name="$station1" exact="$stationB" />
        <set_value name="$station2" exact="$stationA" />
        <set_value name="$wareBasket" exact="$wareBasket2" />
      </do_if>
      <do_else>
        <!--Прямой поход от станции А к Б.-->
        <set_value name="$station1" exact="$stationA" />
        <set_value name="$station2" exact="$stationB" />
        <set_value name="$wareBasket" exact="$wareBasket1" />
      </do_else>


      <!--Получить список торговых предложений продажи на первой станции и предложений покупки на второй станции.-->
      <do_if value="$wareBasket1.count gt 0">
        <find_sell_offer result="$sellOffers" seller="$station1" tradepartner="this.assignedcontrolled" wares="$wareBasket" excludeempty="false" multiple="true">
          <match_seller tradesknownto="this.owner">
            <match_use_blacklist group="blacklistgroup.civilian" type="blacklisttype.objectactivity" object="this.assignedcontrolled"/>
          </match_seller>
        </find_sell_offer>
        <find_buy_offer result="$buyOffers" buyer="$station2" tradepartner="this.assignedcontrolled" wares="$wareBasket" excludeempty="false" multiple="true">
          <match_buyer tradesknownto="this.owner">
            <match_use_blacklist group="blacklistgroup.civilian" type="blacklisttype.objectactivity" object="this.assignedcontrolled"/>
          </match_buyer>
        </find_buy_offer>
      </do_if>
      <do_else>
        <find_sell_offer result="$sellOffers" seller="$station1" tradepartner="this.assignedcontrolled" excludeempty="false" multiple="true">
          <match_seller tradesknownto="this.owner">
            <match_use_blacklist group="blacklistgroup.civilian" type="blacklisttype.objectactivity" object="this.assignedcontrolled"/>
          </match_seller>
        </find_sell_offer>
        <find_buy_offer result="$buyOffers" buyer="$station2" tradepartner="this.assignedcontrolled" excludeempty="false" multiple="true">
          <match_buyer tradesknownto="this.owner">
            <match_use_blacklist group="blacklistgroup.civilian" type="blacklisttype.objectactivity" object="this.assignedcontrolled"/>
          </match_buyer>
        </find_buy_offer>
      </do_else>
      <do_if value="$skipStockLimits">
        <!--Проверить и создать предложения покупки вручную, если товара уже слишком много на складе.-->
        <!--REMIND Это не работает по двум причинам:
          1. Созданные предложения не используют реальный склад, имеют флаг buyercargovirtual;
          2. Предложения принадлежат сценарию и:
            а) если их уничтожать в on_abort (как предусмотрено), то приказы на их основе сразу проваливаются (не успевает скопировать?);
            б) если их не уничтожать, то они в сохранении продолжают существовать на станции отдельно - утечка мусора.
        <set_value name="$wares" exact="$station2.resources.list" />
        <do_for_each name="$ware" in="$station2.tradewares.list">
          <append_to_list name="$wares" exact="$ware" />
        </do_for_each>
        <do_for_each name="$offer" in="$buyOffers">
          <remove_from_list name="$wares" exact="$offer.ware" multiple="true" />
        </do_for_each>
        <do_for_each name="$ware" in="$wares">
          <do_if value="$ware.waretransport == waretransport.container and $station2.cargo.{$ware}.count lt $station2.cargo.{$ware}.target">
            <create_trade_offer name="$offer" object="$station2" buyer="$station2" ware="$ware" price="$ware.averageprice" amount="$station2.cargo.{$ware}.target - $station2.cargo.{$ware}.count" playeronly="false" />
            <append_to_list name="$fakeOfferList" exact="$offer" />
            <append_to_list name="$buyOffers" exact="$offer" />
            <remove_value name="$offer" />
          </do_if>
        </do_for_each>
        <remove_value name="$wares" />
        -->
      </do_if>
      <do_if value="true" chance="$debugChance">
        <do_for_each name="$offer" in="$buyOffers">
        </do_for_each>
        <do_for_each name="$offer" in="$sellOffers">
        </do_for_each>
      </do_if>

      <wait min="100ms" max="200ms"/>
      <set_command_action commandaction="commandaction.calculating" />

      <!--Построить список с планом похода. План состоит из перекрёстных предложений продажи и покупки товара.-->
      <set_value name="$tradePlanList" exact="[]" />
      <set_value name="$totalWeight" exact="0.0" />
      <!--Идти по списку предложений покупки.-->
      <do_for_each name="$buyOffer" in="$buyOffers">
        <wait min="50ms" max="100ms"/>
        <set_value name="$ware" exact="$buyOffer.ware" />
        <!--Отсеять не ящиковый товар.-->
        <do_if value="$ware.waretransport != waretransport.container">
          <continue />
        </do_if>
        <!--Посчитать необходимое и предельное количество товара на станции назначения.-->
        <set_value name="$targetAmount" exact="$buyOffer.buyer.cargo.{$ware}.target" />
        <do_if value="$targetAmount == 0 and $station2.supplyresources.{$ware}.exists">
          <!--Это товар для станционного снабжения (другое хранилище, не доступное отсюда) => можно только предположить сколько влезет.-->
          <set_value name="$targetAmount" exact="$buyOffer.buyer.cargo.{$ware}.count + $buyOffer.desiredamount" />
          <set_value name="$demandAmount" exact="$buyOffer.desiredamount" />
        </do_if>
        <do_else>
          <!--REMIND Для получения количества товара нужно использовать desiredamount вместо amount из-за бюджета (операции в одной фракции не используют бюджет вообще, а amount срезан по бюджету).-->
          <set_value name="$demandAmount" exact="if $skipStockLimits then [$targetAmount - $buyOffer.buyer.cargo.{$ware}.count, 0].max else $buyOffer.desiredamount" />
        </do_else>
        <set_value name="$availableAmount" exact="0" />
        <do_if value="$demandAmount le 0 or $targetAmount le 0">
          <continue />
        </do_if>
        <set_value name="$planNode" exact="table[$buyOffer = $buyOffer, $sellOffer = null, $isFinished = false, $volumeWeight = 0.0, $loadAmount = 0, $unloadAmount = 0, $availableAmount = 0, $demandAmount = 0]" />
        <!--Проверить и учесть остаток в трюме (мог появится если что-то пошло не так в прошлые походы).-->
        <set_value name="$restAmount" exact="this.ship.cargo.{$ware}.count" />
        <do_if value="$restAmount gt 0">
          <set_value name="$planNode.{'$unloadAmount'}" exact="[$demandAmount, $restAmount].min" /> <!--разгрузить не больше чем нужно-->
          <set_value name="$demandAmount" exact="[$demandAmount - $restAmount, 0].max" /> <!--если валяется в трюме, то больше нет нужды-->
        </do_if>
        <remove_value name="$restAmount" />
        <do_if value="$demandAmount gt 0">
          <!--Найти соответствующее предложение продажи этого товара.-->
          <set_value name="$sellOffer" exact="null" />
          <!--TODO? Если продажных предложений очень много, то сделать карту.-->
          <do_for_each name="$offer" in="$sellOffers">
            <do_if value="$offer.ware == $ware">
              <set_value name="$sellOffer" exact="$offer" />
              <break />
            </do_if>
          </do_for_each>
          <!--Если нет предложения продажи, то проверить действительное наличие товара на складе и создать предложение вручную.-->
<!--Это не работает. Причины смотри выше для предложений покупки.
          <do_if value="not $sellOffer.exists and $skipStockLimits">
            <do_if value="$station1.cargo.{$ware}.count gt 0 and ($station1.products.{$ware}.exists or $station1.tradewares.{$ware}.exists)">
              <create_trade_offer name="$sellOffer" object="$station1" seller="$station1" ware="$ware" price="$ware.averageprice" amount="$station1.cargo.{$ware}.count" playeronly="false" />
              <append_to_list name="$fakeOfferList" exact="$sellOffer" />
            </do_if>
          </do_if>
-->
          <!--Если товар есть где купить.-->
          <do_if value="$sellOffer.exists">
            <set_value name="$planNode.{'$sellOffer'}" exact="$sellOffer" />
            <!--Определить доступное для продажи количество товара.-->
            <set_value name="$availableAmount" exact="if $skipStockLimits then $sellOffer.seller.cargo.{$ware}.count else $sellOffer.amount" />
            <do_if value="$availableAmount gt 0">
              <!--Посчитать вес товара по объёму, который надо загрузить в трюм.-->
              <set_value name="$planNode.{'$volumeWeight'}" exact="if $isEqualVolumes then 1.0 else ($demandAmount)f / ($targetAmount)f" />
              <set_value name="$totalWeight" operation="add" exact="$planNode.{'$volumeWeight'}" />
            </do_if>
          </do_if>
          <remove_value name="$sellOffer" />
        </do_if>
        <!--Добавить товар в план похода.-->
        <set_value name="$planNode.{'$demandAmount'}" exact="$demandAmount" />
        <set_value name="$planNode.{'$availableAmount'}" exact="$availableAmount" />
        <set_value name="$planNode.{'$isFinished'}" exact="$demandAmount le 0 or $availableAmount le 0" />
        <append_to_list name="$tradePlanList" exact="$planNode" />
        <remove_value name="$planNode" />
      </do_for_each>
      <remove_value name="$ware" />
      <remove_value name="$targetAmount" />
      <remove_value name="$demandAmount" />
      <remove_value name="$availableAmount" />
      <remove_value name="$sellOffers" />
      <remove_value name="$buyOffers" />
      <do_if value="true" chance="$debugChance">
        <do_for_each name="$planNode" in="$tradePlanList">
        </do_for_each>
      </do_if>

      <!--Несколько проходов для размещения товаров. Если нужное станции количество товара меньше выделенного в трюме, тогда остаток нужно перераспределить под другие товары.-->
      <!--REMIND Алгоритм построен так что, если текущий товар занимает не всю свою долю трюма, то последующие (но не предыдущие!) товары используют остаток этой доли.-->
      <set_value name="$volume" exact="this.ship.cargo.free.container" />
      <do_all counter="$i" exact="5">
        <wait min="50ms" max="100ms"/>
        <do_if value="$volume lt 50">
          <break />
        </do_if>
        <set_value name="$isAllFinished" exact="true" />
        <set_value name="$remainderWeight" exact="$totalWeight" />  <!--оставшаяся часть общего объёмного веса, которая соответствует оставшейся нераспределённой части объёма трюма-->
        <do_for_each name="$planNode" in="$tradePlanList">
          <do_if value="$planNode.{'$isFinished'}">
            <continue />
          </do_if>
          <set_value name="$wareUnitVolume" exact="$planNode.{'$buyOffer'}.ware.volume" />
          <!--Количество товара под которое выделена часть трюма.-->
          <set_value name="$possibleAmount" exact="($volume * $planNode.{'$volumeWeight'} / $remainderWeight / $wareUnitVolume)i" />
          <!--Количество которое будет фактически загружено.-->
          <set_value name="$amount" exact="[$possibleAmount, $planNode.{'$availableAmount'}, $planNode.{'$demandAmount'}].min" />
          <do_if value="$amount gt 0">
            <!--Учесть количество товара для погрузки, разгрузки, доступного, необходимого.-->
            <set_value name="$planNode.{'$loadAmount'}" operation="add" exact="$amount" />
            <set_value name="$planNode.{'$unloadAmount'}" operation="add" exact="$amount" />
            <set_value name="$planNode.{'$availableAmount'}" operation="subtract" exact="$amount" />
            <set_value name="$planNode.{'$demandAmount'}" operation="subtract" exact="$amount" />
            <!--Уменьшение нераспределённой части трюма.-->
            <set_value name="$volume" operation="subtract" exact="$amount * $wareUnitVolume" />
          </do_if>
          <!--Согласование оставшейся части объёмного веса и нераспределённой части трюма.-->
          <set_value name="$remainderWeight" operation="subtract" exact="$planNode.{'$volumeWeight'}" />
          <!--Проверить есть ли нужда и в продаже товар.-->
          <do_if value="$amount le 0 or $planNode.{'$demandAmount'} le 0 or $planNode.{'$availableAmount'} le 0">
            <set_value name="$planNode.{'$isFinished'}" exact="true" />
            <!--В следующих проходах не учитывать часть трюма под этот товар.-->
            <set_value name="$totalWeight" operation="subtract" exact="$planNode.{'$volumeWeight'}" />
          </do_if>
          <do_else>
            <set_value name="$isAllFinished" exact="false" />
          </do_else>
          <remove_value name="$wareUnitVolume" />
          <remove_value name="$possibleAmount" />
          <remove_value name="$amount" />
        </do_for_each>
        <do_if value="$isAllFinished">
          <break />
        </do_if>
      </do_all>
      <remove_value name="$totalWeight" />
      <remove_value name="$volume" />
      <remove_value name="$isAllFinished" />
      <remove_value name="$remainderWeight" />
      <do_if value="true" chance="$debugChance">
        <do_for_each name="$planNode" in="$tradePlanList">
        </do_for_each>
      </do_if>

      <wait min="100ms" max="200ms"/>
      <set_command_action commandaction="commandaction.standingby" />

      <!--Идти по плану похода и формировать приказы погрузки.-->
      <!--REMIND Дальше нельзя использовать блокирующие действия, включая ожидание!-->
      <set_value name="$isEmployed" exact="false" />
      <do_for_each name="$planNode" in="$tradePlanList">
        <do_if value="$planNode.{'$loadAmount'} gt 0">
          <create_trade_order object="this.assignedcontrolled" tradeoffer="$planNode.{'$sellOffer'}" amount="$planNode.{'$loadAmount'}" />
          <set_value name="$isEmployed" exact="true" />
        </do_if>
      </do_for_each>
      <!--Идти по плану похода и формировать приказы разгрузки.-->
      <do_for_each name="$planNode" in="$tradePlanList">
        <do_if value="$planNode.{'$unloadAmount'} gt 0">
          <create_trade_order object="this.assignedcontrolled" tradeoffer="$planNode.{'$buyOffer'}" amount="$planNode.{'$unloadAmount'}" />
          <set_value name="$isEmployed" exact="true" />
        </do_if>
      </do_for_each>
      <remove_value name="$tradePlanList" />

      <!--Если нечего делать и это не обратный поход, то ждать.-->
      <do_if value="not $isEmployed and not $isOnBackRun">
        <remove_value name="$isEmployed" />
        <resume label="wait" />
      </do_if>
      <remove_value name="$isEmployed" />

      <!--Обновить параметр направления похода и ждать прерывания сценария.-->
      <do_if value="$needTradeBack or $isOnBackRun">
        <edit_order_param order="this.assignedcontrolled.defaultorder" param="'isOnBackRun'" value="not $isOnBackRun" />
      </do_if>
      <wait exact="1ms" />
      <resume label="start" />

      <label name="wait" />
      <set_command_action commandaction="commandaction.standingby" />
      <!--Подлететь к первой станции и ждать около неё.-->
      <do_if value="this.ship.class == class.ship_l or this.ship.class == class.ship_xl">
        <!--Большой корабль шатается вокруг. Иначе в пристыкованном состоянии он может занять последнюю свободную палубу.-->
        <run_script name="'move.generic'">
          <param name="destination" value="$stationA" />
        </run_script>
        <run_script name="'move.idle'">
          <param name="Min" value="1min" />
          <param name="Max" value="2min" />
          <param name="MaxDistance" value="50km" />
          <param name="zone_anchor" value="$stationA.zone" />
        </run_script>
      </do_if>
      <do_else>
        <!--Малый корабль - пристыковать (он может быть спрятан и не мешаться на палубе).-->
        <create_order object="this.ship" id="'DockAndWait'" immediate="true">
          <param name="destination" value="$stationA" />
          <param name="timeout" value="1min" />
        </create_order>
        <wait exact="1ms" />
      </do_else>
      <resume label="start" />

      <label name="finish"/>
    </actions>
  </attention>
  <on_abort>
    <do_for_each name="$offer" in="$fakeOfferList">
      <remove_trade_offer object="$offer.owner" tradeoffer="$offer" />
    </do_for_each>
  </on_abort>
</aiscript>
<?xml version="1.0" encoding="utf-8" ?>
<diff>
  <add sel="/icons">
    <icon name="order_tradeexchangeadvanced" texture="assets\fx\gui\textures\order\order_tradeexchange.tga" height="32" width="32"></icon>
  </add>
</diff>
<?xml version="1.0" encoding="UTF-8"?>
<language id="44">
  <page id="1041" title="Orders" descr="Describes the order names, their descriptions and order parameter names and descriptions" voice="no">
    <t id="7001">Advanced Ware Exchange</t>
    <t id="7002">Transport multiple wares in one trade run.</t>
    <t id="17001">Station {20401,1}</t>
    <t id="17002">Wares {20401,1} to {20401,2} \(leave blank for auto\)</t>
    <t id="17003">Station {20401,2}</t>
    <t id="17004">Wares {20401,2} to {20401,1} \(leave blank for auto\)</t>
    <t id="17005">Reverse run too \(transport wares from {20401,2} to {20401,1}\)</t>
    <t id="17006">Skip limits \(buy/sell over stock level limits\)</t>
    <t id="17007">Equal volumes \(load same volume of each ware\)</t>
    <t id="17008">Assign to Station {20401,1}</t>
    <t id="17009">Assign to Station {20401,2}</t>
    <t id="17101">Station {20401,1} severily damaged. Unable to dock.</t>
    <t id="17102">Station {20401,2} severily damaged. Unable to dock.</t>
  </page>
</language>
<?xml version="1.0" encoding="utf-8"?>
<content id="" name="" description="" author="Arshiba" version="102" save="false" date="2024-12-30" lastupdate="">
  <dependency version="700"/>
</content>
