from lib.pgfw.pgfw.GameChild import GameChild
from food_spring.level.watermelon.Watermelon import Watermelon
from food_spring.level.peach.Peach import Peach
from food_spring.level.pineapple.Pineapple import Pineapple
from food_spring.level.grapes.Grapes import Grapes

class Levels(GameChild, list):

    WATERMELON, PEACH, GRAPES, PINEAPPLE = range(4)

    def __init__(self, parent):
        GameChild.__init__(self, parent)
        list.__init__(self, (Watermelon(self), Peach(self), Grapes(self),
                             Pineapple(self)))

    def activate(self, index):
        self[index].activate()

    def update(self):
        for level in self:
            level.update()
from random import randrange, choice

from pygame import Surface, PixelArray, Color
from pygame.image import load, save
from pygame.locals import *

from lib.pgfw.pgfw.Animation import Animation

class Window(Animation):

    def __init__(self, parent):
        Animation.__init__(self, parent)
        self.display_surface = self.get_display_surface()
        self.load_configuration()
        self.set_images()
        self.set_x_range()
        self.alpha_ratio = randrange(100) * .01
        self.alpha_direction = choice((1, -1))

    def load_configuration(self):
        config = self.get_configuration("window")
        self.alpha = config["alpha"]
        self.remain_length = config["remain-length"]
        self.fade_step = config["fade-step"]
        self.margin = config["margin"]

    def set_images(self):
        image = load(self.get_resource("window", "path")).convert()
        inverted = Surface(image.get_size())
        inverted.fill((255, 255, 255))
        inverted.blit(image, (0, 0), None, BLEND_SUB)
        pixels = PixelArray(inverted)
        for x in xrange(len(pixels) - 1):
            for y in xrange(len(pixels[x]) - 1):
                color = Color(*image.unmap_rgb(pixels[x][y]))
                hue, saturation, value, alpha = color.hsva
                color.hsva = hue, saturation, 100 - value, alpha
                pixels[x][y] = color
        del pixels
        self.images = image, inverted
        self.rect = image.get_rect()
        self.rect.right = self.display_surface.get_rect().right - self.margin

    def set_x_range(self):
        margin = self.margin
        self.x_range = margin, \
                       self.display_surface.get_width() - margin - self.rect.w

    def reset(self):
        pass

    def update(self):
        Animation.update(self)
        self.update_alpha()
        intermediate = Surface(self.rect.size)
        intermediate.blit(self.images[0], (0, 0))
        intermediate.blit(self.images[1], (0, 0))
        self.display_surface.blit(intermediate, self.rect, None, BLEND_MAX)

    def update_alpha(self):
        self.alpha_ratio += self.fade_step * self.alpha_direction
        if self.alpha_ratio < 0:
            self.alpha_ratio = 0
            self.alpha_direction = 1
        elif self.alpha_ratio > 1:
            self.alpha_ratio = 1
            self.alpha_direction = -1
        alpha = self.alpha
        self.images[0].set_alpha(int(alpha * self.alpha_ratio))
        self.images[1].set_alpha(int(alpha * (1 - self.alpha_ratio)))
from food_spring.level.Level import Level

class Peach(Level):

    def __init__(self, parent):
        Level.__init__(self, parent, parent.PEACH)
from food_spring.level.Level import Level

class Grapes(Level):

    def __init__(self, parent):
        Level.__init__(self, parent, parent.GRAPES)
from pygame import Surface, Color

from lib.pgfw.pgfw.GameChild import GameChild

class Plate(GameChild, Surface):

    def __init__(self, parent):
        GameChild.__init__(self, parent)
        self.load_configuration()
        self.init_surface()
        self.set_background()

    def load_configuration(self):
        config = self.get_configuration("land")
        self.height = config["height"]
        self.speed = config["fade-speed"]

    def init_surface(self):
        Surface.__init__(self, (self.get_display_surface().get_width(),
                                self.height))

    def set_background(self):
        width, height = self.get_size()
        background = Surface((width, height))
        color = Color(0, 0, 0)
        for y in xrange(height):
            hue = int(float(y) / (height) * 360)
            color.hsva = hue, 100, 100, 100
            background.fill(color, (0, y, width, 1))
        self.background = background

    def reset(self):
        self.offset = 0

    def update(self):
        self.update_offset()
        self.draw()

    def update_offset(self):
        offset = self.offset - self.speed
        height = self.get_height()
        if offset < -height:
            offset += height
        self.offset = offset

    def draw(self):
        offset = int(self.offset)
        background = self.background
        self.blit(background, (0, offset))
        self.blit(background, (0, offset + self.get_height()))
from pygame import Rect
from pygame.locals import *

from lib.pgfw.pgfw.GameChild import GameChild
from food_spring.level.land.Mask import Mask
from food_spring.level.land.Plate import Plate

class Land(GameChild, Rect):

    def __init__(self, parent):
        GameChild.__init__(self, parent)
        self.load_configuration()
        self.mask = Mask(self)
        self.plate = Plate(self)
        self.display_surface = self.get_display_surface()
        self.init_rect()
        self.reset()

    def load_configuration(self):
        config = self.get_configuration("land")
        self.height = config["height"]
        self.altitude_ratio = config["altitude-ratio"]

    def init_rect(self):
        Rect.__init__(self, (0, self.get_initial_top()), self.mask.get_size())

    def get_initial_top(self):
        return self.display_surface.get_height() - self.h

    def reset(self):
        self.top = self.get_initial_top()
        self.mask.reset()
        self.plate.reset()

    def update(self):
        self.mask.update()
        self.plate.update()
        self.display_surface.blit(self.plate, self)
        self.display_surface.blit(self.mask, self, None, BLEND_RGB_MIN)
216.73.216.141
216.73.216.141
216.73.216.141
 
July 19, 2017


f1. BOSS

Games are corrupt dissolutions of nature modeled on prison, ordering a census from the shadows of a vile casino, splintered into shattered glass, pushing symbols, rusted, stale, charred, ultraviolet harbingers of consumption and violence, badges without merit that host a disease of destruction and decay.

You are trapped. You are so trapped your only recourse of action is to imagine an escape route and deny your existence so fully that your dream world becomes the only reality you know. You are fleeing deeper and deeper into a chasm of self-delusion.

While you're dragging your listless, distending corpus from one cell to another, amassing rewards, upgrades, bonuses, achievements, prizes, add-ons and status boosts in rapid succession, stop to think about what's inside the boxes because each one contains a vacuous, soul-sucking nightmare.

Playing can be an awful experience that spirals one into a void of harm and chaos, one so bad it creates a cycle between the greater and lesser systems, each breaking the other's rules. One may succeed by acting in a way that ruins the world.