User:Alejandro
From LiberationMUSH Wiki
Tally counter for a spendable that isn't covered by the +burn and +gain system This is unofficial code and is used for personal record keeping only. You can only have one at a time at present, because I haven't the mental capacity to improve it at at the moment.
@create treasure=10 &VAR.CAP treasure=10 &VAR.CURRENT treasure=10 &VAR.POOL.NAME treasure=Glamour &VAR.ITEM.type treasure=Treasure &CMD.SPEND treasure=$^\+item/spend( \\d*)?$:@assert [gte(setr(remaining,u(var.current)),setr(arg,ifelse(%1, trim(%1),1)))]=@pemit %#=You cannot spend [r(arg)][u(var.pool.name)], you only have [r(remaining)] left in your [u(var.item.type)]'s pool.;&var.current me=setr(newRemaning,sub(r(remaining), r(arg)));@pemit %#=You have spent [r(arg)] [u(var.pool.name)] of your [u(var.item.type)]'s [u(var.pool.name)], you have [r(newRemaining)] left. @set treasure/CMD.SPEND = regexp &CMD.POOL treasure=$+item/pool:@pemit %#=Your [u(var.item.type)] has [u(var.current)] [u(var.pool.name)] left. &CMD.CHARGE treasure=$^\+item/charge( \\d+)?$:@pemit %#=Topped up your [u(var.item.type)]'s [u(var.pool.name)] by [setr(amount,ifelse(gt(add(%1,u(var.current)),u(var.cap)), [sub(u(var.cap),u(var.current))], [trim(%1)]))];&var.current me=[add(u(var.current), r(amount))] @set treasure/CMD.CHARGE = regexp @set treasure=!no_command