Esempio n. 1
0
    void applyEffect(StatusEffect effect, bool toPlayer)
    {
        effect = Instantiate(effect);
        if (toPlayer)
        {
            pEffects.Add(effect);
            print("TURNS HK!!: " + effect.turns.ToString());
            pCritMod    += effect.crit;
            pBTHMod     += effect.bth;
            pDefenseMod += effect.defense;
            pBoost      *= effect.boost;

            for (int i = 0; i < effect.resistances.Count; i++)
            {
                for (int j = 0; j < pResistancesMod.Count; j++)
                {
                    if (pResistancesMod[j].name == effect.resistances[i].name)
                    {
                        Armour.Resistance res = new Armour.Resistance(pResistancesMod[j].name, pResistancesMod[j].value + effect.resistances[i].value);
                        pResistancesMod[j] = res;
                    }
                }
            }
        }
        else
        {
            eEffects.Add(effect);
            eCritMod    += effect.crit;
            eBTHMod     += effect.bth;
            eDefenseMod += effect.defense;
            eBoost      *= effect.boost;

            for (int i = 0; i < effect.resistances.Count; i++)
            {
                for (int j = 0; j < eResistancesMod.Count; j++)
                {
                    if (eResistancesMod[j].name == effect.resistances[i].name)
                    {
                        Armour.Resistance res = new Armour.Resistance(eResistancesMod[j].name, eResistancesMod[j].value + effect.resistances[i].value);
                        eResistancesMod[j] = res;
                    }
                }
            }
        }
        player.GetComponent <InventoryManager>().pEffects = pEffects;
        player.GetComponent <InventoryManager>().eEffects = eEffects;
    }
Esempio n. 2
0
    List <Armour.Resistance> addResistances(List <Armour.Resistance> a, List <Armour.Resistance> b)
    {
        List <Armour.Resistance> n = new List <Armour.Resistance>();

        for (int i = 0; i < a.Count; i++)
        {
            for (int j = 0; j < b.Count; j++)
            {
                if (a[j].name == b[i].name)
                {
                    Armour.Resistance res = new Armour.Resistance(a[j].name, a[j].value + b[i].value);
                    n.Add(res);
                }
            }
        }
        return(n);
    }
Esempio n. 3
0
    void Start()
    {
        animator = GetComponent <Animator>();

        for (int i = 0; i < resistances.Count; i++)
        {
            Armour.Resistance res    = resistances[i];
            Armour.Resistance newres = new Armour.Resistance();
            newres.name = res.name;
            for (int j = 0; j < currentWeapon.resistances.Count; j++)
            {
                Armour.Resistance resadd = currentWeapon.resistances[j];
                if (resadd.name == res.name)
                {
                    newres.value = resadd.value + res.value;
                }
            }
            resistances[i] = newres;
        }


        for (int i = 0; i < stats.Count; i++)
        {
            Armour.Stat stat    = stats[i];
            Armour.Stat newstat = new Armour.Stat();
            newstat.name = stat.name;
            for (int j = 0; j < currentWeapon.stats.Count; j++)
            {
                Armour.Stat statadd = currentWeapon.stats[j];
                if (statadd.name == stat.name)
                {
                    newstat.value = statadd.value + stat.value;
                }
            }
            stats[i] = newstat;
        }
    }
Esempio n. 4
0
    void updateEffects()
    {
        List <Attack>       pDots = new List <Attack>();
        List <Attack>       eDots = new List <Attack>();
        List <StatusEffect> pEffs = new List <StatusEffect>();
        List <StatusEffect> eEffs = new List <StatusEffect>();

        for (int i = 0; i < pEffects.Count; i++)
        {
            StatusEffect effect = pEffects[i];

            effect.turns = effect.turns - 1;
            pEffects[i]  = effect;

            if (effect.dot != null)
            {
                pDots.Add(effect.dot);
                pEffects.Add(effect);
            }

            print("TURNS OK!!: " + effect.turns.ToString());
            if (effect.turns == 0)
            {
                pEffects.Remove(effect);
                pCritMod    -= effect.crit;
                pBTHMod     -= effect.bth;
                pDefenseMod -= effect.defense;
                pBoost      /= effect.boost;

                for (int j = 0; j < effect.resistances.Count; j++)
                {
                    for (int k = 0; k < pResistancesMod.Count; k++)
                    {
                        if (pResistancesMod[k].name == effect.resistances[j].name)
                        {
                            Armour.Resistance res = new Armour.Resistance(pResistancesMod[k].name, pResistancesMod[k].value - effect.resistances[j].value);
                            pResistancesMod[k] = res;
                        }
                    }
                }
            }
        }

        for (int i = 0; i < eEffects.Count; i++)
        {
            StatusEffect effect = eEffects[i];

            effect.turns = effect.turns - 1;
            eEffects[i]  = effect;

            if (effect.dot != null)
            {
                eDots.Add(effect.dot);
                eEffs.Add(effect);
            }

            if (effect.turns == 0)
            {
                eEffects.Remove(effect);
                eCritMod    -= effect.crit;
                eBTHMod     -= effect.bth;
                eDefenseMod -= effect.defense;
                eBoost      /= effect.boost;

                for (int j = 0; j < effect.resistances.Count; j++)
                {
                    for (int k = 0; k < eResistancesMod.Count; k++)
                    {
                        if (eResistancesMod[k].name == effect.resistances[j].name)
                        {
                            Armour.Resistance res = new Armour.Resistance(eResistancesMod[k].name, eResistancesMod[k].value - effect.resistances[j].value);
                            eResistancesMod[k] = res;
                        }
                    }
                }
            }
        }
        player.GetComponent <InventoryManager>().pEffects = pEffects;
        player.GetComponent <InventoryManager>().eEffects = eEffects;

        StartCoroutine(hitDots(0.25f, pDots, eDots, pEffs, eEffs));
    }