View Single Post
  #1  
Old 07-07-2010, 12:48 PM
Caryatis
Dragon
 
Join Date: May 2009
Location: Milky Way
Posts: 539
Default COMMITTED: SE_Twincast

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
Code:
case SE_Twincast:
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
Code:
	focusTwincast,
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);
				}
			}
		}
	}
}
Reply With Quote