Missing Prism Tower beam logic
Original RA2:

OpenRA (ra2 mod):

"Prism Towers fire a concentrated beam of light at any approaching enemy ground units. If Prism Towers are placed close enough together, they can fire one large, powerful beam by targeting each other and combining light beams on the target"
- Red Alert 2 manual, Prism Tower
RA2 used to fire an actual support weapon which was forced to trigger the enhancement effect.
Can someone do a detailed write-up of exactly how this worked in RA2? How were the towers selected which participated in a shot?
When a PrismTower attacked in RA2 (PrismForwarding=yes) it checked around itself for other buildings with the same PrismForwarding=yes tag and fired all idle target's Secondary weapon along with the PrismTower. For each attack the PrismTower got, the bonuses were added to the weapon from [General] (no, sorry, can't remember that tag from my head and I'm tired to look it up).
Ares had to rewrite most of the logic due to bugs in it though, so you can read a 90% C++ code implementation at https://github.com/Ares-Developers/Ares/blob/master/src/Ext/Building/PrismForward.cpp and https://github.com/Ares-Developers/Ares/blob/master/src/Ext/Building/Hooks.Prism.cpp
I can see though why this will be problematic in OpenRA, our infrastructure ain't that easy to be abused into something like this.
Here's what I'm thinking:
Prism Tower A decides to fire. It goes searching for its network, looking specifically for idle towers. It queues up an activity for them to fire.
When it actually fires, it rechecks the network to determine the strength of the blast. The other towers similarly draw their respective firing lines.
+1
This is something I'd like to take a look at and see if I can get it working.
I sort of have it here. Mine is based on TeslaAttack, which has 3 charges, making it difficult to polish. This should probably work if you set MaxCharges=1
Engine: https://github.com/forcecore/OpenRA/commit/e71d30f96426755c32d0cdbc7414231e6724cbeb
Mod: https://github.com/forcecore/yupgi-alert-2021/blob/main/rules/structures.yaml#L569 https://github.com/forcecore/yupgi-alert-2021/blob/main/weapons/other.yaml#L100
Demo: https://www.youtube.com/watch?v=V2q4sClmwkA