ya2 · news · projects · code · about

refactoring for building
[pmachines.git] / game / scenes / scene_teeter_tooter.py
CommitLineData
a0462193
FC
1from game.scene import Scene
2from game.items.box import Box
3from game.items.shelf import Shelf
4from game.items.domino import Domino, UpStrategy, DownStrategy
5from game.items.basketball import Basketball
6from game.items.teetertooter import TeeterTooter
80d579b1
FC
7
8
9class SceneTeeterTooter(Scene):
10
80d579b1
FC
11 @staticmethod
12 def name():
13 return _('Teeter tooter')
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=3, count=1, friction=1)]
18 #self.items += [TeeterTooter(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=5, count=2)]
19 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(-2.76, 0, -1.45))]
20 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(-.56, 0, -1.45))]
21 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(2.27, 0, -.28))]
22 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(4.38, 0, -.28))]
23 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))]
24 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))]
25 self.items += [TeeterTooter(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(-2.74, 0, -1.20))]
26 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=1, r=-25.30, friction=1, pos=(-2.78, 0, -.93))]
27 self.items += [Box(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=.2, friction=1, model_scale=.5, pos=(-3.61, 0, -.99), r=-25.30)]
28 self.items += [Shelf(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, mass=0, pos=(-.25, 0, -.57), r=52)]
29 self.items += [Domino(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, pos=(1.73, 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=(2.57, 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=(3.50, 0, -.89))]
34 self.items[-1].set_strategy(DownStrategy(self.items[-1]._np, 35))
35 #self.items += [Basketball(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, count=3)]
36 #self.items += [TeeterTooter(self._world, self._mouse_plane_node, self.cb_inst, self.current_bottom, self.repos, count=3)]
37
38 def _instr_txt(self):
39 txt = _('Scene: ') + self.name() + '\n\n'
40 txt += _('Goal: you must hit every domino piece\n\n')
41 txt += _('keep \5mouse_l\5 pressed to drag an item\n\n'
42 'keep \5mouse_r\5 pressed to rotate an item')
43 return txt
44
45 def _win_condition(self):
46 return all(itm.strategy.win_condition() for itm in self.items) and not self._paused