fixed attack logic