#
# Karl's 0 alignment gain port upgrading script
# 
# You want XP but no alignment change?  Here's a solution.
#
#

send "o 1*o 2*o 3*"
waitFor "Command [TL="

echo "*How many units of fuel ore?*:"
getConsoleInput $oreUnits
setVar $mod_x $oreUnits
setVar $mod_n 19
goSub :sp_mod
setVar $ore_cycles $mod_div
#echo "cycles = " $ore_cycles "*"
setVar $ore_leftovers ($ore_cycles * $mod_n)
#echo "*" $ore_cycles " x " $mod_n " = " $ore_leftovers "*"
setVar $ore_leftovers $mod_r
#echo "*" $oreUnits " - " $ore_leftovers " = " $ore_leftovers "*"

echo "*How many units of organics?*"
getConsoleInput $orgUnits
setVar $mod_x $orgUnits
setVar $mod_n 9
goSub :sp_mod
setVar $org_cycles $mod_div
setVar $org_leftovers ($org_cycles * $mod_n)
setVar $org_leftovers $mod_r

echo "*How many units of equipment?*"
getConsoleInput $equUnits
setVar $mod_x $equUnits
setVar $mod_n 6
goSub :sp_mod
setVar $equ_cycles $mod_div
setVar $equ_leftovers ($equ_cycles * $mod_n)
setVar $equ_leftovers $mod_r

# echo "*" $ore_cycles ", " $ore_leftovers
# echo "*" $org_cycles ", " $org_leftovers
# echo "*" $equ_cycles ", " $equ_leftovers "*"

send "o"

setVar $i 1
while ($i <= $ore_cycles)
  send " 119*"
  add $i 1
end 
if ($ore_leftovers <> 0)
  send " 1" $ore_leftovers "*"
end

setVar $i 1
while ($i <= $org_cycles)
  send " 29*"
  add $i 1
end
if ($org_leftovers <> 0)
  send " 2" $org_leftovers "*" 
end

setVar $i 1
while ($i <= $equ_cycles) 
  send " 36*"
  add $i 1
end
if ($equ_leftovers <> 0)
  send " 3" $equ_leftovers "*"
end

send "*"

halt
:sp_mod
  # mod_x mod mod_n = mod_r
  setVar $mod_div  ($mod_x / $mod_n)
  # echo "*" $mod_x " / " $mod_n " = " $mod_div 

  setVar $mod_sub  ($mod_n * $mod_div)
  # echo "*" $mod_n " x " $mod_div " = " $mod_sub 

  setVar $mod_r  ($mod_x - $mod_sub)
  # echo "*" $mod_x " - " $mod_sub " = " $mod_r "***"

return
