-from plomrogue.errors import PlayError
+from plomrogue.errors import PlayError, GameError
from plomrogue.mapping import YX
class Task_WRITE(Task):
todo = 1
- argtypes = 'string:char'
+ argtypes = 'string:char string'
def check(self):
- pass
+ if not self.thing.game.can_do_tile_with_pw(self.thing.position,
+ self.args[1]):
+ raise GameError('wrong password for tile')
def do(self):
self.thing.game.map[self.thing.position] = self.args[0]
class Task_FLATTEN_SURROUNDINGS(Task):
todo = 10
+ argtypes = 'string'
def check(self):
pass
def do(self):
- self.thing.game.map[self.thing.position] = '.'
- for yx in self.thing.game.map_geometry.get_neighbors(self.thing.position).values():
+ for yx in[self.thing.position] + \
+ list(self.thing.game.map_geometry.get_neighbors(self.thing.position).values()):
if yx is not None:
+ if not self.thing.game.can_do_tile_with_pw(yx, self.args[0]):
+ continue
self.thing.game.map[yx] = '.'