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

WIP Improvements to Smuggling.

Though I've just thought of another strategy within the existing system. Find an officer for hire. If he wants less than 500 as initial payment, hire him and immediately send him to scout for information, because he's cheaper than bribing a soldier. If Mr. Expendable gets caught, who cares? xD
This is horrifying and callous and I love it :rofl
I most definitely like that idea! :onya
Not sure how easy it would be to implement that, but it does make sense.
Sending an officer has the risk of losing that officer. So that risk should be offset by an advantage of some kind too. :yes
Personally I've no intention of risking an officer anyway. Especially not one with any worthwhile skills. ;)
I'd definitely be more willing to risk my officers if the chance of they returning wasn't totally random. If I sent someone with high luck and maybe fencing or something, and some appropriate perks, and they had a great chance of finding the time, I'd love it! :p

Adding some more checks for if they return and succeed seems easy enough through quests_common, but the GetBestSmugglingtime from smuggling.c seems harder, maybe too hard for me to figure out, but I'll probably try it out

You can pretty much do that after you're caught.
One of the guards then always has the Patrol Book, so if you survive them, you'll be better prepared next time.
That's one reason why "getting caught" isn't necessarily the worst thing in the world.
But since the idea of trying to get the patrol book is to avoid having to fight soldiers then this is probably not a viable proposition because if you don't mind the risk of having to fight or run from the town guard then you shouldn't be worried about having to fight or run from the coastguard either... (Especially as the town guard are probably a lot tougher.)
Very true. my reasoning was that then you at least do not risk facing the ships, but I agree that maybe it's not worth the risk and better as a 'bandage for the wounds' when getting caught, so to speak.

Another thought, perhaps as an alternative for female characters instead of claiming you're trying to have fun with the barmaid: have you tried my "Kapitein of Kralendijk" sidequest? Early on, you invite a soldier to join you in the tavern room for a drinking session which ends with him on the floor and you stealing his uniform. Maybe copy and modify the code so you can do something similar, only you're after the patrol book instead...
Loving this idea tho! deffo gonna have a look!
 
Another thought about the patrol book. It means you should be safe, for a while, when smuggling to the same place. It doesn't help if you do what I did, which was travel around from one island to another, to another, etc. If you're not planning on getting stuck in a rut shuttling contraband between the same pair of islands then the patrol book won't be much use, because by the time you get back to the island for which it's valid, it probably won't be valid any more.
 
I'd definitely be more willing to risk my officers if the chance of they returning wasn't totally random. If I sent someone with high luck and maybe fencing or something, and some appropriate perks, and they had a great chance of finding the time, I'd love it! :p
Excellent and makes sense! :onya

Adding some more checks for if they return and succeed seems easy enough through quests_common, but the GetBestSmugglingtime from smuggling.c seems harder, maybe too hard for me to figure out, but I'll probably try it out
What would you need to do with that function?
(Sorry, haven't look at that code in well over a year...)

Another thought about the patrol book. It means you should be safe, for a while, when smuggling to the same place. It doesn't help if you do what I did, which was travel around from one island to another, to another, etc. If you're not planning on getting stuck in a rut shuttling contraband between the same pair of islands then the patrol book won't be much use, because by the time you get back to the island for which it's valid, it probably won't be valid any more.
Dunno; how often do the patrol schedules change? From what I understand, it should take a while.
It only stops being valid when the "smuggling state" changes. Isn't that logged in the Tavern News when it happens?
 
What would you need to do with that function?(Sorry, haven't look at that code in well over a year...)
the only argument it takes is which island it uses. It uses the mainchars luck, and I havent figured out how refs and calling information from other files work.. o_O So I dont quite know how to tell the function which character calls it
 
I managed to add a character ref to the patrol time function, was very straightforward as soon as I got over my fear of adding things to global functions :p
Code:
int GetBestSmugglingtime(ref sisland,ref chr)
{
    //This Function returns the best time to smuggle
    //First let's see if we get false information or not
    float pluck = makefloat(CalcCharacterSkill(chr,SKILL_SNEAK));
    int badinfo_chance = makeint((SMUGGLING_PERCENTAGE_BAD_INFO/100.0) * (11-pluck)*10);
    if(CheckCharacterPerk(chr,"Trustworthy")) badinfo_chance = badinfo_chance*0.9;
    if(CheckCharacterPerk(chr,"IronWill")) badinfo_chance = badinfo_chance*0.8;
    /*if(CheckCharacterPerk(Pchar,"Charisma")) badinfo_chance = badinfo_chance*0.5;
    if(CheckCharacterPerk(PChar,"WitCharm")) badinfo_chance = 0;*/
//    trace("chance = "+badinfo_chance);
    int besttime = 0;
    aref patrols;
    makearef(patrols,sisland.smuggling.patrol);
    int amountpatrols = GetAttributesNum(patrols);
    if(rand(99) >= badinfo_chance)
    {
        int bestgroups = 9999;
        bool atnight = FALSE;
        //Loop trough all patrols and make a nice text.
        for(int i = 0; i < amountpatrols; i++)
        {
            string patrol = GetAttributeName(GetAttributeN(patrols,i));
            int groups = sti(sisland.smuggling.patrol.(patrol).groups);
            float starttime = stf(sisland.smuggling.patrol.(patrol).start);
            if(groups < bestgroups)
            {
                besttime = i;
                bestgroups = groups;
                if(starttime < 6.0 || starttime > 22.0)
                {
                    atnight = TRUE;
                }
                else
                {
                    atnight = FALSE;
                }
            }
            else
            {
                if(groups == bestgroups)
                {
                    if(atnight == FALSE)
                    {
                        if(starttime < 6.0 || starttime > 22.0)
                        {
                            besttime = i;
                            bestgroups = groups;
                            atnight = TRUE;
                        }
                    }
                }
            }
        }
    }
    else
    {
        besttime = rand(amountpatrols-1);
    }
    return besttime;
}

int getSmugglingState(ref sisland)
{
    return sti(sisland.smuggling.state);
}
So now it uses the ref characters luck and some perks in the calculation. there are probably other stats that would be cool to use too, like leadership maybe, if weighted right. but thats a project for tomorrow :p

following the code, it turns out sending an officer was pretty much a death sentence. they had a base 20-80% chance of death depending on the amount of patrols on the island plus 5% extra per step of game difficulty and no other modifiers. then, if they managed to come back anyway, they had a large risk of not getting any info, based on player luck. and then they still had the same chance for getting false info as if the player asked a guard.

I changed the calculation and added a bunch of checks for different officer stats and perks:
Code:
        case "Send Officer time expired":
            if(DEBUG_SMUGGLING>0)trace("SMUGGLING time expired you should go to: "+Pchar.quest.Contraband.tavern);
            NPChar = characterFromID(PChar.quest.Contraband.officerID);
            PChar.quest.Contraband_Scouting2.win_condition.l1 = "location";
            PChar.quest.Contraband_Scouting2.win_condition.l1.location = Pchar.quest.Contraband.tavern;
            ref smugisland = GetIslandByIndex(sti(Pchar.quest.Contraband.islandindex));
            //First determine if the officer get caught.
            //int caughtchance = getSmugglingState(smugisland)*20 + (GetDifficulty()*5);
            // DeathDaisy: chance of getting caught and getting info is now dependent of NPC skill and perks
            int luck = CalcCharacterSkill(NPChar,SKILL_SNEAK);
            int fencing = CalcCharacterSkill(NPChar,SKILL_FENCING);
            int commerce = CalcCharacterSkill(NPChar,SKILL_COMMERCE);
            int caughtchance = makeint((pow(getSmugglingState(smugisland),1.5)*10) - ((11-luck)*3) - ((11-fencing)*2) - ((11-commerce)));
            if(CheckCharacterPerk(NPChar,"Trustworthy")) caughtchance = caughtchance*0.9;
            if(CheckCharacterPerk(NPChar,"ImproveSmuggling")) caughtchance = caughtchance*0.8;
            if(CheckCharacterPerk(NPChar,"AdvanceSmuggling")) caughtchance = caughtchance*0.5;
           
            if(DEBUG_SMUGGLING>2)trace("SMUGGLING caughtchance for officer is: "+caughtchance);
            if(rand(99) < caughtchance)
            {
                //Officer caught
                PChar.quest.Contraband_Scouting2.win_condition = "Send Officer doesnt return";
            }
            else
            {
                int GetInfoSuccess = luck;
                if(CheckCharacterPerk(NPChar,"Trustworthy")) GetInfoSuccess = GetInfoSuccess+1;
                if(CheckCharacterPerk(NPChar,"ImproveSmuggling")) GetInfoSuccess = GetInfoSuccess+1;
                if(CheckCharacterPerk(NPChar,"AdvanceSmuggling")) GetInfoSuccess = GetInfoSuccess+1;
                //Based on officer luck and perks
                if(rand(9)<GetInfoSuccess)
                {
                    //Success
                    PChar.quest.Contraband_Scouting2.win_condition = "Send Officer has time";
                    if(DEBUG_SMUGGLING>2)trace("SMUGGLING officer success");
                }
                else
                {
                    //Failed
                    PChar.quest.Contraband_Scouting2.win_condition = "Send Officer failed";
                    if(DEBUG_SMUGGLING>2)trace("SMUGGLING officer failed");
                }
            }
        break;
the numbers are definitely not final for either file! I haven't tested them extensively for balance and they may act weird, but it's a start. the base chance of capture right now uses an exponential scale of 10%, 25%, 50% and 80% depending on island security, heavily modified by character stats. an officer specialized at smuggling should have a good chance at success even on heavily patrolled islands.

they're not finished, but I'm attaching the modified files if someone else wanna peek xD the random_guards_group got the extra line for women too, figured maybe it could work until the random lines are added :p the game doesn't crash at least, so thats something!finally I can sleep
 

Attachments

  • Enc_Officer_dialog.c
    50 KB · Views: 76
  • random_guards_group_dialog.h
    3.8 KB · Views: 78
  • random_guards_group_dialog.c
    9.1 KB · Views: 82
  • smuggling.c
    68.9 KB · Views: 80
  • quests_common.c
    228.4 KB · Views: 90
Good work so far, @DeathDaisy! :onya It's probably best if you finish the job since you know what you're doing. When you've tested it and can report that it works as intended, I'll add it to the next update.
 
The tavern smuggler's dialog, or the smuggling book, whichever tells the player of the possibility to send an officer, should be updated aswell to inform players of the changes and at least give them some clues of what are the relevant skills and perks the officer should have for the job.
 
Thanks! xD

The tavern smuggler's dialog, or the smuggling book, whichever tells the player of the possibility to send an officer, should be updated aswell to inform players of the changes and at least give them some clues of what are the relevant skills and perks the officer should have for the job.
Definitely! I think there are a couple of places the mechanics could be clearer.
I'd also like to add something so the player can get a hint of the current patrol level(unless that already exists and I missed it?). as it is you have to keep track off changes through the tavern rumours, and even then you have no idea how big of a problem they thought smuggling was before that, which is a problem if you have my short-term memory. :ko A high patrol level makes smuggling much more dangerous, but it makes more goods into contraband, which means potential profits, so it's a risk/reward situation. but it can be nice for the player to be able to avoid those islands before they build up their stats and team. maybe one could ask the smuggler or the tavern keeper? or maybe even as a rumour?
 
I like the idea of asking the smuggling agent. :onya

If I recall, the patrol levels only ever change in increments of 1.
They shouldn't skip a step. Not absolutely certain of that though....
 
I don't think the patrol level has any effect on which goods are contraband. Why would it? They haven't changed the law on what is allowed to be traded legally on the island, they're just putting more effort into chasing people who bring in goods that are already illegal. Having goods suddenly change from import to contraband, or the other way round, is going to mess things up for both honest traders and smugglers.

But if the patrol level goes up then smuggling becomes more dangerous, which means fewer people are doing it - or at least, fewer people are doing it successfully. That means demand is higher, and so are prices. So there won't be more goods which are now contraband, but the smugglers should pay more for the goods which were already contraband.

If you ask for tavern news, it goes into your ship's log. You can look at it again later, you don't need to rely on memory. ;) Otherwise, where do you want to ask the smuggler agent - at the tavern where you're planning to buy stuff, or at the tavern where you've arrived in the hope of selling it? In the former case, good luck writing dialog to allow for all possible islands that you might want to visit! In the latter case, by the time you're talking to the smuggler, it's already too late, you're there now. ("Trying to bring coffee into Barbados, are you? Better not risk it, there are extra patrols. Try going to Cayman instead. :p")
 
I don't think the patrol level has any effect on which goods are contraband. Why would it? They haven't changed the law on what is allowed to be traded legally on the island, they're just putting more effort into chasing people who bring in goods that are already illegal. Having goods suddenly change from import to contraband, or the other way round, is going to mess things up for both honest traders and smugglers.

But if the patrol level goes up then smuggling becomes more dangerous, which means fewer people are doing it - or at least, fewer people are doing it successfully. That means demand is higher, and so are prices. So there won't be more goods which are now contraband, but the smugglers should pay more for the goods which were already contraband.

If you ask for tavern news, it goes into your ship's log. You can look at it again later, you don't need to rely on memory. ;) Otherwise, where do you want to ask the smuggler agent - at the tavern where you're planning to buy stuff, or at the tavern where you've arrived in the hope of selling it? In the former case, good luck writing dialog to allow for all possible islands that you might want to visit! In the latter case, by the time you're talking to the smuggler, it's already too late, you're there now. ("Trying to bring coffee into Barbados, are you? Better not risk it, there are extra patrols. Try going to Cayman instead. :p")
If I understand the code correctly, contraband are indeed added the higher the patrol level:
Code:
void setIslandSmugglingContraband(ref sisland)
{
    //This function adds contraband to the island depending on the smuggling state. For now smugglers can't handle more then
    //4 pieces of contraband on an island and I don't think this should be more either.
    //Remove old contraband
    if(sisland.id == "Antigua")                               return; // We don't want to change the contraband for Antigua
    removeIslandContraband(sisland);
    if(!CheckAttribute(sisland,"smuggling.state"))            return; // If there is no coastguard, there can't be contraband

    //Now set the new contraband based on the nation of the island.
    int idx = 1;
    switch(sti(sisland.smuggling_nation))
    {
        case ENGLAND:
            idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_EBONY);
            idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_COFFEE);
            if(sti(sisland.smuggling.state)>1)
            {
                idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_PAPRIKA);
            }
            if(sti(sisland.smuggling.state)>3)
            {
                idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_BRICKS);
            }
        break;
      
        case FRANCE:
            idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_SANDAL);
            idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_COTTON);
            if(sti(sisland.smuggling.state)>1)
            {
                idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_CINNAMON);
            }
            if(sti(sisland.smuggling.state)>3)
            {
                idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_MAHOGANY);
            }
        break;
      
        case SPAIN:
            idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_ALE);
            idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_SILK);
            if(sti(sisland.smuggling.state)>1)
            {
                idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_TOBACCO);
            }
            if(sti(sisland.smuggling.state)>3)
            {
                idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_CHOCOLATE);
            }
        break;
      
        case PIRATE:
            idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_LEATHER);
            idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_CLOTHES);
            if(sti(sisland.smuggling.state)>1)
            {
                idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_COTTON);
            }
            if(sti(sisland.smuggling.state)>3)
            {
                idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_SILK);
            }
        break;
      
        case HOLLAND:
            idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_SUGAR);
            idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_LINEN);
            if(sti(sisland.smuggling.state)>1)
            {
                idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_FRUITS);
            }
            if(sti(sisland.smuggling.state)>3)
            {
                idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_SANDAL);
            }
        break;
      
        case PORTUGAL:
            idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_WINE);
            idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_MAHOGANY);
            if(sti(sisland.smuggling.state)>1)
            {
                idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_COPRA);
            }
            if(sti(sisland.smuggling.state)>3)
            {
                idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_EBONY);
            }
        break;
      
        case AMERICA:
            idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_PAPRIKA);
            idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_OIL);
            if(sti(sisland.smuggling.state)>1)
            {
                idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_LINEN);
            }
            if(sti(sisland.smuggling.state)>3)
            {
                idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_ALE);
            }
        break;
    }
}
so I didnt make it up, but maybe it doesn't make sense :shrug I can have a look at it if there's interest!

I was planning to ask the smuggler where you plan to sell.. I figure that yeah, you're already there, but if it's too dangerous you have to weigh the pros and cons of going ahead with the trade anyway, or if it's actually worth continuing to cayman. I think such choices could make smuggling more exciting, but I'm not beyond persuasion..:p Maybe I can try the gigantic task of adding the info where you want to buy instead :cheeky
 
I don't think the patrol level has any effect on which goods are contraband.
While Import/Export goods do not change during the game, Contraband certainly does.
Pretty sure it is linked to an increase in smuggling state.
Higher alert on smuggling = more stuff they care about being contraband.

Why would it? They haven't changed the law on what is allowed to be traded legally on the island, they're just putting more effort into chasing people who bring in goods that are already illegal. Having goods suddenly change from import to contraband, or the other way round, is going to mess things up for
Why? Ask @Levis. It was his idea.
Has been in the game for a while now. Don't remember hearing a complaint about it so far. :shrug

If you ask for tavern news, it goes into your ship's log. You can look at it again later, you don't need to rely on memory. ;) Otherwise, where do you want to ask the smuggler agent - at the tavern where you're planning to buy stuff, or at the tavern where you've arrived in the hope of selling it? In the former case, good luck writing dialog to allow for all possible islands that you might want to visit! In the latter case, by the time you're talking to the smuggler, it's already too late, you're there now. ("Trying to bring coffee into Barbados, are you? Better not risk it, there are extra patrols. Try going to Cayman instead. :p")
Fair point. :cheeky
 
If I understand the code correctly, contraband are indeed added the higher the patrol level:
Code:
void setIslandSmugglingContraband(ref sisland)
{
//This function adds contraband to the island depending on the smuggling state. For now smugglers can't handle more then
//4 pieces of contraband on an island and I don't think this should be more either.
//Remove old contraband
if(sisland.id == "Antigua") return; // We don't want to change the contraband for Antigua
removeIslandContraband(sisland);
if(!CheckAttribute(sisland,"smuggling.state")) return; // If there is no coastguard, there can't be contraband

//Now set the new contraband based on the nation of the island.
int idx = 1;
switch(sti(sisland.smuggling_nation))
{
case ENGLAND:
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_EBONY);
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_COFFEE);
if(sti(sisland.smuggling.state)>1)
{
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_PAPRIKA);
}
if(sti(sisland.smuggling.state)>3)
{
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_BRICKS);
}
break;

case FRANCE:
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_SANDAL);
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_COTTON);
if(sti(sisland.smuggling.state)>1)
{
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_CINNAMON);
}
if(sti(sisland.smuggling.state)>3)
{
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_MAHOGANY);
}
break;

case SPAIN:
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_ALE);
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_SILK);
if(sti(sisland.smuggling.state)>1)
{
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_TOBACCO);
}
if(sti(sisland.smuggling.state)>3)
{
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_CHOCOLATE);
}
break;

case PIRATE:
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_LEATHER);
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_CLOTHES);
if(sti(sisland.smuggling.state)>1)
{
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_COTTON);
}
if(sti(sisland.smuggling.state)>3)
{
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_SILK);
}
break;

case HOLLAND:
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_SUGAR);
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_LINEN);
if(sti(sisland.smuggling.state)>1)
{
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_FRUITS);
}
if(sti(sisland.smuggling.state)>3)
{
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_SANDAL);
}
break;

case PORTUGAL:
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_WINE);
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_MAHOGANY);
if(sti(sisland.smuggling.state)>1)
{
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_COPRA);
}
if(sti(sisland.smuggling.state)>3)
{
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_EBONY);
}
break;

case AMERICA:
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_PAPRIKA);
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_OIL);
if(sti(sisland.smuggling.state)>1)
{
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_LINEN);
}
if(sti(sisland.smuggling.state)>3)
{
idx = AddTradeGood(sisland, TRADE_TYPE_CONTRABAND_NAME, idx, GOOD_ALE);
}
break;
}
}
so I didnt make it up, but maybe it doesn't make sense :shrug I can have a look at it if there's interest!
Thanks for confirming that. :onya

I was planning to ask the smuggler where you plan to sell.. I figure that yeah, you're already there, but if it's too dangerous you have to weigh the pros and cons of going ahead with the trade anyway, or if it's actually worth continuing to cayman. I think such choices could make smuggling more exciting, but I'm not beyond persuasion..:p Maybe I can try the gigantic task of adding the info where you want to buy instead :cheeky
Maybe a simple warning, "Just so you know, the smuggling state is now high", to the dialog would be enough.
Then you are at least reminded and could decide to cancel the deal just in time.
 
If you're giving the hint at the place where you're doing the selling, another possible source is the soldier who told you the best time to land. Either explicitly ("By the way, I can't stay long because they've got us running extra patrols these days") or by the length of time he says you can go. If it's 1 hour then patrol level is high, if it's 3 hours then patrol level is low, and if it's 12 hours then he's probably lying (I've already figured out that the last one seems to be the case).
 
I seem to remember the tavern news having information on patrols being increased or decreased for different islands.

The tavern news is a feature I really liked.

Hook
 
Maybe a simple warning, "Just so you know, the smuggling state is now high", to the dialog would be enough.
Then you are at least reminded and could decide to cancel the deal just in time.
If you're giving the hint at the place where you're doing the selling, another possible source is the soldier who told you the best time to land. Either explicitly ("By the way, I can't stay long because they've got us running extra patrols these days") or by the length of time he says you can go. If it's 1 hour then patrol level is high, if it's 3 hours then patrol level is low, and if it's 12 hours then he's probably lying (I've already figured out that the last one seems to be the case).
Good ideas! 12 hours is a bit transparent :p the guards aren't the smoothest liars

But yeah, maybe one or a few hints of what smuggling state it's on after you have already already spoken to the smuggler is cool. Cancelling the deal hurts your relations with the smugglers guild slightly, but it might be better than risking a large patrol and coast guard ships. a problem I realised with the guard telling you the smuggling state tho is that then it's probably too late to decide if it's worth the risk of sending your officers, their chance of success is very dependent on smuggling state. on low state even the lowliest officer probably won't die, but if the smuggling state is highest only a master smuggler should try it. but otoh that's not a problem if there are several ways to get the info.

I seem to remember the tavern news having information on patrols being increased or decreased for different islands.

The tavern news is a feature I really liked.
yeah, that still exists, my problem was that I didn't know what state it was increased or decreased from :p but maybe it could be added to that rumour instead/as well? "Patrols on Cayman has increased, the guards are cracking down hard on smuggling" or something. Making the smuggling system clearer will probably help a lot of people get into it, so several sources for the same information maybe isn't so bad? as long as it doesn't make it so easy it's boring for the veterans I suppose
 
Oh my god, I'm such a tool. seems it actually does say what smuggling state it changes to in the tavern news. :facepalm

well, I think being able to ask someone about it is still probably a nice idea :oops:

Edit: No, I read the code wrong, it only prints it to the game log, so I was right. this is not going well :p
 
In that case, I have the following thoughts:
- Split the "Smuggling Tutorial" quest from the "Opium Quest"
- Have the "Tutorial" quest expire after a while and close itself/disappear
- Add some sort of indication for new players that the "Opium Quest" exists
I'm going to try splitting the questbook three ways. Part 1 is just the basic introduction - smugglers exist, then one of them gives you a book, and a month after that it closes. There can also be an additional entry if you get into trouble with the guild and have to pay them off. Part 2 is the basic governor quest and ends when you hand in the report, with a hint that there is more to do. Part 3 is the opium quest. Apart from splitting it off into its own questbook, I'm not touching the quest code for that. Anyone who actually wants to do the quest can do what they like to it.

The best way to trigger the opium quest is probably to go to the opium den. There are already rumours of its existence.
 
Back
Top