Tuesday, April 3, 2012

The more the merrier!

grep would like you adventure with you. Will you join them? [Y]/N:
Adventuring Party formed! Leader: grep Members: [grep, josiah]
Name Level
grep 1
josiah 1

This past week I have had myself neck deep in Character Grouping code to allow for folks to invite/join an adventurer party complete with its own chat channel and of course; bonuses. Thankfully evennia makes this fairly complex problem easy to solve. Comm channels are already there and easy to add/delete. So in the end, my coding wasn't necessarily all the difficult but just time consuming to test and debug.

As it stands now, I have an object class that represents a Character Group. This objects has all the functions needed to interact with the group (invite, disband, kick, promote) and is also what stores the Communications channel created for the the members to be able to talk in their own private communication channel that no one else is privy to. As I said, this part is fairly trivial when using Evennia since all of that 'icky' code has already been done for me. I then store this 'group object' on each character model who is a member, and also set a boolean flag showing their sentinel script that they are in fact grouped. This is used to remove the party chat command when the character is not actively grouped.

Now that I have completely functioning grouping, the only thing left to do is: loot arbitration, corpse tagging and making a decision on what types of bonuses grouping gives players. Should it be a flat exp percentage bonus? Should you find more/rarer loot since technically you have more people looking and inspecting their surroundings? Also I have to decide what I am going to do about combat. At the current implementation, combat is and can only be between two people. Grouping is not taken into account, though the attributes for combat ai exist, the logic is not there to support it. So I still have quite a bit of work cut out for me with this specific piece of the game, but it's a very important aspect that needs to be done fairly and correctly.

The next portion that some what goes hand in hand with this is the player friendlist, which exists at the moment but is very, very primitive. I coded it quickly in about an hour or two and got the basic functionality then left it for more important tasks at the time. Seems a good time to circle back around and finish it up and put some polish on it. All in all, I am still aiming for an open alpha testing period at the end of april/very beginning of May!

No comments:

Post a Comment