void ItemEquipable::load(vector<unsigned char>* data, int* position) { Item::load(data, position); minimumAbilities.load(data, position); int size = Utility::loadInt(data, position); for (int i = 0; i < size; i++) { enchantments.push_back(Enchantment(data, position)); } }
void ItemWeapon::load(vector<unsigned char>* data, int* position) { ItemEquipable::load(data, position); baseDamage = Utility::loadDouble(data, position); damageType = (DamageType)Utility::loadInt(data, position); useDelay = Utility::loadDouble(data, position); int size = Utility::loadInt(data, position); for (int i = 0; i < size; i++) { //int eId = Utility::loadInt(data, position); //int chance = Utility::loadInt(data, position); //int power = Utility::loadInt(data, position); enchantments.push_back(Enchantment(data, position)); } }
Enchantment EnchantmentDesc::generate(id_t equipment_id, Generated const& gen) const { RNG rng = noise_coord(math::vec<2,noise_coord_t>({equipment_id,gen.gen_id()})); QDValue qd; Attributes base(m_attributes.base); for(unsigned i = rlrpgenumcount(Attr); i--;) base.flat[i] += rng.roll_dice(m_attributes.range.flat[i] +1); for(unsigned i = rlrpgenumcount(Attr); i--;) base.relative[i] += rng.roll_dice(m_attributes.range.relative[i] +1); return Enchantment( gen, qd, equipment_id, m_id, base); }