/// <summary>
///
/// </summary>
/// <param name="CastInfos"></param>
/// <returns></returns>
public override FightActionResultEnum ApplyEffect(CastInfos CastInfos)
{
if (CastInfos.Target == null)
{
return(FightActionResultEnum.RESULT_NOTHING);
}
var malusType = _targetMalus[CastInfos.EffectType];
var bonusType = _casterBonus[CastInfos.EffectType];
var malusInfos = new CastInfos(malusType, CastInfos.SpellId, CastInfos.CellId, CastInfos.Value1, CastInfos.Value2, CastInfos.Value3, CastInfos.Chance, CastInfos.Duration, CastInfos.Caster, CastInfos.Target);
var bonusInfos = new CastInfos(bonusType, CastInfos.SpellId, CastInfos.CellId, CastInfos.Value1, CastInfos.Value2, CastInfos.Value3, CastInfos.Chance, CastInfos.Duration - 1, CastInfos.Caster, CastInfos.Target);
var damageValue = 0;
if (CastInfos.Target == CastInfos.Caster)
{
return(FightActionResultEnum.RESULT_NOTHING);
}
// Malus a la cible
var BuffStats = new StatsBuff(malusInfos, CastInfos.Target);
if (BuffStats.ApplyEffect(ref damageValue) == FightActionResultEnum.RESULT_END)
{
return(FightActionResultEnum.RESULT_END);
}
CastInfos.Target.BuffManager.AddBuff(BuffStats);
// Bonus au lanceur
BuffStats = new StatsBuff(bonusInfos, CastInfos.Caster);
CastInfos.Caster.BuffManager.AddBuff(BuffStats);
return(BuffStats.ApplyEffect(ref damageValue));
}