Pārlūkot izejas kodu

The "You don't have anything we want", works correctly now.

Steve Thielemann 5 gadi atpakaļ
vecāks
revīzija
af540d9dad
1 mainītis faili ar 28 papildinājumiem un 4 dzēšanām
  1. 28 4
      flexible.py

+ 28 - 4
flexible.py

@@ -702,6 +702,24 @@ class ScriptPort(object):
                     self.this_sector = self.sector1
                     self.queue_player.put("{0}\r".format(self.sector1))
                     self.state = 10
+            elif re.match(r'Your offer \[\d+\] \?', prompt):
+                if self.fix_offer:
+                    # Make real offer / WHAT?@?!
+                    work = prompt.replace(',', '')
+                    parts = re.split(r"\s+", work)
+                    amount = parts[2]
+                    # Ok, we have the amount, now to figure pct...
+                    if self.sell_pct > 100:
+                        self.sell_pct -= 1
+                    else:
+                        self.sell_pct += 1
+                    price = amount * self.sell_pct // 100
+                    log.msg("start: {0} % {1} price {2}".format(amount, self.sell_perc, price))
+                    if self.sell_pct > 100:
+                        self.sell_pct -= 1
+                    else:
+                        self.sell_pct += 1
+                    self.queue_player.put("{0}\r".format(price))                    
 
         elif self.state == 8:
             # What are we trading
@@ -780,6 +798,7 @@ class ScriptPort(object):
         self.tpc = self.this_port['class']
         self.opc = self.other_port['class']
         self.fixable = 0
+        self.fix_offer = 0
 
         # [ Items     Status  Trading % of max OnBoard]
         # [ -----     ------  ------- -------- -------]
@@ -901,9 +920,10 @@ class ScriptPort(object):
                 self.sell_perc = 100 - self.percent
             if line.startswith('Fuel Ore') or line.startswith('Organics') or line.startswith('Equipment'):
                 work = line.replace('Fuel Ore', 'Fuel')
-                # parts = re.split(r"\s+", work)
-                log.msg(parts)
-                if parts[0] != '0' and parts[1] != 'Buying':
+                parts = re.split(r"\s+", work)
+                # log.msg(parts)
+                # Equipment, Selling xxx x% xxx
+                if parts[-1] != '0' and parts[2] != '0' and parts[1] != 'Buying':
                     log.msg("We have a problem -- they aren't buying what we have in stock!")
                     stuff = line[0]  # F O or E.
                     if stuff == 'F':
@@ -944,7 +964,11 @@ class ScriptPort(object):
             if "We're not interested." in line:
                 log.msg("Try, try again.  :(")
                 self.state = 5
-                self.trade()                
+                self.trade()    
+            if "WHAT?!@!? you must be crazy!" in line:
+                self.fix_offer = 1
+            if "So, you think I'm as stupid as you look?" in line:
+                self.fix_offer = 1
 
         elif self.state == 8:
             # Haggle Buy