aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShocker <shocker@freakz.ro>2012-01-08 15:30:14 -0800
committerShocker <shocker@freakz.ro>2012-01-08 15:30:14 -0800
commitf53a1f253e0dfb3de2d85117e36d36d9daea87a6 (patch)
tree194246029f21dad0b2ce9f058cc200f9435651ce
parent6cb495048916a916804ebf8bde19e9619b12f897 (diff)
parent1caf09267e255f1ddda3825ad646cf7387967c08 (diff)
Merge pull request #4719 from Norfik/bjarngrim
Scripts/Halls of Lightning: Implement "Lightning Struck" achievement
-rw-r--r--sql/updates/world/2012_01_08_18_world_achievement_criteria_data.sql5
-rw-r--r--sql/updates/world/2012_01_08_18_world_creature_addon.sql3
-rw-r--r--sql/updates/world/2012_01_08_18_world_spell_linked_spell.sql4
-rw-r--r--sql/updates/world/2012_01_08_18_world_waypoint_data.sql8
-rw-r--r--sql/updates/world/2012_01_08_18_world_waypoint_scripts.sql10
-rw-r--r--sql/updates/world/2012_01_08_19_world_achievement_criteria_data.sql5
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp20
7 files changed, 53 insertions, 2 deletions
diff --git a/sql/updates/world/2012_01_08_18_world_achievement_criteria_data.sql b/sql/updates/world/2012_01_08_18_world_achievement_criteria_data.sql
new file mode 100644
index 00000000000..e20fd1c55bb
--- /dev/null
+++ b/sql/updates/world/2012_01_08_18_world_achievement_criteria_data.sql
@@ -0,0 +1,5 @@
+-- Lightning Struck achievement
+DELETE FROM `disables` WHERE `sourceType`=4 AND `entry`=6835;
+DELETE FROM `achievement_criteria_data` WHERE `type`=11 AND `criteria_id`=6835;
+INSERT INTO `achievement_criteria_data` (`criteria_id`, `type`, `value1`, `value2`, `ScriptName`) VALUES
+(6835, 11, 0, 0, 'achievement_lightning_struck');
diff --git a/sql/updates/world/2012_01_08_18_world_creature_addon.sql b/sql/updates/world/2012_01_08_18_world_creature_addon.sql
new file mode 100644
index 00000000000..7570cc14afe
--- /dev/null
+++ b/sql/updates/world/2012_01_08_18_world_creature_addon.sql
@@ -0,0 +1,3 @@
+-- HoL General Bjarngrim event Temporary Electrical Charge
+-- Clear wrong aura
+UPDATE `creature_addon` SET `auras`='' WHERE `guid` = 126981;
diff --git a/sql/updates/world/2012_01_08_18_world_spell_linked_spell.sql b/sql/updates/world/2012_01_08_18_world_spell_linked_spell.sql
new file mode 100644
index 00000000000..927c6c0c663
--- /dev/null
+++ b/sql/updates/world/2012_01_08_18_world_spell_linked_spell.sql
@@ -0,0 +1,4 @@
+-- add spell link for Temporary Electrical Charge
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger`='-52098' AND `spell_effect`='52092';
+INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
+('-52098', '52092', '0', 'Charge Up - Temporary Electrical Charge');
diff --git a/sql/updates/world/2012_01_08_18_world_waypoint_data.sql b/sql/updates/world/2012_01_08_18_world_waypoint_data.sql
new file mode 100644
index 00000000000..e443f7c055a
--- /dev/null
+++ b/sql/updates/world/2012_01_08_18_world_waypoint_data.sql
@@ -0,0 +1,8 @@
+-- Set 10 sec delay on platforms where boss gets Temporary Electrical Charge
+UPDATE `waypoint_data` SET `delay`=10000 WHERE `id`=1269810 AND `point` IN (2, 5, 11, 14);
+
+-- Cast self Charge Up to get Temporary Electrical Charge
+UPDATE `waypoint_data` SET `action`=12698101 WHERE `id`=1269810 AND `point` IN (5, 14);
+
+-- Remove aura Temporary Electrical Charge
+UPDATE `waypoint_data` SET `action`=12698102 WHERE `id`=1269810 AND `point` IN (2, 3, 4, 11, 12, 13);
diff --git a/sql/updates/world/2012_01_08_18_world_waypoint_scripts.sql b/sql/updates/world/2012_01_08_18_world_waypoint_scripts.sql
new file mode 100644
index 00000000000..f6c147155ea
--- /dev/null
+++ b/sql/updates/world/2012_01_08_18_world_waypoint_scripts.sql
@@ -0,0 +1,10 @@
+-- Cast self Charge Up to get Temporary Electrical Charge
+DELETE FROM `waypoint_scripts` WHERE `id`=12698101;
+INSERT INTO `waypoint_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`, `guid`) VALUES
+(12698101, 0, 14, 52092, 1, 0, 0, 0, 0, 0, 855),
+(12698101, 2, 15, 52098, 1, 0, 0, 0, 0, 0, 856);
+
+-- Remove aura Temporary Electrical Charge
+DELETE FROM `waypoint_scripts` WHERE `id`=12698102;
+INSERT INTO `waypoint_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`, `guid`) VALUES
+(12698102, 0, 14, 52092, 1, 0, 0, 0, 0, 0, 857);
diff --git a/sql/updates/world/2012_01_08_19_world_achievement_criteria_data.sql b/sql/updates/world/2012_01_08_19_world_achievement_criteria_data.sql
new file mode 100644
index 00000000000..6cd1a367e81
--- /dev/null
+++ b/sql/updates/world/2012_01_08_19_world_achievement_criteria_data.sql
@@ -0,0 +1,5 @@
+-- Lightning Struck achievement move from criteria script to DB thx Vincent-Michael
+DELETE FROM `achievement_criteria_data` WHERE `ScriptName`='achievement_lightning_struck';
+DELETE FROM `achievement_criteria_data` WHERE `type`=7 AND `criteria_id`=6835;
+INSERT INTO `achievement_criteria_data` (`criteria_id`, `type`, `value1`, `value2`, `ScriptName`) VALUES
+(6835, 7, 52092, 0, '');
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp
index e96801f3ecb..c6f72890d1f 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp
@@ -61,7 +61,7 @@ enum eEnums
//OTHER SPELLS
//SPELL_CHARGE_UP = 52098, // only used when starting walk from one platform to the other
- //SPELL_TEMPORARY_ELECTRICAL_CHARGE = 52092, // triggered part of above
+ SPELL_TEMPORARY_ELECTRICAL_CHARGE = 52092, // triggered part of above
NPC_STORMFORGED_LIEUTENANT = 29240,
SPELL_ARC_WELD = 59085,
@@ -98,11 +98,13 @@ public:
m_instance = creature->GetInstanceScript();
m_uiStance = STANCE_DEFENSIVE;
memset(&m_auiStormforgedLieutenantGUID, 0, sizeof(m_auiStormforgedLieutenantGUID));
+ canBuff = true;
}
InstanceScript* m_instance;
bool m_bIsChangingStance;
+ bool canBuff;
uint8 m_uiChargingStatus;
uint8 m_uiStance;
@@ -126,6 +128,10 @@ public:
void Reset()
{
+ if (canBuff)
+ if (!me->HasAura(SPELL_TEMPORARY_ELECTRICAL_CHARGE))
+ me->AddAura(SPELL_TEMPORARY_ELECTRICAL_CHARGE, me);
+
m_bIsChangingStance = false;
m_uiChargingStatus = 0;
@@ -167,6 +173,16 @@ public:
m_instance->SetData(TYPE_BJARNGRIM, NOT_STARTED);
}
+ void EnterEvadeMode()
+ {
+ if (me->HasAura(SPELL_TEMPORARY_ELECTRICAL_CHARGE))
+ canBuff = true;
+ else
+ canBuff = false;
+
+ ScriptedAI::EnterEvadeMode();
+ }
+
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
@@ -211,7 +227,7 @@ public:
void UpdateAI(const uint32 uiDiff)
{
//Return since we have no target
- if (!UpdateVictim())
+ if (!UpdateVictim())
return;
// Change stance