I've always wondered why Dwarf Therapist was called that way. Would've been more accurately named Dwarf Labor Manager or something.
Any plans to use dfhack to access the traits and attributes directly? Maybe pull up a list of dwarfs, user chooses 1, the Counselor returns the guidance information?No, that well exceeds my level of technical sophistication. I know shell scripting, JavaScript, and PHP. And I don't know them very well, but well enough for limited projects like this.
JMZ
JavaScript is the tool of evil hackers, therefore forbidden from writing to disk directly.Really? That's fecking awful, like cripple-ware. I can do this in VBScript. Maybe I can help you automate this.
I'm playing a forum game in the upper forums, and one of my victory conditions for DGC -- The Game is for someone who knows a real programming language to take this over. Bonus points if that person is the project manager of Dwarf Therapist, and decides to integrate this functionality somehow. In my mind when you click on a dwarf's row, and hit a toggle, little smiley and frowny faces appear. That could easily be visually cluttered and a bad idea, but after I win DGC -- The Game it's not my problem any more. ;DJavaScript is the tool of evil hackers, therefore forbidden from writing to disk directly.Really? That's fecking awful, like cripple-ware. I can do this in VBScript. Maybe I can help you automate this.
EDIT: Cool, but I dropped strength to 1 as a test, and it only lists jobs he's not good at. How about listing top suggestions?
I guess I could pop out a random suggestion among average jobs for dorfs with all negatives... maybe code it green? I'll ruminate, and perhaps hauntingly moo.It just seemed incomplete and a bit useless to only list things not to do with him, so I thought I'd point out this case. More useful to list the things he's not nerfed at. The list in red was quite long, I'm not sure how many jobs in total there are in your program, but having a green list can't be that much longer.
It just seemed incomplete and a bit useless to only list things not to do with him, so I thought I'd point out this case. More useful to list the things he's not nerfed at. The list in red was quite long, I'm not sure how many jobs in total there are in your program, but having a green list can't be that much longer.Right now I have fifty jobs or categories. So if you've got a word wall of thirty red skills, you'd also get a word wall of twenty green skills, which I want to avoid. With the current number of skills, I could echo the 18x3 table on the left, and make a 17x3 table listing every skill, plus a row for text eval if any. But that scales badly, and there are seven implemented skills I want in the script but don't have data on yet.
The issue seems to be skipping over the category of "average" jobs, it goes straight from "good" to "poor". Maybe have this as options (show > average, show > poor, etc).
btw, exactly what does an "Intimidator" profession do in-game? Or is this just the skill level being considered? There needs to be a text file defining roles, which may use one or more skills. e.g. some dwarves seem a lot faster. I'd like to make these haulers, but that's not linked to a specific skill.Intimidation is used by brokers against caravans to get better deals AFAIK. I don't know what you mean by roles, if you mean like "What makes a good mayor/sheriff/etc." I've intentionally kept quiet about that until (and unless) the DGC userbase is big enough to get a consensus on how people want that handled.
A simple checkbox for "show only best skills" works for me. Show all blue skills and no red skills, unless there are no blue skills, in which case show green skills, and never show green skills otherwise.That's pretty much what I was after.
...I don't know what you mean by roles, if you mean like "What makes a good mayor/sheriff/etc."...By roles I mean more like any "job description" which may possibly involve multiple skills. This would be highly user-dependent, so would be best served by letting players create and share profiles in which they weight various skills and abilities, with their own custom Professions, much like how Dwarf Therapist handles it, but with user-defined weightings on the various skills.
Mmm nice app mate. I might have a poke about with it since Javascript is kinda my thing and im projectless right now.
Incidentally you can get your javascript to write to the local disk, provided you can persuade your user to grant some 'trust'.
My favorite method is a java applet embedded in the html that handles local file system stuff. Self-sign it and users can trust it to let it do its thing. You can also do some filesystem operations with an ActiveX control but I imagine more users are gonna have these off/blocked.
By roles I mean more like any "job description" which may possibly involve multiple skills. This would be highly user-dependent, so would be best served by letting players create and share profiles in which they weight various skills and abilities, with their own custom Professions, much like how Dwarf Therapist handles it, but with user-defined weightings on the various skills.
I wonder if there's a way for their item preferences (http://df.magmawiki.com/index.php/Preference) to also be considered.
For example, a dwarf that likes steel would make a good weaponsmith or armorsmith, since he'll get a bonus on quality on anything he makes with steel.
That's what I was talking about. I think I'll download the src for DT and learn how to build it. Maybe I can get a lua scripting engine working or something, if it isn't too difficult for some reason.
My secret personal fantasy is using a program like this to determine what a dwarf's political alignment would be via their personality, for something like tallying made-up votes of a "dwarven senate" for a self-imposed challenge game. I spent a while trying to devise a pen-and-paper calculation system for this but eventually gave up.
maybe it's just a fluke, but all my dwarves are waaay happier than they normally are at this point in the game.
This is the sort of thing I could do, technically, but the question is the specs. You nominate dwarfs to the Senate, the script keeps their relevant traits around, and that Senate takes certain pre-defined sorts of votes? We players see ourselves as the will of the Republic, and limit our actions somehow?
For example, a dwarf that likes steel would make a good weaponsmith or armorsmith, since he'll get a bonus on quality on anything he makes with steel.
I hear DT is looking for a project manager, isn't it? I'd love to shut DGC down and tell everybody DT does it all now.
Yes, you're mostly right. I figured that dwarf culture was work-centric, meaning that their governments would be designed around guilds (I called them "associations" in the plans I wrote up). The associations would lobby and compromise for the professions they represented in the legislature, attempting to gain them greater influence in the fortress economy.
(lua is very simple and somewhat similar to javascript)
I'm guessing you name them guilds now because you see that Toady has such things in the devlog? So we should put off planning this bit of metagaming until we know how they're implemented in-game? I mean, you can PM me all the details if you want, so I can get a full idea of the scope.
I can't get the new version to work. I'm using the correct version of firefox and I patched runesmith, however the Dwarf List contains only three of my dwarves with their skills listed below each one as if they were dwarves.. Looking at my xml file and the one you included it seems that Runesmith is exporting all info despite only the 5 needed being ticked... I don't know what's wrong :/
Your sample worked perfectly. My fortress has 40 dwarves, however it doesn't look like that's the issue, as I just tested and still had the same issue with a brand new fortress...
edit: I just retried and made the xml whilst on the embark screen instead of in game, and it worked perfectly.
dwarfnames[i]=xmlDoc.getElementsByTagName("Creature")[i].getElementsByTagName("Name")[0].childNodes[0].nodeValue;
There's a bug in the script, preventing the names of the dwarves from being picked up properly from Runesmith exports. The issue seems to be that Runesmith always includes a Skills dump even if you didn't request it, which includes a tag called "Name".
Hacky fix, but change line 105 to read this:Code: [Select]dwarfnames[i]=xmlDoc.getElementsByTagName("Creature")[i].getElementsByTagName("Name")[0].childNodes[0].nodeValue;
document.getElementById("dwarfname").value=xmlDoc.getElementsByTagName("Creature")[pick].getElementsByTagName("Name")[0].childNodes[0].nodeValue;
document.getElementById("dwarfname").value=dwarfnames[pick];
Awesomeness :) Would you consider making it recognise nicknames so that new migrants can be easily identified?
This is great! Out of the seven starting dwarfs, I got three "good" job matches, two "above average", and two who weren't good for much of anything. :)
Can this be used to read and sort likes and preferences? I want to find that one guy who likes slade in my fortress, and kill him, then take the one who likes gold and make him a metalsmith.
My few minor feature suggestions:[...]
Hope some people find any changes I made useful! :)
Hope some people find any changes I made useful! :)Thank you, i use it a lot.
Just saw in the change log for dfhack that they've added a new "dwarfexport" command to spit out RuneSmith compatible XML files for quick loading into Dwarven Guidance Counselor.
Does anyone else still use DGC? I use it constantly, but I haven't seen any updates 'round here in a long long time. I'm guessing AnnanFay is no longer around or working on it?
If you *are* still around, big thanks for making DGC, even if you're not able to continue updating it -- it significantly improves my DF experience. :)
I stopped working on DGC for a long while though recently I have started developing it again. I'm currently reprogramming it to be a dfhack module with GUI (though I didn't know about dwarfexport). I'm not fond of C++ so I am writing it in a mix or Clojure and Java, both of which I am relatively new to. It will be about 1-2 months before I release a new version.
Just saw in the change log for dfhack that they've added a new "dwarfexport" command to spit out RuneSmith compatible XML files for quick loading into Dwarven Guidance Counselor.
Does anyone else still use DGC? I use it constantly, but I haven't seen any updates 'round here in a long long time. I'm guessing AnnanFay is no longer around or working on it?
Just thought i'd give this a try, and when using the latest dfhack to export i noticed that the original DGC works fine but your "jui" version AnnanFay doesn't work with it? unless i'm doing something wrong, it just won't read in any XML file.
And what is the DGC-spread.html file for? it doesn't seem todo anything just gives me a blank screen.
Seems odd that i'd get immigrants with say 10 in weaving and the DGC says they'd make a poor weaver ;p i guess he really just likes weaving!
Maybe i got the wrong files originally...i clicked the download button on github and it downloaded AnnanFay-dgc-2b601a0 even though i started from the jui tree. So i had to copy pasta the link it would have downloaded, and then replaced master with jui and now i have the correct files using AnnanFay-dgc-cce541a...
I don't use FF, but downloaded the latest FF(10) portable but still issues though, it sees my xml file, but i guess refuses to read it in as i get no dwarves displayed down the left in the browser window. Maybe some config setting i need to change? although i saw nothing obvious. I'll email you a screenshot and my XML anyways and a copy of this post.
Not sure if i found an issue here, but i noticed one of my dwarfs has a much higher Pacifier value that anyone else. So i took a look at her in DGC and it says:
Because of personality problems She cannot be a:
[deek] Liar
[deek] Leader/manager
(2 Consoling 6 Pacification)
Her unassertive nature won't allow her to attempt Persuasion.
She cannot be relied on to Pacify others.
She is too straightforward to Lie or Flatter.
I checked an earlier save(only around a few months of gametime earlier) which i had laying around with this being my 1st big fortress and i was experimenting. And it was lower so it's not like she came to my fort with it being high. She was a 5th wave migrant so has been around a few years.
So, is something wrong with DGC calc's, or maybe just because she had a slightly higher pacify value than other dwarfs that they went to see her, which then slowly kept increasing her's above others and so the same cycle repeats?
PS And what does [deek] mean anyways?
File sent :)
Thank you for this tool. It's been really handy in the past.
I do have one request / suggestion and figure someone likely suggested it before. It would be nice if we could tell it we want x number of dwarves and what jobs we want each dwarf to do and have it tell us which set of dwarves fill the roles least worst.
Profs a b c
Urist1 4 0 7
Urist2 2 1 8
Urist3 4 3 5
Urist4 1 6 5
Urist5 8 7 6
Urist6 6 2 6
Profs a b c
Urist5 8 7 6
Urist2 2 1 8
Urist1 4 0 7
Urist4 1 6 5
Urist6 6 2 6
Urist3 4 3 5
Thanks :) I narrowed down the problem, the export says she "Doesn't like to compromise with others". The wiki says this means she is between 25 and 39 cooperation. The wiki also says that if she's below 40 she can't gain pacifier levels.
If you look at her in game description to see if it says "Doesn't like to compromise with others"?
If it says that then the wiki is wrong, otherwise runesmith is exporting incorrect data.
Here is a dump of what you need i think:Spoiler (click to show/hide)
Inside here are dumps from DT and Runesmith about what it says they have set. And to me, it looks as though what DT says and what Runesmith says for Trait's don't match? The DT readout seems more inline with the TnPs ingame above?Spoiler (click to show/hide)
It could try every possible arrangement of jobs, rank each arrangement, and give you the highest scoring arrangement. It could rank each individual dwarf in each arrangement by how well he fits the jobs allocated and the overall arrangement rank could just be all the individual ranks added together. This is kind of a brute method and wouldn't be ideal for large numbers of dwarves but for the starting seven it should be fine. I'd imagine someone could come up with a better method, though.Thank you for this tool. It's been really handy in the past.
I do have one request / suggestion and figure someone likely suggested it before. It would be nice if we could tell it we want x number of dwarves and what jobs we want each dwarf to do and have it tell us which set of dwarves fill the roles least worst.
This is a good idea! I've been thinking about it while working on the current version though I'm still unsure how to add it to the interface. Maybe I'll post a screenshot later to see if anyone has any ideas.
Also, given a list of professions and dwarfs, what is the best way to deal the dwarves?
-snip-
Any ideas?
By the way chrisadams3997 on the Dwarf therapist thread http://www.bay12forums.com/smf/index.php?topic=66525.1320 has intentions of intetgrating DGC features into Dwarf Therapist. One could in theory open up the DGC.html and just copy the formulas down (there simply averages of the basic stats that make up that profession) and create filter scripts in Dwarf Therapist. The only issue is you have to set a threshold of what you want to view. It might not be possible to create a new data column based on the average.
A few months ago I forked DGC and made some changes to it. This was more of a personal convenience than anything else. Out of boredom I added a few more things, then rewrote most of the interface. Even had a look at making a patch for DT, however my C++ skills are meager so I didn't get far.
knaveofstaves seemed enthusiastic and said he'd test it on his next fortresses, however never got back when I replied to him. I didn't want to be in charge of this project as my interests are fickle. This is why I waited so long before posting on here.
I'm not planning on developing it much further, though I'll fix minor bugs people point out. In a few months I may (or may not) work on it some more, but it would be in the form of an application using DF Hack. (C++ gives me headaches)
The current version was tested with Firefox 5 only and XML files.
Old updated version: https://github.com/AnnanFay/DGC/
Most recent version: https://github.com/AnnanFay/DGC/tree/jui
Hope some people find any changes I made useful! :)
It could try every possible arrangement of jobs, rank each arrangement, and give you the highest scoring arrangement. It could rank each individual dwarf in each arrangement by how well he fits the jobs allocated and the overall arrangement rank could just be all the individual ranks added together. This is kind of a brute method and wouldn't be ideal for large numbers of dwarves but for the starting seven it should be fine. I'd imagine someone could come up with a better method, though.
Thank you for this tool. It's been really handy in the past.
I do have one request / suggestion and figure someone likely suggested it before. It would be nice if we could tell it we want x number of dwarves and what jobs we want each dwarf to do and have it tell us which set of dwarves fill the roles least worst.
This is a good idea! I've been thinking about it while working on the current version though I'm still unsure how to add it to the interface. Maybe I'll post a screenshot later to see if anyone has any ideas.
Also, given a list of professions and dwarfs, what is the best way to deal the dwarves?
-snip-
Any ideas?