ya2 · news · projects · code · about

removed changelog
[pmachines.git] / logics / scenes / scene_domino_box.py
CommitLineData
b35b1f62
FC
1from logics.scene import Scene
2from logics.items.box import Box
3from logics.items.shelf import Shelf
4from logics.items.domino import Domino, UpStrategy, DownStrategy
5from logics.items.basketball import Basketball
6from logics.items.teetertooter import TeeterTooter
3211f3f3
FC
7
8
9class SceneDominoBox(Scene):
10
3211f3f3
FC
11 @staticmethod
12 def name():
13 return _('Domino and box')
14
15 def _set_items(self):
16 self.items = []
17 self.items += [Box(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=5, count=2)]
18 #self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, count=9)]
19 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(-.56, 0, .21))]
20 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(1.67, 0, .21))]
21 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(-.56, 0, -1.45))]
22 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(1.67, 0, -1.45))]
23 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(3.78, 0, -1.45))]
24 #self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, count=9)]
0e86689f
FC
25 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(-.61, 0, -.94), r=37)]
26 self.items[-1].set_strategy(DownStrategy(self.items[-1]._np, 35))
27 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(-.06, 0, -.89))]
28 self.items[-1].set_strategy(DownStrategy(self.items[-1]._np, 35))
29 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(0.91, 0, -.89))]
30 self.items[-1].set_strategy(DownStrategy(self.items[-1]._np, 35))
31 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(1.73, 0, -.89))]
32 self.items[-1].set_strategy(DownStrategy(self.items[-1]._np, 35))
33 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(2.57, 0, -.89))]
34 self.items[-1].set_strategy(UpStrategy(self.items[-1]._np, 30))
35 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(-.61, 0, .73), r=37)]
36 self.items[-1].set_strategy(DownStrategy(self.items[-1]._np, 35))
37 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(-.06, 0, .78))]
38 self.items[-1].set_strategy(DownStrategy(self.items[-1]._np, 35))
39 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(0.91, 0, .78))]
40 self.items[-1].set_strategy(DownStrategy(self.items[-1]._np, 35))
41 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(1.73, 0, .78))]
42 self.items[-1].set_strategy(UpStrategy(self.items[-1]._np, 30))
43 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(2.57, 0, .78))]
44 self.items[-1].set_strategy(UpStrategy(self.items[-1]._np, 30))
3211f3f3
FC
45 #self.items += [Basketball(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, count=3)]
46 #self.items += [TeeterTooter(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, count=3)]
47
48 def _instr_txt(self):
49 txt = _('Scene: ') + self.name() + '\n\n'
0e86689f 50 txt += _('Goal: only the last piece of each row must be up\n\n')
3211f3f3
FC
51 txt += _('keep \5mouse_l\5 pressed to drag an item\n\n'
52 'keep \5mouse_r\5 pressed to rotate an item')
53 return txt
0e86689f 54
0a0994e4
FC
55 def _win_condition(self):
56 return all(itm.strategy.win_condition() for itm in self.items) and not self._paused