fix a bug in canAffordTool func