mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 10:37:02 +00:00
[10237] Implement additional damage proc on hit for Spell 8024 and ranks.
This commit is contained in:
parent
d7b6840634
commit
a4a6a7a609
7 changed files with 77 additions and 26 deletions
|
|
@ -24,7 +24,7 @@ CREATE TABLE `db_version` (
|
|||
`version` varchar(120) default NULL,
|
||||
`creature_ai_version` varchar(120) default NULL,
|
||||
`cache_id` int(10) default '0',
|
||||
`required_10223_01_mangos_spell_proc_event` bit(1) default NULL
|
||||
`required_10237_01_mangos_spell_bonus_data` bit(1) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
||||
|
||||
--
|
||||
|
|
|
|||
4
sql/updates/10237_01_mangos_spell_bonus_data.sql
Normal file
4
sql/updates/10237_01_mangos_spell_bonus_data.sql
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
ALTER TABLE db_version CHANGE COLUMN required_10223_01_mangos_spell_proc_event required_10237_01_mangos_spell_bonus_data bit;
|
||||
|
||||
DELETE FROM spell_bonus_data WHERE entry = 10444;
|
||||
INSERT INTO spell_bonus_data VALUES (10444, 0, 0, 0, "Shaman - Flametongue Attack");
|
||||
|
|
@ -118,6 +118,7 @@ pkgdata_DATA = \
|
|||
10217_05_mangos_spell_proc_event.sql \
|
||||
10219_01_mangos_spell_proc_event.sql \
|
||||
10223_01_mangos_spell_proc_event.sql \
|
||||
10237_01_mangos_spell_bonus_data.sql \
|
||||
README
|
||||
|
||||
## Additional files to include when running 'make dist'
|
||||
|
|
@ -216,4 +217,5 @@ EXTRA_DIST = \
|
|||
10217_05_mangos_spell_proc_event.sql \
|
||||
10219_01_mangos_spell_proc_event.sql \
|
||||
10223_01_mangos_spell_proc_event.sql \
|
||||
10237_01_mangos_spell_bonus_data.sql \
|
||||
README
|
||||
|
|
|
|||
|
|
@ -2362,6 +2362,23 @@ void Spell::EffectDummy(SpellEffectIndex eff_idx)
|
|||
m_caster->CastCustomSpell(unitTarget, 52032, &damage, 0, 0, true, 0, 0, m_originalCasterGUID);
|
||||
return;
|
||||
}
|
||||
// Flametongue Weapon Proc, Ranks
|
||||
if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0000000000200000))
|
||||
{
|
||||
if (!m_CastItem)
|
||||
{
|
||||
sLog.outError("Spell::EffectDummy: spell %i requires cast Item", m_spellInfo->Id);
|
||||
return;
|
||||
}
|
||||
// found spelldamage coefficients of 0.381% per 0.1 speed and 15.244 per 4.0 speed
|
||||
// but own calculation say 0.385 gives at most one point difference to published values
|
||||
int32 spellDamage = m_caster->SpellBaseDamageBonusDone(GetSpellSchoolMask(m_spellInfo));
|
||||
float weaponSpeed = (1.0f/IN_MILLISECONDS) * m_CastItem->GetProto()->Delay;
|
||||
int32 totalDamage = int32((damage + 3.85f * spellDamage) * 0.01 * weaponSpeed);
|
||||
|
||||
m_caster->CastCustomSpell(unitTarget, 10444, &totalDamage, NULL, NULL, true, m_CastItem);
|
||||
return;
|
||||
}
|
||||
if (m_spellInfo->Id == 39610) // Mana Tide Totem effect
|
||||
{
|
||||
if (!unitTarget || unitTarget->getPowerType() != POWER_MANA)
|
||||
|
|
|
|||
|
|
@ -2227,6 +2227,34 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura
|
|||
target = this;
|
||||
break;
|
||||
}
|
||||
// Flametongue Weapon (Passive), Ranks
|
||||
if (dummySpell->SpellFamilyFlags & UI64LIT(0x0000000000200000))
|
||||
{
|
||||
if (GetTypeId()!=TYPEID_PLAYER || !castItem)
|
||||
return SPELL_AURA_PROC_FAILED;
|
||||
|
||||
// Only proc for enchanted weapon
|
||||
Item *usedWeapon = ((Player *)this)->GetWeaponForAttack(procFlag & PROC_FLAG_SUCCESSFUL_OFFHAND_HIT ? OFF_ATTACK : BASE_ATTACK, true, true);
|
||||
if (usedWeapon != castItem)
|
||||
return SPELL_AURA_PROC_FAILED;
|
||||
|
||||
switch (dummySpell->Id)
|
||||
{
|
||||
case 10400: triggered_spell_id = 8026; break; // Rank 1
|
||||
case 15567: triggered_spell_id = 8028; break; // Rank 2
|
||||
case 15568: triggered_spell_id = 8029; break; // Rank 3
|
||||
case 15569: triggered_spell_id = 10445; break; // Rank 4
|
||||
case 16311: triggered_spell_id = 16343; break; // Rank 5
|
||||
case 16312: triggered_spell_id = 16344; break; // Rank 6
|
||||
case 16313: triggered_spell_id = 25488; break; // Rank 7
|
||||
case 58784: triggered_spell_id = 58786; break; // Rank 8
|
||||
case 58791: triggered_spell_id = 58787; break; // Rank 9
|
||||
case 58792: triggered_spell_id = 58788; break; // Rank 10
|
||||
default:
|
||||
return SPELL_AURA_PROC_FAILED;
|
||||
}
|
||||
break;
|
||||
}
|
||||
// Earth Shield
|
||||
if (dummySpell->SpellFamilyFlags & UI64LIT(0x0000040000000000))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "10236"
|
||||
#define REVISION_NR "10237"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#ifndef __REVISION_SQL_H__
|
||||
#define __REVISION_SQL_H__
|
||||
#define REVISION_DB_CHARACTERS "required_10160_02_characters_pet_aura"
|
||||
#define REVISION_DB_MANGOS "required_10223_01_mangos_spell_proc_event"
|
||||
#define REVISION_DB_MANGOS "required_10237_01_mangos_spell_bonus_data"
|
||||
#define REVISION_DB_REALMD "required_10008_01_realmd_realmd_db_version"
|
||||
#endif // __REVISION_SQL_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue