Pretty self explanatory, there are 2 versions, passive AA that gives low % to twincast any spell(auras and songs like this too) and a self only buff that grants 100% to twincast for 3 ticks.
Code...
spdat.h - line 526 - add this
Code:
#define SE_Twincast 399 //cast 2 spells for every 1
spell effects.cpp - line 2816 - add this
spell effects.cpp - line 3859 - add this
Code:
case SE_Twincast:
{
if(type == focusTwincast)
{
value = 1;
}
break;
}
spells.cpp - line 1068 - add this
Code:
TryTwincast(this, target, spell_id);
mob.h - line 90 - add this
mob.h - line 784 - add this
Code:
void TryTwincast(Mob *caster, Mob *target, uint32 spell_id);
mob.cpp - line 3094 - add this
Code:
void Mob::TryTwincast(Mob *caster, Mob *target, uint32 spell_id)
{
if(!IsValidSpell(spell_id))
{
return;
}
uint32 buff_count = GetMaxTotalSlots();
for(int i = 0; i < buff_count; i++)
{
if(IsEffectInSpell(buffs[i].spellid, SE_Twincast))
{
sint32 focus = CalcFocusEffect(focusTwincast, buffs[i].spellid, spell_id);
if(focus == 1)
{
if(MakeRandomInt(0, 100) <= spells[buffs[i].spellid].base[0])
{
uint32 spell_mana = (spells[spell_id].mana);
this->SetMana(GetMana() - spell_mana);
SpellOnTarget(spell_id, target);
}
}
}
}
}