-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
feat(Core/WorldState): init Scourge Invasion pre-wrath event #22286
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
base: master
Are you sure you want to change the base?
Conversation
I have sniffs of this data if you would be interested.
I might be wrong, but I believe this is a part of the Zombie Infestation event rather than the Scourge Invasion. Wowpedia has the city attacks for the Zombie Infestation labelled as the Scourge Invasion of Orgrimmar and Stormwind, whereas the Scourge Invasion had Undercity and Stormwind being attacked by the Scourge iirc.
Should also have sniffs of these.
Have no sniffs of this, but am currently working on it here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-- Creates the reference loot (40110) for Haunted Memento (40110)
DELETE FROM `reference_loot_template` WHERE `Entry` = 40110 AND `Item` = 40110;
INSERT INTO `reference_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
(40110, 40110, 0, 100, 0, 1, 1, 1, 1, 'Scourge Invasion Event - Item: Haunted Memento');
-- Adds the reference loot (40110) above for the Haunted Memento (40110) to Ghoul Berserker (16141), Skeletal Shocktrooper (16298) and Spectral Soldier (16299)
DELETE FROM `creature_loot_template` WHERE `Entry` IN (16141, 16298, 16299) AND `Item` = 40110 AND `Reference` = 40110;
INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
(16141, 40110, 40110, 2, 0, 1, 1, 1, 1, 'Reference Loot: Scourge Invasion Event - Item: Haunted Memento'),
(16298, 40110, 40110, 2, 0, 1, 1, 1, 1, 'Reference Loot: Scourge Invasion Event - Item: Haunted Memento'),
(16299, 40110, 40110, 2, 0, 1, 1, 1, 1, 'Reference Loot: Scourge Invasion Event - Item: Haunted Memento');
-- Reference loot (40110) is only active during the Scourge Invasion Event (17)
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 10 AND `SourceGroup` = 40110 AND `SourceEntry` = 40110 AND `SourceId` = 0 AND `ElseGroup` = 0 AND `ConditionTypeOrReference` = 12 AND `ConditionTarget` = 0 AND `ConditionValue1` = 17 AND `ConditionValue2` = 0 AND `ConditionValue3` = 0;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(10, 40110, 40110, 0, 0, 12, 0, 17, 0, 0, 0, 0, 0, '', 'Reference Loot: Item: Haunted Memento only drops during the Scourge Invasion Event (17)');
Refering to item "Haunted Memento" 40110 missing from common spawns (Skeletal Shocktrooper, Spectral Soldier, Ghoul Berserker)
section
Tested and video below (in the video the rates were changed from 2% to 100%)
Desktop.2025.06.16.-.06.12.14.10.mp4
@TheSCREWEDSoftware Thanks for looking into this. I'll check it out and include it in this PR |
048fdd2
to
d8111d3
Compare
I will be mergering your PR (this* #22309 ), so if you want to remove the changes here (about the table) |
init chat command handling add scourge invasion printout sql: add events sql: fill in event creature spawns sql: add scourge invasion spawns add lord blackwood wp update visibility of necropolis health set spell implicit target conditions disable gravity for proxy and critters update logs to gameevent add herald creature text sql: add gameobjects sql: add spell target conditions Allow the Boss-Summon spell to hit the Cultist Allow the death spell of shadow of doom to hit the necrotic shard add spawner, server side scripts, mouth random say sql: disable LoS for 28395 this allows the necropolis to target its proxies set select flag prevent invasion mobs from killing spawners fix crystal spawns and respawns add scourge strike to not hit players and their summons add invasion AI, gossip fix despawn animation of necropili Add missing auras refactor, port world invasion spawns from vmangos CMangos port of Vmangos cmangos/mangos-wotlk@a71e7e5 CMangos-wotlk port of Vmangos cmangos/mangos-wotlk@a71e7e5 VMangos vmangos/core@0c2ee99 Co-authored-by: Orozxy <[email protected]> Co-authored-by: ratkosrb <[email protected]>o Co-authored-by: Killerwife <[email protected]>
add NPC immune flag to emissary
Co-authored-by: Ryan Turner <[email protected]>
creatures only spawn when the gameevent is active
d8111d3
to
9d22425
Compare
Changes Proposed:
This PR proposes changes to:
The pre-wotlk event shares large similarities to the pre-naxx event, so this proposes a port of the pre-naxx scourge invasion from other cores (vmangos and cmangos).
This PR is limited to: Zone Invasions, City Attacks, AD emissary, relevant quests, and vendors. Instances, more quests, and missing spawns are future work
An overview of the event:
Commands
Enable/disable the Scourge Invasion event with 1/0
Display a printout of event status
increment battles won counter (50/100/150 spawns AD mobs)
Instance in bosses are activated by starting.
Zone Invasions
Zone Invasions spawn necropoli and camps in: Winterspring, Tanaris, Azshara, Blasted Lands, Eastern Plaguelands, Burning Steppes.
When an attack is active, it shows up on the world map as a "purple skull" icon.
Each zone has an associated timer (1 hour); once defeated, it cannot be activated again until this time has passed. The current implementation activates all zones at the start, which may be wrong.
2-3 floating Necropoli will be active in a zone. Each necropoli will have 3 camps consisting of a purple circle gobject, some doodads, and a necrotic crystal.
A necrotic crystal will periodically spawn 1-3 scourge.
Spawns have an instakill ability that kills anything besides players and their summons/pets.
Killing the scourge, both common and uncommon, should damage the crystal.
The spell states 15 damage, but this may be too little for a level 70 Necrotic Crystal and new in Wrath, a "Haunted Memento" item. It may take too many scourge kills to spawn the damaged crystal.
Once a crystal dies, it summons a damaged crystal and 4 Cultist Engineers spawn, and start a channel. Their channel can be interrupted by turning in 8 Necrotic Runes, which kills the cultist and spawns an elite Shadow of Doom. Shadow of Doom drops 30 Necrotic Runes.
Killing the cultist damages the crystal, and so does killing the Shadow of Doom. Once all 4 cultists are defeated and the elites, the damaged crystal dies, and damages the Necropolis (hidden lvl 1 creature with 42 hp), and the camp disappears. Spawned creatures will stick around for ~2 minutes, but should eventually despawn.
Once all camps are defeated, the necropolis should "die" and fly back up in the air.
Presumably spawning of the game object Necropoli should have an animation, but this is missing data and is cosmetic. Currently, an attack spawns with a loaded circle and a necrotic crystal. It does take ~1min or so for the Necropolis to activate its crystal due to auras having ~35 seconds to tick and travel time.
For testing, the invasion progress can be sped up by using
.die
on scourge, the crystals, and on the hidden necropolis health npc. And setting the defeated zones counter with commands.City Attacks
A Pallid Horror, a large elite undead, spawns with 5–9 Flameshockers.
In Stormwind, the large elite paths from the Cathedral crypts, and paths toward either the Trade District or Stormwind Keep.
In Undercity, it spawns near the side entrance / the lower levels trade quarter and paths towards Sylvanas / the upper level trade quarter.
The event ends when the Pallid Horror is defeated. Upon its death, a crystal NPC spawns from the corpse, which offers a quest.
Flameshockers will periodically spawn and attack nearby NPCs
(missing data) Wrath only frost dragons attack:
https://www.youtube.com/watch?v=CH0VR5OKeNY
https://www.youtube.com/watch?v=xZrJS6bQ0Eg
Issues Addressed:
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
CMangos port of Vmangos cmangos/mangos-wotlk@a71e7e5
VMangos vmangos/core@0c2ee99
Tests Performed:
This PR has been:
How to Test the Changes:
See description, I did not list all details below, just the important stuff that should be working
.worldstate scourgeinvasion state 1
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.