|
|
@ -16,11 +16,13 @@ import engine.Enum.SourceType; |
|
|
|
import engine.gameManager.ChatManager; |
|
|
|
import engine.gameManager.ChatManager; |
|
|
|
import engine.gameManager.DbManager; |
|
|
|
import engine.gameManager.DbManager; |
|
|
|
import engine.powers.EffectsBase; |
|
|
|
import engine.powers.EffectsBase; |
|
|
|
|
|
|
|
import engine.powers.effectmodifiers.ArmorPiercingEffectModifier; |
|
|
|
import engine.server.MBServerStatics; |
|
|
|
import engine.server.MBServerStatics; |
|
|
|
import org.pmw.tinylog.Logger; |
|
|
|
import org.pmw.tinylog.Logger; |
|
|
|
|
|
|
|
|
|
|
|
import java.sql.ResultSet; |
|
|
|
import java.sql.ResultSet; |
|
|
|
import java.sql.SQLException; |
|
|
|
import java.sql.SQLException; |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.HashSet; |
|
|
|
import java.util.HashSet; |
|
|
|
import java.util.Iterator; |
|
|
|
import java.util.Iterator; |
|
|
|
import java.util.concurrent.ConcurrentHashMap; |
|
|
|
import java.util.concurrent.ConcurrentHashMap; |
|
|
@ -305,13 +307,10 @@ public class Resists { |
|
|
|
public float getResistedDamage(AbstractCharacter source, AbstractCharacter target, DamageType type, float damage, int trains) { |
|
|
|
public float getResistedDamage(AbstractCharacter source, AbstractCharacter target, DamageType type, float damage, int trains) { |
|
|
|
//handle fortitudes
|
|
|
|
//handle fortitudes
|
|
|
|
damage = handleFortitude(target, type, damage); |
|
|
|
damage = handleFortitude(target, type, damage); |
|
|
|
|
|
|
|
//calculate armor piercing
|
|
|
|
|
|
|
|
float ap = source.getBonuses().getFloatPercentAll(ModType.ArmorPiercing,SourceType.None); |
|
|
|
|
|
|
|
float damageAfterResists = damage * (1 - (this.getResist(type, trains) * 0.01f) + ap); |
|
|
|
//check to see if any damage absorbers should cancel
|
|
|
|
//check to see if any damage absorbers should cancel
|
|
|
|
float apMod = 0; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(source.getCharItemManager().getEquipped(2) != null) { |
|
|
|
|
|
|
|
apMod = source.getCharItemManager().getEquipped(2).getArmorPiercing(); // need to get the item in players off-hand and check for armor piercing enchants
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
float damageAfterResists = damage * (1 - (this.getResist(type, trains) / 100) + apMod); |
|
|
|
|
|
|
|
if (target != null) { |
|
|
|
if (target != null) { |
|
|
|
//debug damage shields if any found
|
|
|
|
//debug damage shields if any found
|
|
|
|
if (source.getDebug(2) && source.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)) { |
|
|
|
if (source.getDebug(2) && source.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)) { |
|
|
|