Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spread needs fixing: e.g. Ion Cannon in TD #5120

Closed
psydev opened this issue Apr 17, 2014 · 5 comments
Closed

Spread needs fixing: e.g. Ion Cannon in TD #5120

psydev opened this issue Apr 17, 2014 · 5 comments

Comments

@psydev
Copy link
Contributor

psydev commented Apr 17, 2014

It seems that the Spread logic works a bit different in between Release and Playtest. The Ion Cannon behaves differently, for example, even though its stats have not changed. It does not do as much damage to the communications centre now, and doesn't destroy it anymore. This difference only seems to apply to some buildings, not others. The buildings which are taller (3 cells tall) like the war factory and refinery seem unaffected. But buildings which are 2 cells tall receive far less damage now (e.g. landing strip, which is 4x2; comm. centre...).

Also, I haven't precisely measured it yet, but I think I have also noticed a slight difference in how ion cannon damage spreads across units. It seems slightly less powerful.

@pchote pchote added this to the Next Release milestone Apr 18, 2014
psydev pushed a commit to psydev/OpenRA that referenced this issue Apr 18, 2014
Ion Cannon has been a little weak lately. Increasing its spread to make it more effective.

This should maybe be revisited if/when OpenRA#5120 gets looked at.
@pavlos256
Copy link
Contributor

Maybe it changed with this: ecdae4c#diff-9

@pchote pchote added bug and removed balancing labels May 3, 2014
@reaperrr
Copy link
Contributor

I can confirm this for the most part.

I disagree about the com. centre to some extend, the regular com. centre is still destroyed by a single hit, and the advanced comm. centre couldn't be destroyed regardless of spread (Ion Cannon does a maximum damage of 900, but acc has 1200 HP).

What I can confirm, though, is that an advanced com. centre does NOT receive the maximum 900 HP damage, no matter at which cell you fire.
I suspect this is because for buildings with an even size like 2x2, the health radius is not located in the middle of a cell, but rather in between, and the Ion Cannon can never hit that radius fully. The strange thing is, in my tests increasing the Spread value did NOT fully fix this, while increasing the health radius helped.

So there seems to be an issue with Spread indeed, normally a Spread value of 853 should be enough to do full damage to a 2x2 building with a standard health radius of 426.

@reaperrr
Copy link
Contributor

I take back what I said about the normal comm. centre, I just noticed that psydev filed this when Spread was at 682 instead of the 853 we have now. 682 is indeed not even enough to kill a normal comm. centre.

@pchote pchote self-assigned this May 22, 2014
@pchote
Copy link
Member

pchote commented May 22, 2014

This change did come from ecdae4c, but it is the old behavior that was wrong.

The old calculation was forced to convert world units to pixels, which throws away a lot of precision. This used integer division, and so ranges were converted to a smaller distance. Smaller distance = more damage.

The new calculation works at much higher precision. The ranges are larger, and so the applied damage is reduced (but correct).

@reaperrr
Copy link
Contributor

@pchote: sorry for bringing this up again, but I'd like to be 100% sure on this, can you confirm that health radius is factored in correctly and if yes, how exactly does it work taking the TD advanced comm. centre and ion cannon as examples?

I'm asking because as far as I understand it, with a Spread value of 853 (20 pixels in td/ra) on the IonCannon weapon, when firing on any of the 4 cells of the comcentre, the Spread radius and HealthRadius (426 or 10 pixels for td/ra) should overlap and the centre should recieve 100% damage (900 hp). However, that does not appear to be the case according to my tests. I don't understand why.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants