Today saw the last of my exams and school work for the year and I admit that I am more than a little pleased to be finally freed of that commitment.
As a result, the code updates of late have been few and far between, though I have managed to be able to sneak in the odd one or two:
Wisdom: It now restricts the number of skills you can learn. You'll see this bit of information at the bottom of your skill lists.
Gem-Stones: Now, when you mine you'll have a small random chance of finding a gem stone. These are worth a small packet and are very valuable to anyone who wants to get into jewellery making.
Mining: Now, certain types of mines are only detectable and minable once you reach a certain level of skill.
Scent Tracking: Another command built into the scent skill. Allows a Wolfkin to track someone they know through recog over a short distance. Exactly how far is dependant on perception and skill.
Scent Fix: Recognising someone concealed based on scent now works properly with the familiarity values and the scent skill. There was a bit of a bug there.
Recog Fix: There was a small bug that meant the list of people you have recognised was showing up wrong. This should now be fixed now.
Tir: Thanks to Tigerlily, the Tir information has been restored to the website.
I'll be posting and working on more code and the like over the next few weeks. It is good to be back :)
Last night I was predominantly working on the Pack commands. Well, one really. Sometimes something sounds really simple but can turn out to be quite complex, and that is how it turned out with the pack invite/pack accept command.
Firstly, we had to check if they were on the invite list already. So get the data from that field, loop through each value and see if they are there*. If so, fail. Also had to check and make sure it is an alpha doing the inviting, if not, fail. A few more checks and finally can invite. Need to grab the data from the invite list, add this new person to it, then resave it back there. Do appropriate echoes and that's the first half done.
Secondly, the person who has been invited needs to accept (or decline but we'll get to that another night). To accept, we need to check they have been invited*. If not, fail. If everything has the green light, then we first remove them from the invite list** and save it back. Then we loop through all 10 positions in the pack and put them in the first free slot (working from top to bottom). This, new members tend to be added at the lowest rank of the pack. Of course the Alpha can promote or demote as necessary.
* This involves pulling the list of names, which is basically "nameA nameB nameC" and splitting the list at the spaces. Each word between spaces is checked against the character name.
** This involves pulling the list of names, doing as above, loop through looking for a match. For each non-match, we put it into a new list of names, and exclude the match. The final result is saved back.