switch to requestAnimationFrame for effects
work on rules
add teleport() and refine attack()