[10764] Implement talent 44543 and ranks charges work.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Also fix IGNORE_UNIT_TARGET_NON_FROZEN in part allow casting spell that required frozen target.
This commit is contained in:
insider42 2010-11-21 05:28:59 +03:00 committed by VladimirMangos
parent de13dbea37
commit a34deecfc0
8 changed files with 32 additions and 6 deletions

View file

@ -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_10762_01_mangos_spell_proc_event` bit(1) default NULL
`required_10764_01_mangos_spell_proc_event` bit(1) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
--
@ -17426,7 +17426,8 @@ INSERT INTO `spell_proc_event` VALUES
(71545, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000,45.000000, 0),
(71611, 0x7F, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
(71642, 0x7F, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
(71761, 0x00, 3, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0.000000, 0.000000, 0);
(71761, 0x00, 3, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0.000000, 0.000000, 0),
(74396, 0x00, 3, 0x28E212F7, 0x28E212F7, 0x28E212F7, 0x00119048, 0x00119048, 0x00119048, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0.000000, 0.000000, 0);
/*!40000 ALTER TABLE `spell_proc_event` ENABLE KEYS */;
UNLOCK TABLES;

View file

@ -0,0 +1,5 @@
ALTER TABLE db_version CHANGE COLUMN required_10762_01_mangos_spell_proc_event required_10764_01_mangos_spell_proc_event bit;
DELETE FROM `spell_proc_event` WHERE `entry` IN (74396);
INSERT INTO spell_proc_event VALUES
(74396, 0x00, 3, 0x28E212F7, 0x28E212F7, 0x28E212F7, 0x00119048, 0x00119048, 0x00119048, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0.000000, 0.000000, 0);

View file

@ -124,6 +124,7 @@ pkgdata_DATA = \
10746_01_mangos_mangos_string.sql \
10749_01_mangos_mangos_string.sql \
10762_01_mangos_spell_proc_event.sql \
10764_01_mangos_spell_proc_event.sql \
README
## Additional files to include when running 'make dist'
@ -228,4 +229,5 @@ EXTRA_DIST = \
10746_01_mangos_mangos_string.sql \
10749_01_mangos_mangos_string.sql \
10762_01_mangos_spell_proc_event.sql \
10764_01_mangos_spell_proc_event.sql \
README

View file

@ -902,7 +902,7 @@ enum AuraState
AURA_STATE_DEFENSE = 1, // C |
AURA_STATE_HEALTHLESS_20_PERCENT = 2, // CcT |
AURA_STATE_BERSERKING = 3, // C T |
AURA_STATE_FROZEN = 4, // c t| frozen target
AURA_STATE_FROZEN = 4, // cT | frozen target
AURA_STATE_JUDGEMENT = 5, // C |
//AURA_STATE_UNKNOWN6 = 6, // | not used
AURA_STATE_HUNTER_PARRY = 7, // C |

View file

@ -2814,6 +2814,9 @@ void Spell::cast(bool skipCheck)
// Ice Block
if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0000008000000000))
AddPrecastSpell(41425); // Hypothermia
// Fingers of Frost
else if (m_spellInfo->Id == 44544)
AddPrecastSpell(74396); // Fingers of Frost
break;
}
case SPELLFAMILY_WARRIOR:
@ -4349,7 +4352,7 @@ SpellCastResult Spell::CheckCast(bool strict)
{
// target state requirements (apply to non-self only), to allow cast affects to self like Dirty Deeds
if (m_spellInfo->TargetAuraState && !target->HasAuraStateForCaster(AuraState(m_spellInfo->TargetAuraState), m_caster->GetGUID()) &&
!m_caster->IsIgnoreUnitState(m_spellInfo, IGNORE_UNIT_TARGET_STATE))
!m_caster->IsIgnoreUnitState(m_spellInfo, m_spellInfo->TargetAuraState == AURA_STATE_FROZEN ? IGNORE_UNIT_TARGET_NON_FROZEN : IGNORE_UNIT_TARGET_STATE))
return SPELL_FAILED_TARGET_AURASTATE;
// Not allow casting on flying player

View file

@ -2102,6 +2102,13 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
}
break;
}
case SPELLFAMILY_MAGE:
{
// Fingers of Frost stacks set to max at apply
if (GetId() == 74396)
GetHolder()->SetAuraCharges(GetSpellProto()->StackAmount);
break;
}
case SPELLFAMILY_SHAMAN:
{
switch(GetId())
@ -8353,6 +8360,14 @@ void SpellAuraHolder::HandleSpellSpecificBoosts(bool apply)
return;
break;
}
case 74396: // Fingers of Frost (remove main aura)
{
if (!apply)
spellId1 = 44544;
else
return;
break;
}
default:
return;
}

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "10763"
#define REVISION_NR "10764"
#endif // __REVISION_NR_H__

View file

@ -1,6 +1,6 @@
#ifndef __REVISION_SQL_H__
#define __REVISION_SQL_H__
#define REVISION_DB_CHARACTERS "required_10664_01_characters_arena_team_stats"
#define REVISION_DB_MANGOS "required_10762_01_mangos_spell_proc_event"
#define REVISION_DB_MANGOS "required_10764_01_mangos_spell_proc_event"
#define REVISION_DB_REALMD "required_10008_01_realmd_realmd_db_version"
#endif // __REVISION_SQL_H__