-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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/WorldState): implement Battle for Sun's Reach Event #21219
Open
sogladev
wants to merge
33
commits into
azerothcore:master
Choose a base branch
from
sogladev:feat(Core/World)SunsReach
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sogladev
changed the title
feat(Core/World): implement Sun's Reach Reclamation Event and Phasing
feat(Core/WorldState): implement Battle for Sun's Reach Event
Jan 22, 2025
Subject: [PATCH] Implement Suns Reach Reclamation event and phasing cmangos/mangos-wotlk@73aa549 Co-authored-by: killerwife <[email protected]>
suns-reach-reclamation.sql https://gist.github.com/heyitsbench/64e9741fdc5e06f48592b583a4712b4f Co-authored-by: Benjamin Jackson <[email protected]>
missing waypoint scripts
remove duplicates
> [PATCH] WorldState: Add code to handle Sunwell Plateau gate opening > All gates will start open by default. This is a special feature for progressive servers to control the release of SWP similar to how Blizzard did in TBC. > This feature never made it to the live game - it was only seen on the 2.4 PTR. Instead, Blizzard ended up manually opening the gates on certain dates for each region. cmangos/mangos-tbc@adb352b Co-authored-by: MantisLord <[email protected]> Co-authored-by: killerwife <[email protected]>
cmangos uses waypoint scripts to handle Fel Consumption RP. Handled with smartAI
add same smartAI entry of Shattered Sun marksman to dawnblade
todo: auras are removed on evade
issue: settings worldstate gate while in an instance will clear the current gate, but not spawn the next gate issue: Only 1 gate is closed at a single time
sogladev
force-pushed
the
feat(Core/World)SunsReach
branch
from
January 24, 2025 21:12
97be941
to
b6f692e
Compare
sogladev
added
the
run-build
Used to trigger the windows/mac/docker and matrix builds
label
Jan 24, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
CORE
Related to the core
DB
related to the SQL database
file-cpp
Used to trigger the matrix build
Ready to be Reviewed
run-build
Used to trigger the windows/mac/docker and matrix builds
Script
Waiting to be Tested
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes Proposed:
This PR proposes changes to:
Adds handling for 4 phases and 3 subphases to capture the Isle of Quel'Danas through what is known as the Battle for Sun's Reach Event featuring new admin commands, new spawns, gossip, and conditions.
Adds handling of the 3 gates of the Sunwell Plateau.
By default, the phases are fully progressed, meaning the Isle of Quel'danas is in its final stage with all subphases completed. Similarly, all Sunwell Plateau gates are open. This state is stored in
acore_character.world_state
and can be removed to allow blizzlike progression.Issues Addressed:
SOURCE:
The changes have been validated through:
day 1 footage, Phase 0, https://www.youtube.com/watch?v=O9VacGvrCmw
Tests Performed:
This PR has been:
How to Test the Changes:
tele to the island
.tele isleofquel
Nasuun Shattrath
.go c 96655
.worldstate sunsreach
Event.Announce = 1
useful to announce game events.event activelist
lists active eventsSun's Reach Reclamation
Setting phases can either be set through commands:
phase
to progress/deprogress phases.subphase
. These use a mask. They cannot be unset without a restart. Only activate subphases when their respective phase is active. For example: only activate anvil only once the armory is taken.Or through reaching a quest count:
.worldstate sunsreach status
gives an overview of the phase, subphases and progression status.Each counter is only incremented and checked on quest turn ins.
A worldconfig option
Sunsreach.CounterMax
sets the amount of quests that need to be completed to reach. It's calculated ascounter1 + counter2 >= countermax
if there are multiple counters for an objective. For testing, set this to a low amount like 1-3.Note that setting a counter through commands will not trigger a phase/subphase. You can set the counter higher than the CounterMax config.
Test list
For each phase:
Check with Nasuun for gossip progress status after Sanctum is taken.
Correct gossip texts of quest givers. Their gossip should indicate which phase is active.
Correct dailies per phase. The quest text should indicate which phase is active.
Some quest givers should show progress status to the next phase. Check if the percentage is correct
enemy/friendly spawns are where they should be. No Dawnblade spawns in Shattered Sun territory. Or demons near the armory when armory has been taken.
no duplicate mob spawns. Indicated if NPCs blend together
Marksman/Warriors upgrade their gear depending on anvil/harbor status. armory/no anvil, armory/anvil, harbor/no anvil, harbor/anvil. This gear is set on spawn.
(requires Sanctum) Portal subphase: Portals should be unavailable until Portal dailies from Nasuun (Shattrath) are complete. Once complete, portals spawn in Shattrath and the Island. In Shattrath, there should be NPCs pathing to and entering the portal.
(requires Armory) Anvil subphase: vendors on the island (Smith) and Shattrath (near portal) should be unavailable until Anvil subphase is complete. Once complete, the anvil spawns.
(requires Harbor) Alch subphase: vendors on the island (JC+Alch) and Shattrath (near portal) should be unavailable until Alch subphase is complete. Once complete, an alchemy lab spawns on the table.
(requires All subphases) See if the buff "K'iru's Song of Victory" is only active in Sunwell/MGT/Island
Sunwell Gate Phases
Blizzlike gates are opened after a server restart, to simulate make sure to exit SWP and
.instance unbind all
when updating gate phases.Test list
.worldstate sunsreach gate 0
closed
.go ga 50441
.worldstate sunsreach gate 1
open
.go ga 50441
closed
.go ga 50439
enter SWP, gate should be closed
.worldstate sunsreach gate 2
open
.go ga 50441
open
.go ga 50439
closed
.go ga 50440
.worldstate sunsreach gate 3
open
.go ga 50441
open
.go ga 50439
open
.go ga 50440
.worldstate sunsreach phase [0-4]
all subphases,
.worldstate sunsreach subphase 15
spawns, weather, music
.worldstate sunsreach phase [0-4]
quests 11551, 11552, 11553
These should lower the percentage of gates.
Known Issues and TODO List:
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.