internal static EquipmentAbstract CreateEquip(int wearflags, int specials, int level, int quality, string name) { int difficulty = StateHandler.Difficulty; EquipmentAbstract eqTemp = new EquipmentAbstract(); eqTemp.Wearflags = wearflags; int basePoints = (int)((float)(level * 5) * (((float)(difficulty + 1)) * 0.25)); basePoints += level * 5; basePoints *= (int)(((float)quality + 1) * 0.25); int fields = 0; if (Globals.IS_SET(wearflags, Globals.WEARFLAG_WEAPON)) { fields += 6; basePoints += basePoints / 2; } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_CHEST)) { fields += 3; basePoints += basePoints / 3; } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_HEAD)) { fields += 2; basePoints += basePoints / 4; } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_LEGS)) { fields += 2; basePoints += basePoints / 4; } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_FEET)) { fields += 2; basePoints += basePoints / 5; } if (Globals.IS_SET(specials, Globals.ELEMENT_FIRE)) { fields += 2; } if (Globals.IS_SET(specials, Globals.ELEMENT_WATER)) { fields += 2; } if (Globals.IS_SET(specials, Globals.ELEMENT_NATURE)) { fields += 2; } if (fields == 0) { specials = Globals.ELEMENT_PHYSICAL; } if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL)) { fields += 5; } basePoints /= fields; if (basePoints < 1) { basePoints = 1; } if (Globals.IS_SET(specials, Globals.ELEMENT_FIRE)) { eqTemp.Hpmod += basePoints * 5; eqTemp.Attackmod += basePoints; } if (Globals.IS_SET(specials, Globals.ELEMENT_WATER)) { eqTemp.Magicmod += basePoints; eqTemp.Magicdefensemod += basePoints; } if (Globals.IS_SET(specials, Globals.ELEMENT_NATURE)) { eqTemp.Defensemod += basePoints; eqTemp.Magicdefensemod += basePoints; } if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL)) { eqTemp.Hpmod += basePoints * 5; eqTemp.Attackmod += basePoints; eqTemp.Defensemod += basePoints; eqTemp.Magicmod += basePoints; eqTemp.Magicdefensemod += basePoints; } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_WEAPON)) { if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL)) { eqTemp.Attackmod += basePoints * 6; } else if (Globals.IS_SET(specials, Globals.ELEMENT_WATER)) { eqTemp.Magicmod += basePoints * 6; } else { eqTemp.Attackmod += basePoints * 3; eqTemp.Magicmod += basePoints * 3; } } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_CHEST)) { eqTemp.Defensemod += basePoints * 2; eqTemp.Magicdefensemod += basePoints; } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_HEAD)) { eqTemp.Magicdefensemod += basePoints; eqTemp.Magicmod += basePoints; } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_LEGS)) { eqTemp.Defensemod += basePoints; eqTemp.Hpmod += basePoints * 5; } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_FEET)) { eqTemp.Hpmod += basePoints * 5; eqTemp.Magicdefensemod += basePoints; } if (name != null && name.Length > 2) { eqTemp.Name = name; } else { if (Globals.IS_SET(wearflags, Globals.WEARFLAG_WEAPON)) { if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL)) { eqTemp.Name = "Sword"; } else if (Globals.IS_SET(specials, Globals.ELEMENT_WATER)) { eqTemp.Name = "Staff"; } else { eqTemp.Name = "Bow"; } } else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_CHEST + Globals.WEARFLAG_FEET + Globals.WEARFLAG_HEAD + Globals.WEARFLAG_LEGS)) { eqTemp.Name = "Full Platemail"; } else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_LEGS + Globals.WEARFLAG_FEET)) { eqTemp.Name = "Greaves"; } else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_CHEST)) { eqTemp.Name = "Chainmail"; } else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_HEAD)) { eqTemp.Name = "Helmet"; } else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_LEGS)) { eqTemp.Name = "Legguards"; } else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_FEET)) { eqTemp.Name = "Boots"; } else { eqTemp.Name = "Ring"; } if (Globals.IS_SET(specials, Globals.ELEMENT_WATER + Globals.ELEMENT_FIRE + Globals.ELEMENT_WATER + Globals.ELEMENT_PHYSICAL)) { eqTemp.Name = "Planar " + eqTemp.Name; } else if (Globals.IS_SET(specials, Globals.ELEMENT_FIRE + Globals.ELEMENT_NATURE + Globals.ELEMENT_FIRE)) { eqTemp.Name = "Elemental " + eqTemp.Name; } else if (Globals.IS_SET(specials, Globals.ELEMENT_FIRE)) { eqTemp.Name = "Fiery " + eqTemp.Name; } else if (Globals.IS_SET(specials, Globals.ELEMENT_WATER)) { eqTemp.Name = "Watery " + eqTemp.Name; } else if (Globals.IS_SET(specials, Globals.ELEMENT_NATURE)) { eqTemp.Name = "Wild " + eqTemp.Name; } else if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL)) { eqTemp.Name = "Steel " + eqTemp.Name; } else { eqTemp.Name = "Indifferent " + eqTemp.Name; } } return(eqTemp); }
internal static EquipmentAbstract CreateEquip(int wearflags, int specials, int level, int quality, string name) { int difficulty = StateHandler.Difficulty; EquipmentAbstract eqTemp = new EquipmentAbstract(); eqTemp.Wearflags = wearflags; int basePoints = (int)((float)(level*5) * (((float)(difficulty + 1)) * 0.25)); basePoints += level * 5; basePoints *= (int)(((float)quality + 1) * 0.25); int fields = 0; if (Globals.IS_SET(wearflags, Globals.WEARFLAG_WEAPON)) { fields += 6; basePoints += basePoints / 2; } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_CHEST)) { fields += 3; basePoints += basePoints / 3; } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_HEAD)) { fields += 2; basePoints += basePoints / 4; } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_LEGS)) { fields += 2; basePoints += basePoints / 4; } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_FEET)) { fields += 2; basePoints += basePoints / 5; } if (Globals.IS_SET(specials, Globals.ELEMENT_FIRE)) fields += 2; if (Globals.IS_SET(specials, Globals.ELEMENT_WATER)) fields += 2; if (Globals.IS_SET(specials, Globals.ELEMENT_NATURE)) fields += 2; if (fields == 0) specials = Globals.ELEMENT_PHYSICAL; if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL)) fields += 5; basePoints /= fields; if (basePoints < 1) basePoints = 1; if (Globals.IS_SET(specials, Globals.ELEMENT_FIRE)) { eqTemp.Hpmod += basePoints*5; eqTemp.Attackmod += basePoints; } if (Globals.IS_SET(specials, Globals.ELEMENT_WATER)) { eqTemp.Magicmod += basePoints; eqTemp.Magicdefensemod += basePoints; } if (Globals.IS_SET(specials, Globals.ELEMENT_NATURE)) { eqTemp.Defensemod += basePoints; eqTemp.Magicdefensemod += basePoints; } if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL)) { eqTemp.Hpmod += basePoints*5; eqTemp.Attackmod += basePoints; eqTemp.Defensemod += basePoints; eqTemp.Magicmod += basePoints; eqTemp.Magicdefensemod += basePoints; } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_WEAPON)) { if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL)) eqTemp.Attackmod += basePoints * 6; else if (Globals.IS_SET(specials, Globals.ELEMENT_WATER)) eqTemp.Magicmod += basePoints * 6; else { eqTemp.Attackmod += basePoints * 3; eqTemp.Magicmod += basePoints * 3; } } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_CHEST)) { eqTemp.Defensemod += basePoints * 2; eqTemp.Magicdefensemod += basePoints; } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_HEAD)) { eqTemp.Magicdefensemod += basePoints; eqTemp.Magicmod += basePoints; } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_LEGS)) { eqTemp.Defensemod += basePoints; eqTemp.Hpmod += basePoints*5; } if (Globals.IS_SET(wearflags, Globals.WEARFLAG_FEET)) { eqTemp.Hpmod += basePoints*5; eqTemp.Magicdefensemod += basePoints; } if (name != null && name.Length > 2) eqTemp.Name = name; else { if (Globals.IS_SET(wearflags, Globals.WEARFLAG_WEAPON)) { if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL)) eqTemp.Name = "Sword"; else if (Globals.IS_SET(specials, Globals.ELEMENT_WATER)) eqTemp.Name = "Staff"; else eqTemp.Name = "Bow"; } else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_CHEST + Globals.WEARFLAG_FEET + Globals.WEARFLAG_HEAD + Globals.WEARFLAG_LEGS)) eqTemp.Name = "Full Platemail"; else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_LEGS + Globals.WEARFLAG_FEET)) eqTemp.Name = "Greaves"; else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_CHEST)) eqTemp.Name = "Chainmail"; else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_HEAD)) eqTemp.Name = "Helmet"; else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_LEGS)) eqTemp.Name = "Legguards"; else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_FEET)) eqTemp.Name = "Boots"; else eqTemp.Name = "Ring"; if (Globals.IS_SET(specials, Globals.ELEMENT_WATER + Globals.ELEMENT_FIRE + Globals.ELEMENT_WATER + Globals.ELEMENT_PHYSICAL)) eqTemp.Name = "Planar " + eqTemp.Name; else if (Globals.IS_SET(specials, Globals.ELEMENT_FIRE + Globals.ELEMENT_NATURE + Globals.ELEMENT_FIRE)) eqTemp.Name = "Elemental " + eqTemp.Name; else if (Globals.IS_SET(specials, Globals.ELEMENT_FIRE)) eqTemp.Name = "Fiery " + eqTemp.Name; else if (Globals.IS_SET(specials, Globals.ELEMENT_WATER)) eqTemp.Name = "Watery " + eqTemp.Name; else if (Globals.IS_SET(specials, Globals.ELEMENT_NATURE)) eqTemp.Name = "Wild " + eqTemp.Name; else if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL)) eqTemp.Name = "Steel " + eqTemp.Name; else eqTemp.Name = "Indifferent " + eqTemp.Name; } return eqTemp; }