Odd experience today: I added cotton sails to my new bermuda sloop, and the top speed went up substantially. Delighted, I added copper plating, and the top speed then went DOWN.
Confused, I reloaded and tried again. That time, it went up a different, smaller amount for cotton sails, and then went up again for copper plating, which was good at least.
I realized the game is randomly rolling the magnitude of upgrades, and then rerolling the earlier upgrades when you add a new upgrade of the same type, resulting in the potential to actually lose performance when adding an upgrade.
Aside from that rerolling being unrealistic, I think there is no need to make the effects of ship upgrades random (certainly not to the degree they currently are--where a sailing upgrade generates a random number of 0 to 5 for how much speed it increases, meaning sometimes cotton sails do nothing and other times they are over twice as effective as average).
Moreover, there is enough randomness in ship stats. Already even after nations are defined as the origin of ships, the game introduces another random pass upgrading or reducing certain stats of ships (meaning a british design sloop, of the same model and type, can be substantially faster, or slower). That amount of randomness is enough I think.
PROPOSED FIX:Just remove the randomness from the upgrades.
Question: The influence on ship inertia was still not implemented according to the comments? So no need to worry about removing the randomness from that? Didn't want to touch that part since I didn't understand it.
Proposed new values below for internal settings, I just set the mins and maxes for everything but inertia to the same, usually the midpoint rounding up, but for the staysails I set one parameter to the max and the other to a much reduced value, both to differentiate its function and because I didn't want to add additional decimal places (since I'm not sure how it works exactly).
EDIT: Modified interia range as well, as it looks like it might be used.
// ---- ADD ONS ---- All need shipyards. All can take out.
//Copper plates
#define CPSPEEDRANGEMAX 3 // int 0-100
#define CPSPEEDRANGEMIN 3 // int 0-100
#define CPTURNINGRANGEMAX 1 // int 0-100
#define CPTURNINGRANGEMIN 1 // int 0-100
#define CPINERTIARANGEMAX -3 // Not implemented
#define CPINERTIARANGEMIN -3 // Not implemented
#define CPTIMEMULT 1 // Time to repair all hull multiply by CPTIMEMULT
#define CPDISP 5 // int 0-100 Chance of being available
#define CPCOSTMULT 4 //Ships price * CPCOSTMULT
//Bronze cannons
#define BCACC 10.0 //float 0-100 increase of accuracy
#define BCRELOAD 10.0 //float 0-100 decrease of reload time
#define BCCRITICALCANNON 2.0 //float Multiplies the chance of loss a normal cannon
#define BCWEIGH -5 //Not implemented
#define BCDISP 10 // Availability
#define BCCOSTMULT 1750 // Cannons price per BCCOSTMULT
//Good chasers
#define GCACCADD 10.0 //float 0-100 - increase of accuracy
#define GCRANGEADD 1.1 //increase of speed - be careful: too big and the Fantoms will not aim correctly
#define GCSAILCRIT 8.0 //float 0-100 - % of sail crit - to be added to CSAILCRIT
#define GCMASTCRIT 20.0 //float 0-100 - % of mast crit
#define GCDISP 10 // int 0-100 Chance of being available
#define GCCOSTMULT 2000 // GCCOSTMULT * rcannons.cost(depending cannons fitted) * 2
// Common chasers
#define CSAILCRIT 5.0 //float 0-100 - % of sail crit
#define CSAILCRITDMG 4.0 // Damage multiplier if sail crit , either with chasers or good chasers
#define CMASTCRIT 15.0 // float 0-100 - % of mast crit
// Guns
#define MASTCRIT 8.0 //float 0-100 - % of mast crit
//New sails and ropes
#define NSSPEEDRANGEMAX 3 //int 0-100
#define NSSPEEDRANGEMIN 3 //int 0-100
#define NSSAILHPRANGEMAX 5 //int 0-100 % of damage reduction
#define NSSAILHPRANGEMIN 5 //int 0-100
#define NSINERTIARANGEMAX -5 //Not implemente
#define NSINERTIARANGEMIN -5 //Not implemente
#define NSTIMEMULT 1 // Time to repair all rigging multiply by NSTIMEMULT
#define NSDISP 25 // int 0-100 Chance of being available
#define NSCOSTMULT 0.5 // Cost of repair all rigging multiply by NSCOSTMULT
//Long top-masts
#define TMSPEEDRANGEMAX 5 //int 0-100
#define TMSPEEDRANGEMIN 5 //int 0-100
#define TMINERTIARANGEMAX -5 //Not implemente
#define TMINERTIARANGEMIN -5 //Not implemente
#define TMSAILCRIT 4 //int 0-100 increase of % of mastcrit
#define TMTIMEMULT 1 // Time to repair all rigging multiply by TMTIMEMULT
#define TMDISP 15 // int 0-100 Chance of being available
#define TMCOSTMULT 0.5 //Cost of repair all rigging multiply by TMCOSTMULT
//Staysails
#define SSTACKRANGEMAX -0.1 // float 0 - 1 Degrees of improve ClosestPoint - remmeber that ClosestPoint goes from 0 to 1
#define SSTACKRANGEMIN -0.1 // float 0 - 1 Degrees of improve ClosestPoint - remmeber that ClosestPoint goes from 0 to 1
#define SSTURNINGRANGEMAX 1 // int 0-100
#define SSTURNINGRANGEMIN 1 // int 0-100
#define SSTIMEMULT 1 // Time to repair all rigging multiply by SSTIMEMULT
#define SSDISP 3 // int 0-100 Chance of being available // Rare
#define SSCOSTMULT 0.5 //Cost of repair all rigging multiply by SSCOSTMULT
//Reinforced Hull --- No way back!!!!
#define RHHULLHPRANGEMAX 5 //int 0-100
#define RHHULLHPRANGEMIN 5 //int 0-100
#define RHINERTIARANGEMAX 5 //Not implemented
#define RHINERTIARANGEMIN 5 //Not implemented
#define RHCALIBERADD 1 // Number of calibers up
#define RHTIMEMULT 1 // Time to repair all hull multiply by RHTIMEMULT
#define RHDISP 50 // int 0-100 Chance of being available // Rather easy
#define RHCOSTMULT 40 // Cost of repair all hull multiply by RHCOSTMULT
// Pirate "flush" of ships - reduce the superstructure of captured ships in order to make them more "frigate-like"
// Need pirate or smuggler shipyard
// Just One way and only once in a ship
// Should change the model of ship in certain cases???
#define FLUSHSPEEDRANGEMAX 10 //int 0-100
#define FLUSHSPEEDRANGEMIN 10 //int 0-100
#define FLUSHTURNINGRANGEMAX 10 //int 0-100
#define FLUSHTURNINGRANGEMIN 10 //int 0-100
#define FLUSHHULLHPRANGEMAX -6 //int 0-100
#define FLUSHHULLHPRANGEMIN -6 //int 0-100
#define FLUSHLOADRANGEMAX 15 //int 0-100
#define FLUSHLOADRANGEMIN 15 //int 0-100
#define FLUSHEDCOSTMULT 6 //int 0-100
#define FLUSHEDTIMEMULT 1 //int 0-100
#define FLUSHEDPROB 10 //int 0-100 Chance of being on in a fantom
#define FLUSHEDPROB_IFPIRATE 60 //int 0-100 Chance of being on in a fantom
Confused, I reloaded and tried again. That time, it went up a different, smaller amount for cotton sails, and then went up again for copper plating, which was good at least.
I realized the game is randomly rolling the magnitude of upgrades, and then rerolling the earlier upgrades when you add a new upgrade of the same type, resulting in the potential to actually lose performance when adding an upgrade.
Aside from that rerolling being unrealistic, I think there is no need to make the effects of ship upgrades random (certainly not to the degree they currently are--where a sailing upgrade generates a random number of 0 to 5 for how much speed it increases, meaning sometimes cotton sails do nothing and other times they are over twice as effective as average).
Moreover, there is enough randomness in ship stats. Already even after nations are defined as the origin of ships, the game introduces another random pass upgrading or reducing certain stats of ships (meaning a british design sloop, of the same model and type, can be substantially faster, or slower). That amount of randomness is enough I think.
PROPOSED FIX:Just remove the randomness from the upgrades.
Question: The influence on ship inertia was still not implemented according to the comments? So no need to worry about removing the randomness from that? Didn't want to touch that part since I didn't understand it.
Proposed new values below for internal settings, I just set the mins and maxes for everything but inertia to the same, usually the midpoint rounding up, but for the staysails I set one parameter to the max and the other to a much reduced value, both to differentiate its function and because I didn't want to add additional decimal places (since I'm not sure how it works exactly).
EDIT: Modified interia range as well, as it looks like it might be used.
// ---- ADD ONS ---- All need shipyards. All can take out.
//Copper plates
#define CPSPEEDRANGEMAX 3 // int 0-100
#define CPSPEEDRANGEMIN 3 // int 0-100
#define CPTURNINGRANGEMAX 1 // int 0-100
#define CPTURNINGRANGEMIN 1 // int 0-100
#define CPINERTIARANGEMAX -3 // Not implemented
#define CPINERTIARANGEMIN -3 // Not implemented
#define CPTIMEMULT 1 // Time to repair all hull multiply by CPTIMEMULT
#define CPDISP 5 // int 0-100 Chance of being available
#define CPCOSTMULT 4 //Ships price * CPCOSTMULT
//Bronze cannons
#define BCACC 10.0 //float 0-100 increase of accuracy
#define BCRELOAD 10.0 //float 0-100 decrease of reload time
#define BCCRITICALCANNON 2.0 //float Multiplies the chance of loss a normal cannon
#define BCWEIGH -5 //Not implemented
#define BCDISP 10 // Availability
#define BCCOSTMULT 1750 // Cannons price per BCCOSTMULT
//Good chasers
#define GCACCADD 10.0 //float 0-100 - increase of accuracy
#define GCRANGEADD 1.1 //increase of speed - be careful: too big and the Fantoms will not aim correctly
#define GCSAILCRIT 8.0 //float 0-100 - % of sail crit - to be added to CSAILCRIT
#define GCMASTCRIT 20.0 //float 0-100 - % of mast crit
#define GCDISP 10 // int 0-100 Chance of being available
#define GCCOSTMULT 2000 // GCCOSTMULT * rcannons.cost(depending cannons fitted) * 2
// Common chasers
#define CSAILCRIT 5.0 //float 0-100 - % of sail crit
#define CSAILCRITDMG 4.0 // Damage multiplier if sail crit , either with chasers or good chasers
#define CMASTCRIT 15.0 // float 0-100 - % of mast crit
// Guns
#define MASTCRIT 8.0 //float 0-100 - % of mast crit
//New sails and ropes
#define NSSPEEDRANGEMAX 3 //int 0-100
#define NSSPEEDRANGEMIN 3 //int 0-100
#define NSSAILHPRANGEMAX 5 //int 0-100 % of damage reduction
#define NSSAILHPRANGEMIN 5 //int 0-100
#define NSINERTIARANGEMAX -5 //Not implemente
#define NSINERTIARANGEMIN -5 //Not implemente
#define NSTIMEMULT 1 // Time to repair all rigging multiply by NSTIMEMULT
#define NSDISP 25 // int 0-100 Chance of being available
#define NSCOSTMULT 0.5 // Cost of repair all rigging multiply by NSCOSTMULT
//Long top-masts
#define TMSPEEDRANGEMAX 5 //int 0-100
#define TMSPEEDRANGEMIN 5 //int 0-100
#define TMINERTIARANGEMAX -5 //Not implemente
#define TMINERTIARANGEMIN -5 //Not implemente
#define TMSAILCRIT 4 //int 0-100 increase of % of mastcrit
#define TMTIMEMULT 1 // Time to repair all rigging multiply by TMTIMEMULT
#define TMDISP 15 // int 0-100 Chance of being available
#define TMCOSTMULT 0.5 //Cost of repair all rigging multiply by TMCOSTMULT
//Staysails
#define SSTACKRANGEMAX -0.1 // float 0 - 1 Degrees of improve ClosestPoint - remmeber that ClosestPoint goes from 0 to 1
#define SSTACKRANGEMIN -0.1 // float 0 - 1 Degrees of improve ClosestPoint - remmeber that ClosestPoint goes from 0 to 1
#define SSTURNINGRANGEMAX 1 // int 0-100
#define SSTURNINGRANGEMIN 1 // int 0-100
#define SSTIMEMULT 1 // Time to repair all rigging multiply by SSTIMEMULT
#define SSDISP 3 // int 0-100 Chance of being available // Rare
#define SSCOSTMULT 0.5 //Cost of repair all rigging multiply by SSCOSTMULT
//Reinforced Hull --- No way back!!!!
#define RHHULLHPRANGEMAX 5 //int 0-100
#define RHHULLHPRANGEMIN 5 //int 0-100
#define RHINERTIARANGEMAX 5 //Not implemented
#define RHINERTIARANGEMIN 5 //Not implemented
#define RHCALIBERADD 1 // Number of calibers up
#define RHTIMEMULT 1 // Time to repair all hull multiply by RHTIMEMULT
#define RHDISP 50 // int 0-100 Chance of being available // Rather easy
#define RHCOSTMULT 40 // Cost of repair all hull multiply by RHCOSTMULT
// Pirate "flush" of ships - reduce the superstructure of captured ships in order to make them more "frigate-like"
// Need pirate or smuggler shipyard
// Just One way and only once in a ship
// Should change the model of ship in certain cases???
#define FLUSHSPEEDRANGEMAX 10 //int 0-100
#define FLUSHSPEEDRANGEMIN 10 //int 0-100
#define FLUSHTURNINGRANGEMAX 10 //int 0-100
#define FLUSHTURNINGRANGEMIN 10 //int 0-100
#define FLUSHHULLHPRANGEMAX -6 //int 0-100
#define FLUSHHULLHPRANGEMIN -6 //int 0-100
#define FLUSHLOADRANGEMAX 15 //int 0-100
#define FLUSHLOADRANGEMIN 15 //int 0-100
#define FLUSHEDCOSTMULT 6 //int 0-100
#define FLUSHEDTIMEMULT 1 //int 0-100
#define FLUSHEDPROB 10 //int 0-100 Chance of being on in a fantom
#define FLUSHEDPROB_IFPIRATE 60 //int 0-100 Chance of being on in a fantom
Last edited: