Exemplo n.º 1
0
        public void calculateEquipStats()
        {
            setToZero();
            sets     = new Dictionary <int, int>();
            fullSets = new Dictionary <int, int>();

            for (byte i = 0; i < 18; i++)
            {
                if (i != 8 && equipment.ContainsKey(i))
                {
                    ItemData item = ItemDataCache.Instance.getItemData(equipment[i].getItemID());
                    //EQUIPABLE ITEM
                    hp          += item.getLife();
                    mana        += item.getMana();
                    stamina     += item.getStamina();
                    minDmg      += item.getMinDMG();
                    maxDmg      += item.getMaxDMG();
                    atk         += Convert.ToInt16(item.getOffPower() + item.getMinDMG());
                    deff        += item.getDefPower();
                    atkSucMul   += item.getAtkSCS();
                    defSucMul   += item.getDefSCS();
                    critRateMul += item.getCritChance();
                    short[] itstatbonuses = new short[] { item.getStr(), item.getInte(), item.getVit(), item.getAgi(), item.getDex() };
                    for (int j = 0; j < 5; j++)
                    {
                        stats[j] += itstatbonuses[j];
                    }

                    //EQUIPABLE SET ITEM
                    int setHash = item.getEffectID();
                    if (sets.ContainsKey(setHash))
                    {
                        sets[setHash] = sets[setHash] + 1;
                        //full set
                        if (sets[setHash] == item.getSetPieces())
                        {
                            fullSets.Add(setHash, 1);
                            for (byte k = 0; k < 18; k++)
                            {
                                if (i != 8 && equipment.ContainsKey(k))
                                {
                                    ItemData tmp = ItemDataCache.Instance.getItemData(equipment[k].getItemID());
                                    if (tmp.getEffectID() == setHash)
                                    {
                                        hp   += tmp.getBonusLife();
                                        mana += tmp.getBonusMana();
                                        // somebody once said.. stamina doesn't exist in set bonuses, topk3k
                                        atk         += tmp.getBonusOffPower();
                                        deff        += tmp.getBonusDefPower();
                                        atkSucMul   += tmp.getBonusAtkSCS();
                                        defSucMul   += tmp.getBonusDefSCS();
                                        critRateMul += tmp.getBonusCritChance();
                                        short[] itstatbonuses2 = new short[] { item.getBonusStr(), item.getBonusInt(), item.getBonusVit(), item.getBonusAgi(), item.getBonusDex() };
                                        for (int j = 0; j < 5; j++)
                                        {
                                            stats[j] += itstatbonuses2[j];
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        sets.Add(setHash, 1);
                    }
                }
            }
        }