Changes:
- requires Oolite 1.9 now
- fixed several broken function calls
- changed names of internal variables and resources to avoid conflicts
- сhange in setting comms messages, it now requires a description.plist entry to be defined in format:
"personalities-<personality name>-messageTypes" = "<list of space separated message types>"; - added method for adding role to apppear on specified condition, such as system id, after some event etc. Usage example:
Code: Select all
worldScripts.personalities._addConditionalAppearance("personalities_daddyhoggy", function weight() { return galaxyNumber == 0 && system.ID == 147 ? 100 : 0; }, function position(type) { if(type === "LAUNCH") return undefined; // Use standart rules: spawn near station in space or via launching if(type === "EXIT_WITCHSPACE") return Math.random() < 0.5? new Vector3D() : undefined; // in half cases spawn near witchpoint });
Download
There is still a lot of work to be done here. For example, AI sometimes freezes for a couple of seconds after attacking it, sometimes it cannot decide whether it attacks the player or not. If I ever get around to changing the AI, and most likely I will try to rewrite it again, in plist form it scares me. It would also be nice to improve the talkativeness of the NPCs, from time to time they just say the same phrase - Disembodied once gave me the line "I hope you're insured!" three times in a row in one fight.
However, the main problem, of course, is too few personalities. You can send your personalities to me and I will be glad to try to implement them.
Also I will try not to forget to post instructions later on how to add new personalities on your own.
Edit: Posting in the middle of the night is not a good idea - before packing OXP I decided to disable the shiplibrary.plist file, but disabled shipdata.plist instead. The link now points to the corrected file.