feat(Core/Spells): Allow modifying MiscValues during cast (#20731)
This commit is contained in:
@@ -556,7 +556,11 @@ void SpellCastTargets::OutDebug() const
|
|||||||
SpellValue::SpellValue(SpellInfo const* proto)
|
SpellValue::SpellValue(SpellInfo const* proto)
|
||||||
{
|
{
|
||||||
for (uint32 i = 0; i < MAX_SPELL_EFFECTS; ++i)
|
for (uint32 i = 0; i < MAX_SPELL_EFFECTS; ++i)
|
||||||
|
{
|
||||||
EffectBasePoints[i] = proto->Effects[i].BasePoints;
|
EffectBasePoints[i] = proto->Effects[i].BasePoints;
|
||||||
|
MiscVal[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
MaxAffectedTargets = proto->MaxAffectedTargets;
|
MaxAffectedTargets = proto->MaxAffectedTargets;
|
||||||
RadiusMod = 1.0f;
|
RadiusMod = 1.0f;
|
||||||
AuraStackAmount = 1;
|
AuraStackAmount = 1;
|
||||||
@@ -8458,6 +8462,15 @@ void Spell::SetSpellValue(SpellValueMod mod, int32 value)
|
|||||||
case SPELLVALUE_FORCED_CRIT_RESULT:
|
case SPELLVALUE_FORCED_CRIT_RESULT:
|
||||||
m_spellValue->ForcedCritResult = (bool)value;
|
m_spellValue->ForcedCritResult = (bool)value;
|
||||||
break;
|
break;
|
||||||
|
case SPELLVALUE_MISCVALUE0:
|
||||||
|
m_spellValue->MiscVal[0] = value;
|
||||||
|
break;
|
||||||
|
case SPELLVALUE_MISCVALUE1:
|
||||||
|
m_spellValue->MiscVal[1] = value;
|
||||||
|
break;
|
||||||
|
case SPELLVALUE_MISCVALUE2:
|
||||||
|
m_spellValue->MiscVal[2] = value;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -218,6 +218,7 @@ struct SpellValue
|
|||||||
uint8 AuraStackAmount;
|
uint8 AuraStackAmount;
|
||||||
int32 AuraDuration;
|
int32 AuraDuration;
|
||||||
bool ForcedCritResult;
|
bool ForcedCritResult;
|
||||||
|
uint32 MiscVal[MAX_SPELL_EFFECTS];
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SpellState
|
enum SpellState
|
||||||
|
|||||||
@@ -117,7 +117,10 @@ enum SpellValueMod
|
|||||||
SPELLVALUE_MAX_TARGETS,
|
SPELLVALUE_MAX_TARGETS,
|
||||||
SPELLVALUE_AURA_STACK,
|
SPELLVALUE_AURA_STACK,
|
||||||
SPELLVALUE_AURA_DURATION,
|
SPELLVALUE_AURA_DURATION,
|
||||||
SPELLVALUE_FORCED_CRIT_RESULT
|
SPELLVALUE_FORCED_CRIT_RESULT,
|
||||||
|
SPELLVALUE_MISCVALUE0,
|
||||||
|
SPELLVALUE_MISCVALUE1,
|
||||||
|
SPELLVALUE_MISCVALUE2,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SpellFacingFlags
|
enum SpellFacingFlags
|
||||||
|
|||||||
@@ -2332,6 +2332,10 @@ void Spell::EffectSummonType(SpellEffIndex effIndex)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
uint32 entry = m_spellInfo->Effects[effIndex].MiscValue;
|
uint32 entry = m_spellInfo->Effects[effIndex].MiscValue;
|
||||||
|
|
||||||
|
if (m_spellValue->MiscVal[effIndex])
|
||||||
|
entry = m_spellValue->MiscVal[effIndex];
|
||||||
|
|
||||||
if (!entry)
|
if (!entry)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user