git: b31c39ad916e - main - games/monsterz: upgrade to 0.8
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 26 Jan 2025 10:43:25 UTC
The branch main has been updated by thierry: URL: https://cgit.FreeBSD.org/ports/commit/?id=b31c39ad916e7aec4d620ecfe637b61df56ac41a commit b31c39ad916e7aec4d620ecfe637b61df56ac41a Author: Thierry Thomas <thierry@FreeBSD.org> AuthorDate: 2025-01-25 17:47:12 +0000 Commit: Thierry Thomas <thierry@FreeBSD.org> CommitDate: 2025-01-26 10:43:20 +0000 games/monsterz: upgrade to 0.8 Remark: the original site disappeared, this is a fork. Release notes at https://github.com/0-wiz-0/monsterz/releases/tag/v0.8 . --- games/monsterz/Makefile | 20 +- games/monsterz/distinfo | 7 +- games/monsterz/files/patch-monsterz.py | 890 --------------------------------- games/monsterz/pkg-plist | 3 +- 4 files changed, 11 insertions(+), 909 deletions(-) diff --git a/games/monsterz/Makefile b/games/monsterz/Makefile index 28a7023d2674..8588ee291454 100644 --- a/games/monsterz/Makefile +++ b/games/monsterz/Makefile @@ -1,34 +1,29 @@ PORTNAME= monsterz -PORTVERSION= 0.7.1 -PORTREVISION= 17 +PORTVERSION= 0.8 +DISTVERSIONPREFIX= v CATEGORIES= games -MASTER_SITES= http://sam.zoy.org/monsterz/ \ - SF/nemysisfreebsdp/:icons -DISTFILES= ${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX} \ - ${PORTNAME}.png:icons -EXTRACT_ONLY= ${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX} MAINTAINER= thierry@FreeBSD.org COMMENT= Arcade puzzle game -WWW= http://sam.zoy.org/monsterz/ +WWW= https://github.com/0-wiz-0/monsterz LICENSE= WTFPL LICENSE_FILE= ${WRKSRC}/COPYING RUN_DEPENDS= ${PYGAME} +USE_GITHUB= yes +GH_ACCOUNT= 0-wiz-0 + USES= python shebangfix SHEBANG_FILES= monsterz.py MAKE_ENV= prefix=${PREFIX} -PORTDOCS= AUTHORS README TODO +PORTDOCS= AUTHORS README.md TODO SCOREDIR= /var/games PLIST_SUB= SCOREDIR=${SCOREDIR} -DESKTOP_ENTRIES="Monsterz" "${COMMENT}" "${PORTNAME}" \ - "${PORTNAME}" "Game;ArcadeGame;" false - OPTIONS_DEFINE= DOCS pre-configure: @@ -45,7 +40,6 @@ post-install: -f ${DATADIR:S;${PREFIX}/;;} \ && ${PYTHON_CMD} -O ${PYTHON_LIBDIR}/compileall.py -d ${DATADIR}\ -f ${DATADIR:S;${PREFIX}/;;}) - ${INSTALL_DATA} ${_DISTDIR}/${PORTNAME}.png ${STAGEDIR}${PREFIX}/share/pixmaps/ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/monsterz post-install-DOCS-on: diff --git a/games/monsterz/distinfo b/games/monsterz/distinfo index 5eea709f47c5..4f23c2909e17 100644 --- a/games/monsterz/distinfo +++ b/games/monsterz/distinfo @@ -1,4 +1,3 @@ -SHA256 (monsterz-0.7.1.tar.gz) = 50828b8fa26d107bcc2bd134328f83c905b9f5e124846bdf239daf0eed34973d -SIZE (monsterz-0.7.1.tar.gz) = 1879537 -SHA256 (monsterz.png) = 64f9533f252db001bdaec34e1c4432a6d236a8084899d0adc22ad90d01eedae1 -SIZE (monsterz.png) = 4849 +TIMESTAMP = 1737823301 +SHA256 (0-wiz-0-monsterz-v0.8_GH0.tar.gz) = a4f0c845abc3d3b1ab3d08f404852bc2e1e10d512c23b4098e0d49e679a1f079 +SIZE (0-wiz-0-monsterz-v0.8_GH0.tar.gz) = 2316029 diff --git a/games/monsterz/files/patch-monsterz.py b/games/monsterz/files/patch-monsterz.py deleted file mode 100644 index 6485f6a835b2..000000000000 --- a/games/monsterz/files/patch-monsterz.py +++ /dev/null @@ -1,890 +0,0 @@ ---- monsterz.py.orig 2020-06-01 13:24:07 UTC -+++ monsterz.py -@@ -10,6 +10,9 @@ - modify it under the terms of the Do What The Fuck You Want To - Public License, Version 2, as published by Sam Hocevar. See - http://sam.zoy.org/projects/COPYING.WTFPL for more details. -+ -+ Patch to support Python3 from Reiner Herrmann <reiner@reiner-h.de> -+ https://bugs.debian.org/912513 - """ - - import pygame -@@ -18,6 +21,7 @@ from random import randint - from sys import argv, exit, platform - from os.path import join, isdir, isfile, dirname, expanduser - from os import write, mkdir -+from functools import cmp_to_key - - # String constants - VERSION = '0.7.1' -@@ -108,9 +112,12 @@ def semi_grayscale(surf): - M = int(max(r, g, b)) - m = int(min(r, g, b)) - val = (2 * M + r + g + b) / 5 -- p[:] = (val + r) / 2, (val + g) / 2, (val + b) / 2 -+ val = (2 * M + r + g + b) // 5 -+ p[0] = (val + r) // 2 -+ p[1] = (val + g) // 2 -+ p[2] = (val + b) // 2 - if alpha[y][x] >= 250: -- alpha[y][x] = 255 - (M - m) * 3 / 4 -+ alpha[y][x] = 255 - (M - m) * 3 // 4 - del pixels - del alpha - surf.unlock() -@@ -129,9 +136,11 @@ def semi_transp(surf): - r, g, b = p - M = int(max(r, g, b)) - m = int(min(r, g, b)) -- p[:] = (m + r) / 2, (m + g) / 2, (m + b) / 2 -+ p[0] = (m + r) // 2 -+ p[1] = (m + g) // 2 -+ p[2] = (m + b) // 2 - if alpha[y][x] >= 250: -- alpha[y][x] = 255 - M * 2 / 3 -+ alpha[y][x] = 255 - M * 2 // 3 - del pixels - del alpha - surf.unlock() -@@ -218,12 +227,12 @@ class Settings: - file.close() - - def get(self, key): -- if not self.config.has_key(key): -+ if key not in self.config: - return None - return self.config[key] - - def set(self, key, value): -- if not self.config.has_key(key): -+ if key not in self.config: - return - self.config[key] = value - -@@ -241,15 +250,15 @@ class Settings: - pass - # Add dummy scores to make sure our score list is full - for game in ['CLASSIC']: -- if not self.scores.has_key(game): -+ if game not in self.scores: - self.scores[game] = [] - for x in range(20): self._add_score(game, 'NOBODY', 0, 1) - - def _add_score(self, game, name, score, level): -- if not self.scores.has_key(game): -+ if game not in self.scores: - self.scores[game] = [] - self.scores[game].append((name, score, level)) -- self.scores[game].sort(compare_scores) -+ self.scores[game].sort(key=cmp_to_key(compare_scores)) - self.scores[game] = self.scores[game][0:19] - - def new_score(self, game, score, level): -@@ -264,7 +273,7 @@ class Settings: - msg += type + ':' + name + ':' + str(score) + ':' + str(level) - msg += '\n' - if self.outfd is not None: -- write(self.outfd, msg + '\n') -+ write(self.outfd, (msg + '\n').encode()) - else: - try: - file = open(self.scorefile, 'w') -@@ -286,7 +295,7 @@ class Data: - self.background = pygame.image.load(join(dir, 'graphics', 'background.png')).convert() - self.board = pygame.image.load(join(dir, 'graphics', 'board.png')).convert() - self.logo = pygame.image.load(join(dir, 'graphics', 'logo.png')).convert_alpha() -- self.orig_size = w / 5 -+ self.orig_size = w // 5 - self.normal = [None] * ITEMS - self.blink = [None] * ITEMS - self.tiny = [None] * ITEMS -@@ -316,8 +325,8 @@ class Data: - # Create sprites - for i in range(ITEMS): - self.normal[i] = scale(tile_at(0, i + 5), (t, t)) -- self.tiny[i] = scale(tile_at(0, i + 5), (t * 3 / 4, t * 3 / 4)) -- self.shaded[i] = scale(tile_at(3, i + 5), (t * 3 / 4, t * 3 / 4)) -+ self.tiny[i] = scale(tile_at(0, i + 5), (t * 3 // 4, t * 3 // 4)) -+ self.shaded[i] = scale(tile_at(3, i + 5), (t * 3 // 4, t * 3 // 4)) - semi_grayscale(self.shaded[i]) - self.blink[i] = scale(tile_at(1, i + 5), (t, t)) - self.surprise[i] = scale(tile_at(2, i + 5), (t, t)) -@@ -326,15 +335,15 @@ class Data: - #tmp = tile_at(1, 0).copy() # marche pas ! - tmp = scale(tile_at(1, 0), (t, t)) # marche... - mini = tile_at(0, i + 5) -- mini = scale(mini, (t * 7 / 8 - 1, t * 7 / 8 - 1)) -- tmp.blit(mini, (s / 16, s / 16)) -+ mini = scale(mini, (t * 7 // 8 - 1, t * 7 // 8 - 1)) -+ tmp.blit(mini, (s // 16, s // 16)) - self.special[i] = scale(tmp, (t, t)) -- self.led_off = scale(self.tiles.subsurface((3 * s, 0, s / 2, s / 2)), (t / 2, t / 2)) -- self.led_on = scale(self.tiles.subsurface((3 * s + s / 2, 0, s / 2, s / 2)), (t / 2, t / 2)) -- self.led_more = scale(self.tiles.subsurface((3 * s, s / 2, s / 2, s / 2)), (t / 2, t / 2)) -- self.led_less = scale(self.tiles.subsurface((3 * s + s / 2, s / 2, s / 2, s / 2)), (t / 2, t / 2)) -- self.eye = scale(tile_at(2, 0), (t * 3 / 4, t * 3 / 4)) -- self.shadeye = scale(tile_at(2, 0), (t * 3 / 4, t * 3 / 4)) -+ self.led_off = scale(self.tiles.subsurface((3 * s, 0, s // 2, s // 2)), (t // 2, t // 2)) -+ self.led_on = scale(self.tiles.subsurface((3 * s + s // 2, 0, s // 2, s // 2)), (t // 2, t // 2)) -+ self.led_more = scale(self.tiles.subsurface((3 * s, s // 2, s // 2, s // 2)), (t // 2, t // 2)) -+ self.led_less = scale(self.tiles.subsurface((3 * s + s // 2, s // 2, s // 2, s // 2)), (t // 2, t // 2)) -+ self.eye = scale(tile_at(2, 0), (t * 3 // 4, t * 3 // 4)) -+ self.shadeye = scale(tile_at(2, 0), (t * 3 // 4, t * 3 // 4)) - semi_transp(self.shadeye) - self.arrow = tile_at(4, 0) - self.selector = scale(tile_at(0, 0), (t, t)) -@@ -367,7 +376,7 @@ class Data: - - def screen2board(self, coord): - x, y = coord -- return ((x - 24) / ITEM_SIZE, (y - 24) / ITEM_SIZE) -+ return ((x - 24) // ITEM_SIZE, (y - 24) // ITEM_SIZE) - - class Sprite: - def __init__(self, surf, coord): -@@ -398,7 +407,8 @@ class System: - def blit(self, surf, coords): - self.background.blit(surf, coords) - -- def blit_board(self, (x1, y1, x2, y2)): -+ def blit_board(self, coords): -+ (x1, y1, x2, y2) = coords - x1, y1 = x1 * ITEM_SIZE, y1 * ITEM_SIZE - x2, y2 = x2 * ITEM_SIZE - x1, y2 * ITEM_SIZE - y1 - surf = data.board.subsurface((x1, y1, x2, y2)) -@@ -454,16 +464,16 @@ class Fonter: - self.cache.append((m, s, c, t)) - return t - font = pygame.font.Font(None, size * 2) -- delta = 2 + size / 8 -+ delta = 2 + size // 8 - black = font.render(msg, 2, (0, 0, 0)) - w, h = black.get_size() - text = pygame.Surface((w + delta, h + delta)).convert_alpha() - text.fill((0, 0, 0, 0)) - for x, y in [(5, 5), (6, 3), (5, 1), (3, 0), - (1, 1), (0, 3), (1, 5), (3, 6)]: -- text.blit(black, (x * delta / 6, y * delta / 6)) -+ text.blit(black, (x * delta // 6, y * delta // 6)) - white = font.render(msg, 2, color) -- text.blit(white, (delta / 2, delta / 2)) -+ text.blit(white, (delta // 2, delta // 2)) - text = pygame.transform.rotozoom(text, 0.0, 0.5) - self.cache.append((msg, size, color, text)) - if len(self.cache) > self.size: -@@ -492,7 +502,7 @@ class Game: - self.win_timer = 0 - self.warning_timer = 0 - self.switch_timer = 0 -- self.level_timer = SCROLL_DELAY / 2 -+ self.level_timer = SCROLL_DELAY // 2 - self.board_timer = 0 - self.missed = False - self.check_moves = False -@@ -527,11 +537,11 @@ class Game: - #self.board[randint(3, 4)][0] = ITEM_METAL - - def fill_board(self): -- for y in xrange(BOARD_HEIGHT - 1, -1, -1): -- for x in xrange(BOARD_WIDTH - 1, -1, -1): -+ for y in range(BOARD_HEIGHT - 1, -1, -1): -+ for x in range(BOARD_WIDTH - 1, -1, -1): - if self.board[x][y] != ITEM_NONE: - continue -- for y2 in xrange(y - 1, -1, -1): -+ for y2 in range(y - 1, -1, -1): - if self.board[x][y2] != ITEM_NONE: - self.board[x][y] = self.board[x][y2] - self.extra_offset[x][y] = (0, ITEM_SIZE * (y2 - y)) -@@ -683,7 +693,7 @@ class Game: - system.blit(data.board, (24, 24)) - # Have a random piece blink - c = randint(0, BOARD_WIDTH - 1), randint(0, BOARD_HEIGHT - 1) -- if randint(0, 5) is 0 and not self.blink_list.has_key(c): -+ if randint(0, 5) is 0 and c not in self.blink_list: - self.blink_list[c] = 5 - # Handle special scrolling cases - if self.level_timer: -@@ -692,14 +702,14 @@ class Game: - timer = self.board_timer - else: - timer = 0 -- if timer > SCROLL_DELAY / 2: -+ if timer > SCROLL_DELAY // 2: - global_xoff = 0 - yoff = (SCROLL_DELAY - timer) * (SCROLL_DELAY - timer) -- global_yoff = yoff * 50 * 50 / SCROLL_DELAY / SCROLL_DELAY -+ global_yoff = yoff * 50 * 50 // SCROLL_DELAY // SCROLL_DELAY - elif timer > 0: - global_xoff = 0 - yoff = - timer * timer -- global_yoff = yoff * 50 * 50 / SCROLL_DELAY / SCROLL_DELAY -+ global_yoff = yoff * 50 * 50 // SCROLL_DELAY // SCROLL_DELAY - else: - global_xoff = 0 - global_yoff = 0 -@@ -725,15 +735,15 @@ class Game: - xoff, yoff = self.extra_offset[i][j] - if self.lost_timer: - d = LOST_DELAY - self.lost_timer -- xoff += (i * 2 - 7) * 4 * d / LOST_DELAY -- yoff += (j * 2 - 7) * 4 * d / LOST_DELAY -- xoff += (j * 2 - 7) * 4 * d / LOST_DELAY -- yoff += (-i * 2 + 7) * 4 * d / LOST_DELAY -+ xoff += (i * 2 - 7) * 4 * d // LOST_DELAY -+ yoff += (j * 2 - 7) * 4 * d // LOST_DELAY -+ xoff += (j * 2 - 7) * 4 * d // LOST_DELAY -+ yoff += (-i * 2 + 7) * 4 * d // LOST_DELAY - xoff += (randint(0, d) - randint(0, d)) - yoff += (randint(0, d) - randint(0, d)) - self.extra_offset[i][j] = xoff, yoff - elif yoff and self.win_timer: -- yoff = yoff * (self.win_timer - 1) / (WIN_DELAY * 2 / 3) -+ yoff = yoff * (self.win_timer - 1) // (WIN_DELAY * 2 // 3) - self.extra_offset[i][j] = xoff, yoff - xoff += global_xoff - yoff += global_yoff -@@ -744,17 +754,17 @@ class Game: - shape = data.metal - elif n >= ITEM_PUZZLE: - shape = data.puzzle[puzzlevels[self.level - 1][2]][n - ITEM_PUZZLE] -- elif self.level_timer and self.level_timer < SCROLL_DELAY / 2: -+ elif self.level_timer and self.level_timer < SCROLL_DELAY // 2: - shape = data.blink[n] - elif (i, j) in self.surprised_list \ -- or self.board_timer > SCROLL_DELAY / 2 \ -- or self.level_timer > SCROLL_DELAY / 2: -+ or self.board_timer > SCROLL_DELAY // 2 \ -+ or self.level_timer > SCROLL_DELAY // 2: - shape = data.surprise[n] - elif (i, j) in self.disappear_list: - shape = data.exploded[n] - elif n == self.angry_items: - shape = data.angry[n] -- elif self.blink_list.has_key((i, j)): -+ elif (i, j) in self.blink_list: - shape = data.blink[n] - self.blink_list[i, j] -= 1 - if self.blink_list[i, j] is 0: del self.blink_list[i, j] -@@ -771,7 +781,8 @@ class Game: - if self.select: - system.blit(data.selector, select_coord) - -- def piece_draw(self, sprite, (x, y)): -+ def piece_draw(self, sprite, pos): -+ (x, y) = pos - width = ITEM_SIZE - crop = sprite.subsurface - # Constrain X -@@ -806,7 +817,7 @@ class Game: - # Draw timebar - timebar = pygame.Surface((406, 32)).convert_alpha() - timebar.fill((0, 0, 0, 155)) -- w = 406 * self.time / 2000000 -+ w = 406 * self.time // 2000000 - if w > 0: - if self.warning_timer: - ratio = 1.0 * abs(2 * self.warning_timer - WARNING_DELAY) \ -@@ -829,15 +840,15 @@ class Game: - pass - else: - for x in range(4): -- for y, p in enumerate(alpha[x]): -- alpha[x][y] = p * x / 4 -- for y, p in enumerate(alpha[406 - x - 1]): -- alpha[406 - x - 1][y] = p * x / 4 -+ for y in range(len(alpha[x])): -+ alpha[x][y] = alpha[x][y] * x // 4 -+ for y in range(len(alpha[406 - x - 1])): -+ alpha[406 - x - 1][y] = alpha[406 - x - 1][y] * x // 4 - for col in alpha: - l = len(col) - for y in range(4): -- col[y] = col[y] * y / 4 -- col[l - y - 1] = col[l - y - 1] * y / 4 -+ col[y] = col[y] * y // 4 -+ col[l - y - 1] = col[l - y - 1] * y // 4 - del col - del alpha - timebar.unlock() -@@ -846,7 +857,7 @@ class Game: - # Print play again message - text = fonter.render('GAME OVER', 80) - w, h = text.get_rect().size -- system.blit(text, (24 + 192 - w / 2, 24 + 192 - h / 2)) -+ system.blit(text, (24 + 192 - w // 2, 24 + 192 - h // 2)) - if self.score < 5000: - msg = 'YUO = TEH L0SER' - elif self.score < 15000: -@@ -857,13 +868,13 @@ class Game: - msg = 'ZOMFG!!!111!!! YUO PWND!!!%$#@%@#' - text = fonter.render(msg, 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 192 - w / 2, 24 + 240 - h / 2)) -+ system.blit(text, (24 + 192 - w // 2, 24 + 240 - h // 2)) - elif self.paused: - # Draw pause message - system.blit(self.pause_bitmap, (72, 24)) - text = fonter.render('PAUSED', 120) - w, h = text.get_rect().size -- system.blit(text, (24 + 192 - w / 2, 24 + 336 - h / 2)) -+ system.blit(text, (24 + 192 - w // 2, 24 + 336 - h // 2)) - elif self.splash: - if self.type == GAME_TRAINING: - msg = 'TRAINING' -@@ -871,7 +882,7 @@ class Game: - msg = 'LEVEL ' + str(self.level) - text = fonter.render(msg, 60) - w, h = text.get_rect().size -- system.blit(text, (24 + 192 - w / 2, 24 + 144 - h / 2)) -+ system.blit(text, (24 + 192 - w // 2, 24 + 144 - h // 2)) - if self.needed[0]: - msg = 'MONSTERS NEEDED: ' + str(self.needed[0]) - elif self.type == GAME_PUZZLE: -@@ -884,24 +895,24 @@ class Game: - if self.lucky != -1: - text = fonter.render('LUCKY MONSTER:', 40) - w, h = text.get_rect().size -- system.blit(text, (192 - w / 2 - 8, 24 + 288 - h / 2)) -- system.blit(data.normal[self.lucky], (192 + w / 2, 288)) -+ system.blit(text, (192 - w // 2 - 8, 24 + 288 - h // 2)) -+ system.blit(data.normal[self.lucky], (192 + w // 2, 288)) - elif self.lost_timer != -1: - # Draw pieces - self.board_draw() - # Print new level stuff -- if self.level_timer > SCROLL_DELAY / 2: -+ if self.level_timer > SCROLL_DELAY // 2: - if self.type == GAME_PUZZLE: - text = fonter.render('COMPLETED!', 80) - else: - text = fonter.render('LEVEL UP!', 80) - w, h = text.get_rect().size -- system.blit(text, (24 + 192 - w / 2, 24 + 192 - h / 2)) -+ system.blit(text, (24 + 192 - w // 2, 24 + 192 - h // 2)) - # When no more moves are possible -- if self.board_timer > SCROLL_DELAY / 2: -+ if self.board_timer > SCROLL_DELAY // 2: - text = fonter.render('NO MORE MOVES!', 60) - w, h = text.get_rect().size -- system.blit(text, (24 + 192 - w / 2, 24 + 192 - h / 2)) -+ system.blit(text, (24 + 192 - w // 2, 24 + 192 - h // 2)) - # Print bonus - for b in self.bonus_list: - if b[2]: -@@ -910,7 +921,7 @@ class Game: - text = fonter.render(str(b[1]), 36) - w, h = text.get_rect().size - x, y = data.board2screen(b[0]) -- system.blit(text, (x + 24 - w / 2, y + 24 - h / 2)) -+ system.blit(text, (x + 24 - w // 2, y + 24 - h // 2)) - # Print hint arrow - if self.show_move: - lookup = [0, 1, 5, 16, 27, 31, 32, 31, 27, 16, 5, 1] -@@ -918,8 +929,8 @@ class Game: - x1, y1 = data.board2screen(src) - x2, y2 = data.board2screen(dst) - delta = lookup[monsterz.timer % 12] -- x = -32 + (x1 * delta + x2 * (32 - delta)) / 32 -- y = 32 + (y1 * delta + y2 * (32 - delta)) / 32 -+ x = -32 + (x1 * delta + x2 * (32 - delta)) // 32 -+ y = 32 + (y1 * delta + y2 * (32 - delta)) // 32 - system.blit(data.arrow, (x, y)) - break # Only show one move - # Print score -@@ -928,7 +939,7 @@ class Game: - system.blit(text, (624 - w, 10)) - # Print done/needed - for i in range(self.population): -- x = 440 + i / 4 * 90 -+ x = 440 + i // 4 * 90 - y = 64 + (i % 4) * 38 - if self.done[i] >= self.needed[i]: - surf = data.tiny[i] -@@ -954,15 +965,15 @@ class Game: - led, color = data.led_on, (255, 255, 255) - else: - led, color = data.led_off, (180, 150, 127) -- c = map(lambda a, b: b - (b - a) * self.psat[0] / 255, r, color) -+ c = list(map(lambda a, b: b - (b - a) * self.psat[0] // 255, r, color)) - system.blit(led, (440, 298)) - system.blit(fonter.render('PAUSE', 30, c), (470, 296)) - color = (180, 150, 127) -- c = map(lambda a, b: b - (b - a) * self.psat[1] / 255, r, color) -+ c = list(map(lambda a, b: b - (b - a) * self.psat[1] // 255, r, color)) - system.blit(fonter.render('ABORT', 30, c), (470, 326)) - for x in range(2): - if self.psat[x]: -- self.psat[x] = self.psat[x] * 8 / 10 -+ self.psat[x] = self.psat[x] * 8 // 10 - - def pause(self): - # TODO: prevent cheating by not allowing less than 1 second -@@ -980,7 +991,7 @@ class Game: - - def update(self): - ticks = pygame.time.get_ticks() -- delta = (ticks - self.oldticks) * 450 / (12 - self.speed) -+ delta = (ticks - self.oldticks) * 450 // (12 - self.speed) - self.oldticks = ticks - # If paused, do nothing - if self.paused: -@@ -990,7 +1001,7 @@ class Game: - # Resolve winning moves and chain reactions - if self.board_timer: - self.board_timer -= 1 -- if self.board_timer is SCROLL_DELAY / 2: -+ if self.board_timer is SCROLL_DELAY // 2: - self.new_board() - elif self.board_timer is 0: - system.play('boing') -@@ -1035,7 +1046,7 @@ class Game: - return - if self.level_timer: - self.level_timer -= 1 -- if self.level_timer is SCROLL_DELAY / 2: -+ if self.level_timer is SCROLL_DELAY // 2: - self.level += 1 - if self.type == GAME_PUZZLE: - if self.level > len(puzzlevels): -@@ -1055,7 +1066,7 @@ class Game: - for w in self.wins: - for x, y in w: - self.surprised_list.append((x, y)) -- elif self.win_timer is WIN_DELAY * 4 / 5: -+ elif self.win_timer is WIN_DELAY * 4 // 5: - system.play('pop') - self.scorebonus = 0 - self.timebonus = 0 -@@ -1076,10 +1087,10 @@ class Game: - for x, y in w: - x2 += x - y2 += y -- self.bonus_list.append([(x2 / len(w), y2 / len(w)), points, lucky]) -+ self.bonus_list.append([(x2 // len(w), y2 // len(w)), points, lucky]) - self.disappear_list = self.surprised_list - self.surprised_list = [] -- elif self.win_timer is WIN_DELAY * 3 / 5: -+ elif self.win_timer is WIN_DELAY * 3 // 5: - for x, y in self.disappear_list: - if self.board[x][y] != ITEM_NONE: - self.done[self.board[x][y]] += 1 -@@ -1095,7 +1106,7 @@ class Game: - self.angry_items = angry - self.disappear_list = [] - self.bonus_list = [] -- elif self.win_timer is WIN_DELAY * 2 / 5: -+ elif self.win_timer is WIN_DELAY * 2 // 5: - self.time += self.timebonus - if self.time > 2000000: - self.time = 2000000 -@@ -1192,7 +1203,7 @@ class Game: - self.will_play = move - min = self.done[color] - self.ai_timer = 15 - self.level -- if self.ai_timer is (15 - self.level) / 2: -+ if self.ai_timer is (15 - self.level) // 2: - self.clicks.append(self.will_play[0]) - elif self.ai_timer is 0: - self.clicks.append(self.will_play[1]) -@@ -1287,10 +1298,10 @@ class Monsterz: - pass - else: - for x in range(10): -- for y, p in enumerate(alpha[x]): -- alpha[x][y] = p * x / 12 -- for y, p in enumerate(alpha[406 - x - 1]): -- alpha[406 - x - 1][y] = p * x / 12 -+ for y in range(len(alpha[x])): -+ alpha[x][y] = alpha[x][y] * x // 12 -+ for y in range(len(alpha[406 - x - 1])): -+ alpha[406 - x - 1][y] = alpha[406 - x - 1][y] * x // 12 - del alpha - scroll.unlock() - system.blit(scroll, (13, 437)) -@@ -1321,26 +1332,26 @@ class Monsterz: - led, color = data.led_on, (255, 255, 255) - else: - led, color = data.led_off, (180, 150, 127) -- c = map(lambda a, b: b - (b - a) * self.gsat[0] / 255, r, color) -+ c = list(map(lambda a, b: b - (b - a) * self.gsat[0] // 255, r, color)) - system.blit(led, (440, 378)) - system.blit(fonter.render('SOUND FX', 30, c), (470, 376)) - if settings.get('music'): - led, color = data.led_on, (255, 255, 255) - else: - led, color = data.led_off, (180, 150, 127) -- c = map(lambda a, b: b - (b - a) * self.gsat[1] / 255, r, color) -+ c = list(map(lambda a, b: b - (b - a) * self.gsat[1] // 255, r, color)) - system.blit(led, (440, 408)) - system.blit(fonter.render('MUSIC', 30, c), (470, 406)) - if settings.get('fullscreen'): - led, color = data.led_on, (255, 255, 255) - else: - led, color = data.led_off, (180, 150, 127) -- c = map(lambda a, b: b - (b - a) * self.gsat[2] / 255, r, color) -+ c = list(map(lambda a, b: b - (b - a) * self.gsat[2] // 255, r, color)) - system.blit(led, (440, 438)) - system.blit(fonter.render('FULLSCREEN', 30, c), (470, 436)) - for x in range(3): - if self.gsat[x]: -- self.gsat[x] = self.gsat[x] * 8 / 10 -+ self.gsat[x] = self.gsat[x] * 8 // 10 - - def generic_event(self, event): - if event.type == QUIT: -@@ -1398,7 +1409,7 @@ class Monsterz: - self.marea = marea - # Print logo and menu - w, h = data.logo.get_size() -- system.blit(data.logo, (24 + 192 - w / 2, 24 + 96 - h / 2)) -+ system.blit(data.logo, (24 + 192 - w // 2, 24 + 96 - h // 2)) - for x in range(4): - if self.msat[x] > 180: - monster = data.surprise[shapes[x]] -@@ -1407,12 +1418,12 @@ class Monsterz: - else: - monster = data.blink[shapes[x]] - system.blit(monster, data.board2screen((1, 4 + x))) -- c = map(lambda a: 255 - (255 - a) * self.msat[x] / 255, colors[x]) -+ c = list(map(lambda a: 255 - (255 - a) * self.msat[x] // 255, colors[x])) - text = fonter.render(messages[x], 48, c) - w, h = text.get_rect().size -- system.blit(text, (24 + 102, 24 + 216 + ITEM_SIZE * x - h / 2)) -+ system.blit(text, (24 + 102, 24 + 216 + ITEM_SIZE * x - h // 2)) - if self.msat[x]: -- self.msat[x] = self.msat[x] * 8 / 10 -+ self.msat[x] = self.msat[x] * 8 // 10 - # Handle events - for event in pygame.event.get(): - if self.generic_event(event): -@@ -1479,32 +1490,32 @@ class Monsterz: - # Print menu - text = fonter.render('GAME TYPE', 60) - w, h = text.get_rect().size -- system.blit(text, (24 + 192 - w / 2, 24 + 24 - h / 2)) -+ system.blit(text, (24 + 192 - w // 2, 24 + 24 - h // 2)) - for i in range(4): -- c = map(lambda a: 255 - (255 - a) * self.nsat[i] / 255, [127, 0, 255]) -+ c = list(map(lambda a: 255 - (255 - a) * self.nsat[i] // 255, [127, 0, 255])) - text = fonter.render(messages[i], 48, c) - w, h = text.get_rect().size -- system.blit(text, (24 + ITEM_SIZE * 4 - w / 2, 24 + 120 + ITEM_SIZE * i - h / 2)) -+ system.blit(text, (24 + ITEM_SIZE * 4 - w // 2, 24 + 120 + ITEM_SIZE * i - h // 2)) - if self.nsat[i]: -- self.nsat[i] = self.nsat[i] * 8 / 10 -+ self.nsat[i] = self.nsat[i] * 8 // 10 - for i in range(4, 8): -- c = map(lambda a: 255 - (255 - a) * self.nsat[i] / 255, [127, 0, 255]) -+ c = list(map(lambda a: 255 - (255 - a) * self.nsat[i] // 255, [127, 0, 255])) - if i % 2: - img = data.led_more - x = 320 - else: - img = data.led_less - x = 88 -- y = 36 + ITEM_SIZE * (6 + (i - 4) / 2) -+ y = 36 + ITEM_SIZE * (6 + (i - 4) // 2) - system.blit(img, (x, y)) - if self.nsat[i]: -- self.nsat[i] = self.nsat[i] * 8 / 10 -+ self.nsat[i] = self.nsat[i] * 8 // 10 - # Print wanted monsterz - for i in range(items): -- system.blit(data.normal[i], (24 + 96 + ITEM_SIZE * 3 * i / (items - 1), 24 + ITEM_SIZE * 6)) -+ system.blit(data.normal[i], (24 + 96 + ITEM_SIZE * 3 * i // (items - 1), 24 + ITEM_SIZE * 6)) - text = fonter.render('DIFFICULTY ' + str(difficulty), 36) - w, h = text.get_rect().size -- system.blit(text, (24 + 192 - w / 2, 24 + ITEM_SIZE * 7 + 24 - h / 2)) -+ system.blit(text, (24 + 192 - w // 2, 24 + ITEM_SIZE * 7 + 24 - h // 2)) - # Handle events - for event in pygame.event.get(): - if self.generic_event(event): -@@ -1610,18 +1621,18 @@ class Monsterz: - # Title - text = fonter.render('INSTRUCTIONS (' + str(self.page) + ')', 60) - w, h = text.get_rect().size -- system.blit(text, (24 + 192 - w / 2, 24 + 24 - h / 2)) -+ system.blit(text, (24 + 192 - w // 2, 24 + 24 - h // 2)) - if self.page == 1: - # Explanation 1 - text = fonter.render('SWAP ADJACENT MONSTERS TO CREATE', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 84 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 84 - h // 2)) - text = fonter.render('ALIGNMENTS OF THREE OR MORE. NEW', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 108 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 108 - h // 2)) - text = fonter.render('MONSTERS WILL FILL THE HOLES.', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 132 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 132 - h // 2)) - # Iter 1 - system.blit_board((0, 3, 2, 7)) - system.blit(data.normal[2], data.board2screen((0, 3))) -@@ -1658,22 +1669,22 @@ class Monsterz: - text = fonter.render('10', 36) - w, h = text.get_rect().size - x, y = data.board2screen((7, 4)) -- system.blit(text, (x + 24 - w / 2, y + 24 - h / 2)) -+ system.blit(text, (x + 24 - w // 2, y + 24 - h // 2)) - # Explanation 2 - text = fonter.render('CREATE CHAIN REACTIONS TO GET TWICE', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 348 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 348 - h // 2)) - text = fonter.render('AS MANY POINTS, THEN 4x, 8x ETC.', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 372 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 372 - h // 2)) - elif self.page == 2: - # Explanation 1 - text = fonter.render('THE LUCKY MONSTER EARNS YOU TWICE', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 108 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 108 - h // 2)) - text = fonter.render('AS MANY POINTS AS OTHER MONSTERS.', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 132 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 132 - h // 2)) - shape = data.special[self.timer % 7] - # Print done/needed - system.blit_board((0, 3, 4, 5)) -@@ -1697,15 +1708,15 @@ class Monsterz: - text = fonter.render('140', 48, rainbow[monsterz.timer % 6]) - w, h = text.get_rect().size - x, y = data.board2screen((2, 6)) -- system.blit(text, (x + 24 - w / 2, y + 24 - h / 2)) -+ system.blit(text, (x + 24 - w // 2, y + 24 - h // 2)) - text = fonter.render('70', 36) - w, h = text.get_rect().size - x, y = data.board2screen((1, 7)) -- system.blit(text, (x + 24 - w / 2, y + 24 - h / 2)) -+ system.blit(text, (x + 24 - w // 2, y + 24 - h // 2)) - for i in range(4): - surf = data.tiny[i + 1] - count = 3 + i * 2 -- x = 24 + 240 + 4 + i / 2 * 70 -+ x = 24 + 240 + 4 + i // 2 * 70 - y = 172 + (i % 2) * 38 - for dummy in range(2): - system.blit(surf, (x, y)) -@@ -1722,13 +1733,13 @@ class Monsterz: - # Explanation 1 - text = fonter.render('YOU CAN ALWAYS PERFORM A VALID MOVE.', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 84 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 84 - h // 2)) - text = fonter.render('WHEN NO MORE MOVES ARE POSSIBLE, YOU', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 108 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 108 - h // 2)) - text = fonter.render('GET A COMPLETE NEW BOARD.', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 132 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 132 - h // 2)) - # Surprised - system.blit_board((0, 3, 8, 5)) - for x in range(8): -@@ -1736,29 +1747,29 @@ class Monsterz: - system.blit(data.surprise[(x * 7) % 8], data.board2screen((x, 4))) - text = fonter.render('NO MORE MOVES!', 60) - w, h = text.get_rect().size -- system.blit(text, (24 + 192 - w / 2, 24 + 192 - h / 2)) -+ system.blit(text, (24 + 192 - w // 2, 24 + 192 - h // 2)) - # Explanation 2 - text = fonter.render('USE THE EYE TO FIND WHERE TO PLAY.', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6 + 48, 24 + 300 - h / 2)) -+ system.blit(text, (24 + 6 + 48, 24 + 300 - h // 2)) - text = fonter.render('EACH 10,000 POINTS YOU GET A NEW', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6 + 48, 24 + 324 - h / 2)) -+ system.blit(text, (24 + 6 + 48, 24 + 324 - h // 2)) - text = fonter.render('EYE. YOU CAN\'T HAVE MORE THAN 3.', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6 + 48, 24 + 348 - h / 2)) -+ system.blit(text, (24 + 6 + 48, 24 + 348 - h // 2)) - system.blit(data.eye, (24 + 6, 24 + 306)) - elif self.page == 4: - # Explanation 1 - text = fonter.render('WHEN ONLY ONE KIND OF MONSTER IS', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 84 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 84 - h // 2)) - text = fonter.render('NEEDED TO FINISH THE LEVEL, MONSTERS', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 108 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 108 - h // 2)) - text = fonter.render('OF THAT KIND GET AN ANGRY FACE.', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 132 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 132 - h // 2)) - # Print done/needed - system.blit_board((0, 3, 4, 5)) - for i in range(4): -@@ -1770,7 +1781,7 @@ class Monsterz: - big = data.angry[i + 4] - system.blit(big, data.board2screen((i, 3 + (i % 2)))) - system.blit(big, data.board2screen(((i + 2) % 4, 3 + ((i + 1) % 2)))) -- x = 24 + 240 + 4 + i / 2 * 70 -+ x = 24 + 240 + 4 + i // 2 * 70 - y = 172 + (i % 2) * 38 - system.blit(surf, (x, y)) - text = fonter.render(str(i * 3), 36) -@@ -1778,10 +1789,10 @@ class Monsterz: - # Explanation 2 - text = fonter.render('CLICK ON THE BONUS TO REMOVE ALL', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 252 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 252 - h // 2)) - text = fonter.render('MONSTERS OF A RANDOM KIND.', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 276 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 276 - h // 2)) - shape = data.special[self.timer % 7] - # Iter 1 - system.blit_board((0, 6, 3, 8)) -@@ -1802,22 +1813,22 @@ class Monsterz: - text = fonter.render('10', 36) - w, h = text.get_rect().size - x, y = data.board2screen((4, 7)) -- system.blit(text, (x + 24 - w / 2, y + 24 - h / 2)) -+ system.blit(text, (x + 24 - w // 2, y + 24 - h // 2)) - x, y = data.board2screen((5, 6)) -- system.blit(text, (x + 24 - w / 2, y + 24 - h / 2)) -+ system.blit(text, (x + 24 - w // 2, y + 24 - h // 2)) - x, y = data.board2screen((6, 6)) -- system.blit(text, (x + 24 - w / 2, y + 24 - h / 2)) -+ system.blit(text, (x + 24 - w // 2, y + 24 - h // 2)) - elif self.page == 5: - # Explanation 1 - text = fonter.render('IN PUZZLE MODE, PUT TOGETHER THE', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 84 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 84 - h // 2)) - text = fonter.render('PUZZLE BY MOVING PIECES AROUND. BE', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 108 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 108 - h // 2)) - text = fonter.render('CAREFUL NOT TO GET STUCK!', 24) - w, h = text.get_rect().size -- system.blit(text, (24 + 6, 24 + 132 - h / 2)) -+ system.blit(text, (24 + 6, 24 + 132 - h // 2)) - # Iter 1 - system.blit_board((0, 3, 2, 8)) - system.blit(data.normal[2], data.board2screen((0, 3))) -@@ -1876,19 +1887,19 @@ class Monsterz: - self.copyright_draw() - text = fonter.render('HIGH SCORES', 60) - w, h = text.get_rect().size -- system.blit(text, (24 + 192 - w / 2, 24 + 24 - h / 2)) -+ system.blit(text, (24 + 192 - w // 2, 24 + 24 - h // 2)) - # Print our list - for x in range(10): - name, score, level = settings.scores['CLASSIC'][x] - text = fonter.render(str(x + 1) + '. ' + name.upper(), 32) - w, h = text.get_rect().size -- system.blit(text, (24 + 24, 24 + 72 + 32 * x - h / 2)) -+ system.blit(text, (24 + 24, 24 + 72 + 32 * x - h // 2)) - text = fonter.render(str(score), 32) - w, h = text.get_rect().size -- system.blit(text, (24 + 324 - w, 24 + 72 + 32 * x - h / 2)) -+ system.blit(text, (24 + 324 - w, 24 + 72 + 32 * x - h // 2)) - text = fonter.render(str(level), 32) - w, h = text.get_rect().size -- system.blit(text, (24 + 360 - w, 24 + 72 + 32 * x - h / 2)) -+ system.blit(text, (24 + 360 - w, 24 + 72 + 32 * x - h // 2)) - # Handle events - for event in pygame.event.get(): - if self.generic_event(event): -@@ -1903,39 +1914,39 @@ class Monsterz: - return - - def version(): -- print 'monsterz ' + VERSION -- print 'Written by Sam Hocevar, music by MenTaLguY, sound effects by Sun Microsystems,' -- print 'Inc., Michael Speck, David White and the Battle for Wesnoth project, Mike' -- print 'Kershaw and Sam Hocevar.' -- print -- print 'Copyright (C) 2005, 2006 Sam Hocevar <sam@zoy.org>' -- print ' (C) 1998 MenTaLguY <mental@rydia.net>' -- print ' (C) 2002, 2005 Sun Microsystems, Inc.' -- print ' (C) Michael Speck <kulkanie@gmx.net>' -- print ' (C) 2003 by David White <davidnwhite@optusnet.com.au> and the' -- print ' Battle for Wesnoth project' -- print ' (C) Mike Kershaw <dragorn@kismetwireless.net>' -+ print('monsterz ' + VERSION) -+ print('Written by Sam Hocevar, music by MenTaLguY, sound effects by Sun Microsystems,') -+ print('Inc., Michael Speck, David White and the Battle for Wesnoth project, Mike') -+ print('Kershaw and Sam Hocevar.') -+ print() -+ print('Copyright (C) 2005, 2006 Sam Hocevar <sam@zoy.org>') -+ print(' (C) 1998 MenTaLguY <mental@rydia.net>') -+ print(' (C) 2002, 2005 Sun Microsystems, Inc.') -+ print(' (C) Michael Speck <kulkanie@gmx.net>') -+ print(' (C) 2003 by David White <davidnwhite@optusnet.com.au> and the') -+ print(' Battle for Wesnoth project') -+ print(' (C) Mike Kershaw <dragorn@kismetwireless.net>') - -- print 'This program is free software; you can redistribute it and/or modify it under' -- print 'the terms of the Do What The Fuck You Want To Public License, Version 2, as' -- print 'published by Sam Hocevar. See http://sam.zoy.org/wtfpl/ for more details.' -- print 'The sound effects are released under their own licences: applause.wav and' -- print 'pop.wav are covered by the LGPL, the others are covered by the GPL.' -+ print('This program is free software; you can redistribute it and/or modify it under') -+ print('the terms of the Do What The Fuck You Want To Public License, Version 2, as') -+ print('published by Sam Hocevar. See http://sam.zoy.org/wtfpl/ for more details.') -+ print('The sound effects are released under their own licences: applause.wav and') -+ print('pop.wav are covered by the LGPL, the others are covered by the GPL.') - - def usage(): -- print 'Usage: monsterz [OPTION]...' -- print -- print 'Options' -- print ' -h, --help display this help and exit' -- print ' -v, --version display version information and exit' -- print ' -f, --fullscreen start in full screen mode' -- print ' -m, --nomusic disable music' -- print ' -s, --nosfx disable sound effects' -- print ' --outfd <fd> output scores to file descriptor <fd>' -- print ' --data <dir> set alternate data directory to <dir>' -- print ' --score <file> set score file to <file>' -- print -- print 'Report bugs or suggestions to <sam@zoy.org>.' -+ print('Usage: monsterz [OPTION]...') -+ print() -+ print('Options') -+ print(' -h, --help display this help and exit') -+ print(' -v, --version display version information and exit') -+ print(' -f, --fullscreen start in full screen mode') -+ print(' -m, --nomusic disable music') -+ print(' -s, --nosfx disable sound effects') -+ print(' --outfd <fd> output scores to file descriptor <fd>') -+ print(' --data <dir> set alternate data directory to <dir>') -+ print(' --score <file> set score file to <file>') -+ print() -+ print('Report bugs or suggestions to <sam@zoy.org>.') - - def main(): - from getopt import getopt, GetoptError -@@ -1967,7 +1978,7 @@ def main(): - elif opt in ('--outfd'): - try: - outfd = int(arg) -- write(outfd, '\n') -+ write(outfd, b'\n') - except: - outfd = None - elif opt in ('--data'): -@@ -1982,7 +1993,7 @@ def main(): - try: - data = Data(sharedir) - except: -- print argv[0] + ': could not open data from `' + sharedir + "'." -+ print(argv[0] + ': could not open data from `' + sharedir + "'.") - raise - fonter = Fonter() - monsterz = Monsterz() diff --git a/games/monsterz/pkg-plist b/games/monsterz/pkg-plist index 53fb909507b9..7c7f758f17be 100644 --- a/games/monsterz/pkg-plist *** 8 LINES SKIPPED ***