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

Planned Feature Encourage Play for Evil Characters

The false flag detection chance is based largely on fame, but also modified by difficulty and luck skill.
Some other things as well; can't 100% remember the specifics.

Since that just returns a "fixed" chance number, I think it should be quite possible within the TradeCheck function to use it even for non-hostile nations.
That should make it possible to consider a flag "false" in those cases even for Wary nation relations.

Alternatively, @morgan terror's changes to "pirate recognition by soldiers in the taverns" just makes use of the "fame number divided by 12".
Maybe that would be an option here too?
Choice of the exact mechanism is up to whoever does the coding. ;) The important thing is the end result - the store / shipyard owner does a check to see if he recognises you, then refuses to serve you if his nation is Wary to you and you have a dodgy reputation. If he doesn't recognise you then you're just another customer.

At the moment there are three functions related to Auto Buy (unfortunately):
1. Function called by the Auto Buy button; this one does the buying and charges you money
2. Function used by GiveShip2Character to supply the ship (this one does not charge money)
3. Function called by ships_init.c to determine the space needed for the "default auto buy supply" and to ensure that does actually fit in the cargo hold of all ships

At the moment these are all completely independent, though I did ensure they are properly in line with each other.
Would be nice to combine them into one at some point. I hate having separate stuff like that. :facepalm

I'm not entirely certain if #1 uses "max crew" or "current crew". I was referring to #2 there, which does use "current crew" at the moment.

On the subject of Auto Buy: I do think medications should be added to the default supplies.
It occurs to me that whichever way Auto Buy works, some people aren't going to like it. If it buys based on current crew then anyone who has been in a battle and visits the store before the tavern is going to get short supply. If it buys based on maximum crew then merchants who prefer to operate with less than full crew to cut down on costs are going to get excess supply.

I agree about medication, though you probably don't need much. Normally I carry 5 units, 10 if it's a big battleship, and (except when testing a storyline, which is all the time right now :D) I tend to play a combat-heavy game. Occasionally I capture a ship carrying a cargo of medicine and keep more than the normal load because I don't want to waste the opportunity to get free useful stuff, but generally 5 units is enough - I'll soon need to get to a port to either get the ship repaired at the shipyard, or buy more planks and sailcloth so the crew can do it, and at that point I can also restock the medicines.

Do you think those times should be in line? If so, should the stores open later or the crew be hired earlier?
Simon Hanpool: "Usually I've got a lot of men in here that would like to become seaman, but it's too late now. They'll start showing up only in the morning."
Me: "It is morning - look at the bright sunshine outside! The store is already open!"
OK, the quote from me isn't what I say to him because it's not in the dialog file, but it's what I'd like to say to him. xD
So to be in line with what the tavern keepers say, it probably makes more sense to have the crew available for hire earlier.

That is why I suggested having the "don't trade with bad guys" based on "merchant alignment". That is randomly assigned, though can be manually set for quest purposes too.
Then if you want to smuggle/trade while being a bad guy, you can do so at approximately 50% of the stores. You'd need to figure out which ones though, because they're randomly assigned.
But that could be considered a deliberate part of the gameplay.
Or you could play as a good guy and be able to trade at most if not all stores, provided you aren't hostile or your false flag wasn't recognised. So much for encouraging play for evil characters. :D

It just seems to me that an act that is easily repeatable shouldn't be the way to become a Hero.
Otherwise you can do "reputation grinding", which doesn't sound very good to me....
It's how reputation has always worked until now - build it up (or down) slowly and gradually. But why not leave it up to the player? Assuming that the big act to give a massive boost becomes available, the character can go from Dashing to Hero in one shot, if the player can find it; or he can keep doing bodyguard duty, hunting rapists and other minor good deeds that earn at least +2 reputation. Let players play the way they want, not the way we want. ;)
 
Choice of the exact mechanism is up to whoever does the coding. ;) The important thing is the end result - the store / shipyard owner does a check to see if he recognises you, then refuses to serve you if his nation is Wary to you and you have a dodgy reputation. If he doesn't recognise you then you're just another customer.
I thought you were the one who wanted to start changing it. :wp

So long story short:
- Some sort of "false flag detection" needs to occur not just for merchants of hostile nations, but for WARY nations as well (and Friendly too?)
- If your false flag is not recognized, then trade is OK regardless of reputation
- If your false flag IS recognized, then worse reputation allows you to do less trading; eg. "Neutral" cannot trade at Wary relations, but "Rascal" cannot even trade at "Friendly" relations
- In other words: As long as you keep a low profile, you can go about your business. Once you start building fame and aren't a known good guy, you may start running into trouble

It occurs to me that whichever way Auto Buy works, some people aren't going to like it. If it buys based on current crew then anyone who has been in a battle and visits the store before the tavern is going to get short supply. If it buys based on maximum crew then merchants who prefer to operate with less than full crew to cut down on costs are going to get excess supply.
Ah, true that. Maybe "current crew" is better then.
For gameplay purposes, then at least it is accurate. If it ends up purchasing not enough, you can manually buy more.
Likewise for quest purposes, if you want to supply a ship with a few crew, but give MUCH more provisions in preparation of getting more crew, that can be handled by an extra line of code.
Either way: The current Auto Trade/GiveShip2Character functionality does not need to be changed for this now.

I agree about medication, though you probably don't need much. Normally I carry 5 units, 10 if it's a big battleship, and (except when testing a storyline, which is all the time right now :D) I tend to play a combat-heavy game. Occasionally I capture a ship carrying a cargo of medicine and keep more than the normal load because I don't want to waste the opportunity to get free useful stuff, but generally 5 units is enough - I'll soon need to get to a port to either get the ship repaired at the shipyard, or buy more planks and sailcloth so the crew can do it, and at that point I can also restock the medicines.
If I recall, we never ever bothered balancing the medicine use. I think for simplicity's sake, I had it at "1 unit of medicine can save one crewmember from dying".
Considering the number of casualties I'd expect you get after a battle, wouldn't you then need a LOT of medicine?
How come you need only that little?

Simon Hanpool: "Usually I've got a lot of men in here that would like to become seaman, but it's too late now. They'll start showing up only in the morning."
Me: "It is morning - look at the bright sunshine outside! The store is already open!"
OK, the quote from me isn't what I say to him because it's not in the dialog file, but it's what I'd like to say to him. xD
So to be in line with what the tavern keepers say, it probably makes more sense to have the crew available for hire earlier.
The times are probably defined in the tavern keeper dialogs. Those would need to be changed then.
Easy enough; just a fair few separate files to be tackled.

Or you could play as a good guy and be able to trade at most if not all stores, provided you aren't hostile or your false flag wasn't recognised. So much for encouraging play for evil characters. :D
As I tried to say before: "Encouraging play for evil characters" is NOT the same as "allowing evil characters to have the same advantages that good ones do".
With my suggestion, evil characters CAN trade, but have some extra limitations. That is admittedly a disadvantage of sorts, but not to the point of it being game-breaking.
So rather than trying to get good and evil characters treated equally, I'd much rather think of some advantages that EVIL characters can get that good ones don't.

For example: Evil characters may be able to do business easily only at 50% of the merchants, BUT their profit margins could be better because "the merchants fear them".
Or: you cannot trade at certain towns because TradeCheck returns false and decide to make use of the "Commerce >5" workaround.
At the moment all characters get their profit margins cut in half then. What if that wouldn't apply to evil characters?

Feel free to come up with some other ideas as well. I don't think my suggestions here are particularly good.

It's how reputation has always worked until now
That doesn't need to mean anything. What we have now clearly isn't perfect and we can freely reconsider how it actually should be working.

But why not leave it up to the player? Assuming that the big act to give a massive boost becomes available, the character can go from Dashing to Hero in one shot, if the player can find it; or he can keep doing bodyguard duty, hunting rapists and other minor good deeds that earn at least +2 reputation. Let players play the way they want, not the way we want. ;)
I am concerned that if it is easy to grind up Hero without too much effort, then that is a bit of a cheat.

For simplicity's sake, it was my intention to change the function that changes reputation so that if you call it with low numbers, you can only change it to "Swindler/Matey".
So it needs to be called with bigger numbers to actually get to "Terror/Hero". That way large reputations can only be reached through large acts.
Having "small acts that when combined CAN get upto Terror/Hero" adds a brand new level of complexity, because then you'd need to define the "size" of the change AND the limit individually.
If at all possible, I prefer handling that with one input variable and not two.

I'd like to use it as:
+/- 1 reputation changes between Bloke / Rascal
+/- 2 reputation changes between Matey / Swindler
+/- 3 reputation changes between Dashing / Bloody Terror
+/- 4 reputation changes between Hero / Horror of the High Seas

Reputation changes larger than +/- 4 would make you reach Hero / Horror of the High Seas more quickly.
Then the main question is: If Guard Duty/Saving from Rapists SHOULD get up to Hero, then it should be at least 4 reputation points.
The reputation scale is 89 long. So you'd need to do that (89/2)/4 = 11.25 times to get from Neutral up to Hero.

Would that be considered "too easy" or "prohibitively grindy"?
Maybe the "reputation drops to neutral over time" logic would serve to offset the relative ease with which you can become a Hero?

Alternatively, what actions WOULD warrant huge changes in reputation?
Going from good to bad is simple enough; there are plenty of evil acts I could think of.
But the other way around is not so obvious to me....
 
I thought you were the one who wanted to start changing it. :wp
I was, until the discussion expanded. :D But my motive was to make the evil Ardent playable, and if a quartermaster with Commerce 5 can trade at double price where the evil character can't normally trade at all then that becomes less urgent - I just need to give Ardent's quartermaster Commerce 5.

So long story short:
- Some sort of "false flag detection" needs to occur not just for merchants of hostile nations, but for WARY nations as well (and Friendly too?)
- If your false flag is not recognized, then trade is OK regardless of reputation
- If your false flag IS recognized, then worse reputation allows you to do less trading; eg. "Neutral" cannot trade at Wary relations, but "Rascal" cannot even trade at "Friendly" relations
- In other words: As long as you keep a low profile, you can go about your business. Once you start building fame and aren't a known good guy, you may start running into trouble
Friendly shouldn't need the false flag check as it shouldn't matter. If I'm actually Dutch, am flying an English flag, and want to trade at Kralendijk, either the store keeper doesn't recognise the flag ("Welcome, mijnheer!") or he does ("You're not Dutch, you're English! But we like the English at the moment, so welcome, sir.") So if Rascal can trade under a genuine Friendly flag then he ought to be able to trade under a false one too - recognised or not, he's still Friendly. (Why would I be flying a Dutch flag when I'm actually English? Perhaps because Holland is at peace with France, England isn't, but they both hate Spain, so I wanted to be able to attack Spanish ships but sail peacefully into Martinique to do side quests. Or it's England who made peace with France, but I wanted to take on the Soleil Royal and haven't bothered to change back to English flag yet.)

If I recall, we never ever bothered balancing the medicine use. I think for simplicity's sake, I had it at "1 unit of medicine can save one crewmember from dying".
Considering the number of casualties I'd expect you get after a battle, wouldn't you then need a LOT of medicine?
How come you need only that little?
I'm not sure off-hand. Maybe it's broken and only charges 1 unit of medicine per day of healing regardless of numbers. Or maybe I didn't have a decent surgeon and a lot of the wounded died. Or maybe there weren't many wounded, most were either dead or intact.

As I tried to say before: "Encouraging play for evil characters" is NOT the same as "allowing evil characters to have the same advantages that good ones do".
With my suggestion, evil characters CAN trade, but have some extra limitations. That is admittedly a disadvantage of sorts, but not to the point of it being game-breaking.
So rather than trying to get good and evil characters treated equally, I'd much rather think of some advantages that EVIL characters can get that good ones don't.
Maybe not outright game-breaking, but enough so that once I'm done testing both sides of "Ardent", I'll only play it seriously as the good version. Depending on what the evil advantages are, possibly also enough that anyone who needs to do much trading, e.g. anyone who needs to buy food and rum, will find it preferable not to turn to the dark side.

For example: Evil characters may be able to do business easily only at 50% of the merchants, BUT their profit margins could be better because "the merchants fear them".
Or: you cannot trade at certain towns because TradeCheck returns false and decide to make use of the "Commerce >5" workaround.
At the moment all characters get their profit margins cut in half then. What if that wouldn't apply to evil characters?
If merchants fear them then they wouldn't be turned away by the other 50%. The only time they fear you is when you turn up with a force capable of taking the town, in which case they become cooperative regardless of flag or reputation. (Or should do, because if they don't, you take the town.)

I wouldn't have reputation affect trade much, if at all. Evil traders don't care, they just want the money, so they'll trade with anyone and will use whatever excuse they can to fleece you. Good traders are the ones who will initially refuse to trade with you out of conscience but at the end of the day they have to make their money, so they'll accept your offer of double payment as a sort of punishment for your wicked ways.

The main difference between good and evil is that some quests are unavailable to evil, while others react differently. Perhaps expand on that - tweak a few more dialog files to give different options based on reputation. An evil character might get more payment for a cargo delivery, for example - partly because the store keeper wants to give you plenty of incentive to do the job rather than steal the cargo, and partly because you're the sort who'll do whatever it takes to get the job done. Maybe allow evil characters to bypass the new requirement for prior dealings with smugglers before doing "Smuggling for Thomas O'Reilly" because you might not have met any of his mates but you're the sort of person who he reckons would fit in well. Or reduce the chances of random walkers picking your pocket because you're not the sort to be deterred from getting your money back by mugging them and getting a -1 reputation - in fact, you want it!

I am concerned that if it is easy to grind up Hero without too much effort, then that is a bit of a cheat.
Which it will be if you raise the reputation reward for tasks which currently only give +2. ;)

For simplicity's sake, it was my intention to change the function that changes reputation so that if you call it with low numbers, you can only change it to "Swindler/Matey".
So it needs to be called with bigger numbers to actually get to "Terror/Hero". That way large reputations can only be reached through large acts.
Having "small acts that when combined CAN get upto Horror/Hero" adds a brand new level of complexity, because then you'd need to define the "size" of the change AND the limit individually.
Having small acts which when combined can get up to Horror/Hero doesn't add complexity as it's what we have now. Adding large acts which can get you up to Horror/Hero more quickly adds a bit of complexity; they'd probably be side quests which need to be written, and they'd need to be repeatable so that you can do them again if you lapse back to Terror/Dashing. (Remember, the ultimate evil is Horror of the High Seas. Bloody Terror is the equivalent to Dashing. ;))

If at all possible, I prefer handling that with one input variable and not two.

I'd like to use it as:
+/- 1 reputation changes between Bloke / Rascal
+/- 2 reputation changes between Matey / Swindler
+/- 3 reputation changes between Dashing / Bloody Terror
+/- 4 reputation changes between Hero / Horror of the High Seas

Reputation changes larger than +/- 4 would make you reach Hero / Horror of the High Seas more quickly.
Then the main question is: If Guard Duty/Saving from Rapists SHOULD get up to Hero, then it should be at least 4 reputation points.
The reputation scale is 89 long. So you'd need to do that (89/2)/4 = 11.25 times to get from Neutral up to Hero.
Whereas I'd make it even simpler:
+/-1 reputation changes as far as Matey/Swindler
+/-2 reputation changes for anything further
Guard duty and killing rapists get the +2 as now, so no change there - all that changes is Walkers, who revert to always giving the +1 bonus for telling them about a dropped purse or paying the beggar, but now make it only if your reputation is Bloke or less. Lose the reputation boost for military promotion and add something to get a big, occasional reputation boost. Which brings us to...

Alternatively, what actions WOULD warrant huge changes in reputation?
Going from good to bad is simple enough; there are plenty of evil acts I could think of.
But the other way around is not so obvious to me....
Side quests! Maybe add an option to escort quests, or have an alternate escort quest, so that you have to travel to a particularly dangerous destination. The enemy ship won't merely be your equal, it will be better. Success gets you the big reputation boost (along with the enemy ship as a prize, and probably a promotion if you have a LoM from the enemy's enemy). Or borrow the second mission from the "Assassin" storyline (provided @Bartolomeu o Portugues doesn't object) where you need to rescue someone from a dungeon - there are one or two other places similar to Speightstown dungeon. Or "The Magnificent Seven", except that due to game limitations it will be "The Magnificent Four" - one of the unfortified villages is about to be attacked by a bandit army and only you can help, but the village is poor so you're not getting paid for this. Or you need to carry a large amount of gold from one church to another, with bandits and pirates to fight on the way.
 
I was, until the discussion expanded. :D
I figured, if we are going to change this, might as well do it the way we want it so we won't need to do it again. ;)

But my motive was to make the evil Ardent playable, and if a quartermaster with Commerce 5 can trade at double price where the evil character can't normally trade at all then that becomes less urgent - I just need to give Ardent's quartermaster Commerce 5.
:onya

Friendly shouldn't need the false flag check as it shouldn't matter.
Normally I would agree. But if "friendly always trades" and "Wary doesn't trade with Neutral characters, does that mean that "Hostile doesn't trade with Swindler characters"?
That doesn't make so much sense, so it should either be:
"Friendly doesn't trade with Swindler characters"
or
"Wary doesn't trade with Neutral OR LESS characters"

Maybe that last is the one we want?

I'm not sure off-hand. Maybe it's broken and only charges 1 unit of medicine per day of healing regardless of numbers. Or maybe I didn't have a decent surgeon and a lot of the wounded died. Or maybe there weren't many wounded, most were either dead or intact.
Have a look here for the related code: Medium Priority - Crewmen who die from gangrene are actually healed | PiratesAhoy!
Looks like it is indeed "one unit per day", regardless of the number of wounded crew.
That doesn't sound quite right, does it? Please post any feedback/suggestions you might have on it in that thread. :doff

Maybe not outright game-breaking, but enough so that once I'm done testing both sides of "Ardent", I'll only play it seriously as the good version. Depending on what the evil advantages are, possibly also enough that anyone who needs to do much trading, e.g. anyone who needs to buy food and rum, will find it preferable not to turn to the dark side.
My point is that if you want to play evil, the way you play should be DIFFERENT from playing good.
The fact that it IS different means that it is worthwhile to try from a role playing point of view; IF that is what the player wants.

I'd much appreciate it if you could do some brainstorming on how you figure "playing as evil" should be notably not-the-same in free play compared to "playing as good".
That is probably the main question here and unless we know the answer to that, we can't figure this one out properly. :facepalm

If merchants fear them then they wouldn't be turned away by the other 50%. The only time they fear you is when you turn up with a force capable of taking the town, in which case they become cooperative regardless of flag or reputation. (Or should do, because if they don't, you take the town.)
I think you've different levels of "fear". Fear for your life or just enough fear (self-interest) to not swindle the person you're dealing with.
A with no commerce skills has lower profit margins than one with maxed out skills.
I figure the difference could partly be attributed to low-level characters being "swindled" by the merchants.
Merchants may be inclined to not do that with higher fame & less reputable players.

The main difference between good and evil is that some quests are unavailable to evil, while others react differently. Perhaps expand on that - tweak a few more dialog files to give different options based on reputation.
Just quests may be somewhat limited in scope. There is a lot of gameplay outside quests and I'd like reputation to have an impact there too, if feasible.

An evil character might get more payment for a cargo delivery, for example - partly because the store keeper wants to give you plenty of incentive to do the job rather than steal the cargo, and partly because you're the sort who'll do whatever it takes to get the job done. Maybe allow evil characters to bypass the new requirement for prior dealings with smugglers before doing "Smuggling for Thomas O'Reilly" because you might not have met any of his mates but you're the sort of person who he reckons would fit in well. Or reduce the chances of random walkers picking your pocket because you're not the sort to be deterred from getting your money back by mugging them and getting a -1 reputation - in fact, you want it!
Those are some good thoughts. Thanks! :cheers

Having small acts which when combined can get up to Horror/Hero doesn't add complexity as it's what we have now.
Currently we have a situation that ANY small act can stack up to make you a Hero.
If we add the logic of "only SOME acts can affect it all the way, but certain ones more than others", then that DOES add extra complexity because you've got TWO variables:
1. The "limits" for the reputation change
2. The "size" of the reputation change

Adding large acts which can get you up to Horror/Hero more quickly adds a bit of complexity
That is why I was thinking of linking that to "doing well in your respective field". For example, have it for "being repeatedly promoted as a privateer".

they'd probably be side quests which need to be written, and they'd need to be repeatable so that you can do them again if you lapse back to Terror/Dashing.
Repeatable side quests are EXTREMELY tricky, because they very easily become boring/annoying and a way of "grinding" in themselves.

The main one I could think of that fits in with game mechanics is "looting towns" vs. "defending towns against invasion".
Those could be random events. But of course we only have one of those two currently in the game. :facepalm

Remember, the ultimate evil is Horror of the High Seas. Bloody Terror is the equivalent to Dashing. ;)
Please excuse my confusion with their names. I never can get them straight and at the moment don't have a proper list handy.

Whereas I'd make it even simpler:
+/-1 reputation changes as far as Matey/Swindler
+/-2 reputation changes for anything further
Guard duty and killing rapists get the +2 as now, so no change there - all that changes is Walkers, who revert to always giving the +1 bonus for telling them about a dropped purse or paying the beggar, but now make it only if your reputation is Bloke or less.
That might indeed be the best option for now. Otherwise the change may become too large. Simplicity has to win, I suppose.... :wp

Maybe add an option to escort quests, or have an alternate escort quest, so that you have to travel to a particularly dangerous destination.
That could work. Even without adding all that much new stuff.
To prevent bugs with the game not being able to find a valid destination, I unlocked virtually ALL towns for Escort Quests, including hostile ones.
As players can decline them if they decide the risk isn't worth it, I figured that would be fair enough.
It would only be fair to add a larger reward for those; that reward could indeed be a nice reputation boost. :onya

Or borrow the second mission from the "Assassin" storyline (provided @Bartolomeu o Portugues doesn't object) where you need to rescue someone from a dungeon - there are one or two other places similar to Speightstown dungeon. Or "The Magnificent Seven", except that due to game limitations it will be "The Magnificent Four" - one of the unfortified villages is about to be attacked by a bandit army and only you can help, but the village is poor so you're not getting paid for this. Or you need to carry a large amount of gold from one church to another, with bandits and pirates to fight on the way.
I like those ideas. :woot
 
Normally I would agree. But if "friendly always trades" and "Wary doesn't trade with Neutral characters, does that mean that "Hostile doesn't trade with Swindler characters"?
That doesn't make so much sense, so it should either be:
"Friendly doesn't trade with Swindler characters"
or
"Wary doesn't trade with Neutral OR LESS characters"

Maybe that last is the one we want?
Yes, but subject to a fame / flag check, and probably swap it with Hostile. So:
Friendly (genuine or didn't recognise you): trades with anyone.
Wary (you didn't have a false flag or he recognised you): won't trade with Swindler - his nation doesn't trust you and neither does he.
Hostile (false flag recognised, or you didn't have one and got here via the jungle): won't trade with you unless you're Hero or Horror.

Have a look here for the related code: Medium Priority - Crewmen who die from gangrene are actually healed | PiratesAhoy!
Looks like it is indeed "one unit per day", regardless of the number of wounded crew.
That doesn't sound quite right, does it? Please post any feedback/suggestions you might have on it in that thread. :doff
We have enough to correct already without looking for more trouble. Anyway, one unit is supposed to be 1 cwt. That's a lot of bandages or doses of medicine!

My point is that if you want to play evil, the way you play should be DIFFERENT from playing good.
The fact that it IS different means that it is worthwhile to try from a role playing point of view; IF that is what the player wants.

I'd much appreciate it if you could do some brainstorming on how you figure "playing as evil" should be notably not-the-same in free play compared to "playing as good".
I already did. ;) Different options in some dialogs, and a couple of side quests only available to evil characters to balance out the current side quests only available to good.

Once again, my major coding effort these days is on "Ardent", but to give a couple of examples of what I did there:
You've made a deal with Two Dogs Fighting - he leads you to the slave camp, then you take him home. When you've finished with the slave camp, he reminds you of this. Good Ardent automatically agrees to take him home, evil Ardent has the option to tell him "Tough. I don't need you any more. Get lost!"
During the Hispaniola temple quest, your ship is stolen. Fortunately, standing on Cape Francos beach is fisherman Doolin Becart, who is very friendly and agrees to take you to Boca de Hubon. But only pirates and smugglers go there - are you one of those? Good gets to say that he is indeed a pirate, the one who got the Santiago payroll ship, which impresses Doolin enough to give you a free journey. Evil gets to say that he is indeed a pirate and is going to steal Doolin's ship.

I think you've different levels of "fear". Fear for your life or just enough fear (self-interest) to not swindle the person you're dealing with.
A with no commerce skills has lower profit margins than one with maxed out skills.
I figure the difference could partly be attributed to low-level characters being "swindled" by the merchants.
Merchants may be inclined to not do that with higher fame & less reputable players.
Commerce skill has already been devalued by ignoring it if you have the merchant licence, we may not want to devalue it further. Anyway, I always regarded Commerce skill as a combination of haggling and knowing the proper value of various goods.

Just quests may be somewhat limited in scope. There is a lot of gameplay outside quests and I'd like reputation to have an impact there too, if feasible.
Which is why I also suggested tweaking some dialogs to give them different options based on reputation. Quick example off the top of my head; threatening to burn down a resident's house might only be available to evil, neutral and possibly Bloke, because anyone higher would not do such a thing. Or, if you do, knock off more reputation than from an evil character because it's unexpected and you're obviously not the nice person everyone thought you were.

Currently we have a situation that ANY small act can stack up to make you a Hero.
If we add the logic of "only SOME acts can affect it all the way, but certain ones more than others", then that DOES add extra complexity because you've got TWO variables:
1. The "limits" for the reputation change
2. The "size" of the reputation change
All you need to do is find lines in "Enc_Walker.c" like this:
Code:
       if(rand(GetDifficulty()+1)<1) //Depending on your difficulty this happens more often or not.
       {
         ChangeCharacterReputation(PChar, 1);
       }
Replace the condition with:
Code:
if (Pchar.reputation <= REPUTATION_PLAIN)
So you always get the +1 bonus for paying a beggar or telling someone about their purse, but only if you're Bloke or less. (The value definitions for reputations are given in "PROGRAM\CHARACTERS\characters.h", but the names don't match up with the usual labels - presumably they're translated somewhere.)

That is why I was thinking of linking that to "doing well in your respective field". For example, have it for "being repeatedly promoted as a privateer".
So you get promoted repeatedly by England for sinking Spanish ships, which makes you Hero, which means Spanish stores will now welcome you. xD I'm not sure what "doing well in your respective field" means for any other character types, though I suspect doing well as a pirate or smuggler doesn't exactly qualify you as a Hero, and a merchant who does well in his field of making money by fleecing the unwary isn't much of a Hero either...

Repeatable side quests are EXTREMELY tricky, because they very easily become boring/annoying and a way of "grinding" in themselves.
Nevertheless, the requirements are that something only happens rarely, gives a big reputation boost, and isn't tied to nationality because reputation has to be universal. That pretty much requires a side quest. But it's not going to be "grinding" because it happens rarely. It only needs to be repeatable so that if you've already done it and become Hero, then lost that status either because you did something evil or because you've implemented your threat to have reputation drop if you don't keep doing things, then you'll need to do the quest again to get back to Hero.

The easiest one I can think of right away is that modified escort quest. It might be as simple as adding a few lines to the existing escort quest code. Maybe a 1/10 chance, or a chance based on difficulty and character level, to generate the tough job instead of the regular one. It's no more grinding than regular escort quests. Perhaps make it more likely if you're Dashing so you don't spend as long being offered regular escort jobs before you finally get the tough one. Or make it always and only available if you're Dashing or Hero because the tavern keeper knows you're awesome and has recommended you to someone he knows could really use your help.

I like those ideas. :woot
And the "Magnificent Four" one has the added benefit of giving your updated Ambush/Raid functions some extra use. ;)
 
Yes, but subject to a fame / flag check, and probably swap it with Hostile. So:
Friendly (genuine or didn't recognise you): trades with anyone.
Wary (you didn't have a false flag or he recognised you): won't trade with Swindler - his nation doesn't trust you and neither does he.
Hostile (false flag recognised, or you didn't have one and got here via the jungle): won't trade with you unless you're Hero or Horror.
What about the current "Wary nations don't trade with neutral characters" one?

We have enough to correct already without looking for more trouble. Anyway, one unit is supposed to be 1 cwt. That's a lot of bandages or doses of medicine!
My point exactly. So the use seems a bit excessively much.
It may need to be handled like "food/rum consumption" instead.

It isn't a high priority issue, but if you have thoughts on how to handle it, post them and we'll make it a Feature Request.

I already did. ;) Different options in some dialogs, and a couple of side quests only available to evil characters to balance out the current side quests only available to good.
Just within your own storyline though, right?

You've made a deal with Two Dogs Fighting - he leads you to the slave camp, then you take him home. When you've finished with the slave camp, he reminds you of this. Good Ardent automatically agrees to take him home, evil Ardent has the option to tell him "Tough. I don't need you any more. Get lost!"
Interesting. Though you do get into a bit of a "chicken and the egg" story.
Are you unable to decline helping him because you are good, or are you good because you choose to help him?
Of course you choose whether you're good or bad at the start of your storyline, rather than during free play, so that would be different I suppose.

Commerce skill has already been devalued by ignoring it if you have the merchant licence, we may not want to devalue it further. Anyway, I always regarded Commerce skill as a combination of haggling and knowing the proper value of various goods.
Eventually I'd be quite happy for the merchant license to work differently.
At the moment it is more "a means to an end". :facepalm

All you need to do is find lines in "Enc_Walker.c" like this:
Code:
if(rand(GetDifficulty()+1)<1) //Depending on your difficulty this happens more often or not.
{
ChangeCharacterReputation(PChar, 1);
}
Replace the condition with:
Code:
if (Pchar.reputation <= REPUTATION_PLAIN)
So you always get the +1 bonus for paying a beggar or telling someone about their purse, but only if you're Bloke or less. (The value definitions for reputations are given in "PROGRAM\CHARACTERS\characters.h", but the names don't match up with the usual labels - presumably they're translated somewhere.)
It is my intention to handle the "limits" inside the ChangeCharacterReputation function itself.
That way we won't need a lot of if-statements scattered everywhere through the code.
And to distinguish between small/large changes, we'd just need to change the numbers in the function calls and nothing else.

So you get promoted repeatedly by England for sinking Spanish ships, which makes you Hero, which means Spanish stores will now welcome you. xD
Yep, that part doesn't make much sense. :rofl

I'm not sure what "doing well in your respective field" means for any other character types, though I suspect doing well as a pirate or smuggler doesn't exactly qualify you as a Hero, and a merchant who does well in his field of making money by fleecing the unwary isn't much of a Hero either...
True. I was thinking mainly of Privateers and Naval Officers being considered national heroes when they do their job well.

lost that status either because you did something evil or because you've implemented your threat to have reputation drop if you don't keep doing things
"Threat"? Seriously!?!
I am not threatening to do ANYTHING. I am trying to do enough brainstorming to figure out what we should and shouldn't want to see changed.
Since I was hoping to have both Hero and Horror with some substantial benefits, it wouldn't make sense for it to be easy to get there and stay there.
Plus why would you remain famous if you stop doing things to keep you famous?
Just trying to think of what makes sense and would add extra gameplay/role playing potential here.

The easiest one I can think of right away is that modified escort quest. It might be as simple as adding a few lines to the existing escort quest code. Maybe a 1/10 chance, or a chance based on difficulty and character level, to generate the tough job instead of the regular one. It's no more grinding than regular escort quests. Perhaps make it more likely if you're Dashing so you don't spend as long being offered regular escort jobs before you finally get the tough one. Or make it always and only available if you're Dashing or Hero because the tavern keeper knows you're awesome and has recommended you to someone he knows could really use your help.
If the "tough job" and the "normal job" are determined by the hostile destination, then it could become even simpler than that.
The generated enemy doesn't even necessarily need to be stronger, because the hostile destination already adds to the danger.

Right now, the jobs generated no longer care about the player relations at all. You may get destinations hostile to you already.
So all that would be needed is an extra reputation boost if you complete an Escort Mission while being in a port hostile to yourself.

And the "Magnificent Four" one has the added benefit of giving your updated Ambush/Raid functions some extra use. ;)
The updated Ambush/Raid functions don't particularly require extra use.
Because it is now the updated function that gets called for EVERYTHING, it is already in use all over the place.
That was the general idea.... :wp
 
What about the current "Wary nations don't trade with neutral characters" one?
If you like. The important bit as far as I'm concerned is that they do a flag/fame check and treat you as Friendly if they don't recognise you as otherwise.

My point exactly. So the use seems a bit excessively much.
It may need to be handled like "food/rum consumption" instead.

It isn't a high priority issue, but if you have thoughts on how to handle it, post them and we'll make it a Feature Request.
I hadn't thought much about it at all, except to point out that if you're going to have Auto Buy cover medicines, it won't need to buy many of them. Otherwise, leave medicines as they are, this has already expanded way beyond the initial suggestion to let evil characters have a chance at trading under a false flag. :D

Just within your own storyline though, right?
That's where I've done things, since that's what I've been working on. But the suggestion to have different dialog options and maybe a side quest or two specifically for evil characters was for general play.

Interesting. Though you do get into a bit of a "chicken and the egg" story.
Are you unable to decline helping him because you are good, or are you good because you choose to help him?
Of course you choose whether you're good or bad at the start of your storyline, rather than during free play, so that would be different I suppose.
Exactly. Good and evil in this storyline aren't defined by reputation but by that initial choice - either you want to play a classic film-style hero pirate or a more gritty villainous pirate, and the storyline will take that choice into account. (Though I may at some point make use of the quest check "Reputation" to monitor your reputation and have you switch over if the good guy drops too far or the evil guy rises too far - if your actions show you to be playing the other style, the story may as well take note and react.) Errol Flynn probably wouldn't double-cross Two Dogs, so if you're playing the hero, neither will you. :)

It is my intention to handle the "limits" inside the ChangeCharacterReputation function itself.
That way we won't need a lot of if-statements scattered everywhere through the code.
And to distinguish between small/large changes, we'd just need to change the numbers in the function calls and nothing else.
That way lies trouble. Better to make the actual reputation changes conditional where they're being called, so you have precise control over what counts as heroic enough to get you to Hero and what doesn't.

True. I was thinking mainly of Privateers and Naval Officers being considered national heroes when they do their job well.
That's why they get their ranks and titles - their nation loves them. It's also why the other side marks them as hostile - it doesn't love them. On the other hand, being a Hero can get you respect even from your enemy. You may be on the opposite side but you conduct your war in a decent manner and that counts for something.

Since I was hoping to have both Hero and Horror with some substantial benefits, it wouldn't make sense for it to be easy to get there and stay there.
Plus why would you remain famous if you stop doing things to keep you famous?
Because if you did something epic enough to make you really famous, people are going to be talking about it long after you've stopped doing anything. Maybe disable the slide if you did something which got you a +10, for example. Gradually building your way up to Hero won't make you immune, but if you save a town from a raid, that's going to get you noticed for years without you needing to do anything else. Francis Drake could have retired after his round-the-world cruise and people would still be talking about it centuries later.

If the "tough job" and the "normal job" are determined by the hostile destination, then it could become even simpler than that.
The generated enemy doesn't even necessarily need to be stronger, because the hostile destination already adds to the danger.
But remember, this is supposed to be something big which gets you a significant boost to Hero status. Merely going to a hostile port isn't going to do that, you just tell the client that you're going into hostile waters and will be using a false flag, then hope the fort doesn't recognise you. Or walk in via the back door, pay the governor for forgiveness, then it's not a hostile port any more. It's the heavy frigate you meet on the way there that's definitely going to give you a hard time and earn you that Hero award.

The updated Ambush/Raid functions don't particularly require extra use.
Because it is now the updated function that gets called for EVERYTHING, it is already in use all over the place.
That was the general idea.... :wp
Maybe, but since you've put all that work into them, wouldn't it be nice to use them in something special? :D
 
But the suggestion to have different dialog options and maybe a side quest or two specifically for evil characters was for general play.
It is possible, of course. I'm concerned about the amount of work required though.
But of course that applies to ALL these ideas. Still, hopefully we can weed out the fancy ideas from the more feasible ones.

Exactly. Good and evil in this storyline aren't defined by reputation but by that initial choice - either you want to play a classic film-style hero pirate or a more gritty villainous pirate, and the storyline will take that choice into account. (Though I may at some point make use of the quest check "Reputation" to monitor your reputation and have you switch over if the good guy drops too far or the evil guy rises too far - if your actions show you to be playing the other style, the story may as well take note and react.) Errol Flynn probably wouldn't double-cross Two Dogs, so if you're playing the hero, neither will you. :)
Just so you know, if we decide that certain modifications are good for free play, but not for your storyline, it would be easy enough to add different behaviour for the storyline.
That is already the case in several cases for Bartolomeu and Jack as well. Even the Standard Storyline is exempt to some stuff.

So you don't need to oppose ideas that may work out well for free play, just because it would wreak havoc on your storyline.
Regardless of what we decide to do in the end, your storyline is your own and we should be able to make it work the way you intend. :doff

That way lies trouble. Better to make the actual reputation changes conditional where they're being called, so you have precise control over what counts as heroic enough to get you to Hero and what doesn't.
There is trouble that way too: Extra code, more work to put that extra code in place, plus extra chance of something being done wrong with implementing.
Making all related changes in one central spot at least ensures that either it works the way it is meant or it doesn't.
Having it in many different spots means it could end up wrong in any one of those.

That's why they get their ranks and titles - their nation loves them. It's also why the other side marks them as hostile - it doesn't love them. On the other hand, being a Hero can get you respect even from your enemy. You may be on the opposite side but you conduct your war in a decent manner and that counts for something.
True, that. Maybe then linking reputation to promotions indeed isn't the best idea.
Instead, maybe link it to, as you say, your conduct. So perhaps do that when you are gentlemanly to ships/towns you capture.

Because if you did something epic enough to make you really famous, people are going to be talking about it long after you've stopped doing anything. Maybe disable the slide if you did something which got you a +10, for example. Gradually building your way up to Hero won't make you immune, but if you save a town from a raid, that's going to get you noticed for years without you needing to do anything else. Francis Drake could have retired after his round-the-world cruise and people would still be talking about it centuries later.
Maybe the "decrease" effect could be inversely proportional to the fame level.
Matey turns back to Neutral quite quickly, but Hero does not go down all that fast. Though that might end up quite annoying in and of itself.

Alternatively, vastly extend the reputation ranges and have the game reach "Hero" relatively quickly.
Then you can be a "Hero" (treated as such, but quick to go down) or "Major Hero" (which is exactly the same, but since the number is higher, it takes longer to reduce).
In fact, does there need to be a limit to the number at all? If there isn't, you can keep doing heroic acts even while you're a Hero and that will help you stay a Hero longer.

But remember, this is supposed to be something big which gets you a significant boost to Hero status. Merely going to a hostile port isn't going to do that, you just tell the client that you're going into hostile waters and will be using a false flag, then hope the fort doesn't recognise you. Or walk in via the back door, pay the governor for forgiveness, then it's not a hostile port any more. It's the heavy frigate you meet on the way there that's definitely going to give you a hard time and earn you that Hero award.
Again I'm thinking primarily of the amount of effort to implement it.
What I am proposing is quite literally one if-statement and one call to ChangeCharacterReputation .
In other words: Extremely easy to accomplish.

Adding a different, more challenging sidequest requires either copying the existing code and changing that or making the existing code have two levels.
Plus extra dialog and questbook entries to explain it all. Technically possible, but definitely more work.
I don't care about "more work" if somebody else wants to do it. But more often than not, "something should be done" means "I should do it".
So then I start thinking of how to simplify it right down to its basics.

You don't get the reward until the quest completes. That goes for the reputation addition too.
If the town where you're in is no longer hostile by that time, you won't get that bonus either.

I definitely agree it then shouldn't be a massive increase. Just one of those that can eventually get you up to hero.
Even if it ended up being relatively easy, you still too the risk.
Though the reputation increase could be limited to only when there IS an enemy ship generated (currently 50/50 chance).

Maybe, but since you've put all that work into them, wouldn't it be nice to use them in something special? :D
As it is:
- Ambush has approximately 50 calls
- Random_Raid has approximately 35 calls
- Rapid_Raid has 4 calls (2 from the keyboard control and 2 from your storyline)

These three are all "wrapper" functions that are now relayed to the new LAi_CreateFantomGroup one.
So that's quite a bit of use as it is.

That being said, LAi_CreateFantomGroup itself has only 2 straight calls; one for soldier reinforcements and another for the "Merchant Guild".
Most of the "new" functionality (fixed levels/custom officer types/custom weapons) isn't really in use anywhere at the moment.
I just added that stuff because Rapid_Raid had something like it and you wanted it for quest use.
But I assume you'll be making use of it at some point. :cheeky
 
Last edited:
Just so you know, if we decide that certain modifications are good for free play, but not for your storyline, it would be easy enough to add different behaviour for the storyline.
That is already the case in several cases for Bartolomeu and Jack as well. Even the Standard Storyline is exempt to some stuff.

So you don't need to oppose ideas that may work out well for free play, just because it would wreak havoc on your storyline.
I wasn't thinking that way anyway. :D Remember that the storyline has its own way of handling good and evil which doesn't depend on reputation, though does affect it. The exception being the problem which caused me to start all this, which is evil characters can't trade under a false flag.

There is trouble that way too: Extra code, more work to put that extra code in place, plus extra chance of something being done wrong with implementing.
Making all related changes in one central spot at least ensures that either it works the way it is meant or it doesn't.
Having it in many different spots means it could end up wrong in any one of those.
You're going to need to go through all those different spots anyway to decide whether to change the reputation gain or loss to fit in with the central system. For example, I believe you get +2 reputation if you caught someone with his hand in your pocket and decide to let him keep some gold, and you also get +2 for doing bodyguard duty and refusing the reward. You'd either need to change one of them, allow both to contribute towards Hero, or allow neither to contribute towards Hero. Personally I'd disallow giving the pickpocket some gold but allow guard duty without reward. But since giving the pickpocket some free money in the hope that it will give him a start toward an honest career is better than merely telling someone he's just dropped his purse, maybe allow it to contribute toward Dashing. Then there are the reputation rewards from various side quests - you'd need to check how they all fit into your central system. Whereas I'd just say that doing a quest automatically contributes towards Hero and leave them alone. And that means the only file which needs a bit of work is "Enc_Walker.c". See attached. :doff

Maybe the "decrease" effect could be inversely proportional to the fame level.
Matey turns back to Neutral quite quickly, but Hero does not go down all that fast. Though that might end up quite annoying in and of itself.
Very! It means unless you can find something to raise your reputation again very soon, you'll never get away from Neutral. Don't plan on any long voyages otherwise you'll be Neutral by the time you reach land.

Also, presumably this only applies to the player character, not to officers? They never do any heroic actions themselves and rarely do anything villainous (apart from being in a combat in town, shooting at a genuine enemy, missing and hitting a civilian).

Alternatively, vastly extend the reputation ranges and have the game reach "Hero" relatively quickly.
Then you can be a "Hero" (treated as such, but quick to go down) or "Major Hero" (which is exactly the same, but since the number is higher, it takes longer to reduce).
In fact, does there need to be a limit to the number at all? If there isn't, you can keep doing heroic acts even while you're a Hero and that will help you stay a Hero longer.
Perhaps. But if you're going to implement this system then it only makes sense if a Hero who got that way by lots of small, relatively unmemorable acts needs to keep doing them to stay there, whereas someone who did something impressive will be remembered for ages.

But personally I wouldn't bother with this at all. It's likely to be a significant amount of work just to annoy players a bit. Either they'll keep doing heroic / villainous acts anyway because that's the way they play, or they're doing such acts just to change the word on their status page and want to keep it once they've got it. It's the latter type who are going to be annoyed by this.

Adding a different, more challenging sidequest requires either copying the existing code and changing that or making the existing code have two levels.
Plus extra dialog and questbook entries to explain it all. Technically possible, but definitely more work.
I don't care about "more work" if somebody else wants to do it. But more often than not, "something should be done" means "I should do it".
So then I start thinking of how to simplify it right down to its basics.
At the most basic, just a random chance to make the enemy ship tougher, and a bit of extra dialog at the end to give you the special thanks and the extra reputation.

You don't get the reward until the quest completes. That goes for the reputation addition too.
If the town where you're in is no longer hostile by that time, you won't get that bonus either.
So then we're down to the success or failure of the whole mission being down to one roll of the metaphorical dice. Either the fort recognises you in which case you fail unless you're in a battleship that can take on the fort; or the fort doesn't recognise you in which case you just sail straight in. In case of failure, try to run away, escape to open sea, then return and try again until you succeed. Not exactly heroic, especially not the bit about succeeding by running away. xD Also, do hostile destinations include places like Nevis Pirate Settlement and Oranjestad, which don't have forts?
 

Attachments

  • Enc_Walker.c
    47.2 KB · Views: 154
I wasn't thinking that way anyway. :D
Cheers! Just wanted to make sure.

I very much appreciate you being critical of the ideas being proposed. It certainly helps a lot to have you considering things that I might not.
Hopefully eventually we'll converge to a proper "best" solution for this all. :cheers

You're going to need to go through all those different spots anyway to decide whether to change the reputation gain or loss to fit in with the central system. For example, I believe you get +2 reputation if you caught someone with his hand in your pocket and decide to let him keep some gold, and you also get +2 for doing bodyguard duty and refusing the reward. You'd either need to change one of them, allow both to contribute towards Hero, or allow neither to contribute towards Hero. Personally I'd disallow giving the pickpocket some gold but allow guard duty without reward. But since giving the pickpocket some free money in the hope that it will give him a start toward an honest career is better than merely telling someone he's just dropped his purse, maybe allow it to contribute toward Dashing. Then there are the reputation rewards from various side quests - you'd need to check how they all fit into your central system. Whereas I'd just say that doing a quest automatically contributes towards Hero and leave them alone. And that means the only file which needs a bit of work is "Enc_Walker.c". See attached. :doff
I envisioned doing a global search for ChangeCharacterReputation with Notepad++ and changing any numbers that don't seem right.
Eventually I might still do that. But not yet, so thanks for that one. :woot

Very! It means unless you can find something to raise your reputation again very soon, you'll never get away from Neutral. Don't plan on any long voyages otherwise you'll be Neutral by the time you reach land.
Indeed let's not do that one then... :wp

Also, presumably this only applies to the player character, not to officers? They never do any heroic actions themselves and rarely do anything villainous (apart from being in a combat in town, shooting at a genuine enemy, missing and hitting a civilian).
Haven't thought about officer reputation yet. At the moment their reputations have absolutely zero impact on the game.
Only exception is the "companion mutiny" functionality. I'd hope to do something about that so officer reputations DO matter.
But I'm not quite sure yet how. There are several approaches:
1. Officers' reputation is affected by ChangeCharacterReputation, so if the player does good, his officers start changing to 'good' as well
2. Officers' reputation is NOT affected by anything; it is randomly set when the officer is generated and then doesn't change
3. Officers' reputation is affected ONLY by ChangeCharacterReputation IF the direction of that change is in line with their own "alignment" (randomly assigned as "good"/"bad")

I am currently leaning towards #3. This also allows situations where an officer may have a good reputation, but have a bad personality or the other way around.
That means that when you hire an officer, there is one thing that you don't know: His true personality, because alignment is invisible.

Could be considered annoying, but could also be considered an extra gameplay element with some basis on realism too.
After all, when you first meet anyone, you DON'T know their true nature.

As for the effect of officers' reputation, my thinking is to have it affect their loyalty: Planned Feature - Officer Loyalty | PiratesAhoy!
That functionality now just about works so all that should be needed is to call OfficersReaction from within ChangeCharacterReputation, but only for LARGE changes.

I think all of this can be handled by editing only the ChangeCharacterReputation function itself.
It will have some definite impact on the gameplay, which will at the very least require some getting used to.

Perhaps. But if you're going to implement this system then it only makes sense if a Hero who got that way by lots of small, relatively unmemorable acts needs to keep doing them to stay there, whereas someone who did something impressive will be remembered for ages.
How to handle that? My thinking was to have just one "reputation" number.
For that to work in your example, the "something impressive" would need to be a +100 change or something like that.
Otherwise we'd need two variables: The reputation and some sort of "length of time you keep that reputation for".

On the other hand, could it not be argued that a single large act could be quickly forgotten again? Unless it truly IS a +100 change.
While on the other hand, many small acts will be remembered by many different people and could therefore last longer.

But personally I wouldn't bother with this at all. It's likely to be a significant amount of work just to annoy players a bit. Either they'll keep doing heroic / villainous acts anyway because that's the way they play, or they're doing such acts just to change the word on their status page and want to keep it once they've got it. It's the latter type who are going to be annoyed by this.
Implementing that idea of mine will definitely alter the gameplay, but that is specifically my intention with it.
At the moment "Hero/Horror" is, as you say, a word on their status page and doesn't have a huge impact on the gameplay.
Or that is to say: As a Bloke, you can do pretty much everything just the same as if you were a Hero. And being "bad" basically has only disadvantages.
Also, you can get yourself up to "Hero" within an hour of startin the game or so and then remain a hero with absolutely no effort.

In other words: Reputation does virtually nothing for gameplay, which to me sounds like wasted potential.
With my ideas, I would want "reputation management" to actually MEAN something.
That is definitely less convenient than the current situation and depending on your point of view could be considered "annoying".

But if having either a hugely good or hugely bad reputation actually impact the game in different noteworthy games,
then being able to easily get to those points and stay there would be almost a cheat.
So based on that, it needs to be both challenging to get to those extremes AND challenging to stay there.

I am mainly thinking of playing as if you were a beginning Blackbeard.
From what I understand of his history, he deliberately worked hard at building a fiercesome reputation for himself specifically to make exploit the advantages that would give.
This is what I would hope to be able to reproduce as a gameplay element. The main question is: How?

But yes, I admit that it will be different and may be considered annoying by people.
It still seems like a worthwhile goal to pursue though, because once it is in place, there is a brand new level to the true role-playing aspect of the game.

At the most basic, just a random chance to make the enemy ship tougher, and a bit of extra dialog at the end to give you the special thanks and the extra reputation.
Might be possible to handle it with an extra attribute that is set when the quest is generated.
There is already some special dialog to thank you if an enemy was generated at all. That part would need to be tweaked.
It isn't actually a huge amount of work, but at the moment I already have a huge list of all sorts of things that aren't a huge amount of work by themselves.
And I'm not at all getting to doing those....

I'd be really happy if we could somehow cooperate in implementing all of this though!
Everything is always much easier for me when I know I don't need to do everything myself. :yes

So then we're down to the success or failure of the whole mission being down to one roll of the metaphorical dice. Either the fort recognises you in which case you fail unless you're in a battleship that can take on the fort; or the fort doesn't recognise you in which case you just sail straight in.
Technically true, yes. I won't claim what I propose is an ideal solution. It was just the simplest I could think of for this one.

What if we implement your suggestion though? Hostile destination PLUS strong hostile ship.
So there would be a definite sea battle, with a bit of luck against a ship of the same nationality of the fort at your destination.
Double the risk then, especially if the sea battle ends up close to the fort, because you may need to hoist a hostile flag as part of the process.

Should the destination be hostile to the PLAYER or also to the MERCHANT? At the moment only destinations are chosen that are either pirate OR not hostile to the merchant.
The ship at the moment isn't linked to the destination; it is just set to be "any random nation hostile to the player".

Also, do hostile destinations include places like Nevis Pirate Settlement and Oranjestad, which don't have forts?
They do; there is no check on the presence of forts.
It is possible to disable fortless towns altogether using the "skip_trade" option,
but I doubt we would want that because it could affect ANY random quests being generated with that as destination.

Though even towns without a fort usually have some same-nation (and therefore hostile) ships surrounding the island.

To see how it works at the moment, search in PROGRAM\QUESTS\quests_common.c for GenerateDestination() (or something like that).
 
I envisioned doing a global search for ChangeCharacterReputation with Notepad++ and changing any numbers that don't seem right.
Eventually I might still do that. But not yet, so thanks for that one. :woot
It's no longer necessary. Assuming my change to "Enc_Walker.c" works, you'll now always get the bonuses from walker dialogs as you used to, but only up to Matey (or Dashing for the one where you decide to let a pickpocket keep some money). Anything else presumably came from quests and I'd let that contribute the whole way to Hero anyway, so no changes needed there.

Haven't thought about officer reputation yet. At the moment their reputations have absolutely zero impact on the game.
Only exception is the "companion mutiny" functionality. I'd hope to do something about that so officer reputations DO matter.
But I'm not quite sure yet how. There are several approaches:
1. Officers' reputation is affected by ChangeCharacterReputation, so if the player does good, his officers start changing to 'good' as well
2. Officers' reputation is NOT affected by anything; it is randomly set when the officer is generated and then doesn't change
3. Officers' reputation is affected ONLY by ChangeCharacterReputation IF the direction of that change is in line with their own "alignment" (randomly assigned as "good"/"bad")

I am currently leaning towards #3. This also allows situations where an officer may have a good reputation, but have a bad personality or the other way around.
That means that when you hire an officer, there is one thing that you don't know: His true personality, because alignment is invisible.

Could be considered annoying, but could also be considered an extra gameplay element with some basis on realism too.
After all, when you first meet anyone, you DON'T know their true nature.
The current situation is 1, and I'd rather like to keep it. Part of the game for me is watching officers develop, both in skills (which is why I'm so annoyed with the still broken levelling system) and in reputation - in fact, if I play the game long enough to reach Hero myself, one reason for continuing to do things which boost reputation is to watch the officers change as well.

If you want the reality-based excuse, your actions are influencing them - they're gradually coming round to your way of seeing things. It obviously works because you're succeeding, so they start to think "Maybe he has a point". Attitude can be shaped by the company you keep, and that's what's happening here.

As for the effect of officers' reputation, my thinking is to have it affect their loyalty: Planned Feature - Officer Loyalty | PiratesAhoy!
That functionality now just about works so all that should be needed is to call OfficersReaction from within ChangeCharacterReputation, but only for LARGE changes.

I think all of this can be handled by editing only the ChangeCharacterReputation function itself.
It will have some definite impact on the gameplay, which will at the very least require some getting used to.
Or my last resort response, which is to revert to whichever version of the game worked the way I like it, then stick with that. ;)

How to handle that? My thinking was to have just one "reputation" number.
For that to work in your example, the "something impressive" would need to be a +100 change or something like that.
Otherwise we'd need two variables: The reputation and some sort of "length of time you keep that reputation for".
Or a single attribute "did_something_impressive"; if that's set to "yes", the slide back doesn't happen. Cancel it if by your action you stop being Hero/Horror.

On the other hand, could it not be argued that a single large act could be quickly forgotten again? Unless it truly IS a +100 change.
While on the other hand, many small acts will be remembered by many different people and could therefore last longer.
It doesn't work that way. People will more readily remember one big event than lots of small ones. Nobody remembers Francis Drake's single successes against Spanish ships but they do remember the round-the-world journey and the raid on Cadiz. Saving 20 women from rapists in 20 different incidents in random jungles will get you talked about all over the place as each of them relate their experiences, and eventually forgotten if you stop doing it; but saving the town from attack once will get you into the town's history books permanently.

Implementing that idea of mine will definitely alter the gameplay, but that is specifically my intention with it.
At the moment "Hero/Horror" is, as you say, a word on their status page and doesn't have a huge impact on the gameplay.
Or that is to say: As a Bloke, you can do pretty much everything just the same as if you were a Hero. And being "bad" basically has only disadvantages.
Also, you can get yourself up to "Hero" within an hour of startin the game or so and then remain a hero with absolutely no effort.
If you can get to Hero in one hour then you're making a pretty determined and sustained effort during that hour, in which case you should be able to enjoy the result of that effort. You'll have had access to the good-only side quests well before you became Hero, but now you also get to trade in hostile ports.

But if having either a hugely good or hugely bad reputation actually impact the game in different noteworthy games,
then being able to easily get to those points and stay there would be almost a cheat.
So based on that, it needs to be both challenging to get to those extremes AND challenging to stay there.
AND there needs to be some significant reward. That has to be in place first. Otherwise you've got the annoyance without the useful effect. Whereas if the reward is in place first, then it can be playtested and we'll see if people report that it's too easy.

I am mainly thinking of playing as if you were a beginning Blackbeard.
From what I understand of his history, he deliberately worked hard at building a fiercesome reputation for himself specifically to make exploit the advantages that would give.
This is what I would hope to be able to reproduce as a gameplay element. The main question is: How?

That would require a much greater overhaul than just messing with how you move along a one-dimensional scale of Horror - Hero. Look at the number of ships sunk or captured, and the number of people killed. Then factor in the reputation - if you're Hero then you probably killed pirates, enemies of your country and jungle thugs justifiably, whereas if you're Horror then you're probably an indiscriminate killer and it's a really bad idea to upset you. If you're Horror but haven't killed many people then all you've been doing is lots of minor robberies and saying nasty things, so you're not exactly Blackbeard.

Might be possible to handle it with an extra attribute that is set when the quest is generated.
There is already some special dialog to thank you if an enemy was generated at all. That part would need to be tweaked.
It isn't actually a huge amount of work, but at the moment I already have a huge list of all sorts of things that aren't a huge amount of work by themselves.
And I'm not at all getting to doing those....
First rule when you're in a hole - stop digging. xD If you already have a long to-do list, we don't need to figure out how to add more to it...

What if we implement your suggestion though? Hostile destination PLUS strong hostile ship.
So there would be a definite sea battle, with a bit of luck against a ship of the same nationality of the fort at your destination.
Double the risk then, especially if the sea battle ends up close to the fort, because you may need to hoist a hostile flag as part of the process.
That's not double the risk; if you have to fight a superior ship while in range of the fort, you've probably had it.

And then there's the matter of how you intend to get into port given that the fort is hostile - does the game allow you to dock then? Or do you have to hope the fort doesn't knock down your masts before you can finish off the enemy ship and then run away, get to worldmap, then return and hope the fort doesn't remember you?

Should the destination be hostile to the PLAYER or also to the MERCHANT? At the moment only destinations are chosen that are either pirate OR not hostile to the merchant.
The ship at the moment isn't linked to the destination; it is just set to be "any random nation hostile to the player".
If the merchant is giving an enhanced reward, whether by cash or reputation, then it ought to be hostile to him. But I still recommend the big enemy ship rather than the hostile destination - at best the hostile destination will succeed or fail based on a single false flag check rather than on your gameplay, at worst it's near suicidal if you have to provoke the fort and aren't in a battleship.
 
Meanwhile, back to the original problem of trading under false flags:
(Big chunk deleted - I think I was looking at the wrong version. :oops:)

Looking at "nations.c", "GetChanceDetectFalseFlag" does not take account of fame - it's based on rank, Luck skill, game difficulty level, and the "Disguise" perk. Anyway, we've made flag changing more realistic by only allowing it if you're on the ship, and if we're going to be realistic then the storekeeper can't see your flag anyway. Some stores are in town areas not adjacent to the port (e.g. St. Pierre), others have the shop's view of the port blocked by other buildings (e.g. Bridgetown), and in any case he won't see your flag if you're moored at a beach. So the real question is, if you're pretending to be his nationality (indicated by the flag you left on the ship, in reality based on your clothes, speaking the language, addressing him as "Monsieur" if you're in France, etc.), does he recognise you? And that's a fame check, not a flag check.

So I'm going to start with the earlier version of "CharacterUtilite.c", use fame instead of false flag detection (though still only if you're flying a false flag and pretending to be a friendly nation), and allow you to trade regardless of reputation if he doesn't recognise you. Because if he doesn't recognise you then he doesn't know your reputation. :D

Update: going back to checking false flag because I can't work out what values fame returns, and anyway it's possible to do a false flag check against any flag.
 
Last edited:
It's no longer necessary. Assuming my change to "Enc_Walker.c" works, you'll now always get the bonuses from walker dialogs as you used to, but only up to Matey (or Dashing for the one where you decide to let a pickpocket keep some money). Anything else presumably came from quests and I'd let that contribute the whole way to Hero anyway, so no changes needed there.
Fine by me! Especially for Beta 4, because I wasn't planning to touch any of this at all until that is complete. :cheeky

Part of the game for me is watching officers develop, [...] in skills (which is why I'm so annoyed with the still broken levelling system)
I can pretty much guarantee you that there is not a single person on this forum who is MORE annoyed with the Levelling situation than myself.
If there is one reason why Beta 4 still hasn't been publically released, it is THAT and that alone.
And I want to have it OVER AND DONE WITH. So yes, "annoyed" doesn't even begin to describe it. "Exasperated" is closer to the truth.

Anyway, that was beside the point.... :unsure

The current situation is 1, and I'd rather like to keep it. Part of the game for me is watching officers develop, both in skills[...] and in reputation - in fact, if I play the game long enough to reach Hero myself, one reason for continuing to do things which boost reputation is to watch the officers change as well.
What I propose is to HALF keep #1. So it remains working like that, but ONLY for officers who share your ideas of good and bad.
So there would be one added challenge, which is to find officers who share your general beliefs. Apart from that, it would remain as-is.

If nothing is changed at all, then officer reputation is completely and utterly meaningless.
That means it might as well not be there, which is wasted gameplay potential.

If you want the reality-based excuse, your actions are influencing them - they're gradually coming round to your way of seeing things. It obviously works because you're succeeding, so they start to think "Maybe he has a point". Attitude can be shaped by the company you keep, and that's what's happening here.
True for people who are actually willing to let their point of view be changed.
If you hire an evil character and act like a hero yourself, that evil character could be willing to change his beliefs and follow you. OR not.

If we would implement my suggestion on this, watching your officers develop would be MORE important because it gets meaning.
You would be able to tell that this evil officer doesn't see eye to eye with you because his reputation does NOT go up while yours does.
In the background, his loyalty would decrease instead and when that hits zero, he'll leave and/or decide to mutiny/attack you.

Less simple, that's for sure. And anything that is "more complicated" can be considered to be annoying and inconvenient.
But I do believe there is value to this idea.

Or a single attribute "did_something_impressive"; if that's set to "yes", the slide back doesn't happen. Cancel it if by your action you stop being Hero/Horror.
Also possible.

It doesn't work that way. People will more readily remember one big event than lots of small ones. Nobody remembers Francis Drake's single successes against Spanish ships but they do remember the round-the-world journey and the raid on Cadiz. Saving 20 women from rapists in 20 different incidents in random jungles will get you talked about all over the place as each of them relate their experiences, and eventually forgotten if you stop doing it; but saving the town from attack once will get you into the town's history books permanently.
I suppose..... :ninja

If you can get to Hero in one hour then you're making a pretty determined and sustained effort during that hour, in which case you should be able to enjoy the result of that effort. You'll have had access to the good-only side quests well before you became Hero, but now you also get to trade in hostile ports.
But if it is EASY, then there is no CHALLENGE. No challenge = no gameplay.

Do other games allows you to "become Mr. Awesomdude in five seconds"? That really does sound to me like something you should WORK for.

AND there needs to be some significant reward. That has to be in place first. Otherwise you've got the annoyance without the useful effect. Whereas if the reward is in place first, then it can be playtested and we'll see if people report that it's too easy.
Definitely agreed there; without rewards for having both high and low reputations, this whole idea is pointless.
So that returns to the question of: What kind of rewards would be reasonable and worthwhile?

That would require a much greater overhaul than just messing with how you move along a one-dimensional scale of Horror - Hero. Look at the number of ships sunk or captured, and the number of people killed. Then factor in the reputation - if you're Hero then you probably killed pirates, enemies of your country and jungle thugs justifiably, whereas if you're Horror then you're probably an indiscriminate killer and it's a really bad idea to upset you. If you're Horror but haven't killed many people then all you've been doing is lots of minor robberies and saying nasty things, so you're not exactly Blackbeard.
Congratulations; you hit the nail on the head!
That is specifically why I suggest that "multiple small acts of evil" should not get you down to Horror.
Once you reach "Horror", you managed to get to "Blackbeard level". Which means you need to have done "Blackbeard level evil".
Which doesn't necessarily need to be unreasonably evil, but definitely the kind of stuff that builds yourself a proper reputation.

Same thing applies to becoming "Hero". Ideally I'd want players to reach either Horror or Hero really quite late in the game.
That would give players another sort of "ultimate goal" and hopefully provide a reason to keep playing for a while.
This is also then a bonus of starting as, say, Milady de Winter because she starts out with already a very low reputation.
Right now that doesn't mean much of anything and is probably more annoying than anything else, but hopefully it won't stay like that. :cheeky

First rule when you're in a hole - stop digging. xD If you already have a long to-do list, we don't need to figure out how to add more to it...
Well, it was your suggestion. I was just trying to figure out how it would need to be implemented. :wp

That's not double the risk; if you have to fight a superior ship while in range of the fort, you've probably had it.
So... then it may end up becoming an "instant death or failure" quest?

And then there's the matter of how you intend to get into port given that the fort is hostile - does the game allow you to dock then? Or do you have to hope the fort doesn't knock down your masts before you can finish off the enemy ship and then run away, get to worldmap, then return and hope the fort doesn't remember you?
Two options:
1. Sail in under a false flag so that the fort doesn't fire on you (may work, but risky especially once you become famous)
2. Moor at a beach and walk to the port; I think that will complete Escort Quests as well

Once forts have spotted you as an enemy, they WILL remember you. The only way they'll forget requires giving money to the governor.

If the merchant is giving an enhanced reward, whether by cash or reputation, then it ought to be hostile to him. But I still recommend the big enemy ship rather than the hostile destination - at best the hostile destination will succeed or fail based on a single false flag check rather than on your gameplay, at worst it's near suicidal if you have to provoke the fort and aren't in a battleship.
So this is a merchant who wants to get into a town hostile to himself? Come to think of it, that is beginning to sound more like an escorted smuggling run than a heroic act....

Maybe "known large enemy ship at FRIENDLY destination" would indeed be a better option.
 
I'm trying to scan this and one thing caught my eye. There was mention of being stuck at "neutral" reputation easily. How would this affect side quests like Toff's Daughter and the Admiral's Son?
 
Looking at "PB_Code_5Mar2016", there seems to be a different version of "tradecheck" in "CharacterUtilite.c".
What version are you comparing to? I'm pretty sure that code hasn't been touched in YEARS!
Definitely not in the last 2-3 weeks. :shock

Looking at "nations.c", "GetChanceDetectFalseFlag" does not take account of fame - it's based on rank, Luck skill, game difficulty level, and the "Disguise" perk. Anyway, we've made flag changing more realistic by only allowing it if you're on the ship, and if we're going to be realistic then the storekeeper can't see your flag anyway. Some stores are in town areas not adjacent to the port (e.g. St. Pierre), others have the shop's view of the port blocked by other buildings (e.g. Bridgetown), and in any case he won't see your flag if you're moored at a beach. So the real question is, if you're pretending to be his nationality (indicated by the flag you left on the ship, in reality based on your clothes, speaking the language, addressing him as "Monsieur" if you're in France, etc.), does he recognise you? And that's a fame check, not a flag check.
Fame IS checked, because the "rank" in that function is your FAME rank:
Code:
  ref mchr = GetMainCharacter(); // KK
  float score  = GetScore(mchr); // KK
  float rank  = GetRankFromPoints(score);
This has nothing to do with character level. :no

For reference, the full function is posted here:
WIP - Improve the Crewmembers on Shore Mod | Page 3 | PiratesAhoy!

So I'm going to start with the earlier version of "CharacterUtilite.c", use fame instead of false flag detection (though still only if you're flying a false flag and pretending to be a friendly nation), and allow you to trade regardless of reputation if he doesn't recognise you. Because if he doesn't recognise you then he doesn't know your reputation. :D
You're right that GetChanceDetectFalseFlag technically has NOTHING to do with "flags", despite its name.
That is what it was meant for at the time it was written, but that no longer really applies.
It is more a "general recognition chance" for whatever reason you want to make use of that.
 
I'm trying to scan this and one thing caught my eye. There was mention of being stuck at "neutral" reputation easily. How would this affect side quests like Toff's Daughter and the Admiral's Son?
The "easily stuck at neutral" thing was mainly based on a rather bad idea of mine that we already decided to cancel.
I do still have the idea of "letting reputation eventually go back to neutral if you don't do anything to keep it up", but that isn't meant to be a hugely fast process.

We could make this change slow down the closer you get to Neutral, so remaining a "Hero/Terror" would be harder than remaining a "Bloke/Swindler".
This is a similar process to what already applies to crew morale.
If this process is not very pronounced at low reputations, hopefully it shouldn't really affect those sidequests too much.

That being said, I cannot help but wonder... If Toff only wants your help if you're a Matey and it isn't ridiculously easy to get to Matey (in constrast to the current situation),
then effectively you would not be able to do his quest until a bit later in the game because you'd actually have to work towards it for a bit.
Since that quest is rather short, surprisingly profitable, gets EASIER as it becomes more profitable(!) and gives you the single best blade in the game, that may not be such a bad thing.
The current situation is convenient, I agree, but it seems more like an extremely tempting cheat. :ninja
 
What version are you comparing to? I'm pretty sure that code hasn't been touched in YEARS!
Definitely not in the last 2-3 weeks. :shock
Yes, you may notice I spotted that and corrected it. ;) The computer on which I check Internet stuff, including forums, has installs of various dates. I think the Windows Search which found that one was looking in Build 13 at the time! It's now been told not to search that ancient folder.

Fame IS checked, because the "rank" in that function is your FAME rank:
Wouldn't it be nice if people used variable names which actually referred to what the variable was about? :D I'd have thought that "rank" could either mean rank, as in with a nation; or level, though that would be better named "level"; but I didn't think it meant fame, which really ought to be named "fame".

You're right that GetChanceDetectFalseFlag technically has NOTHING to do with "flags", despite its name.
That is what it was meant for at the time it was written, but that no longer really applies.
It is more a "general recognition chance" for whatever reason you want to make use of that.

And that's how I've used it. Take a look at this, but it's currently completely untested, so use at your own risk! But you can WinMerge it with your own one to find out what I've done and see if there are any blatant errors.

Basically:
. It now checks if you're flying a false flag if your flag is non-hostile to the merchant's nation but you're Wary or worse to that nation (as opposed to Hostile)
. He'll remember if he recognised you and you're Hostile to his nation - you're an enemy agent. He won't record it if you're merely Wary - you're not an enemy agent, he just doesn't like you today.
. If he doesn't recognise you then his relationship becomes "REL_NEUTRAL", not "REL_AFTERATTACK", i.e. friendly rather than wary.
. If you're "REL_NEUTRAL" or better then he'll trade with you regardless of reputation. That means either you're genuinely friendly or he thinks you're friendly because he doesn't know otherwise.

Thought what I am now thinking is, instead of setting your relationship with the merchant to "REL_NEUTRAL" or any other fixed default, set it to 'GetNationRelation(pNation, mNation)' instead, i.e. the relation appropriate to the nation you're claiming to be.
 

Attachments

  • CharacterUtilite.c
    142.6 KB · Views: 149
"The current situation is convenient, I agree, but it seems more like an extremely tempting cheat. :ninja"

It's not a cheat early in the game when combat means death unless one can get really good weapons to defend oneself with. Later in the game that sword becomes unnecessary and in fact I'm using the Spanish Rapier right now.
 
Yes, you may notice I spotted that and corrected it. ;) The computer on which I check Internet stuff, including forums, has installs of various dates. I think the Windows Search which found that one was looking in Build 13 at the time! It's now been told not to search that ancient folder.
Ah, that explains a lot. That also explains you why I already did a rewrite on that function a few years back.

Hadn't noticed your edit until you pointed it out.

Wouldn't it be nice if people used variable names which actually referred to what the variable was about? :D I'd have thought that "rank" could either mean rank, as in with a nation; or level, though that would be better named "level"; but I didn't think it meant fame, which really ought to be named "fame".
YES IT WOULD! It is really very confusing and mistakes have been made because of such confusion often enough.
So I definitely understand. I also tend to be annoyed with "rank" and "level" being used interchangeably, especially in the code.
I'd want "level" to mean the player level and "rank" something related to promotions! :whipa

And that's how I've used it. Take a look at this, but it's currently completely untested, so use at your own risk! But you can WinMerge it with your own one to find out what I've done and see if there are any blatant errors.
BRILLIANT! Thanks very much for looking into this. :bow

Come to think of it, this section can probably be removed now:
Code:
pNation != PERSONAL_NATION
That is from here:
Code:
    rel = GetRMRelation(GetMainCharacter(), mNation);
     if(GetNationRelation(pNation, mNation) < RELATION_ENEMY && pNation != PERSONAL_NATION)     // your flag is NOT hostile to the merchant
If pNation = PERSONAL_NATION, then GetRMRelation(GetMainCharacter(), mNation) == GetNationRelation(pNation, mNation) .
That probably wasn't always the case when I rewrote the TradeCheck function, but IS after last year's Nation Relations code rewrite.

He won't record it if you're merely Wary - you're not an enemy agent, he just doesn't like you today.
One thing to be aware of: Most merchant dialog files end up calling TradeCheck twice to ensure you can complete active trade quests regardless of anything else.
But it looks like that is handled by "traderelation", so that is probably OK.

Another weird thing could arise from this though: If he doesn't like you "today", you can close the dialog, then try again without even leaving the store.

Basically:
. It now checks if you're flying a false flag if your flag is non-hostile to the merchant's nation but you're Wary or worse to that nation (as opposed to Hostile)
. He'll remember if he recognised you and you're Hostile to his nation - you're an enemy agent. He won't record it if you're merely Wary - you're not an enemy agent, he just doesn't like you today.
. If he doesn't recognise you then his relationship becomes "REL_NEUTRAL", not "REL_AFTERATTACK", i.e. friendly rather than wary.
. If you're "REL_NEUTRAL" or better then he'll trade with you regardless of reputation. That means either you're genuinely friendly or he thinks you're friendly because he doesn't know otherwise.
In general, that does sound fair enough to me.
That does mean in the early game, when the "recognition chance" is low, you can basically do everything you want wherever you want. As long as you use false flags.
Not much of a challenge at the start and does end up making "fame" more of a disadvantage.
But that will be improved on later and your current approach does probably make the most sense in the end.

Thought what I am now thinking is, instead of setting your relationship with the merchant to "REL_NEUTRAL" or any other fixed default, set it to 'GetNationRelation(pNation, mNation)' instead, i.e. the relation appropriate to the nation you're claiming to be.
GetNationRelation can only return three int values relating to "enemy", "neutral" and "friend".
But 'rel' needs to be a float number of points for it to work as intended. To convert the two, use this function:
Code:
float RelationToRMRelation(int rel)
{
   switch (rel)
   {
     case RELATION_ENEMY:
       return REL_WAR;
     break;
     case RELATION_NEUTRAL:
       return REL_AMNESTY;
     break;
     case RELATION_FRIEND:
       return REL_NEUTRAL; // PB: was -1
     break;
   }
}
So it would become 'RelationToRMRelation(GetNationRelation(pNation, mNation))' instead.
With a bit simpler function calls, it becomes this which should do exactly the same:
Code:
//find if merch will allow char to trade, based on char's RMRel with merch's
//nation, and char's rep.
bool TradeCheck(ref char, ref merch, bool first)
{
   if (LAi_IsCapturedLocation) return true; // KK
   int mNation = sti(merch.nation);
   int rep = sti(char.reputation);
   float rel = 0.0;
   // PURSEON -->
   if(first)
   {
     rel = GetRMRelation(GetMainCharacter(), mNation);
     if(GetFlagRMRelation(mNation) < RELATION_ENEMY)                         // your flag is NOT hostile to the merchant
     {
       if(rel <= REL_AFTERATTACK)                                 // but you are flying a false flag!
       {
         if (frnd() < GetChanceDetectFalseFlag() || CheckAttribute(merch,"FalseFlagDetect"))   // checks if the merchant will believe you
         {
           if (rel <= REL_WAR) merch.FalseFlagDetect = true;                 // you have been caught and the merchant won't be so trusting next time
         }
         else
         {
           rel = RelationToRMRelation(GetFlagRMRelation(mNation));               // believes you
         }
       }
       else
       {
         DeleteAttribute(merch, "FalseFlagDetect");                       // you are actually friendly
       }
     }
     else
     {
       if(rel <= REL_WAR)                                     // are you at war or not?
       {
         merch.FalseFlagDetect = true;                             // merchant KNOWS you are an enemy and remembers this
       }
       else
       {
         DeleteAttribute(merch, "FalseFlagDetect");                       // you are actually friendly
       }
     }
     merch.traderelation = rel;
   }
   else
   {
     rel = sti(merch.traderelation); // PB: Use the SAME relation for the WHOLE dialog
   }
   // <--PURSEON
I am not sure though if all of this code will end up making sense in all cases.

What if you are flying a hostile flag, but are actually friendly for example?
What if you were recognized (as hostile) before, but are friendly now?

And unfortunately after today at work, my mind isn't particularly clear anymore, so I can't seem to think this through properly. :(
 
"The current situation is convenient, I agree, but it seems more like an extremely tempting cheat. :ninja"

It's not a cheat early in the game when combat means death unless one can get really good weapons to defend oneself with. Later in the game that sword becomes unnecessary and in fact I'm using the Spanish Rapier right now.
Based on stats, as far as I can tell, Toff's sword is pretty much THE BEST.
Looks like it has virtually the highest Min Damage and Max Damage and definitely the highest Piercing and Block values of any sword in the game! :shock

Is combat in the early game still too difficult then?
On higher difficulties especially, I imagine that indeed it could be....
 
Back
Top