Handled weapon without weapon data when calculating crit modifier

This commit is contained in:
Cekis
2018-03-23 15:56:25 -07:00
committed by CekisSWG
parent 7a640d9c5c
commit f52cbff7b4
@@ -3329,54 +3329,55 @@ public class combat extends script.base_script
dr_critMod += ((float)getEnhancedSkillStatisticModifierUncapped(attacker, "combat_critical_melee") / 10.0f);
critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_melee");
}
switch (weaponData.weaponType)
{
case WEAPON_TYPE_PISTOL:
dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_pistol");
critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_pistol");
break;
case WEAPON_TYPE_RIFLE:
dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_rifle");
critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_rifle");
break;
case WEAPON_TYPE_LIGHT_RIFLE:
dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_carbine");
critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_carbine");
break;
case WEAPON_TYPE_HEAVY:
dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_heavy");
critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_heavy");
break;
case WEAPON_TYPE_GROUND_TARGETTING:
dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_heavy");
critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_heavy");
break;
case WEAPON_TYPE_DIRECTIONAL:
dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_heavy");
critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_heavy");
break;
case WEAPON_TYPE_1HAND_MELEE:
dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_1h");
critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_1h");
break;
case WEAPON_TYPE_2HAND_MELEE:
dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_2h");
critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_2h");
break;
case WEAPON_TYPE_UNARMED:
dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_unarmed");
critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_unarmed");
break;
case WEAPON_TYPE_POLEARM:
dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_polearm");
critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_polearm");
break;
case WEAPON_TYPE_WT_1HAND_LIGHTSABER:
case WEAPON_TYPE_WT_2HAND_LIGHTSABER:
case WEAPON_TYPE_WT_POLEARM_LIGHTSABER:
dr_critMod2 += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_lightsaber");
critMod += (float)getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_lightsaber");
break;
if(weaponData != null) {
switch (weaponData.weaponType) {
case WEAPON_TYPE_PISTOL:
dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_pistol");
critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_pistol");
break;
case WEAPON_TYPE_RIFLE:
dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_rifle");
critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_rifle");
break;
case WEAPON_TYPE_LIGHT_RIFLE:
dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_carbine");
critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_carbine");
break;
case WEAPON_TYPE_HEAVY:
dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_heavy");
critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_heavy");
break;
case WEAPON_TYPE_GROUND_TARGETTING:
dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_heavy");
critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_heavy");
break;
case WEAPON_TYPE_DIRECTIONAL:
dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_heavy");
critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_heavy");
break;
case WEAPON_TYPE_1HAND_MELEE:
dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_1h");
critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_1h");
break;
case WEAPON_TYPE_2HAND_MELEE:
dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_2h");
critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_2h");
break;
case WEAPON_TYPE_UNARMED:
dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_unarmed");
critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_unarmed");
break;
case WEAPON_TYPE_POLEARM:
dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_polearm");
critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_polearm");
break;
case WEAPON_TYPE_WT_1HAND_LIGHTSABER:
case WEAPON_TYPE_WT_2HAND_LIGHTSABER:
case WEAPON_TYPE_WT_POLEARM_LIGHTSABER:
dr_critMod2 += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_critical_lightsaber");
critMod += (float) getEnhancedSkillStatisticModifierUncapped(attacker, "expertise_undiminished_critical_lightsaber");
break;
}
}
dr_critMod = getDiminishedReturnValue(dr_critMod, DR_ATTACKER_CRITICAL);
dr_critMod2 = getDiminishedReturnValue(dr_critMod2, DR_ATTACKER_CRITICAL_2);