aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/base/world_database.sql3
-rw-r--r--sql/scripts/world_scripts_full.sql1
-rw-r--r--sql/updates/world/2011_08_07_05_world_spell_misc.sql2
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp38
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp65
5 files changed, 41 insertions, 68 deletions
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql
index fd56579cab4..484651c6867 100644
--- a/sql/base/world_database.sql
+++ b/sql/base/world_database.sql
@@ -17300,8 +17300,7 @@ INSERT INTO `spell_dbc` (`Id`,`Dispel`,`Mechanic`,`Attributes`,`AttributesEx`,`A
(60937, 0, 0, 562036736, 32, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 101, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Seaforium charges damaging wall achievement credit'),
(62791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'XT-002 Heart Overload Trigger Spell'),
(65037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Nerf the Scrapbots Achievement Criteria Marker'),
-(65074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 30, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Freya Achievement spell - Criteria Marker),
-(18350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Soul Preserver trinket spell');
+(65074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 30, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Freya Achievement spell - Criteria Marker);
/*!40000 ALTER TABLE `spell_dbc` ENABLE KEYS */;
UNLOCK TABLES;
diff --git a/sql/scripts/world_scripts_full.sql b/sql/scripts/world_scripts_full.sql
index e164fc19989..0902944f312 100644
--- a/sql/scripts/world_scripts_full.sql
+++ b/sql/scripts/world_scripts_full.sql
@@ -2001,7 +2001,6 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(66666, 'spell_gen_vehicle_scaling'),
(66667, 'spell_gen_vehicle_scaling'),
(66668, 'spell_gen_vehicle_scaling'),
- (18350, 'spell_gen_soul_preserver'),
-- instances
-- Black Temple
( 41475, 'spell_boss_lady_malande_shield'),
diff --git a/sql/updates/world/2011_08_07_05_world_spell_misc.sql b/sql/updates/world/2011_08_07_05_world_spell_misc.sql
new file mode 100644
index 00000000000..1d26731309f
--- /dev/null
+++ b/sql/updates/world/2011_08_07_05_world_spell_misc.sql
@@ -0,0 +1,2 @@
+DELETE FROM `spell_dbc` WHERE `id`=18350;
+DELETE FROM `spell_script_names` WHERE `spell_id`=18350;
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index f1f552ef045..e14fd4e81ed 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -8470,6 +8470,27 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
target = victim;
break;
}
+ // Soul Preserver Trinket
+ case 60510:
+ {
+ switch (GetClass())
+ {
+ case CLASS_DRUID:
+ trigger_spell_id = 60512;
+ break;
+ case CLASS_PALADIN:
+ trigger_spell_id = 60513;
+ break;
+ case CLASS_PRIEST:
+ trigger_spell_id = 60514;
+ break;
+ case CLASS_SHAMAN:
+ trigger_spell_id = 60515;
+ break;
+ }
+
+ target = this;
+ }
default:
// Illumination
if (auraSpellInfo->SpellIconID == 241)
@@ -8538,6 +8559,23 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
target = this;
break;
}
+ case 30881: // Nature's Guardian Rank 1
+ case 30883: // Nature's Guardian Rank 2
+ case 30884: // Nature's Guardian Rank 3
+ case 30885: // Nature's Guardian Rank 4
+ case 30886: // Nature's Guardian Rank 5
+ {
+ if (GetHealthPct() < 30)
+ {
+ basepoints0 = int32(auraSpellInfo->Effects[EFFECT_0].CalcValue() * GetMaxHealth() / 100.0f);
+ target = this;
+ trigger_spell_id = 31616;
+ // TODO: Threat part
+ }
+ else
+ return false;
+ break;
+ }
default:
{
// Lightning Shield (overwrite non existing triggered spell call in spell.dbc
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index a0f83997d30..48deb028625 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -1206,70 +1206,6 @@ class spell_gen_launch : public SpellScriptLoader
}
};
-class spell_gen_soul_preserver : public SpellScriptLoader
-{
- enum Spells
- {
- SOUL_PRESERVER = 60510,
- HEALING_TRANCE_DRUID = 60512,
- HEALING_TRANCE_PALADIN = 60513,
- HEALING_TRANCE_PRIEST = 60514,
- HEALING_TRANCE_SHAMAN = 60515,
- };
-
- public:
- spell_gen_soul_preserver() : SpellScriptLoader("spell_gen_soul_preserver") { }
-
- class spell_gen_soul_preserver_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_gen_soul_preserver_SpellScript);
-
- bool Load()
- {
- // 18350 is a common placeholder for trigered spells
- // this script only applies to 60510
- return GetTriggeringSpell()->Id == SOUL_PRESERVER;
- }
-
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- uint32 triggeredSpell = 0;
- Player* caster = GetCaster()->ToPlayer();
- if (!caster)
- return;
-
- switch (caster->getClass())
- {
- case CLASS_DRUID:
- triggeredSpell = HEALING_TRANCE_DRUID;
- break;
- case CLASS_PALADIN:
- triggeredSpell = HEALING_TRANCE_PALADIN;
- break;
- case CLASS_PRIEST:
- triggeredSpell = HEALING_TRANCE_PRIEST;
- break;
- case CLASS_SHAMAN:
- triggeredSpell = HEALING_TRANCE_SHAMAN;
- break;
- }
-
- if (triggeredSpell)
- caster->CastSpell(caster, triggeredSpell, true);
- }
-
- void Register()
- {
- OnEffect += SpellEffectFn(spell_gen_soul_preserver_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
- }
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_gen_soul_preserver_SpellScript();
- }
-};
-
class spell_gen_vehicle_scaling : public SpellScriptLoader
{
public:
@@ -1350,6 +1286,5 @@ void AddSC_generic_spell_scripts()
new spell_gen_magic_rooster();
new spell_gen_allow_cast_from_item_only();
new spell_gen_launch();
- new spell_gen_soul_preserver();
new spell_gen_vehicle_scaling();
}