Example #1
0
    /// <summary>
    /// Launched when attack is used
    /// </summary>
    /// <param name="effect"></param>
    public void DirectAttack(Effect effect)
    {
        NetIdeable target    = effect.GetTarget();
        bool       isBlocked = CalculateEffectBlocked(effect);

        if (!isBlocked)
        {
            if (effect.HitOnDirectAttack)
            {
                UseEffect(effect);
            }
            else
            {
                AttachEffect(effect);//if it is a dot only, add it to attached
            }
        }
    }
Example #2
0
    public bool CalculateEffectBlocked(Effect effect)
    {
        NetIdeable target    = effect.GetTarget();
        bool       isblocked = false;

        foreach (Effect eff in target.AttachedEffects)
        {
            if (eff.GetType() == typeof(BlockEffects))
            {
                BlockEffects block = (BlockEffects)eff;
                if (block.listEffectsToBlock.Exists((x) => x.GetType() == effect.GetType()) && block.numberToBlock > 0)
                {
                    block.numberToBlock--;
                    isblocked = true;
                }
            }
        }
        effect.GetTarget().AttachedEffects.RemoveAll((x) => x.GetType() == typeof(BlockEffects) && ((BlockEffects)x).numberToBlock <= 0);
        return(isblocked);
    }
Example #3
0
    public void StartTurnUseEffect(Effect effect)
    {
        NetIdeable target    = effect.GetTarget();
        bool       isBlocked = CalculateEffectBlocked(effect);

        if (!isBlocked)
        {
            if (!effect.TriggerAtOneOnly || effect.TriggerAtOneOnly && effect.TurnActiveEffect == 1)
            {
                UseEffect(effect);
            }
            else
            {
                effect.TurnActiveEffect--;
            }
        }
        else//deletes the DOT
        {
            effect.GetTarget().AttachedEffects.RemoveAll((x) => x.GetType() == typeof(Effect));
        }
    }
Example #4
0
 public void TargetAndInvokeEffectManager(NetIdeable placeable)
 {
 }