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

PVP Arena Rebalance Tweaks #6986

Draft
wants to merge 43 commits into
base: master
Choose a base branch
from

Conversation

kphoenix137
Copy link
Collaborator

@kphoenix137 kphoenix137 commented Feb 23, 2024

Tweaks that occur only in arena levels:
Items:

  • No item durability damage

Animation Speed Adjustments:

  • Rogue bow attack is 1 frame longer
  • Warrior Axe and Staff attack is 1 frame shorter
  • Sorcerer casting is 2 frames longer
  • Barbarian casting is 1 frame longer

Spell Rebalance:
Spell - Damage - Cast Animation Frame Skips

  • Firebolt: +100% damage, 3 frame skips
  • Charged Bolt: +100% damage, 2 frame skips
  • Inferno: +900% damage, 2 frame skips
  • Lightning: +100% damage, 2 frame skips
  • Town Portal: 4 frame skips
  • Flash: +0% damage, 1 frame skip
  • Phasing: 1 frame skip
  • Guardian: +100% damage, 4 frame skips (WIP)
    • Targets players (WIP)
    • Can only have 1 active at a time (WIP)
  • Teleport: 1 frame skip
  • Bone Spirit: 1/3 of Max HP damage (ignores resistance), 1 frame skip
    • Targets players
    • Can attack its caster (WIP)
    • Uses life with Mana Shield active (WIP)
  • Blood Star: +700% damage, 2 frame skips
    • Uses life with Mana Shield active (WIP)
  • Elemental: +20% damage, 0 frame skips
    • Targets players
  • Fireball: -20% damage, 0 frame skips
    • Reduced velocity by ~18%
  • Fire Wall: +200% damage, 0 frame skips
    • Duration of slvl 0, regardless of actual slvl
  • Flame Wave: +300% damage, 0 frame skips
  • Chain Lightning: +100% damage, 0 frame skips
    • Targets players
  • Nova: +100% damage, 0 frame skips
  • Warp: 4 frame skips

The idea behind adjusting cast speeds of different spells were to help create better use-case scenarios for spells. When damaging spells have all the same cast rate, the only incentive is to pick the spell which is most likely to hit and does the most damage. Weaker spells and spell that are harder to make hit the opponent (and some utility spells) were given boosted speeds to give them a direct upgrade to their usefulness without just giving them a damage increase. Quite a few spells have had their damage increased however, since their original damage values are so pitiful that they simply cannot compete with the damage output of Fireball. This should offer more strategic alternatives to just spamming Fireball at the opponent.

During playtesting, Constantine has made masterful use of alternating between Fireball and Blood Star as a Sorcerer, casting Blood Star when in close proximity to the enemy, as it's faster to cast despite having less velocity, but hard to predict and avoid, resulting in massive damage.

Movement Tweaks:

  • DIAGONAL WALK: Players in the arena begin taking damage if their total diagonal walk movements in the last 32 movements exceeds 80% of their total movements. Each diagonal walk movement above the threshold deals 1 HP damage * the % above the threshold. This is to deter excessive use of diagonal walk to avoid missiles.

Controls:

  • Unable to retain targets by clicking and holding, replicating the vanilla behavior

Combat Mechanics:

  • HIT RECOVERY: Hit recovery uses a formula based on incoming damage vs life, instead of being a flat threshold of clvl. Hit Recovery chance is 5%-95%.
    Chance of hit recovery = damage - (max hp / 6) + 100
  • CRITICAL HITS: All damage types can do critical hit damage now. Critical hit chance uses a formula based on Str for melee, Dex for ranged, and Mag for spells. Critical hit damage is +100% for melee, +50% for ranged, and +25% for spells. Bone Spirit cannot do critical hit.
    Melee:
    crit chance = (clvl * 2 + str) / 10
    Ranged:
    crit chance = (clvl * 2 + dex) / 10
    Spell:
    crit chance = (clvl * 2 + mag) / 10
  • MISSILE ACCURACY: Fixed a lousy game mechanic that causes missiles to be more inaccurate the longer the animation takes before it reaches the action frame. Now all classes shooting a bow are equally accurate, and all classes casting spells are equally accurate. Accuracy in general is also improved without being too accurate, which would cause unintentional "auto-aim".

@kphoenix137
Copy link
Collaborator Author

kphoenix137 commented Feb 24, 2024

Did some playtesting with curses and ericmdk, different class matchups and FFA. So far the results are quite appealing and rebalance PVP in DevilutionX quite well. I think more tweaks might be necessary. It seems that Sorcerer is a bit too crippled, and despite Warrior casting faster, he lacks the speed to catch the Rogue effectively after beginning to swing at her.
The diagonal walk punishment system is working, however I believe 80% may be too high of a threshold. I'm thinking 50-60% might be more realistic as you'd have to intentionally be trying to trigger it to even get near 80%.

I think a mechanic for cowboy rule between melee classes needs to be implemented.

I'd also like to add a mechanic for beginning a round and keeping score between players. This functionality could also restore all players to full health and mana at the beginning of the round and then resurrect players at the end of the round.

I'd also like to add Resurrect as a spell all players have in the arena level with a mana cost based on a percentage of their total mana pool for 2v2 matches, where a player can sacrifice a large amount of their mana in order to bring back their teammate if they're careful enough.

Most spells are absolutely useless in PVP and are even more useless with the nerf to spell damage. I think it might make pvp more dynamic for the sorcerer class if some other spells received a buff. High level spells such as Flame Wave and Blood Star should do more damage, and chain lightning should be able to target players with Player Hostile enabled. Not sure if Chain Lightning would need a damage buff or not against players. Along this line of thought, Spells like Bone Spirit and Elemental should also redirect towards players like they do with monsters. Golems and Guardians should target players, although Guardian spam would need a nerf to limit the amount of guardians that can exist from a player at any given time.

@julealgon
Copy link
Contributor

@kphoenix137 , remember, if this is not final, use a draft PR instead to avoid notifying everyone.

@kphoenix137
Copy link
Collaborator Author

kphoenix137 commented Feb 26, 2024

@kphoenix137 , remember, if this is not final, use a draft PR instead to avoid notifying everyone.

Then it won't build.

Edit: Just wanted to elaborate since I have a bit of time at work here. Me and about 3-5 have been testing many of the commits and it would be more of a hassle for me to build both debug and release for each commit and send the exe I've built to others (and often times people have been whining about Windows flagging the file as suspicious and forcing them to do a scan before they can access the file. Not to mention one user made a big fuss about the suspicious file warning and kept asking me if I was sending him a virus or not; regardless if it was a joke I've had to deal with those accusations before and it's quite tiresome). It's overall easier to send these others helping me playtest a link to the build on github here and have them download it that way. Additionally, I have very terrible internet connection now, and it takes quite a few minutes to even upload a single build to discord or dropbox. This is also awful to deal with since we will often be testing a commit while I'm waiting for another commit to finish building on GitHub (which means if i'm uploading a build I create instead of having it build on GitHub, it ruins my connection while PvPing and talking on discord).

Is there a way anyone receiving notifications could unsubscribe from this PR?

@ikonomov
Copy link
Contributor

You can create a PR in a separate fork, if you keep the workflows enabled it will compile just as it does here.

Fire Wall didn't have damage adjusted. Bone Spirit targeted the caster.
- Fireball: 1 frame skip
- Elemental: 1 frame skip
- Bone Spirit: 0 frame skips
- Blood Star: 0 frame skips
- Lightning: +300% damage
- Chain Lightning: +300% damage
@kphoenix137 kphoenix137 added the enhancement New feature or request label Mar 7, 2024
@kphoenix137
Copy link
Collaborator Author

This is definitely a bit too ambitious for its own good and doesn't really fit well within the scope of the project. I'll have to create a mod at a later date.

@kphoenix137 kphoenix137 closed this Apr 6, 2024
@kphoenix137 kphoenix137 reopened this May 12, 2024
@kphoenix137 kphoenix137 marked this pull request as draft May 13, 2024 00:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants