diff --git a/src/engine/gameManager/CombatManager.java b/src/engine/gameManager/CombatManager.java index 3d3c5f81..cbdcd5d5 100644 --- a/src/engine/gameManager/CombatManager.java +++ b/src/engine/gameManager/CombatManager.java @@ -505,8 +505,8 @@ public enum CombatManager { if (weapon != null && weapon.getBonusPercent(ModType.WeaponSpeed, SourceType.None) != 0f) //add weapon speed bonus wepSpeed *= (1 + weapon.getBonus(ModType.WeaponSpeed, SourceType.None)); - if (abstractCharacter.getBonuses() != null && abstractCharacter.getBonuses().getFloatPercentAll(ModType.AttackDelay, SourceType.None, null) != 0f) //add effects speed bonus - wepSpeed *= (1 + abstractCharacter.getBonuses().getFloatPercentAll(ModType.AttackDelay, SourceType.None, null)); + if (abstractCharacter.getBonuses() != null && abstractCharacter.getBonuses().getFloatPercentAll(ModType.AttackDelay, SourceType.None) != 0f) //add effects speed bonus + wepSpeed *= (1 + abstractCharacter.getBonuses().getFloatPercentAll(ModType.AttackDelay, SourceType.None)); if (wepSpeed < 10) wepSpeed = 10; //Old was 10, but it can be reached lower with legit buffs,effects. @@ -599,9 +599,9 @@ public enum CombatManager { //Dont think we need to do this anymore. if (tarIsRat) - if (ac.getBonuses().getFloatPercentAll(ModType.Slay, SourceType.Rat, null) != 0) { //strip away current % dmg buffs then add with rat % + if (ac.getBonuses().getFloatPercentAll(ModType.Slay, SourceType.Rat) != 0) { //strip away current % dmg buffs then add with rat % - float percent = 1 + ac.getBonuses().getFloatPercentAll(ModType.Slay, SourceType.Rat, null); + float percent = 1 + ac.getBonuses().getFloatPercentAll(ModType.Slay, SourceType.Rat); minDamage *= percent; maxDamage *= percent; @@ -1130,9 +1130,9 @@ public enum CombatManager { if (eff.getPower() != null && (eff.getPower().getToken() == 429506943 || eff.getPower().getToken() == 429408639 || eff.getPower().getToken() == 429513599 || eff.getPower().getToken() == 429415295)) swingAnimation = 0; - // if(source != null && source.getObjectType().equals(GameObjectType.PlayerCharacter)){ - // damage *= ((PlayerCharacter)source).ZergMultiplier; - //} // Health modifications are modified by the ZergMechanic + if(source != null && source.getObjectType().equals(GameObjectType.PlayerCharacter)){ + damage *= ((PlayerCharacter)source).ZergMultiplier; + } // Health modifications are modified by the ZergMechanic TargetedActionMsg cmm = new TargetedActionMsg(source, target, damage, swingAnimation); DispatchMessage.sendToAllInRange(target, cmm); @@ -1295,7 +1295,7 @@ public enum CombatManager { return 0f; if (bonus != null) - rangeMod += bonus.getFloatPercentAll(ModType.WeaponRange, SourceType.None, null); + rangeMod += bonus.getFloatPercentAll(ModType.WeaponRange, SourceType.None); return weapon.getRange() * rangeMod; } diff --git a/src/engine/gameManager/PowersManager.java b/src/engine/gameManager/PowersManager.java index 2ddd99ed..79b8674e 100644 --- a/src/engine/gameManager/PowersManager.java +++ b/src/engine/gameManager/PowersManager.java @@ -564,7 +564,7 @@ public enum PowersManager { cost = 0; if (bonus != null) - cost *= (1 + bonus.getFloatPercentAll(ModType.PowerCost, SourceType.None, null)); + cost *= (1 + bonus.getFloatPercentAll(ModType.PowerCost, SourceType.None)); if (playerCharacter.getAltitude() > 0) cost *= 1.5f; diff --git a/src/engine/mobileAI/MobAI.java b/src/engine/mobileAI/MobAI.java index 5e875c9d..d2d79c38 100644 --- a/src/engine/mobileAI/MobAI.java +++ b/src/engine/mobileAI/MobAI.java @@ -1437,7 +1437,7 @@ public class MobAI { if (mob.isSit() && mob.getTimeStamp("HEALTHRECOVERED") < System.currentTimeMillis() + 3000) if (mob.getHealth() < mob.getHealthMax()) { - float recoveredHealth = mob.getHealthMax() * ((1 + mob.getBonuses().getFloatPercentAll(Enum.ModType.HealthRecoverRate, Enum.SourceType.None, null)) * 0.01f); + float recoveredHealth = mob.getHealthMax() * ((1 + mob.getBonuses().getFloatPercentAll(Enum.ModType.HealthRecoverRate, Enum.SourceType.None)) * 0.01f); mob.setHealth(mob.getHealth() + recoveredHealth); mob.getTimestamps().put("HEALTHRECOVERED", System.currentTimeMillis()); diff --git a/src/engine/mobileAI/utilities/CombatUtilities.java b/src/engine/mobileAI/utilities/CombatUtilities.java index 69aa563a..8b8a7c38 100644 --- a/src/engine/mobileAI/utilities/CombatUtilities.java +++ b/src/engine/mobileAI/utilities/CombatUtilities.java @@ -151,7 +151,7 @@ public class CombatUtilities { int atr = agent.mobBase.getAtr(); if(agent.getBonuses() != null){ atr += agent.getBonuses().getFloat(ModType.OCV,SourceType.None); - atr *= 1 + agent.getBonuses().getFloatPercentAll(ModType.OCV,SourceType.None, null); + atr *= 1 + agent.getBonuses().getFloatPercentAll(ModType.OCV,SourceType.None); } switch (target.getObjectType()) { case PlayerCharacter: @@ -357,7 +357,7 @@ public class CombatUtilities { float damage; float min = 40; float max = 60; - float dmgMultiplier = 1 + agent.getBonuses().getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None, null); + float dmgMultiplier = 1 + agent.getBonuses().getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None); double minDmg = getMinDmg(agent); double maxDmg = getMaxDmg(agent); dmgMultiplier += agent.getLevel() * 0.1f; @@ -371,7 +371,7 @@ public class CombatUtilities { ItemBase weapon = agent.getEquip().get(1).getItemBase(); AbstractWorldObject target = agent.getCombatTarget(); - float dmgMultiplier = 1 + agent.getBonuses().getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None, null); + float dmgMultiplier = 1 + agent.getBonuses().getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None); double minDmg = weapon.getMinDamage(); double maxDmg = weapon.getMaxDamage(); @@ -395,7 +395,7 @@ public class CombatUtilities { //handle r8 mob damage DamageType dt = DamageType.Crush; AbstractWorldObject target = agent.getCombatTarget(); - float dmgMultiplier = 1 + agent.getBonuses().getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None, null); + float dmgMultiplier = 1 + agent.getBonuses().getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None); double min = agent.getMinDamageHandOne(); double max = agent.getMaxDamageHandOne(); if (agent.getEquip().get(1) != null) { diff --git a/src/engine/objects/AbstractIntelligenceAgent.java b/src/engine/objects/AbstractIntelligenceAgent.java index 0e501e9c..580a3094 100644 --- a/src/engine/objects/AbstractIntelligenceAgent.java +++ b/src/engine/objects/AbstractIntelligenceAgent.java @@ -134,7 +134,7 @@ public abstract class AbstractIntelligenceAgent extends AbstractCharacter { float ret = MobAIThread.AI_BASE_AGGRO_RANGE; if (this.bonuses != null) - ret *= (1 + this.bonuses.getFloatPercentAll(ModType.ScanRange, SourceType.None, null)); + ret *= (1 + this.bonuses.getFloatPercentAll(ModType.ScanRange, SourceType.None)); return ret; } diff --git a/src/engine/objects/CharacterSkill.java b/src/engine/objects/CharacterSkill.java index 6c48a4b1..7d90ee77 100644 --- a/src/engine/objects/CharacterSkill.java +++ b/src/engine/objects/CharacterSkill.java @@ -1127,7 +1127,7 @@ public class CharacterSkill extends AbstractGameObject { if (CharacterSkill.GetOwner(this).getBonuses() != null) { //Multiply any percent bonuses - modAmount *= (1 + CharacterSkill.GetOwner(this).getBonuses().getFloatPercentAll(ModType.Skill, sourceType, null)); + modAmount *= (1 + CharacterSkill.GetOwner(this).getBonuses().getFloatPercentAll(ModType.Skill, sourceType)); } this.modifiedAmount = (int) (modAmount); diff --git a/src/engine/objects/Mob.java b/src/engine/objects/Mob.java index 8f34c36d..f104420a 100644 --- a/src/engine/objects/Mob.java +++ b/src/engine/objects/Mob.java @@ -1177,11 +1177,11 @@ public class Mob extends AbstractIntelligenceAgent { // apply dex penalty for armor // modify percent amounts. DO THIS LAST! - strVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Strength, null)); - dexVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Dexterity, null)); - conVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Constitution, null)); - intVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Intelligence, null)); - spiVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Spirit, null)); + strVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Strength)); + dexVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Dexterity)); + conVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Constitution)); + intVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Intelligence)); + spiVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Spirit)); } else { // apply dex penalty for armor } @@ -1200,7 +1200,7 @@ public class Mob extends AbstractIntelligenceAgent { float bonus = 1; if (this.bonuses != null) // get rune and effect bonuses - bonus *= (1 + this.bonuses.getFloatPercentAll(ModType.Speed, SourceType.None, null)); + bonus *= (1 + this.bonuses.getFloatPercentAll(ModType.Speed, SourceType.None)); if (this.isPlayerGuard) switch (this.mobBase.getLoadID()) { @@ -1568,9 +1568,9 @@ public class Mob extends AbstractIntelligenceAgent { //apply effects percent modifiers. DO THIS LAST! - h *= (1 + this.bonuses.getFloatPercentAll(ModType.HealthFull, SourceType.None, null)); - m *= (1 + this.bonuses.getFloatPercentAll(ModType.ManaFull, SourceType.None, null)); - s *= (1 + this.bonuses.getFloatPercentAll(ModType.StaminaFull, SourceType.None, null)); + h *= (1 + this.bonuses.getFloatPercentAll(ModType.HealthFull, SourceType.None)); + m *= (1 + this.bonuses.getFloatPercentAll(ModType.ManaFull, SourceType.None)); + s *= (1 + this.bonuses.getFloatPercentAll(ModType.StaminaFull, SourceType.None)); } // Set max health, mana and stamina @@ -1853,9 +1853,9 @@ public class Mob extends AbstractIntelligenceAgent { int max = (int)this.mobBase.getDamageMax(); int atr = this.mobBase.getAtr(); if(this.bonuses != null){ - min *= 1 + this.bonuses.getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None, null); - max *= 1 + this.bonuses.getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None, null); - atr *= 1 + this.bonuses.getFloatPercentAll(ModType.OCV,SourceType.None, null); + min *= 1 + this.bonuses.getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None); + max *= 1 + this.bonuses.getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None); + atr *= 1 + this.bonuses.getFloatPercentAll(ModType.OCV,SourceType.None); atr += this.bonuses.getFloat(ModType.OCV,SourceType.None); } this.minDamageHandOne = min; @@ -1873,9 +1873,9 @@ public class Mob extends AbstractIntelligenceAgent { int max = (int)this.mobBase.getDamageMax(); int atr = this.mobBase.getAtr(); if(this.bonuses != null){ - min *= 1 + this.bonuses.getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None, null); - max *= 1 + this.bonuses.getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None, null); - atr *= 1 + this.bonuses.getFloatPercentAll(ModType.OCV,SourceType.None, null); + min *= 1 + this.bonuses.getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None); + max *= 1 + this.bonuses.getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None); + atr *= 1 + this.bonuses.getFloatPercentAll(ModType.OCV,SourceType.None); atr += this.bonuses.getFloat(ModType.OCV,SourceType.None); } this.minDamageHandTwo = min; diff --git a/src/engine/objects/PlayerBonuses.java b/src/engine/objects/PlayerBonuses.java index 4fb85eb7..509aba29 100644 --- a/src/engine/objects/PlayerBonuses.java +++ b/src/engine/objects/PlayerBonuses.java @@ -340,7 +340,7 @@ public class PlayerBonuses { return amount; } - public float getFloatPercentAll(ModType modType, SourceType sourceType, PlayerCharacter pc) { + public float getFloatPercentAll(ModType modType, SourceType sourceType) { float amount = 0; for (AbstractEffectModifier mod : this.bonusFloats.keySet()) { @@ -357,15 +357,6 @@ public class PlayerBonuses { amount += this.bonusFloats.get(mod); } - if(pc != null) { - if (modType.equals(ModType.PowerDamageModifier) || modType.equals(ModType.MeleeDamageModifier)) { - if(pc.ZergMultiplier == 0.0f){ - amount = -1.0f; - }else { - amount -= 1.0f - pc.ZergMultiplier; - } - } - } return amount; } diff --git a/src/engine/objects/PlayerCharacter.java b/src/engine/objects/PlayerCharacter.java index f57b624a..cebfe983 100644 --- a/src/engine/objects/PlayerCharacter.java +++ b/src/engine/objects/PlayerCharacter.java @@ -3717,11 +3717,11 @@ public class PlayerCharacter extends AbstractCharacter { dexVal *= this.dexPenalty; // modify percent amounts. DO THIS LAST! - strVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Strength, null)); - dexVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Dexterity, null)); - conVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Constitution, null)); - intVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Intelligence, null)); - spiVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Spirit, null)); + strVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Strength)); + dexVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Dexterity)); + conVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Constitution)); + intVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Intelligence)); + spiVal *= (1 + this.bonuses.getFloatPercentAll(ModType.Attr, SourceType.Spirit)); } else // apply dex penalty for armor @@ -4182,7 +4182,7 @@ public class PlayerCharacter extends AbstractCharacter { this.rangeHandTwo = weapon.getItemBase().getRange() * (1 + (this.statStrBase / 600)); if (this.bonuses != null) { - float range_bonus = 1 + this.bonuses.getFloatPercentAll(ModType.WeaponRange, SourceType.None, null); + float range_bonus = 1 + this.bonuses.getFloatPercentAll(ModType.WeaponRange, SourceType.None); if (mainHand) this.rangeHandOne *= range_bonus; @@ -4349,11 +4349,11 @@ public class PlayerCharacter extends AbstractCharacter { float percentMinDamage = 1; float percentMaxDamage = 1; - percentMinDamage += this.bonuses.getFloatPercentAll(ModType.MinDamage, SourceType.None, null); - percentMinDamage += this.bonuses.getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None, null); + percentMinDamage += this.bonuses.getFloatPercentAll(ModType.MinDamage, SourceType.None); + percentMinDamage += this.bonuses.getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None); - percentMaxDamage += this.bonuses.getFloatPercentAll(ModType.MaxDamage, SourceType.None, null); - percentMaxDamage += this.bonuses.getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None, null); + percentMaxDamage += this.bonuses.getFloatPercentAll(ModType.MaxDamage, SourceType.None); + percentMaxDamage += this.bonuses.getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None); minDamage *= percentMinDamage; maxDamage *= percentMaxDamage; @@ -4673,9 +4673,9 @@ public class PlayerCharacter extends AbstractCharacter { m += this.bonuses.getFloat(ModType.ManaFull, SourceType.None); s += this.bonuses.getFloat(ModType.StaminaFull, SourceType.None); - h *= (1 + this.bonuses.getFloatPercentAll(ModType.HealthFull, SourceType.None, null)); - m *= (1 + this.bonuses.getFloatPercentAll(ModType.ManaFull, SourceType.None, null)); - s *= (1 + this.bonuses.getFloatPercentAll(ModType.StaminaFull, SourceType.None, null)); + h *= (1 + this.bonuses.getFloatPercentAll(ModType.HealthFull, SourceType.None)); + m *= (1 + this.bonuses.getFloatPercentAll(ModType.ManaFull, SourceType.None)); + s *= (1 + this.bonuses.getFloatPercentAll(ModType.StaminaFull, SourceType.None)); } @@ -4757,7 +4757,7 @@ public class PlayerCharacter extends AbstractCharacter { divisr = 16; float blockChance = ((passiveSkill.getModifiedAmount() + blockBonusFromShield) / divisr); if(this.bonuses != null) - blockChance *= 1 + this.bonuses.getFloatPercentAll(ModType.Block, SourceType.None, null); + blockChance *= 1 + this.bonuses.getFloatPercentAll(ModType.Block, SourceType.None); return blockChance; case "Parry": if(!fromCombat) @@ -4781,7 +4781,7 @@ public class PlayerCharacter extends AbstractCharacter { float parryChance =((passiveSkill.getModifiedAmount() + parryBonus) / 4); if(this.bonuses != null) - parryChance *= 1 + this.bonuses.getFloatPercentAll(ModType.Parry, SourceType.None, null); + parryChance *= 1 + this.bonuses.getFloatPercentAll(ModType.Parry, SourceType.None); return parryChance; @@ -4797,7 +4797,7 @@ public class PlayerCharacter extends AbstractCharacter { float dodgeChance = ((passiveSkill.getModifiedAmount()) / divisor); if(this.bonuses != null) - dodgeChance *= 1 + this.bonuses.getFloatPercentAll(ModType.Dodge, SourceType.None, null); + dodgeChance *= 1 + this.bonuses.getFloatPercentAll(ModType.Dodge, SourceType.None); return dodgeChance; default: diff --git a/src/engine/objects/PlayerCombatStats.java b/src/engine/objects/PlayerCombatStats.java index 9b28ffbb..8d6529da 100644 --- a/src/engine/objects/PlayerCombatStats.java +++ b/src/engine/objects/PlayerCombatStats.java @@ -505,7 +505,7 @@ public class PlayerCombatStats { ); if(this.owner.bonuses != null){ minDMG += this.owner.bonuses.getFloat(Enum.ModType.MinDamage, Enum.SourceType.None); - minDMG *= 1 + this.owner.bonuses.getFloatPercentAll(Enum.ModType.MeleeDamageModifier, Enum.SourceType.None, this.owner); + minDMG *= 1 + this.owner.bonuses.getFloatPercentAll(Enum.ModType.MeleeDamageModifier, Enum.SourceType.None); } if(this.owner.charItemManager != null){ @@ -585,7 +585,7 @@ public class PlayerCombatStats { if(this.owner.bonuses != null){ maxDMG += this.owner.bonuses.getFloat(Enum.ModType.MaxDamage, Enum.SourceType.None); - maxDMG *= 1 + this.owner.bonuses.getFloatPercentAll(Enum.ModType.MeleeDamageModifier, Enum.SourceType.None, this.owner); + maxDMG *= 1 + this.owner.bonuses.getFloatPercentAll(Enum.ModType.MeleeDamageModifier, Enum.SourceType.None); } if(this.owner.charItemManager != null){ @@ -676,7 +676,7 @@ public class PlayerCombatStats { } } - float bonusValues = 1 + this.owner.bonuses.getFloatPercentAll(Enum.ModType.AttackDelay,Enum.SourceType.None, null);//1.0f; + float bonusValues = 1 + this.owner.bonuses.getFloatPercentAll(Enum.ModType.AttackDelay,Enum.SourceType.None);//1.0f; bonusValues -= stanceValue + delayExtra; // take away stance modifier from alacrity bonus values speed *= 1 + stanceValue; // apply stance bonus speed *= bonusValues; // apply alacrity bonuses without stance mod @@ -712,7 +712,7 @@ public class PlayerCombatStats { range = weapon.getItemBase().getRange(); } if(owner.bonuses != null){ - range *= 1 + this.owner.bonuses.getFloatPercentAll(Enum.ModType.WeaponRange, Enum.SourceType.None, null); + range *= 1 + this.owner.bonuses.getFloatPercentAll(Enum.ModType.WeaponRange, Enum.SourceType.None); } if(mainHand){ this.rangeHandOne = range; diff --git a/src/engine/objects/Resists.java b/src/engine/objects/Resists.java index 79b83c8e..3456ee84 100644 --- a/src/engine/objects/Resists.java +++ b/src/engine/objects/Resists.java @@ -131,7 +131,7 @@ public class Resists { PlayerBonuses bonus = target.getBonuses(); //see if there is a fortitude - float damageCap = bonus.getFloatPercentAll(ModType.DamageCap, SourceType.None, null); + float damageCap = bonus.getFloatPercentAll(ModType.DamageCap, SourceType.None); if (damageCap == 0f || type == DamageType.Healing) return damage; @@ -152,7 +152,7 @@ public class Resists { if (forts == null || !isValidDamageCapType(forts, type, exclusive)) return damage; - float adjustedDamage = bonus.getFloatPercentAll(ModType.AdjustAboveDmgCap, SourceType.None, null); + float adjustedDamage = bonus.getFloatPercentAll(ModType.AdjustAboveDmgCap, SourceType.None); //Adjust damage down and return new amount float aadc = 1 + adjustedDamage; return capFire * aadc; diff --git a/src/engine/powers/effectmodifiers/HealthEffectModifier.java b/src/engine/powers/effectmodifiers/HealthEffectModifier.java index 30a3ac90..bb6c2cfb 100644 --- a/src/engine/powers/effectmodifiers/HealthEffectModifier.java +++ b/src/engine/powers/effectmodifiers/HealthEffectModifier.java @@ -171,13 +171,14 @@ public class HealthEffectModifier extends AbstractEffectModifier { // Apply any power effect modifiers (such as stances) if (bonus != null){ - if(source.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)){ - modAmount *= (1 + bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.None, (PlayerCharacter) source)); - }else{ - modAmount *= (1 + bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.None, null)); - } + modAmount *= (1 + bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.None)); } } + + if(source.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)){ + modAmount *= ((PlayerCharacter)source).ZergMultiplier; + } + if (modAmount == 0f) return; if (AbstractWorldObject.IsAbstractCharacter(awo)) { diff --git a/src/engine/powers/effectmodifiers/ManaEffectModifier.java b/src/engine/powers/effectmodifiers/ManaEffectModifier.java index b70acca6..3e01825d 100644 --- a/src/engine/powers/effectmodifiers/ManaEffectModifier.java +++ b/src/engine/powers/effectmodifiers/ManaEffectModifier.java @@ -130,14 +130,15 @@ public class ManaEffectModifier extends AbstractEffectModifier { // Apply any power effect modifiers (such as stances) if (bonus != null){ - if(source.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)){ - modAmount *= (1 + bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.None, (PlayerCharacter) source)); - }else{ - modAmount *= (1 + bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.None, null)); - } + modAmount *= (1 + bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.None)); } } + + if(source.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)){ + modAmount *= ((PlayerCharacter)source).ZergMultiplier; + } + if (modAmount == 0f) return; if (AbstractWorldObject.IsAbstractCharacter(awo)) { diff --git a/src/engine/powers/effectmodifiers/StaminaEffectModifier.java b/src/engine/powers/effectmodifiers/StaminaEffectModifier.java index 93810cd3..930816a2 100644 --- a/src/engine/powers/effectmodifiers/StaminaEffectModifier.java +++ b/src/engine/powers/effectmodifiers/StaminaEffectModifier.java @@ -126,13 +126,14 @@ public class StaminaEffectModifier extends AbstractEffectModifier { // Apply any power effect modifiers (such as stances) if (bonus != null){ - if(source.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)){ - modAmount *= (1 + bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.None, (PlayerCharacter) source)); - }else{ - modAmount *= (1 + bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.None, null)); - } + modAmount *= (1 + bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.None)); } } + + if(source.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)){ + modAmount *= ((PlayerCharacter)source).ZergMultiplier; + } + if (modAmount == 0f) return; if (AbstractWorldObject.IsAbstractCharacter(awo)) { diff --git a/src/engine/powers/poweractions/TransferStatPowerAction.java b/src/engine/powers/poweractions/TransferStatPowerAction.java index fa74bb11..30f185d8 100644 --- a/src/engine/powers/poweractions/TransferStatPowerAction.java +++ b/src/engine/powers/poweractions/TransferStatPowerAction.java @@ -218,11 +218,11 @@ public class TransferStatPowerAction extends AbstractPowerAction { // Apply any power effect modifiers (such as stances) PlayerBonuses bonus = source.getBonuses(); if (bonus != null){ - if(source.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)){ - damage *= (1 + bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.None, (PlayerCharacter) source)); - }else{ - damage *= (1 + bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.None, null)); - } + damage *= (1 + bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.None)); + } + + if(source.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)){ + damage *= ((PlayerCharacter)source).ZergMultiplier; } //get amount to transfer