Refactor
[erdslangetjie.git] / erdslangetjie / __main__.py
index 5cd9b7fcc39de69995406e7b4f8615fe7ab6edde..74a0c33a2509ac939988175ea4de3624d6a033f2 100644 (file)
@@ -5,6 +5,7 @@ from kivy.uix.widget import Widget
 from kivy.uix.relativelayout import RelativeLayout
 from kivy.uix.scrollview import ScrollView
 from kivy.uix.label import Label
+from kivy.uix.popup import Popup
 from kivy.graphics import Color, Rectangle
 from kivy.utils import platform
 from kivy.clock import Clock
@@ -25,7 +26,6 @@ class GameWindow(RelativeLayout):
     def __init__(self, level_list, app):
         self.level_list = level_list
         self.level_obj = self.level_list.get_current_level()
-        self.level_obj.validate()
         self.level_obj.load_tiles()
         self.tiles = {}
         self.view = app.root
@@ -204,10 +204,10 @@ class GameWindow(RelativeLayout):
     def reset_level(self):
         Clock.unschedule(self.timed_move)
         self.timer_set = False
-        self.remove_widget(self.nemesis_tile)
+        if self.nemesis_tile:
+            self.remove_widget(self.nemesis_tile)
         self.nemesis.reset_pos()
         if self.level_obj:
-            self.level_obj.validate()
             self.level_obj.load_tiles()
             self.player.pos = self.level_obj.enter_pos
             self.remove_widget(self.player_tile)
@@ -306,8 +306,8 @@ class GameApp(App):
     title = "Peter's thread snake"
 
     def __init__(self):
-        self.levels = LevelList()
         super(GameApp, self).__init__()
+        self.levels = LevelList()
 
     def build(self):
         root = ScrollView(size_hint=(None, None))
@@ -319,6 +319,12 @@ class GameApp(App):
         if platform() == 'android':
             window.fullscreen = True
         self.root.size = window.size
+        errors = self.levels.get_errors()
+        if errors:
+            popup = Popup(title='Levels excluded',
+                    content=Label(text='\n'.join(errors)),
+                    size_hint=(.5, .5))
+            popup.open()
         self.make_intro()
 
     def make_intro(self):