Bug#1001823: Ardentryst near-unplayable after Python3 port
Jens Rottmann
JRottm at gmx.de
Fri Dec 17 03:07:33 GMT 2021
Package: ardentryst
Version: 1.71-8
Severity: grave
Tags: patch
After Ardentryst was ported to Python 3 it appearently hasn't been play-tested well, several common actions don't work or crash the game, making it near-unplayable.
Start a new game, playing as "Nyx". Enter the 1st level. Try to cast "Ice" by pressing [D], [S]. Game crashes, printing a backtrace. Ice is Nyx's starting spell, the tutorial even instructs the player to try it, so it's quite hard to get through the game without it. Especially as her higher level spell "Implosion" insta-crashes, too.
For 2 more bugs, see below. Patch follows:
----------X8-------------X8--------
Python 3 port caused several severe bugs.
* Customizing action keys via Control Options no longer works, changed
keys aren't saved. Also a deprecation warning is printed. (controls.py)
* Playing as Nyx and casting Ice ([D][S]) or Implosion ([D][W]) instantly
crashes the game with an exception. (magic.py)
* Playing as Pyralis and using Spin-slash ([C][S]) hangs gameplay, you have
to abort the current level to be able to move again. (play_level.py)
Signed-off-by: Jens Rottmann
--- ardentryst/controls.py
+++ py2-3fixes/controls.py
@@ -35,7 +35,7 @@
class SET2:
def __init__(self, keycodes, x, y, set):
self.set = set
- self.keys = [Key(keycodes[c], x + ((8-c)%3) * 32, y + (c/3)*30, "B-" + str(((11-c)/3)*3 - (11-c)%3), set) for c in range(9)]
+ self.keys = [Key(keycodes[c], x + ((8-c)%3) * 32, y + (c//3)*30, "B-" + str(((11-c)//3)*3 - (11-c)%3), set) for c in range(9)]
class Key:
def __init__(self, keycode, x, y, binding, set):
--- ardentryst/magic.py
+++ py2-3fixes/magic.py
@@ -236,7 +236,7 @@
def s_init(self):
global DATA
self.affected = []
- self.cant = self.caster.mp < 4
+ self.cant = self.caster.mp[0] < 4
def s_blit(self, surf, ALT_X, ALT_Y):
global DATA
if not self.affected:
@@ -441,7 +441,7 @@
def s_init(self):
global DATA
self.affected = []
- self.cant = self.caster.mp < 15
+ self.cant = self.caster.mp[0] < 15
def s_blit(self, surf, ALT_X, ALT_Y):
global DATA
pic = DATA.mag_images["bubble.png"][0]
@@ -472,7 +472,7 @@
if self.caster.mp[0] >= 15:
self.affected.append(monster)
- self.affected.sort(lambda x, y: cmp(y.maxhp, x.maxhp))
+ self.affected.sort(key=lambda x: -x.maxhp)
if len(self.affected):
self.affected = self.affected[:1]
--- ardentryst/play_level.py
+++ py2-3fixes/play_level.py
@@ -4727,7 +4727,7 @@
self.mycombotime -= 1
if self.chainmove[1] and self.chainmove[1] > 0:
self.chainmove[1] -= 1
- if self.chainmove[1] and self.chainmove[1] == 0:
+ if self.chainmove[1] == 0:
cm = self.chainmove[:]
self.chainmove = [None, None]
getattr(self, cm[0])()
--
More information about the Pkg-games-devel
mailing list