This is a bug(?) report about Curved Lens and Horizon CPU modifier having weird and possibly incorrect range issues.
let me try to follow the format given…
BEWARE : Lots and lots of numbers follow. The general gist: none of the possible ways of calculation match the ACTUAL value to the EXPECTED value.
- The Curved Lens supposedly -40% optimal/maximum firing range. A Horizon 17 at Mk2(don’t have higher level versions yet) supposedly +23% optimal/maximum firing range. Either works perfectly fine on its own.
BUT. When put together, they give result range lower than the expected value.
- WARNING : This is the long-winded calculation part. See the attached pics if you want to skip all these.
This was tested on a Breach Laser 12, which has a default range of 2800m. No implant affecting range was installed.
With the Curved Lens alone, the range becomes 1680m. (See attached screenshot 1). This matches the expected of 2800*(1-0.4) = 1680m.
With the Horizon 17 Mk2 alone, the range becomes 3444m. (See attached screenshot 2). This matches the expected of 2800*(1+0.23) = 3444m.
The problem happens when the two are put together. See attached screenshot 3. The range becomes 1949m.
Now. There are 2 ways to calculate range.
The first is the simple one: 2800*(1-0.4+0.23) = 2800*0.83 = 2324, which is clearly significantly different from 1949.
The second is 2800*(1-0.4)*(1.23) = 2066.4. Closer, but still very different from 1949.
I also considered the possibility of stacking penalty. 2 identical modules put together, each has 90% of the original effect. 3 put together, only 80%.
The first possibility is that both the Curved Lens and Horizon got 90% of the listed value.
– first way yields: 2800*(1-0.4*0.9+0.23*0.9) = 2371.6. Nope, not there.
– second way: 2800*(1-0.4*0.9)*(1+0.23*0.9) = 2121.7. Not close at all.
Second possibility: Curved Lens got 110% (seeing how all the range above is greater than 1949, clearly the penalty has to be higher than the listed 40%), and Horizon got 90%
– first: 2800*(1-0.4*1.1+0.23*0.9) = 2147.6.
– second: 2800*(1-0.4*1.1)*(1+0.23*0.9) = 1892.6. Surprise, surprise, lower than 1949, but still a LOT of difference.
Third possibility: Curved Lens got 100%, Horizon got 90%
– first: 2800*(1-0.4+0.23*0.9) = 2259.6.
– second: 2800*(1-0.4)*(1+0.23*0.9) = 2027.8.
So. NONE of the possible ways to calculate gives 1949m, which is 69.6% of the default range 2800.
I am pretty sure I’ve exhausted all the possible combinations. The only other way is that there is a hidden value, a coefficient of some sort, that is multiplied to the range.
This is quite annoying. That moment when you carefully plan out everything, calculate how the modules are going to interact with each other on your ship, only to realize that the calculations do not match because the algorithm in-game is different than the values displayed to us on the module description.
On a side note, this is not the only weird and incorrect interaction between modules and implants/ammo.
Improved Missile Pylon, a Hull modifier that reduce missile cooldown, interacts very very weirdly with the R11 implant which also reduce missile cooldown.
It almost seems like when different modules/implants/ammo provide the same/opposite bonus (+/- range, -cooldown, etc), a hidden value is worked into the game algorithm. The expected result is NOT the same as the in-game displayed value.
- Condition: Example given is on a Breach Laser, same inconsistency applies to all the other weapons I’ve looked.
4. I have no idea what the actual game algorithm is. Please, please, PLEASE tell me if there is an actual way to calculate and give the EXACT in-game displayed value. From my viewpoint, something is either missing, or just completely wrong in the code.
5. All the other weapons I’ve looked. (Namely, most of the Frigate weapons since I was working on a NY18 build before realizing the inconsistency)
6. See attached images.
7. Around 2000h GMT+8 when I realized something is wrong. But probably has been there for a long long time.
Now. I know I am not a math genius. I may have overlooked something in my calculation.
If that is the case, I beg your pardon. But, please tell me the exact way to calculate these things. It is getting frustrating.
Thanks.