/// <summary> /// Grants EoC for casting spells /// </summary> private static void OnSpellEvent( SpellEventArgs args ) { int eoc = 0; Spell spell = args.Spell; if( spell is MagerySpell ) { eoc = (1 * ((int)((MagerySpell)spell).Circle + 1)); } args.Player.EssenceOfCharacter += eoc; }
private static void OnSpellEvent( SpellEventArgs args ) { try { int eoc = 0; Spell spell = args.Spell; Spell[] recentSpells; if (spellCache.ContainsKey(args.Player) == false) { recentSpells = new Spell[3]; recentSpells[0] = spell; recentSpells[1] = spell; recentSpells[2] = spell; spellCache.Add(args.Player, recentSpells); if (spell is MagerySpell) { eoc = (1 * ((int)((MagerySpell)spell).Circle + 1)); } args.Player.EssenceOfCharacter += eoc; } else { recentSpells = spellCache[args.Player]; bool recentSpell = (recentSpells[0].ToString() == spell.ToString() || recentSpells[1].ToString() == spell.ToString() || recentSpells[2].ToString() == spell.ToString()); if (!recentSpell) { if (recentSpells[1] != null) recentSpells[2] = recentSpells[1]; if (recentSpells[0] != null) recentSpells[1] = recentSpells[0]; recentSpells[0] = spell; if (spell is MagerySpell) { eoc = (1 * ((int)((MagerySpell)spell).Circle + 1)); } args.Player.EssenceOfCharacter += eoc; } } } catch { } }