A first pass at the damage curve problem:
http://www.giantitp.com/forums/showthread.php?t=81786