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); } } } }