I've been trying to figure out how to do this for ages, and I think I've figured out a system that works alright, at least. Not playtested y…