@program resource-adjust.muf 1 1000 d i $include $lib/rp $include $lib/alynna $include $muf/resources lvar param : valid_resource? ( s -- i ) resourcelist swap array_matchval array_count ; : resview var target param @ not if me @ name param ! then me @ mlevel 4 < if me @ target ! else param @ resolve target ! then target @ int 0 < if "Invalid or ambiguous target." "Resview" pretty tellme exit then target @ mdisp ; : resreset var item var value var target param @ target ! me @ mlevel 4 < if "^RED^Permission denied.^NORMAL^" tellme exit then param @ not if "Format: +resreset " "RReset" pretty tellme exit then target @ resolve target ! target @ int 0 < if "Invalid or ambiguous target." "Resview" pretty tellme exit then target @ "/@rp/resources/" array_get_propvals foreach value ! item ! target @ "resources/" item @ strcat 0 setstat repeat target @ "resourcesspent" 0 setstat target @ str "Your resource investments have been reset by " me @ "." cat "RReset" pretty ansi_notify me @ str target @ "'s resource investments have been reset by you." cat "RReset" pretty ansi_notify ; : radjust var target var item var oldvalue var value var newvalue var plus var count var res-spent me @ mlevel 4 < if "^RED^Permission denied.^NORMAL^" tellme exit then param @ not if "Format: +radjust ==(+)" "radjust" pretty tellme str "Valid resources: " resourcelist array_commas cat "radjust" pretty tellme exit then param @ "=" explode count ! count @ 3 = not if depth popn "Format: +radjust ==(+)" "radjust" pretty tellme exit then resolve target ! item ! dup "+" instr if 1 plus ! "" "+" subst else 0 plus ! then tofloat value ! target @ int 0 < if "Invalid or ambiguous target." "radjust" pretty tellme exit then item @ valid_resource? not if str "Valid resources: " resourcelist array_commas cat "radjust" pretty tellme exit then target @ "resourcesspent" getstat res-spent ! target @ "resources/" item @ strcat getstat oldvalue ! plus @ if oldvalue @ value @ + newvalue ! else value @ oldvalue @ - value ! oldvalue @ value @ + newvalue ! then item @ "gem mine" smatch item @ "refinery" smatch or if value @ 0 > if res-spent @ value @ 2.0 * + res-spent ! else res-spent @ value @ fabs 2.0 * - res-spent ! then else res-spent @ value @ + res-spent ! then target @ "resourcesspent" res-spent @ setstat target @ "resources/" item @ strcat newvalue @ setstat str "Resource " item @ " on " target @ unparseobj " adjusted by " value @ 4 fchop " from " oldvalue @ 4 fchop " to " newvalue @ 4 fchop cat "radjust" pretty tellme ; : main param ! command @ tolower case "+resview" smatch when resview end "+resreset" smatch when resreset end "+radjust" smatch when radjust end endcase ; . c q