#!/usr/bin/perl # Set up skill groups: open (FILE, "jedi"); # I'm actually not using this for anything, since it didn't really help # make anything look pretty or more readable. #my %abbrev = ( #"absorb energy" => "ae", "greater force shield"=> "gfs", #"accelerated healing"=> "aHeal", "hand to hand combat" => "h2h", #"alter technology" => "alTech", "hibernation trance" => "hTrance", #"animal affinity" => "animal aff","inflict pain" => "iPain", #"armor enhancement" => "aenhance", "injure-kill" => "iKill", #"blaster combat" => "blaster", "inspire" => "inspire", #"call the Dark Side" => "call", "launch item" => "lItem", #"channel energy" => "cEnergy", "lesser force shield" => "lfs", #"clear mind" => "cMind", "life sense" => "lSense", #"cloud mind" => "cloud", "lightsaber combat" => "lsc", #"concentration" => "conc", "magnify senses" => "mSenses", #"confusion" => "conf", "meditation" => "med", #"control pain" => "cpain", "melee combat" => "melee", #"dark suggestion" => "dSuggest", "mind trick" => "mTrick", #"detoxify poison" => "dPoison", "mindblock" => "mBlock", #"displace matter" => "dMatter", "misdirect" => "misdirect", #"dissipate energy" => "dissipate", "reduce injury" => "ri", #"distract" => "distract", "release force" => "release", #"disturbing aura" => "dAura", "resist poison" => "rPoison", #"dodge" => "dodge", "resist stun" => "rStun", #"drain crystals" => "drainC", "second childhood" => "2nd C", #"enhance metabolism" => "eMetab", "sense force" => "sForce", #"enrage" => "enrage", "soul siphon" => "sSiphon", #"envenom" => "envenom", "telekinesis" => "kinesis", #"force" => "force", "telekinetic kill" => "tKill", #"force lightning" => "fLight", "telepathy" => "tPathy", #"force storm" => "fStorm", "transfer force" => "tForce" #); # Compiled from a capture of the help files. my %sklevels = ( "absorb energy" => "C", "greater force shield"=> "C,S,A", "accelerated healing"=> "C,(A)", "hand to hand combat" => "C", "alter technology" => "C,S,A", "hibernation trance" => "C", "animal affinity" => "C,S,A", "inflict pain" => "A", "armor enhancement" => "C,S,A", "injure-kill" => "S,A", "blaster combat" => "C,S,A", "inspire" => "C,S,A", "call the Dark Side" => "C,S,A", "launch item" => "C,S", "channel energy" => "C,A", "lesser force shield" => "C,A", "clear mind" => "C,(A)", "life sense" => "S", "cloud mind" => "C,S,A", "lightsaber combat" => "C,S", "concentration" => "S", "magnify senses" => "S", "confusion" => "S,A", "meditation" => "S,C", "control pain" => "C,(A)", "melee combat" => "C", "dark suggestion" => "C,S,A", "mind trick" => "C,S,A", "detoxify poison" => "C,S,(A)", "mindblock" => "C,S", "displace matter" => "C,S,A", "misdirect" => "C,S,A", "dissipate energy" => "C", "reduce injury" => "C,(A)", "distract" => "C,A", "release force" => "C", "disturbing aura" => "C,S", "resist poison" => "C,S", "dodge" => "C,S", "resist stun" => "C", "drain crystals" => "S,A", "second childhood" => "tel 3", "enhance metabolism" => "C", "sense force" => "C,S,A", "enrage" => "C,S,A", "soul siphon" => "C,S,A", "envenom" => "A", "telekinesis" => "A", "force" => "S", "telekinetic kill" => "C,S,A", "force lightning" => "C,S,A", "telepathy" => "C,S,A", "force storm" => "S,A", "transfer force" => "C,A" ); my @tradSkills = ("second childhood", "dark suggestion", "call the Dark Side", "armor enhancement", "blaster combat"); @max5 = ("telepathy","distract","sense force","life sense",@tradSkills); my %careers; my %skills; my $career; # Grab everything from 'jedi' (just a modified log of all the help files on careers) # and store it in some hashes. while () { next if (/^#/ || /^\s*$/); if (/^(\w+ *\w* *\w*)/o) { $career = $1; $career =~ s/\s+$//; next; } if (/\s+(\w+[\- \w]*)\s+\((\d+)\)\s+(\w+[\- \w]*)\s*\((\d+)\)/) { my $skill1 = $1; my $cost1 = $2; my $skill2 = $3; my $cost2 = $4; $skill1 =~ s/\s+$//; $skill2 =~ s/\s+$//; $careers{"$career"}{"$skill1"} = $cost1 unless (grep(/^$skill1$/,@tradSkills)); $careers{"$career"}{"$skill2"} = $cost2 unless (grep(/^$skill2$/,@tradSkills)); $skills{"$skill1"}++ unless (grep(/^$skill1$/,@tradSkills)); $skills{"$skill2"}++ unless (grep(/^$skill2$/,@tradSkills)); } else { print "$_"; } } close JEDI; ########## Begin HTML output ################################################ open(OUT,">jedi.html") || die "Cannot open jedi.html!"; my $font = ""; print OUT "

Jedi Career Chart


$font
  • Jedi tradition skills and 2nd childhood won't be found on this table.
  • 2nd Childhood can be used at telepathy 3 and costs 5 skill points.
  • All Jedi Tradition skills are dependent on C, S, and A. They have difficulty 5, and can first be trained at ascention 12, mastered at 27.
  • The first number listed is the skill difficulty. The second number is the earliest ascention a jedi can become initiate to a skill (skill level 1). The third number is the earliest ascention a jedi can master a skill.
  • Keep in mind that your force skills (Control,Sense,Alter) have to be raised correctly to attain a skill at the listed ascention (for example, an Ex-Pilot who wants Lightsaber Combat at guild level 11 must raise Sense and Control to 5 and Alter to only 1 in order to do so. This may or may not be what someone would like to do, so your mileage may vary). Of course the listed Ascention is set in stone for skills dependent on all 3 force skills.


  • "; my $hbg = "bgcolor=\"#226622\""; my $bg = "bgcolor=\"#662266\""; my $header = < EOF ; my $fullheader = $header; my $j = -9; #$abbrev{$s} foreach my $s (sort keys %skills) { my @ups = split(/\s+/,$s); my @ps; foreach my $w (@ups) { push(@ps,ucfirst($w)); } my $u = join(" ",@ps); $fullheader .= ""; $header .= ""; $fullheader .= "\n" if ($j%10 == 0); $header .= "\n" if ($j++%10 == 0); } $fullheader .= "\n"; $header .= "\n"; print OUT "$fullheader"; my $i = -11; $font = ""; foreach my $c (sort keys %careers) { print OUT ""; my $j = -9; # This loop compiles the numeric information about skill v ascention etc. foreach my $s (sort keys %{ $careers{$c} } ) { $skillD = $careers{$c}{$s}; if ($s eq "concentration" || $s eq "force") { $skillF = $skillD + 20 -1; } elsif (grep(/^$s$/,@max5)) { $skillF = $skillD + 5 -1; } elsif ($s =~ /mind trick/) { $skillF = $skillD -1; } else { $skillF = $skillD + 10 -1; } my @pend = split(/,/, $sklevels{$s}); $totalDep = 3; $finalDep = scalar @pend; if (grep(/\(A\)/,@pend) ) { $initDep = scalar @pend - 1; } else { $initDep = scalar @pend; } if ($skillD <= 6) { $initLvl = $initDep * $skillD; $initLvl++ if ($initDep < 3 ); $initLvl++ if ($initDep == 1); } else { $initLvl = $initDep * $skillD + ($totalDep - $initDep) * ($skillD - 6); } if ($skillF <= 6) { $finalLvl = $finalDep * $skillF; $finalLvl++ if ($finalDep < 3 ); $finalLvl++ if ($finalDep == 1); } else { $finalLvl = $finalDep * $skillF + ($totalDep - $finalDep) * ($skillF - 6); } print OUT "\n"; print OUT "\n" if ($j++%10 == 0); } print OUT "\n"; print OUT "$header" if ($i++%12 == 0); } print OUT "$fullheader
    Career $u:
    $sklevels{$s}
    $u  
    $font $c $font $skillD | $initLvl | $finalLvl $font $c
    "; my $eof = < $font * Healer diffuculties for some spells are listed as JSI, but are skill difficulty of 11.


    Table compiled by Fjord. Email corrections/comments to Josh Buermann
    EOH ; print OUT "$eof"; close OUT; # absorb energy greater force shield # accelerated healing hand to hand combat # alter technology hibernation trance # animal affinity inflict pain # armor enhancement injure-kill # blaster combat inspire # call the Dark Side launch item # channel energy lesser force shield # clear mind life sense # cloud mind lightsaber combat # concentration magnify senses # confusion meditation # control pain melee combat # Dark suggestion mind trick # detoxify poison mindblock # displace matter misdirect # dissipate energy reduce injury # distract release force # disturbing aura resist poison # dodge resist stun # drain crystals second childhood # enhance metabolism sense force # enrage soul siphon # envenom telekinesis # force telekinetic kill # force lightning telepathy # force storm transfer force