+ def fortify(self, source, target, armies):
+ if source.player != target.player:
+ raise PlayerError('%s (%s) cannot fortifiy %s (%s).'
+ % (source, source.player, target, target.player))
+ if armies == 0:
+ return
+ if armies >= source.armies:
+ raise PlayerError('%s fortifying %s with %d armies, but only %d are available.'
+ % (source, target, armies, source.armies-1))
+ if not source.borders(target):
+ raise PlayerError('Cannot reach %s from %s to fortify'
+ % (target, source))
+ source.armies -= armies
+ target.armies += armies
+ self.log(Fortify(source, target, armies))