void CreatureImplementation::setPetLevel(int newLevel) {
	if (newLevel == 0)
		return;

	int oldLevel = level;

	CreatureObjectImplementation::setLevel(newLevel);

	if (getCreatureTemplate() == NULL) {
		return;
	}

	int baseLevel = getTemplateLevel();

	float minDmg = calculateAttackMinDamage(baseLevel);
	float maxDmg = calculateAttackMaxDamage(baseLevel);

	Reference<WeaponObject*> defaultWeapon = getSlottedObject("default_weapon").castTo<WeaponObject*>();

	float ratio = ((float)newLevel) / (float)baseLevel;
	minDmg *= ratio;
	maxDmg *= ratio;

	if (readyWeapon != NULL) {
		float mod = 1.f - 0.1f*float(readyWeapon->getArmorPiercing());

		readyWeapon->setMinDamage(minDmg * mod);
		readyWeapon->setMaxDamage(maxDmg * mod);
	}

	if (defaultWeapon != NULL) {
		defaultWeapon->setMinDamage(minDmg);
		defaultWeapon->setMaxDamage(maxDmg);
	}

	int ham = 0;

	for (int i = 0; i < 6; i++) {
		if (i % 3 == 0) {
			ham = (getBaseHAM(i) / oldLevel) * newLevel;
			setBaseHAM(i, ham);
		} else
			setBaseHAM(i, ham / 100);
	}

	for (int i = 0; i < 6; i++) {
		setHAM(i, baseHAM.get(i));
	}

	for (int i = 0; i < 6; i++) {
		setMaxHAM(i, baseHAM.get(i));
	}
}
bool DroidObjectImplementation::isAdvancedModel() {
	return getCreatureTemplate()->getObjectName().contains("advanced");
}