Changeset 6 for trunk/src/game/Spell.cpp

Show
Ignore:
Timestamp:
11/19/08 13:22:12 (17 years ago)
Author:
yumileroy
Message:

[svn] * Added ACE for Linux and Windows (Thanks Derex for Linux part and partial Windows part)
* Updated to 6721 and 676
* Fixed TrinityScript? logo
* Version updated to 0.2.6721.676

Original author: Neo2003
Date: 2008-10-04 06:17:19-05:00

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/game/Spell.cpp

    r2 r6  
    524524                case SPELL_EFFECT_RESURRECT: 
    525525                case SPELL_EFFECT_PARRY: 
     526                case SPELL_EFFECT_BLOCK: 
    526527                case SPELL_EFFECT_CREATE_ITEM: 
    527528                case SPELL_EFFECT_TRIGGER_SPELL: 
     
    34773478            case SPELL_EFFECT_DUMMY: 
    34783479            { 
    3479                 // Execute 
    3480                 if(m_spellInfo->SpellIconID == 1648) 
     3480                if(m_spellInfo->SpellIconID == 1648)        // Execute 
    34813481                { 
    34823482                    if(!m_targets.getUnitTarget() || m_targets.getUnitTarget()->GetHealth() > m_targets.getUnitTarget()->GetMaxHealth()*0.2) 
    34833483                        return SPELL_FAILED_BAD_TARGETS; 
    34843484                } 
    3485                 else if (m_spellInfo->Id == 51582) 
     3485                else if (m_spellInfo->Id == 51582)          // Rocket Boots Engaged 
    34863486                { 
    34873487                    if(m_caster->IsInWater()) 
    34883488                        return SPELL_FAILED_ONLY_ABOVEWATER; 
     3489                } 
     3490                else if(m_spellInfo->SpellIconID==156)      // Holy Shock 
     3491                { 
     3492                    // spell different for friends and enemies 
     3493                    // hart version required facing 
     3494                    if(m_targets.getUnitTarget() && !m_caster->IsFriendlyTo(m_targets.getUnitTarget()) && !m_caster->HasInArc( M_PI, target )) 
     3495                        return SPELL_FAILED_UNIT_NOT_INFRONT; 
    34893496                } 
    34903497                break; 
     
    42324239        if(dist < min_range) 
    42334240            return SPELL_FAILED_TOO_CLOSE; 
    4234         if( !m_IsTriggeredSpell && m_caster->GetTypeId() == TYPEID_PLAYER && 
    4235             !IsPositiveSpell(m_spellInfo->Id) && !m_caster->HasInArc( M_PI, target ) ) 
    4236         { 
    4237             // Spell-Family Related Checks 
    4238             switch (m_spellInfo->SpellFamilyName) 
    4239             { 
    4240                 case SPELLFAMILY_PRIEST: 
    4241                 { 
    4242                     // Shadow Word: Death, castable without facing 
    4243                     if (m_spellInfo->SpellFamilyFlags & 0x200000000LL) 
    4244                         return 0;                           // this is not TARGET_FLAG_DEST_LOCATION so we can return safely 
    4245                     break; 
    4246                 } 
    4247                 case SPELLFAMILY_PALADIN: 
    4248                 { 
    4249                     // Holy Shock, require facing 
    4250                     if (m_spellInfo->SpellFamilyFlags & 0x200000LL) 
    4251                         return SPELL_FAILED_UNIT_NOT_INFRONT; 
    4252                     break; 
    4253                 } 
    4254                 case SPELLFAMILY_WARRIOR: 
    4255                 { 
    4256                     // Charge, require facing 
    4257                     if (m_spellInfo->SpellFamilyFlags & 1) 
    4258                         return SPELL_FAILED_UNIT_NOT_INFRONT; 
    4259                     break; 
    4260                 } 
    4261             } 
    4262  
    4263             // Ranged Weapon 
    4264             if (IsRangedSpell()) 
    4265                 return SPELL_FAILED_UNIT_NOT_INFRONT; 
    4266  
    4267             // Melee Combat 
    4268             if (m_spellInfo->rangeIndex == 2) 
    4269                 return SPELL_FAILED_UNIT_NOT_INFRONT; 
    4270  
    4271             // Missile Effect 
    4272             if (m_spellInfo->speed > 0) 
    4273                 return SPELL_FAILED_UNIT_NOT_INFRONT; 
    4274  
    4275             // Channeled Spells need facing 
    4276             if (IsChanneledSpell(m_spellInfo)) 
    4277                 return SPELL_FAILED_UNIT_NOT_INFRONT; 
    4278  
    4279             // Direct Damage and charge effects 
    4280             for (uint8 i=0;i<3;++i) 
    4281             { 
    4282                 if (m_spellInfo->Effect[i] == SPELL_EFFECT_SCHOOL_DAMAGE || 
    4283                     m_spellInfo->Effect[i] == SPELL_EFFECT_POWER_BURN || 
    4284                     m_spellInfo->Effect[i] == SPELL_EFFECT_HEALTH_LEECH || 
    4285                     m_spellInfo->Effect[i] == SPELL_EFFECT_CHARGE) 
    4286                     return SPELL_FAILED_UNIT_NOT_INFRONT; 
    4287             } 
    4288         } 
     4241        if( m_caster->GetTypeId() == TYPEID_PLAYER && 
     4242            (m_spellInfo->FacingCasterFlags & SPELL_FACING_FLAG_INFRONT) && !m_caster->HasInArc( M_PI, target ) ) 
     4243            return SPELL_FAILED_UNIT_NOT_INFRONT; 
    42894244    } 
    42904245