forked from MagicBane/Server
range bonus confined to 1 spot
This commit is contained in:
@@ -451,12 +451,7 @@ public enum CombatManager {
|
|||||||
if (hasNoWeapon) {
|
if (hasNoWeapon) {
|
||||||
range = MBServerStatics.NO_WEAPON_RANGE;
|
range = MBServerStatics.NO_WEAPON_RANGE;
|
||||||
} else {
|
} else {
|
||||||
range = getWeaponRange(wb);
|
range = getWeaponRange(wb, bonus);
|
||||||
if (bonus != null) {
|
|
||||||
float buffRange = 1;
|
|
||||||
buffRange += bonus.getFloat(ModType.WeaponRange, SourceType.None) * .01f;
|
|
||||||
range *= buffRange;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (abstractCharacter.getObjectType() == GameObjectType.Mob) {
|
if (abstractCharacter.getObjectType() == GameObjectType.Mob) {
|
||||||
@@ -729,15 +724,8 @@ public enum CombatManager {
|
|||||||
if (ac.getObjectType().equals(GameObjectType.PlayerCharacter) && (mainHand || wb.isTwoHanded())) {
|
if (ac.getObjectType().equals(GameObjectType.PlayerCharacter) && (mainHand || wb.isTwoHanded())) {
|
||||||
dpj = ((PlayerCharacter) ac).getWeaponPower();
|
dpj = ((PlayerCharacter) ac).getWeaponPower();
|
||||||
if (dpj != null) {
|
if (dpj != null) {
|
||||||
float attackRange = getWeaponRange(wb);
|
|
||||||
PlayerBonuses bonus = ac.getBonuses();
|
PlayerBonuses bonus = ac.getBonuses();
|
||||||
if (bonus != null) {
|
float attackRange = getWeaponRange(wb, bonus);
|
||||||
float buffRange = 1;
|
|
||||||
buffRange += bonus.getFloat(ModType.WeaponRange, SourceType.None) * .01f;
|
|
||||||
attackRange *= buffRange;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
dpj.attack(target, attackRange);
|
dpj.attack(target, attackRange);
|
||||||
|
|
||||||
if (dpj.getPower() != null && (dpj.getPowerToken() == -1851459567 || dpj.getPowerToken() == -1851489518))
|
if (dpj.getPower() != null && (dpj.getPowerToken() == -1851459567 || dpj.getPowerToken() == -1851489518))
|
||||||
@@ -748,7 +736,7 @@ public enum CombatManager {
|
|||||||
if (ac.getObjectType().equals(GameObjectType.PlayerCharacter) && !mainHand) {
|
if (ac.getObjectType().equals(GameObjectType.PlayerCharacter) && !mainHand) {
|
||||||
dpj = ((PlayerCharacter) ac).getWeaponPower();
|
dpj = ((PlayerCharacter) ac).getWeaponPower();
|
||||||
if (dpj != null && dpj.getPower() != null && (dpj.getPowerToken() == -1851459567 || dpj.getPowerToken() == -1851489518)) {
|
if (dpj != null && dpj.getPower() != null && (dpj.getPowerToken() == -1851459567 || dpj.getPowerToken() == -1851489518)) {
|
||||||
float attackRange = getWeaponRange(wb);
|
float attackRange = getWeaponRange(wb,null);
|
||||||
dpj.attack(target, attackRange);
|
dpj.attack(target, attackRange);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -937,15 +925,8 @@ public enum CombatManager {
|
|||||||
if (dpj != null) {
|
if (dpj != null) {
|
||||||
PowersBase wp = dpj.getPower();
|
PowersBase wp = dpj.getPower();
|
||||||
if (wp.requiresHitRoll() == false) {
|
if (wp.requiresHitRoll() == false) {
|
||||||
float attackRange = getWeaponRange(wb);
|
|
||||||
PlayerBonuses bonus = ac.getBonuses();
|
PlayerBonuses bonus = ac.getBonuses();
|
||||||
if (bonus != null) {
|
float attackRange = getWeaponRange(wb,bonus);
|
||||||
float buffRange = 1;
|
|
||||||
buffRange += bonus.getFloat(ModType.WeaponRange, SourceType.None) * .01f;
|
|
||||||
attackRange *= buffRange;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
dpj.attack(target, attackRange);
|
dpj.attack(target, attackRange);
|
||||||
} else {
|
} else {
|
||||||
((PlayerCharacter) ac).setWeaponPower(null);
|
((PlayerCharacter) ac).setWeaponPower(null);
|
||||||
@@ -1230,11 +1211,14 @@ public enum CombatManager {
|
|||||||
pc.setLastMobAttackTime();
|
pc.setLastMobAttackTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static float getWeaponRange(ItemBase weapon) {
|
public static float getWeaponRange(ItemBase weapon, PlayerBonuses bonus) {
|
||||||
if (weapon == null)
|
if (weapon == null)
|
||||||
return 0f;
|
return 0f;
|
||||||
|
float rangeMod = 1.0f;
|
||||||
return weapon.getRange();
|
if (bonus != null) {
|
||||||
|
rangeMod += bonus.getFloat(ModType.WeaponRange, SourceType.None);
|
||||||
|
}
|
||||||
|
return weapon.getRange() * rangeMod;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void toggleCombat(ToggleCombatMsg msg, ClientConnection origin) {
|
public static void toggleCombat(ToggleCombatMsg msg, ClientConnection origin) {
|
||||||
|
|||||||
Reference in New Issue
Block a user