~facundo/enjuewemela/trunk

« back to all changes in this revision

Viewing changes to enjuewemela/gems.py

  • Committer: Facundo Batista
  • Date: 2013-04-12 17:19:18 UTC
  • mfrom: (92.1.15 trunk)
  • Revision ID: facundo@taniquetil.com.ar-20130412171918-u3avu731loa4zfv6
Merged remote trunk in.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
import config
19
19
 
20
 
# relation between number and shape
21
 
GEMS = 'cuaclaro octogono diamante hexagono triangul cuadrojo romboide'.split()
22
 
 
23
20
 
24
21
class _Gem(cocos.sprite.Sprite):
25
22
    """Gem wrapper around a sprite."""
73
70
        return "<Gem %s at %d>" % (self.name, id(self))
74
71
 
75
72
    def _set_scale(self, scale):
 
73
        """Set the scale."""
76
74
        self._scale = scale * 5
77
75
 
78
76
    def _get_scale(self):
 
77
        """Get the scale."""
79
78
        return self._scale / 5
80
79
 
81
80
    scale = property(_get_scale, _set_scale)
82
81
 
 
82
    def _set_opacity(self, value):
 
83
        """Set the opacity."""
 
84
        self.active = bool(value)
 
85
 
 
86
    opacity = property(fset=_set_opacity)
 
87
 
83
88
 
84
89
class Gems(object):
85
90
    """A gem representation."""
86
91
 
87
92
    def __init__(self):
88
93
        # load all the gems
89
 
        jewels = os.listdir(os.path.join(config.BASEDIR, "jewels"))
90
 
        self.pngs = sorted(x for x in jewels
91
 
                           if x.endswith('.png') and not x.startswith('expl')
92
 
                                                 and not x.startswith('crazy'))
 
94
        jewels_path = os.path.join(config.BASEDIR, "jewels")
 
95
        jewels = [x for x in os.listdir(jewels_path)
 
96
                  if not x.startswith('expl') and not x.startswith('crazy')]
 
97
        self.pngs = sorted(x for x in jewels if x.endswith('.png'))
93
98
        if len(self.pngs) != 7:
94
99
            raise ValueError("The gems (png files) in the 'gems' directory "
95
100
                             "must be 7! (found %d)" % len(self.pngs))
155
160
        sp.scale = self.resize_factor
156
161
        return sp
157
162
 
 
163
    def by_name(self, name):
 
164
        """Return a gem by name."""
 
165
        if name == 'magic':
 
166
            return self.get_magic_ball()
 
167
        sp = _Gem(name + '.png', None)
 
168
        sp.scale = self.resize_factor
 
169
        return sp
 
170
 
158
171
    def __getitem__(self, pos):
159
172
        if self._crazy_mode:
160
173
            if self._crazy_style: