XRWS           NÙ   ™  N@ext_01.cat ext_01.dat aiscripts/order.trade.perform.xml 4528 1669348169 86e180c1b4294c85beb29bbb4a9fd11c
libraries/wares.xml 15504 1669343088 9de020890010be3cd3ef9968f8ca084a
<?xml version="1.0" encoding="utf-8"?> 

<diff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <add sel="//execute_trade[@tradeoffer='$tradedeal']" pos="after">
        <do_if value="$traderesult">
            <set_command_action commandaction="commandaction.executingtrade" />

            <!-- 
                Trading time calculation is 'quite' simple:
                    - each 'service crew' on board will collaborate in the following manner:
                        - 1 crew member can carry up to 14 mÂ³ (carry_volume)
                        - 1 crew member takes 2 seconds to load/unload the amount above (time_to_transfer)
                    - the amount each crew member will load/unload is defined as follows:
                        - calculate crew efficiency:
                            - get the average service crew skill level
                            - remap it to a range of 1 to 1.75
                        - service_crew_boost = service_crew.count * efficiency
                        - service_crew_helping = service_crew_boost + dock_crew.count
                        - amount_by_crew_member = amount * ware.volume / (service_crew_helping)
                    - the time it will take for the trade to complete is defined as follows:
                        - time_load_unload = amount_by_crew_member * time_to_transfer (2 seconds) / carry_volume (14 mÂ³) -->

            <!-- ====== MAIN PARAMETERS ====== -->
            <!-- volume that one employee can carry by an amount of time -->
            <set_value name="$lttcrewcarryvolume" exact="14" /> 
            <!-- time that one employee takes to carry an amount of volume -->
            <set_value name="$lttcrewcarrytime" exact="2" /> 
            <!-- the amount of dock crew available to help -->
            <set_value name="$lttservicecrewondock" min="2" max="15" />
            <!-- ====== MAIN PARAMETERS ====== -->

            <!-- the amount of 'service crew' available on the ship -->
            <set_value name="$lttservicecrewonboard" exact="this.ship.people.{entityrole.service}.list.count" />

            <!-- find out the average skill on the ship (for 'service crew' only) -->
            <set_value name="$lttservicecrewcombinedskill" exact="this.ship.people.{entityrole.service}.combinedskill" />
            <set_value name="$lttservicecrewavgskill" exact="0" />
            <do_if value="$lttservicecrewcombinedskill != 0">
                <set_value name="$lttservicecrewavgskill" exact="$lttservicecrewcombinedskill / $lttservicecrewonboard" />
            </do_if>

            <!-- 
                map average skill from the range [0, 100] to the range [1, 1.75] 
                meaning the maximum possible efficiency would be up to 75% on top of the service crew on board
            -->
            <set_value name="$lttefficiency" exact="1f + ((1.75f - 1f) / (100f - 0f)) * ($lttservicecrewavgskill - 0f)" />

            <!-- apply efficiency calculation -->
            <set_value name="$lttcargoservicecalculated" exact="($lttservicecrewonboard * $lttefficiency)i" />

            <!-- sum the amount of 'service crew' onboard (calculated) with the service crew at the docking area -->
            <set_value name="$lttcargoservicecalculated" operation="add" exact="$lttservicecrewondock" />

            <!-- sum the amount of 'service crew' onboard (not calculated) with the service crew at the docking area
                 this is for debugging purposes -->
            <set_value name="$lttcargoservice" exact="$lttservicecrewonboard + $lttservicecrewondock" />

            <!-- for the on going trade, how many volumes each employee will colaborate -->
            <set_value name="$lttcrewtradecarry" exact="$tradedeal.transferredamount * $tradedeal.ware.volume / $lttcargoservicecalculated" />

            <!-- the actual time it will take for the trade to complete -->
            <set_value name="$ltttradetime" exact="($lttcrewtradecarry * $lttcrewcarrytime / $lttcrewcarryvolume)s" />

            <!-- <debug_text chance="100" text="'%1 (%2) Trading %3x %4. %5 employees working on it (%6 provided by dock crew). (%7 sec required - crew efficiency of %8).'.[this.ship.knownname, this.ship.idcode, $tradedeal.transferredamount, $tradedeal.ware.name, $lttcargoservice, $lttservicecrewondock, $ltttradetime, $lttefficiency]" /> -->

            <wait exact="$ltttradetime" />
        </do_if>
    </add>
</diff><?xml version="1.0" encoding="utf-8"?>
<diff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <replace sel="/wares/ware[@id='advancedcomposites']/price/@min">476</replace>
  <replace sel="/wares/ware[@id='advancedcomposites']/price/@average">594</replace>
  <replace sel="/wares/ware[@id='advancedcomposites']/price/@max">713</replace>
  <replace sel="/wares/ware[@id='advancedcomposites']/production[@method='default']/@time">303</replace>
  <replace sel="/wares/ware[@id='advancedcomposites']/production[@method='teladi']/@time">303</replace>
  <replace sel="/wares/ware[@id='advancedelectronics']/price/@min">782</replace>
  <replace sel="/wares/ware[@id='advancedelectronics']/price/@average">1116</replace>
  <replace sel="/wares/ware[@id='advancedelectronics']/price/@max">1450</replace>
  <replace sel="/wares/ware[@id='advancedelectronics']/production[@method='default']/@time">728</replace>
  <replace sel="/wares/ware[@id='antimattercells']/price/@min">134</replace>
  <replace sel="/wares/ware[@id='antimattercells']/price/@average">223</replace>
  <replace sel="/wares/ware[@id='antimattercells']/price/@max">311</replace>
  <replace sel="/wares/ware[@id='antimattercells']/production[@method='default']/@time">122</replace>
  <replace sel="/wares/ware[@id='antimatterconverters']/price/@min">273</replace>
  <replace sel="/wares/ware[@id='antimatterconverters']/price/@average">390</replace>
  <replace sel="/wares/ware[@id='antimatterconverters']/price/@max">508</replace>
  <replace sel="/wares/ware[@id='antimatterconverters']/production[@method='default']/@time">303</replace>
  <replace sel="/wares/ware[@id='claytronics']/price/@min">1908</replace>
  <replace sel="/wares/ware[@id='claytronics']/price/@average">2244</replace>
  <replace sel="/wares/ware[@id='claytronics']/price/@max">2581</replace>
  <replace sel="/wares/ware[@id='claytronics']/production[@method='default']/@time">909</replace>
  <replace sel="/wares/ware[@id='claytronics']/production[@method='recycling']/@time">303</replace>
  <replace sel="/wares/ware[@id='dronecomponents']/price/@min">754</replace>
  <replace sel="/wares/ware[@id='dronecomponents']/price/@average">1006</replace>
  <replace sel="/wares/ware[@id='dronecomponents']/price/@max">1257</replace>
  <replace sel="/wares/ware[@id='dronecomponents']/production[@method='default']/@time">1212</replace>
  <replace sel="/wares/ware[@id='energycells']/price/@min">11</replace>
  <replace sel="/wares/ware[@id='energycells']/price/@average">18</replace>
  <replace sel="/wares/ware[@id='energycells']/price/@max">25</replace>
  <replace sel="/wares/ware[@id='energycells']/production[@method='default']/@time">61</replace>
  <replace sel="/wares/ware[@id='engineparts']/price/@min">141</replace>
  <replace sel="/wares/ware[@id='engineparts']/price/@average">201</replace>
  <replace sel="/wares/ware[@id='engineparts']/price/@max">261</replace>
  <replace sel="/wares/ware[@id='engineparts']/production[@method='default']/@time">909</replace>
  <replace sel="/wares/ware[@id='engineparts']/production[@method='teladi']/@time">909</replace>
  <replace sel="/wares/ware[@id='fieldcoils']/price/@min">272</replace>
  <replace sel="/wares/ware[@id='fieldcoils']/price/@average">454</replace>
  <replace sel="/wares/ware[@id='fieldcoils']/price/@max">634</replace>
  <replace sel="/wares/ware[@id='fieldcoils']/production[@method='default']/@time">606</replace>
  <replace sel="/wares/ware[@id='foodrations']/price/@min">14</replace>
  <replace sel="/wares/ware[@id='foodrations']/price/@average">24</replace>
  <replace sel="/wares/ware[@id='foodrations']/price/@max">32</replace>
  <replace sel="/wares/ware[@id='foodrations']/production[@method='default']/@time">243</replace>
  <replace sel="/wares/ware[@id='graphene']/price/@min">111</replace>
  <replace sel="/wares/ware[@id='graphene']/price/@average">183</replace>
  <replace sel="/wares/ware[@id='graphene']/price/@max">257</replace>
  <replace sel="/wares/ware[@id='graphene']/production[@method='default']/@time">243</replace>
  <replace sel="/wares/ware[@id='helium']/price/@min">41</replace>
  <replace sel="/wares/ware[@id='helium']/price/@average">49</replace>
  <replace sel="/wares/ware[@id='helium']/price/@max">57</replace>
  <replace sel="/wares/ware[@id='hullparts']/price/@min">161</replace>
  <replace sel="/wares/ware[@id='hullparts']/price/@average">230</replace>
  <replace sel="/wares/ware[@id='hullparts']/price/@max">300</replace>
  <replace sel="/wares/ware[@id='hullparts']/production[@method='default']/@time">909</replace>
  <replace sel="/wares/ware[@id='hullparts']/production[@method='teladi']/@time">909</replace>
  <replace sel="/wares/ware[@id='hullparts']/production[@method='recycling']/@time">303</replace>
  <replace sel="/wares/ware[@id='hydrogen']/price/@min">54</replace>
  <replace sel="/wares/ware[@id='hydrogen']/price/@average">64</replace>
  <replace sel="/wares/ware[@id='hydrogen']/price/@max">74</replace>
  <replace sel="/wares/ware[@id='ice']/price/@min">29</replace>
  <replace sel="/wares/ware[@id='ice']/price/@average">33</replace>
  <replace sel="/wares/ware[@id='ice']/price/@max">39</replace>
  <replace sel="/wares/ware[@id='majadust']/price/@min">104</replace>
  <replace sel="/wares/ware[@id='majadust']/price/@average">229</replace>
  <replace sel="/wares/ware[@id='majadust']/price/@max">356</replace>
  <replace sel="/wares/ware[@id='majadust']/production[@method='default']/@time">606</replace>
  <replace sel="/wares/ware[@id='majasnails']/price/@min">39</replace>
  <replace sel="/wares/ware[@id='majasnails']/price/@average">64</replace>
  <replace sel="/wares/ware[@id='majasnails']/price/@max">90</replace>
  <replace sel="/wares/ware[@id='majasnails']/production[@method='default']/@time">455</replace>
  <replace sel="/wares/ware[@id='meat']/price/@min">32</replace>
  <replace sel="/wares/ware[@id='meat']/price/@average">53</replace>
  <replace sel="/wares/ware[@id='meat']/price/@max">75</replace>
  <replace sel="/wares/ware[@id='meat']/production[@method='default']/@time">455</replace>
  <replace sel="/wares/ware[@id='medicalsupplies']/price/@min">48</replace>
  <replace sel="/wares/ware[@id='medicalsupplies']/price/@average">73</replace>
  <replace sel="/wares/ware[@id='medicalsupplies']/price/@max">98</replace>
  <replace sel="/wares/ware[@id='medicalsupplies']/production[@method='default']/@time">303</replace>
  <replace sel="/wares/ware[@id='medicalsupplies']/production[@method='paranid']/@time">303</replace>
  <replace sel="/wares/ware[@id='medicalsupplies']/production[@method='teladi']/@time">303</replace>
  <replace sel="/wares/ware[@id='methane']/price/@min">46</replace>
  <replace sel="/wares/ware[@id='methane']/price/@average">53</replace>
  <replace sel="/wares/ware[@id='methane']/price/@max">61</replace>
  <replace sel="/wares/ware[@id='microchips']/price/@min">886</replace>
  <replace sel="/wares/ware[@id='microchips']/price/@average">1043</replace>
  <replace sel="/wares/ware[@id='microchips']/price/@max">1199</replace>
  <replace sel="/wares/ware[@id='microchips']/production[@method='default']/@time">606</replace>
  <replace sel="/wares/ware[@id='missilecomponents']/price/@min">7</replace>
  <replace sel="/wares/ware[@id='missilecomponents']/price/@average">10</replace>
  <replace sel="/wares/ware[@id='missilecomponents']/price/@max">15</replace>
  <replace sel="/wares/ware[@id='missilecomponents']/production[@method='default']/@time">909</replace>
  <replace sel="/wares/ware[@id='nividium']/price/@min">478</replace>
  <replace sel="/wares/ware[@id='nividium']/price/@average">561</replace>
  <replace sel="/wares/ware[@id='nividium']/price/@max">646</replace>
  <replace sel="/wares/ware[@id='nostropoil']/price/@min">22</replace>
  <replace sel="/wares/ware[@id='nostropoil']/price/@average">38</replace>
  <replace sel="/wares/ware[@id='nostropoil']/price/@max">52</replace>
  <replace sel="/wares/ware[@id='nostropoil']/production[@method='default']/@time">303</replace>
  <replace sel="/wares/ware[@id='ore']/price/@min">48</replace>
  <replace sel="/wares/ware[@id='ore']/price/@average">56</replace>
  <replace sel="/wares/ware[@id='ore']/price/@max">64</replace>
  <replace sel="/wares/ware[@id='plasmaconductors']/price/@min">846</replace>
  <replace sel="/wares/ware[@id='plasmaconductors']/price/@average">1129</replace>
  <replace sel="/wares/ware[@id='plasmaconductors']/price/@max">1411</replace>
  <replace sel="/wares/ware[@id='plasmaconductors']/production[@method='default']/@time">909</replace>
  <replace sel="/wares/ware[@id='quantumtubes']/price/@min">248</replace>
  <replace sel="/wares/ware[@id='quantumtubes']/price/@average">330</replace>
  <replace sel="/wares/ware[@id='quantumtubes']/price/@max">413</replace>
  <replace sel="/wares/ware[@id='quantumtubes']/production[@method='default']/@time">728</replace>
  <replace sel="/wares/ware[@id='refinedmetals']/price/@min">98</replace>
  <replace sel="/wares/ware[@id='refinedmetals']/price/@average">163</replace>
  <replace sel="/wares/ware[@id='refinedmetals']/price/@max">228</replace>
  <replace sel="/wares/ware[@id='refinedmetals']/production[@method='default']/@time">152</replace>
  <replace sel="/wares/ware[@id='scanningarrays']/price/@min">927</replace>
  <replace sel="/wares/ware[@id='scanningarrays']/price/@average">1159</replace>
  <replace sel="/wares/ware[@id='scanningarrays']/price/@max">1391</replace>
  <replace sel="/wares/ware[@id='scanningarrays']/production[@method='default']/@time">606</replace>
  <replace sel="/wares/ware[@id='scanningarrays']/production[@method='teladi']/@time">606</replace>
  <replace sel="/wares/ware[@id='scrapmetal']/price/@min">350</replace>
  <replace sel="/wares/ware[@id='scrapmetal']/price/@average">413</replace>
  <replace sel="/wares/ware[@id='scrapmetal']/price/@max">475</replace>
  <replace sel="/wares/ware[@id='scrapmetal']/production[@method='processing']/@time">61</replace>
  <replace sel="/wares/ware[@id='shieldcomponents']/price/@min">125</replace>
  <replace sel="/wares/ware[@id='shieldcomponents']/price/@average">207</replace>
  <replace sel="/wares/ware[@id='shieldcomponents']/price/@max">291</replace>
  <replace sel="/wares/ware[@id='shieldcomponents']/production[@method='default']/@time">1212</replace>
  <replace sel="/wares/ware[@id='silicon']/price/@min">123</replace>
  <replace sel="/wares/ware[@id='silicon']/price/@average">143</replace>
  <replace sel="/wares/ware[@id='silicon']/price/@max">165</replace>
  <replace sel="/wares/ware[@id='siliconwafers']/price/@min">199</replace>
  <replace sel="/wares/ware[@id='siliconwafers']/price/@average">329</replace>
  <replace sel="/wares/ware[@id='siliconwafers']/price/@max">461</replace>
  <replace sel="/wares/ware[@id='siliconwafers']/production[@method='default']/@time">182</replace>
  <replace sel="/wares/ware[@id='smartchips']/price/@min">51</replace>
  <replace sel="/wares/ware[@id='smartchips']/price/@average">63</replace>
  <replace sel="/wares/ware[@id='smartchips']/price/@max">76</replace>
  <replace sel="/wares/ware[@id='smartchips']/production[@method='default']/@time">606</replace>
  <replace sel="/wares/ware[@id='sojabeans']/price/@min">44</replace>
  <replace sel="/wares/ware[@id='sojabeans']/price/@average">74</replace>
  <replace sel="/wares/ware[@id='sojabeans']/price/@max">103</replace>
  <replace sel="/wares/ware[@id='sojabeans']/production[@method='default']/@time">303</replace>
  <replace sel="/wares/ware[@id='sojahusk']/price/@min">21</replace>
  <replace sel="/wares/ware[@id='sojahusk']/price/@average">36</replace>
  <replace sel="/wares/ware[@id='sojahusk']/price/@max">50</replace>
  <replace sel="/wares/ware[@id='sojahusk']/production[@method='default']/@time">303</replace>
  <replace sel="/wares/ware[@id='spacefuel']/price/@min">66</replace>
  <replace sel="/wares/ware[@id='spacefuel']/price/@average">147</replace>
  <replace sel="/wares/ware[@id='spacefuel']/price/@max">228</replace>
  <replace sel="/wares/ware[@id='spacefuel']/production[@method='default']/@time">485</replace>
  <replace sel="/wares/ware[@id='spaceweed']/price/@min">83</replace>
  <replace sel="/wares/ware[@id='spaceweed']/price/@average">183</replace>
  <replace sel="/wares/ware[@id='spaceweed']/price/@max">283</replace>
  <replace sel="/wares/ware[@id='spaceweed']/production[@method='default']/@time">606</replace>
  <replace sel="/wares/ware[@id='spices']/price/@min">14</replace>
  <replace sel="/wares/ware[@id='spices']/price/@average">22</replace>
  <replace sel="/wares/ware[@id='spices']/price/@max">31</replace>
  <replace sel="/wares/ware[@id='spices']/production[@method='default']/@time">606</replace>
  <replace sel="/wares/ware[@id='sunriseflowers']/price/@min">53</replace>
  <replace sel="/wares/ware[@id='sunriseflowers']/price/@average">88</replace>
  <replace sel="/wares/ware[@id='sunriseflowers']/price/@max">124</replace>
  <replace sel="/wares/ware[@id='sunriseflowers']/production[@method='default']/@time">303</replace>
  <replace sel="/wares/ware[@id='superfluidcoolant']/price/@min">100</replace>
  <replace sel="/wares/ware[@id='superfluidcoolant']/price/@average">165</replace>
  <replace sel="/wares/ware[@id='superfluidcoolant']/price/@max">233</replace>
  <replace sel="/wares/ware[@id='superfluidcoolant']/production[@method='default']/@time">243</replace>
  <replace sel="/wares/ware[@id='swampplant']/price/@min">56</replace>
  <replace sel="/wares/ware[@id='swampplant']/price/@average">93</replace>
  <replace sel="/wares/ware[@id='swampplant']/price/@max">129</replace>
  <replace sel="/wares/ware[@id='swampplant']/production[@method='default']/@time">455</replace>
  <replace sel="/wares/ware[@id='teladianium']/price/@min">134</replace>
  <replace sel="/wares/ware[@id='teladianium']/price/@average">223</replace>
  <replace sel="/wares/ware[@id='teladianium']/price/@max">312</replace>
  <replace sel="/wares/ware[@id='teladianium']/production[@method='default']/@time">122</replace>
  <replace sel="/wares/ware[@id='turretcomponents']/price/@min">181</replace>
  <replace sel="/wares/ware[@id='turretcomponents']/price/@average">301</replace>
  <replace sel="/wares/ware[@id='turretcomponents']/price/@max">422</replace>
  <replace sel="/wares/ware[@id='turretcomponents']/production[@method='default']/@time">1818</replace>
  <replace sel="/wares/ware[@id='water']/price/@min">36</replace>
  <replace sel="/wares/ware[@id='water']/price/@average">59</replace>
  <replace sel="/wares/ware[@id='water']/price/@max">82</replace>
  <replace sel="/wares/ware[@id='water']/production[@method='default']/@time">122</replace>
  <replace sel="/wares/ware[@id='weaponcomponents']/price/@min">189</replace>
  <replace sel="/wares/ware[@id='weaponcomponents']/price/@average">314</replace>
  <replace sel="/wares/ware[@id='weaponcomponents']/price/@max">439</replace>
  <replace sel="/wares/ware[@id='weaponcomponents']/production[@method='default']/@time">1818</replace>
  <replace sel="/wares/ware[@id='wheat']/price/@min">21</replace>
  <replace sel="/wares/ware[@id='wheat']/price/@average">35</replace>
  <replace sel="/wares/ware[@id='wheat']/price/@max">49</replace>
  <replace sel="/wares/ware[@id='wheat']/production[@method='default']/@time">303</replace>
  <replace sel="/wares/ware[@id='x4ep1_jttware']/price/@min">2</replace>
  <replace sel="/wares/ware[@id='x4ep1_jttware']/price/@average">2</replace>
  <replace sel="/wares/ware[@id='x4ep1_jttware']/price/@max">2</replace>
</diff><?xml version="1.0" encoding="utf-8"?>
<content id="" name="" description="" author="LuccasJSantos" version="100" date="2022-12-01" save="0" lastupdate="">
  <text language="44" name="Improved Trading Time" description="Make trading time more realistic. It makes trading time depend on service crew amount and level, it will now influence the crew efficiency." author="LuccasJSantos"/>
  <text language="55" name="Improved Trading Time" description="Faz com que o tempo de trade seja mais realista. O tempo de comÃ©rcio nas estaÃ§Ãµes agora depende da quantidade de tripulaÃ§Ã£o de serviÃ§o disponÃ­vel e seu nÃ­vel irÃ¡ influenciar a eficiÃªncia de carga/descarga das mercadorias." author="LuccasJSantos"/>
</content>
