- Summoning Mastery
Boosts effective level of pets to determine enemy damage variance for spells and melee. Effects one targeted pet that you control.
Current Code.
- Code: Select all
#region Convoker-9
[SpellHandlerAttribute("SummonMastery")]
public class Convoker9Handler : MasterlevelHandling
//public class Convoker9Handler : MasterlevelBuffHandling
{
private GameNPC m_living;
//public override eProperty Property1 { get { return eProperty.MeleeDamage; } }
public override void ApplyEffectOnTarget(GameLiving target, double effectiveness)
{
foreach (JuggernautEffect jg in target.EffectList.GetAllOfType(typeof(JuggernautEffect)))
{
if (jg != null)
{
MessageToCaster("Your Pet already has an ability of this type active", eChatType.CT_SpellResisted);
return;
}
}
base.ApplyEffectOnTarget(target, effectiveness);
}
public override void OnEffectStart(GameSpellEffect effect)
{
GamePlayer player = Caster as GamePlayer;
m_living = player.ControlledBrain.Body;
//m_living.Level += 20;
m_living.BaseBuffBonusCategory[(int)eProperty.MeleeDamage] += 75;
m_living.BaseBuffBonusCategory[(int)eProperty.ArmorAbsorption] += 75;
m_living.Size += 40;
base.OnEffectStart(effect);
}
public override int OnEffectExpires(GameSpellEffect effect, bool noMessages)
{
//m_living.Level -= 20;
m_living.BaseBuffBonusCategory[(int)eProperty.MeleeDamage] -= 75;
m_living.BaseBuffBonusCategory[(int)eProperty.ArmorAbsorption] -= 75;
m_living.Size -= 40;
return base.OnEffectExpires(effect, noMessages);
}
public Convoker9Handler(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line) { }
}
#endregion
My New Code.
- Code: Select all
#region Convoker-9
[SpellHandlerAttribute("SummonMastery")]
public class Convoker9Handler : MasterlevelHandling
{
public override void ApplyEffectOnTarget(GameLiving target, double effectiveness)
{
foreach (JuggernautEffect jg in target.EffectList.GetAllOfType(typeof(JuggernautEffect)))
{
if (jg != null)
{
MessageToCaster("Your Pet already has an ability of this type active", eChatType.CT_SpellResisted);
return;
}
}
if (target != (Caster as GamePlayer).ControlledBrain.Body || target == null)
{
MessageToCaster("You must target your pet.", eChatType.CT_SpellResisted);
return;
}
base.ApplyEffectOnTarget(target, effectiveness);
}
public override void OnEffectStart(GameSpellEffect effect)
{
if (effect.Owner is GameNPC)
{
if ((effect.Owner as GameNPC).Brain is ControlledNpcBrain)
{
(effect.Owner as GameNPC).BaseBuffBonusCategory[(int)eProperty.MeleeDamage] += 75;
(effect.Owner as GameNPC).BaseBuffBonusCategory[(int)eProperty.ArmorAbsorption] += 75;
(effect.Owner as GameNPC).Size += 40;
base.OnEffectStart(effect);
}
}
}
public override int OnEffectExpires(GameSpellEffect effect, bool noMessages)
{
if (effect.Owner is GameNPC)
{
if ((effect.Owner as GameNPC).Brain is ControlledNpcBrain)
{
(effect.Owner as GameNPC).BaseBuffBonusCategory[(int)eProperty.MeleeDamage] -= 75;
(effect.Owner as GameNPC).BaseBuffBonusCategory[(int)eProperty.ArmorAbsorption] -= 75;
(effect.Owner as GameNPC).Size -= 40;
base.OnEffectStart(effect);
}
}
return base.OnEffectExpires(effect, noMessages);
}
public Convoker9Handler(GameLiving caster, Spell spell, SpellLine line) : base(caster, spell, line) { }
}
#endregion
I added a check in ApplyEffect which IDK if it is correct for the job im trying to do, let me know if you can tell (or if you've tested)....also i changed it so it would apply to any NPC that is a ControlledNpcBrain (i believe my combination will make it only target your Controlled NPCS that you select