Support for spells_new field 'viral_range'

This commit is contained in:
KayenEQ 2014-10-26 02:05:36 -04:00
parent 5afd6b8628
commit adb8175654
3 changed files with 7 additions and 4 deletions

View File

@ -4612,9 +4612,12 @@ Client *EntityList::FindCorpseDragger(uint16 CorpseID)
return nullptr;
}
Mob *EntityList::GetTargetForVirus(Mob *spreader)
Mob *EntityList::GetTargetForVirus(Mob *spreader, int range)
{
int max_spread_range = RuleI(Spells, VirusSpreadDistance);
int max_spread_range = RuleI(Spells, VirusSpreadDistance);
if (range)
max_spread_range = range;
std::vector<Mob *> TargetsInRange;

View File

@ -134,7 +134,7 @@ public:
Mob *GetMob(const char* name);
Mob *GetMobByNpcTypeID(uint32 get_id);
bool IsMobSpawnedByNpcTypeID(uint32 get_id);
Mob *GetTargetForVirus(Mob* spreader);
Mob *GetTargetForVirus(Mob* spreader, int range);
inline NPC *GetNPCByID(uint16 id)
{ return npc_list.count(id) ? npc_list.at(id) : nullptr; }
NPC *GetNPCByNPCTypeID(uint32 npc_id);

View File

@ -4349,7 +4349,7 @@ void Mob::SpreadVirus(uint16 spell_id, uint16 casterID)
// Only spread in zones without perm buffs
if(!zone->BuffTimersSuspended()) {
for(int i = 0; i < num_targs; i++) {
target = entity_list.GetTargetForVirus(this);
target = entity_list.GetTargetForVirus(this, spells[spell_id].viral_range);
if(target) {
// Only spreads to the uninfected
if(!target->FindBuff(spell_id)) {