ReikaKalseki / Reika_FactorioMods_Issues

The issue tracker for all of my Factorio mods - EndgameCombat, NauvisDay, Geothermal, Oreverhaul, and the rest.
5 stars 1 forks source link

[Endgame Combat] Crash, and other issues #165

Open shadoxxhd opened 5 years ago

shadoxxhd commented 5 years ago

When starting factorio with Endgame Combat enabled, it complained about nil being passed to math.max - adjusting the addResistance function (functions.lua:46) to

v.decrease = math.max(v.decrease or 0, reduce or 0)
v.percent = math.max(v.percent or 0, percent or 0)

fixed the issue.

Radiation capsules are capabale of destroying gates, but not combinators, so I guess this is unintended... Apparently there are more entity types in 0.17 than before.

Turret logistics requests ammo until the whole turret inventory is full - when using crated ammo in a low rate of fire turret, this is hugely wasteful (10,000 rounds with 5/s speed means more than half an hour of uninterupted firing). I had written a fix for this (also including evolution and ammo type dependent ammo request behavior), but sadly factorio overwrote my customized mod installation when downloading the official .17 version of this mod... If I have time, I'll redo my additions and make a pull request (it was mostly copied across from your dynamic warning code anyway - I added linear interpolation of expected enemy health though).

The plasma turret still uses projectiles, even though vanilla turrets switched to beams and plasma (ie. particle) weapons would have a muzzle velocity similar or greater than bullets.

There are certainly other small issues that I've missed to write down - I planned to do a diff between my folder and your updated version to find out what I had changed -

shadoxxhd commented 5 years ago

Spitter attacks are no longer being blocked by shields, since they no longer use their old projectile attack - they now spit acid streams.

shadoxxhd commented 5 years ago

The dome reboot threshold research you added crashes to menu: control.lua:523: attempt to call global 'getDomeRebotThresholdByLevel' (a nil value)

This seems to be just a typo - 'getDomeRebootThresholdByLevel' exists in that context.

shadoxxhd commented 5 years ago

Plasma turrets don't benefit from the energy weapons damage technology, since the vanilla technology is now called 'energy-weapons-damage-n', which doesn't match 'turret-damage'. To fix this, add 'or string.find(name, "weapons-damage", 1, true)' to upgrades.lua:39.

Ammo turret damage research is apparently gone from vanilla, but the 'turret-damage' part still matches the turret damage technology added by Rampant Arsenal.

shadoxxhd commented 5 years ago

Also concerning the shield balancing, smaller shields seem to be far superior concerning their energy per shield point ratio, as well as their building cost per recharge rate. Is there a reason why building bigger shields would be better than a wall of small shields, or are medium and big shields really a bad option right now?

ReikaKalseki commented 5 years ago

I have fixed the resistance, radiation/gate, reboot, and spitter dome issues.

Turret logistics requests ammo until the whole turret inventory is full

While I can see this being undesirable, how much ammo should it request?

As for turret damage, I am waiting for 0.17 and mods to settle down; things are still very much in flux.

shadoxxhd commented 5 years ago

I made a pull request concerning the ammo request behavior. My proposition is using the dynamic ammo alert code to calculate evolution dependant ammo request amounts. I also added a simple, if somewhat inaccurate, interpolation of expected but health. It might be desirable to add a lookup cache for expected biter health or ammo request amounts, and the expected health should probably be multiplied by a constant to account for spitters with lower health (I didn't know the biter to spitter spawn ratio).

What is your position concerning shield balance and plasma beams?

ReikaKalseki commented 5 years ago

What is your position concerning shield balance

The shields are based on the ones in Elite, where the size of a shield (in E:D measured in megajoules, or 'MJ') increases, but the recharge rate remains constant at 1MW, thus meaning that more powerful shields have a (far) greater health pool but take (far) longer to recharge. As an example, compare the (huge) one on my Anaconda to the (tiny) one on the DBX:

https://i.imgur.com/IlcAkgs.png https://i.imgur.com/UAByFU4.png

plasma beams?

?

shadoxxhd commented 5 years ago

In .16, EndgameCombat had an integration for the beam laser turrets mod, changing the plasma turret attack to a beam. Since beam laser turrets are now in the base game, IMO plasma turrets should always use the beam attack instead of the projectile one.

The E:D shield balance doesn't work too well for factorio, since you can easily spam small shields until you have the same shield density as large shields but lower cost and much faster recharge (where as in E:D you only get one shield). And even in E:D, the Anaconda shield recharges at 5.16 MJ/s while the DBX one recharges at only 1.63 MJ/s (MW).
Large shields need something to make them attractive - lower cost to cover more area, significantly better defense (charge time can be higher, but recharge rate should be significantly better than that of smaller shields), cheaper recharge, or something else. Right now, large shields are only useful if you need many rows of turrets and are able to afford spamming them like small shields - in all other cases, multiple small shields beat fewer large ones.

ReikaKalseki commented 5 years ago

Since beam laser turrets are now in the base game, IMO plasma turrets should always use the beam attack instead of the projectile one.

That is correct. Did they not inherit it automatically?

The E:D shield balance doesn't work too well for factorio, since you can easily spam small shields until you have the same shield density as large shields but lower cost and much faster recharge (where as in E:D you only get one shield).

That would require a huge number of shields and be ridiculously expensive (and unperformant), and even then I doubt you can fit 40 of them in the area covered by one large dome.

And even in E:D, the Anaconda shield recharges at 5.16 MJ/s while the DBX one recharges at only 1.63 MJ/s (MW).

Upon reading this I realized I forgot the 2.2.0.3 change where they made higher classes have higher recharge rates...

Large shields need something to make them attractive - lower cost to cover more area, significantly better defense (charge time can be higher, but recharge rate should be significantly better than that of smaller shields), cheaper recharge, or something else. Right now, large shields are only useful if you need many rows of turrets and are able to afford spamming them like small shields - in all other cases, multiple small shields beat fewer large ones.

Shield domes were always envisioned as being used in isolation, at least for a given area to protect; large domes cover a larger area meaning less ground space is needed for dome emitters, and have a larger strength meaning that they can handle a much larger attack wave before collapsing. It was never intended that the recharge rate be significant in the context of an attack, but that it just recharge to full between waves.

shadoxxhd commented 5 years ago

Your plasma turret update script checked for assets from the laser beam turret mod (and uses its resources), so it doesn't activate now - it should not take much work to make it use the new vanilla assets though.

Since small bubbles only need a few mk1 shields while large bubbles need 25 mk2 ones (77x the amount of resources in shields, though the other ingredients reduce this a bit), a wall of small bubbles is actually cheaper than single large ones (in resources), and also more energy efficient per shield point (at least in terms of recharge requirement - the static energy cost per shield point is the same).

Even if the recharge rate is irrelevant, small shields provide the same shield health per energy drain at a lower resource cost. Changing the shields required for the big bubbles to mk1 ones (keeping the amount at 25) would already significantly improve the shield dome balance situation IMO.

ReikaKalseki commented 5 years ago

https://i.imgur.com/HuH2aHN.jpg