ya2 · news · projects · code · about

fail condition
[pmachines.git] / pmachines / scenes / scene_domino.py
CommitLineData
8c9bf90e 1from pmachines.scene import Scene
0eff64a3
FC
2from pmachines.items.box import Box
3from pmachines.items.shelf import Shelf
0e86689f 4from pmachines.items.domino import Domino, DownStrategy
0eff64a3
FC
5from pmachines.items.basketball import Basketball
6from pmachines.items.teetertooter import TeeterTooter
8c9bf90e
FC
7
8
9class SceneDomino(Scene):
10
9914cfc9
FC
11 sorting = 0
12
8c9bf90e
FC
13 @staticmethod
14 def name():
15 return _('Domino')
0eff64a3
FC
16
17 def _set_items(self):
18 self.items = []
19 #self.items += [Box(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, count=3)]
20 #self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, count=3)]
21 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(-1.2, 0, -.6))]
22 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(1.2, 0, -.6))]
23 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, count=2)]
0e86689f
FC
24 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(-1.14, 0, -.04))]
25 self.items[-1].set_strategy(DownStrategy(self.items[-1]._np, 60))
26 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(-.49, 0, -.04))]
27 self.items[-1].set_strategy(DownStrategy(self.items[-1]._np, 60))
28 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(0.94, 0, -.04))]
29 self.items[-1].set_strategy(DownStrategy(self.items[-1]._np, 60))
30 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(1.55, 0, -.04))]
31 self.items[-1].set_strategy(DownStrategy(self.items[-1]._np, 60))
32 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(2.09, 0, -.04))]
33 self.items[-1].set_strategy(DownStrategy(self.items[-1]._np, 88))
0eff64a3
FC
34 #self.items += [Basketball(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, count=3)]
35 #self.items += [TeeterTooter(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, count=3)]
36
37 def _instr_txt(self):
38 txt = _('Scene: ') + self.name() + '\n\n'
0afaa72e 39 txt += _('Goal: every domino piece must fall\n\n')
0eff64a3
FC
40 txt += _('keep \5mouse_l\5 pressed to drag an item\n\n'
41 'keep \5mouse_r\5 pressed to rotate an item')
42 return txt
0e86689f 43
0a0994e4
FC
44 def _win_condition(self):
45 return all(itm.strategy.win_condition() for itm in self.items) and not self._paused