• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

a Seadogs/AOP officer system

zorglub

Privateer
Storm Modder
<img src="style_emoticons/<#EMO_DIR#>/hi.gif" style="vertical-align:middle" emoid=":gday" border="0" alt="hi.gif" /> , fellow PotC modders,

As you might know, I have been doing some experiments on changing the officer system.
Here is an overview on what I've done.

My first goal was to answer this question : is it possible, in PotC, to change the officer system so that it looks/works similar to Seadogs or AOP system?
This would requires several changes :

- twart the limitation of the three-officers-at-the-time system.
- make so that officers contribute only to certain skills & perks, depending on their speciality.

I've packed up my experimental code into something you guys can look at ; it's on the FTP, in my folder. (new_officer_system.rar)




<img src="style_emoticons/<#EMO_DIR#>/readon.gif" style="vertical-align:middle" emoid=":mm" border="0" alt="readon.gif" /> First thing to notice : I've created a new file, officers.c, that contains the most important part of the code.

* InitOfficersType() function, that creates all kind of officer you can have on your ship
* functions to assign/remove a character to those different positions in your ship
* two rewritten functions that deal with party skills/perks



Here's a typical part of InitOfficersType :

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->    //Carpenter
    makeref(officer, Officer_type[n]);
    officer.name = "Carpenter";
    officer.skill.Leadership = 0;
    officer.skill.Fencing = 0;
    officer.skill.Sailing = 0;
    officer.skill.Accuracy = 0;
    officer.skill.Cannons = 0;
    officer.skill.Grappling = 0;    
    officer.skill.Repair = 1;
    officer.skill.Defence = 0;
    officer.skill.Commerce = 0;
    officer.skill.Sneak = 0;
    officer.perk.LightRepair = 1;
    officer.perk.InstantRepair = 1;
    n++;<!--c2--></div><!--ec2-->

This one will contribute only to repair skill, LightRepair, and InstantRepair perks.
Please note that I've added an officer called 'captain' who deals with all skills, and all perks.

The functions that assign/remove an officer are not very elaborated : it just stores the index number of that character as a .Ship.Officers.[officer_type name] attribute of the character that haves the ship.

The two rewritten functions are GetSummonSkillFromName from PROGRAM\Characters\CharacterUtilite.c, and GetOfficersPerkUsing from PROGRAM\INTERFACE\Perks\perks.c.
I'll quickly show you how they looked like :

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->int GetSummonSkillFromName(ref _refCharacter, string skillName)
{
    int sumSkill = GetCharacterSkill(_refCharacter,skillName);
    int i,cn,curSkill;
    for(i=1;i<4;i++)
    {
        cn = GetOfficersIndex(&_refCharacter,i);
        if(cn!=-1)
        {
            curSkill = GetCharacterSkill(GetCharacter(cn),skillName);
            if(sumSkill<curSkill)
            {
                sumSkill = curSkill;
            }
        }
    }
    return sumSkill;
}<!--c2--></div><!--ec2-->

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->bool GetOfficersPerkUsing(ref chref, string perkName)
    {
        for(int i=0; i<4; i++)
        {
            int cn = GetOfficersIndex(chref,i);
            if(cn<0) {continue;}
            if( GetCharacterPerkUsing(&Characters[cn], perkName) ) {return true;}
        }
        return false;
    }<!--c2--></div><!--ec2-->

And here is how I changed them : in stead of checking you plus the three other guys in the three available slots, now it checks if some officers are supposed to help you with this skill/perks, than gets the index of this officer if you got one, than checks if his skill is higher or if he has the perk.

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->    int GetSummonSkillFromName(ref _refCharacter, string skillName)
    {
        int sumSkill = GetCharacterSkill(_refCharacter,skillName);
        int i,cn,curSkill,n;

        for (n = 0; n < MAX_OFFICER_TYPES; n++)
        {
            ref officer;
            makeref(officer, Officer_type[n]);
    
            if(CheckAttribute(officer, "skill." + (skillName)) && sti(officer.skill.(skillName)) > 0)
            {    
                string _post = officer.name;
                cn = Get_ship_OfficersIndex(&_refCharacter, _post);
                if(cn!=-1)
                {
                curSkill = GetCharacterSkill(GetCharacter(cn), skillName);
                if(sumSkill<curSkill) sumSkill = curSkill;
                }
                
            }
        }
    return sumSkill;
    }

    bool GetOfficersPerkUsing(ref chref, string perkName)
    {
        for (int n = 0; n < MAX_OFFICER_TYPES; n++)
        {
            ref officer;
            makeref(officer, Officer_type[n]);

            if(CheckAttribute(officer, "perk." + (perkName)))
            {
                string _post = officer.name;
                int cn = Get_ship_OfficersIndex(&chref, _post);

                if(cn<0) {continue;}
                if( GetCharacterPerkUsing(&Characters[cn], perkName) ) {return true;}
            }
        }
        return false;
    }<!--c2--></div><!--ec2-->


My conclusion is that it is pretty much fesable to change the current system into this kind. It would requires other things I haven't done yet : function that removes the stored id of the character if he dies, an of course a proper interface in which you could assign/remove them.
Some more care should be put to InitOfficersType, to chose carefully which officer helps with which skill/perk.



Now for some extra notes - for example, while playing with GetSummonSkillFromName and GetOfficersPerkUsing with some LogIt()s, I noticed a bunch of weird things.

- when I hit some character, it runs GetSummonSkillFromName without giving a skill name..
- two perks that don't exist are checked all the time, 'charisma' and 'witcharm'.
- perk 'sharedexperience' represent 90% of all asked perks. I think we'd have to look at this one more carefully.
- Instantrepair perk code is repetitive.
- your old saves will not be compatible with my changes : you'll be able to load them, but not to save again (CTD). So while you're testing this code, it's better to start a new game.


Any comments are welcomed. Be sure to use winmerge if you want to try the .rar file, as I haven't got the latest alpha version.

To set an officer to a given position, you must use dialog links ('changing' his role aboard).
 
This sounds great, a simple virtual sailor! I suppose we'd better make this into an additional download for Patch 4, I think.
 
The reason shared experience is called so often is because your officers get experience for things you do. It should be called every time someone gets experience. This includes your officers, because you get some experience for things they do as well.

Currently, if anyone in your party has the shared experience perk, everyone has it.

I guess what you're talking about is, under the new system, who has to have the perk, and how is experience allocated based on who has that perk?

Good luck.

Hook
 
This thread is now visible for all, since this mod is included in the experimental mods available to all.
 
I recently discovered that the perks of my officers are appearently not considered - except those for fencing and the gun abilities (for themselves - seem's so at least, not absolutely sure).

E. g. it must be me myself having the turn180 ability to be able to perform it, if an officer has it but not me, it does not appear in the list. Found some code, appearently the three perks for ship defence or cannon improvements are not considered either (at least sail damage - hull/crew not yet found).

But why should then those perks be assigned to officers at all???

Is it common sense to change this? (I already started some work to do so - the selectable ones are done already...).
 
As far as I recall, most of the perks are INTENDED to work from officers too. Not the personal perks, of course (fencing, etc.), but the others should.
Of course this plays into the whole officers system that right now is pretty confused with carpenters contributing their navigation skill. <img src="style_emoticons/<#EMO_DIR#>/wacko.gif" style="vertical-align:middle" emoid=":wacko:" border="0" alt="wacko.gif" />
A simple virtual sailor made a mod to make officers only contribute those skills that are relevant to their actual job.
That mod is not finished, but in concept it should add a lot of sense the the skills and perks system.
We do have that available for testing. <img src="style_emoticons/<#EMO_DIR#>/yes.gif" style="vertical-align:middle" emoid=":yes" border="0" alt="yes.gif" />
 
i'm pretty sure that not everything works. the speed increase only works when you have it yourself.
 
All those perks that are not permanently active are only available, if you do have them yourself (turn180, sandbankmaneuver, immediatreload, ...).

Well, I suppose the new officer system will be part of the build mod sooner or later - so I won't proceed any more.

I think, instead I'll get this officer system previously to the next update, perhaps I can contribute some code lines
(I have still some questions open, but I want first to check out the new OS...).
 
See <a href="http://www.piratesahoy.net/build/b14_alpha9_experimental.exe" target="_blank">this file</a> for the experimental officers system.
I'm hoping someone can test/fix/finish it. Would be nice if we could include that in a future update. <img src="style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />
 
Ok, I had a look at this. Seems so as if I have to combine this with my currently made changes to get everything set up correctly, and I'll have to get the other perks (I haven't found yet) working correctly, too.

I won't, however, define any new interfaces so far, that's too much work for me for now (this might be added later) - what's alread there, should be sufficient to get it working at least.

I see two options to get a second alternative way to change the officers role's:
<ul><li>Either in the character view, where some new link "change officer's role" is added (like the "change model" one), opening a selection menu,</li><li>or a new interface is added on the same level as ships, characters, passengers, trade book, etc. I'd place it then right in between the passengers view and the quest book. There I propose then slots for each role, where I can insert the officers the same way as in passengers view.</li></ul>

The passengers view will remain, it will define (with or without the interface described above) the crew members that accomany me on land and on sea fights. This will be different to AoP, where I have three tough's that accompany me all the time, and all other officer's are invisible - this way, ANY officer can accompany me on land, with or without role on the ship.

My works would look like this:
<ul><li>The current officers interface (passengers) defines those officer's that accompany me on land and on ship boarding, with or without role on the ship.</li><li>The role's on the ship will only be assigned via the dialog that exist's already. As this works somehow, too, I'll have a look at this - certainly, however, I'll have to apply some changes then.</li><li>Do we need a new option "You are free from duties for now" (or some better text) to be able to not only replace officer's roles, but also just remove one?</li><li>Perks are only taken into account, if the officer has the correct role - I think this is already working, thanks to a simple virtual sailor.</li><li>Same for skills (working, too), however, instead of forgetting about the other skills, I propose to have it counted half. Aggree? I certainly have to have a close look on the melee skill, however - as officer, it shall contribute (completely) only on correct role, as fighter it must have the full value in any case. I think, this is already working too, but I'll have an extra check.</li><li>the character view must provide a title "Free of duty" - currently, I can have several navigators, but only the stats of the one accompanying me are taken into account...</li></ul>

I think there is not too much work left to be done to get everything working, as most does already.

I propose skill's as follows (slightly different from what ASVS proposed):

<ul><li>first mate:
<ul><li>leadership</li><li>sneak (luck)</li></ul></li><li>quarter master
<ul><li>commerce</li></ul></li><li>doctor
<ul><li>defence</li></ul></li><li>cannoneer
<ul><li>accuracy</li><li>cannons</li></ul></li><li>navigator
<ul><li>sailing</li></ul></li><li>carpenter
<ul><li>repair</li></ul></li><li>boatswain
<ul><li>fencing (melee)</li><li>grappling</li></ul></li></ul>

Perks (this was not completely ready in new OS):

<ul><li>first mate:
<ul><li>IronWill</li><li>Brander</li><li>Troopers</li></ul></li><li>quarter master
<ul><li>BasicCommerce</li><li>AdvancedCommerce</li><li>Trustworthy</li><li>BasicLandOwner</li></ul></li><li>Doctor
<ul><li>BasicBattleState (basic ship defense)</li><li>AdvancedBattleState (advanced ship defense)</li><li>ShipDefenseProfessional (professional ship defense)</li></ul></li><li>cannoneer
<ul><li>FastReload</li><li>ImmediateReload</li><li>HullDamageUp</li><li>SailDamageUp</li><li>CrewDamageUp</li><li>CriticalShoot</li><li>LongRangeShoot</li><li>CannonProfessional</li></ul></li><li>navigator
<ul><li>ShipSpeedUp</li><li>ShipTurnRateUp</li><li>Turn180</li><li>SandbankManeuver</li><li>StormProfessional</li><li>SailingProfessional (sea wulf)</li></ul></li><li>carpenter
<ul><li>LightRepair</li><li>InstantRepair</li></ul></li><li>boatswain
<ul><li>LongRangeGrappling</li><li>MusketsShoot</li><li>GrapplingProfessional</li><li>InstantBoarding</li></ul></li></ul>

The officer type 'deck fighter' is left out - fencing skill will be supplyed by boatswain. I did so because there are no perks I'd assign to him, furthermore this is no real officer in my eyes. If I want to have some officers as as additional fighters, I can take any one free of duty (see passengers view) or an officer on duty.

Some technical questions:
<ul><li>Perks to be activated:
What is happening to these, if a companion has these? Can anyone tell me, if the AI uses them? If not, is it possible somehow to tell the AI to do so?</li><li>Is it correct that I can define new attributes simply by assigning them (as in JavaScript - would mean: to define attribute y for type x, i only have to write <!--fonto:Courier New--><span style="font-family:Courier New"><!--/fonto-->x.y = z<!--fontc--></span><!--/fontc--> somewhere)? I haven't dealt with that so far, so I rely here on what is my impression...</li></ul>
 
Ah, one thing for the Bartolomeu quest (to be added, when my works are finished): He has no default dialog, so changing his role is only possible with an interface - which, however, I will not provide (at least at first) - meaning changing is not possible at all. Would be a good idea to copy the officers dialog, but leave out the options to dismiss him.
 
Ah, just got the reply to which type of officer's interface:

The second option, own interface between passengers and quest book!

This is because we would need this for the ship exchange, too.

There must then be a role for a captain, too. In normal view, captain is me, of course, unchangable, again of course, on ships he is changable - just removing him will remove all other officers, too.

Handling companion officers should be the same as my own officer handling, i suppose.

Would be nice, if someone could do the visible stuff for me (based on passengers view), I'll provide the functional part then. Eventually, passengers could be renamed to something like "personal party".

In both views the companions and prisoners could then be left out, the prisoners could be shown in another yet to be defined view, simply as a list.
 
See a simple virtual sailor's original thread on his officers system here: <a href="http://forum.piratesahoy.net//index.php?showtopic=13176&hl=" target="_blank">a Seadogs/AOP officer system, ... for testing & comments.</a>
If it's alright with you, I'll merge this thread with his old one to have all discussion grouped together.

From what I understand, with the experimental system, officers only contribute the skills that are correct for their officer type.
But this only works if you actually assign an officer to his correct type through the officer dialog.
I imagine that's the first thing that should be changed: you shouldn't need to talk to your officers to limit their roles to what they're supposed to do.
That should be immediate upon hiring, right?

Of course quest officers are always a story apart. They don't have the Enc_officer_dialog.c and don't offer the same options through that as regular officers do.
Apart from some quests officers who get their dialog set to Enc_officer_dialog.c once the quest is complete. If I recall correctly, that happens with Bartolomeu too.

Again from what I understand, you can assign as many officers to the same type as you want. If you want all your officers being carpenters,
they'll all contribute their repair skills. I'm not sure if it should be like that or how to handle that through interface.

For all I care, we can skip the interface and just have each officer contribute his correct skills and you can change that through dialog.
Or we can add some sort of "select officer type" button in the "Passengers" interface to the same effect?

Why would you want officers to be "free of duty"? They'd cost money, but not actually do anything.
It'd be better to just have them contribute something, right? You might be able to just add a "No role" officer type in ASVS's code though.

I'm not sure about contributing "incorrect" not vs. only half. If I've got a carpenter who's also got some navigation skill,
I can't imagine him actually helping my navigators. <img src="style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" />

I'm not convinced on "deck fighter" either; it's not a real officer position. But they ARE good at fighting.
So you'd probably assign some of those to accompany you ashore. But indeed they wouldn't need to contribute any skills at sea.

<!--quoteo(post=328601:date=Jun 14 2009, 10:51 AM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 14 2009, 10:51 AM) <a href="index.php?act=findpost&pid=328601"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec--><ul><li>Perks to be activated:
What is happening to these, if a companion has these? Can anyone tell me, if the AI uses them? If not, is it possible somehow to tell the AI to do so?</li></ul><!--QuoteEnd--></div><!--QuoteEEnd-->I'm not quite sure. The AI won't use the 180 degree turn, I think, but there must be some that the AI does use.

<!--quoteo(post=328601:date=Jun 14 2009, 10:51 AM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 14 2009, 10:51 AM) <a href="index.php?act=findpost&pid=328601"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec--><ul><li>Is it correct that I can define new attributes simply by assigning them (as in JavaScript - would mean: to define attribute y for type x, i only have to write <!--fonto:Courier New--><span style="font-family:Courier New"><!--/fonto-->x.y = z<!--fontc--></span><!--/fontc--> somewhere)? I haven't dealt with that so far, so I rely here on what is my impression...</li></ul><!--QuoteEnd--></div><!--QuoteEEnd-->Indeed; you can add as many attributes as you want and then check/modify them later too.
 
At first, I don't mind you merging the topics, that's fine.

It's correct, officers contribute only skills (and perks!) for the role they are actually assigned. Currently, the officers are assigned their role immediatly upon hiring them (old OS, works already), but the role is not considered any further. This way, one can have as many officer's of the same role as desired.

This is not my intention however, and as far as I can see, it is not ASVS's either (compare his GetOfficersPerkUsing method, where he count's up to MAX_OFFICER_TYPES, probably meaning having at most one officer for each role). This is the reason, too, why an officer must be able to be set free of duty. A new "no role" officer I won't probably need for this, as far at least as currently I imagine to handle the officers.

I'd then modify the role system like this:
<ul><li>If I hire an officer and the role is not yet occupied, the officer will get this role immediatly, else he will remain off duty (I could have hired him for a companion ship!).</li><li>If I assign (via dialog or later interface) an officer a new role and this one is occupied already, the previous officer is set off duty.</li></ul>
The interface to be introduced (see a previous post), the one I'd like to have some support (I'm not really a GUI programmer, if I'll do that on my own, I won't pay much attention on how it looks like and leave this to someone else) shall handle the assignments equally. Leaving it out can only be an intermediate solution, as I need it again for assigning the officers for companion ships. Without, the role system won't work there, at least not the way as I intend to implement it - assigning the roles automatically there could be an alternative, but then the question is, how to optimize it (let an officer take the role his skills fit best or optimize the overall ships skills)? Or I'd need an extra button there allowing to select the role manually.

ASVS assigned simply more than four officers. I have not testet it yet, it might result in having all the officers in company ashore. I have to have a look first at where the officers in my party are actually chosen (or is this in the engine already?). I might result in having two attributes, one called officer (if it is used by the engine, it cannot be changed) and shipOfficers (for managing skills and perks). If party members are passed as a list, I won't have to do this change (a look on how the crew members ashore are organized will certainly make a lot clear...)

<!--quoteo(post=328622:date=Jun 14 2009, 12:07 PM:name=Pieter Boelen)--><div class='quotetop'>QUOTE (Pieter Boelen @ Jun 14 2009, 12:07 PM) <a href="index.php?act=findpost&pid=328622"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I'm not sure about contributing "incorrect" not vs. only half. If I've got a carpenter who's also got some navigation skill,
I can't imagine him actually helping my navigators. <img src="style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" /><!--QuoteEnd--></div><!--QuoteEEnd-->

Just a proposition. In reality, if a carpenter is a good sailor, too, he might give some tips to captain, navigator, or whoever else.
I remember the case where a simple sailor on some English ship knew the coast (near Cornwall), and tried to warn the captain, who thought to be far more at west and didn't beleave the sailor. Result was a crash on some rocks / a reef that were/was there...

My idea was not loosing completely the skills if they were good (if I have a navigator good at repairing and no carpenter at all, I could profit at least a bit from that.

Another variant could be to assign three different values to the skill contribution: 0, 1, 2.

I then calculate the officer's skill contribution as follows:

skill = value * contribution / 2;

5 minutes of extra work, and this way we can assign for each officer type the main skills (as I proposed above) and some additional ones they can occupy, too, but with less success (e. g. a carpenter could then have commerce with half contribution, quartermaster and navigator repair, first mate fencing, boatswain leadership, ... we'd have to discuss this then if you like the idea, assigning the new values then is a task of not more than 5-10 minutes...).

<!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->I'm not convinced on "deck fighter" either; it's not a real officer position. But they ARE good at fighting.
So you'd probably assign some of those to accompany you ashore. But indeed they wouldn't need to contribute any skills at sea.<!--QuoteEnd--></div><!--QuoteEEnd-->
I intended to use the current passenger' interface to select the officers in party ashore and on boardings.

Without the interface described, I'd have to take the officers I want to change the role ashore, do so, and then return to the ship and get my good fencers again (no matter if and which role they occupy then). Fencing would be a boatswain's skill, so if I wanted to have some good fencers, I'd hire some of these.

But the handling above proves again that there is at least some minimal kind of interface necessary (or I can find my officers somewhere on a ship, perhaps there is then an officer launch or something like that - which, however, is certainly more work to be done...).

About perks used by the AI: I asked because I wondered if I should provide them as commands for my companions, too. In this case, I won't however.

<!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->Of course quest officers are always a story apart. They don't have the Enc_officer_dialog.c and don't offer the same options through that as regular officers do.
Apart from some quests officers who get their dialog set to Enc_officer_dialog.c once the quest is complete. If I recall correctly, that happens with Bartolomeu too.<!--QuoteEnd--></div><!--QuoteEEnd-->
Well, that was just a hint/proposition for the quest, but not relevant here (but another argument for my so much loved interface, cause again I cannot change the role...).
 
For the interface, I suggest you sen a PM to pirate_kk; maybe he can do something on that?
Partly contributing skills indeed sounds good. <img src="style_emoticons/<#EMO_DIR#>/yes.gif" style="vertical-align:middle" emoid=":yes" border="0" alt="yes.gif" />
As for fighters: would officers good for fighting (who accompany you ashore/in boardings) also be able to have a ship role at the same time?

How about the gaining of experience by officers? Eg. the Auto Skill System.
I imagine that officers should gain experience based on their assigned role. Right now there is something like that (Corsair/Social Climber/etc.),
but that isn't really role-related.

Also there should be an interface showing the total ship skills, so you see the results of your assigned officers.

One idea I had also is about bigger ships requiring more officers.
Imagine ship's efficiency on a certain aspect (eg. "sailing") would be total_officers_skill / ship_required_skill,
then ship_required_skill could be higher than 10. Imagine a Manowar needing 20 sailing skill,
you'd need to have 20 skill points total for full efficiency.
I don't really like how you can do everything yourself if you've got 10/10 on all skills.
 
Fighting officers: The way I plan to handle it will keep the officers that accompany me and the ones that have a role on the ship completely independent. That means I can select any officer to accompany me, weather he has a role on my ship or not, and he will keep his role, whatever it is.

Ok, autoskill I did not consider yet. I wouldn't touch this for now, I think it is more important to get the OS itself running first, and the autoskill could then be adapted afterwards.

I really like the idea of requiring more officers on the bigger ships. If I want to, I can have such an amount of officers, but really needing I am at the beginning just three for my own ship and some more for the captured ships, at the end I can take more and more roles myself, if I'm fully educated, I don't need any at all any more, and exactly one for each ship (if they are fully educated, too). So there is sense only for four officers, all the others are useless... Furthermore, it is (in my eyes) too easy to sail especially the class 1 ships. This change would make it more difficult to sail them and introduce a bit more of realism (as bigger ships in reality need more officers, too...), and we'd get back again some sense for the extra officers...

However, we'd need a new interface for the officer exchange, because with the current, one cannot supply sufficient officers for the companion ships... This could be done in a first step via a new dialog option in the officers dialog: below "I'm changing your role on the ship..." we could place "I assign you to another ship", which would show on selection a new dialog listing all available ships. Could be useful even for the new officer system, as i currently can only place three officers.
Needed are at least navigator, first mate, cannoneer - good to have are still doctor and carpenter. Boatswain and quarter master are not needed, as other companions do neither board nor trade. Ok, a captain can fulfill two of these roles (or even all), so I do not rely on this for the new OS. But we should keep this in mind for your idea.

Of course, then my idea of having just one officer per role is not suitable any more.
I suppose I will quit it right from the start to keep this option open.

Instead, I'd consider the passengers being neither companion nor imprisoned for calculating the skill values (this will then, too, be the way to keep land/boarding party officers and the roles independent from each other).

Companions must be treated differently, however, else they would get the stats of the main ship (- captain skills + own ones). I'll see how to handle this...

Furthermore, I do not need any new interface main page either, some button on either the character or the passengers view would be sufficient. I think the passenger's view is probably the best, because there one can directly examine the effects of his changes. As far as I'm planning for now (no changes of interfaces), you will only be able to examine the ship stats and select the officers that accompany you - but selecting those officers won't change the stats any more.

Not to forget: all officers have to receive the full payment. Introducing an officer role 'norole'/'offduty' could be quite a good idea as well:
Imagine you have enough officers for the moment, but want to keep the officer for some companion ship (or for the needs of a bigger ship, if this change comes once). Then you can set the officer off duty so that he receives a reduced payment and one can save money.

So, as you like the additional skills, i propose the following skills that count half:

<ul><li>first mate:
<ul><li>sailing</li></ul></li><li>quarter master
<ul><li>repair</li></ul></li><li>doctor</li><li>cannoneer</li><li>navigator
<ul><li>leadership</li></ul></li><li>carpenter
<ul><li>defense</li><li>commerce</li></ul></li><li>boatswain
<ul><li>leadership</li></ul></li></ul>

For the cannoneer, I planned none (he will have to do enough with his own skills - an option would be leadership or defense), for the doctor, I'm not clear what would suit best (perhaps repair and/or commerce?). I have currently no officer with half accuracy and cannons - could be perhaps first mate.

At least, I'll include already the implementation for it, the skills to count half can still be assigned later.

For the perks another nice idea:
Currently, the view where you can assign them only shows, if the officer has it already or not. It would be fine, if you could see in this view, if the officer can provide the perk (depending on his current role), if it is assigned to him - this could be helpful for the players when they are making a choice.
I'm thinking of the following: Show for each perk a symbol (the same that is used to visualize the officer's role in character view) for each role that allows an officer provide it, if he has it. (e. g. turn180 will receive the navigator's symbol). If the current officer occupies this role, it is coloured, else greyed out.
 
<!--quoteo(post=328766:date=Jun 14 2009, 09:52 PM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 14 2009, 09:52 PM) <a href="index.php?act=findpost&pid=328766"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Fighting officers: The way I plan to handle it will keep the officers that accompany me and the ones that have a role on the ship completely independent. That means I can select any officer to accompany me, weather he has a role on my ship or not, and he will keep his role, whatever it is.<!--QuoteEnd--></div><!--QuoteEEnd-->That sounds good. But I think we should then keep the "fighter/tough" officer role.
After all, if you assign a navigator to accompany you ashore, he'll gain fighting skills too, but wouldn't he gain his navigation skills slower?
If so, you might want to have some dedicated fighters instead. But that'd be for the player to decide. <img src="style_emoticons/<#EMO_DIR#>/dunno.gif" style="vertical-align:middle" emoid=":shrug" border="0" alt="dunno.gif" />

<!--quoteo(post=328766:date=Jun 14 2009, 09:52 PM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 14 2009, 09:52 PM) <a href="index.php?act=findpost&pid=328766"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Ok, autoskill I did not consider yet. I wouldn't touch this for now, I think it is more important to get the OS itself running first, and the autoskill could then be adapted afterwards.<!--QuoteEnd--></div><!--QuoteEEnd-->Agreed; can't do everything at once. <img src="style_emoticons/<#EMO_DIR#>/no.gif" style="vertical-align:middle" emoid=":no" border="0" alt="no.gif" />

<!--quoteo(post=328766:date=Jun 14 2009, 09:52 PM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 14 2009, 09:52 PM) <a href="index.php?act=findpost&pid=328766"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I really like the idea of requiring more officers on the bigger ships. If I want to, I can have such an amount of officers, but really needing I am at the beginning just three for my own ship and some more for the captured ships, at the end I can take more and more roles myself, if I'm fully educated, I don't need any at all any more, and exactly one for each ship (if they are fully educated, too). So there is sense only for four officers, all the others are useless... Furthermore, it is (in my eyes) too easy to sail especially the class 1 ships. This change would make it more difficult to sail them and introduce a bit more of realism (as bigger ships in reality need more officers, too...), and we'd get back again some sense for the extra officers...<!--QuoteEnd--></div><!--QuoteEEnd-->Exactly. Though two things to consider in this case would be:
- Availability of useful officers
- Cost of available officers

Of course the costs will only make the game harder, which isn't a bad thing, I think, since people have been complaining for ages that it's too easy.

<!--quoteo(post=328766:date=Jun 14 2009, 09:52 PM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 14 2009, 09:52 PM) <a href="index.php?act=findpost&pid=328766"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Instead, I'd consider the passengers being neither companion nor imprisoned for calculating the skill values (this will then, too, be the way to keep land/boarding party officers and the roles independent from each other).<!--QuoteEnd--></div><!--QuoteEEnd-->Agreed. I'd think all officers in your passengers list would contribute those skills that are relevant to their assigned role. <img src="style_emoticons/<#EMO_DIR#>/yes.gif" style="vertical-align:middle" emoid=":yes" border="0" alt="yes.gif" />

<!--quoteo(post=328766:date=Jun 14 2009, 09:52 PM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 14 2009, 09:52 PM) <a href="index.php?act=findpost&pid=328766"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Companions must be treated differently, however, else they would get the stats of the main ship (- captain skills + own ones). I'll see how to handle this...<!--QuoteEnd--></div><!--QuoteEEnd-->Eventually we indeed should get a proper interface for:
a. Assigning officers to other ships - Maybe a button in Passengers interface: "Assign to ship"?
b. Changing officer roles - Maybe a button in Passengers interface: "Change Role"?
c. Viewing each ship's total efficiency for each skill, based on assigned officers - Maybe use the skills shown in the "Ship" interface to reflect the total effect of all assigned officers per ship?

<!--quoteo(post=328766:date=Jun 14 2009, 09:52 PM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 14 2009, 09:52 PM) <a href="index.php?act=findpost&pid=328766"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Not to forget: all officers have to receive the full payment. Introducing an officer role 'norole'/'offduty' could be quite a good idea as well:
Imagine you have enough officers for the moment, but want to keep the officer for some companion ship (or for the needs of a bigger ship, if this change comes once). Then you can set the officer off duty so that he receives a reduced payment and one can save money.<!--QuoteEnd--></div><!--QuoteEEnd-->Agreed; if you don't really need him, but do want to keep him as backup, you shouldn't need to pay full pay.
Alternatively, make officers automatically go to "half pay" if their presence does not increase their assigned ship efficienct over 10.

<!--quoteo(post=328766:date=Jun 14 2009, 09:52 PM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 14 2009, 09:52 PM) <a href="index.php?act=findpost&pid=328766"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->So, as you like the additional skills, i propose the following skills that count half:<!--QuoteEnd--></div><!--QuoteEEnd-->Looks good to me. And as you point out, it can always easily be modified/expanded upon. <img src="style_emoticons/<#EMO_DIR#>/yes.gif" style="vertical-align:middle" emoid=":yes" border="0" alt="yes.gif" />

<!--quoteo(post=328766:date=Jun 14 2009, 09:52 PM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 14 2009, 09:52 PM) <a href="index.php?act=findpost&pid=328766"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->For the cannoneer, I planned none (he will have to do enough with his own skills - an option would be leadership or defense), for the doctor, I'm not clear what would suit best (perhaps repair and/or commerce?). I have currently no officer with half accuracy and cannons - could be perhaps first mate.<!--QuoteEnd--></div><!--QuoteEEnd-->First mate could work. Alternatively, maybe carpenter? I imagine the carpenter would be around the cannons anyway and might help a bit while there's nothing to repair (yet)?

<!--quoteo(post=328766:date=Jun 14 2009, 09:52 PM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 14 2009, 09:52 PM) <a href="index.php?act=findpost&pid=328766"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->For the perks another nice idea:
Currently, the view where you can assign them only shows, if the officer has it already or not. It would be fine, if you could see in this view, if the officer can provide the perk (depending on his current role), if it is assigned to him - this could be helpful for the players when they are making a choice.
I'm thinking of the following: Show for each perk a symbol (the same that is used to visualize the officer's role in character view) for each role that allows an officer provide it, if he has it. (e. g. turn180 will receive the navigator's symbol). If the current officer occupies this role, it is coloured, else greyed out.<!--QuoteEnd--></div><!--QuoteEEnd-->That IS a good idea. You might go as far as making all perks that are not relevant to the officer's present role invisible altogether.
That'd make certain you don't assign useless skills. And once you change his role, you can immediately afterwards assign any skill points he has to relevant perks.
Just a thought though, but it might be easier. <img src="style_emoticons/<#EMO_DIR#>/dunno.gif" style="vertical-align:middle" emoid=":shrug" border="0" alt="dunno.gif" />

One thing I am wondering about is quest officers: some have pre-set officer types, but most do not and become "comrade-in-arms".
Would those officers contribute ALL their skills? Or none as long as they're not assigned to a position?
 
I see, autoskill matters again.... Well, If I eliminate the deck fencer, one would have to hire boatswain's instead. But now I see the problem about that, cause these would gain grappling skill parallely - which is probably not desired. By the way, the dialog option for assigning this role is currently missing, too.

Fighters would supply only fencing fully, probably best nothing half. Shall then the boatswain supply fencing only half or still fully? If half, you need to either have the skill yourself or an explicit fighter, if fully, you could have the boatswain and any two other officers and do not rely on a fighter at all, if you don't want to.

Perhaps we could think of some better role name - deck fencer is no real officer, but perhaps there is a real officer rank that would suite for this...
What about <a href="http://en.wikipedia.org/wiki/Master-at-Arms" target="_blank">Master at Arms</a>? In this case I propose, too, to rename 'Doctor' to '<a href="http://en.wikipedia.org/wiki/Ship%27s_doctor" target="_blank">Surgeon</a>'

I aggree on tweaking the officer being a tough task. At first, we should consider the number of officers for each ship first, and then adapt the maximum number of passengers adequately - which will certainly be necessary, as having four class 1 ships will require quite a lot of officers...
(I doubt the passengers being the limiting factor for number and types of ships you can sail at a maximum would be welcomed by the community - on the other hand, this could raise the difficulty level). I propose to discuss this in another topic.

About exchanging the officers: I prefer creating a new "exchange officers" view.
Currently, you have a row containing all free officers in the upper part, four slots for the officers, and in the center the ship stats (same as passengers). I imagine keeping the stats in the center and the row above it, copying this row below the stats and then being able to shift the officers between these two rows (analogously to the item's exchange between characters). One slot, however, should remain to assign the ship captain.

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->xxxxxxxxxxxxxxx     <- row with officers, your passengers
____      .....
|__|      .....     <- slot for captain and ship stats

xxxxxxxxxxxxxxx     <- row with officers on the ship<!--c2--></div><!--ec2-->
Of course, if you remove the captain, all officers must be removed, too.

Changing the role is probably best done via a button on the passengers interface - the same button should be provided on this new interface, so the officer's role can be changed, too, on the companion ship directly. Probably it is a good idea to show the same options as if you'd have clicked this button, if you move an off-duty officer to the ship.

The officer type 'off duty' is already included, I personally prefer the user being able to decide himself if an officer shall be off duty or not. There could be included in the advanced options a selection, too, so that the player can decide himself to set the officers off duty manually or automatically.

I don't favour disabling the perks that do not serve for the officer role. Imagine, you have a navigator you want to educate for being a captain on a ship you do not have yet, and to provide him gunner skills for this purpose. Then you would first have to change the role, assign the perk, and then change the role back (which would not be possible at all, if the perks are reset on role change immediatly - if I understood that right this way). So I wouldn't introduce any restrictions there, but it should be clearly visible, if a perk is useful for the officer or not.

<!--quoteo(post=328912:date=Jun 15 2009, 09:33 AM:name=Pieter Boelen)--><div class='quotetop'>QUOTE (Pieter Boelen @ Jun 15 2009, 09:33 AM) <a href="index.php?act=findpost&pid=328912"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->One thing I am wondering about is quest officers: some have pre-set officer types, but most do not and become "comrade-in-arms".
Would those officers contribute ALL their skills? Or none as long as they're not assigned to a position?<!--QuoteEnd--></div><!--QuoteEEnd-->
Uh, that's a good question. I'd propose this: Officers that have already assigned a role keep this one. Officers that are comrade in arms are off duty, as long as they aren't assigned a role. Then, they will occupy this role, and it will be shown in the character overview. If they are set off duty, they get comrades in arms again (of course it must be remembered somewhere, if the officer was a comrade before or not...).
 
<!--quoteo(post=329764:date=Jun 17 2009, 12:40 AM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 17 2009, 12:40 AM) <a href="index.php?act=findpost&pid=329764"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I see, autoskill matters again.... Well, If I eliminate the deck fencer, one would have to hire boatswain's instead. But now I see the problem about that, cause these would gain grappling skill parallely - which is probably not desired. By the way, the dialog option for assigning this role is currently missing, too.<!--QuoteEnd--></div><!--QuoteEEnd-->Shouldn't be so hard to add this option, right?

<!--quoteo(post=329764:date=Jun 17 2009, 12:40 AM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 17 2009, 12:40 AM) <a href="index.php?act=findpost&pid=329764"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Fighters would supply only fencing fully, probably best nothing half. Shall then the boatswain supply fencing only half or still fully? If half, you need to either have the skill yourself or an explicit fighter, if fully, you could have the boatswain and any two other officers and do not rely on a fighter at all, if you don't want to.<!--QuoteEnd--></div><!--QuoteEEnd-->Fencing is a personal skill anyway, isn't it? I don't recall any part in the game where a "total party fencing skill" would be used. <img src="style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" />

<!--quoteo(post=329764:date=Jun 17 2009, 12:40 AM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 17 2009, 12:40 AM) <a href="index.php?act=findpost&pid=329764"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Perhaps we could think of some better role name - deck fencer is no real officer, but perhaps there is a real officer rank that would suite for this...
What about <a href="http://en.wikipedia.org/wiki/Master-at-Arms" target="_blank">Master at Arms</a>? In this case I propose, too, to rename 'Doctor' to '<a href="http://en.wikipedia.org/wiki/Ship%27s_doctor" target="_blank">Surgeon</a>'<!--QuoteEnd--></div><!--QuoteEEnd-->That sounds good to me. I don't like the "deck fighter" or "tough" names and "doctor" indeed doesn't sound very nautical either. <img src="style_emoticons/<#EMO_DIR#>/no.gif" style="vertical-align:middle" emoid=":no" border="0" alt="no.gif" />

<!--quoteo(post=329764:date=Jun 17 2009, 12:40 AM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 17 2009, 12:40 AM) <a href="index.php?act=findpost&pid=329764"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I aggree on tweaking the officer being a tough task. At first, we should consider the number of officers for each ship first, and then adapt the maximum number of passengers adequately - which will certainly be necessary, as having four class 1 ships will require quite a lot of officers...
(I doubt the passengers being the limiting factor for number and types of ships you can sail at a maximum would be welcomed by the community - on the other hand, this could raise the difficulty level). I propose to discuss this in another topic.<!--QuoteEnd--></div><!--QuoteEEnd-->I agree that'd be annoying. <img src="style_emoticons/<#EMO_DIR#>/piratesing.gif" style="vertical-align:middle" emoid=":shock" border="0" alt="piratesing.gif" />

<!--quoteo(post=329764:date=Jun 17 2009, 12:40 AM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 17 2009, 12:40 AM) <a href="index.php?act=findpost&pid=329764"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->About exchanging the officers: I prefer creating a new "exchange officers" view.
Currently, you have a row containing all free officers in the upper part, four slots for the officers, and in the center the ship stats (same as passengers). I imagine keeping the stats in the center and the row above it, copying this row below the stats and then being able to shift the officers between these two rows (analogously to the item's exchange between characters). One slot, however, should remain to assign the ship captain.

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->xxxxxxxxxxxxxxx     <- row with officers, your passengers
____      .....
|__|      .....     <- slot for captain and ship stats

xxxxxxxxxxxxxxx     <- row with officers on the ship<!--c2--></div><!--ec2-->
Of course, if you remove the captain, all officers must be removed, too.

Changing the role is probably best done via a button on the passengers interface - the same button should be provided on this new interface, so the officer's role can be changed, too, on the companion ship directly. Probably it is a good idea to show the same options as if you'd have clicked this button, if you move an off-duty officer to the ship.<!--QuoteEnd--></div><!--QuoteEEnd-->Indeed we will be needing some sort of interface sooner or later.
I suggest you send a PM to pirate_kk; maybe he could be convinced to do something on that?

<!--quoteo(post=329764:date=Jun 17 2009, 12:40 AM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 17 2009, 12:40 AM) <a href="index.php?act=findpost&pid=329764"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I don't favour disabling the perks that do not serve for the officer role. Imagine, you have a navigator you want to educate for being a captain on a ship you do not have yet, and to provide him gunner skills for this purpose. Then you would first have to change the role, assign the perk, and then change the role back (which would not be possible at all, if the perks are reset on role change immediatly - if I understood that right this way). So I wouldn't introduce any restrictions there, but it should be clearly visible, if a perk is useful for the officer or not.<!--QuoteEnd--></div><!--QuoteEEnd-->True. Maybe a hide/show button?

<!--quoteo(post=329764:date=Jun 17 2009, 12:40 AM:name=Aconcagua)--><div class='quotetop'>QUOTE (Aconcagua @ Jun 17 2009, 12:40 AM) <a href="index.php?act=findpost&pid=329764"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Uh, that's a good question. I'd propose this: Officers that have already assigned a role keep this one. Officers that are comrade in arms are off duty, as long as they aren't assigned a role. Then, they will occupy this role, and it will be shown in the character overview. If they are set off duty, they get comrades in arms again (of course it must be remembered somewhere, if the officer was a comrade before or not...).<!--QuoteEnd--></div><!--QuoteEEnd-->Sounds good. So until you assign them a type, they'll be more-or-less off-duty, right? Maybe useful to accompany you ashore though.
 
Back
Top