source_name,target_name,armies = action
source = self.world.territory_by_name(source_name)
target = self.world.territory_by_name(target_name)
+ if not source.borders(target):
+ raise PlayerError('Cannot reach %s from %s to %s'
+ % (target, source, mode))
if mode == 'attack':
tplayer = target.player
capture = self.attack(source, target, armies)