r27848 does a lot for the Research Bench
- When you visit it, it sees how many rp are available and which skills are on offer
- wereProfessorResearchPoints is what the ResearchBench reports
- beastSkillsAvailable is the skills which are available
- beastSkillsKnown is derived from the above and is every skill you have already learned
I suppose that if you wanted beastSkillsUnknown, that would be (all skills - beastSkillsKnown), but that seems less useful than seeing which ones are currently available to purchase.
Here are the keywords we use for the 54 skills in those properties.
Code:
mus1,mus2,mus3
rend1,rend2,rend3,slaughter
hp1,hp2,hp3
skin1,skin2,skin3,skinheal
stomach1,stomach2,stomach3,feed
myst1,myst2,myst3
bite1,bite2,bite3,howl
res1,res2,res3
items1,items2,items3,hunt
ml1,ml2,ml3,feasting
mox1,mox2,mox3
kick1,kick2,kick3,punt
init1,init2,init3
meat1,meat2,meat3,perfecthair
liver1,liver2,liver3,pureblood
Those are the skill trees. The keywords are derived (shortened) from the argument you need to pass to KoL to research a skill; in full, "r=wereprof_rend1", for example. They are specified in "wereprofessor.txt".
In my first run, I researched every skill, and everything now logs prettily.
Here was my first Research Bench visit in my second run (today).
Code:
Visiting the Research Bench
Researching Osteocalcin injection (mus1) for 10 rp.
You spent 10 rp to research Osteocalcin injection.
Researching Somatostatin catalyst (mus2) for 20 rp.
You spent 20 rp to research Somatostatin catalyst.
Researching Endothelin suspension (mus3) for 30 rp.
You spent 30 rp to research Endothelin suspension.
Researching Synthetic prostaglandin (hp1) for 20 rp.
You spent 20 rp to research Synthetic prostaglandin.
Researching Dopamine slurry (mox1) for 10 rp.
You spent 10 rp to research Dopamine slurry.
Researching Galanin precipitate (myst1) for 10 rp.
You spent 10 rp to research Galanin precipitate.
Other properties set when you visit the research bench and we derive what you know:
wereProfessorLiver
wereProfessorStomach
wereProfessorRend
wereProfessorBite
wereProfessorKick
each of which can be from 0-3.
If you want to know if you have Hunt or Slaughter or whatever, you can look at beastSkillsKnown for "hunt" or "slaughter".
I created a ResearchBenchRequest class which will visit the ResearchBench or learn a skill at it.
I'm planning on adding commands that will use that request class:
-
wereprofessor research
will display the 15 skill trees as above, indicating which you know and which are currently available to buy, along with description
-
wereprofessor research hunt
will buy the skill, if it is available and you have sufficient rp.
We also need to track rp gained in combat for wereProfessorResearchPoints to be accurate without visiting the Research Bench
Given those - and the beastSkill properties - an ascension script, say, which wanted to automate buying skills could know when it can afford to buy the next skill it decides it needs.
Other suggestions are welcome, although this was a lot of work and I need to rest.