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

Fixed Smuggling: Allow on Turks depending on Period

Talisman

Smuggler
Storm Modder
:ahoy

This problem is sort of similar to the one posted here:-

Fix in Progress - Smuggling: Eleuthera has Smuggling Goods when it shouldn't | PiratesAhoy!


On the Colonies screen there are Contraband Goods. (see image )

But there is no Smuggler's Agent in the Tavern

And although the island has lots of beaches - none are defined for smuggling in smuggling.c

Code:
  case "Turks":
  TargetLocation = "none";
  if(DEBUG_SMUGGLING>0) Trace("Location " + TargetLocation + " Selected");
  break;


Also no goods are defined as Contraband in Islands_init.c

Code:
// KK -->
  rIsland.Trade.Export.id1 = GOOD_COPRA;
  rIsland.Trade.Export.id2 = GOOD_SILK;
  rIsland.Trade.Export.id3 = GOOD_COFFEE;
  rIsland.Trade.Export.id4 = GOOD_FRUITS;
  rIsland.Trade.Import.id1 = GOOD_OIL;
  rIsland.Trade.Import.id2 = GOOD_ALE;
  rIsland.Trade.Import.id3 = GOOD_TOBACCO;
  rIsland.Trade.Import.id4 = GOOD_LEATHER;
// <-- KK


This all makes sense - since you would not smuggle into a Pirate Settlement. :yes

However if Grand Turk is in any Period NOT a Pirate Settlement - then it should have Contraband goods.

So I am not sure what to do about this

1) - Remove Contraband from Turks.

2) - Let Turks have Contraband - Set up Smugglers Agent in Usurers.c & Beach (s) in Smuggling.c & Goods in Islands_init.c for all periods and Occupiers of Turks

3) - Set Up Grand Turks so it only has Contraband Goods when it is NOT occupied by by Pirates. ( This sounds complicated and may not be worth the effort )


Where do we go from here ? :shrug

All suggestions appreciated.

:pirates
 

Attachments

  • PotC Smug Goods Turks.jpg
    PotC Smug Goods Turks.jpg
    245.9 KB · Views: 91
Since I'm making a new installer right now, I just added a very simple fix by not assigning random smuggling goods to Turks either:
Code:
void setIslandSmugglingContraband(ref sisland)
{
   //This function add contraband to the island depending on the smuggling state. For now smugglers can't handle more then
   //4 pieces of contraband on a island and I dont think this should be more either.
   //Remove old contraband
   if(!CheckAttribute(sisland,"smuggling.state")) return; //If there is no coastguard, there can't be contraband
   if(sisland.id == "Antigua")  return; //  We don't want to change the contraband for Antigua
   if(sisland.id == "Eleuthera") return; // PB: We don't want to change the contraband for Eleuthera either
   if(sisland.id == "Turks")  return; // PB: And no smuggling to the Pirates
   if(CheckAttribute(sisland,"Trade.Contraband"))

However, it IS English in the last two time periods, which could allow smuggling.
Now that @Jack Rackham made a brand new town, perhaps he'd like to have smuggling set up properly as well?

I think it should be easy enough to check the current period in that code I posted above.
Then we just need to hide the smuggling agent when it IS pirate and we should be good to go for having it period-dependent.

So I think we can do your #3. As long as somebody adds the smuggling agent and sets up the beach. :onya
 
Temp solution works then, like it should.

Real fix would be preferred though. Perhaps for Eleuthera too.
Would anyone care to add the needed characters (and possibly locations)?
 
I prefer indeed to have beaches etc where people can smuggle to here.
Maybe @@pedrwyth could help with that?

Else I sugest we add an attribute to and island. Something like "no_smuggle" which will make it skip this.
 
An island attribute would indeed be a cleaner solution.

Did you originally add that Antigua check in there or was that a last minute hack of mine?
Can't remember now....
 
At the moment I have very little content for a new version and this week I'm quite busy with all sorts of work.
Also want to check some issues myself and am very much hoping for some more corrections by @Levis too.
So no huge rush. It won't be before Saturday at the earliest, but maybe some time next week.

One thing that struck me for Turks: Rather than adding an island and period dependent check to not allow Smuggling there except for the last two periods, we could do a general check for "Smuggling nation = pirate" instead.
If we pay that card right, it could cover all bases in one go.

What if Grand Turk is pirate though, but the Smuggling nation is Spain? I think that applies in Early Explorers.
In that case, you COULD smuggle there. But that may not be such a bad thing?
 
what about just adding a island attribute to disable the smuggling. So in the time period you can set this attribute. We could even make sure in the town ransack if you give the town to your personal nation no contraband is generated anymore or if you give it to pirates.
 
If we disable Smuggling for all nations with Smuggling nation pirate or personal, I think that automatically covers all bases.
That variable already gets updated when towns change hands.

This should then also remove any Smuggling goods if there are any abs ideally remove the smuggler agent from the Tavern too.

Does Turks have a smuggling agent yet now?
 
I havn't had a thought about smuggling. Just switched the Turks town.
At the moment there isn't any smuggling to Turks.
But in the last two periods, it is an English town, so it could be allowed.
There is already a shore that could be used. The only thing missing, if I recall, is a Smuggler Agent character in the tavern.
 
Yes and 'enable' smuggling in smuggling.c to that shore. Which shore?
If you want I can fix this.
 
In periods.c I find this line for the 2 first periods. What does it exactly mean?
Do I have to add something for the 2 last periods?
period.Islands.Turks.smuggling_nation = SPAIN;
 
In periods.c I find this line for the 2 first periods. What does it exactly mean?
Do I have to add something for the 2 last periods?
It is used to determine the nation of the coastguard. Using "current location nation" doesn't always work right when there are multiple nations on the same island.
Anyway, you don't really need to changing anything.
Turks has it set to ENGLAND by default in islands_init.c:
Code:
  // ==================================================================================================
   // Turks
     rIsland.id = "Turks";
     rIsland.model = "Terks";
     rIsland.filespath.models = "islands\Terks";
     rIsland.refl_model = "Terks_refl";
     rIsland.locators = "Terks_locators";
     rIsland.visible = true;
     rIsland.smuggling_nation = ENGLAND; // PB: Pirates as Coastguard?
Periods.c only overrides that default.
 
Okay, the mod is finished and tested and works.

About the smuggler dialog: I had to bribe that guy over and over and again. Is this intentional?
I think only when I exited the dialog and started a new one he got more cooperative.
 
Back
Top