home
·
contact
·
privacy
projects
/
plomrogue2-experiments
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
In examine cursor mode, show map cell contents in left bar.
[plomrogue2-experiments]
/
new
/
plomrogue
/
tasks.py
diff --git
a/new/plomrogue/tasks.py
b/new/plomrogue/tasks.py
index 58ee46d616925d50c678aa1a0030b5f5d4fa4fa4..c54d0899b98ecb56ec2c4fe422ec357086951df2 100644
(file)
--- a/
new/plomrogue/tasks.py
+++ b/
new/plomrogue/tasks.py
@@
-37,6
+37,8
@@
class Task_MOVE(Task):
def check(self):
test_pos = self.thing.world.map_.move(self.thing.position, self.args[0])
def check(self):
test_pos = self.thing.world.map_.move(self.thing.position, self.args[0])
+ if test_pos is None:
+ raise GameError('would move outside map bounds')
if self.thing.world.map_[test_pos] != '.':
raise GameError('%s would move into illegal terrain' % self.thing.id_)
for t in self.thing.world.things:
if self.thing.world.map_[test_pos] != '.':
raise GameError('%s would move into illegal terrain' % self.thing.id_)
for t in self.thing.world.things:
@@
-48,7
+50,7
@@
class Task_MOVE(Task):
self.args[0])
for id_ in self.thing.inventory:
t = self.thing.world.get_thing(id_)
self.args[0])
for id_ in self.thing.inventory:
t = self.thing.world.get_thing(id_)
- t.position
[:]
= self.thing.position
+ t.position = self.thing.position
@@
-58,11
+60,8
@@
class Task_PICKUP(Task):
def check(self):
to_pick_up = self.thing.world.get_thing(self.args[0],
create_unfound=False)
def check(self):
to_pick_up = self.thing.world.get_thing(self.args[0],
create_unfound=False)
- if to_pick_up is None:
- raise GameError('no thing of ID %s to pick up' % self.args[0])
- if not (self.thing.position == to_pick_up.position or
- tuple(to_pick_up.position) in
- self.thing.world.map_.get_neighbors(self.thing.position)):
+ if to_pick_up is None or \
+ to_pick_up.id_ not in self.thing.get_pickable_items():
raise GameError('thing of ID %s not in reach to pick up'
% self.args[0])
raise GameError('thing of ID %s not in reach to pick up'
% self.args[0])
@@
-70,6
+69,7
@@
class Task_PICKUP(Task):
to_pick_up = self.thing.world.get_thing(self.args[0])
self.thing.inventory += [self.args[0]]
to_pick_up.in_inventory = True
to_pick_up = self.thing.world.get_thing(self.args[0])
self.thing.inventory += [self.args[0]]
to_pick_up.in_inventory = True
+ to_pick_up.position = self.thing.position
@@
-77,11
+77,10
@@
class Task_DROP(Task):
argtypes = 'int:nonneg'
def check(self):
argtypes = 'int:nonneg'
def check(self):
- to_pick_up = self.thing.world.get_thing(self.args[0],
- create_unfound=False)
- if to_pick_up is None:
+ to_drop = self.thing.world.get_thing(self.args[0], create_unfound=False)
+ if to_drop is None:
raise GameError('no thing of ID %s to drop' % self.args[0])
raise GameError('no thing of ID %s to drop' % self.args[0])
- if to_
pick_u
p.id_ not in self.thing.inventory:
+ if to_
dro
p.id_ not in self.thing.inventory:
raise GameError('no thing of ID %s to drop in inventory'
% self.args[0])
raise GameError('no thing of ID %s to drop in inventory'
% self.args[0])