Stellarcore.net

Stellarcore.net

The Ruby version of the script.

#!/usr/bin/ruby

def level_th(number)
   number_th = number.to_s
   if number == 11 or number == 12 or number == 13
      number_th = number_th + "th"
   elsif number_th[-1] == "1"
      number_th = number_th + "st"
   elsif number_th[-1] == "2"
      number_th = number_th + "nd"
   elsif number_th[-1] == "3"
      number_th = number_th + "rd"
   else
      number_th = number_th + "th"
   end

   return number_th
end

begin
   #Globals
   max_lvl = 40

   #Main
   system("clear")
   #Windows and DOS use
   #system("cls")

   #Headers
   print "Char \t \tClass Skill\tCC Skill\t \tStat\t\n"
   print "Level\tXP\tMax Ranks\tMax Ranks\tFeats\tIncreases\t\n"

   #Main loop
   xp = 0
   feats = 0 
   stats = 0

   for level in  1...max_lvl + 1
      xp = (xp + (level - 1) * 1000)
      maxranks = level + 3
      maxcc = maxranks / 2.0

      feat_check = level % 3
      feats_out = "--"
      if feat_check == 0 || level == 1
         feats = feats + 1
         feats_out = level_th(feats)
      end

      stat_check = level % 4
      stats_out = "--"
      if stat_check == 0
         stats = stats + 1
         stats_out = level_th(stats)
      end

      level_out = level_th(level)

      printf " %s\t%d\t%d\t\t%g\t\t%s\t%s\t\n", level_out, xp, maxranks, maxcc, feats_out, stats_out
 
   end

end
# vi: shiftwidth=3 tabstop=3 et