Ejemplo n.º 1
0
    IEnumerator RunMoveEffects(MoveEffects Effects, Pokemon source, Pokemon target, MoveTarget moveTarget)
    {
        var effects = Effects;

        if (effects.Boosts != null)
        {
            if (moveTarget == MoveTarget.Self)
            {
                source.ApplyBoosts(effects.Boosts);
            }
            else
            {
                target.ApplyBoosts(effects.Boosts);
            }
        }

        if (effects.Status != StatusID.none)
        {
            target.SetStatus(effects.Status);
        }

        if (effects.VolatileStatus != StatusID.none)
        {
            target.SetVolatileStatus(effects.VolatileStatus);
        }
        yield return(ShowStatChanges(source));

        yield return(ShowStatChanges(target));
    }
Ejemplo n.º 2
0
    IEnumerator RuneMoveEffects(MoveEffects effects, Pokemon source, Pokemon target, MoveTarget moveTarget) //Creating a function of the Effects move, so we'll call it easyly
    {
        if (effects.Boosts != null)                                                                         //Call for stat boost
        {
            if (moveTarget == MoveTarget.Self)
            {
                source.ApplyBoosts(effects.Boosts);
            }
            else
            {
                target.ApplyBoosts(effects.Boosts);
            }
        }

        //Check from the dictionnary if there are any status condition, and call for status
        if (effects.Status != ConditionID.none)
        {
            target.SetStatus(effects.Status);
        }
        //Same with volatile status
        if (effects.VolatileStatus != ConditionID.none)
        {
            target.SetVolatileStatus(effects.VolatileStatus);
        }

        yield return(ShowStatusChanges(source));

        yield return(ShowStatusChanges(target));
    }
    /*
     * Metodo encargado de gestionar los efectos secundarios de los ataques, como bajadas de stats o estados alterados
     */
    IEnumerator RunMoveEffects(MoveEffects effects, Pokemon source, Pokemon target, MoveTarget moveTarget)
    {
        //Boosts
        if (effects.Boosts != null) //de momento solo contemplamos los ataques de estado que implican boosts
        {
            if (moveTarget == MoveTarget.Self)
            {
                source.ApplyBoosts(effects.Boosts);
            }
            else if (moveTarget == MoveTarget.Foe)
            {
                target.ApplyBoosts(effects.Boosts);
            }
        }

        //Status conditions
        if (effects.Status != ConditionID.none)
        {
            //TODO: Estamos suponiendo que el target del status es el enemigo y no uno mismo
            EffectResult result = target.SetStatus(effects.Status);

            if (result == EffectResult.AlreadyOne)
            {
                yield return(dialogBox.TypeDialog($"{source.CurrentMove.Base.Name} had no effect!"));
            }
            else if (result == EffectResult.Inmune)
            {
                yield return(dialogBox.TypeDialog($"{target.Base.Name} it's inmune!"));
            }
        }

        //Volatile Status conditions
        if (effects.VolatileStatus != ConditionID.none)
        {
            //TODO: Estamos suponiendo que el target del status es el enemigo y no uno mismo
            target.SetVolatileStatus(effects.VolatileStatus);
        }

        //Mostramos en el dialogo las bajadas y subidas de stats de ambos pokemons
        yield return(ShowStatusChanges(source));

        yield return(ShowStatusChanges(target));
    }
Ejemplo n.º 4
0
    IEnumerator RunMoveEffects(Move move, Pokemon source, Pokemon target)
    {
        var effects = move.Base.Effects;

        if (effects.Boosts != null)
        {
            if (move.Base.Target == MoveTarget.Self)
            {
                source.ApplyBoosts(move.Base.Effects.Boosts);
            }
            else
            {
                target.ApplyBoosts(move.Base.Effects.Boosts);
            }
        }

        yield return(ShowStatusChanges(source));

        yield return(ShowStatusChanges(target));
    }
Ejemplo n.º 5
0
    IEnumerator RunMoveEffects(Move move, Pokemon source, Pokemon target)
    {
        var effects = move.Base.Effects;

        if (effects.Boosts != null)
        {
            if (move.Base.Target == MoveTarget.Self)
            {
                source.ApplyBoosts(effects.Boosts);
            }
            else
            {
                target.ApplyBoosts(effects.Boosts);
            }
        }
        if (effects.Status != ConditionID.none)
        {
            //move causes a status condition
            target.SetStatus(effects.Status);
        }
        yield return(ShowStatusChanges(source));

        yield return(ShowStatusChanges(target));
    }