home · contact · privacy
Refactor parser code.
[plomrogue2] / plomrogue / game.py
index b76860aa5ff7954c802c63334d22367a9acb7ffa..cb749cffa939f38c3672945fb240ae3d6e3aef79 100755 (executable)
@@ -2,7 +2,6 @@ from plomrogue.errors import GameError, PlayError
 from plomrogue.io import GameIO
 from plomrogue.misc import quote
 from plomrogue.mapping import YX, MapGeometrySquare, MapGeometryHex, Map
 from plomrogue.io import GameIO
 from plomrogue.misc import quote
 from plomrogue.mapping import YX, MapGeometrySquare, MapGeometryHex, Map
-import string
 import datetime
 
 
 import datetime
 
 
@@ -123,6 +122,7 @@ import os
 class Game(GameBase):
 
     def __init__(self, save_file, *args, **kwargs):
 class Game(GameBase):
 
     def __init__(self, save_file, *args, **kwargs):
+        import string
         from plomrogue.misc import Terrain
         super().__init__(*args, **kwargs)
         self.changed = True
         from plomrogue.misc import Terrain
         super().__init__(*args, **kwargs)
         self.changed = True
@@ -159,9 +159,11 @@ class Game(GameBase):
         if os.path.exists(self.io.save_file):
             if not os.path.isfile(self.io.save_file):
                 raise GameError('save file path refers to non-file')
         if os.path.exists(self.io.save_file):
             if not os.path.isfile(self.io.save_file):
                 raise GameError('save file path refers to non-file')
+        self.io.train_parser()
 
     def register_thing_type(self, thing_type):
         self._register_object(thing_type, 'thing_type', 'Thing_')
 
     def register_thing_type(self, thing_type):
         self._register_object(thing_type, 'thing_type', 'Thing_')
+        self.io.train_parser()
 
     def register_task(self, task):
         self._register_object(task, 'task', 'Task_')
 
     def register_task(self, task):
         self._register_object(task, 'task', 'Task_')
@@ -190,20 +192,6 @@ class Game(GameBase):
                 return False
         return True
 
                 return False
         return True
 
-    def get_string_options(self, string_option_type):
-        if string_option_type == 'direction':
-            return self.map_geometry.directions
-        elif string_option_type == 'direction+here':
-            return ['HERE'] + self.map_geometry.directions
-        elif string_option_type == 'char':
-            return [c for c in
-                    string.digits + string.ascii_letters + string.punctuation + ' ']
-        elif string_option_type == 'map_geometry':
-            return ['Hex', 'Square']
-        elif string_option_type == 'thing_type':
-            return self.thing_types.keys()
-        return None
-
     def get_default_spawn_point(self):
         import random
         if len(self.spawn_points) == 0:
     def get_default_spawn_point(self):
         import random
         if len(self.spawn_points) == 0:
@@ -646,6 +634,7 @@ class Game(GameBase):
         self.portals = {}
         self.admin_passwords = []
         self.map_geometry = map_geometry
         self.portals = {}
         self.admin_passwords = []
         self.map_geometry = map_geometry
+        self.io.train_parser()
         self.map_control_passwords = {'X': 'secret'}
         self.get_map(YX(0, 0))
         self.get_map(YX(0, 0), 'control')
         self.map_control_passwords = {'X': 'secret'}
         self.get_map(YX(0, 0))
         self.get_map(YX(0, 0), 'control')