Added basic attack framework

Needs a major overhaul of how entities are handled, but I think I'm done
for now.