• 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!

Included in Build Modify "False Flag" Behaviour While Ashore

For the Beta 4 Public Release, do you think we should....

  • I don't mind either way, just try something

    Votes: 0 0.0%
  • Other, please specify

    Votes: 0 0.0%

  • Total voters
    9

Pieter Boelen

Navigation Officer
Administrator
Storm Modder
Hearts of Oak Donator
What False Flags are and are not supposed to do at sea is fairly well covered in all recent modpack updates.
However, looking at @morgan terror's work on the "random guard dialogs" got me thinking about how this works while on dry land.

At the moment you can freely change flags at any time, both ashore and at sea, with virtually no exceptions.
Based on which flag you are flying, you may be treated differently in stores, shipyards and taverns.
Random guards and sailors now also check your flag to determine if a tavern brawl/soldiers should be generated.

This means that if your ship in port is flying the "wrong flag", you can trigger immediate enemies all over the place.
Additionally, changing flag in the middle of the tavern could prevent this from happening.
But how would these town folk have any clue what you are doing with your flag?!?

I DO like using this concept, but perhaps some more sense could be brought into it.
A simple change could be to LOCK changing flags while being ashore.
Then you cannot switch flags in the middle of a tavern and immediate get different behaviour.
You could imagine this as "you coming ashore and the town folk remembering the flag they saw on your ship when you came into port".

Maybe some exceptions would be needed though, for example:
- DO allow changing flags in port, so you can change your flag prior to setting sail if necessary
- Some sort of exceptions if you go from one town to another, or if your ship is moored at a shore (???)

I don't have this entirely clear for myself, so I'd like some thoughts from you guys on what you would and would not appreciate seeing changed here. :doff
 
As a more advanced (and probably longer term) change, I was inspired by @Levis' recent "dynamic getting caught during smuggling" modifications.
Imagine a similar false flag detection applying while walking around ashore in towns.
If you're friendly to the nation of a town, nothing will happen. But there would be a risk of being caught at ANY time while in enemy towns.

The chance of this would remain fame-related, so it won't easily happen until later in the game.
And @Levis already added a perk to reduce this chance for when you DO want to continue it later.
 
If there are going to be restrictions to when you can change your flag, the player should be clearly informed of this. If not, i suppose it would be better if the citizens remembered your formely hostile flag in some other way. Maybe have the game check which flag you were flying at the moment you landed somewhere and forget this as soon as you go back to sea? I could imagine this casuing some issues with quests where you get teleported onto land though.
 
If there are going to be restrictions to when you can change your flag, the player should be clearly informed of this.
It should be doable to have a text message on the screen that says "You can only change flags at sea or at the anchorage of your ship" or something like that.
Sounds to me like that could make sense, because how would you change your flag when you're away from your ship? o_O

If not, i suppose it would be better if the citizens remembered your formely hostile flag in some other way. Maybe have the game check which flag you were flying at the moment you landed somewhere and forget this as soon as you go back to sea?
That could potentially make for a better solution, but it would definitely be more difficult to implement.

Also, what if you are moored in one town and then walk to another? What nation should you then be considered to be?
Or if you're moored at a shore where there technically is nobody around to SEE your flag?

Only "solution" I can think of right now is to determine the nation based on which you are treated while in a town when you enter a location.
If it is the town where your ship is moored, you'll be treated based on the flag flown on your ship (people saw you coming ashore).
If your ship is moored elsewhere, possibly revert to "personal" relations? Or to "always neutral, WITH false flag detection enabled"?

Maybe your anchorage should even be included in the false flag detection chance, so if you're anchored at a shore rather than a port, that reduces your chance of being caught.
If enemy towns are to be more dangerous, such logic could make it more interesting to sneak in through the back door instead of pretending to be friendly and coming in from the front.

Ideas aplenty! But what are the good ones? And what are the SIMPLE ones that don't take forever to implement? :shock
 
It should be doable to have a text message on the screen that says "You can only change flags at sea or at the anchorage of your ship" or something like that.
Sounds to me like that could make sense, because how would you change your flag when you're away from your ship? o_O

I think you should only be able to change your flag when on your ship - at sea - or in Port by being on one of the ship's decks.

Also, what if you are moored in one town and then walk to another? What nation should you then be considered to be?
Or if you're moored at a shore where there technically is nobody around to SEE your flag?

Walking from one town to another would only be a problem on islands with two towns, where they belong to different Nations. At the moment only Eleuthera , Hispaniola and St Martin come to mind in the games range of time periods.

I assume that you are not including the small Pirate/Smuggler/Buccaneer settlements - since if you are then in those you would have to fly a Pirate/Personal flag to be considered friendly. So walking into one of those having come ashore at a nearby town, could be dangerous ( but interesting :yes ).
On second thoughts why not include them.


I could imagine this casuing some issues with quests where you get teleported onto land though.

This would probably require that the quests_reaction.c files had a line of code in the teleport case to ensure that a "safe" flag was flying.:yes


:cheers
 
I think you should only be able to change your flag when on your ship - at sea - or in Port by being on one of the ship's decks.
Good point; the "Visit Deck" functionality could be quite helpful there, so you wouldn't need to change flags ashore at all.

Alternate and somewhat more forgiving idea: DO allow it ashore, but have it updated only on the next location reload.
You could then pretend that you ordered somebody to go to your ship and change the flag.
Though that probably makes any modifications here more an inconvenience than a game feature and therefore defeats the purpose. :facepalm

Walking from one town to another would only be a problem on islands with two towns, where they belong to different Nations. At the moment only Eleuthera , Hispaniola and St Martin come to mind in the games range of time periods.
True. Though of course with Capture Colonies, ANY island with multiple towns could potentially be affected.

I assume that you are not including the small Pirate/Smuggler/Buccaneer settlements - since if you are then in those you would have to fly a Pirate/Personal flag to be considered friendly. So walking into one of those having come ashore at a nearby town, could be dangerous ( but interesting :yes ).
On second thoughts why not include them.
I'd imagine especially pirates and smugglers would have a good spy network and are the most likely people to know exactly what flag you were flying when you made shore.

For the TradeCheck function at least, pirate towns are handled quite different from non-pirate ones.
They'll consider you friendly even if you're hostile to the pirates as long as you don't also have a LoM.
So that is at least somewhat more forgiving.

There is also the "strength component check" in there.
If we use that for false flag detection ashore, then you wouldn't be caught if your fleet is so strong that you might be able to take them by force.

Once my proposed changes to Reputation are included, it would be quite cool to create a situation
where you have such a fearsome reputation that potential enemies deliberately DON'T try to pick a fight with you.
But that's all for future development.

This would probably require that the quests_reaction.c files had a line of code in the teleport case to ensure that a "safe" flag was flying.:yes
If you need to be GUARANTEED safety while ashore, that is what the SafePortLeave function is meant for:
Code:
void SafePortLeave(int iNation, bool bOverride)
{
   ref mchr = GetMainCharacter();
   if (GetNationRelation2MainCharacter(iNation) == RELATION_ENEMY || bOverride) // Only if Required
   {
     HoistFlag(iNation); // PB: Hoist False Flag

     mchr.quest.Safe_port_leave.win_condition.l1 = "MapEnter";
     mchr.quest.Safe_port_leave.win_condition = "Safe_port_leave";

     iForceDetectionFalseFlag = -1;
   }
}
 
Technically any island with a pirate/smuggler town on it.

Anyway, it isn't hugely crucial, but if we can think of some sensible logic to apply in advance, that should be useful. :cheeky
 
Another thought about this: in reality, you wouldn't just change your flag, you'd change your uniform and try to speak the local language, or the language of the nation you're trying to pretend to be. The game make no allowance for any of this - you can walk through the middle of Havana in a British uniform and nobody will be upset. The false flag isn't merely a piece of cloth dangling from your mast, it's an indication that you're trying to pass yourself off as being from that nation.

Perhaps we ought to have NPC's take notice of your character model, so you need to be wearing something appropriate for a Spanish character if you're trying to pretend to be Spanish - which would mean you need a lot of new models to allow characters to appear in disguise without having entirely new faces. For good measure, we'd also need alternative dialogs so you'll say "Hello", "Bonjour", etc. depending on which nationality you're trying to assume.

Or alternatively we could just keep the current system in which changing your flag indicates what nationality you're pretending to be and leave the rest to the player's imagination. :D
 
At the moment, my main concern is getting Beta 4 ready for public release.
So for now, I'm looking for the very simplest solution possible.
I added a Poll to the opening post; if you have any preference on this, PLEASE VOTE!
Have to know if I should make any changes very soon.... :rolleyes:

Another thought about this: in reality, you wouldn't just change your flag, you'd change your uniform and try to speak the local language, or the language of the nation you're trying to pretend to be. The game make no allowance for any of this - you can walk through the middle of Havana in a British uniform and nobody will be upset. The false flag isn't merely a piece of cloth dangling from your mast, it's an indication that you're trying to pass yourself off as being from that nation.
I've thought about using the player model as "flag" while ashore, but that might get real complicated real quick.
Any soldier/navy uniforms are obvious enough in what nation they represent. But what about other models?

Each model can be part of various national groups, so we'd have to check against all of those group options.
Alternatively, use the "model.nation" attribute, which would be simpler.
But in BOTH cases, the player cannot even see what nation these models represent.

It could also become massively annoying when a player uses a soldier/navy uniform simply "because he likes that one" and not for specific national purposes.
@Hylie Pistof and his French officer springs to mind.

So unless we can figure out a somewhat simple solution to all of that,
I'm inclined to leave the flag as being the indicator of what nation you are and skip model involvement for the time being.

For good measure, we'd also need alternative dialogs so you'll say "Hello", "Bonjour", etc. depending on which nationality you're trying to assume.
That might be possible. At the moment there are two functions:

GetCharacterAddressForm chooses an appropriate address form for the CHARACTER YOU ARE TALKING TO.
This is based on the nationality of that character. We could replace that with "the nation of your current flag".
That probably would make more sense, since how would the player know the nationality of every character in the game?

GetMyAddressForm which does the same, but for the other character TO the player.
This is also based on the nationality of that character.

There is some extra stuff in there to allow various nationalities for pirate characters (which technically are their own nation in the game).
This also includes rank names, which obviously SHOULD be based on the nation of the character being addressed.

So it should be a relatively simple matter of overriding the 'fakeNat' variable there with GetCurrentFlag() .
Is that something I should change straight away? Would it make sense and help with immersion?
 
The suggestions for changing uniform and dialog were not entirely serious, meant only to show how difficult it is to get this nationality-impersonating thing correct. My preference, especially for Build 14, is to leave it alone - why risk changing another game mechanism and possibly breaking it just when we're trying to get something working and ready for release? If we are going to make changing flag be exactly that, changing the ship's flag, with other nationality fakery handled in more detail ashore, perhaps leave it until Build 15.
 
My main point right now is that you can change flag in the middle of the tavern and suddenly you are treated differently.
That strikes me as a bit odd. Does it seem correct to you?
 
Don't worry about me. My starting character is just that and I change as soon as I can. For the last few months I have been going native in fact.
POTC4 2016-01-05 12-25-16-59.jpg
 
Hmmm....
I'd say:

Lock the Interface Option to Change your relation if you are ashore (ship deck doesn't Count as ashore).
If you have officers with you, you can order them to Change your flag but only on a new Location reload this will actually Trigger (This is pretty easy to implement using a questcase for exitlocation).

For now I'd say thats enough for BETA4, maybe for build 15 we can look at something more Elaborate, but we might want some more Feedback on this first. Just locking it for this release should provide with some nice (as in the amount, there will be haters I guess) feedback already probably
 
If you have officers with you, you can order them to Change your flag but only on a new Location reload this will actually Trigger (This is pretty easy to implement using a questcase for exitlocation).
Not sure if that would need adding at all. Sounds like potentially more trouble than it's worth. :shrug
 
3 votes vs. 1 at the moment, so I went ahead and did this:
upload_2016-1-6_17-55-38.png


For the explanatory text:
Code:
  if (!bSeaActive && !ownDeckStarted())
   {
     CreateString(true, "FlagText", XI_ConvertString("HoistHelpString"), FONT_NORMAL, COLOR_MONEY, 320, 350, SCRIPT_ALIGN_CENTER, 0.7);
   }
   else
   {
     if(CheckAttribute(PChar, "flaglegend"))     // PB: Show note on Flag-Selection functionality
     {
       CreateString(true, "FlagText", XI_ConvertString("FlagHelpString"), FONT_NORMAL, COLOR_MONEY, 320, 350, SCRIPT_ALIGN_CENTER, 0.7);
       CreateString(true, "HelpText", XI_ConvertString("NationHelpString"), FONT_NORMAL, COLOR_MONEY, 320, 485, SCRIPT_ALIGN_CENTER, 0.7);
       DeleteAttribute(PChar, "flaglegend");   // ... but only once
     }   
   }

And for the actual functional change:
Code:
bool IsFlagSelectable(int iNation)
{
   // PB: ALWAYS allow changing flag, though which flag you fly may affect the consequences of your actions
/*   if (bSeaActive) {
     if (bMapEnter)
       return bChangeNation;
     else
       return false;
   }*/
   if (!bSeaActive && !ownDeckStarted()) return false; // PB: Allow only on deck or at sea
   if (iNation == NEUTRAL_NATION) return false; // PB: Unfinished feature, better disable for now
   return bChangeNation;
}

Not sure if this makes sense or not though.
You can go to your ship deck at pretty much ANY time anyway, which could make this more of a pointless inconvenience than anything else. :facepalm
 
I've slept on this issue, and now I think I should chime in.

I believe the issue is that there are really two "flags" in the game - the actual flag you fly on your ship, and the nationality "flag" you display to people. Both can and should be used to fool others, and thus should be changeable "on the fly"; the point is, they are strongly tied to the mode in which the game is played at the moment (sailing vs. personal).

I think the proper way to implement this would be to make two sets of variables internally, one representing the character's apparent nationality, one representing the ship's nationality. When the captain is going ashore, the ship's flag is fixed (this is a little convention on out part, I guess, notably because the ship does not interact with anything without you on board - so even if you are recognised on shore, the ship isn't recognised as flying the false flag and sunk by the fort until you step on board and can attempt to escape the trap); the character's nationality can be changed freely (even though it should start the same as the ship's flag), but it doesn't affect the ship's flag in the least - that allows various "infiltration" missions logical and easy to understand flow and approach. When you are at sea, your character's nationality doesn't really matter, and so it is fixed and tied to the current ship's flag. I believe the current interface with just a single row of flags would suffice quite well (since the personal and ship flags are used exclusively); even the whole current flag-changing system could suffice, save for one point - that same argument used in this discussion that it is illogical that the ship's flag can be changed while away from the ship. I think that if you haven't been recognised while away from the ship, the flag should safely revert back (or, as it may be, having never been changed for the ship) - and for that we'd probably need a hidden second variable, allowing two flags be used in actuality where the user only sees one.

(As for how people know your nationality when you are ashore - as @Pieter Boelen adresses that well in a nearby thread, means of addressing change based on who you are; certain mannerisms could - but first and foremost, I guess, the spoken language is the indicator. A fictional example, if I may: it is Peter Blood's flawless Spanish that allows him to pass as Spaniard on many occasions, despite being born an Englishman (or Irishman, as he preferred). We forego the question of the language used, supposing that everyone can somehow perfectly understand everyone - but what if we did not (at least, in the "perfect language" part)? While flying a false flag when your ship is far and can be barely seen with a spyglass is probably not that difficult, faking your nationality in a spoken interaction is probably far more hard; I can see there being introduced a new perk/changed description of the current "false flag" one specifically to mention that the character is a "linguist" and thus the chance of being discovered is drastically reduced.)

So - for now, let's keep it "as is", and maybe add some extra functionality/slightly rewrite it in the future. (Going back all the way to your ship's deck just to be able to address someone in the same room somewhat differently, with different results and even different dialog, I'm afraid, doesn't make much sense even if it's just a "pointless inconvenience" - and clearly, in cases where it matters this much (i.e. during infiltration, or some such), it probably should be locked. But that's a whole different subject... )
 
Good ideas for sure there, @Nikitian! :cheers

Indeed the whole "everybody speaks the same language equally well" is quite a large stretch of logic in these type of games.
But of course actually writing the dialog texts in different languages would be massively confusing for most players, so that isn't an option.

To "fake" that, there could be variables for each nation that indicate your fluency in that language.
Which I suppose may increase if you talk to more characters of that nationality.
And this could factor into your false "flag" detection while ashore.

But then there first should BE a substantial "false flag detection" while ashore, which currently there isn't really.
Except in a few dialogs which, for the most part, have got no consequences.

Likewise, the Feature Request - Current Flag to Control Address Form | PiratesAhoy! idea currently would be virtually invisible AND have no actual consequences.
Adding that could add a lot to gameplay though, that's for sure.

Would make the game decidedly more complex again as well... :wp
 
As per the poll results, I will leave the "only at sea" limitation in there for the next update.
Then at least we'll see what kind of feedback we get. :cheeky
 
Well, short of us finding proper speakers of four other main languages, and translating half of the game into those (a task as monumentous as it is of little practical use), I agree that we could skip the actual translation of dialogs and go on to the more important and interesting part: understanding/speaking the language of the person we are talking to/nationality we are masquerading as. Perhaps there could be three to four levels of "understanding" - the current one (understand everything perfectly, and speak perfectly as well), the "complete gibberish" one (where all the speech in dialog is replaced with something like "??? <He says something in Spanish/French/Dutch/Portugese/English, but you cannot understand anything.>") and the middle one or two where some parts of the speech are understandable, and the whole meaning could be divined from them, even though you don't understand everything (something like this: "???? pirate ???? brig "Bonaventura" ???? 12000 gold." - and, since you are speaking to a governor, you know that it's a ship hunting quest ;) ) - and the version you receive would depend on your knowledge "skill" of the language in question. That would triple or quadruple the dialog files, yes, but should be orders of magnitude easier to implement than properly translating everything.

Of course, the above is probably a suggestion for Build 15 at best, where I've heard a new (more detailed) skill system could finally be introduced, etc. For now, just drastically increasing the chance of recognition ashore under a false flag (without the perk to help that - just the usual "false flag" one, for example, or both it and the more advanced "linguist") should do the trick and lay the groundwork for the potential system change as described above. We already have some NPCs that ask for your credentials, and others that deliberately seek you out and initiate dialog, so I guess that adding a few patrols to the cities, as well as having all the soldiers size you up if you are recognised as an enemy shouldn't be that difficult (to my knowledge, at the moment, even if you're openly wearing "flag" of an enemy nationality, the regular soldiers don't care one way or another - this should be addressed, I think). And then some of the citizens ashore might as well feel "patriotic" enough to call guards upon you (and here it is quite easy to open the can of worms of "how do the citizens of a recently conquered colony feel about giving you out to the occupation force?", but I guess it's for the best to leave it closed for now).

Furthermore, I suppose that if you were recognised ashore, then there is a large chance that your ship (moored in the port) would also be recognised upon you setting foot on the deck - although, I guess, a small chance of you escaping in the chaos, before the fort is warned, should remain (and be connected to your luck, as usual). Thus, unless you were recognised and the ship was recognised too, your ship flag remains the same as the one that flew as you left it. But the personal flag (be it implemented one way or another) is free to change at your convenience - provided that you are ready to pay the price should you be masquerading as someone else without having mastered it (=without the perk(s)).
 
Back
Top