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 client, ensure item pointer is always within range.
[plomrogue2-experiments]
/
new
/
plomrogue
/
tasks.py
diff --git
a/new/plomrogue/tasks.py
b/new/plomrogue/tasks.py
index 58ee46d616925d50c678aa1a0030b5f5d4fa4fa4..6f2f1be9ee4397630059c35eece39ebd48bda99f 100644
(file)
--- a/
new/plomrogue/tasks.py
+++ b/
new/plomrogue/tasks.py
@@
-48,7
+48,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
+58,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
+67,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
+75,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])