From 10eddae70087cdb8b2f6ce9e5208cc061ef682fc Mon Sep 17 00:00:00 2001 From: Ercules76 Date: Thu, 17 Aug 2017 15:28:58 +0200 Subject: [PATCH] Core/Spells now the spells for summon mount aren't affected by haste (#555) * Core/Spells now the spells for summon mount aren't affected by haste * Convert tabs to space * Cleaning garbage of last commit --- src/authserver/Thumbs.db | Bin 17408 -> 0 bytes src/game/Entities/Unit/Unit.cpp | 37 +++++++++++++++++++++----------- src/game/Spells/Spell.cpp | 5 +++-- 3 files changed, 28 insertions(+), 14 deletions(-) delete mode 100644 src/authserver/Thumbs.db diff --git a/src/authserver/Thumbs.db b/src/authserver/Thumbs.db deleted file mode 100644 index a7bf7199aadc5b6b63c807a2199a1e1fa97a4bb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17408 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 TB~X%oAy+127VwY!|91Lsel#zr diff --git a/src/game/Entities/Unit/Unit.cpp b/src/game/Entities/Unit/Unit.cpp index 164775656..5508d5fce 100644 --- a/src/game/Entities/Unit/Unit.cpp +++ b/src/game/Entities/Unit/Unit.cpp @@ -13635,25 +13635,38 @@ int32 Unit::ModSpellDuration(SpellInfo const* spellProto, Unit const* target, in return std::max(duration, 0); } -void Unit::ModSpellCastTime(SpellInfo const* spellProto, int32 & castTime, Spell* spell) -{ - if (!spellProto || castTime < 0) +void Unit::ModSpellCastTime(SpellInfo const* spellInfo, int32 & castTime, Spell* spell) +{ + if (!spellInfo || castTime < 0) return; + + if (spellInfo->IsChanneled() && !(spellInfo->AttributesEx5 & SPELL_ATTR5_HASTE_AFFECT_DURATION)) + return; + // called from caster if (Player* modOwner = GetSpellModOwner()) - modOwner->ApplySpellMod(spellProto->Id, SPELLMOD_CASTING_TIME, castTime, spell, bool(modOwner != this && !IsPet())); + // TODO:(MadAgos) Eventually check and delete the bool argument + modOwner->ApplySpellMod(spellInfo->Id, SPELLMOD_CASTING_TIME, castTime, spell, bool(modOwner != this && !IsPet())); - if (!spellProto->HasAttribute(SpellAttr0(SPELL_ATTR0_ABILITY|SPELL_ATTR0_TRADESPELL)) && (spellProto->SpellFamilyName || GetTypeId() != TYPEID_PLAYER)) + switch (spellInfo->DmgClass) { - if (CanInstantCast()) - castTime = 0; - else + case SPELL_DAMAGE_CLASS_NONE: + if (spellInfo->AttributesEx5 & SPELL_ATTR5_HASTE_AFFECT_DURATION) // required double check castTime = int32(float(castTime) * GetFloatValue(UNIT_MOD_CAST_SPEED)); - } - else if (spellProto->HasAttribute(SPELL_ATTR0_REQ_AMMO) && !spellProto->HasAttribute(SPELL_ATTR2_AUTOREPEAT_FLAG)) + else if (spellInfo->SpellVisual[0] == 3881 && HasAura(67556)) // cooking with Chef Hat. + castTime = 500; + break; + case SPELL_DAMAGE_CLASS_MELEE: + break; // no known cases + case SPELL_DAMAGE_CLASS_MAGIC: + castTime = int32(float(castTime) * GetFloatValue(UNIT_MOD_CAST_SPEED)); + break; + case SPELL_DAMAGE_CLASS_RANGED: castTime = int32(float(castTime) * m_modAttackSpeedPct[RANGED_ATTACK]); - else if (spellProto->SpellVisual[0] == 3881 && HasAura(67556)) // cooking with Chef Hat. - castTime = 500; + break; + default: + break; + } } DiminishingLevels Unit::GetDiminishing(DiminishingGroup group) diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index a72675b7c..255283c61 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -3758,6 +3758,7 @@ void Spell::handle_immediate() // Apply duration mod if (Player* modOwner = m_caster->GetSpellModOwner()) modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_DURATION, duration); + // Apply haste mods if (m_caster->HasAuraTypeWithAffectMask(SPELL_AURA_PERIODIC_HASTE, m_spellInfo) || m_spellInfo->HasAttribute(SPELL_ATTR5_HASTE_AFFECT_DURATION)) duration = int32(duration * m_caster->GetFloatValue(UNIT_MOD_CAST_SPEED)); @@ -3780,10 +3781,10 @@ void Spell::handle_immediate() // process immediate effects (items, ground, etc.) also initialize some variables _handle_immediate_phase(); - for (std::list::iterator ihit= m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit) + for (std::list::iterator ihit = m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit) DoAllEffectOnTarget(&(*ihit)); - for (std::list::iterator ihit= m_UniqueGOTargetInfo.begin(); ihit != m_UniqueGOTargetInfo.end(); ++ihit) + for (std::list::iterator ihit = m_UniqueGOTargetInfo.begin(); ihit != m_UniqueGOTargetInfo.end(); ++ihit) DoAllEffectOnTarget(&(*ihit)); FinishTargetProcessing();