As i see it the problem with engine upgrades is that base speed is a fixed value that never changes but base speed shouldn't be a fixed value base speed should be determined by engine power, for exampleThe problem is that there are two formulas for speed and the speed that is slower is used in the game. The second formula is: Propulsion Max Speed x Unit experienced bonus. And no matter how fast you can get a unit, if the speed of this formula is lower, this speed is used. This formula gives you the limit you can reach.

Base Speed = Engine Power / Total Weight x Terrain Modifier x Propulsion Modifier

so for example a half track light cannon cobra unit has

engine power 15,000

weight 11,000

Speed on Flat ground - 15,000 / 11,000 x 1 x 0.86 = 1.17

Speed on Hills - 15,000 / 11,000 x 0.75 x 0.86 = 0.88

and if you add 5% to the engine power you get

Speed on Flat ground - 15,750 / 11,000 x 1 x 0.86 = 1.23

Speed on Hills - 15,750 / 11,000 x 0.75 x 0.86 = 0.92

as you can see my way works correctly and all units get faster as engine power increases

its still possible to get the same effect with the current setup but you have to go about it a slightly different way because speed is a fixed value that never increases.

so you need to do

upgrade = engine power + (engine power x 5%)

and

base speed = base speed + (base speed x 5%)

15000 + (15000 x 0.05) = 15750

1.17 + (1.17 x 0.05) = 1.23

so you see you get the same result doing things this way, and the benefit of this is that you don't actually have to change the hard coded formula you just add an extra step to the engine upgrade so as well as increasing engine power by 5% it also increases speed by 5%.

In theory you should be able to do that by adding

Code: Select all

```
{
"class": "Propulsion",
"filterParameter": "PropulsionClass",
"filterValue": "Droids",
"parameter": "Speed",
"value": 5
}
```

The issue there though is that if that's hard coded then it's not something that we could mod, if however this is being handled by scripting in say the libcampaign.js or rules.js for example then it would be possible for us to address this, it really just depends on how and where this has been implemented.

while i get the point you are making about the lower value always being used i don't think that would actually matter if you are having an upgrade add 5% to the top speed because both calculations should use the new speed value so

Speed = Base Speed × Speed Penalty × Unit Experience Bonus

or

Speed = Propulsion Max Speed × Unit Experience Bonus

would be

Speed = 1.17 x Speed Penalty × Unit Experience Bonus

or

Speed = 1.17 × Unit Experience Bonus

before the upgrade and

Speed = 1.23 x Speed Penalty × Unit Experience Bonus

or

Speed = 1.23 × Unit Experience Bonus

after the upgrade of course I cant be certain about that but I would assume that is how it would work.

With regards to the engine upgrades I have been looking into this a bit more and i found this because I wanted to know if it would be possible for us to mod this or not.

Code: Select all

```
"class":
"filterParameter":
"filterValue":
"parameter":
"value":
```

"class": is the upgrade category (eg 'Weapon' or 'Building'),

"parameter": is the ability to change (eg 'Range'),

"value": is the increase in percentage

'filterParameter' and 'filterValue' are optional values that narrow which entities to change down to matching parameter and value pairs only.

now I'm assuming that the reason

Code: Select all

```
{
"class": "Propulsion",
"filterParameter": "PropulsionClass",
"filterValue": "Droids",
"parameter": "Speed",
"value": 5
}
```