Mercurial > nagslang
changeset 241:ec567098cf41
Merge
author | David Sharpe |
---|---|
date | Wed, 04 Sep 2013 01:23:43 +0200 |
parents | f89576cec59a (current diff) d3d602a527bd (diff) |
children | cf1d78238a69 |
files | nagslang/tests/test_game_object.py |
diffstat | 22 files changed, 2925 insertions(+), 378 deletions(-) [+] |
line wrap: on
line diff
--- a/data/levels/level1 Wed Sep 04 01:23:32 2013 +0200 +++ b/data/levels/level1 Wed Sep 04 01:23:43 2013 +0200 @@ -27,7 +27,7 @@ classname: FloorLight name: light2 - args: [light_switch, door_switch] - classname: StateLogicalAndPuzzler + classname: puzzle.StateLogicalAndPuzzler name: both_switches - args: - [400, 400] @@ -50,6 +50,15 @@ - [290, 160] - Run around, press some buttons, have fun! classname: Note +lines: +- - [750, 680] + - [950, 680] +- - [750, 480] + - [950, 480] +- - [750, 480] + - [750, 680] +- - [950, 480] + - [950, 680] polygons: 1: - [60, 780]
--- a/data/levels/level2 Wed Sep 04 01:23:32 2013 +0200 +++ b/data/levels/level2 Wed Sep 04 01:23:43 2013 +0200 @@ -6,6 +6,7 @@ - level1 - [600, 700] classname: Door +lines: [] polygons: 1: - [70, 440]
--- a/nagslang/enemies.py Wed Sep 04 01:23:32 2013 +0200 +++ b/nagslang/enemies.py Wed Sep 04 01:23:43 2013 +0200 @@ -1,9 +1,9 @@ import pymunk import pymunk.pygame_util +from nagslang import render from nagslang.constants import COLLISION_TYPE_ENEMY, ZORDER_MID -from nagslang.game_object import ( - GameObject, SingleShapePhysicser, AnimatedFacingImageRenderer, make_body) +from nagslang.game_object import GameObject, SingleShapePhysicser, make_body from nagslang.mutators import FLIP_H from nagslang.resources import resources @@ -42,19 +42,19 @@ self._direction = 'away' def _setup_physics(self, space, position): - self._body = make_body(5, pymunk.inf, position, 0.8) + self._body = make_body(10, pymunk.inf, position, 0.8) self._shape = pymunk.Circle(self._body, 30) self._shape.elasticity = 1.0 - self._shape.friction = 10.0 + self._shape.friction = 0.05 self._shape.collision_type = COLLISION_TYPE_ENEMY self._physicser = SingleShapePhysicser(space, self._shape) self.impulse_factor = 50 self.angle = 0 def _setup_renderer(self): - self.renderer = AnimatedFacingImageRenderer( + self.renderer = render.AnimatedFacingImageRenderer( (self._get_image('alien_A_1.png'), self._get_image('alien_A_1.png'), self._get_image('alien_A_1.png'),
--- a/nagslang/game_object.py Wed Sep 04 01:23:32 2013 +0200 +++ b/nagslang/game_object.py Wed Sep 04 01:23:43 2013 +0200 @@ -1,94 +1,16 @@ -import math - -import pygame import pymunk import pymunk.pygame_util +from nagslang import puzzle +from nagslang import render from nagslang.constants import ( SWITCH_PUSHERS, COLLISION_TYPE_SWITCH, COLLISION_TYPE_BOX, ZORDER_LOW, - ZORDER_FLOOR, COLLISION_TYPE_DOOR, COLLISION_TYPE_PLAYER) -from nagslang.options import options + ZORDER_FLOOR, COLLISION_TYPE_DOOR) from nagslang.resources import resources from nagslang.events import DoorEvent from nagslang.widgets.text import LabelWidget -class PuzzleGlue(object): - """Glue that holds bits of a puzzle together. - """ - def __init__(self): - self._components = {} - - def add_component(self, name, puzzler): - if not isinstance(puzzler, Puzzler): - puzzler = puzzler.puzzler - self._components[name] = puzzler - puzzler.set_glue(self) - - def get_state_of(self, name): - return self._components[name].get_state() - - -class Puzzler(object): - """Behaviour specific to a puzzle component. - """ - def set_glue(self, glue): - self.glue = glue - - def set_game_object(self, game_object): - self.game_object = game_object - - def get_state(self): - raise NotImplementedError() - - -class YesPuzzler(Puzzler): - """Yes sir, I'm always on. - """ - def get_state(self): - return True - - -class NoPuzzler(Puzzler): - """No sir, I'm always off. - """ - def get_state(self): - return False - - -class CollidePuzzler(Puzzler): - def __init__(self, *collision_types): - if not collision_types: - collision_types = (COLLISION_TYPE_PLAYER,) - self._collision_types = collision_types - - def get_state(self): - space = self.game_object.get_space() - for shape in space.shape_query(self.game_object.get_shape()): - if shape.collision_type in self._collision_types: - return True - return False - - -class StateProxyPuzzler(Puzzler): - def __init__(self, state_source): - self._state_source = state_source - - def get_state(self): - return self.glue.get_state_of(self._state_source) - - -class StateLogicalAndPuzzler(Puzzler): - def __init__(self, *state_sources): - self._state_sources = state_sources - - def get_state(self): - for state_source in self._state_sources: - if not self.glue.get_state_of(state_source): - return False - return True - - class Physicser(object): def __init__(self, space): self._space = space @@ -148,163 +70,6 @@ return self._shape.body.apply_impulse(j, r) -class Renderer(object): - def set_game_object(self, game_object): - self.game_object = game_object - - def _render_shape(self, surface): - shape = self.game_object.get_shape() - # Less general that pymunk.pygame_util.draw, but also a lot less noisy. - color = getattr(shape, 'color', pygame.color.THECOLORS['lightblue']) - # We only explicitly draw Circle and Poly shapes. Everything else we - # forward to pymunk. - if isinstance(shape, pymunk.Circle): - centre = pymunk.pygame_util.to_pygame(shape.body.position, surface) - radius = int(shape.radius) - pygame.draw.circle(surface, color, centre, radius, 2) - elif isinstance(shape, pymunk.Poly): - # polygon bounding box - points = [pymunk.pygame_util.to_pygame(p, surface) - for p in shape.get_vertices()] - pygame.draw.lines(surface, color, True, points, 2) - else: - pymunk.pygame_util.draw(surface, shape) - - def render(self, surface): - if options.debug: - self._render_shape(surface) - - def animate(self): - # Used by time animatations to advance the clock - pass - - -def image_pos(image, pos): - return (pos[0] - image.get_width() / 2, - pos[1] - image.get_height() / 2) - - -class ImageRenderer(Renderer): - def __init__(self, image): - self._image = image - - def get_image(self): - return self._image - - def rotate_image(self, image): - angle = self.game_object.get_render_angle() * 180 / math.pi - return pygame.transform.rotate(image, angle) - - def render_image(self, surface, image): - image = self.rotate_image(image) - pos = self.game_object.get_render_position(surface) - surface.blit(image, image_pos(image, pos)) - - def render(self, surface): - self.render_image(surface, self.get_image()) - super(ImageRenderer, self).render(surface) - - -class ImageStateRenderer(ImageRenderer): - def __init__(self, state_images): - self._state_images = state_images - - def get_image(self): - return self._state_images[self.game_object.puzzler.get_state()] - - -class FacingImageRenderer(ImageRenderer): - def __init__(self, left_image, right_image): - self._images = { - 'left': left_image, - 'right': right_image, - } - self._face = 'left' - - def _update_facing(self, angle): - if abs(angle) < math.pi / 2: - self._face = 'right' - elif abs(angle) > math.pi / 2: - self._face = 'left' - - def rotate_image(self, image): - # Facing images don't get rotated. - return image - - def get_facing_image(self): - return self._images[self._face] - - def get_image(self): - angle = self.game_object.get_render_angle() - self._update_facing(angle) - return self.get_facing_image() - - -class AnimatedFacingImageRenderer(FacingImageRenderer): - def __init__(self, left_images, right_images): - self._images = { - 'left': left_images, - 'right': right_images, - } - self._frame = 0 - self._moving = False - self._face = 'left' - - def get_facing_image(self): - if self._frame >= len(self._images[self._face]): - self._frame = 0 - return self._images[self._face][self._frame] - - def animate(self): - if self._moving: - self._frame += 1 - else: - self._frame = 0 - - def start(self): - self._moving = True - - def stop(self): - self._moving = False - - -class TimedAnimatedRenderer(ImageRenderer): - - def __init__(self, images): - self._images = images - self._frame = 0 - self._image = None - - def get_image(self): - if self._frame > len(self._imaages): - self._frame = 0 - return self._images[self._frame] - - def animate(self): - self._frame += 1 - - -class ShapeRenderer(Renderer): - def render(self, surface): - self._render_shape(surface) - super(ShapeRenderer, self).render(surface) - - -class ShapeStateRenderer(ShapeRenderer): - """Renders the shape in a different colour depending on the state. - - Requires the game object it's attached to to have a puzzler. - """ - def render(self, surface): - if self.game_object.puzzler.get_state(): - color = pygame.color.THECOLORS['green'] - else: - color = pygame.color.THECOLORS['red'] - - self.game_object.get_shape().color = color - super(ShapeStateRenderer, self).render(surface) - - def damping_velocity_func(body, gravity, damping, dt): """Apply custom damping to this body's velocity. """ @@ -325,7 +90,7 @@ def set_game_object(self, game_object): self.game_object = game_object - def render(self, surface): + def render(self, surface, display_offset): pass def is_visible(self): @@ -337,7 +102,13 @@ self.text = text self.widget = LabelWidget((20, 20), self.text) - def render(self, surface): + def render(self, surface, display_offset): + x, y = 20, 20 + if display_offset[0] < 0: + x += abs(display_offset[0]) + if display_offset[1] < 0: + y += abs(display_offset[1]) + self.widget.rect.topleft = (x, y) self.widget.draw(surface) @@ -399,11 +170,11 @@ self.shape.sensor = True super(FloorSwitch, self).__init__( SingleShapePhysicser(space, self.shape), - ImageStateRenderer({ + render.ImageStateRenderer({ True: resources.get_image('objects', 'sensor_on.png'), False: resources.get_image('objects', 'sensor_off.png'), }), - CollidePuzzler(*SWITCH_PUSHERS), + puzzle.CollidePuzzler(*SWITCH_PUSHERS), ) @@ -416,8 +187,8 @@ self.shape.sensor = True super(Note, self).__init__( SingleShapePhysicser(space, self.shape), - ImageRenderer(resources.get_image('objects', 'note.png')), - CollidePuzzler(), + render.ImageRenderer(resources.get_image('objects', 'note.png')), + puzzle.CollidePuzzler(), TextOverlay(message), ) @@ -432,11 +203,11 @@ self.shape.sensor = True super(FloorLight, self).__init__( SingleShapePhysicser(space, self.shape), - ImageStateRenderer({ + render.ImageStateRenderer({ True: resources.get_image('objects', 'light_on.png'), False: resources.get_image('objects', 'light_off.png'), }), - StateProxyPuzzler(state_source), + puzzle.StateProxyPuzzler(state_source), ) @@ -445,10 +216,11 @@ body = make_body(10, 10000, position, damping=0.5) self.shape = pymunk.Poly( body, [(-20, -20), (20, -20), (20, 20), (-20, 20)]) + self.shape.friction = 0.5 self.shape.collision_type = COLLISION_TYPE_BOX super(Box, self).__init__( SingleShapePhysicser(space, self.shape), - ImageRenderer(resources.get_image('objects', 'crate.png')), + render.ImageRenderer(resources.get_image('objects', 'crate.png')), ) @@ -464,12 +236,12 @@ self.destination = destination self.dest_pos = tuple(dest_pos) if key_state is None: - puzzler = YesPuzzler() + puzzler = puzzle.YesPuzzler() else: - puzzler = StateProxyPuzzler(key_state) + puzzler = puzzle.StateProxyPuzzler(key_state) super(Door, self).__init__( SingleShapePhysicser(space, self.shape), - ImageRenderer(resources.get_image('objects', 'door.png')), + render.ImageRenderer(resources.get_image('objects', 'door.png')), puzzler, )
--- a/nagslang/level.py Wed Sep 04 01:23:32 2013 +0200 +++ b/nagslang/level.py Wed Sep 04 01:23:43 2013 +0200 @@ -3,6 +3,7 @@ from nagslang import game_object as go from nagslang import enemies +from nagslang import puzzle from nagslang.resources import resources from nagslang.yamlish import load, dump @@ -16,6 +17,9 @@ } +LINE_COLOR = pygame.color.THECOLORS['orange'] + + class Level(object): def __init__(self, name): @@ -24,11 +28,12 @@ self.x = 800 self.y = 600 self.polygons = {} + self.lines = [] self.basetile = 'tiles/floor.png' self._tile_image = None self._surface = None self._exterior = False - self._glue = go.PuzzleGlue() + self._glue = puzzle.PuzzleGlue() self.drawables = [] self.overlay_drawables = [] self._game_objects = [] @@ -45,6 +50,7 @@ 'size': [self.x, self.y], 'base_tile': self.basetile, 'polygons': self.polygons, + 'lines': self.lines, 'game_objects': self._game_objects, 'enemies': self._enemies, }, f) @@ -57,6 +63,7 @@ self.polygons[i] = [] for point in points: self.polygons[i].append(tuple(point)) + self.lines = data.get('lines', []) self._game_objects = data.get('game_objects', []) for game_object_dict in self._game_objects: self._create_game_object(space, **game_object_dict) @@ -65,10 +72,17 @@ self._create_enemy(space, **enemy_dict) def _create_game_object(self, space, classname, args, name=None): - # We should probably build a registry of game objects or something. - # At least this is better than just calling `eval`, right? - cls = getattr(go, classname) - if issubclass(cls, go.Puzzler): + modules = { + 'game_object': go, + 'puzzle': puzzle, + } + if '.' in classname: + module, classname = classname.split('.') + else: + module = 'game_object' + cls = getattr(modules[module], classname) + + if issubclass(cls, puzzle.Puzzler): gobj = cls(*args) elif issubclass(cls, go.GameObject): gobj = cls(space, *args) @@ -131,7 +145,9 @@ return (pos[0], self.y - pos[1]) def get_walls(self): - return self.polygons.values() + walls = self.polygons.values() + walls.extend(self.lines) + return walls def _draw_walls(self): for index, polygon in self.polygons.items(): @@ -139,6 +155,9 @@ if len(polygon) > 1: pointlist = [self.point_to_pygame(p) for p in polygon] pygame.draw.lines(self._surface, color, False, pointlist, 2) + for line in self.lines: + pointlist = [self.point_to_pygame(p) for p in line] + pygame.draw.lines(self._surface, LINE_COLOR, False, pointlist, 2) def get_background(self): self._draw_background()
--- a/nagslang/protagonist.py Wed Sep 04 01:23:32 2013 +0200 +++ b/nagslang/protagonist.py Wed Sep 04 01:23:43 2013 +0200 @@ -3,9 +3,9 @@ import math +from nagslang import render from nagslang.constants import COLLISION_TYPE_PLAYER, ZORDER_MID -from nagslang.game_object import ( - GameObject, SingleShapePhysicser, AnimatedFacingImageRenderer, make_body) +from nagslang.game_object import GameObject, SingleShapePhysicser, make_body from nagslang.mutators import FLIP_H from nagslang.resources import resources @@ -42,10 +42,11 @@ self._body, [(-15, -30), (15, -30), (15, 30), (-15, 30)]), self.WOLF_FORM: pymunk.Circle(self._body, 30), } + self._shapes[self.HUMAN_FORM].friction = 1.0 + self._shapes[self.WOLF_FORM].friction = 0.05 self._physicsers = {} for form, shape in self._shapes.iteritems(): shape.elasticity = 1.0 - shape.friction = 10.0 shape.collision_type = COLLISION_TYPE_PLAYER self._physicsers[form] = SingleShapePhysicser(space, shape) self.angle = 0 @@ -55,7 +56,7 @@ def _setup_renderers(self): self._renderers = { - self.HUMAN_FORM: AnimatedFacingImageRenderer( + self.HUMAN_FORM: render.AnimatedFacingImageRenderer( (self._get_image('human_1.png'), self._get_image('human_1.png'), self._get_image('human_1.png'), @@ -68,7 +69,7 @@ self._get_image('human_2.png', FLIP_H), self._get_image('human_2.png', FLIP_H), self._get_image('human_2.png', FLIP_H))), - self.HUMAN_FORM_BACK: AnimatedFacingImageRenderer( + self.HUMAN_FORM_BACK: render.AnimatedFacingImageRenderer( (self._get_image('human_back_1.png'), self._get_image('human_back_1.png'), self._get_image('human_back_1.png'), @@ -81,7 +82,7 @@ self._get_image('human_back_2.png', FLIP_H), self._get_image('human_back_2.png', FLIP_H), self._get_image('human_back_2.png', FLIP_H))), - self.WOLF_FORM: AnimatedFacingImageRenderer( + self.WOLF_FORM: render.AnimatedFacingImageRenderer( (self._get_image('werewolf_1.png'), self._get_image('werewolf_1.png'), self._get_image('werewolf_1.png'), @@ -94,7 +95,7 @@ self._get_image('werewolf_2.png', FLIP_H), self._get_image('werewolf_2.png', FLIP_H), self._get_image('werewolf_2.png', FLIP_H))), - self.WOLF_FORM_BACK: AnimatedFacingImageRenderer( + self.WOLF_FORM_BACK: render.AnimatedFacingImageRenderer( (self._get_image('werewolf_back_1.png'), self._get_image('werewolf_back_1.png'), self._get_image('werewolf_back_1.png'), @@ -126,6 +127,7 @@ self._physicsers[self.form].remove_from_space() self.form = self.WOLF_FORM self._physicsers[self.form].add_to_space() + self.physicser = self._physicsers[self.form] self._body.mass = 100 self._body.velocity_limit = 1000 self.impulse_factor = 4000 @@ -142,6 +144,7 @@ self._physicsers[self.form].remove_from_space() self.form = self.HUMAN_FORM self._physicsers[self.form].add_to_space() + self.physicser = self._physicsers[self.form] self._body.mass = 10 self._body.velocity_limit = 1000 self.impulse_factor = 500 @@ -199,6 +202,7 @@ self.inventory = old_protagonist.inventory self.renderer = self._renderers[self.render_form] self._physicsers[self.form].add_to_space() + self.physicser = self._physicsers[self.form] def toggle_form(self): if self.form == self.WOLF_FORM:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nagslang/puzzle.py Wed Sep 04 01:23:43 2013 +0200 @@ -0,0 +1,77 @@ +from nagslang.constants import COLLISION_TYPE_PLAYER + + +class PuzzleGlue(object): + """Glue that holds bits of a puzzle together. + """ + def __init__(self): + self._components = {} + + def add_component(self, name, puzzler): + if not isinstance(puzzler, Puzzler): + puzzler = puzzler.puzzler + self._components[name] = puzzler + puzzler.set_glue(self) + + def get_state_of(self, name): + return self._components[name].get_state() + + +class Puzzler(object): + """Behaviour specific to a puzzle component. + """ + def set_glue(self, glue): + self.glue = glue + + def set_game_object(self, game_object): + self.game_object = game_object + + def get_state(self): + raise NotImplementedError() + + +class YesPuzzler(Puzzler): + """Yes sir, I'm always on. + """ + def get_state(self): + return True + + +class NoPuzzler(Puzzler): + """No sir, I'm always off. + """ + def get_state(self): + return False + + +class CollidePuzzler(Puzzler): + def __init__(self, *collision_types): + if not collision_types: + collision_types = (COLLISION_TYPE_PLAYER,) + self._collision_types = collision_types + + def get_state(self): + space = self.game_object.get_space() + for shape in space.shape_query(self.game_object.get_shape()): + if shape.collision_type in self._collision_types: + return True + return False + + +class StateProxyPuzzler(Puzzler): + def __init__(self, state_source): + self._state_source = state_source + + def get_state(self): + return self.glue.get_state_of(self._state_source) + + +class StateLogicalAndPuzzler(Puzzler): + def __init__(self, *state_sources): + self._state_sources = state_sources + + def get_state(self): + for state_source in self._state_sources: + if not self.glue.get_state_of(state_source): + return False + return True
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nagslang/render.py Wed Sep 04 01:23:43 2013 +0200 @@ -0,0 +1,163 @@ +import math + +import pygame +import pymunk + +from nagslang.options import options + + +class Renderer(object): + def set_game_object(self, game_object): + self.game_object = game_object + + def _render_shape(self, surface): + shape = self.game_object.get_shape() + # Less general that pymunk.pygame_util.draw, but also a lot less noisy. + color = getattr(shape, 'color', pygame.color.THECOLORS['lightblue']) + # We only explicitly draw Circle and Poly shapes. Everything else we + # forward to pymunk. + if isinstance(shape, pymunk.Circle): + centre = pymunk.pygame_util.to_pygame(shape.body.position, surface) + radius = int(shape.radius) + pygame.draw.circle(surface, color, centre, radius, 2) + elif isinstance(shape, pymunk.Poly): + # polygon bounding box + points = [pymunk.pygame_util.to_pygame(p, surface) + for p in shape.get_vertices()] + pygame.draw.lines(surface, color, True, points, 2) + else: + pymunk.pygame_util.draw(surface, shape) + + def render(self, surface): + if options.debug: + self._render_shape(surface) + + def animate(self): + # Used by time animatations to advance the clock + pass + + +def image_pos(image, pos): + return (pos[0] - image.get_width() / 2, + pos[1] - image.get_height() / 2) + + +class ImageRenderer(Renderer): + def __init__(self, image): + self._image = image + + def get_image(self): + return self._image + + def rotate_image(self, image): + angle = self.game_object.get_render_angle() * 180 / math.pi + return pygame.transform.rotate(image, angle) + + def render_image(self, surface, image): + image = self.rotate_image(image) + pos = self.game_object.get_render_position(surface) + surface.blit(image, image_pos(image, pos)) + + def render(self, surface): + self.render_image(surface, self.get_image()) + super(ImageRenderer, self).render(surface) + + +class ImageStateRenderer(ImageRenderer): + def __init__(self, state_images): + self._state_images = state_images + + def get_image(self): + return self._state_images[self.game_object.puzzler.get_state()] + + +class FacingImageRenderer(ImageRenderer): + def __init__(self, left_image, right_image): + self._images = { + 'left': left_image, + 'right': right_image, + } + self._face = 'left' + + def _update_facing(self, angle): + if abs(angle) < math.pi / 2: + self._face = 'right' + elif abs(angle) > math.pi / 2: + self._face = 'left' + + def rotate_image(self, image): + # Facing images don't get rotated. + return image + + def get_facing_image(self): + return self._images[self._face] + + def get_image(self): + angle = self.game_object.get_render_angle() + self._update_facing(angle) + return self.get_facing_image() + + +class AnimatedFacingImageRenderer(FacingImageRenderer): + def __init__(self, left_images, right_images): + self._images = { + 'left': left_images, + 'right': right_images, + } + self._frame = 0 + self._moving = False + self._face = 'left' + + def get_facing_image(self): + if self._frame >= len(self._images[self._face]): + self._frame = 0 + return self._images[self._face][self._frame] + + def animate(self): + if self._moving: + self._frame += 1 + else: + self._frame = 0 + + def start(self): + self._moving = True + + def stop(self): + self._moving = False + + +class TimedAnimatedRenderer(ImageRenderer): + + def __init__(self, images): + self._images = images + self._frame = 0 + self._image = None + + def get_image(self): + if self._frame > len(self._imaages): + self._frame = 0 + return self._images[self._frame] + + def animate(self): + self._frame += 1 + + +class ShapeRenderer(Renderer): + def render(self, surface): + self._render_shape(surface) + super(ShapeRenderer, self).render(surface) + + +class ShapeStateRenderer(ShapeRenderer): + """Renders the shape in a different colour depending on the state. + + Requires the game object it's attached to to have a puzzler. + """ + def render(self, surface): + if self.game_object.puzzler.get_state(): + color = pygame.color.THECOLORS['green'] + else: + color = pygame.color.THECOLORS['red'] + + self.game_object.get_shape().color = color + super(ShapeStateRenderer, self).render(surface)
--- a/nagslang/screens/area.py Wed Sep 04 01:23:32 2013 +0200 +++ b/nagslang/screens/area.py Wed Sep 04 01:23:43 2013 +0200 @@ -173,7 +173,7 @@ surface.blit(mysurface, (0, 0), render_rect) for overlay in self._level.overlay_drawables: if overlay.is_visible(): - overlay.render(surface) + overlay.render(surface, render_rect.topleft) def tick_protagonist(self): dx, dy = self.keys.get_direction()
--- a/nagslang/tests/test_game_object.py Wed Sep 04 01:23:32 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ -from unittest import TestCase - -from nagslang.constants import COLLISION_TYPE_OTHER, SWITCH_PUSHERS -from nagslang import game_object - - -class FakeShape(object): - def __init__(self, collision_type=COLLISION_TYPE_OTHER): - self.collision_type = collision_type - - -class FakeSpace(object): - def __init__(self, *shapes): - self._shapes = shapes - - def shape_query(self, shape): - return self._shapes - - -class FakeGameObject(object): - def __init__(self, shape, space): - self._shape = shape - self._space = space - - def get_shape(self): - return self._shape - - def get_space(self): - return self._space - - -class FakePuzzler(game_object.Puzzler): - def __init__(self, fake_state): - self.fake_state = fake_state - - def get_state(self): - return self.fake_state - - -class TestPuzzles(TestCase): - def mkpuzzler(self, gobj, cls, *args, **kw): - puzzler = cls(*args, **kw) - puzzler.set_game_object(gobj) - return puzzler - - def assert_collide_state(self, expected, shapes, collision_types): - gobj = FakeGameObject(None, FakeSpace(*shapes)) - puzzler = self.mkpuzzler( - gobj, game_object.CollidePuzzler, *collision_types) - self.assertEqual(expected, puzzler.get_state()) - - def test_collide_puzzler(self): - self.assert_collide_state(False, [], []) - self.assert_collide_state(False, [FakeShape()], SWITCH_PUSHERS) - - for collision_type in SWITCH_PUSHERS: - self.assert_collide_state( - True, [FakeShape(collision_type)], SWITCH_PUSHERS) - self.assert_collide_state( - True, [FakeShape(), FakeShape(collision_type)], SWITCH_PUSHERS) - - def test_state_proxy_puzzler(self): - glue = game_object.PuzzleGlue() - puzzler = game_object.StateProxyPuzzler('faker') - glue.add_component('puzzler', puzzler) - faker = FakePuzzler('foo') - glue.add_component('faker', faker) - - self.assertEqual('foo', puzzler.get_state()) - faker.fake_state = 'bar' - self.assertEqual('bar', puzzler.get_state()) - - def test_glue_add_component(self): - glue = game_object.PuzzleGlue() - puzzler = FakePuzzler('foo') - gobj = FakeGameObject(None, None) - gobj.puzzler = FakePuzzler('bar') - - self.assertEqual({}, glue._components) - glue.add_component('foo', puzzler) - self.assertEqual({'foo': puzzler}, glue._components) - glue.add_component('bar', gobj) - self.assertEqual( - {'foo': puzzler, 'bar': gobj.puzzler}, glue._components)
--- a/nagslang/tests/test_level.py Wed Sep 04 01:23:32 2013 +0200 +++ b/nagslang/tests/test_level.py Wed Sep 04 01:23:43 2013 +0200 @@ -3,6 +3,7 @@ from StringIO import StringIO from nagslang import game_object as go +from nagslang import puzzle from nagslang.level import Level from nagslang.yamlish import load @@ -31,7 +32,7 @@ level.load(FakeSpace()) self.assertEqual((5, 10), level.get_size()) self.assertEqual([], level.get_walls()) - self.assertEqual([], level.get_drawables()) + self.assertEqual([], level.drawables) level = self.make_level('foo', { 'size': [5, 10], @@ -48,7 +49,7 @@ level.load(FakeSpace()) self.assertEqual((5, 10), level.get_size()) self.assertEqual([[(1, 1), (2, 1), (1, 2)]], level.get_walls()) - self.assertEqual([], level.get_drawables()) + self.assertEqual([], level.drawables) level = self.make_level('foo', { 'size': [5, 10], @@ -66,7 +67,7 @@ level.load(FakeSpace()) self.assertEqual((5, 10), level.get_size()) self.assertEqual([], level.get_walls()) - [box, switch] = level.get_drawables() + [box, switch] = level.drawables self.assertTrue(isinstance(box, go.Box)) self.assertEqual(box.shape.body.position, (3, 3)) self.assertTrue(isinstance(switch, go.FloorSwitch)) @@ -76,9 +77,10 @@ self.assertEqual(['foo', 'foo_proxy'], sorted(puzzle_bits.keys())) self.assertTrue( - isinstance(puzzle_bits['foo_proxy'], go.StateProxyPuzzler)) + isinstance(puzzle_bits['foo_proxy'], puzzle.StateProxyPuzzler)) self.assertEqual('foo', puzzle_bits['foo_proxy']._state_source) - self.assertTrue(isinstance(puzzle_bits['foo'], go.CollidePuzzler)) + self.assertTrue(isinstance(puzzle_bits['foo'], + puzzle.CollidePuzzler)) level = self.make_level('foo', { 'size': [5, 10], @@ -96,7 +98,7 @@ }, { 'name': 'foo_proxy', - 'classname': 'StateProxyPuzzler', + 'classname': 'puzzle.StateProxyPuzzler', 'args': ['foo'], }, ],
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nagslang/tests/test_puzzle.py Wed Sep 04 01:23:43 2013 +0200 @@ -0,0 +1,84 @@ +from unittest import TestCase + +from nagslang.constants import COLLISION_TYPE_OTHER, SWITCH_PUSHERS +from nagslang import puzzle + + +class FakeShape(object): + def __init__(self, collision_type=COLLISION_TYPE_OTHER): + self.collision_type = collision_type + + +class FakeSpace(object): + def __init__(self, *shapes): + self._shapes = shapes + + def shape_query(self, shape): + return self._shapes + + +class FakeGameObject(object): + def __init__(self, shape, space): + self._shape = shape + self._space = space + + def get_shape(self): + return self._shape + + def get_space(self): + return self._space + + +class FakePuzzler(puzzle.Puzzler): + def __init__(self, fake_state): + self.fake_state = fake_state + + def get_state(self): + return self.fake_state + + +class TestPuzzles(TestCase): + def mkpuzzler(self, gobj, cls, *args, **kw): + puzzler = cls(*args, **kw) + puzzler.set_game_object(gobj) + return puzzler + + def assert_collide_state(self, expected, shapes, collision_types): + gobj = FakeGameObject(None, FakeSpace(*shapes)) + puzzler = self.mkpuzzler( + gobj, puzzle.CollidePuzzler, *collision_types) + self.assertEqual(expected, puzzler.get_state()) + + def test_collide_puzzler(self): + self.assert_collide_state(False, [], []) + self.assert_collide_state(False, [FakeShape()], SWITCH_PUSHERS) + + for collision_type in SWITCH_PUSHERS: + self.assert_collide_state( + True, [FakeShape(collision_type)], SWITCH_PUSHERS) + self.assert_collide_state( + True, [FakeShape(), FakeShape(collision_type)], SWITCH_PUSHERS) + + def test_state_proxy_puzzler(self): + glue = puzzle.PuzzleGlue() + puzzler = puzzle.StateProxyPuzzler('faker') + glue.add_component('puzzler', puzzler) + faker = FakePuzzler('foo') + glue.add_component('faker', faker) + + self.assertEqual('foo', puzzler.get_state()) + faker.fake_state = 'bar' + self.assertEqual('bar', puzzler.get_state()) + + def test_glue_add_component(self): + glue = puzzle.PuzzleGlue() + puzzler = FakePuzzler('foo') + gobj = FakeGameObject(None, None) + gobj.puzzler = FakePuzzler('bar') + + self.assertEqual({}, glue._components) + glue.add_component('foo', puzzler) + self.assertEqual({'foo': puzzler}, glue._components) + glue.add_component('bar', gobj) + self.assertEqual( + {'foo': puzzler, 'bar': gobj.puzzler}, glue._components)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/source/images/creatures/werewolf_N_1.svg Wed Sep 04 01:23:43 2013 +0200 @@ -0,0 +1,619 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="640" + height="640" + id="svg2" + version="1.1" + inkscape:version="0.48.4 r9939" + sodipodi:docname="werewolf_N_2.svg"> + <defs + id="defs4"> + <linearGradient + id="linearGradient6583"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop6585" /> + <stop + style="stop-color:#c8c8c8;stop-opacity:1;" + offset="1" + id="stop6587" /> + </linearGradient> + <filter + inkscape:collect="always" + id="filter6285" + x="-0.18582313" + width="1.3716463" + y="-0.10235358" + height="1.2047072"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="11.04861" + id="feGaussianBlur6287" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6299"> + <path + inkscape:transform-center-y="-110.27648" + inkscape:transform-center-x="-97.563485" + sodipodi:nodetypes="cscsc" + inkscape:connector-curvature="0" + id="path6301" + d="m 541.34716,381.87976 c 124.1812,-54.23568 86.61571,-96.63832 83.80165,-138.75886 -7.44235,-111.39656 86.71078,-115.54275 110.32532,-106.98524 -71.98156,84.96137 -27.6021,95.88284 -27.0697,153.41047 1.17087,126.51666 -130.16522,154.79588 -167.05727,92.33363 z" + style="fill:#6c5353;stroke:none" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6361" + x="-0.1592533" + width="1.3185066" + y="-0.11271148" + height="1.225423"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="12.615103" + id="feGaussianBlur6363" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6367"> + <path + sodipodi:nodetypes="ccsc" + inkscape:connector-curvature="0" + id="path6369" + d="M 258.89467,157.56298 C 473.5888,128.77219 510.3187,310.23627 431.89961,453.10452 371.88946,526.86663 280.2259,400.46878 336.16267,299.53662 354.78336,265.93749 221.517,285.31048 258.89467,157.56298 z" + style="fill:#483737;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6461" + x="-0.12964776" + width="1.2592955" + y="-0.13443918" + height="1.2688784"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="11.422084" + id="feGaussianBlur6463" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6467"> + <path + sodipodi:nodetypes="cccccccccccc" + inkscape:connector-curvature="0" + id="path6469" + d="m 109.61621,322.08332 c -7.87896,-25.88041 18.10125,-78.93145 32.69897,-105.76334 -13.65697,0.0875 -25.17152,-17.17768 -36.00721,-39.94143 9.44362,-18.06571 18.30742,-36.55633 46.89664,-40.59118 -22.49435,-22.92741 -19.90024,-55.152573 -20.81313,-86.339861 39.09411,19.441798 64.18936,44.820011 73.32087,76.967861 29.62924,-4.91556 43.47889,3.92645 54.96219,14.83155 15.64844,-37.26698 49.01717,-51.821733 84.52724,-63.631911 -19.06279,22.118114 13.87129,48.788311 -39.01235,91.732081 29.81782,20.34876 18.05568,31.7329 29.11243,45.9527 -30.88866,20.18098 -67.11496,29.2327 -110.54341,23.26756 -19.37193,23.39569 -76.3293,70.69335 -115.14224,83.51597 z" + style="fill:#6c5353;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter4580" + x="-0.14069959" + width="1.2813992" + y="-0.12431357" + height="1.2486271"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="9.2555326" + id="feGaussianBlur4582" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4586"> + <path + sodipodi:nodetypes="ccsccccscscc" + inkscape:connector-curvature="0" + id="path4588" + d="m 555.9632,397.8861 c 33.81755,23.1763 34.45624,58.43116 62.07776,61.9232 1.99779,19.03076 19.68967,37.76964 -2.03593,52.76491 -26.55658,18.3297 -26.20842,71.79194 -25.59373,99.94838 -15.75276,-26.06303 -26.68818,-52.2288 -6.2956,-79.06251 -31.90063,23.48508 -30.17588,46.57358 -38.15675,69.77654 -0.15061,-22.88315 -16.84065,-40.95162 13.66115,-72.75776 -0.91206,-9.92619 -48.55462,32.03979 -53.31669,37.64665 -2.08253,2.45194 15.13993,-59.33405 70.28666,-84.93646 -13.65316,-24.45387 -21.22809,-48.03714 -45.00964,-39.28316 -40.51514,14.91361 -114.84762,-26.95873 -91.96924,-84.93513 47.63564,-66.1454 104.59082,-3.06078 116.35201,38.91534 z" + style="fill:#916f6f;stroke:#000000;stroke-width:0.78760201px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:transform-center-x="-69.387539" + inkscape:transform-center-y="83.521187" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter4002" + x="-0.11893633" + width="1.2378727" + y="-0.14828753" + height="1.2965751"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="9.3562367" + id="feGaussianBlur4004" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4008"> + <path + inkscape:transform-center-y="107.29473" + inkscape:transform-center-x="92.419155" + style="fill:#916f6f;stroke:#000000;stroke-width:0.86652184px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 353.13235,245.60026 c 43.43539,32.89478 0.86799,97.02828 -23.08334,116.60669 -39.21948,16.24673 -77.55978,14.6079 -115.65327,7.9481 l -44.34702,44.91661 c -7.64783,24.08833 -0.76507,50.89745 11.00785,78.62223 -18.63961,-19.92613 -36.22726,-41.11994 -34.19543,-85.95896 -2.19961,-14.72517 -41.03264,39.53152 -43.77915,58.57774 -2.80915,19.48042 -7.590733,-59.98528 24.6653,-73.15052 -28.734873,-1.49381 -36.955913,42.76066 -63.196803,50.18693 18.10591,-44.73245 43.643013,-94.57086 124.042363,-102.96821 37.09058,-9.58958 71.76977,-33.26392 113.54519,-15.48804 -0.20543,-93.32008 35.39388,-83.90131 50.99428,-79.29257 z" + id="path4010" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccsccccc" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter5575" + x="-0.18584715" + width="1.3716943" + y="-0.1023463" + height="1.2046926"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="10.417391" + id="feGaussianBlur5577" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath5605"> + <path + sodipodi:nodetypes="cccccccccccc" + inkscape:connector-curvature="0" + id="path5607" + d="m -167.28943,258.14055 c -26.65872,-21.20074 -37.4302,-69.04947 -35.0004,-92.3422 -16.10779,6.12501 -61.63336,-16.09654 -73.89346,-46.42273 6.06646,-19.461497 11.48656,-42.094699 38.89606,-51.169004 -26.22635,-18.542928 -19.42735,-47.856329 -25.8937,-78.379543 41.93709,12.149626 71.16011,32.63962 85.88453,62.640619 28.27557,-10.126532 43.48134,-3.899287 56.72711,4.7804 8.74343,-39.46206 38.977443,-59.740562 71.8084,-77.700896 -14.807574,25.166181 22.359005,45.527864 -22.007839,97.223414 32.97177,14.69819 23.43112,27.99942 36.849001,40.01669 -26.789291,25.37155 -72.537052,50.52908 -90.618452,48.12773 -1.45839,7.68307 -6.44802,69.97197 -42.75125,93.22553 z" + style="fill:#6c5353;stroke:none" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter5859" + x="-0.28151021" + width="1.5630204" + y="-0.0862125" + height="1.172425"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="8.2107143" + id="feGaussianBlur5861" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath5865"> + <path + sodipodi:nodetypes="sssssss" + inkscape:connector-curvature="0" + id="path5867" + d="m 312.33854,143.46544 c 35.00536,-0.46364 50.59102,14.61086 56.68408,84.06624 1.9562,22.29888 33.0984,40.30728 33.62662,83.71437 0.39224,32.23312 -42.94989,132.23608 -78.73433,126.33234 -44.35854,-7.31829 -97.6494,-90.88619 -96.26373,-122.77569 2.61462,-60.17243 39.41132,-52.26105 41.05972,-92.26618 2.23849,-54.32594 8.09959,-78.60053 43.62764,-79.07109 z" + style="fill:#483737;stroke:none" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter5935" + x="-0.20716654" + width="1.4143331" + y="-0.096857171" + height="1.1937143"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="6.9032674" + id="feGaussianBlur5937" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath5941"> + <path + inkscape:transform-center-y="71.684732" + style="fill:#6c5353;stroke:none" + d="m 451.12436,243.83546 c -6.70612,24.98755 -30.62537,14.12973 -38.22373,20.34751 l 15.81869,31.79023 c 12.06776,13.40275 24.02896,35.5782 23.37778,50.72584 -19.46213,-5.10541 -15.29278,-20.04203 -42.16142,-37.47784 -3.53718,-6.42637 14.30342,35.20324 9.71515,52.0512 -11.89129,-9.66477 -19.5504,-31.97817 -25.58519,-45.54526 -11.2917,17.14944 -0.33569,39.7337 -5.23612,58.56768 -26.3778,-33.27499 -18.92123,-104.37608 -5.29225,-115.07493 4.58696,-14.00772 11.90027,-19.78632 25.0033,-28.02709 -13.12194,-8.19027 -22.66983,17.37047 -44.63291,0.70338 -14.31381,-10.86229 -13.48981,-35.89608 4.97566,-45.99888 13.78121,0.58871 62.09476,17.52991 82.24104,57.93817 z" + id="path5943" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccscc" + inkscape:transform-center-x="-44.07401" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter5995" + x="-0.19454525" + width="1.3890905" + y="-0.0998869" + height="1.1997738"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="11.507416" + id="feGaussianBlur5997" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6001"> + <path + sodipodi:nodetypes="csccccccscc" + inkscape:connector-curvature="0" + id="path6003" + d="m 336.73617,441.69997 c -3.39623,55.2826 14.02794,62.50959 -5.00675,75.2532 -20.59393,13.78751 -48.88062,56.43578 -37.67115,85.98405 26.42821,-14.03744 33.97032,-28.21004 47.59885,-43.82255 1.03325,31.76782 21.05351,51.53484 30.94979,59.7214 15.56337,-20.54533 13.74412,-24.05328 16.81145,-65.10265 18.07576,12.85203 25.45229,51.97948 48.42341,52.19048 -3.71677,-27.07691 5.9966,-69.55418 -54.19499,-90.05214 -8.06203,-26.82171 -19.72831,-48.67229 3.10703,-59.66054 38.90314,-18.72 60.55484,-101.24159 2.99691,-125.15325 -80.65209,-11.81561 -74.97741,72.98627 -53.01455,110.64199 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-x="-36.314228" + inkscape:transform-center-y="112.59206" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6133" + x="-0.18519254" + width="1.3703851" + y="-0.10254591" + height="1.2050918"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="8.1182179" + id="feGaussianBlur6135" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6139"> + <path + inkscape:transform-center-x="43.867398" + sodipodi:nodetypes="ccccccccccscc" + inkscape:connector-curvature="0" + id="path6141" + d="m 145.07615,275.11326 c 9.87102,34.88541 43.18074,19.21729 53.94564,27.78544 l -21.56176,44.84501 c -16.65499,19.00914 -32.99415,50.30861 -31.79416,71.52126 27.17357,-7.5232 21.04788,-28.37336 58.36544,-53.31462 4.83433,-9.07183 -19.37377,49.59859 -12.62482,73.11897 16.47871,-13.76812 26.78712,-45.17922 34.98556,-64.30408 16.14756,23.81556 1.22467,55.66879 8.44872,81.96609 36.32911,-47.12591 24.53113,-146.61177 5.231,-161.34436 -6.69322,-19.54064 -17.05038,-27.49883 -35.56689,-38.79712 18.23107,-11.72538 22.57292,4.87786 53.03136,-18.89315 19.85041,-15.49207 27.74256,-31.52252 1.6768,-45.3281 -19.29916,1.08654 -86.67486,25.74184 -114.13689,82.74466 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-y="122.37785" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6231" + x="-0.13439477" + width="1.2687895" + y="-0.12968908" + height="1.2593782"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="8.3371552" + id="feGaussianBlur6233" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6237"> + <path + sodipodi:nodetypes="csccccccscc" + inkscape:connector-curvature="0" + id="path6239" + d="m 307.60111,434.55711 c 3.39623,55.2826 -14.02794,62.50959 5.00675,75.2532 20.59393,13.78751 48.88062,56.43578 37.67115,85.98405 -26.42821,-14.03743 -33.97032,-28.21004 -47.59885,-43.82255 -1.03325,31.76783 -21.05351,51.53485 -30.94979,59.7214 -15.56337,-20.54533 -13.74412,-24.05327 -16.81145,-65.10265 -18.07576,12.85203 -25.45229,51.97948 -48.42341,52.19048 3.71677,-27.07691 -5.9966,-69.55418 54.19499,-90.05214 8.06203,-26.82171 19.72831,-48.67228 -3.10703,-59.66053 -38.90314,-18.72001 -60.55484,-101.24159 -2.99691,-125.15325 80.65209,-11.81561 74.97741,72.98626 53.01455,110.64199 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-x="-36.314228" + inkscape:transform-center-y="112.59206" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6291" + x="-0.29629119" + width="1.5925824" + y="-0.084915183" + height="1.1698304"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="4.7618216" + id="feGaussianBlur6293" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6297"> + <path + inkscape:transform-center-y="71.684732" + style="fill:#916f6f;stroke:none" + d="m 177.07449,218.02774 c -0.32352,25.86976 25.64421,21.90747 31.27102,29.95326 l -23.84908,26.30725 c -15.25096,9.62668 -32.77906,27.72603 -36.26129,42.48237 20.11731,0.36537 20.15604,-15.1422 50.74694,-24.63579 5.14779,-5.22591 -23.31645,30.00331 -23.47044,47.46419 14.06712,-6.07673 27.49185,-25.47586 36.98062,-36.89724 6.21631,19.56945 -10.45518,38.33496 -10.84745,57.79207 34.41504,-24.87203 46.52515,-95.3299 36.30939,-109.32464 -0.6152,-14.72676 -6.08678,-22.27254 -16.46309,-33.75869 14.85165,-4.32368 17.10786,22.86866 42.76861,12.78427 16.72365,-6.57221 22.72129,-30.89088 7.68869,-45.62388 -13.42418,-3.17169 -64.52175,0.0286 -94.87392,33.45684 z" + id="path6299" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccscc" + inkscape:transform-center-x="-44.07401" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6347" + x="-0.19364836" + width="1.3872967" + y="-0.100125" + height="1.20025"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="10.489286" + id="feGaussianBlur6349" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6353"> + <path + inkscape:transform-center-x="43.867398" + sodipodi:nodetypes="ccccccccccscc" + inkscape:connector-curvature="0" + id="path6355" + d="m 498.47981,259.80815 c -5.48688,35.83746 -40.47669,24.40325 -50.10095,34.23532 l 26.93531,41.83866 c 18.87522,16.80661 38.95497,45.84846 40.38405,67.0469 -27.89468,-4.1095 -24.39101,-25.55658 -64.50326,-45.69795 -5.91775,-8.4053 25.35117,46.82608 21.5588,70.99994 -18.05299,-11.6275 -32.16194,-41.52495 -42.65965,-59.49084 -13.08256,25.62755 5.66014,55.39384 1.73928,82.382 -41.87131,-42.27823 -42.45077,-142.45952 -25.11797,-159.46301 4.22859,-20.21769 13.52357,-29.39411 30.5029,-42.8928 -19.53964,-9.38396 -16.36375,-10.40911 -54.95876,-12.19881 -41.49683,-1.92426 -65.58727,-62.00497 -7.26226,-44.77396 19.2856,-1.30535 89.19054,14.83988 123.48251,68.01455 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-y="122.37785" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6634" + x="-0.31150677" + width="1.6230135" + y="-0.083742891" + height="1.1674858"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="10.019239" + id="feGaussianBlur6636" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6640"> + <path + sodipodi:nodetypes="sssssss" + inkscape:connector-curvature="0" + id="path6642" + d="m 312.33854,143.46544 c 35.00536,-0.46364 50.59102,14.61086 56.68408,84.06624 1.9562,22.29888 33.0984,40.30728 33.62662,83.71437 0.39224,32.23312 -42.94989,132.23608 -78.73433,126.33234 -44.35854,-7.31829 -97.6494,-90.88619 -96.26373,-122.77569 2.61462,-60.17243 39.41132,-52.26105 41.05972,-92.26618 2.23849,-54.32594 8.09959,-78.60053 43.62764,-79.07109 z" + style="fill:#483737;stroke:none" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6698" + x="-0.1190795" + width="1.238159" + y="-0.14806557" + height="1.2961311"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="6.246737" + id="feGaussianBlur6700" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6704"> + <path + inkscape:transform-center-x="43.867398" + sodipodi:nodetypes="ccccccccccscc" + inkscape:connector-curvature="0" + id="path6706" + d="m 498.47981,259.80815 c -5.48688,35.83746 -40.47669,24.40325 -50.10095,34.23532 l 26.93531,41.83866 c 18.87522,16.80661 38.95497,45.84846 40.38405,67.0469 -27.89468,-4.1095 -24.39101,-25.55658 -64.50326,-45.69795 -5.91775,-8.4053 25.35117,46.82608 21.5588,70.99994 -18.05299,-11.6275 -32.16194,-41.52495 -42.65965,-59.49084 -13.08256,25.62755 5.66014,55.39384 1.73928,82.382 -41.87131,-42.27823 -42.45077,-142.45952 -25.11797,-159.46301 4.22859,-20.21769 13.52357,-29.39411 30.5029,-42.8928 -19.53964,-9.38396 -16.36375,-10.40911 -54.95876,-12.19881 -41.49683,-1.92426 -65.58727,-62.00497 -7.26226,-44.77396 19.2856,-1.30535 89.19054,14.83988 123.48251,68.01455 z" + style="fill:#6c5353;stroke:none" + inkscape:transform-center-y="122.37785" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6754" + x="-0.19896863" + width="1.3979373" + y="-0.098759607" + height="1.1975192"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="4.5004805" + id="feGaussianBlur6756" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6760"> + <path + inkscape:transform-center-y="76.946473" + inkscape:transform-center-x="24.817485" + style="fill:#6c5353;stroke:none" + d="m 346.35262,443.49387 c -2.32101,37.78065 9.58683,42.71964 -3.42166,51.42874 -14.07408,9.42253 -33.40547,38.56875 -25.74482,58.76232 18.06129,-9.59331 23.21564,-19.279 32.52951,-29.94875 0.70613,21.71043 14.38816,35.2194 21.15137,40.81417 10.63616,-14.04087 9.39286,-16.43823 11.48911,-44.49176 12.35314,8.78319 17.39433,35.52327 33.09301,35.66746 -2.54008,-18.5046 4.09813,-47.53397 -37.03737,-61.54247 -5.50966,-18.33022 -14.64481,-36.44086 2.12338,-40.77258 38.2432,-9.87932 65.0541,-95.77187 23.47668,-112.67377 -55.11839,-8.0749 -72.66883,77.02236 -57.65921,102.75664 z" + id="path6762" + inkscape:connector-curvature="0" + sodipodi:nodetypes="csccccccscc" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6820" + x="-0.23667124" + width="1.4733425" + y="-0.091522754" + height="1.1830455"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="7.0821177" + id="feGaussianBlur6822" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6826"> + <path + sodipodi:nodetypes="csccccccscc" + inkscape:connector-curvature="0" + id="path6828" + d="m 307.60111,434.55711 c 3.39623,55.2826 -14.02794,62.50959 5.00675,75.2532 20.59393,13.78751 48.88062,56.43578 37.67115,85.98405 -26.42821,-14.03743 -33.97032,-28.21004 -47.59885,-43.82255 -1.03325,31.76783 -21.05351,51.53485 -30.94979,59.7214 -15.56337,-20.54533 -13.74412,-24.05327 -16.81145,-65.10265 -18.07576,12.85203 -25.45229,51.97948 -48.42341,52.19048 3.71677,-27.07691 -5.9966,-69.55418 54.19499,-90.05214 8.06203,-26.82171 19.72831,-48.67228 -3.10703,-59.66053 -38.90314,-18.72001 -60.55484,-101.24159 -2.99691,-125.15325 80.65209,-11.81561 74.97741,72.98626 53.01455,110.64199 z" + style="fill:#6c5353;stroke:none" + inkscape:transform-center-x="-36.314228" + inkscape:transform-center-y="112.59206" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6880" + x="-0.094290725" + width="1.1885814" + y="-0.21997273" + height="1.4399455"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="9.6023039" + id="feGaussianBlur6882" /> + </filter> + <filter + inkscape:collect="always" + id="filter6954" + x="-0.30011322" + width="1.6002264" + y="-0.084606382" + height="1.1692128"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="9.4678567" + id="feGaussianBlur6956" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6960"> + <path + sodipodi:nodetypes="csccccccscc" + inkscape:connector-curvature="0" + id="path6962" + d="m 327.87904,434.55711 c -3.39623,55.2826 14.02794,62.50959 -5.00675,75.2532 -20.59393,13.78751 -48.88062,56.43578 -37.67115,85.98405 26.42821,-14.03743 33.97032,-28.21004 47.59885,-43.82255 1.03325,31.76783 21.05351,51.53485 30.94979,59.7214 15.56337,-20.54533 13.74412,-24.05327 16.81145,-65.10265 18.07576,12.85203 25.45229,51.97948 48.42341,52.19048 -3.71677,-27.07691 5.9966,-69.55418 -54.19499,-90.05214 -8.06203,-26.82171 -19.72831,-48.67228 3.10703,-59.66053 38.90314,-18.72001 60.55484,-101.24159 2.99691,-125.15325 -80.65209,-11.81561 -74.97741,72.98626 -53.01455,110.64199 z" + style="fill:#6c5353;stroke:none" + inkscape:transform-center-x="-36.314228" + inkscape:transform-center-y="112.59206" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter7018" + x="-0.11430906" + width="1.2286181" + y="-0.15616942" + height="1.3123388"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="4.2865899" + id="feGaussianBlur7020" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath7024"> + <path + inkscape:transform-center-y="71.684732" + style="fill:#483737;stroke:none" + d="m 450.85887,218.02774 c 0.32352,25.86976 -25.64421,21.90747 -31.27102,29.95326 l 23.84908,26.30725 c 15.25096,9.62668 32.77906,27.72603 36.26129,42.48237 -20.11731,0.36537 -20.15604,-15.1422 -50.74694,-24.63579 -5.14779,-5.22591 23.31645,30.00331 23.47044,47.46419 -14.06712,-6.07673 -27.49185,-25.47586 -36.98062,-36.89724 -6.21631,19.56945 10.45518,38.33496 10.84745,57.79207 -34.41504,-24.87203 -46.52515,-95.3299 -36.30939,-109.32464 0.6152,-14.72676 6.08678,-22.27254 16.46309,-33.75869 -14.85165,-4.32368 -17.10786,22.86866 -42.76861,12.78427 -16.72365,-6.57221 -22.72129,-30.89088 -7.68869,-45.62388 13.42418,-3.17169 64.52175,0.0286 94.87392,33.45684 z" + id="path7026" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccscc" + inkscape:transform-center-x="-44.07401" /> + </clipPath> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.7" + inkscape:cx="419.00653" + inkscape:cy="260.29223" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1280" + inkscape:window-height="752" + inkscape:window-x="1280" + inkscape:window-y="0" + inkscape:window-maximized="1" + fit-margin-top="0" + fit-margin-right="0" + fit-margin-bottom="0" + fit-margin-left="0" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-99.174953,22.230425)"> + <path + style="fill:#241c1c;stroke:none" + d="m 386.80597,262.61398 c -19.7031,-19.31533 -24.37292,-58.77028 -20.46365,-77.33402 -13.49148,3.58545 -48.31035,-18.13309 -55.64769,-43.59457 6.51839,-15.17217 12.78174,-32.95399 35.62628,-37.96884 -19.5774,-17.137658 -11.64336,-40.186292 -14.29607,-65.321101 32.77144,13.302772 54.60018,32.260285 63.95029,57.666225 23.63052,-5.79009 35.3603,0.501292 45.30542,8.604426 10.35098,-31.062653 36.41,-44.868258 64.3672,-56.588501 -14.0392,19.036165 14.20053,38.555831 -25.87776,76.490561 25.33441,14.60505 16.53294,24.52271 26.3371,35.32941 -23.71027,18.19776 -62.67774,34.63469 -77.04502,31.18496 -1.81878,6.06819 -11.05775,55.83729 -42.2561,71.53145 z" + id="path2987" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccc" /> + <path + inkscape:transform-center-x="-44.07401" + sodipodi:nodetypes="ccccccccccscc" + inkscape:connector-curvature="0" + id="path5629" + d="m 550.03382,195.79732 c 0.32352,25.86976 -25.64421,21.90747 -31.27102,29.95326 l 23.84908,26.30724 c 15.25096,9.62668 32.77906,27.72603 36.26129,42.48237 -20.11731,0.36537 -20.15604,-15.1422 -50.74694,-24.63579 -5.14779,-5.22591 23.31645,30.00331 23.47044,47.46419 -14.06712,-6.07673 -27.49185,-25.47586 -36.98062,-36.89724 -6.21631,19.56945 10.45518,38.33496 10.84745,57.79207 -34.41504,-24.87203 -46.52515,-95.3299 -36.30939,-109.32464 0.6152,-14.72676 6.08678,-22.27254 16.46309,-33.75869 -14.85165,-4.32368 -17.10786,22.86866 -42.76861,12.78427 -16.72365,-6.57221 -22.72129,-30.89088 -7.68869,-45.62388 13.42418,-3.17169 64.52175,0.0286 94.87392,33.45684 z" + style="fill:#483737;stroke:none" + inkscape:transform-center-y="71.684732" /> + <path + sodipodi:nodetypes="csccccccscc" + inkscape:connector-curvature="0" + id="path5631" + d="m 388.30248,421.26345 c 2.32101,37.78065 -9.58683,42.71964 3.42166,51.42874 14.07408,9.42252 33.40547,38.56875 25.74482,58.76232 -18.06129,-9.59332 -23.21564,-19.27901 -32.52951,-29.94875 -0.70613,21.71043 -14.38816,35.2194 -21.15137,40.81417 -10.63616,-14.04087 -9.39286,-16.43824 -11.48911,-44.49176 -12.35314,8.78319 -17.39433,35.52326 -33.09301,35.66746 2.54008,-18.50461 -4.09813,-47.53398 37.03737,-61.54248 5.50966,-18.33021 14.64481,-36.44086 -2.12338,-40.77257 -38.2432,-9.87932 -65.0541,-95.77187 -23.47668,-112.67377 55.11839,-8.0749 72.66883,77.02236 57.65921,102.75664 z" + style="fill:#483737;stroke:none" + inkscape:transform-center-x="24.817485" + inkscape:transform-center-y="76.946473" /> + <path + inkscape:transform-center-y="122.37785" + style="fill:#6c5353;stroke:none" + d="m 228.6285,237.57773 c 5.48688,35.83745 40.47669,24.40324 50.10095,34.23531 l -26.93531,41.83867 c -18.87522,16.80661 -38.95497,45.84846 -40.38405,67.0469 27.89468,-4.1095 24.39101,-25.55658 64.50326,-45.69795 5.91775,-8.4053 -25.35117,46.82608 -21.5588,70.99993 18.05299,-11.62749 32.16194,-41.52495 42.65965,-59.49083 13.08256,25.62755 -5.66014,55.39384 -1.73928,82.382 41.87131,-42.27823 42.45077,-142.45953 25.11797,-159.46301 -4.22859,-20.21769 -13.52357,-29.39411 -30.5029,-42.8928 19.53964,-9.38396 16.36375,-10.40911 54.95876,-12.19881 41.49683,-1.92426 65.58727,-62.00497 7.26226,-44.77396 -19.2856,-1.30535 -89.19054,14.83988 -123.48251,68.01455 z" + id="path4974" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccscc" + inkscape:transform-center-x="43.867398" /> + <path + inkscape:transform-center-y="112.59206" + inkscape:transform-center-x="-36.314228" + style="fill:#6c5353;stroke:none" + d="m 427.05399,412.32668 c -3.39623,55.2826 14.02794,62.50959 -5.00675,75.2532 -20.59393,13.78752 -48.88062,56.43579 -37.67115,85.98406 26.42821,-14.03744 33.97032,-28.21004 47.59885,-43.82255 1.03325,31.76782 21.05351,51.53484 30.94979,59.7214 15.56337,-20.54533 13.74412,-24.05328 16.81145,-65.10265 18.07576,12.85203 25.45229,51.97948 48.42341,52.19048 -3.71677,-27.07691 5.9966,-69.55418 -54.19499,-90.05214 -8.06203,-26.82171 -19.72831,-48.67229 3.10703,-59.66054 38.90314,-18.72 60.55484,-101.24159 2.99691,-125.15325 -80.65209,-11.81561 -74.97741,72.98627 -53.01455,110.64199 z" + id="path3866" + inkscape:connector-curvature="0" + sodipodi:nodetypes="csccccccscc" /> + <path + style="fill:#916f6f;stroke:none" + d="m 411.51349,121.23501 c 35.00536,-0.46364 50.59102,14.61087 56.68408,84.06625 1.9562,22.29888 33.0984,40.30727 33.62662,83.71437 0.39224,32.23311 -42.94989,132.23607 -78.73433,126.33234 -44.35854,-7.31829 -97.6494,-90.88619 -96.26373,-122.77569 2.61462,-60.17243 39.41132,-52.26105 41.05972,-92.26618 2.23849,-54.32594 8.09959,-78.60053 43.62764,-79.07109 z" + id="path3062" + inkscape:connector-curvature="0" + sodipodi:nodetypes="sssssss" /> + <path + style="fill:#916f6f;stroke:none;filter:url(#filter6954)" + d="m 361.42857,335.71429 c 8.03085,21.75676 33.72141,40.57024 21.42857,65.71428 5.13873,16.66667 -8.21449,33.33333 -25.71428,50 0.934,20.47619 -2.11014,40.95238 5.71428,61.42857 18.33705,13.69234 37.84192,27.96858 41.42857,34.28572 19.0484,22.22248 19.65355,38.29721 28.57143,57.14285 C 429.37254,579.52381 429.84398,554.7619 415.71429,530 406.5715,514.81425 390.76477,512.34963 377.14286,505.71429 l -8.57143,-52.85715 C 385.22164,439.96708 404.22815,431.78963 410,397.14286 c 5.78056,-67.16465 -25.66136,-55.23151 -48.57143,-61.42857 z" + id="path6900" + inkscape:connector-curvature="0" + transform="translate(99.174953,-22.230425)" + sodipodi:nodetypes="ccccccccccc" + clip-path="url(#clipPath6960)" /> + <path + style="fill:#ac9393;stroke:none;filter:url(#filter6634)" + d="m 320,147.14286 c 23.94352,95.71428 24.096,191.42857 10,287.14285 37.99404,-14.46259 57.41393,-57.03982 67.14286,-114.28571 1.07325,-34.83443 -15.21689,-59.25082 -32.85715,-82.85714 1.42282,-6.69545 0.95813,-22.8284 -1.42857,-48.57143 C 346.55337,162.65354 332.49713,150.22088 320,147.14286 z" + id="path6415" + inkscape:connector-curvature="0" + transform="translate(99.174953,-22.230425)" + sodipodi:nodetypes="cccccc" + clip-path="url(#clipPath6640)" /> + <g + id="g6884" + inkscape:transform-center-x="108.84717" + inkscape:transform-center-y="60.480783" + transform="matrix(0.89511889,-0.44582751,0.44582751,0.89511889,-101.25839,220.69013)"> + <path + inkscape:transform-center-y="43.400445" + inkscape:transform-center-x="144.89023" + sodipodi:nodetypes="cscsc" + inkscape:connector-curvature="0" + id="path2989" + d="m 421.86165,311.76589 c -104.29239,73.90985 -120.25384,22.91137 -152.91151,0.12509 -86.37001,-60.26306 -135.57254,13.78163 -140.15957,37.0268 103.69348,-16.77555 90.90366,24.39632 137.11949,52.84262 101.63942,62.55999 188.44669,-29.77099 155.95159,-89.99451 z" + style="fill:#ac9393;stroke:none" /> + <path + sodipodi:nodetypes="ccccc" + transform="translate(99.174953,-22.230425)" + inkscape:connector-curvature="0" + id="path6830" + d="m 320,341.42857 c -24.34413,24.01827 -24.98984,64.40127 -87.14286,57.14286 -59.77139,-60.95524 -142.862453,-86.25522 -157.142856,-60 C 125.35273,342.08507 164.6076,380.88751 211.42857,430 275.88321,445.99441 322.85642,396.04782 320,341.42857 z" + style="fill:#c8b7b7;stroke:none;filter:url(#filter6880)" /> + </g> + <path + style="fill:#916f6f;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7018)" + d="m 360,184.28572 8.57143,37.14285 c 25.19381,-21.15794 47.99903,-14.42778 67.14286,-5.71428 -1.00365,11.97118 3.18735,14.17857 -22.85714,34.28571 12.38095,-7.74252 24.7619,-1.06205 37.14285,-25.71429 -9.25456,-24.54363 -38.96974,-42.04089 -90,-39.99999 z" + id="path6964" + inkscape:connector-curvature="0" + transform="translate(99.174953,-22.230425)" + sodipodi:nodetypes="cccccc" + clip-path="url(#clipPath7024)" /> + </g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/source/images/creatures/werewolf_N_2.svg Wed Sep 04 01:23:43 2013 +0200 @@ -0,0 +1,573 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="640" + height="640" + id="svg2" + version="1.1" + inkscape:version="0.48.4 r9939" + sodipodi:docname="werewolf_N_2.svg"> + <defs + id="defs4"> + <linearGradient + id="linearGradient6583"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop6585" /> + <stop + style="stop-color:#c8c8c8;stop-opacity:1;" + offset="1" + id="stop6587" /> + </linearGradient> + <filter + inkscape:collect="always" + id="filter6285" + x="-0.18582313" + width="1.3716463" + y="-0.10235358" + height="1.2047072"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="11.04861" + id="feGaussianBlur6287" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6299"> + <path + inkscape:transform-center-y="-110.27648" + inkscape:transform-center-x="-97.563485" + sodipodi:nodetypes="cscsc" + inkscape:connector-curvature="0" + id="path6301" + d="m 541.34716,381.87976 c 124.1812,-54.23568 86.61571,-96.63832 83.80165,-138.75886 -7.44235,-111.39656 86.71078,-115.54275 110.32532,-106.98524 -71.98156,84.96137 -27.6021,95.88284 -27.0697,153.41047 1.17087,126.51666 -130.16522,154.79588 -167.05727,92.33363 z" + style="fill:#6c5353;stroke:none" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6361" + x="-0.1592533" + width="1.3185066" + y="-0.11271148" + height="1.225423"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="12.615103" + id="feGaussianBlur6363" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6367"> + <path + sodipodi:nodetypes="ccsc" + inkscape:connector-curvature="0" + id="path6369" + d="M 258.89467,157.56298 C 473.5888,128.77219 510.3187,310.23627 431.89961,453.10452 371.88946,526.86663 280.2259,400.46878 336.16267,299.53662 354.78336,265.93749 221.517,285.31048 258.89467,157.56298 z" + style="fill:#483737;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6461" + x="-0.12964776" + width="1.2592955" + y="-0.13443918" + height="1.2688784"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="11.422084" + id="feGaussianBlur6463" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6467"> + <path + sodipodi:nodetypes="cccccccccccc" + inkscape:connector-curvature="0" + id="path6469" + d="m 109.61621,322.08332 c -7.87896,-25.88041 18.10125,-78.93145 32.69897,-105.76334 -13.65697,0.0875 -25.17152,-17.17768 -36.00721,-39.94143 9.44362,-18.06571 18.30742,-36.55633 46.89664,-40.59118 -22.49435,-22.92741 -19.90024,-55.152573 -20.81313,-86.339861 39.09411,19.441798 64.18936,44.820011 73.32087,76.967861 29.62924,-4.91556 43.47889,3.92645 54.96219,14.83155 15.64844,-37.26698 49.01717,-51.821733 84.52724,-63.631911 -19.06279,22.118114 13.87129,48.788311 -39.01235,91.732081 29.81782,20.34876 18.05568,31.7329 29.11243,45.9527 -30.88866,20.18098 -67.11496,29.2327 -110.54341,23.26756 -19.37193,23.39569 -76.3293,70.69335 -115.14224,83.51597 z" + style="fill:#6c5353;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter4580" + x="-0.14069959" + width="1.2813992" + y="-0.12431357" + height="1.2486271"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="9.2555326" + id="feGaussianBlur4582" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4586"> + <path + sodipodi:nodetypes="ccsccccscscc" + inkscape:connector-curvature="0" + id="path4588" + d="m 555.9632,397.8861 c 33.81755,23.1763 34.45624,58.43116 62.07776,61.9232 1.99779,19.03076 19.68967,37.76964 -2.03593,52.76491 -26.55658,18.3297 -26.20842,71.79194 -25.59373,99.94838 -15.75276,-26.06303 -26.68818,-52.2288 -6.2956,-79.06251 -31.90063,23.48508 -30.17588,46.57358 -38.15675,69.77654 -0.15061,-22.88315 -16.84065,-40.95162 13.66115,-72.75776 -0.91206,-9.92619 -48.55462,32.03979 -53.31669,37.64665 -2.08253,2.45194 15.13993,-59.33405 70.28666,-84.93646 -13.65316,-24.45387 -21.22809,-48.03714 -45.00964,-39.28316 -40.51514,14.91361 -114.84762,-26.95873 -91.96924,-84.93513 47.63564,-66.1454 104.59082,-3.06078 116.35201,38.91534 z" + style="fill:#916f6f;stroke:#000000;stroke-width:0.78760201px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:transform-center-x="-69.387539" + inkscape:transform-center-y="83.521187" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter4002" + x="-0.11893633" + width="1.2378727" + y="-0.14828753" + height="1.2965751"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="9.3562367" + id="feGaussianBlur4004" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4008"> + <path + inkscape:transform-center-y="107.29473" + inkscape:transform-center-x="92.419155" + style="fill:#916f6f;stroke:#000000;stroke-width:0.86652184px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 353.13235,245.60026 c 43.43539,32.89478 0.86799,97.02828 -23.08334,116.60669 -39.21948,16.24673 -77.55978,14.6079 -115.65327,7.9481 l -44.34702,44.91661 c -7.64783,24.08833 -0.76507,50.89745 11.00785,78.62223 -18.63961,-19.92613 -36.22726,-41.11994 -34.19543,-85.95896 -2.19961,-14.72517 -41.03264,39.53152 -43.77915,58.57774 -2.80915,19.48042 -7.590733,-59.98528 24.6653,-73.15052 -28.734873,-1.49381 -36.955913,42.76066 -63.196803,50.18693 18.10591,-44.73245 43.643013,-94.57086 124.042363,-102.96821 37.09058,-9.58958 71.76977,-33.26392 113.54519,-15.48804 -0.20543,-93.32008 35.39388,-83.90131 50.99428,-79.29257 z" + id="path4010" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccsccccc" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter5575" + x="-0.18584715" + width="1.3716943" + y="-0.1023463" + height="1.2046926"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="10.417391" + id="feGaussianBlur5577" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath5605"> + <path + sodipodi:nodetypes="cccccccccccc" + inkscape:connector-curvature="0" + id="path5607" + d="m -167.28943,258.14055 c -26.65872,-21.20074 -37.4302,-69.04947 -35.0004,-92.3422 -16.10779,6.12501 -61.63336,-16.09654 -73.89346,-46.42273 6.06646,-19.461497 11.48656,-42.094699 38.89606,-51.169004 -26.22635,-18.542928 -19.42735,-47.856329 -25.8937,-78.379543 41.93709,12.149626 71.16011,32.63962 85.88453,62.640619 28.27557,-10.126532 43.48134,-3.899287 56.72711,4.7804 8.74343,-39.46206 38.977443,-59.740562 71.8084,-77.700896 -14.807574,25.166181 22.359005,45.527864 -22.007839,97.223414 32.97177,14.69819 23.43112,27.99942 36.849001,40.01669 -26.789291,25.37155 -72.537052,50.52908 -90.618452,48.12773 -1.45839,7.68307 -6.44802,69.97197 -42.75125,93.22553 z" + style="fill:#6c5353;stroke:none" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter5859" + x="-0.28151021" + width="1.5630204" + y="-0.0862125" + height="1.172425"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="8.2107143" + id="feGaussianBlur5861" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath5865"> + <path + sodipodi:nodetypes="sssssss" + inkscape:connector-curvature="0" + id="path5867" + d="m 312.33854,143.46544 c 35.00536,-0.46364 50.59102,14.61086 56.68408,84.06624 1.9562,22.29888 33.0984,40.30728 33.62662,83.71437 0.39224,32.23312 -42.94989,132.23608 -78.73433,126.33234 -44.35854,-7.31829 -97.6494,-90.88619 -96.26373,-122.77569 2.61462,-60.17243 39.41132,-52.26105 41.05972,-92.26618 2.23849,-54.32594 8.09959,-78.60053 43.62764,-79.07109 z" + style="fill:#483737;stroke:none" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter5935" + x="-0.20716654" + width="1.4143331" + y="-0.096857171" + height="1.1937143"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="6.9032674" + id="feGaussianBlur5937" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath5941"> + <path + inkscape:transform-center-y="71.684732" + style="fill:#6c5353;stroke:none" + d="m 451.12436,243.83546 c -6.70612,24.98755 -30.62537,14.12973 -38.22373,20.34751 l 15.81869,31.79023 c 12.06776,13.40275 24.02896,35.5782 23.37778,50.72584 -19.46213,-5.10541 -15.29278,-20.04203 -42.16142,-37.47784 -3.53718,-6.42637 14.30342,35.20324 9.71515,52.0512 -11.89129,-9.66477 -19.5504,-31.97817 -25.58519,-45.54526 -11.2917,17.14944 -0.33569,39.7337 -5.23612,58.56768 -26.3778,-33.27499 -18.92123,-104.37608 -5.29225,-115.07493 4.58696,-14.00772 11.90027,-19.78632 25.0033,-28.02709 -13.12194,-8.19027 -22.66983,17.37047 -44.63291,0.70338 -14.31381,-10.86229 -13.48981,-35.89608 4.97566,-45.99888 13.78121,0.58871 62.09476,17.52991 82.24104,57.93817 z" + id="path5943" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccscc" + inkscape:transform-center-x="-44.07401" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter5995" + x="-0.19454525" + width="1.3890905" + y="-0.0998869" + height="1.1997738"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="11.507416" + id="feGaussianBlur5997" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6001"> + <path + sodipodi:nodetypes="csccccccscc" + inkscape:connector-curvature="0" + id="path6003" + d="m 336.73617,441.69997 c -3.39623,55.2826 14.02794,62.50959 -5.00675,75.2532 -20.59393,13.78751 -48.88062,56.43578 -37.67115,85.98405 26.42821,-14.03744 33.97032,-28.21004 47.59885,-43.82255 1.03325,31.76782 21.05351,51.53484 30.94979,59.7214 15.56337,-20.54533 13.74412,-24.05328 16.81145,-65.10265 18.07576,12.85203 25.45229,51.97948 48.42341,52.19048 -3.71677,-27.07691 5.9966,-69.55418 -54.19499,-90.05214 -8.06203,-26.82171 -19.72831,-48.67229 3.10703,-59.66054 38.90314,-18.72 60.55484,-101.24159 2.99691,-125.15325 -80.65209,-11.81561 -74.97741,72.98627 -53.01455,110.64199 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-x="-36.314228" + inkscape:transform-center-y="112.59206" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6133" + x="-0.18519254" + width="1.3703851" + y="-0.10254591" + height="1.2050918"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="8.1182179" + id="feGaussianBlur6135" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6139"> + <path + inkscape:transform-center-x="43.867398" + sodipodi:nodetypes="ccccccccccscc" + inkscape:connector-curvature="0" + id="path6141" + d="m 145.07615,275.11326 c 9.87102,34.88541 43.18074,19.21729 53.94564,27.78544 l -21.56176,44.84501 c -16.65499,19.00914 -32.99415,50.30861 -31.79416,71.52126 27.17357,-7.5232 21.04788,-28.37336 58.36544,-53.31462 4.83433,-9.07183 -19.37377,49.59859 -12.62482,73.11897 16.47871,-13.76812 26.78712,-45.17922 34.98556,-64.30408 16.14756,23.81556 1.22467,55.66879 8.44872,81.96609 36.32911,-47.12591 24.53113,-146.61177 5.231,-161.34436 -6.69322,-19.54064 -17.05038,-27.49883 -35.56689,-38.79712 18.23107,-11.72538 22.57292,4.87786 53.03136,-18.89315 19.85041,-15.49207 27.74256,-31.52252 1.6768,-45.3281 -19.29916,1.08654 -86.67486,25.74184 -114.13689,82.74466 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-y="122.37785" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6231" + x="-0.13439477" + width="1.2687895" + y="-0.12968908" + height="1.2593782"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="8.3371552" + id="feGaussianBlur6233" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6237"> + <path + sodipodi:nodetypes="csccccccscc" + inkscape:connector-curvature="0" + id="path6239" + d="m 307.60111,434.55711 c 3.39623,55.2826 -14.02794,62.50959 5.00675,75.2532 20.59393,13.78751 48.88062,56.43578 37.67115,85.98405 -26.42821,-14.03743 -33.97032,-28.21004 -47.59885,-43.82255 -1.03325,31.76783 -21.05351,51.53485 -30.94979,59.7214 -15.56337,-20.54533 -13.74412,-24.05327 -16.81145,-65.10265 -18.07576,12.85203 -25.45229,51.97948 -48.42341,52.19048 3.71677,-27.07691 -5.9966,-69.55418 54.19499,-90.05214 8.06203,-26.82171 19.72831,-48.67228 -3.10703,-59.66053 -38.90314,-18.72001 -60.55484,-101.24159 -2.99691,-125.15325 80.65209,-11.81561 74.97741,72.98626 53.01455,110.64199 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-x="-36.314228" + inkscape:transform-center-y="112.59206" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6291" + x="-0.29629119" + width="1.5925824" + y="-0.084915183" + height="1.1698304"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="4.7618216" + id="feGaussianBlur6293" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6297"> + <path + inkscape:transform-center-y="71.684732" + style="fill:#916f6f;stroke:none" + d="m 177.07449,218.02774 c -0.32352,25.86976 25.64421,21.90747 31.27102,29.95326 l -23.84908,26.30725 c -15.25096,9.62668 -32.77906,27.72603 -36.26129,42.48237 20.11731,0.36537 20.15604,-15.1422 50.74694,-24.63579 5.14779,-5.22591 -23.31645,30.00331 -23.47044,47.46419 14.06712,-6.07673 27.49185,-25.47586 36.98062,-36.89724 6.21631,19.56945 -10.45518,38.33496 -10.84745,57.79207 34.41504,-24.87203 46.52515,-95.3299 36.30939,-109.32464 -0.6152,-14.72676 -6.08678,-22.27254 -16.46309,-33.75869 14.85165,-4.32368 17.10786,22.86866 42.76861,12.78427 16.72365,-6.57221 22.72129,-30.89088 7.68869,-45.62388 -13.42418,-3.17169 -64.52175,0.0286 -94.87392,33.45684 z" + id="path6299" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccscc" + inkscape:transform-center-x="-44.07401" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6347" + x="-0.19364836" + width="1.3872967" + y="-0.100125" + height="1.20025"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="10.489286" + id="feGaussianBlur6349" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6353"> + <path + inkscape:transform-center-x="43.867398" + sodipodi:nodetypes="ccccccccccscc" + inkscape:connector-curvature="0" + id="path6355" + d="m 498.47981,259.80815 c -5.48688,35.83746 -40.47669,24.40325 -50.10095,34.23532 l 26.93531,41.83866 c 18.87522,16.80661 38.95497,45.84846 40.38405,67.0469 -27.89468,-4.1095 -24.39101,-25.55658 -64.50326,-45.69795 -5.91775,-8.4053 25.35117,46.82608 21.5588,70.99994 -18.05299,-11.6275 -32.16194,-41.52495 -42.65965,-59.49084 -13.08256,25.62755 5.66014,55.39384 1.73928,82.382 -41.87131,-42.27823 -42.45077,-142.45952 -25.11797,-159.46301 4.22859,-20.21769 13.52357,-29.39411 30.5029,-42.8928 -19.53964,-9.38396 -16.36375,-10.40911 -54.95876,-12.19881 -41.49683,-1.92426 -65.58727,-62.00497 -7.26226,-44.77396 19.2856,-1.30535 89.19054,14.83988 123.48251,68.01455 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-y="122.37785" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6634" + x="-0.31150677" + width="1.6230135" + y="-0.083742891" + height="1.1674858"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="10.019239" + id="feGaussianBlur6636" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6640"> + <path + sodipodi:nodetypes="sssssss" + inkscape:connector-curvature="0" + id="path6642" + d="m 312.33854,143.46544 c 35.00536,-0.46364 50.59102,14.61086 56.68408,84.06624 1.9562,22.29888 33.0984,40.30728 33.62662,83.71437 0.39224,32.23312 -42.94989,132.23608 -78.73433,126.33234 -44.35854,-7.31829 -97.6494,-90.88619 -96.26373,-122.77569 2.61462,-60.17243 39.41132,-52.26105 41.05972,-92.26618 2.23849,-54.32594 8.09959,-78.60053 43.62764,-79.07109 z" + style="fill:#483737;stroke:none" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6698" + x="-0.1190795" + width="1.238159" + y="-0.14806557" + height="1.2961311"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="6.246737" + id="feGaussianBlur6700" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6704"> + <path + inkscape:transform-center-x="43.867398" + sodipodi:nodetypes="ccccccccccscc" + inkscape:connector-curvature="0" + id="path6706" + d="m 498.47981,259.80815 c -5.48688,35.83746 -40.47669,24.40325 -50.10095,34.23532 l 26.93531,41.83866 c 18.87522,16.80661 38.95497,45.84846 40.38405,67.0469 -27.89468,-4.1095 -24.39101,-25.55658 -64.50326,-45.69795 -5.91775,-8.4053 25.35117,46.82608 21.5588,70.99994 -18.05299,-11.6275 -32.16194,-41.52495 -42.65965,-59.49084 -13.08256,25.62755 5.66014,55.39384 1.73928,82.382 -41.87131,-42.27823 -42.45077,-142.45952 -25.11797,-159.46301 4.22859,-20.21769 13.52357,-29.39411 30.5029,-42.8928 -19.53964,-9.38396 -16.36375,-10.40911 -54.95876,-12.19881 -41.49683,-1.92426 -65.58727,-62.00497 -7.26226,-44.77396 19.2856,-1.30535 89.19054,14.83988 123.48251,68.01455 z" + style="fill:#6c5353;stroke:none" + inkscape:transform-center-y="122.37785" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6754" + x="-0.19896863" + width="1.3979373" + y="-0.098759607" + height="1.1975192"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="4.5004805" + id="feGaussianBlur6756" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6760"> + <path + inkscape:transform-center-y="76.946473" + inkscape:transform-center-x="24.817485" + style="fill:#6c5353;stroke:none" + d="m 346.35262,443.49387 c -2.32101,37.78065 9.58683,42.71964 -3.42166,51.42874 -14.07408,9.42253 -33.40547,38.56875 -25.74482,58.76232 18.06129,-9.59331 23.21564,-19.279 32.52951,-29.94875 0.70613,21.71043 14.38816,35.2194 21.15137,40.81417 10.63616,-14.04087 9.39286,-16.43823 11.48911,-44.49176 12.35314,8.78319 17.39433,35.52327 33.09301,35.66746 -2.54008,-18.5046 4.09813,-47.53397 -37.03737,-61.54247 -5.50966,-18.33022 -14.64481,-36.44086 2.12338,-40.77258 38.2432,-9.87932 65.0541,-95.77187 23.47668,-112.67377 -55.11839,-8.0749 -72.66883,77.02236 -57.65921,102.75664 z" + id="path6762" + inkscape:connector-curvature="0" + sodipodi:nodetypes="csccccccscc" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6820" + x="-0.23667124" + width="1.4733425" + y="-0.091522754" + height="1.1830455"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="7.0821177" + id="feGaussianBlur6822" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6826"> + <path + sodipodi:nodetypes="csccccccscc" + inkscape:connector-curvature="0" + id="path6828" + d="m 307.60111,434.55711 c 3.39623,55.2826 -14.02794,62.50959 5.00675,75.2532 20.59393,13.78751 48.88062,56.43578 37.67115,85.98405 -26.42821,-14.03743 -33.97032,-28.21004 -47.59885,-43.82255 -1.03325,31.76783 -21.05351,51.53485 -30.94979,59.7214 -15.56337,-20.54533 -13.74412,-24.05327 -16.81145,-65.10265 -18.07576,12.85203 -25.45229,51.97948 -48.42341,52.19048 3.71677,-27.07691 -5.9966,-69.55418 54.19499,-90.05214 8.06203,-26.82171 19.72831,-48.67228 -3.10703,-59.66053 -38.90314,-18.72001 -60.55484,-101.24159 -2.99691,-125.15325 80.65209,-11.81561 74.97741,72.98626 53.01455,110.64199 z" + style="fill:#6c5353;stroke:none" + inkscape:transform-center-x="-36.314228" + inkscape:transform-center-y="112.59206" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6880" + x="-0.094290725" + width="1.1885814" + y="-0.21997273" + height="1.4399455"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="9.6023039" + id="feGaussianBlur6882" /> + </filter> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.7" + inkscape:cx="419.00653" + inkscape:cy="260.29223" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1280" + inkscape:window-height="752" + inkscape:window-x="1280" + inkscape:window-y="0" + inkscape:window-maximized="1" + fit-margin-top="0" + fit-margin-right="0" + fit-margin-bottom="0" + fit-margin-left="0" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-99.174953,22.230425)"> + <path + style="fill:#241c1c;stroke:none" + d="m 418.72038,263.657 c -24.10657,-13.42264 -39.0357,-50.2414 -40.17052,-69.17833 -12.06458,7.02291 -51.3847,-4.72345 -65.18901,-27.34125 2.27774,-16.3553 3.61995,-35.16012 24.32748,-46.033 -23.40992,-11.35559 -21.84807,-35.681482 -31.04793,-59.222044 35.12174,4.170698 61.18385,16.686581 76.91473,38.718964 21.26073,-11.828253 34.23601,-8.859863 45.96879,-3.672543 1.77533,-32.693725 23.2603,-52.894306 47.127,-71.585199 -8.51026,22.069213 23.88353,33.433277 -4.74675,80.609752 28.29313,7.3918 22.42504,19.28261 34.73623,27.11465 -18.05914,23.81602 -51.2985,49.96524 -66.06668,50.43442 -0.15072,6.3331 4.08928,56.77459 -21.85334,80.15458 z" + id="path2987" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccc" /> + <path + inkscape:transform-center-x="-44.07401" + sodipodi:nodetypes="ccccccccccscc" + inkscape:connector-curvature="0" + id="path5629" + d="m 276.24944,195.79732 c -0.32352,25.86976 25.64421,21.90747 31.27102,29.95326 l -23.84908,26.30724 c -15.25096,9.62668 -32.77906,27.72603 -36.26129,42.48237 20.11731,0.36537 20.15604,-15.1422 50.74694,-24.63579 5.14779,-5.22591 -23.31645,30.00331 -23.47044,47.46419 14.06712,-6.07673 27.49185,-25.47586 36.98062,-36.89724 6.21631,19.56945 -10.45518,38.33496 -10.84745,57.79207 34.41504,-24.87203 46.52515,-95.3299 36.30939,-109.32464 -0.6152,-14.72676 -6.08678,-22.27254 -16.46309,-33.75869 14.85165,-4.32368 17.10786,22.86866 42.76861,12.78427 16.72365,-6.57221 22.72129,-30.89088 7.68869,-45.62388 -13.42418,-3.17169 -64.52175,0.0286 -94.87392,33.45684 z" + style="fill:#6c5353;stroke:none" + inkscape:transform-center-y="71.684732" /> + <path + inkscape:transform-center-y="122.37785" + style="fill:#483737;stroke:none" + d="m 597.65476,237.57773 c -5.48688,35.83745 -40.47669,24.40324 -50.10095,34.23531 l 26.93531,41.83867 c 18.87522,16.80661 38.95497,45.84846 40.38405,67.0469 -27.89468,-4.1095 -24.39101,-25.55658 -64.50326,-45.69795 -5.91775,-8.4053 25.35117,46.82608 21.5588,70.99993 -18.05299,-11.62749 -32.16194,-41.52495 -42.65965,-59.49083 -13.08256,25.62755 5.66014,55.39384 1.73928,82.382 -41.87131,-42.27823 -42.45077,-142.45953 -25.11797,-159.46301 4.22859,-20.21769 13.52357,-29.39411 30.5029,-42.8928 -19.53964,-9.38396 -16.36375,-10.40911 -54.95876,-12.19881 -41.49683,-1.92426 -65.58727,-62.00497 -7.26226,-44.77396 19.2856,-1.30535 89.19054,14.83988 123.48251,68.01455 z" + id="path4974" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccscc" + inkscape:transform-center-x="43.867398" /> + <path + sodipodi:nodetypes="csccccccscc" + inkscape:connector-curvature="0" + id="path5631" + d="m 445.52757,421.26345 c -2.32101,37.78065 9.58683,42.71964 -3.42166,51.42874 -14.07408,9.42252 -33.40547,38.56875 -25.74482,58.76232 18.06129,-9.59332 23.21564,-19.27901 32.52951,-29.94875 0.70613,21.71043 14.38816,35.2194 21.15137,40.81417 10.63616,-14.04087 9.39286,-16.43824 11.48911,-44.49176 12.35314,8.78319 17.39433,35.52326 33.09301,35.66746 -2.54008,-18.50461 4.09813,-47.53398 -37.03737,-61.54248 -5.50966,-18.33021 -14.64481,-36.44086 2.12338,-40.77257 38.2432,-9.87932 65.0541,-95.77187 23.47668,-112.67377 -55.11839,-8.0749 -72.66883,77.02236 -57.65921,102.75664 z" + style="fill:#483737;stroke:none" + inkscape:transform-center-x="24.817485" + inkscape:transform-center-y="76.946473" /> + <path + inkscape:transform-center-y="112.59206" + inkscape:transform-center-x="-36.314228" + style="fill:#6c5353;stroke:none" + d="m 406.77606,412.32668 c 3.39623,55.2826 -14.02794,62.50959 5.00675,75.2532 20.59393,13.78752 48.88062,56.43579 37.67115,85.98406 -26.42821,-14.03744 -33.97032,-28.21004 -47.59885,-43.82255 -1.03325,31.76782 -21.05351,51.53484 -30.94979,59.7214 -15.56337,-20.54533 -13.74412,-24.05328 -16.81145,-65.10265 -18.07576,12.85203 -25.45229,51.97948 -48.42341,52.19048 3.71677,-27.07691 -5.9966,-69.55418 54.19499,-90.05214 8.06203,-26.82171 19.72831,-48.67229 -3.10703,-59.66054 -38.90314,-18.72 -60.55484,-101.24159 -2.99691,-125.15325 80.65209,-11.81561 74.97741,72.98627 53.01455,110.64199 z" + id="path3866" + inkscape:connector-curvature="0" + sodipodi:nodetypes="csccccccscc" /> + <path + style="fill:#6c5353;stroke:none;filter:url(#filter6754)" + d="m 374.28571,334.28572 c 6.42289,14.62246 35.16085,33.57015 24.28572,58.57142 -4.92459,29.8897 -20.71165,41.40233 -28.57143,60 19.92634,-4.875 38.16774,-23.22951 54.28571,-58.57143 -4.7619,-40.95238 -26.19048,-68.57142 -50,-59.99999 z" + id="path6708" + inkscape:connector-curvature="0" + transform="translate(99.174953,-22.230425)" + sodipodi:nodetypes="ccccc" + clip-path="url(#clipPath6760)" /> + <path + style="fill:#916f6f;stroke:none" + d="m 411.51349,121.23501 c 35.00536,-0.46364 50.59102,14.61087 56.68408,84.06625 1.9562,22.29888 33.0984,40.30727 33.62662,83.71437 0.39224,32.23311 -42.94989,132.23607 -78.73433,126.33234 -44.35854,-7.31829 -97.6494,-90.88619 -96.26373,-122.77569 2.61462,-60.17243 39.41132,-52.26105 41.05972,-92.26618 2.23849,-54.32594 8.09959,-78.60053 43.62764,-79.07109 z" + id="path3062" + inkscape:connector-curvature="0" + sodipodi:nodetypes="sssssss" /> + <path + style="fill:#916f6f;stroke:none;filter:url(#filter6820)" + d="m 278.57142,408.57143 c 5.34885,40.03877 2.25602,73.25908 1e-5,94.28571 28.99668,25.09634 65.08204,58.78218 71.42857,91.42857 2.93167,-29.61159 -10.56717,-60.86624 -45.71429,-94.28571 0.46285,-25.70182 7.00452,-49.3047 -2.85714,-78.57143 z" + id="path6770" + inkscape:connector-curvature="0" + transform="translate(99.174953,-22.230425)" + sodipodi:nodetypes="cccccc" + clip-path="url(#clipPath6826)" /> + <path + style="fill:#ac9393;stroke:none" + d="m 421.86165,311.76589 c -104.29239,73.90985 -120.25384,22.91137 -152.91151,0.12509 -86.37001,-60.26306 -135.57254,13.78163 -140.15957,37.0268 103.69348,-16.77555 90.90366,24.39632 137.11949,52.84262 101.63942,62.55999 188.44669,-29.77099 155.95159,-89.99451 z" + id="path2989" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cscsc" + inkscape:transform-center-x="144.89023" + inkscape:transform-center-y="43.400445" /> + <path + style="fill:#ac9393;stroke:none;filter:url(#filter6634)" + d="m 320,147.14286 c 23.94352,95.71428 24.096,191.42857 10,287.14285 37.99404,-14.46259 57.41393,-57.03982 67.14286,-114.28571 1.07325,-34.83443 -15.21689,-59.25082 -32.85715,-82.85714 1.42282,-6.69545 0.95813,-22.8284 -1.42857,-48.57143 C 346.55337,162.65354 332.49713,150.22088 320,147.14286 z" + id="path6415" + inkscape:connector-curvature="0" + transform="translate(99.174953,-22.230425)" + sodipodi:nodetypes="cccccc" + clip-path="url(#clipPath6640)" /> + <path + style="fill:#916f6f;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6698)" + d="m 371.42857,195.71429 c -3.65616,25.73857 47.27437,30.8843 87.14286,48.57142 16.71396,27.64607 -2.15405,34.95959 -10,48.57143 18.3204,-7.87007 44.10485,-8.2761 48.57143,-30 -27.88793,-56.6769 -115.16632,-81.81993 -125.71429,-67.14285 z" + id="path6644" + inkscape:connector-curvature="0" + transform="translate(99.174953,-22.230425)" + sodipodi:nodetypes="ccccc" + clip-path="url(#clipPath6704)" /> + <path + style="fill:#c8b7b7;stroke:none;filter:url(#filter6880)" + d="m 320,341.42857 c -24.34413,24.01827 -24.98984,64.40127 -87.14286,57.14286 -59.77139,-60.95524 -142.862453,-86.25522 -157.142856,-60 C 125.35273,342.08507 164.6076,380.88751 211.42857,430 275.88321,445.99441 322.85642,396.04782 320,341.42857 z" + id="path6830" + inkscape:connector-curvature="0" + transform="translate(99.174953,-22.230425)" + sodipodi:nodetypes="ccccc" /> + </g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/source/images/creatures/werewolf_S_1.svg Wed Sep 04 01:23:43 2013 +0200 @@ -0,0 +1,569 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="640" + height="640" + id="svg2" + version="1.1" + inkscape:version="0.48.4 r9939" + sodipodi:docname="werewolf_S_1.svg"> + <defs + id="defs4"> + <linearGradient + id="linearGradient6583"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop6585" /> + <stop + style="stop-color:#c8c8c8;stop-opacity:1;" + offset="1" + id="stop6587" /> + </linearGradient> + <filter + inkscape:collect="always" + id="filter6285" + x="-0.18582313" + width="1.3716463" + y="-0.10235358" + height="1.2047072"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="11.04861" + id="feGaussianBlur6287" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6299"> + <path + inkscape:transform-center-y="-110.27648" + inkscape:transform-center-x="-97.563485" + sodipodi:nodetypes="cscsc" + inkscape:connector-curvature="0" + id="path6301" + d="m 541.34716,381.87976 c 124.1812,-54.23568 86.61571,-96.63832 83.80165,-138.75886 -7.44235,-111.39656 86.71078,-115.54275 110.32532,-106.98524 -71.98156,84.96137 -27.6021,95.88284 -27.0697,153.41047 1.17087,126.51666 -130.16522,154.79588 -167.05727,92.33363 z" + style="fill:#6c5353;stroke:none" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6361" + x="-0.1592533" + width="1.3185066" + y="-0.11271148" + height="1.225423"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="12.615103" + id="feGaussianBlur6363" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6367"> + <path + sodipodi:nodetypes="ccsc" + inkscape:connector-curvature="0" + id="path6369" + d="M 258.89467,157.56298 C 473.5888,128.77219 510.3187,310.23627 431.89961,453.10452 371.88946,526.86663 280.2259,400.46878 336.16267,299.53662 354.78336,265.93749 221.517,285.31048 258.89467,157.56298 z" + style="fill:#483737;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6461" + x="-0.12964776" + width="1.2592955" + y="-0.13443918" + height="1.2688784"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="11.422084" + id="feGaussianBlur6463" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6467"> + <path + sodipodi:nodetypes="cccccccccccc" + inkscape:connector-curvature="0" + id="path6469" + d="m 109.61621,322.08332 c -7.87896,-25.88041 18.10125,-78.93145 32.69897,-105.76334 -13.65697,0.0875 -25.17152,-17.17768 -36.00721,-39.94143 9.44362,-18.06571 18.30742,-36.55633 46.89664,-40.59118 -22.49435,-22.92741 -19.90024,-55.152573 -20.81313,-86.339861 39.09411,19.441798 64.18936,44.820011 73.32087,76.967861 29.62924,-4.91556 43.47889,3.92645 54.96219,14.83155 15.64844,-37.26698 49.01717,-51.821733 84.52724,-63.631911 -19.06279,22.118114 13.87129,48.788311 -39.01235,91.732081 29.81782,20.34876 18.05568,31.7329 29.11243,45.9527 -30.88866,20.18098 -67.11496,29.2327 -110.54341,23.26756 -19.37193,23.39569 -76.3293,70.69335 -115.14224,83.51597 z" + style="fill:#6c5353;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6499"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.89287219" + id="feGaussianBlur6501" /> + </filter> + <filter + inkscape:collect="always" + id="filter6523"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.42857862" + id="feGaussianBlur6525" /> + </filter> + <filter + inkscape:collect="always" + id="filter6555"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.89287219" + id="feGaussianBlur6557" /> + </filter> + <filter + inkscape:collect="always" + id="filter6579"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.42857862" + id="feGaussianBlur6581" /> + </filter> + <filter + inkscape:collect="always" + id="filter6619"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.42857862" + id="feGaussianBlur6621" /> + </filter> + <filter + inkscape:collect="always" + id="filter4580" + x="-0.14069959" + width="1.2813992" + y="-0.12431357" + height="1.2486271"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="9.2555326" + id="feGaussianBlur4582" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4586"> + <path + sodipodi:nodetypes="ccsccccscscc" + inkscape:connector-curvature="0" + id="path4588" + d="m 555.9632,397.8861 c 33.81755,23.1763 34.45624,58.43116 62.07776,61.9232 1.99779,19.03076 19.68967,37.76964 -2.03593,52.76491 -26.55658,18.3297 -26.20842,71.79194 -25.59373,99.94838 -15.75276,-26.06303 -26.68818,-52.2288 -6.2956,-79.06251 -31.90063,23.48508 -30.17588,46.57358 -38.15675,69.77654 -0.15061,-22.88315 -16.84065,-40.95162 13.66115,-72.75776 -0.91206,-9.92619 -48.55462,32.03979 -53.31669,37.64665 -2.08253,2.45194 15.13993,-59.33405 70.28666,-84.93646 -13.65316,-24.45387 -21.22809,-48.03714 -45.00964,-39.28316 -40.51514,14.91361 -114.84762,-26.95873 -91.96924,-84.93513 47.63564,-66.1454 104.59082,-3.06078 116.35201,38.91534 z" + style="fill:#916f6f;stroke:#000000;stroke-width:0.78760201px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:transform-center-x="-69.387539" + inkscape:transform-center-y="83.521187" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter4002" + x="-0.11893633" + width="1.2378727" + y="-0.14828753" + height="1.2965751"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="9.3562367" + id="feGaussianBlur4004" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4008"> + <path + inkscape:transform-center-y="107.29473" + inkscape:transform-center-x="92.419155" + style="fill:#916f6f;stroke:#000000;stroke-width:0.86652184px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 353.13235,245.60026 c 43.43539,32.89478 0.86799,97.02828 -23.08334,116.60669 -39.21948,16.24673 -77.55978,14.6079 -115.65327,7.9481 l -44.34702,44.91661 c -7.64783,24.08833 -0.76507,50.89745 11.00785,78.62223 -18.63961,-19.92613 -36.22726,-41.11994 -34.19543,-85.95896 -2.19961,-14.72517 -41.03264,39.53152 -43.77915,58.57774 -2.80915,19.48042 -7.590733,-59.98528 24.6653,-73.15052 -28.734873,-1.49381 -36.955913,42.76066 -63.196803,50.18693 18.10591,-44.73245 43.643013,-94.57086 124.042363,-102.96821 37.09058,-9.58958 71.76977,-33.26392 113.54519,-15.48804 -0.20543,-93.32008 35.39388,-83.90131 50.99428,-79.29257 z" + id="path4010" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccsccccc" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter5575" + x="-0.18584715" + width="1.3716943" + y="-0.1023463" + height="1.2046926"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="10.417391" + id="feGaussianBlur5577" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath5605"> + <path + sodipodi:nodetypes="cccccccccccc" + inkscape:connector-curvature="0" + id="path5607" + d="m -167.28943,258.14055 c -26.65872,-21.20074 -37.4302,-69.04947 -35.0004,-92.3422 -16.10779,6.12501 -61.63336,-16.09654 -73.89346,-46.42273 6.06646,-19.461497 11.48656,-42.094699 38.89606,-51.169004 -26.22635,-18.542928 -19.42735,-47.856329 -25.8937,-78.379543 41.93709,12.149626 71.16011,32.63962 85.88453,62.640619 28.27557,-10.126532 43.48134,-3.899287 56.72711,4.7804 8.74343,-39.46206 38.977443,-59.740562 71.8084,-77.700896 -14.807574,25.166181 22.359005,45.527864 -22.007839,97.223414 32.97177,14.69819 23.43112,27.99942 36.849001,40.01669 -26.789291,25.37155 -72.537052,50.52908 -90.618452,48.12773 -1.45839,7.68307 -6.44802,69.97197 -42.75125,93.22553 z" + style="fill:#6c5353;stroke:none" /> + </clipPath> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient6583" + id="radialGradient5654" + gradientUnits="userSpaceOnUse" + cx="255.71428" + cy="125.21932" + fx="255.71428" + fy="125.21932" + r="35.714287" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient6583" + id="radialGradient5656" + gradientUnits="userSpaceOnUse" + cx="255.71428" + cy="125.21932" + fx="255.71428" + fy="125.21932" + r="35.714287" /> + <filter + inkscape:collect="always" + id="filter5859" + x="-0.28151021" + width="1.5630204" + y="-0.0862125" + height="1.172425"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="8.2107143" + id="feGaussianBlur5861" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath5865"> + <path + sodipodi:nodetypes="sssssss" + inkscape:connector-curvature="0" + id="path5867" + d="m 312.33854,143.46544 c 35.00536,-0.46364 50.59102,14.61086 56.68408,84.06624 1.9562,22.29888 33.0984,40.30728 33.62662,83.71437 0.39224,32.23312 -42.94989,132.23608 -78.73433,126.33234 -44.35854,-7.31829 -97.6494,-90.88619 -96.26373,-122.77569 2.61462,-60.17243 39.41132,-52.26105 41.05972,-92.26618 2.23849,-54.32594 8.09959,-78.60053 43.62764,-79.07109 z" + style="fill:#483737;stroke:none" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter5935" + x="-0.20716654" + width="1.4143331" + y="-0.096857171" + height="1.1937143"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="6.9032674" + id="feGaussianBlur5937" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath5941"> + <path + inkscape:transform-center-y="71.684732" + style="fill:#6c5353;stroke:none" + d="m 451.12436,243.83546 c -6.70612,24.98755 -30.62537,14.12973 -38.22373,20.34751 l 15.81869,31.79023 c 12.06776,13.40275 24.02896,35.5782 23.37778,50.72584 -19.46213,-5.10541 -15.29278,-20.04203 -42.16142,-37.47784 -3.53718,-6.42637 14.30342,35.20324 9.71515,52.0512 -11.89129,-9.66477 -19.5504,-31.97817 -25.58519,-45.54526 -11.2917,17.14944 -0.33569,39.7337 -5.23612,58.56768 -26.3778,-33.27499 -18.92123,-104.37608 -5.29225,-115.07493 4.58696,-14.00772 11.90027,-19.78632 25.0033,-28.02709 -13.12194,-8.19027 -22.66983,17.37047 -44.63291,0.70338 -14.31381,-10.86229 -13.48981,-35.89608 4.97566,-45.99888 13.78121,0.58871 62.09476,17.52991 82.24104,57.93817 z" + id="path5943" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccscc" + inkscape:transform-center-x="-44.07401" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter5995" + x="-0.19454525" + width="1.3890905" + y="-0.0998869" + height="1.1997738"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="11.507416" + id="feGaussianBlur5997" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6001"> + <path + sodipodi:nodetypes="csccccccscc" + inkscape:connector-curvature="0" + id="path6003" + d="m 336.73617,441.69997 c -3.39623,55.2826 14.02794,62.50959 -5.00675,75.2532 -20.59393,13.78751 -48.88062,56.43578 -37.67115,85.98405 26.42821,-14.03744 33.97032,-28.21004 47.59885,-43.82255 1.03325,31.76782 21.05351,51.53484 30.94979,59.7214 15.56337,-20.54533 13.74412,-24.05328 16.81145,-65.10265 18.07576,12.85203 25.45229,51.97948 48.42341,52.19048 -3.71677,-27.07691 5.9966,-69.55418 -54.19499,-90.05214 -8.06203,-26.82171 -19.72831,-48.67229 3.10703,-59.66054 38.90314,-18.72 60.55484,-101.24159 2.99691,-125.15325 -80.65209,-11.81561 -74.97741,72.98627 -53.01455,110.64199 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-x="-36.314228" + inkscape:transform-center-y="112.59206" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6133" + x="-0.18519254" + width="1.3703851" + y="-0.10254591" + height="1.2050918"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="8.1182179" + id="feGaussianBlur6135" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6139"> + <path + inkscape:transform-center-x="43.867398" + sodipodi:nodetypes="ccccccccccscc" + inkscape:connector-curvature="0" + id="path6141" + d="m 145.07615,275.11326 c 9.87102,34.88541 43.18074,19.21729 53.94564,27.78544 l -21.56176,44.84501 c -16.65499,19.00914 -32.99415,50.30861 -31.79416,71.52126 27.17357,-7.5232 21.04788,-28.37336 58.36544,-53.31462 4.83433,-9.07183 -19.37377,49.59859 -12.62482,73.11897 16.47871,-13.76812 26.78712,-45.17922 34.98556,-64.30408 16.14756,23.81556 1.22467,55.66879 8.44872,81.96609 36.32911,-47.12591 24.53113,-146.61177 5.231,-161.34436 -6.69322,-19.54064 -17.05038,-27.49883 -35.56689,-38.79712 18.23107,-11.72538 22.57292,4.87786 53.03136,-18.89315 19.85041,-15.49207 27.74256,-31.52252 1.6768,-45.3281 -19.29916,1.08654 -86.67486,25.74184 -114.13689,82.74466 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-y="122.37785" /> + </clipPath> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.7" + inkscape:cx="419.00653" + inkscape:cy="260.29223" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1280" + inkscape:window-height="752" + inkscape:window-x="1280" + inkscape:window-y="0" + inkscape:window-maximized="1" + fit-margin-top="0" + fit-margin-right="0" + fit-margin-bottom="0" + fit-margin-left="0" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-99.174953,22.230425)"> + <path + style="fill:#241c1c;stroke:none" + d="m 454.52511,310.98215 c 56.44109,88.19138 84.24602,54.38445 116.04808,47.13136 84.10717,-19.18233 98.68396,52.16549 95.01597,71.22363 -73.56122,-44.63224 -76.5162,-9.44138 -120.35232,-2.0619 -96.40587,16.22916 -133.90626,-80.56857 -90.71173,-116.29309 z" + id="path2989" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cscsc" + inkscape:transform-center-x="-98.444289" + inkscape:transform-center-y="59.322624" /> + <path + sodipodi:nodetypes="csccccccscc" + inkscape:connector-curvature="0" + id="path5631" + d="m 397.15961,428.40631 c 2.32101,37.78065 -9.58683,42.71964 3.42166,51.42874 14.07408,9.42252 33.40547,38.56875 25.74482,58.76232 -18.06129,-9.59332 -23.21564,-19.27901 -32.52951,-29.94875 -0.70613,21.71043 -14.38816,35.2194 -21.15137,40.81417 -10.63616,-14.04087 -9.39286,-16.43824 -11.48911,-44.49176 -12.35314,8.78319 -17.39433,35.52326 -33.09301,35.66746 2.54008,-18.50461 -4.09813,-47.53398 37.03737,-61.54248 5.50966,-18.33021 14.64481,-36.44086 -2.12338,-40.77257 -38.2432,-9.87932 -65.0541,-95.77187 -23.47668,-112.67377 55.11839,-8.0749 72.66883,77.02236 57.65921,102.75664 z" + style="fill:#483737;stroke:none" + inkscape:transform-center-x="24.817485" + inkscape:transform-center-y="76.946473" /> + <g + id="g6151"> + <path + sodipodi:nodetypes="csccccccscc" + inkscape:connector-curvature="0" + id="path3866" + d="m 435.91112,419.46954 c -3.39623,55.2826 14.02794,62.50959 -5.00675,75.2532 -20.59393,13.78752 -48.88062,56.43579 -37.67115,85.98406 26.42821,-14.03744 33.97032,-28.21004 47.59885,-43.82255 1.03325,31.76782 21.05351,51.53484 30.94979,59.7214 15.56337,-20.54533 13.74412,-24.05328 16.81145,-65.10265 18.07576,12.85203 25.45229,51.97948 48.42341,52.19048 -3.71677,-27.07691 5.9966,-69.55418 -54.19499,-90.05214 -8.06203,-26.82171 -19.72831,-48.67229 3.10703,-59.66054 38.90314,-18.72 60.55484,-101.24159 2.99691,-125.15325 -80.65209,-11.81561 -74.97741,72.98627 -53.01455,110.64199 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-x="-36.314228" + inkscape:transform-center-y="112.59206" /> + <path + clip-path="url(#clipPath6001)" + sodipodi:nodetypes="ccccccccccccc" + transform="translate(99.174953,-22.230425)" + inkscape:connector-curvature="0" + id="path5945" + d="M 371.42857,334.28571 390,401.42857 360,467.14286 c -2.46589,19.94794 15.32138,57.34835 -7.14286,55.71428 -50.01755,50.61014 -39.80812,54.0531 -60,74.28572 13.04192,-8.21842 51.42857,-33.33333 77.14286,-50 -11.31465,32.13473 -1.08976,45.05981 1.42857,62.85714 14.78718,-1.20244 16.04365,-38.48678 20,-68.57143 22.6151,5.02991 22.89568,38.39028 42.85714,57.14286 3.70286,-39.62909 -11.8047,-67.03337 -50,-80 L 371.42857,465.71429 C 390.23201,448.95812 410.73272,435.03073 418.57143,400 c 0.0422,-63.61121 -32.7706,-69.13627 -47.14286,-65.71429 z" + style="fill:#c8b7b7;stroke:none;filter:url(#filter5995)" /> + </g> + <path + style="fill:#483737;stroke:none" + d="m 411.51349,121.23501 c 35.00536,-0.46364 50.59102,14.61087 56.68408,84.06625 1.9562,22.29888 33.0984,40.30727 33.62662,83.71437 0.39224,32.23311 -42.94989,132.23607 -78.73433,126.33234 -44.35854,-7.31829 -97.6494,-90.88619 -96.26373,-122.77569 2.61462,-60.17243 39.41132,-52.26105 41.05972,-92.26618 2.23849,-54.32594 8.09959,-78.60053 43.62764,-79.07109 z" + id="path3062" + inkscape:connector-curvature="0" + sodipodi:nodetypes="sssssss" /> + <path + style="fill:#6c5353;stroke:none;filter:url(#filter5859)" + d="m 328.57143,202.85714 c -3.13753,69.08014 11.11493,148.351 -4.28572,228.57143 35.51618,-9.58112 55.46565,-53.15142 70,-107.14286 -0.20836,-64.77303 -36.94303,-95.92951 -65.71428,-121.42857 z" + id="path5677" + inkscape:connector-curvature="0" + transform="translate(99.174953,-22.230425)" + sodipodi:nodetypes="cccc" + clip-path="url(#clipPath5865)" /> + <g + id="g6147"> + <path + inkscape:transform-center-y="71.684732" + style="fill:#916f6f;stroke:none" + d="m 550.29931,221.60504 c -6.70612,24.98754 -30.62537,14.12973 -38.22373,20.3475 l 15.81869,31.79023 c 12.06776,13.40275 24.02896,35.5782 23.37778,50.72585 -19.46213,-5.10541 -15.29278,-20.04203 -42.16142,-37.47784 -3.53718,-6.42637 14.30342,35.20323 9.71515,52.05119 -11.89129,-9.66477 -19.5504,-31.97817 -25.58519,-45.54526 -11.2917,17.14944 -0.33569,39.7337 -5.23612,58.56768 -26.3778,-33.27498 -18.92123,-104.37608 -5.29225,-115.07493 4.58696,-14.00771 11.90027,-19.78632 25.0033,-28.02709 -13.12194,-8.19027 -22.66983,17.37047 -44.63291,0.70338 -14.31381,-10.86229 -13.48981,-35.89608 4.97566,-45.99888 13.78121,0.58872 62.09476,17.52991 82.24104,57.93817 z" + id="path5629" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccscc" + inkscape:transform-center-x="-44.07401" /> + <path + clip-path="url(#clipPath5941)" + sodipodi:nodetypes="ccccccccccc" + transform="translate(99.174953,-22.230425)" + inkscape:connector-curvature="0" + id="path5869" + d="m 388.57143,370 c -20.7332,-15.93346 -6.78228,-66.55106 -7.14286,-102.85714 22.5391,-20.87155 37.76799,-23.46759 52.85714,-25.71429 -4.63782,-17.57344 -22.08307,-30.02391 -45.71428,-40 18.50677,-10.64661 40.6205,14.77641 62.85714,41.42857 -8.54031,15.52286 -32.73089,13.9989 -48.57143,18.57144 l 54.28572,84.2857 -48.57143,-44.28571 10,60.00001 -22.85714,-54.28572 z" + style="fill:#c8b7b7;stroke:none;filter:url(#filter5935)" /> + </g> + <g + id="g6143"> + <path + inkscape:transform-center-x="43.867398" + sodipodi:nodetypes="ccccccccccscc" + inkscape:connector-curvature="0" + id="path4974" + d="m 244.2511,252.88284 c 9.87102,34.88541 43.18074,19.21729 53.94564,27.78543 l -21.56176,44.84502 c -16.65499,19.00914 -32.99415,50.30861 -31.79416,71.52125 27.17357,-7.5232 21.04788,-28.37335 58.36544,-53.31462 4.83433,-9.07183 -19.37377,49.59859 -12.62482,73.11898 16.47871,-13.76812 26.78712,-45.17922 34.98556,-64.30408 16.14756,23.81556 1.22467,55.66879 8.44872,81.96608 36.32911,-47.12591 24.53113,-146.61177 5.231,-161.34436 -6.69322,-19.54064 -17.05038,-27.49882 -35.56689,-38.79711 18.23107,-11.72538 22.57292,4.87786 53.03136,-18.89315 19.85041,-15.49207 27.74256,-31.52253 1.6768,-45.3281 -19.29916,1.08653 -86.67486,25.74184 -114.13689,82.74466 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-y="122.37785" /> + <path + clip-path="url(#clipPath6139)" + sodipodi:nodetypes="ccccccccc" + transform="translate(99.174953,-22.230425)" + inkscape:connector-curvature="0" + id="path6005" + d="m 195.71429,262.85714 c 2.43272,18.72678 14.86447,21.37409 21.42857,44.28572 -14.38745,45.26118 -40.20232,75.28579 -65.71429,105.71428 11.64489,-1.80585 42.72757,-20.55075 68.57143,-64.28571 -3.97769,31.85677 -16.8061,66.89842 -25.71429,84.28571 17.43225,-6.0695 28.80173,-54.57839 42.85714,-84.28572 7.50184,40.98353 4.07752,74.12958 -2.85714,104.28572 20.51868,-28.60304 26.13951,-69.97566 20,-121.42857 -14.06458,-58.3421 -37.31352,-56.98589 -58.57142,-68.57143 z" + style="fill:#c8b7b7;stroke:none;filter:url(#filter6133)" /> + </g> + <g + id="g5609" + transform="matrix(0.98553745,0.16945775,-0.16945775,0.98553745,499.23994,54.209469)" + inkscape:transform-center-x="-16.105005" + inkscape:transform-center-y="-16.042223"> + <path + sodipodi:nodetypes="cccccccccccc" + inkscape:connector-curvature="0" + id="path2987" + d="m -68.114474,235.91013 c -26.658728,-21.20074 -37.430206,-69.04947 -35.000406,-92.3422 -16.10779,6.12501 -61.63336,-16.09654 -73.89346,-46.422736 6.06646,-19.461496 11.48656,-42.094698 38.89606,-51.169003 -26.22635,-18.542928 -19.42735,-47.8563288 -25.8937,-78.379543 41.93709,12.149626 71.160116,32.63962046 85.884534,62.640619 28.27557,-10.126532 43.481335,-3.899287 56.727113,4.7804 8.743428,-39.4620598 38.977439,-59.740562 71.808396,-77.700896 -14.807574,25.166181 22.359005,45.5278639 -22.007839,97.223414 32.97177,14.69819 23.43112,27.999419 36.849001,40.016694 -26.789291,25.371541 -72.5370477,50.529081 -90.618452,48.127721 -1.458395,7.68308 -6.448019,69.97197 -42.751247,93.22553 z" + style="fill:#6c5353;stroke:none" /> + <path + transform="matrix(1.0547609,-0.04464984,0.06071111,1.4341756,-183.65066,-19.195621)" + d="m 124.28572,176.6479 a 23.571428,12.857142 0 1 1 -47.142861,0 23.571428,12.857142 0 1 1 47.142861,0 z" + sodipodi:ry="12.857142" + sodipodi:rx="23.571428" + sodipodi:cy="176.6479" + sodipodi:cx="100.71429" + id="path3076" + style="fill:#e9afaf;fill-opacity:1;stroke:none" + sodipodi:type="arc" /> + <path + transform="matrix(0.97783315,0.20938562,-0.20938562,0.97783315,-82.156405,-58.941801)" + d="m 97.142855,108.07647 a 8.5714283,8.5714283 0 1 1 -17.142857,0 8.5714283,8.5714283 0 1 1 17.142857,0 z" + sodipodi:ry="8.5714283" + sodipodi:rx="8.5714283" + sodipodi:cy="108.07647" + sodipodi:cx="88.571426" + id="path3078" + style="fill:#ffffff;fill-opacity:1;stroke:none" + sodipodi:type="arc" /> + <path + clip-path="url(#clipPath5605)" + sodipodi:nodetypes="cssccccccc" + transform="translate(99.174953,-22.230425)" + inkscape:connector-curvature="0" + id="path5017" + d="m -170,62.857143 c -2.68522,14.999999 -91.29047,-70.7216399 -78.07594,-63.57143157 4.22087,2.28386097 78.37784,28.87641057 62.45288,84.99999957 -8.19416,28.878299 14.44847,128.571429 18.4802,158.571429 30.72202,-11.02573 33.20209,-44.01742 30,-81.42857 38.194324,-2.18278 68.922982,-19.2969 95.714289,-44.28571 -9.094486,-14.76191 -16.483248,-29.523811 -51.428572,-44.285717 L -60,-1.4285714 C -82.786001,15.181297 -114.42823,24.041969 -108.57143,65.714286 -130.66112,60.728157 -155.05726,49.975902 -170,62.857143 z" + style="fill:#ac9393;stroke:none;filter:url(#filter5575)" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter6619)" + id="path3852" + sodipodi:cx="88.571426" + sodipodi:cy="108.07647" + sodipodi:rx="8.5714283" + sodipodi:ry="8.5714283" + d="m 97.142855,108.07647 a 8.5714283,8.5714283 0 1 1 -17.142857,0 8.5714283,8.5714283 0 1 1 17.142857,0 z" + inkscape:transform-center-x="160" + inkscape:transform-center-y="-8.5714283" + transform="matrix(0.99910522,-0.04229384,0.04229384,0.99910522,-147.68825,123.47704)" /> + <g + id="g5595"> + <path + sodipodi:type="arc" + style="fill:url(#radialGradient5654);fill-opacity:1;stroke:none" + id="path3068" + sodipodi:cx="255.71428" + sodipodi:cy="125.21932" + sodipodi:rx="35.714287" + sodipodi:ry="35.714287" + d="m 291.42857,125.21932 a 35.714287,35.714287 0 1 1 -71.42858,0 35.714287,35.714287 0 1 1 71.42858,0 z" + transform="matrix(0.97550147,-0.21999294,0.21999294,0.97550147,-384.10675,23.487137)" /> + <path + transform="matrix(0.97550147,-0.21999294,0.21999294,0.97550147,-303.06035,25.712006)" + d="m 291.42857,125.21932 a 35.714287,35.714287 0 1 1 -71.42858,0 35.714287,35.714287 0 1 1 71.42858,0 z" + sodipodi:ry="35.714287" + sodipodi:rx="35.714287" + sodipodi:cy="125.21932" + sodipodi:cx="255.71428" + id="path3070" + style="fill:url(#radialGradient5656);fill-opacity:1;stroke:none" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:#808000;fill-opacity:1;stroke:none;filter:url(#filter6555)" + id="path3072" + sodipodi:cx="102.14286" + sodipodi:cy="141.6479" + sodipodi:rx="17.857143" + sodipodi:ry="17.857143" + d="m 120,141.6479 a 17.857143,17.857143 0 1 1 -35.714283,0 17.857143,17.857143 0 1 1 35.714283,0 z" + transform="matrix(0.97550147,-0.21999294,0.21999294,0.97550147,-165.59075,-23.210053)" /> + <path + d="m 120,141.6479 a 17.857143,17.857143 0 1 1 -35.714283,0 17.857143,17.857143 0 1 1 35.714283,0 z" + sodipodi:ry="17.857143" + sodipodi:rx="17.857143" + sodipodi:cy="141.6479" + sodipodi:cx="102.14286" + id="path3074" + style="fill:#808000;fill-opacity:1;stroke:none;filter:url(#filter6499)" + sodipodi:type="arc" + transform="matrix(0.97550147,-0.21999294,0.21999294,0.97550147,-246.63714,-25.434927)" /> + <path + d="m 97.142855,108.07647 a 8.5714283,8.5714283 0 1 1 -17.142857,0 8.5714283,8.5714283 0 1 1 17.142857,0 z" + sodipodi:ry="8.5714283" + sodipodi:rx="8.5714283" + sodipodi:cy="108.07647" + sodipodi:cx="88.571426" + id="path3848" + style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter6579)" + sodipodi:type="arc" + transform="matrix(0.97550147,-0.21999294,0.21999294,0.97550147,-131.92375,-1.1667584)" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter6523)" + id="path3850" + sodipodi:cx="88.571426" + sodipodi:cy="108.07647" + sodipodi:rx="8.5714283" + sodipodi:ry="8.5714283" + d="m 97.142855,108.07647 a 8.5714283,8.5714283 0 1 1 -17.142857,0 8.5714283,8.5714283 0 1 1 17.142857,0 z" + inkscape:transform-center-x="160" + inkscape:transform-center-y="-8.5714283" + transform="matrix(0.97550147,-0.21999294,0.21999294,0.97550147,-212.65586,-1.9980482)" /> + </g> + </g> + </g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/source/images/creatures/werewolf_S_2.svg Wed Sep 04 01:23:43 2013 +0200 @@ -0,0 +1,638 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="640" + height="640" + id="svg2" + version="1.1" + inkscape:version="0.48.4 r9939" + sodipodi:docname="werewolf_S_1.svg"> + <defs + id="defs4"> + <linearGradient + id="linearGradient6583"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop6585" /> + <stop + style="stop-color:#c8c8c8;stop-opacity:1;" + offset="1" + id="stop6587" /> + </linearGradient> + <filter + inkscape:collect="always" + id="filter6285" + x="-0.18582313" + width="1.3716463" + y="-0.10235358" + height="1.2047072"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="11.04861" + id="feGaussianBlur6287" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6299"> + <path + inkscape:transform-center-y="-110.27648" + inkscape:transform-center-x="-97.563485" + sodipodi:nodetypes="cscsc" + inkscape:connector-curvature="0" + id="path6301" + d="m 541.34716,381.87976 c 124.1812,-54.23568 86.61571,-96.63832 83.80165,-138.75886 -7.44235,-111.39656 86.71078,-115.54275 110.32532,-106.98524 -71.98156,84.96137 -27.6021,95.88284 -27.0697,153.41047 1.17087,126.51666 -130.16522,154.79588 -167.05727,92.33363 z" + style="fill:#6c5353;stroke:none" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6361" + x="-0.1592533" + width="1.3185066" + y="-0.11271148" + height="1.225423"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="12.615103" + id="feGaussianBlur6363" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6367"> + <path + sodipodi:nodetypes="ccsc" + inkscape:connector-curvature="0" + id="path6369" + d="M 258.89467,157.56298 C 473.5888,128.77219 510.3187,310.23627 431.89961,453.10452 371.88946,526.86663 280.2259,400.46878 336.16267,299.53662 354.78336,265.93749 221.517,285.31048 258.89467,157.56298 z" + style="fill:#483737;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6461" + x="-0.12964776" + width="1.2592955" + y="-0.13443918" + height="1.2688784"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="11.422084" + id="feGaussianBlur6463" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6467"> + <path + sodipodi:nodetypes="cccccccccccc" + inkscape:connector-curvature="0" + id="path6469" + d="m 109.61621,322.08332 c -7.87896,-25.88041 18.10125,-78.93145 32.69897,-105.76334 -13.65697,0.0875 -25.17152,-17.17768 -36.00721,-39.94143 9.44362,-18.06571 18.30742,-36.55633 46.89664,-40.59118 -22.49435,-22.92741 -19.90024,-55.152573 -20.81313,-86.339861 39.09411,19.441798 64.18936,44.820011 73.32087,76.967861 29.62924,-4.91556 43.47889,3.92645 54.96219,14.83155 15.64844,-37.26698 49.01717,-51.821733 84.52724,-63.631911 -19.06279,22.118114 13.87129,48.788311 -39.01235,91.732081 29.81782,20.34876 18.05568,31.7329 29.11243,45.9527 -30.88866,20.18098 -67.11496,29.2327 -110.54341,23.26756 -19.37193,23.39569 -76.3293,70.69335 -115.14224,83.51597 z" + style="fill:#6c5353;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6499"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.89287219" + id="feGaussianBlur6501" /> + </filter> + <filter + inkscape:collect="always" + id="filter6523"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.42857862" + id="feGaussianBlur6525" /> + </filter> + <filter + inkscape:collect="always" + id="filter6555"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.89287219" + id="feGaussianBlur6557" /> + </filter> + <filter + inkscape:collect="always" + id="filter6579"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.42857862" + id="feGaussianBlur6581" /> + </filter> + <filter + inkscape:collect="always" + id="filter6619"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.42857862" + id="feGaussianBlur6621" /> + </filter> + <filter + inkscape:collect="always" + id="filter4580" + x="-0.14069959" + width="1.2813992" + y="-0.12431357" + height="1.2486271"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="9.2555326" + id="feGaussianBlur4582" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4586"> + <path + sodipodi:nodetypes="ccsccccscscc" + inkscape:connector-curvature="0" + id="path4588" + d="m 555.9632,397.8861 c 33.81755,23.1763 34.45624,58.43116 62.07776,61.9232 1.99779,19.03076 19.68967,37.76964 -2.03593,52.76491 -26.55658,18.3297 -26.20842,71.79194 -25.59373,99.94838 -15.75276,-26.06303 -26.68818,-52.2288 -6.2956,-79.06251 -31.90063,23.48508 -30.17588,46.57358 -38.15675,69.77654 -0.15061,-22.88315 -16.84065,-40.95162 13.66115,-72.75776 -0.91206,-9.92619 -48.55462,32.03979 -53.31669,37.64665 -2.08253,2.45194 15.13993,-59.33405 70.28666,-84.93646 -13.65316,-24.45387 -21.22809,-48.03714 -45.00964,-39.28316 -40.51514,14.91361 -114.84762,-26.95873 -91.96924,-84.93513 47.63564,-66.1454 104.59082,-3.06078 116.35201,38.91534 z" + style="fill:#916f6f;stroke:#000000;stroke-width:0.78760201px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:transform-center-x="-69.387539" + inkscape:transform-center-y="83.521187" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter4002" + x="-0.11893633" + width="1.2378727" + y="-0.14828753" + height="1.2965751"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="9.3562367" + id="feGaussianBlur4004" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4008"> + <path + inkscape:transform-center-y="107.29473" + inkscape:transform-center-x="92.419155" + style="fill:#916f6f;stroke:#000000;stroke-width:0.86652184px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 353.13235,245.60026 c 43.43539,32.89478 0.86799,97.02828 -23.08334,116.60669 -39.21948,16.24673 -77.55978,14.6079 -115.65327,7.9481 l -44.34702,44.91661 c -7.64783,24.08833 -0.76507,50.89745 11.00785,78.62223 -18.63961,-19.92613 -36.22726,-41.11994 -34.19543,-85.95896 -2.19961,-14.72517 -41.03264,39.53152 -43.77915,58.57774 -2.80915,19.48042 -7.590733,-59.98528 24.6653,-73.15052 -28.734873,-1.49381 -36.955913,42.76066 -63.196803,50.18693 18.10591,-44.73245 43.643013,-94.57086 124.042363,-102.96821 37.09058,-9.58958 71.76977,-33.26392 113.54519,-15.48804 -0.20543,-93.32008 35.39388,-83.90131 50.99428,-79.29257 z" + id="path4010" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccsccccc" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter5575" + x="-0.18584715" + width="1.3716943" + y="-0.1023463" + height="1.2046926"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="10.417391" + id="feGaussianBlur5577" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath5605"> + <path + sodipodi:nodetypes="cccccccccccc" + inkscape:connector-curvature="0" + id="path5607" + d="m -167.28943,258.14055 c -26.65872,-21.20074 -37.4302,-69.04947 -35.0004,-92.3422 -16.10779,6.12501 -61.63336,-16.09654 -73.89346,-46.42273 6.06646,-19.461497 11.48656,-42.094699 38.89606,-51.169004 -26.22635,-18.542928 -19.42735,-47.856329 -25.8937,-78.379543 41.93709,12.149626 71.16011,32.63962 85.88453,62.640619 28.27557,-10.126532 43.48134,-3.899287 56.72711,4.7804 8.74343,-39.46206 38.977443,-59.740562 71.8084,-77.700896 -14.807574,25.166181 22.359005,45.527864 -22.007839,97.223414 32.97177,14.69819 23.43112,27.99942 36.849001,40.01669 -26.789291,25.37155 -72.537052,50.52908 -90.618452,48.12773 -1.45839,7.68307 -6.44802,69.97197 -42.75125,93.22553 z" + style="fill:#6c5353;stroke:none" /> + </clipPath> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient6583" + id="radialGradient5654" + gradientUnits="userSpaceOnUse" + cx="255.71428" + cy="125.21932" + fx="255.71428" + fy="125.21932" + r="35.714287" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient6583" + id="radialGradient5656" + gradientUnits="userSpaceOnUse" + cx="255.71428" + cy="125.21932" + fx="255.71428" + fy="125.21932" + r="35.714287" /> + <filter + inkscape:collect="always" + id="filter5859" + x="-0.28151021" + width="1.5630204" + y="-0.0862125" + height="1.172425"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="8.2107143" + id="feGaussianBlur5861" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath5865"> + <path + sodipodi:nodetypes="sssssss" + inkscape:connector-curvature="0" + id="path5867" + d="m 312.33854,143.46544 c 35.00536,-0.46364 50.59102,14.61086 56.68408,84.06624 1.9562,22.29888 33.0984,40.30728 33.62662,83.71437 0.39224,32.23312 -42.94989,132.23608 -78.73433,126.33234 -44.35854,-7.31829 -97.6494,-90.88619 -96.26373,-122.77569 2.61462,-60.17243 39.41132,-52.26105 41.05972,-92.26618 2.23849,-54.32594 8.09959,-78.60053 43.62764,-79.07109 z" + style="fill:#483737;stroke:none" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter5935" + x="-0.20716654" + width="1.4143331" + y="-0.096857171" + height="1.1937143"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="6.9032674" + id="feGaussianBlur5937" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath5941"> + <path + inkscape:transform-center-y="71.684732" + style="fill:#6c5353;stroke:none" + d="m 451.12436,243.83546 c -6.70612,24.98755 -30.62537,14.12973 -38.22373,20.34751 l 15.81869,31.79023 c 12.06776,13.40275 24.02896,35.5782 23.37778,50.72584 -19.46213,-5.10541 -15.29278,-20.04203 -42.16142,-37.47784 -3.53718,-6.42637 14.30342,35.20324 9.71515,52.0512 -11.89129,-9.66477 -19.5504,-31.97817 -25.58519,-45.54526 -11.2917,17.14944 -0.33569,39.7337 -5.23612,58.56768 -26.3778,-33.27499 -18.92123,-104.37608 -5.29225,-115.07493 4.58696,-14.00772 11.90027,-19.78632 25.0033,-28.02709 -13.12194,-8.19027 -22.66983,17.37047 -44.63291,0.70338 -14.31381,-10.86229 -13.48981,-35.89608 4.97566,-45.99888 13.78121,0.58871 62.09476,17.52991 82.24104,57.93817 z" + id="path5943" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccscc" + inkscape:transform-center-x="-44.07401" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter5995" + x="-0.19454525" + width="1.3890905" + y="-0.0998869" + height="1.1997738"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="11.507416" + id="feGaussianBlur5997" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6001"> + <path + sodipodi:nodetypes="csccccccscc" + inkscape:connector-curvature="0" + id="path6003" + d="m 336.73617,441.69997 c -3.39623,55.2826 14.02794,62.50959 -5.00675,75.2532 -20.59393,13.78751 -48.88062,56.43578 -37.67115,85.98405 26.42821,-14.03744 33.97032,-28.21004 47.59885,-43.82255 1.03325,31.76782 21.05351,51.53484 30.94979,59.7214 15.56337,-20.54533 13.74412,-24.05328 16.81145,-65.10265 18.07576,12.85203 25.45229,51.97948 48.42341,52.19048 -3.71677,-27.07691 5.9966,-69.55418 -54.19499,-90.05214 -8.06203,-26.82171 -19.72831,-48.67229 3.10703,-59.66054 38.90314,-18.72 60.55484,-101.24159 2.99691,-125.15325 -80.65209,-11.81561 -74.97741,72.98627 -53.01455,110.64199 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-x="-36.314228" + inkscape:transform-center-y="112.59206" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6133" + x="-0.18519254" + width="1.3703851" + y="-0.10254591" + height="1.2050918"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="8.1182179" + id="feGaussianBlur6135" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6139"> + <path + inkscape:transform-center-x="43.867398" + sodipodi:nodetypes="ccccccccccscc" + inkscape:connector-curvature="0" + id="path6141" + d="m 145.07615,275.11326 c 9.87102,34.88541 43.18074,19.21729 53.94564,27.78544 l -21.56176,44.84501 c -16.65499,19.00914 -32.99415,50.30861 -31.79416,71.52126 27.17357,-7.5232 21.04788,-28.37336 58.36544,-53.31462 4.83433,-9.07183 -19.37377,49.59859 -12.62482,73.11897 16.47871,-13.76812 26.78712,-45.17922 34.98556,-64.30408 16.14756,23.81556 1.22467,55.66879 8.44872,81.96609 36.32911,-47.12591 24.53113,-146.61177 5.231,-161.34436 -6.69322,-19.54064 -17.05038,-27.49883 -35.56689,-38.79712 18.23107,-11.72538 22.57292,4.87786 53.03136,-18.89315 19.85041,-15.49207 27.74256,-31.52252 1.6768,-45.3281 -19.29916,1.08654 -86.67486,25.74184 -114.13689,82.74466 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-y="122.37785" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6231" + x="-0.13439477" + width="1.2687895" + y="-0.12968908" + height="1.2593782"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="8.3371552" + id="feGaussianBlur6233" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6237"> + <path + sodipodi:nodetypes="csccccccscc" + inkscape:connector-curvature="0" + id="path6239" + d="m 307.60111,434.55711 c 3.39623,55.2826 -14.02794,62.50959 5.00675,75.2532 20.59393,13.78751 48.88062,56.43578 37.67115,85.98405 -26.42821,-14.03743 -33.97032,-28.21004 -47.59885,-43.82255 -1.03325,31.76783 -21.05351,51.53485 -30.94979,59.7214 -15.56337,-20.54533 -13.74412,-24.05327 -16.81145,-65.10265 -18.07576,12.85203 -25.45229,51.97948 -48.42341,52.19048 3.71677,-27.07691 -5.9966,-69.55418 54.19499,-90.05214 8.06203,-26.82171 19.72831,-48.67228 -3.10703,-59.66053 -38.90314,-18.72001 -60.55484,-101.24159 -2.99691,-125.15325 80.65209,-11.81561 74.97741,72.98626 53.01455,110.64199 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-x="-36.314228" + inkscape:transform-center-y="112.59206" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6291" + x="-0.29629119" + width="1.5925824" + y="-0.084915183" + height="1.1698304"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="4.7618216" + id="feGaussianBlur6293" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6297"> + <path + inkscape:transform-center-y="71.684732" + style="fill:#916f6f;stroke:none" + d="m 177.07449,218.02774 c -0.32352,25.86976 25.64421,21.90747 31.27102,29.95326 l -23.84908,26.30725 c -15.25096,9.62668 -32.77906,27.72603 -36.26129,42.48237 20.11731,0.36537 20.15604,-15.1422 50.74694,-24.63579 5.14779,-5.22591 -23.31645,30.00331 -23.47044,47.46419 14.06712,-6.07673 27.49185,-25.47586 36.98062,-36.89724 6.21631,19.56945 -10.45518,38.33496 -10.84745,57.79207 34.41504,-24.87203 46.52515,-95.3299 36.30939,-109.32464 -0.6152,-14.72676 -6.08678,-22.27254 -16.46309,-33.75869 14.85165,-4.32368 17.10786,22.86866 42.76861,12.78427 16.72365,-6.57221 22.72129,-30.89088 7.68869,-45.62388 -13.42418,-3.17169 -64.52175,0.0286 -94.87392,33.45684 z" + id="path6299" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccscc" + inkscape:transform-center-x="-44.07401" /> + </clipPath> + <filter + inkscape:collect="always" + id="filter6347" + x="-0.19364836" + width="1.3872967" + y="-0.100125" + height="1.20025"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="10.489286" + id="feGaussianBlur6349" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6353"> + <path + inkscape:transform-center-x="43.867398" + sodipodi:nodetypes="ccccccccccscc" + inkscape:connector-curvature="0" + id="path6355" + d="m 498.47981,259.80815 c -5.48688,35.83746 -40.47669,24.40325 -50.10095,34.23532 l 26.93531,41.83866 c 18.87522,16.80661 38.95497,45.84846 40.38405,67.0469 -27.89468,-4.1095 -24.39101,-25.55658 -64.50326,-45.69795 -5.91775,-8.4053 25.35117,46.82608 21.5588,70.99994 -18.05299,-11.6275 -32.16194,-41.52495 -42.65965,-59.49084 -13.08256,25.62755 5.66014,55.39384 1.73928,82.382 -41.87131,-42.27823 -42.45077,-142.45952 -25.11797,-159.46301 4.22859,-20.21769 13.52357,-29.39411 30.5029,-42.8928 -19.53964,-9.38396 -16.36375,-10.40911 -54.95876,-12.19881 -41.49683,-1.92426 -65.58727,-62.00497 -7.26226,-44.77396 19.2856,-1.30535 89.19054,14.83988 123.48251,68.01455 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-y="122.37785" /> + </clipPath> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.7" + inkscape:cx="419.00653" + inkscape:cy="260.29223" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1280" + inkscape:window-height="752" + inkscape:window-x="1280" + inkscape:window-y="0" + inkscape:window-maximized="1" + fit-margin-top="0" + fit-margin-right="0" + fit-margin-bottom="0" + fit-margin-left="0" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-99.174953,22.230425)"> + <path + style="fill:#241c1c;stroke:none" + d="m 454.46624,310.38984 c 85.4286,60.54148 98.50304,18.7673 125.25379,0.10247 70.74792,-49.36304 111.05099,11.28889 114.80834,30.32961 -84.93802,-13.74129 -74.46155,19.98366 -112.31813,43.28476 -83.25549,51.24452 -154.36158,-24.38619 -127.744,-73.71684 z" + id="path2989" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cscsc" + inkscape:transform-center-x="-118.68335" + inkscape:transform-center-y="35.550432" /> + <path + sodipodi:nodetypes="csccccccscc" + inkscape:connector-curvature="0" + id="path5631" + d="m 445.52757,421.26345 c -2.32101,37.78065 9.58683,42.71964 -3.42166,51.42874 -14.07408,9.42252 -33.40547,38.56875 -25.74482,58.76232 18.06129,-9.59332 23.21564,-19.27901 32.52951,-29.94875 0.70613,21.71043 14.38816,35.2194 21.15137,40.81417 10.63616,-14.04087 9.39286,-16.43824 11.48911,-44.49176 12.35314,8.78319 17.39433,35.52326 33.09301,35.66746 -2.54008,-18.50461 4.09813,-47.53398 -37.03737,-61.54248 -5.50966,-18.33021 -14.64481,-36.44086 2.12338,-40.77257 38.2432,-9.87932 65.0541,-95.77187 23.47668,-112.67377 -55.11839,-8.0749 -72.66883,77.02236 -57.65921,102.75664 z" + style="fill:#483737;stroke:none" + inkscape:transform-center-x="24.817485" + inkscape:transform-center-y="76.946473" /> + <path + inkscape:transform-center-y="112.59206" + inkscape:transform-center-x="-36.314228" + style="fill:#916f6f;stroke:none" + d="m 406.77606,412.32668 c 3.39623,55.2826 -14.02794,62.50959 5.00675,75.2532 20.59393,13.78752 48.88062,56.43579 37.67115,85.98406 -26.42821,-14.03744 -33.97032,-28.21004 -47.59885,-43.82255 -1.03325,31.76782 -21.05351,51.53484 -30.94979,59.7214 -15.56337,-20.54533 -13.74412,-24.05328 -16.81145,-65.10265 -18.07576,12.85203 -25.45229,51.97948 -48.42341,52.19048 3.71677,-27.07691 -5.9966,-69.55418 54.19499,-90.05214 8.06203,-26.82171 19.72831,-48.67229 -3.10703,-59.66054 -38.90314,-18.72 -60.55484,-101.24159 -2.99691,-125.15325 80.65209,-11.81561 74.97741,72.98627 53.01455,110.64199 z" + id="path3866" + inkscape:connector-curvature="0" + sodipodi:nodetypes="csccccccscc" /> + <path + style="fill:#483737;stroke:none" + d="m 411.51349,121.23501 c 35.00536,-0.46364 50.59102,14.61087 56.68408,84.06625 1.9562,22.29888 33.0984,40.30727 33.62662,83.71437 0.39224,32.23311 -42.94989,132.23607 -78.73433,126.33234 -44.35854,-7.31829 -97.6494,-90.88619 -96.26373,-122.77569 2.61462,-60.17243 39.41132,-52.26105 41.05972,-92.26618 2.23849,-54.32594 8.09959,-78.60053 43.62764,-79.07109 z" + id="path3062" + inkscape:connector-curvature="0" + sodipodi:nodetypes="sssssss" /> + <path + style="fill:#6c5353;stroke:none;filter:url(#filter5859)" + d="m 328.57143,202.85714 c -3.13753,69.08014 11.11493,148.351 -4.28572,228.57143 35.51618,-9.58112 55.46565,-53.15142 70,-107.14286 -0.20836,-64.77303 -36.94303,-95.92951 -65.71428,-121.42857 z" + id="path5677" + inkscape:connector-curvature="0" + transform="translate(99.174953,-22.230425)" + sodipodi:nodetypes="cccc" + clip-path="url(#clipPath5865)" /> + <g + id="g6301"> + <path + inkscape:transform-center-y="71.684732" + style="fill:#916f6f;stroke:none" + d="m 276.24944,195.79732 c -0.32352,25.86976 25.64421,21.90747 31.27102,29.95326 l -23.84908,26.30724 c -15.25096,9.62668 -32.77906,27.72603 -36.26129,42.48237 20.11731,0.36537 20.15604,-15.1422 50.74694,-24.63579 5.14779,-5.22591 -23.31645,30.00331 -23.47044,47.46419 14.06712,-6.07673 27.49185,-25.47586 36.98062,-36.89724 6.21631,19.56945 -10.45518,38.33496 -10.84745,57.79207 34.41504,-24.87203 46.52515,-95.3299 36.30939,-109.32464 -0.6152,-14.72676 -6.08678,-22.27254 -16.46309,-33.75869 14.85165,-4.32368 17.10786,22.86866 42.76861,12.78427 16.72365,-6.57221 22.72129,-30.89088 7.68869,-45.62388 -13.42418,-3.17169 -64.52175,0.0286 -94.87392,33.45684 z" + id="path5629" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccscc" + inkscape:transform-center-x="-44.07401" /> + <path + clip-path="url(#clipPath6297)" + sodipodi:nodetypes="cccc" + transform="translate(99.174953,-22.230425)" + inkscape:connector-curvature="0" + id="path6241" + d="m 222.85714,222.85714 c 11.92197,65.33754 -8.31661,93.15442 -17.14285,134.28572 12.38728,-12.16762 24.7189,-22.67451 38.57142,-78.57143 C 237.14285,243.97962 230,219.5473 222.85714,222.85714 z" + style="fill:#c8b7b7;stroke:none;filter:url(#filter6291)" /> + </g> + <g + id="g6357"> + <path + inkscape:transform-center-x="43.867398" + sodipodi:nodetypes="ccccccccccscc" + inkscape:connector-curvature="0" + id="path4974" + d="m 597.65476,237.57773 c -5.48688,35.83745 -40.47669,24.40324 -50.10095,34.23531 l 26.93531,41.83867 c 18.87522,16.80661 38.95497,45.84846 40.38405,67.0469 -27.89468,-4.1095 -24.39101,-25.55658 -64.50326,-45.69795 -5.91775,-8.4053 25.35117,46.82608 21.5588,70.99993 -18.05299,-11.62749 -32.16194,-41.52495 -42.65965,-59.49083 -13.08256,25.62755 5.66014,55.39384 1.73928,82.382 -41.87131,-42.27823 -42.45077,-142.45953 -25.11797,-159.46301 4.22859,-20.21769 13.52357,-29.39411 30.5029,-42.8928 -19.53964,-9.38396 -16.36375,-10.40911 -54.95876,-12.19881 -41.49683,-1.92426 -65.58727,-62.00497 -7.26226,-44.77396 19.2856,-1.30535 89.19054,14.83988 123.48251,68.01455 z" + style="fill:#916f6f;stroke:none" + inkscape:transform-center-y="122.37785" /> + <path + clip-path="url(#clipPath6353)" + sodipodi:nodetypes="cccccccccccc" + transform="translate(99.174953,-22.230425)" + inkscape:connector-curvature="0" + id="path6305" + d="m 384.28571,194.28571 c 34.01555,17.07192 72.80874,26.97738 94.28572,62.85715 -4.90308,15.14398 -24.46173,20.51758 -40,28.57143 -15.55336,10.16093 -16.52357,34.905 -21.42857,55.71428 0.40181,61.14563 6.13509,74.30798 10,104.28572 l 4.28571,-101.42858 40,85.71429 c 0.20874,-14.54665 -4.13954,-40.03014 -22.85714,-100 l 65.71428,70 C 514.26895,367.82073 473.7845,329.86037 450,294.28571 469.86148,289.24676 491.13817,287.03825 500,260 458.75656,203.35909 421.89902,203.73488 384.28571,194.28571 z" + style="fill:#c8b7b7;stroke:none;filter:url(#filter6347)" /> + </g> + <g + id="g5609" + transform="matrix(0.98661567,-0.16306292,0.16306292,0.98661567,460.87792,32.654564)" + inkscape:transform-center-x="-1.0921331" + inkscape:transform-center-y="-21.590878"> + <path + sodipodi:nodetypes="cccccccccccc" + inkscape:connector-curvature="0" + id="path2987" + d="m -68.114474,235.91013 c -26.658728,-21.20074 -37.430206,-69.04947 -35.000406,-92.3422 -16.10779,6.12501 -61.63336,-16.09654 -73.89346,-46.422736 6.06646,-19.461496 11.48656,-42.094698 38.89606,-51.169003 -26.22635,-18.542928 -19.42735,-47.8563288 -25.8937,-78.379543 41.93709,12.149626 71.160116,32.63962046 85.884534,62.640619 28.27557,-10.126532 43.481335,-3.899287 56.727113,4.7804 8.743428,-39.4620598 38.977439,-59.740562 71.808396,-77.700896 -14.807574,25.166181 22.359005,45.5278639 -22.007839,97.223414 32.97177,14.69819 23.43112,27.999419 36.849001,40.016694 -26.789291,25.371541 -72.5370477,50.529081 -90.618452,48.127721 -1.458395,7.68308 -6.448019,69.97197 -42.751247,93.22553 z" + style="fill:#6c5353;stroke:none" /> + <path + transform="matrix(1.0547609,-0.04464984,0.06071111,1.4341756,-183.65066,-19.195621)" + d="m 124.28572,176.6479 a 23.571428,12.857142 0 1 1 -47.142861,0 23.571428,12.857142 0 1 1 47.142861,0 z" + sodipodi:ry="12.857142" + sodipodi:rx="23.571428" + sodipodi:cy="176.6479" + sodipodi:cx="100.71429" + id="path3076" + style="fill:#e9afaf;fill-opacity:1;stroke:none" + sodipodi:type="arc" /> + <path + transform="matrix(0.97783315,0.20938562,-0.20938562,0.97783315,-82.156405,-58.941801)" + d="m 97.142855,108.07647 a 8.5714283,8.5714283 0 1 1 -17.142857,0 8.5714283,8.5714283 0 1 1 17.142857,0 z" + sodipodi:ry="8.5714283" + sodipodi:rx="8.5714283" + sodipodi:cy="108.07647" + sodipodi:cx="88.571426" + id="path3078" + style="fill:#ffffff;fill-opacity:1;stroke:none" + sodipodi:type="arc" /> + <path + clip-path="url(#clipPath5605)" + sodipodi:nodetypes="cssccccccc" + transform="translate(99.174953,-22.230425)" + inkscape:connector-curvature="0" + id="path5017" + d="m -170,62.857143 c -2.68522,14.999999 -91.29047,-70.7216399 -78.07594,-63.57143157 4.22087,2.28386097 78.37784,28.87641057 62.45288,84.99999957 -8.19416,28.878299 14.44847,128.571429 18.4802,158.571429 30.72202,-11.02573 33.20209,-44.01742 30,-81.42857 38.194324,-2.18278 68.922982,-19.2969 95.714289,-44.28571 -9.094486,-14.76191 -16.483248,-29.523811 -51.428572,-44.285717 L -60,-1.4285714 C -82.786001,15.181297 -114.42823,24.041969 -108.57143,65.714286 -130.66112,60.728157 -155.05726,49.975902 -170,62.857143 z" + style="fill:#ac9393;stroke:none;filter:url(#filter5575)" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter6619)" + id="path3852" + sodipodi:cx="88.571426" + sodipodi:cy="108.07647" + sodipodi:rx="8.5714283" + sodipodi:ry="8.5714283" + d="m 97.142855,108.07647 a 8.5714283,8.5714283 0 1 1 -17.142857,0 8.5714283,8.5714283 0 1 1 17.142857,0 z" + inkscape:transform-center-x="160" + inkscape:transform-center-y="-8.5714283" + transform="matrix(0.99910522,-0.04229384,0.04229384,0.99910522,-147.68825,123.47704)" /> + <g + id="g5595"> + <path + sodipodi:type="arc" + style="fill:url(#radialGradient5654);fill-opacity:1;stroke:none" + id="path3068" + sodipodi:cx="255.71428" + sodipodi:cy="125.21932" + sodipodi:rx="35.714287" + sodipodi:ry="35.714287" + d="m 291.42857,125.21932 a 35.714287,35.714287 0 1 1 -71.42858,0 35.714287,35.714287 0 1 1 71.42858,0 z" + transform="matrix(0.97550147,-0.21999294,0.21999294,0.97550147,-384.10675,23.487137)" /> + <path + transform="matrix(0.97550147,-0.21999294,0.21999294,0.97550147,-303.06035,25.712006)" + d="m 291.42857,125.21932 a 35.714287,35.714287 0 1 1 -71.42858,0 35.714287,35.714287 0 1 1 71.42858,0 z" + sodipodi:ry="35.714287" + sodipodi:rx="35.714287" + sodipodi:cy="125.21932" + sodipodi:cx="255.71428" + id="path3070" + style="fill:url(#radialGradient5656);fill-opacity:1;stroke:none" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="fill:#808000;fill-opacity:1;stroke:none;filter:url(#filter6555)" + id="path3072" + sodipodi:cx="102.14286" + sodipodi:cy="141.6479" + sodipodi:rx="17.857143" + sodipodi:ry="17.857143" + d="m 120,141.6479 a 17.857143,17.857143 0 1 1 -35.714283,0 17.857143,17.857143 0 1 1 35.714283,0 z" + transform="matrix(0.97550147,-0.21999294,0.21999294,0.97550147,-165.59075,-23.210053)" /> + <path + d="m 120,141.6479 a 17.857143,17.857143 0 1 1 -35.714283,0 17.857143,17.857143 0 1 1 35.714283,0 z" + sodipodi:ry="17.857143" + sodipodi:rx="17.857143" + sodipodi:cy="141.6479" + sodipodi:cx="102.14286" + id="path3074" + style="fill:#808000;fill-opacity:1;stroke:none;filter:url(#filter6499)" + sodipodi:type="arc" + transform="matrix(0.97550147,-0.21999294,0.21999294,0.97550147,-246.63714,-25.434927)" /> + <path + d="m 97.142855,108.07647 a 8.5714283,8.5714283 0 1 1 -17.142857,0 8.5714283,8.5714283 0 1 1 17.142857,0 z" + sodipodi:ry="8.5714283" + sodipodi:rx="8.5714283" + sodipodi:cy="108.07647" + sodipodi:cx="88.571426" + id="path3848" + style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter6579)" + sodipodi:type="arc" + transform="matrix(0.97550147,-0.21999294,0.21999294,0.97550147,-131.92375,-1.1667584)" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter6523)" + id="path3850" + sodipodi:cx="88.571426" + sodipodi:cy="108.07647" + sodipodi:rx="8.5714283" + sodipodi:ry="8.5714283" + d="m 97.142855,108.07647 a 8.5714283,8.5714283 0 1 1 -17.142857,0 8.5714283,8.5714283 0 1 1 17.142857,0 z" + inkscape:transform-center-x="160" + inkscape:transform-center-y="-8.5714283" + transform="matrix(0.97550147,-0.21999294,0.21999294,0.97550147,-212.65586,-1.9980482)" /> + </g> + </g> + <path + style="fill:#c8b7b7;stroke:none;filter:url(#filter6231)" + d="M 202.85715,600 C 215.09114,574.51602 265.04042,512.69167 270,515.71429 l 37.14285,-82.85714 c 10.58153,11.6524 -13.46435,60.90769 6.14584,78.74339 23.5941,21.45911 47.13905,54.2229 35.28274,81.2566 -7.65899,-27.23194 -21.40281,-49.90027 -44.28571,-65.71428 1.22653,26.19047 -2.4255,56.66666 -27.14286,82.85714 5.25385,-23.48944 17.59098,-45.79833 1.42857,-72.85714 C 249.18792,563.62245 211.0768,601.73888 202.85715,600 z" + id="path6185" + inkscape:connector-curvature="0" + transform="translate(99.174953,-22.230425)" + sodipodi:nodetypes="cccsccccc" + clip-path="url(#clipPath6237)" /> + </g> +</svg>
--- a/tools/area_editor.py Wed Sep 04 01:23:32 2013 +0200 +++ b/tools/area_editor.py Wed Sep 04 01:23:43 2013 +0200 @@ -23,11 +23,13 @@ from albow.root import RootWidget from albow.widget import Widget -from albow.controls import Button +from albow.controls import Button, Label, CheckBox from albow.dialogs import alert +from nagslang.options import parse_args from nagslang.constants import SCREEN -from nagslang.level import Level, POLY_COLORS +from nagslang.level import Level, POLY_COLORS, LINE_COLOR +from nagslang.enemies import Enemy # layout constants @@ -60,13 +62,10 @@ point = self.point_to_pymunk(self.round_point(pos)) self.polygons[poly_index].append(point) else: - add_pos = self.fix_angle(poly_index, pos) + add_pos = self.fix_poly_angle(poly_index, pos) self.polygons[poly_index].append(add_pos) - def fix_angle(self, index, pos): - # Last point - point1 = self.point_to_pygame(self.polygons[index][-1]) - pos = self.round_point(pos) + def _fix_angle(self, point1, pos): # We want the line (point1 to pos) to be an angle of # 0, 45, 90, 135, 180, 225, 270, 305 # However, we only need to consider half the circle @@ -87,6 +86,17 @@ min_dist = dist return self.point_to_pymunk(new_pos) + def fix_line_angle(self, start_pos, pos): + start_pos = self.round_point(start_pos) + pos = self.round_point(pos) + return self._fix_angle(start_pos, pos) + + def fix_poly_angle(self, index, pos): + # Last point + point1 = self.point_to_pygame(self.polygons[index][-1]) + pos = self.round_point(pos) + return self._fix_angle(point1, pos) + def delete_point(self, index): if index in self.polygons and len(self.polygons[index]) > 0: self.polygons[index].pop() @@ -100,7 +110,7 @@ # Too small return False first = self.polygons[index][0] - if self.fix_angle(index, self.point_to_pygame(first)) == first: + if self.fix_poly_angle(index, self.point_to_pygame(first)) == first: self.add_point(index, self.point_to_pygame(first)) return True candidates = [(first[0] + 10 * i, first[1]) for @@ -114,7 +124,7 @@ min_dist = 99999 poss = None for cand in candidates: - if self.fix_angle(index, self.point_to_pygame(cand)) == cand: + if self.fix_poly_angle(index, self.point_to_pygame(cand)) == cand: dist = (first[0] - cand[0]) ** 2 + (first[1] - cand[1]) ** 2 if dist < min_dist: poss = cand @@ -124,7 +134,12 @@ return True return False - def draw(self, surface, topleft, mouse_pos, mouse_poly, filled): + def add_line(self, start_pos, end_pos): + endpoint = self.fix_line_angle(start_pos, end_pos) + startpoint = self.point_to_pymunk(self.round_point(start_pos)) + self.lines.append([startpoint, endpoint]) + + def draw(self, mouse_pos, mouse_poly, filled, draw_cand_line, start_pos): self._draw_background(True) # Draw polygons as needed for the editor if filled: @@ -135,12 +150,19 @@ pointlist = [self.point_to_pygame(p) for p in polygon] pygame.draw.lines(self._surface, color, False, pointlist, 2) if index == mouse_poly and mouse_pos: - endpoint = self.fix_angle(index, mouse_pos) + endpoint = self.fix_poly_angle(index, mouse_pos) pygame.draw.line(self._surface, color, self.point_to_pygame(polygon[-1]), self.point_to_pygame(endpoint)) - surface_area = pygame.rect.Rect(topleft, SCREEN) - surface.blit(self._surface, (0, 0), surface_area) + for line in self.lines: + pointlist = [self.point_to_pygame(p) for p in line] + pygame.draw.lines(self._surface, LINE_COLOR, False, pointlist, 2) + if draw_cand_line and start_pos and mouse_pos: + endpoint = self.fix_line_angle(start_pos, mouse_pos) + pointlist = [self.round_point(start_pos), + self.point_to_pygame(endpoint)] + pygame.draw.lines(self._surface, LINE_COLOR, False, pointlist, 1) + return self._surface.copy() class LevelWidget(Widget): @@ -154,6 +176,10 @@ self.mouse_pos = None self.cur_poly = None self._mouse_drag = False + self._draw_objects = False + self._draw_enemies = False + self._draw_lines = False + self._start_pos = None def _level_coordinates(self, pos): # Move positions to level values @@ -173,21 +199,51 @@ new_pos[1] = self.pos[1] self.pos = tuple(new_pos) + def set_objects(self, value): + if self._draw_objects != value: + self._draw_objects = value + self.invalidate() + + def set_enemies(self, value): + if self._draw_enemies != value: + self._draw_enemies = value + self.invalidate() + def draw(self, surface): if (self.cur_poly is not None and self.cur_poly in self.level.polygons and len(self.level.polygons[self.cur_poly])): # We have an active polygon mouse_pos = self._level_coordinates(self.mouse_pos) + elif self._draw_lines: + # Interior wall mode + mouse_pos = self._level_coordinates(self.mouse_pos) else: mouse_pos = None - level.draw(surface, self.pos, mouse_pos, self.cur_poly, - self.filled_mode) + level_surface = level.draw(mouse_pos, self.cur_poly, self.filled_mode, + self._draw_lines, self._start_pos) + if self._draw_objects: + for thing in self.level.drawables: + if not isinstance(thing, Enemy): + thing.render(level_surface) + if self._draw_enemies: + for thing in self.level.drawables: + if isinstance(thing, Enemy): + thing.render(level_surface) + surface_area = pygame.rect.Rect(self.pos, SCREEN) + surface.blit(level_surface, (0, 0), surface_area) def change_poly(self, new_poly): self.cur_poly = new_poly + self._draw_lines = False if self.cur_poly is not None: self.filled_mode = False + def line_mode(self): + self.cur_poly = None + self._draw_lines = True + self.filled_mode = False + self._start_pos = None + def key_down(self, ev): if ev.key == pgl.K_LEFT: self._move_view((-10, 0)) @@ -213,13 +269,14 @@ if closed: self.cur_poly = None self.filled_mode = True + self._draw_lines = False else: alert('Not all polygons closed, so not filling') def mouse_move(self, ev): old_pos = self.mouse_pos self.mouse_pos = ev.pos - if self.cur_poly and old_pos != self.mouse_pos: + if old_pos != self.mouse_pos and (self.cur_poly or self._draw_lines): self.invalidate() def mouse_drag(self, ev): @@ -233,8 +290,16 @@ def mouse_down(self, ev): if ev.button == 1: - print "Click: %r" % ( - self.level.point_to_pymunk(self._level_coordinates(ev.pos)),) + if self._draw_lines: + if self._start_pos is None: + self._start_pos = ev.pos + else: + self.level.add_line(self._start_pos, ev.pos) + self._start_pos = None + else: + print "Click: %r" % ( + self.level.point_to_pymunk( + self._level_coordinates(ev.pos)),) if ev.button == 4: # Scroll up self._move_view((0, -10)) elif ev.button == 5: # Scroll down @@ -304,12 +369,21 @@ button_rect = pygame.rect.Rect(0, 0, MENU_WIDTH, MENU_BUTTON_HEIGHT) + check_rect = pygame.rect.Rect(0, 0, MENU_BUTTON_HEIGHT // 2, + MENU_BUTTON_HEIGHT // 2) + end_poly_but = PolyButton(None, self.level_widget) end_poly_but.rect = button_rect.copy() end_poly_but.rect.move_ip(MENU_LEFT, y) self.add(end_poly_but) y += MENU_BUTTON_HEIGHT + MENU_PAD + draw_line = Button("Draw interior wall", self.level_widget.line_mode) + draw_line.rect = button_rect.copy() + draw_line.rect.move_ip(MENU_LEFT, y) + self.add(draw_line) + y += MENU_BUTTON_HEIGHT + MENU_PAD + fill_but = Button('Fill exterior', action=self.level_widget.set_filled) fill_but.rect = button_rect.copy() fill_but.rect.move_ip(MENU_LEFT, y) @@ -329,6 +403,25 @@ self.add(close_poly_but) y += MENU_BUTTON_HEIGHT + MENU_PAD + white = pygame.color.Color("white") + self.show_objs = CheckBox(fg_color=white) + self.show_objs.rect = check_rect.copy() + self.show_objs.rect.move_ip(MENU_LEFT, y) + label = Label("Show Objects", fg_color=white) + label.rect.move_ip(MENU_LEFT + MENU_BUTTON_HEIGHT // 2 + MENU_PAD, y) + self.add(self.show_objs) + self.add(label) + y += label.rect.height + MENU_PAD + + self.show_enemies = CheckBox(fg_color=white) + self.show_enemies.rect = check_rect.copy() + self.show_enemies.rect.move_ip(MENU_LEFT, y) + label = Label("Show enemy start pos", fg_color=white) + label.rect.move_ip(MENU_LEFT + MENU_BUTTON_HEIGHT // 2 + MENU_PAD, y) + self.add(self.show_enemies) + self.add(label) + y += label.rect.height + MENU_PAD + quit_but = Button('Quit', action=self.quit) quit_but.rect = button_rect.copy() quit_but.rect.move_ip(MENU_LEFT, y) @@ -355,11 +448,19 @@ def mouse_move(self, ev): self.level_widget.mouse_move(ev) + def draw(self, surface): + # Update checkbox state + self.level_widget.set_objects(self.show_objs.value) + self.level_widget.set_enemies(self.show_enemies.value) + super(EditorApp, self).draw(surface) + if __name__ == "__main__": if len(sys.argv) not in [2, 4]: print 'Please supply a levelname or levelname and level size' sys.exit() + # Need to ensure we have defaults for rendering + parse_args([]) pygame.display.init() pygame.font.init() pygame.display.set_mode((SCREEN[0] + MENU_WIDTH, SCREEN[1]),