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

[svn] Add SpellExtraInfoMap?. Currently support:
Limited-number-of-players spell; shared damage spell; target-in-line cone spell (e.g. dark glare).
Change angle of cone spells from 120 degree to 60 degree.

Original author: megamage
Date: 2008-10-25 15:46:52-05:00

Files:
1 modified

Legend:

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

    r108 r110  
    12271227        cell_lock->Visit(cell_lock, world_object_notifier, *MapManager::Instance().GetMap(m_caster->GetMapId(), m_caster)); 
    12281228    } 
    1229     TypeContainerVisitor<Trinity::SpellNotifierCreatureAndPlayer, GridTypeMapContainer >  grid_object_notifier(notifier); 
    1230     cell_lock->Visit(cell_lock, grid_object_notifier, *MapManager::Instance().GetMap(m_caster->GetMapId(), m_caster)); 
     1229    if(!spellmgr.GetSpellExtraInfo(m_spellInfo->Id, SPELL_EXTRA_INFO_MAX_TARGETS)) 
     1230    { 
     1231        TypeContainerVisitor<Trinity::SpellNotifierCreatureAndPlayer, GridTypeMapContainer >  grid_object_notifier(notifier); 
     1232        cell_lock->Visit(cell_lock, grid_object_notifier, *MapManager::Instance().GetMap(m_caster->GetMapId(), m_caster)); 
     1233    } 
    12311234} 
    12321235 
     
    13521355        case TARGET_ALL_AROUND_CASTER: 
    13531356        { 
     1357            if(!unMaxTargets) 
     1358                unMaxTargets = spellmgr.GetSpellExtraInfo(m_spellInfo->Id, SPELL_EXTRA_INFO_MAX_TARGETS); 
    13541359            m_caster->GetPosition(m_targets.m_destX, m_targets.m_destY, m_targets.m_destZ); 
    13551360        }break; 
     
    14141419        }break; 
    14151420        case TARGET_IN_FRONT_OF_CASTER: 
    1416         { 
    1417             bool inFront = m_spellInfo->SpellVisual != 3879; 
    1418             SearchAreaTarget(TagUnitMap, radius, inFront ? PUSH_IN_FRONT : PUSH_IN_BACK,SPELL_TARGETS_AOE_DAMAGE); 
     1421        case TARGET_UNIT_CONE_ENEMY_UNKNOWN: 
     1422        { 
     1423            switch(spellmgr.GetSpellExtraInfo(m_spellInfo->Id, SPELL_EXTRA_INFO_CONE_TYPE)) 
     1424            { 
     1425                default: 
     1426                case 0: 
     1427                    SearchAreaTarget(TagUnitMap, radius, PUSH_IN_FRONT, SPELL_TARGETS_AOE_DAMAGE); 
     1428                    break; 
     1429                case 1: 
     1430                    SearchAreaTarget(TagUnitMap, radius, PUSH_IN_BACK, SPELL_TARGETS_AOE_DAMAGE); 
     1431                    break; 
     1432                case 2: 
     1433                    SearchAreaTarget(TagUnitMap, radius, PUSH_IN_LINE, SPELL_TARGETS_AOE_DAMAGE); 
     1434                    break; 
     1435            } 
    14191436        }break; 
     1437        case TARGET_UNIT_CONE_ALLY: 
     1438        { 
     1439            SearchAreaTarget(TagUnitMap, radius, PUSH_IN_FRONT, SPELL_TARGETS_FRIENDLY); 
     1440        }break; 
     1441 
    14201442 
    14211443        // nearby target