"Officer personalities" is something I have always been interested in seeing in this game.
Of course that can become complicated real quick and should probably be left on the back-burner until Build 15 or so.
However, there has actually been some sort of code for this in place ever since the STOCK GAME!
In various quest areas, there are calls to OfficersReaction("good") or OfficersReaction("bad") .
I always figured that was for a never finished feature and never bothered to look into it further.
Today I accidentally ran into the code for that actual function, which looks a fair bit more workable than I had expected!
In fact, I can see just about no reason why this should not already be working.
There is relevant code scattered all over the place to the point that they should leave you and you should be able to hire them again from their "home" location.
That being said, I don't think anybody ever ran into this behaviour actually being triggered.
So clearly something is preventing this from doing much of anything.
Based on a quick search, this might simply be because there are really very few spots where the OfficersReaction function is actually called.
Also, it applies only to specific quest-hired officers by the looks of it and not any random ones.
For starters, I'd be curious to hear from you guys if you ever DID notice this.
If not, we could see about forcing its hand by repeatedly calling the trigger function through the console.
In any case, I'm definitely intrigued now by the potential here.
Even if it is a fairly simplistic system to begin with, it is certainly more than nothing.
Of course that can become complicated real quick and should probably be left on the back-burner until Build 15 or so.
However, there has actually been some sort of code for this in place ever since the STOCK GAME!
In various quest areas, there are calls to OfficersReaction("good") or OfficersReaction("bad") .
I always figured that was for a never finished feature and never bothered to look into it further.
Today I accidentally ran into the code for that actual function, which looks a fair bit more workable than I had expected!
Code:
void OfficersReaction(string alignment)
{
int iPassenger;
ref PChar;
PChar = GetMainCharacter();
for (int io = 0; io<GetPassengersQuantity(pchar); io++)
{
iPassenger = GetPassenger(pchar, io);
if(CheckAttribute(characters[iPassenger], "loyality"))
{
if (characters[iPassenger].alignment == alignment)
{
characters[iPassenger].loyality = makeint(characters[iPassenger].loyality) + 1;
}
else
{
characters[iPassenger].loyality = makeint(characters[iPassenger].loyality) - 1;
if(makeint(characters[iPassenger].loyality) < 1)
{
PlaceCharacter(&characters[iPassenger], "goto");
characters[iPassenger].selfdialog.filename = characters[iPassenger].dialog.filename;
characters[iPassenger].selfdialog.currentnode = characters[iPassenger].dialog.currentnode;
characters[iPassenger].dialog.filename = "anacleto_dialog.c";
characters[iPassenger].dialog.currentnode = "remove";
LAi_SetActorType(&characters[iPassenger]);
LAi_ActorDialog(&characters[iPassenger], pchar, "player_back", 2.0, 1.0);
LAi_SetStayType(pchar);
}
}
}
}
}
There is relevant code scattered all over the place to the point that they should leave you and you should be able to hire them again from their "home" location.
That being said, I don't think anybody ever ran into this behaviour actually being triggered.
So clearly something is preventing this from doing much of anything.
Based on a quick search, this might simply be because there are really very few spots where the OfficersReaction function is actually called.
Also, it applies only to specific quest-hired officers by the looks of it and not any random ones.
For starters, I'd be curious to hear from you guys if you ever DID notice this.
If not, we could see about forcing its hand by repeatedly calling the trigger function through the console.
In any case, I'm definitely intrigued now by the potential here.
Even if it is a fairly simplistic system to begin with, it is certainly more than nothing.