void PetDeedImplementation::updateCraftingValues(CraftingValues* values, bool firstUpdate) { ManagedReference<ManufactureSchematic*> manufact = values->getManufactureSchematic(); float clFactor = 0; for (int i = 0; i < manufact->getSlotCount(); ++i) { // Dna Component Slots Reference<IngredientSlot* > iSlot = manufact->getSlot(i); if (iSlot->isComponentSlot()) { ComponentSlot* cSlot = cast<ComponentSlot*>(iSlot.get()); ManagedReference<TangibleObject*> tano = cSlot->getPrototype(); ManagedReference<GeneticComponent*> component = cast<GeneticComponent*>( tano.get()); // Now we can suck in the values clFactor = component->getLevel(); quality = component->getQuality(); chanceHit = component->getHit(); attackSpeed = component->getSpeed(); damageMin = component->getMinDamage(); damageMax = component->getMaxDamage(); armor = component->getArmor(); kinResist = round(component->getKinetic()); energyResist = round(component->getEnergy()); blastResist = round(component->getBlast()); coldResist = round(component->getCold()); heatResist = round(component->getHeat()); elecResist = round(component->getElectrical()); acidResist = round(component->getAcid()); stunResist = round(component->getStun()); saberResist = round(component->getSaber()); health = component->getHealth(); action = component->getAction(); mind = component->getMind(); special1 = component->getSpecial1(); special2 = component->getSpecial2(); ranged = component->getRanged(); cleverness = component->getCleverness(); endurance = component->getEndurance(); fierceness = component->getFierceness(); power = component->getPower(); intelligence = component->getIntelligence(); courage = component->getCourage(); dependency = component->getDependency(); dexterity = component->getDexterity(); fortitude = component->getFortitude(); hardiness = component->getHardiness(); if (component->isSpecialResist(WeaponObject::KINETIC)) setSpecialResist(WeaponObject::KINETIC); if (component->isSpecialResist(WeaponObject::ELECTRICITY)) setSpecialResist(WeaponObject::ELECTRICITY); if (component->isSpecialResist(WeaponObject::ENERGY)) setSpecialResist(WeaponObject::ENERGY); if (component->isSpecialResist(WeaponObject::ACID)) setSpecialResist(WeaponObject::ACID); if (component->isSpecialResist(WeaponObject::BLAST)) setSpecialResist(WeaponObject::BLAST); if (component->isSpecialResist(WeaponObject::COLD)) setSpecialResist(WeaponObject::COLD); if (component->isSpecialResist(WeaponObject::HEAT)) setSpecialResist(WeaponObject::HEAT); if (component->isSpecialResist(WeaponObject::LIGHTSABER)) setSpecialResist(WeaponObject::LIGHTSABER); if (component->isSpecialResist(WeaponObject::STUN)) setSpecialResist(WeaponObject::STUN); level = Genetics::calculatePetLevel(component); } } CreatureTemplateManager* creatureTemplateManager = CreatureTemplateManager::instance(); ManagedReference<CreatureTemplate*> petTemplate = creatureTemplateManager->getTemplate( mobileTemplate.hashCode() ); if (petTemplate != NULL) { // get min CL from the template int skinFactor = petTemplate->getLevel(); if (level > 75) { level = 75; } if (level < skinFactor) { level = skinFactor; } } // setup attack map setupAttacks(); }