Example #1
0
 public void AddComponentColorTo(EffectStruct effect)
 {
     ColorTo colorto = this.gameObject.AddComponent<ColorTo>();
     colorto.time = this.time;
     colorto.color = this.color;
     colorto.looptype = this.looptype;
 }
    //Play the effectStruct
    public bool ReadEffect(EffectStruct effectStruct, Belligerent owner)
    {
        //Determine the value
        int _finalValue = 0;

        if (effectStruct.parameters.Length > 0)
        {
            int _intermediateValue = 0;
            for (int i = 0; i < effectStruct.parameters.Length; i++)
            {
                _intermediateValue = ParameterValue(effectStruct, i, owner);
                _finalValue        = CombineValues(effectStruct.parameters[i].combinaisonType, _finalValue, _intermediateValue);
            }
        }
        //Determine the target
        List <Belligerent> targets = new List <Belligerent>();

        if (effectStruct.target == Effects.Target.Both)
        {
            targets.Add(belligerents[0]);
            targets.Add(belligerents[1]);
        }
        else
        {
            targets.Add(BelligerentDetermination(effectStruct.target, owner));
        }

        //Play the effect
        switch (effectStruct.effect)
        {
        case Effects.Effect.AddPower:
            for (int i = 0; i < targets.Count; i++)
            {
                targets[i].AddPower(_finalValue, true);
            }
            break;

        case Effects.Effect.DealDamage:
            for (int i = 0; i < targets.Count; i++)
            {
                targets[i].life -= _finalValue;
            }
            break;

        case Effects.Effect.Draw:
            for (int i = 0; i < targets.Count; i++)
            {
                for (int j = 0; j < _finalValue; j++)
                {
                    targets[i].DrawCard(false);
                }
            }
            break;

        case Effects.Effect.Heal:
            for (int i = 0; i < targets.Count; i++)
            {
                targets[i].life += _finalValue;
            }
            break;

        case Effects.Effect.SetHp:
            for (int i = 0; i < targets.Count; i++)
            {
                targets[i].life = _finalValue;
            }
            break;

        case Effects.Effect.SetPower:
            for (int i = 0; i < targets.Count; i++)
            {
                targets[i].power = _finalValue;
            }
            break;
        }
        return(true);
    }