Great work, I downloaded the creature generator and have generated 500 new creatures for my new world. Can't wait to see what they will be like in game.
With this every world that's generated can have its unique wildlife. This will really make exploring new worlds a more interesting experience.
I hope you'll continue to support this, it would be nice to have similar generators for (semi)megabeasts, and other parts of the game.
Adding semimegabeasts doesn't seem to be too much of a stretch. I'll see if I can scrape something together for the next time I upload it.
Can you edit it to allow using a customized script file plz:)
I'm really sorry, but I don't think that's going to happen. That's a bit more work than I'm willing to put into it, as it would effectively quadruple (at least) the amount of code involved, not to mention the fact that creature randomization is already mindbogglingly complex. So many pieces have to fit together just so... We've seen a number of errors in this thread, but nothing compared to the possibilities that would open up when using user-created scripts. If I was doing this professionally, I'd say yes... but as it is, I'm a guy spending his spare time doing this as a hobby of sorts.
HOWEVER. I wouldn't say no to extracting the strings in the program and letting you play around with those, these being:
- Creature name generation
- Potential bodypart list (extracting this would require a rewrite of the body code, so I'm iffy about it)
- Prefstring data
- "Wet" creature adjective list
- rock types and names (not currently implemented, but it wouldn't take more than thirty minutes)
- coloration data (blood, skin, chitin, feathers, scales, etc.)
I'm betting that's probably not what you wanted, but that's as far as I'll go, I'm afraid. The code is laughably messy as it stands, and a lot of it is commented out, but it's basically beta/alpha so I'm not freaking out over it like I would otherwise.
Two things:
Am I correct if I assume that the entitydata file could be altered, to allow custom items for the generated entities? For example adding tags for weapons that are not in vanilla DF?
And the second:
[BODY_SIZE:0:0:374]
[BODY_SIZE:1:0:7477]
[BODY_SIZE:14:0:67294,70926272]
Randomly generated creature. Seems a bit... excessive in bodywheight.
First: You are completely correct. That's part of why I put it into a script file. Just make sure you follow the bracket/colon format (e.g. left bracket but no right bracket, left colon and right bracket, etc.), or it'll create something that won't work.
Second: That shouldn't have happened... there's nothing in the file that makes that possible, though it DOES appear that I forgot to force it to round the number off, which doesn't actually affect anything as DF rounds the values off anyway. Are you sure it was a comma and not a period? It should've been "67294.7092 to the umpteenth decimal"... And 67k isn't even human size. The code for bodysize2, which is the value that controls that number, is defined by these lines:
Define bodysize2 As Decimal = round (randomdecimal(1,2) * randomdecimal(1,2) * randomdecimal(1,2) * randomdecimal(1,2) * randomdecimal(1,2) * randomdecimal(1,2) * randomdecimal(1,2) * randomdecimal(1,5) * randomdecimal(1,5) * randomdecimal(1,5) * randomdecimal(1,5) * randomdecimal(1,5) * randomdecimal(1,5) * randomdecimal(1,5))
bodysize2 = sqrt(bodysize2) * 1.4142//square root * square root of 2
bodysize2 = bodysize2 * bodysize2/*and now we square. small creatures stay small,
big creatures get bigger. easy As math. Average body size is now 75000,
right where I wanted it to be. A larger size (x2) starts out about 75000 and
ends up being around 150000. A x2 normal increase becomes a x4 increase.
The above is all subject to change. I want to make sure I get the occasional
"gigantic" creature.*/
...which basicially means it gives it a random value between 1 and 10,000,000 (
VERY heavily weighted towards the lower end of the scale), takes the square root of that and multiplies it by the square root of 2 (to the fourth decimal), and then squares it, making a min/avg/max range of (rounded) 2 (min, ridiculously rare), 74631 (avg, a little bigger than a human), and 19999200 (max, but ridiculously rare to the point you'll probably never see it).
As dragon size (as I recall - I don't have DF on this computer) is 25,000,000, while the maximum-sized creature for DFRandCreatures can
approach a dragon's stature (if you're absurdly unlucky), you're almost guaranteed to never a creature as big as a dragon.
There's nothing in the code that gives it any chance of dropping a comma, either... as demonstrated by this line (the one that adds it in):
ttl.add (" [BODY_SIZE:" + bodyage + ":0:" + bodysize2 + "]")
So I'm guessing the comma was a typo?
Hoping, anyway. Otherwise, I think my program has unfixable OS-related issues. For windows it gens things like:
[BODY_SIZE:21:0:26219.4971004]
which is completely in line with what it ought to be doing. Typo, I hope? Or are all the creatures genning that way?