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

Sea duels can ruin your career

Grey Roger

Sea Dog
Staff member
Administrator
Storm Modder
Sometimes in a tavern, you'll meet another captain. Various random things can happen if you talk to him. In particular, if you're in a friendly port, the conversation may go like this:
Him: "Yes? What do you want, captain?"
You: "It seems you are sitting at our table! That's a problem between us! Are you captain of a ship? We could solve it at sea! How about a challenge?"
Him: "Yes, I'm the captain of a good ship! You can see her in the port and I serve the crown of this colony."
You: "Your governor will see your body hanged on my mast from the shore! I'll await you on the sea, captain! Farewell!"
Him: "I'm a corsair of the king and I accept your challenge mister! You'll regret what you said."
You: "Ha! I'll sink you with pleasure!"

After that, the captain will spawn at sea and attack you. He's under the flag of the nation in whose port he's sitting. That nation is friendly to you, or at least to the flag which you're currently flying. He will attack you when you put to sea. If you continue to fly a friendly flag then you're firing at a friendly ship with all the consequences that entails. If you change to a hostile flag, the fort will join in. If you run away, he'll still be there if you return to the island.

And if this is happening in a town belonging to a nation with whom you have a LoM, you'll lose your LoM if you defeat the ship.

Suggestion: give the character the "SkipRM" attribute so that you can fight the sea duel without involving the fort or your LoM.

(How I found out about this: normally I avoid trouble as there are a couple of branches to the dialog to avoid the duel. This time I'm playing in Russian to investigate a problem reported by two Russian players who find the game crashing whenever they try to put an officer in command of a captured ship. Since I can't understand much Russian, I had no idea what I was saying to the guy in the tavern until I went to sea at Speightstown and found myself being attacked by a British ship while flying a British flag myself. Any player who doesn't spot the phrase "I serve the crown of this colony", or who doesn't fully think through the consequences, is liable to end up in a similar predicament.)
 
The authorities wouldn't look kindly to two of their captains fighting each other, so there still could be some penalty with the nation for accepting the duel, but not as much as for a real betrayal. Maybe the dialog could be altered to clarify this (like "do you realize the trouble we could get into with the authorities?" or something like that), or the challenger could be waiting at a designated shore instead of the port, so you can always avoid it (that would also be the more "realistic" option).
 
It's nonsense, of course - the whole point of being in port is to be safe from attack! However, the feature is there and has been for a long time, since before relations were rewritten to only take account of flags and to penalise you for attacking a ship under a friendly flag.

Having the challenger wait at a shore isn't going to work because the dialog file does not know where you are. It's possible to find your current location and the town and nation associated with it, and the smuggling code can figure out the nearest beach for smugglers to spawn - but trying to figure out a sea locator near a random beach is going to be near impossible! Besides, once you've accepted the duel, the dialog triggers function 'SetCoastalEnemy', which makes the enemy ship spawn right next to you. For that matter, modifying 'SetCoastalEnemy' to set "SkipRM" when necessary, and only when necessary, could be tricky.

The idea of having a further stage in the dialog where the consequences of continuing the duel are made clear does seem better, as well as a lot easier! The captain could explain that since you're both on the same side, you're the one making the challenge so you're the one whose career will be over if you fight an allied ship, and if you're not really on his side then the fort will join in. You can still choose to continue to fight - maybe you're moored at a beach already, in which case you're at least safe from the fort.
 
Here are "Random_captains_sit_tavern_dialog.c" plus the English version of "Random_captains_sit_tavern_dialog.h" with the extra lines added to the end. If you and @AkrimalS can translate it, it can go into the next update.

If you want to test it, make sure you are in a friendly port, or a hostile port while under a false friendly flag. Do not have a LoM for the nation where you are doing this, otherwise the captain will always want to sell you contraband. Make a copy of "PROGRAM\LandEncounters\LEnc_monsters.c" so you can put it back to normal later, then edit the file. Go to line 1860:
Code:
if(rand(10)>9)
Change it to:
Code:
if(rand(10)>-1)
That should force every random tavern visitor to be a captain. Once you're standing in front of a captain, save game, because the dialog won't always go to the challenge, and if it does then a lot of the time he's a merchant captain who chickens out. Just keep reloading and trying again until you get the dialog to challenge him and he's a corsair who accepts. (Or you could edit "Random_captains_sit_tavern_dialog.c" to force that as well, but I preferred to keep that exactly as it should be for the final version when I tested the dialog.)
 

Attachments

  • PROGRAM.zip
    5.3 KB · Views: 71
Back
Top