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

feat(Core/Conf/BG): allow battlegrounds to be more configurable (#20320) #21124

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

valsan-azerty-boi
Copy link

@valsan-azerty-boi valsan-azerty-boi commented Jan 9, 2025

Changes Proposed:

This PR proposes changes to:

  • Core (units, players, creatures, game systems).
  • Scripts (bosses, spell scripts, creature scripts).
  • Database (SAI, creatures, etc).

Issues Addressed:

Warsong

  • Configurable number of flags to win => OK

Arathi

  • Configurable captures points to win => OK

Alterac

  • Configurable number of reinforcements => OK
  • Configurable boss reputation on boss death => OK

Eye of the Storm

  • Configurable captures points to win => OK
    *Note:No WorldState exists for the max score in this battlefield (XXXX/1600), and I found nothing elsewhere for wotlk
    so if you set the maxscore to 2000 for example
    it will display scores likes 1700/1600 or 2000/1600 instead of 1700/2000 or 2000/2000, seems client related,
    the problem exists only on Eye battleground (no problem in Arathi)

Strand of the Ancients

  • No modification => Nothing interesting to put in configuration

Isle of Conquest

  • No modification => Weird side effects with modified reinforcements,
    and I don't want to make too much modifications to the existing code,
    so I let it unmodified and non configurable for now

SOURCE:

The changes have been validated through:

  • Live research (checked on live servers, e.g Classic WotLK, Retail, etc.)
  • Sniffs (remember to share them with the open source community!)
  • Video evidence, knowledge databases or other public sources (e.g forums, Wowhead, etc.)
  • The changes promoted by this pull request come partially or entirely from another project (cherry-pick). Cherry-picks must be committed using the proper --author tag in order to be accepted, thus crediting the original authors, unless otherwise unable to be found

Tests Performed:

This PR has been:

  • Tested in-game by the author.
  • Tested in-game by other community members/someone else other than the author/has been live on production servers.
  • This pull request requires further testing and may have edge cases to be tested.

How to Test the Changes:

  • This pull request can be tested by following the reproduction steps provided in the linked issue
  • This pull request requires further testing. Provide steps to test your changes. If it requires any specific setup e.g multiple players please specify it as well.
  1. Tested with original & modified Warsong max flags from configuration
    warsong_custom_Flags warsong_custom_Flags2 image

  2. Tested with original & modified Arathi max capture points from configuration
    arathi_custom_CapturePoints arathi_custom_CapturePoints2 image image

  3. Tested with original & modified Alterac reinforcements from configuration
    alterac_custom_Reinforcements image

  4. Tested with original & modified Alterac boss death rep points from configuration
    alterac_custom_RepOnBossDeath2 alterac_custom_RepOnBossDeath image

  5. Tested with original & modified Eye of the Storm capture points from configuration
    ey_custom_CapturesPoints2 image
    See notes above for Eye of the Storm

Known Issues and TODO List:

  • Eventually make Isle of Conquest configurable (need more code investigations)

How to Test AzerothCore PRs

When a PR is ready to be tested, it will be marked as [WAITING TO BE TESTED].

You can help by testing PRs and writing your feedback here on the PR's page on GitHub. Follow the instructions here:

http://www.azerothcore.org/wiki/How-to-test-a-PR

REMEMBER: when testing a PR that changes something generic (i.e. a part of code that handles more than one specific thing), the tester should not only check that the PR does its job (e.g. fixing spell XXX) but especially check that the PR does not cause any regression (i.e. introducing new bugs).

For example: if a PR fixes spell X by changing a part of code that handles spells X, Y, and Z, we should not only test X, but we should test Y and Z as well.

@valsan-azerty-boi
Copy link
Author

Don't hesitate to make a lot of comments if needed, I don"t do C++ very often

@Exitare
Copy link
Member

Exitare commented Jan 9, 2025

I tested the PR.
I changed my config for Eye from 1600 to 100.
i won after I earned 100 points but the visual was still 1600. There is something missing

Everything else checks out

@valsan-azerty-boi
Copy link
Author

valsan-azerty-boi commented Jan 10, 2025

Yes, no WorldState in WotLK for the max score XXXX/1600 for Eye of the Storm, can't find anything for that (but no problem for Arathi), so the team score frame stay the same at the top of the screen in Eye of the Storm,

have checked in cmangos, trinity, etc... but simply no WorldState for this thing (have not found it), so it need client modification I suppose

#
#    Battleground.EyeOfTheStorm.CapturePoints
#        Description: Set the number of capture points required for a team to win in Eye of the Storm battleground
#                     (The UI part of the max team score will not be compliant with this parameter without client modification)
#        Default:     1600 (WotLK, UI compliant)
#                     2000 (TBC)

Battleground.EyeOfTheStorm.CapturePoints = 1600

EDIT: I can eventually revert this specific modification/configurable settings, but it's written in the configuration for now thats UI is not compliant/correctly sync (like that it's not a surprise for anyone modifying this param in configuration)

(sorry my english is a little bit broken)

@Exitare
Copy link
Member

Exitare commented Jan 10, 2025

Isnt this snippet sending an update to the client? Or is the client just not reacting to it?
UpdateWorldState(teamId == TEAM_ALLIANCE ? EY_ALLIANCE_RESOURCES : EY_HORDE_RESOURCES, std::min<uint32>(m_TeamScores[teamId], _configurableMaxTeamScore));

@Exitare Exitare added Tested This PR has been tested and is working. and removed Waiting to be Tested labels Jan 10, 2025
@valsan-azerty-boi
Copy link
Author

Isnt this snippet sending an update to the client? Or is the client just not reacting to it? `UpdateWorldState(teamId == TEAM_ALLIANCE ? EY_ALLIANCE_RESOURCES : EY_HORDE_RESOURCES, std::min(m_TeamScores[teamId], _configurableMaxTeamScore));

Can't confirm :/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CORE Related to the core file-cpp Used to trigger the matrix build Ready to be Reviewed Tested This PR has been tested and is working.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Feature: Configurable BattleGround win condition - alter score required in worldserver.conf
2 participants