Total Consumption = Size Base Consumption * Weight Band Multiplier * Engine Count + Engine Base Consumption
Let's try this with a buggy equipped with a medium diesel engine and 50mm of polymer armour. Weapon options weigh 0 on buggies.
40 base weight + 100 for 50mm polymer armour + 60 for engine = 200 weight.
4*2*1+0.5 = 8.5
In the game such a design would return 1.3. If you were to multiply the engine base consumption by 10 before adding it you would instead get 13, which is the "move cost" value as displayed in the design log.
Let's try a light tank with 40mm howitzer, 100mm steel armour and medium diesel engine.
50 base weight + 100 for 40mm howitzer + 375 for 100mm steel armour + 60 for medium diesel = 585 weight
(50/10)*(585/100, rounded down)*1+0.5
5*5*1+0.5 = 25.5
In game such a design would return 3.5. Let's multiply the base engine consumption by 10 again to see if that gets us the "move cost" value: 5*5*1+5 = 30. That's still not right. It should be 35, not 30. It's off by 5 because we rounded 585/100 down to 5 instead of rounding it to the nearest whole number, 6. This effectively dropped it into the lower weight band, giving it an incorrect weight band multiplier.
- Size Base Consumption is the basic weight of the Model before any equipment is added, divided by 10.
Base weight is derived from the size of the model as simply size*10. Doing it this way is just taking a derived value and reverting it. It's adding and taking away the same number of zeroes. But more than that this is also why your formula gives values that are so much higher than what they should be, as the size base consumption is a full order of magnitude greater than it should be.
- Weight Band Multiplier works as follows: Take the Total Weight.
a) If it is under 150, the weight band multiplier is 0
The weight band multiplier is only 0 if weight is 49 or less, as is the case of a truck equipped with a light electric engine. Between 50 and 149 it has to be 1. If you treat weight below 149 as 0 then the size base consumption is also zeroed out; a 120 weight buggy with a medium diesel engine uses, as reported by the game, 0.9 fuel per hex. If you treat 120 weight as effectively 0 weight, and thus a weight band multiplier of 0, it would return 0.5 fuel use. This is obviously inaccurate.
Substracting half the devisior then rounding true, is the same result as just dividing and rounding down.
b) otherwise, the WBM is the weight, divided by 100, rounded down
Again, this is only causing inaccuracies for designs that fall within 50 weight of the lower limit of the weight band. A light tank with a 60mm howitzer and 100mm steel armour can be in either weight band 6 or 7 depending on what engine you pick. If the additional weight of all 3 engines put the tank in the 6th weight band, as would be the case if you subtract 50 or round down, you'd see a fuel use progression of 3.1 for the light diesel engine, 3.5 for the medium, and 4 on the heavy. Instead you see 3.1 on the light, 3.5 on the medium and 4.5 on the heavy. This is because the weight of the heavy diesel engine is enough to push the design into the 7th weight band, which adds an extra 0.5 fuel use to the design. Why do you believe a subtraction, or now rounding down, is necessary?
The formula as I wrote it in my original post:
(SIZE/10) * WEIGHT BAND * number of engines + engine base consumption
At the time I wrote this I wasn't even aware there was a "0th" weight band that only a light electric engine equipped truck falls into, yet it still accurately predicts the energy consumption of this edge case truck design. It also accurately predicts the fuel use of designs that are on the absolute edge of the weight bands. This formula consistently and accurately predicts fuel use for every design I've tested it against. It is, as far as all testing has revealed it to be, correct.
The only confusion that could come of this is not knowing what a weight band is, which can be fixed by amending the formula to read:
(size/10) * (weight/100) rounded to nearest whole number * number of engines + engine base consumption