PlayerCombatStats modified skills
This commit is contained in:
@@ -569,4 +569,40 @@ public class PlayerCombatStats {
|
|||||||
|
|
||||||
this.defense = Math.round(defense);
|
this.defense = Math.round(defense);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static float calculateModifiedSkill(String skillName, PlayerCharacter pc, int baseSkill) {
|
||||||
|
// Define the contribution percentages for intelligence and strength
|
||||||
|
CharacterSkill skill = null;
|
||||||
|
if (pc.skills.containsKey(skillName)) {
|
||||||
|
skill = pc.skills.get(skillName);
|
||||||
|
}
|
||||||
|
|
||||||
|
SkillsBase skillBase = skill.getSkillsBase();
|
||||||
|
if(skillBase == null)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
float strMod = skillBase.getStrMod();
|
||||||
|
float dexMod = skillBase.getDexMod();
|
||||||
|
float conMod = skillBase.getConMod();
|
||||||
|
float intMod = skillBase.getIntMod();
|
||||||
|
float spiMod = skillBase.getSpiMod();
|
||||||
|
float totalMod = strMod + dexMod + conMod + intMod + spiMod;
|
||||||
|
// Calculate percentage contribution for each modifier
|
||||||
|
float strModPercentage = (strMod / totalMod);
|
||||||
|
float dexModPercentage = (dexMod / totalMod);
|
||||||
|
float conModPercentage = (conMod / totalMod);
|
||||||
|
float intModPercentage = (intMod / totalMod);
|
||||||
|
float spiModPercentage = (spiMod / totalMod);
|
||||||
|
//calculate stat weight
|
||||||
|
float weight = 0;
|
||||||
|
weight += pc.statStrCurrent * strModPercentage;
|
||||||
|
weight += pc.statDexCurrent * dexModPercentage;
|
||||||
|
weight += pc.statConCurrent * conModPercentage;
|
||||||
|
weight += pc.statIntCurrent * intModPercentage;
|
||||||
|
weight += pc.statSpiCurrent * spiModPercentage;
|
||||||
|
|
||||||
|
float modifiedSkill = (75 + 3*pc.statIntCurrent + 2 * weight) / 20;
|
||||||
|
|
||||||
|
return modifiedSkill;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user