refactor PropManager buy and consume function.