# HG changeset patch # User Jeremy Thurgood # Date 1378584910 -7200 # Node ID 57efcd81647b547b0668d372903f11396940994f # Parent 145d26878ecf91750c42c29379c3a76ed23d4cb1 SokoBox. diff -r 145d26878ecf -r 57efcd81647b nagslang/game_object.py --- a/nagslang/game_object.py Sat Sep 07 22:14:34 2013 +0200 +++ b/nagslang/game_object.py Sat Sep 07 22:15:10 2013 +0200 @@ -359,6 +359,25 @@ ("state_source", "puzzler")] +class SokoBox(GameObject): + def __init__(self, space, position): + body = make_body(1, pymunk.inf, position) + self.shape = pymunk.Poly( + body, [(-40, -40), (40, -40), (40, 40), (-40, 40)]) + self.shape.friction = 0.5 + self.shape.collision_type = COLLISION_TYPE_FURNITURE + super(Box, self).__init__( + SingleShapePhysicser(space, self.shape), + render.ImageRenderer( + resources.get_image('objects', 'sokobox.png')), + ) + + @classmethod + def requires(cls): + return [("name", "string"), ("position", "coordinates"), + ("state_source", "puzzler")] + + class BaseDoor(GameObject): zorder = ZORDER_FLOOR is_open = True