getSkillModValue() converts to percent if checked

This commit is contained in:
Treeku
2014-06-16 10:36:24 +01:00
parent 7de8e6d35c
commit d706c5a418
3 changed files with 17 additions and 6 deletions
@@ -666,7 +666,7 @@ public class CreatureObject extends TangibleObject implements Serializable {
public int getSkillModBase(String name) {
SkillMod skillMod = getSkillMod(name);
return ((skillMod == null) ? 0 : skillMod.getBase());
return ((skillMod == null) ? 0 : skillMod.getBase() + skillMod.getModifier());
}
public int getSkillModModifier(String name) {
@@ -674,9 +674,9 @@ public class CreatureObject extends TangibleObject implements Serializable {
return ((skillMod == null) ? 0 : skillMod.getModifier());
}
public float getSkillModValue(String name, int divisor) {
public float getSkillModValue(String name, int divisor, boolean percent) {
SkillMod skillMod = getSkillMod(name);
return ((skillMod == null) ? 0.0f : skillMod.getValue(divisor));
return ((skillMod == null) ? 0.0f : skillMod.getValue(divisor, percent));
}
public float getSpeedMultiplierBase() {
+2 -2
View File
@@ -91,9 +91,9 @@ public class SkillMod extends Delta implements Serializable {
}
}
public float getValue(int divisor) {
public float getValue(int divisor, boolean percent) {
synchronized(objectMutex) {
return ((divisor < 1) ? ((float) base) : ((float) base / (float) divisor));
return (((divisor < 1) ? ((float) (base + modifier)) : ((float) (base + modifier) / (float) divisor)) * ((percent) ? 100f : 1f));
}
}
+12 -1
View File
@@ -26,6 +26,7 @@ import java.util.Map;
import resources.common.FileUtilities;
import resources.objects.creature.CreatureObject;
import resources.objects.player.PlayerObject;
import resources.skills.SkillMod;
import main.NGECore;
import engine.clientdata.ClientFileManager;
@@ -106,7 +107,9 @@ public class SkillModService implements INetworkDispatch {
public float getSkillModValue(CreatureObject creature, String name) {
int divisor = (skillModMap.get(name) == null) ? 0 : (Integer) visitor.getObject(skillModMap.get(name), 5);
return creature.getSkillModValue(name, divisor);
boolean percent = (skillModMap.get(name) == null) ? false : (Boolean) visitor.getObject(skillModMap.get(name), 6);
String profession = (skillModMap.get(name) == null || creature.getSlottedObject("ghost") == null) ? null : (String) visitor.getObject(skillModMap.get(name), 1);
return ((profession == null || !profession.equals(((PlayerObject) creature.getSlottedObject("ghost")).getProfession())) ? 0.0f : creature.getSkillModValue(name, divisor, percent));
}
public void deductSkillMod(CreatureObject creature, String name, SkillMod skillMod) {
@@ -146,6 +149,14 @@ public class SkillModService implements INetworkDispatch {
creature.getSkillMods().remove(name);
}
public DatatableVisitor getVisitor() {
return visitor;
}
public Map<String, Integer> getSkillModMap() {
return skillModMap;
}
@Override
public void insertOpcodes(Map<Integer, INetworkRemoteEvent> arg0, Map<Integer, INetworkRemoteEvent> arg1) {