Zero-K icon indicating copy to clipboard operation
Zero-K copied to clipboard

Dynamic modifier tech issues

Open GoogleFrog opened this issue 1 year ago • 6 comments

A list of issues to do with modifying attributes dynamically.

GoogleFrog avatar Sep 26 '24 04:09 GoogleFrog

Tech-K

  • [ ] Units cannot be turned back into nanoframes: https://github.com/beyond-all-reason/spring/issues/1698
  • [ ] Little-to-no control over the flight of missiles. No flightTime, acceleration, max speed. https://github.com/beyond-all-reason/spring/issues/1683
  • [ ] MyGravity cannot be modified for any weapons.
  • [ ] Wreck dropping is mostly opaque and uncontrollable. There is no reliable way to receive an event about a wreck being dropped due to a particular unit dying, or a way to pre-modify the wreck. https://github.com/beyond-all-reason/spring/issues/1684
  • [ ] CEGs etc cannot be scaled up/down to make explosions change size. The mechanics seem to be modifiable, but they would not match the visuals.
  • [ ] Model rescaling is broken. It causes the root piece of models to be unavailable for animation, yet many LUS try to animate their roots. The only dire issue I have found so far is that it a WaitForMove(base) causes Lance to be unable to fire a second time, but many animations are a bit wrong due to this.
  • [ ] Unit storage cannot be set dynamically. Technically team storage can be set, so any change can be haxxed in, but this only works well if we exactly replicate the engine behaviour, and that would seem to take hax and polling, since storage seems to be disabled when storages turn into nanoframes. The other case is on unit transfer, which is an event. https://github.com/beyond-all-reason/spring/issues/1877
  • [ ] Anti-nuke coverage seems to be static.

GoogleFrog avatar Sep 26 '24 04:09 GoogleFrog

CEGs etc cannot be scaled up/down to make explosions change size.

There's a d CEG operator which makes things scale with damage (so you can do particleCount = "2 d0.01" or particleSize = "d0.123" or whatever). The big caveat is that none of our CEGs use that. The other is that weapons that want scaling can have 0 damage for various reasons.

sprunk avatar Sep 26 '24 10:09 sprunk

Related: #4535

sprunk avatar Sep 26 '24 12:09 sprunk

There's a d CEG operator which makes things scale with damage (so you can do particleCount = "2 d0.01" or particleSize = "d0.123" or whatever).

I'm aware of d, but I would be surprised if it was flawless. CEG creators would have to think about when it should apply, and with all the accelerations and drags that CEGs use, I would suspect that it would want to be used non-linearly. Which is a pain for CEG.

The ideal would be something akin to passing CEGS a scale when they are created (or having weapons have a scale), and then the engine would scale the images and speeds appropriately to make the CEG appear larger or smaller. There is probably somewhere in the engine where this is simple, where touching the right bit of the recursive structure would make it all work out nicely.

GoogleFrog avatar Oct 08 '24 06:10 GoogleFrog

  • [ ] Shield range cannot be modified.
  • [ ] Area cloaker range cannot be modified.
  • [ ] Sparrow reveal range cannot be modified.

GoogleFrog avatar Jul 22 '25 12:07 GoogleFrog

I don't see Pylon energy range or Radar towers range, owl's sonar, air pad repair rate on this list is that intentional? Maybe a good it's a idea to remove the advanced radar tower when Tech-K is active and let Radar Tower take over it's functionality if it can be upgraded.

Also I think the upgraded Odin is almost carbon copy of the regular. It does spawn more shields.

Image

codecnotsupported avatar Jul 22 '25 13:07 codecnotsupported