mirror of
https://github.com/ZhengPeiRu21/mod-individual-progression
synced 2025-12-01 21:13:10 +08:00
Merge branch 'master' into fix(Naxx40)lvl60slimeandsteed
This commit is contained in:
@@ -34,3 +34,9 @@ INSERT INTO `spell_dbc` (`ID`,`Category`,`DispelType`,`Mechanic`,`Attributes`,`A
|
|||||||
DELETE FROM `spell_dbc` WHERE (`ID` = 90006);
|
DELETE FROM `spell_dbc` WHERE (`ID` = 90006);
|
||||||
INSERT INTO `spell_dbc` (`ID`,`Category`,`DispelType`,`Mechanic`,`Attributes`,`AttributesEx`,`AttributesEx2`,`AttributesEx3`,`AttributesEx4`,`AttributesEx5`,`AttributesEx6`,`AttributesEx7`,`ShapeshiftMask`,`unk_320_2`,`ShapeshiftExclude`,`unk_320_3`,`Targets`,`TargetCreatureType`,`RequiresSpellFocus`,`FacingCasterFlags`,`CasterAuraState`,`TargetAuraState`,`ExcludeCasterAuraState`,`ExcludeTargetAuraState`,`CasterAuraSpell`,`TargetAuraSpell`,`ExcludeCasterAuraSpell`,`ExcludeTargetAuraSpell`,`CastingTimeIndex`,`RecoveryTime`,`CategoryRecoveryTime`,`InterruptFlags`,`AuraInterruptFlags`,`ChannelInterruptFlags`,`ProcTypeMask`,`ProcChance`,`ProcCharges`,`MaxLevel`,`BaseLevel`,`SpellLevel`,`DurationIndex`,`PowerType`,`ManaCost`,`ManaCostPerLevel`,`ManaPerSecond`,`ManaPerSecondPerLevel`,`RangeIndex`,`Speed`,`ModalNextSpell`,`CumulativeAura`,`Totem_1`,`Totem_2`,`Reagent_1`,`Reagent_2`,`Reagent_3`,`Reagent_4`,`Reagent_5`,`Reagent_6`,`Reagent_7`,`Reagent_8`,`ReagentCount_1`,`ReagentCount_2`,`ReagentCount_3`,`ReagentCount_4`,`ReagentCount_5`,`ReagentCount_6`,`ReagentCount_7`,`ReagentCount_8`,`EquippedItemClass`,`EquippedItemSubclass`,`EquippedItemInvTypes`,`Effect_1`,`Effect_2`,`Effect_3`,`EffectDieSides_1`,`EffectDieSides_2`,`EffectDieSides_3`,`EffectRealPointsPerLevel_1`,`EffectRealPointsPerLevel_2`,`EffectRealPointsPerLevel_3`,`EffectBasePoints_1`,`EffectBasePoints_2`,`EffectBasePoints_3`,`EffectMechanic_1`,`EffectMechanic_2`,`EffectMechanic_3`,`ImplicitTargetA_1`,`ImplicitTargetA_2`,`ImplicitTargetA_3`,`ImplicitTargetB_1`,`ImplicitTargetB_2`,`ImplicitTargetB_3`,`EffectRadiusIndex_1`,`EffectRadiusIndex_2`,`EffectRadiusIndex_3`,`EffectAura_1`,`EffectAura_2`,`EffectAura_3`,`EffectAuraPeriod_1`,`EffectAuraPeriod_2`,`EffectAuraPeriod_3`,`EffectMultipleValue_1`,`EffectMultipleValue_2`,`EffectMultipleValue_3`,`EffectChainTargets_1`,`EffectChainTargets_2`,`EffectChainTargets_3`,`EffectItemType_1`,`EffectItemType_2`,`EffectItemType_3`,`EffectMiscValue_1`,`EffectMiscValue_2`,`EffectMiscValue_3`,`EffectMiscValueB_1`,`EffectMiscValueB_2`,`EffectMiscValueB_3`,`EffectTriggerSpell_1`,`EffectTriggerSpell_2`,`EffectTriggerSpell_3`,`EffectPointsPerCombo_1`,`EffectPointsPerCombo_2`,`EffectPointsPerCombo_3`,`EffectSpellClassMaskA_1`,`EffectSpellClassMaskA_2`,`EffectSpellClassMaskA_3`,`EffectSpellClassMaskB_1`,`EffectSpellClassMaskB_2`,`EffectSpellClassMaskB_3`,`EffectSpellClassMaskC_1`,`EffectSpellClassMaskC_2`,`EffectSpellClassMaskC_3`,`SpellVisualID_1`,`SpellVisualID_2`,`SpellIconID`,`ActiveIconID`,`SpellPriority`,`Name_Lang_enUS`,`Name_Lang_enGB`,`Name_Lang_koKR`,`Name_Lang_frFR`,`Name_Lang_deDE`,`Name_Lang_enCN`,`Name_Lang_zhCN`,`Name_Lang_enTW`,`Name_Lang_zhTW`,`Name_Lang_esES`,`Name_Lang_esMX`,`Name_Lang_ruRU`,`Name_Lang_ptPT`,`Name_Lang_ptBR`,`Name_Lang_itIT`,`Name_Lang_Unk`,`Name_Lang_Mask`,`NameSubtext_Lang_enUS`,`NameSubtext_Lang_enGB`,`NameSubtext_Lang_koKR`,`NameSubtext_Lang_frFR`,`NameSubtext_Lang_deDE`,`NameSubtext_Lang_enCN`,`NameSubtext_Lang_zhCN`,`NameSubtext_Lang_enTW`,`NameSubtext_Lang_zhTW`,`NameSubtext_Lang_esES`,`NameSubtext_Lang_esMX`,`NameSubtext_Lang_ruRU`,`NameSubtext_Lang_ptPT`,`NameSubtext_Lang_ptBR`,`NameSubtext_Lang_itIT`,`NameSubtext_Lang_Unk`,`NameSubtext_Lang_Mask`,`Description_Lang_enUS`,`Description_Lang_enGB`,`Description_Lang_koKR`,`Description_Lang_frFR`,`Description_Lang_deDE`,`Description_Lang_enCN`,`Description_Lang_zhCN`,`Description_Lang_enTW`,`Description_Lang_zhTW`,`Description_Lang_esES`,`Description_Lang_esMX`,`Description_Lang_ruRU`,`Description_Lang_ptPT`,`Description_Lang_ptBR`,`Description_Lang_itIT`,`Description_Lang_Unk`,`Description_Lang_Mask`,`AuraDescription_Lang_enUS`,`AuraDescription_Lang_enGB`,`AuraDescription_Lang_koKR`,`AuraDescription_Lang_frFR`,`AuraDescription_Lang_deDE`,`AuraDescription_Lang_enCN`,`AuraDescription_Lang_zhCN`,`AuraDescription_Lang_enTW`,`AuraDescription_Lang_zhTW`,`AuraDescription_Lang_esES`,`AuraDescription_Lang_esMX`,`AuraDescription_Lang_ruRU`,`AuraDescription_Lang_ptPT`,`AuraDescription_Lang_ptBR`,`AuraDescription_Lang_itIT`,`AuraDescription_Lang_Unk`,`AuraDescription_Lang_Mask`,`ManaCostPct`,`StartRecoveryCategory`,`StartRecoveryTime`,`MaxTargetLevel`,`SpellClassSet`,`SpellClassMask_1`,`SpellClassMask_2`,`SpellClassMask_3`,`MaxTargets`,`DefenseType`,`PreventionType`,`StanceBarOrder`,`EffectChainAmplitude_1`,`EffectChainAmplitude_2`,`EffectChainAmplitude_3`,`MinFactionID`,`MinReputation`,`RequiredAuraVision`,`RequiredTotemCategoryID_1`,`RequiredTotemCategoryID_2`,`RequiredAreasID`,`SchoolMask`,`RuneCostID`,`SpellMissileID`,`PowerDisplayID`,`EffectBonusMultiplier_1`,`EffectBonusMultiplier_2`,`EffectBonusMultiplier_3`,`SpellDescriptionVariableID`,`SpellDifficultyID`) VALUES
|
INSERT INTO `spell_dbc` (`ID`,`Category`,`DispelType`,`Mechanic`,`Attributes`,`AttributesEx`,`AttributesEx2`,`AttributesEx3`,`AttributesEx4`,`AttributesEx5`,`AttributesEx6`,`AttributesEx7`,`ShapeshiftMask`,`unk_320_2`,`ShapeshiftExclude`,`unk_320_3`,`Targets`,`TargetCreatureType`,`RequiresSpellFocus`,`FacingCasterFlags`,`CasterAuraState`,`TargetAuraState`,`ExcludeCasterAuraState`,`ExcludeTargetAuraState`,`CasterAuraSpell`,`TargetAuraSpell`,`ExcludeCasterAuraSpell`,`ExcludeTargetAuraSpell`,`CastingTimeIndex`,`RecoveryTime`,`CategoryRecoveryTime`,`InterruptFlags`,`AuraInterruptFlags`,`ChannelInterruptFlags`,`ProcTypeMask`,`ProcChance`,`ProcCharges`,`MaxLevel`,`BaseLevel`,`SpellLevel`,`DurationIndex`,`PowerType`,`ManaCost`,`ManaCostPerLevel`,`ManaPerSecond`,`ManaPerSecondPerLevel`,`RangeIndex`,`Speed`,`ModalNextSpell`,`CumulativeAura`,`Totem_1`,`Totem_2`,`Reagent_1`,`Reagent_2`,`Reagent_3`,`Reagent_4`,`Reagent_5`,`Reagent_6`,`Reagent_7`,`Reagent_8`,`ReagentCount_1`,`ReagentCount_2`,`ReagentCount_3`,`ReagentCount_4`,`ReagentCount_5`,`ReagentCount_6`,`ReagentCount_7`,`ReagentCount_8`,`EquippedItemClass`,`EquippedItemSubclass`,`EquippedItemInvTypes`,`Effect_1`,`Effect_2`,`Effect_3`,`EffectDieSides_1`,`EffectDieSides_2`,`EffectDieSides_3`,`EffectRealPointsPerLevel_1`,`EffectRealPointsPerLevel_2`,`EffectRealPointsPerLevel_3`,`EffectBasePoints_1`,`EffectBasePoints_2`,`EffectBasePoints_3`,`EffectMechanic_1`,`EffectMechanic_2`,`EffectMechanic_3`,`ImplicitTargetA_1`,`ImplicitTargetA_2`,`ImplicitTargetA_3`,`ImplicitTargetB_1`,`ImplicitTargetB_2`,`ImplicitTargetB_3`,`EffectRadiusIndex_1`,`EffectRadiusIndex_2`,`EffectRadiusIndex_3`,`EffectAura_1`,`EffectAura_2`,`EffectAura_3`,`EffectAuraPeriod_1`,`EffectAuraPeriod_2`,`EffectAuraPeriod_3`,`EffectMultipleValue_1`,`EffectMultipleValue_2`,`EffectMultipleValue_3`,`EffectChainTargets_1`,`EffectChainTargets_2`,`EffectChainTargets_3`,`EffectItemType_1`,`EffectItemType_2`,`EffectItemType_3`,`EffectMiscValue_1`,`EffectMiscValue_2`,`EffectMiscValue_3`,`EffectMiscValueB_1`,`EffectMiscValueB_2`,`EffectMiscValueB_3`,`EffectTriggerSpell_1`,`EffectTriggerSpell_2`,`EffectTriggerSpell_3`,`EffectPointsPerCombo_1`,`EffectPointsPerCombo_2`,`EffectPointsPerCombo_3`,`EffectSpellClassMaskA_1`,`EffectSpellClassMaskA_2`,`EffectSpellClassMaskA_3`,`EffectSpellClassMaskB_1`,`EffectSpellClassMaskB_2`,`EffectSpellClassMaskB_3`,`EffectSpellClassMaskC_1`,`EffectSpellClassMaskC_2`,`EffectSpellClassMaskC_3`,`SpellVisualID_1`,`SpellVisualID_2`,`SpellIconID`,`ActiveIconID`,`SpellPriority`,`Name_Lang_enUS`,`Name_Lang_enGB`,`Name_Lang_koKR`,`Name_Lang_frFR`,`Name_Lang_deDE`,`Name_Lang_enCN`,`Name_Lang_zhCN`,`Name_Lang_enTW`,`Name_Lang_zhTW`,`Name_Lang_esES`,`Name_Lang_esMX`,`Name_Lang_ruRU`,`Name_Lang_ptPT`,`Name_Lang_ptBR`,`Name_Lang_itIT`,`Name_Lang_Unk`,`Name_Lang_Mask`,`NameSubtext_Lang_enUS`,`NameSubtext_Lang_enGB`,`NameSubtext_Lang_koKR`,`NameSubtext_Lang_frFR`,`NameSubtext_Lang_deDE`,`NameSubtext_Lang_enCN`,`NameSubtext_Lang_zhCN`,`NameSubtext_Lang_enTW`,`NameSubtext_Lang_zhTW`,`NameSubtext_Lang_esES`,`NameSubtext_Lang_esMX`,`NameSubtext_Lang_ruRU`,`NameSubtext_Lang_ptPT`,`NameSubtext_Lang_ptBR`,`NameSubtext_Lang_itIT`,`NameSubtext_Lang_Unk`,`NameSubtext_Lang_Mask`,`Description_Lang_enUS`,`Description_Lang_enGB`,`Description_Lang_koKR`,`Description_Lang_frFR`,`Description_Lang_deDE`,`Description_Lang_enCN`,`Description_Lang_zhCN`,`Description_Lang_enTW`,`Description_Lang_zhTW`,`Description_Lang_esES`,`Description_Lang_esMX`,`Description_Lang_ruRU`,`Description_Lang_ptPT`,`Description_Lang_ptBR`,`Description_Lang_itIT`,`Description_Lang_Unk`,`Description_Lang_Mask`,`AuraDescription_Lang_enUS`,`AuraDescription_Lang_enGB`,`AuraDescription_Lang_koKR`,`AuraDescription_Lang_frFR`,`AuraDescription_Lang_deDE`,`AuraDescription_Lang_enCN`,`AuraDescription_Lang_zhCN`,`AuraDescription_Lang_enTW`,`AuraDescription_Lang_zhTW`,`AuraDescription_Lang_esES`,`AuraDescription_Lang_esMX`,`AuraDescription_Lang_ruRU`,`AuraDescription_Lang_ptPT`,`AuraDescription_Lang_ptBR`,`AuraDescription_Lang_itIT`,`AuraDescription_Lang_Unk`,`AuraDescription_Lang_Mask`,`ManaCostPct`,`StartRecoveryCategory`,`StartRecoveryTime`,`MaxTargetLevel`,`SpellClassSet`,`SpellClassMask_1`,`SpellClassMask_2`,`SpellClassMask_3`,`MaxTargets`,`DefenseType`,`PreventionType`,`StanceBarOrder`,`EffectChainAmplitude_1`,`EffectChainAmplitude_2`,`EffectChainAmplitude_3`,`MinFactionID`,`MinReputation`,`RequiredAuraVision`,`RequiredTotemCategoryID_1`,`RequiredTotemCategoryID_2`,`RequiredAreasID`,`SchoolMask`,`RuneCostID`,`SpellMissileID`,`PowerDisplayID`,`EffectBonusMultiplier_1`,`EffectBonusMultiplier_2`,`EffectBonusMultiplier_3`,`SpellDescriptionVariableID`,`SpellDifficultyID`) VALUES
|
||||||
(90006, 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, 1, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 14, 0.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 28, 0, 0, 1, 0, 0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0, 351066, 0, 0, 1362, 0, 0, 0, 0, 0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 'Summon Spore', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, 0, 16712190, '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, 0, 16712188, 'Summons a Spore that lasts for $d.', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, 0, 16712190, '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, 0, 16712188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 1.0, 1.0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0.0, 0.0, 0.0, 0, 0);
|
(90006, 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, 1, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 14, 0.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 28, 0, 0, 1, 0, 0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0, 351066, 0, 0, 1362, 0, 0, 0, 0, 0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 'Summon Spore', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, 0, 16712190, '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, 0, 16712188, 'Summons a Spore that lasts for $d.', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, 0, 16712190, '', '', '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, 0, 16712188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 1.0, 1.0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0.0, 0.0, 0.0, 0, 0);
|
||||||
|
|
||||||
|
-- Anub'Arak
|
||||||
|
-- Locust Swarm: Reduce damage ~1500 to ~1000, increase radius 25yd to 30yd
|
||||||
|
DELETE FROM `spell_script_names` WHERE `spell_id` = 28785;
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`)
|
||||||
|
VALUES(28785, 'spell_anub_locust_swarm_40');
|
||||||
|
|||||||
@@ -236,12 +236,7 @@ public:
|
|||||||
case EVENT_LOCUST_SWARM:
|
case EVENT_LOCUST_SWARM:
|
||||||
{
|
{
|
||||||
Talk(EMOTE_LOCUST);
|
Talk(EMOTE_LOCUST);
|
||||||
// Set damage for periodic trigger effect to a random value between 875 and 1125
|
|
||||||
int32 modifiedLocustSwarmDamage = urand(875, 1125);
|
|
||||||
me->CastSpell(me, SPELL_LOCUST_SWARM, false);
|
me->CastSpell(me, SPELL_LOCUST_SWARM, false);
|
||||||
// Update the periodic trigger effect with custom damage
|
|
||||||
me->CastCustomSpell(me, SPELL_LOCUST_SWARM_TRIGGER, &modifiedLocustSwarmDamage, nullptr, nullptr, true, nullptr, nullptr, me->GetGUID());
|
|
||||||
|
|
||||||
events.ScheduleEvent(EVENT_SPAWN_GUARD, 3000);
|
events.ScheduleEvent(EVENT_SPAWN_GUARD, 3000);
|
||||||
events.RepeatEvent(90000);
|
events.RepeatEvent(90000);
|
||||||
break;
|
break;
|
||||||
@@ -258,7 +253,49 @@ public:
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class spell_anub_locust_swarm_40 : public SpellScriptLoader
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
spell_anub_locust_swarm_40() : SpellScriptLoader("spell_anub_locust_swarm_40") { }
|
||||||
|
|
||||||
|
class spell_anub_locust_swarm_40_AuraScript : public AuraScript
|
||||||
|
{
|
||||||
|
PrepareAuraScript(spell_anub_locust_swarm_40_AuraScript);
|
||||||
|
|
||||||
|
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||||
|
{
|
||||||
|
return ValidateSpellInfo({ SPELL_LOCUST_SWARM_TRIGGER });
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleTriggerSpell(AuraEffect const* /*aurEff*/)
|
||||||
|
{
|
||||||
|
Unit* caster = GetCaster();
|
||||||
|
if (!caster || (caster->GetMap()->GetDifficulty() != RAID_DIFFICULTY_10MAN_HEROIC))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PreventDefaultAction();
|
||||||
|
int32 modifiedLocustSwarmDamage = 812;
|
||||||
|
CustomSpellValues values;
|
||||||
|
values.AddSpellMod(SPELLVALUE_BASE_POINT0, modifiedLocustSwarmDamage);
|
||||||
|
values.AddSpellMod(SPELLVALUE_RADIUS_MOD, 3000); // 30yd
|
||||||
|
caster->CastCustomSpell(SPELL_LOCUST_SWARM_TRIGGER, values, caster, TRIGGERED_FULL_MASK, nullptr, nullptr, GetCasterGUID());
|
||||||
|
}
|
||||||
|
|
||||||
|
void Register() override
|
||||||
|
{
|
||||||
|
OnEffectPeriodic += AuraEffectPeriodicFn(spell_anub_locust_swarm_40_AuraScript::HandleTriggerSpell, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
AuraScript* GetAuraScript() const override
|
||||||
|
{
|
||||||
|
return new spell_anub_locust_swarm_40_AuraScript();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
void AddSC_boss_anubrekhan_40()
|
void AddSC_boss_anubrekhan_40()
|
||||||
{
|
{
|
||||||
new boss_anubrekhan_40();
|
new boss_anubrekhan_40();
|
||||||
|
new spell_anub_locust_swarm_40();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,13 +39,11 @@ enum Spells
|
|||||||
SPELL_BLAUMEUX_SHADOW_BOLT_25 = 57464,
|
SPELL_BLAUMEUX_SHADOW_BOLT_25 = 57464,
|
||||||
SPELL_BLAUMEUX_VOID_ZONE_10 = 28863,
|
SPELL_BLAUMEUX_VOID_ZONE_10 = 28863,
|
||||||
SPELL_BLAUMEUX_VOID_ZONE_25 = 57463,
|
SPELL_BLAUMEUX_VOID_ZONE_25 = 57463,
|
||||||
SPELL_BLAUMEUX_UNYIELDING_PAIN = 57381,
|
|
||||||
// Zeliek
|
// Zeliek
|
||||||
SPELL_ZELIEK_HOLY_WRATH_10 = 28883,
|
SPELL_ZELIEK_HOLY_WRATH_10 = 28883,
|
||||||
SPELL_ZELIEK_HOLY_WRATH_25 = 57466,
|
SPELL_ZELIEK_HOLY_WRATH_25 = 57466,
|
||||||
SPELL_ZELIEK_HOLY_BOLT_10 = 57376,
|
SPELL_ZELIEK_HOLY_BOLT_10 = 57376,
|
||||||
SPELL_ZELIEK_HOLY_BOLT_25 = 57465,
|
SPELL_ZELIEK_HOLY_BOLT_25 = 57465,
|
||||||
SPELL_ZELIEK_CONDEMNATION = 57377,
|
|
||||||
// Mograine
|
// Mograine
|
||||||
SPELL_RIVENDARE_UNHOLY_SHADOW_10 = 28882,
|
SPELL_RIVENDARE_UNHOLY_SHADOW_10 = 28882,
|
||||||
SPELL_RIVENDARE_UNHOLY_SHADOW_25 = 57369
|
SPELL_RIVENDARE_UNHOLY_SHADOW_25 = 57369
|
||||||
@@ -56,8 +54,7 @@ enum Events
|
|||||||
EVENT_MARK_CAST = 1,
|
EVENT_MARK_CAST = 1,
|
||||||
EVENT_PRIMARY_SPELL = 2,
|
EVENT_PRIMARY_SPELL = 2,
|
||||||
EVENT_SECONDARY_SPELL = 3,
|
EVENT_SECONDARY_SPELL = 3,
|
||||||
EVENT_PUNISH = 4,
|
EVENT_BERSERK = 4
|
||||||
EVENT_BERSERK = 5
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Misc
|
enum Misc
|
||||||
@@ -86,17 +83,6 @@ enum FourHorsemen
|
|||||||
// MARKS
|
// MARKS
|
||||||
const uint32 TABLE_SPELL_MARK[4] = {SPELL_MARK_OF_ZELIEK, SPELL_MARK_OF_BLAUMEUX, SPELL_MARK_OF_MOGRAINE, SPELL_MARK_OF_KORTHAZZ};
|
const uint32 TABLE_SPELL_MARK[4] = {SPELL_MARK_OF_ZELIEK, SPELL_MARK_OF_BLAUMEUX, SPELL_MARK_OF_MOGRAINE, SPELL_MARK_OF_KORTHAZZ};
|
||||||
|
|
||||||
// PRIMARY SPELL
|
|
||||||
const uint32 TABLE_SPELL_PRIMARY_10[4] = {SPELL_ZELIEK_HOLY_BOLT_10, SPELL_BLAUMEUX_SHADOW_BOLT_10, SPELL_RIVENDARE_UNHOLY_SHADOW_10, SPELL_KORTHAZZ_METEOR_10};
|
|
||||||
const uint32 TABLE_SPELL_PRIMARY_25[4] = {SPELL_ZELIEK_HOLY_BOLT_25, SPELL_BLAUMEUX_SHADOW_BOLT_25, SPELL_RIVENDARE_UNHOLY_SHADOW_25, SPELL_KORTHAZZ_METEOR_25};
|
|
||||||
|
|
||||||
// PUNISH
|
|
||||||
const uint32 TABLE_SPELL_PUNISH[4] = {SPELL_ZELIEK_CONDEMNATION, SPELL_BLAUMEUX_UNYIELDING_PAIN, 0, 0};
|
|
||||||
|
|
||||||
// SECONDARY SPELL
|
|
||||||
const uint32 TABLE_SPELL_SECONDARY_10[4] = {SPELL_ZELIEK_HOLY_WRATH_10, SPELL_BLAUMEUX_VOID_ZONE_10, 0, 0};
|
|
||||||
const uint32 TABLE_SPELL_SECONDARY_25[4] = {SPELL_ZELIEK_HOLY_WRATH_25, SPELL_BLAUMEUX_VOID_ZONE_25, 0, 0};
|
|
||||||
|
|
||||||
const Position WaypointPositions[12] =
|
const Position WaypointPositions[12] =
|
||||||
{
|
{
|
||||||
// Thane waypoints
|
// Thane waypoints
|
||||||
@@ -201,7 +187,6 @@ public:
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
events.RescheduleEvent(EVENT_PUNISH, 5000);
|
|
||||||
events.RescheduleEvent(EVENT_SECONDARY_SPELL, 15000);
|
events.RescheduleEvent(EVENT_SECONDARY_SPELL, 15000);
|
||||||
}
|
}
|
||||||
if (pInstance)
|
if (pInstance)
|
||||||
@@ -345,19 +330,41 @@ public:
|
|||||||
return;
|
return;
|
||||||
case EVENT_PRIMARY_SPELL:
|
case EVENT_PRIMARY_SPELL:
|
||||||
Talk(SAY_TAUNT);
|
Talk(SAY_TAUNT);
|
||||||
me->CastSpell(me->GetVictim(), RAID_MODE(TABLE_SPELL_PRIMARY_10[horsemanId], TABLE_SPELL_PRIMARY_25[horsemanId]), false);
|
if (horsemanId == HORSEMAN_ZELIEK)
|
||||||
|
{
|
||||||
|
int32 bp0 = 1109; // spell not used in vanilla, reduced damage from ~2.5 to ~1.2k
|
||||||
|
me->CastCustomSpell(me->GetVictim(), SPELL_ZELIEK_HOLY_BOLT_10, &bp0, 0, 0, false);
|
||||||
|
}
|
||||||
|
else if (horsemanId == HORSEMAN_BLAUMEUX)
|
||||||
|
{
|
||||||
|
int32 bp0 = 1109; // spell not used in vanilla, reduced damage from ~2.5 to ~1.2k
|
||||||
|
me->CastCustomSpell(me->GetVictim(), SPELL_BLAUMEUX_SHADOW_BOLT_10, &bp0, 0, 0, false);
|
||||||
|
}
|
||||||
|
else if (horsemanId == HORSEMAN_MOGRAINE)
|
||||||
|
{
|
||||||
|
// same dbc as vanilla. Shadow damage instead of fire
|
||||||
|
me->CastSpell(me->GetVictim(), SPELL_RIVENDARE_UNHOLY_SHADOW_10, false);
|
||||||
|
}
|
||||||
|
else // HORSEMAN_KORTHAZZ
|
||||||
|
{
|
||||||
|
int32 bp0 = 12824; // 14.5k to 13.5k
|
||||||
|
me->CastCustomSpell(me->GetVictim(), SPELL_KORTHAZZ_METEOR_10, &bp0, 0, 0, false);
|
||||||
|
}
|
||||||
events.RepeatEvent(15000);
|
events.RepeatEvent(15000);
|
||||||
return;
|
return;
|
||||||
case EVENT_PUNISH:
|
|
||||||
if (!SelectTarget(SelectTargetMethod::MaxDistance, 0, 45.0f, true))
|
|
||||||
{
|
|
||||||
me->CastSpell(me, TABLE_SPELL_PUNISH[horsemanId], false);
|
|
||||||
Talk(EMOTE_RAGECAST);
|
|
||||||
}
|
|
||||||
events.RepeatEvent(2010);
|
|
||||||
return;
|
|
||||||
case EVENT_SECONDARY_SPELL:
|
case EVENT_SECONDARY_SPELL:
|
||||||
me->CastSpell(me->GetVictim(), RAID_MODE(TABLE_SPELL_SECONDARY_10[horsemanId], TABLE_SPELL_SECONDARY_25[horsemanId]), false);
|
if (horsemanId == HORSEMAN_ZELIEK)
|
||||||
|
{
|
||||||
|
int32 bp0 = 443;
|
||||||
|
CustomSpellValues values;
|
||||||
|
values.AddSpellMod(SPELLVALUE_BASE_POINT0, bp0);
|
||||||
|
values.AddSpellMod(SPELLVALUE_MAX_TARGETS, 50); // 30yd
|
||||||
|
me->CastCustomSpell(SPELL_ZELIEK_HOLY_WRATH_10, values, me->GetVictim(), TRIGGERED_NONE, nullptr, nullptr, ObjectGuid::Empty);
|
||||||
|
}
|
||||||
|
else // HORSEMAN_BLAUMEUX
|
||||||
|
{
|
||||||
|
me->CastSpell(me->GetVictim(), SPELL_BLAUMEUX_VOID_ZONE_10, false);
|
||||||
|
}
|
||||||
events.RepeatEvent(15000);
|
events.RepeatEvent(15000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -366,7 +373,16 @@ public:
|
|||||||
{
|
{
|
||||||
if (Unit* target = SelectTarget(SelectTargetMethod::MaxDistance, 0, 45.0f, true))
|
if (Unit* target = SelectTarget(SelectTargetMethod::MaxDistance, 0, 45.0f, true))
|
||||||
{
|
{
|
||||||
me->CastSpell(target, RAID_MODE(TABLE_SPELL_PRIMARY_10[horsemanId], TABLE_SPELL_PRIMARY_25[horsemanId]), false);
|
if (horsemanId == HORSEMAN_ZELIEK)
|
||||||
|
{
|
||||||
|
int32 bp0 = 1109; // spell not used in vanilla, reduced damage from ~2.5 to ~1.2k
|
||||||
|
me->CastCustomSpell(me->GetVictim(), SPELL_ZELIEK_HOLY_BOLT_10, &bp0, 0, 0, false);
|
||||||
|
}
|
||||||
|
else if (horsemanId == HORSEMAN_BLAUMEUX)
|
||||||
|
{
|
||||||
|
int32 bp0 = 1109; // spell not used in vanilla, reduced damage from ~2.5 to ~1.2k
|
||||||
|
me->CastCustomSpell(me->GetVictim(), SPELL_BLAUMEUX_SHADOW_BOLT_10, &bp0, 0, 0, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -391,6 +407,7 @@ public:
|
|||||||
if (Unit* caster = GetCaster())
|
if (Unit* caster = GetCaster())
|
||||||
{
|
{
|
||||||
int32 damage;
|
int32 damage;
|
||||||
|
|
||||||
switch (GetStackAmount())
|
switch (GetStackAmount())
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
@@ -415,6 +432,21 @@ public:
|
|||||||
damage = 20000 + 1000 * (GetStackAmount() - 7);
|
damage = 20000 + 1000 * (GetStackAmount() - 7);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (caster->GetMap()->GetDifficulty() == RAID_DIFFICULTY_10MAN_HEROIC)
|
||||||
|
{
|
||||||
|
switch (GetStackAmount())
|
||||||
|
{
|
||||||
|
case 1: damage = 0; break;
|
||||||
|
case 2: damage = 250; break;
|
||||||
|
case 3: damage = 1000; break;
|
||||||
|
case 4: damage = 3000; break;
|
||||||
|
default:
|
||||||
|
damage = 1000 * GetStackAmount();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (damage)
|
if (damage)
|
||||||
{
|
{
|
||||||
caster->CastCustomSpell(SPELL_MARK_DAMAGE, SPELLVALUE_BASE_POINT0, damage, GetTarget());
|
caster->CastCustomSpell(SPELL_MARK_DAMAGE, SPELLVALUE_BASE_POINT0, damage, GetTarget());
|
||||||
@@ -453,6 +485,6 @@ class spell_four_horsemen_consumption : public SpellScript
|
|||||||
void AddSC_boss_four_horsemen_40()
|
void AddSC_boss_four_horsemen_40()
|
||||||
{
|
{
|
||||||
new boss_four_horsemen_40();
|
new boss_four_horsemen_40();
|
||||||
// new spell_four_horsemen_mark();
|
new spell_four_horsemen_mark();
|
||||||
// RegisterSpellScript(spell_four_horsemen_consumption);
|
// RegisterSpellScript(spell_four_horsemen_consumption);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user