void WeaponObjectImplementation::loadTemplateData(SharedObjectTemplate* templateData) { TangibleObjectImplementation::loadTemplateData(templateData); weaponTemplate = dynamic_cast<SharedWeaponObjectTemplate*>(templateData); certified = false; attackType = weaponTemplate->getAttackType(); weaponEffect = weaponTemplate->getWeaponEffect(); weaponEffectIndex = weaponTemplate->getWeaponEffectIndex(); damageType = weaponTemplate->getDamageType(); armorPiercing = weaponTemplate->getArmorPiercing(); healthAttackCost = weaponTemplate->getHealthAttackCost(); actionAttackCost = weaponTemplate->getActionAttackCost(); mindAttackCost = weaponTemplate->getMindAttackCost(); forceCost = weaponTemplate->getForceCost(); pointBlankAccuracy = weaponTemplate->getPointBlankAccuracy(); pointBlankRange = weaponTemplate->getPointBlankRange(); idealRange = weaponTemplate->getIdealRange(); idealAccuracy = weaponTemplate->getIdealAccuracy(); int templateMaxRange = weaponTemplate->getMaxRange(); if (templateMaxRange > 5 ) maxRange = templateMaxRange; maxRangeAccuracy = weaponTemplate->getMaxRangeAccuracy(); minDamage = weaponTemplate->getMinDamage(); maxDamage = weaponTemplate->getMaxDamage(); woundsRatio = weaponTemplate->getWoundsRatio(); damageRadius = weaponTemplate->getArea(); float templateAttackSpeed = weaponTemplate->getAttackSpeed(); if (templateAttackSpeed > 1) attackSpeed = templateAttackSpeed; if (!isJediWeapon()) { setSliceable(true); } else if (isJediWeapon()) { setSliceable(false); } }
void ContainerImplementation::notifyLoadFromDatabase() { TangibleObjectImplementation::notifyLoadFromDatabase(); if(getGameObjectType() == SceneObjectType::STATICLOOTCONTAINER) { if(System::random(100) < getLockChance()) { setLockedStatus(true); setSliceable(true); setSliced(false); } else { setLockedStatus(false); setSliceable(false); setSliced(false); } } }