vmangos / core

Progressive Vanilla Core aimed at all versions from 1.2 to 1.12
GNU General Public License v2.0
678 stars 487 forks source link

🐛 [Bug] Starshards should tick for higher damage if pushed back further into its channel. #2600

Open GoonBoiBarry opened 5 months ago

GoonBoiBarry commented 5 months ago

🐛 Bug report

Starshards works like curse of agony and escalates its damage as its duration goes on, but if you are hit by spell pushback further into the channel, it only does damage as if it were the next tick and not the tick it was pushed into. This is hard to explain, so I'm gonna do an example.

There are 6 ticks of damage in Starshards and 3 tiers of damage. Ticks occur each second and the order of tier for each tick is 1, 1, 2, 2, 3, 3. Currently if you are hit from tick 2 into say, tick 5, the damage does not do tier 3 damage as it should and instead does the next tick it was up to in the order, which would be tier 2.

Expected behavior

The tick should deal the damage it usually would at that point in the channel. Eg. if you are at tick 2 and get pushed into tick 5, the tick should deal the 3rd tier of damage.

https://youtu.be/y2oPtAFV0TI?t=2537 You can see in this video, the 1st channel shows the full damage range of each tick and then the 2nd channel they are pushed back into a tier 3 tick, skipping over the tier 2 damage and dealing tier 3 instead with the remainder of their channel.

Steps to reproduce

  1. .learn 10797 (starshards rank 1)
  2. .modify mana 9999 .cheat god on
  3. Find a mob to hit you, .modify it's hp to 9999
  4. Cast starshards and get hit. Watch and compare your damage dealt to how much it should have done from pushback.
  5. ...
  6. Profit

Version & Environment

Client Version: - 1.12.1.5875

Commit Hash:

OS Client: Win 10 OS Server: Win 10

Crashlog

GoonBoiBarry commented 5 months ago

Just to elaborate on this issue a bit, I believe the reason Starshards works this way on vmangos is because its damage and tick timing is based on the duration of the Starshards aura on the target and not the cast time left on the channel spell, the latter being how it works in classic.