special case weapon powers requiring hit rolls
This commit is contained in:
@@ -662,9 +662,8 @@ public enum CombatManager {
|
|||||||
|
|
||||||
DeferredPowerJob dpj = null;
|
DeferredPowerJob dpj = null;
|
||||||
|
|
||||||
|
boolean hitLanded = LandHit((int)atr,(int)defense);
|
||||||
|
if (hitLanded) {
|
||||||
if (LandHit((int)atr,(int)defense)) {
|
|
||||||
|
|
||||||
if (ac.getObjectType().equals(GameObjectType.PlayerCharacter))
|
if (ac.getObjectType().equals(GameObjectType.PlayerCharacter))
|
||||||
updateAttackTimers((PlayerCharacter) ac, target, true);
|
updateAttackTimers((PlayerCharacter) ac, target, true);
|
||||||
@@ -693,7 +692,13 @@ public enum CombatManager {
|
|||||||
|
|
||||||
PlayerBonuses bonus = ac.getBonuses();
|
PlayerBonuses bonus = ac.getBonuses();
|
||||||
float attackRange = getWeaponRange(wb, bonus);
|
float attackRange = getWeaponRange(wb, bonus);
|
||||||
dpj.attack(target, attackRange);
|
if(specialCaseHitRoll(dpj.getPowerToken())) {
|
||||||
|
if(hitLanded) {
|
||||||
|
dpj.attack(target, attackRange);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
dpj.attack(target, attackRange);
|
||||||
|
}
|
||||||
|
|
||||||
if (dpj.getPower() != null && (dpj.getPowerToken() == -1851459567 || dpj.getPowerToken() == -1851489518))
|
if (dpj.getPower() != null && (dpj.getPowerToken() == -1851459567 || dpj.getPowerToken() == -1851489518))
|
||||||
((PlayerCharacter) ac).setWeaponPower(dpj);
|
((PlayerCharacter) ac).setWeaponPower(dpj);
|
||||||
@@ -708,7 +713,13 @@ public enum CombatManager {
|
|||||||
|
|
||||||
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, bonuses);
|
float attackRange = getWeaponRange(wb, bonuses);
|
||||||
dpj.attack(target, attackRange);
|
if(specialCaseHitRoll(dpj.getPowerToken())) {
|
||||||
|
if(hitLanded) {
|
||||||
|
dpj.attack(target, attackRange);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
dpj.attack(target, attackRange);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -916,7 +927,13 @@ public enum CombatManager {
|
|||||||
if (wp.requiresHitRoll() == false) {
|
if (wp.requiresHitRoll() == false) {
|
||||||
PlayerBonuses bonus = ac.getBonuses();
|
PlayerBonuses bonus = ac.getBonuses();
|
||||||
float attackRange = getWeaponRange(wb, bonus);
|
float attackRange = getWeaponRange(wb, bonus);
|
||||||
dpj.attack(target, attackRange);
|
if(specialCaseHitRoll(dpj.getPowerToken())) {
|
||||||
|
if(hitLanded) {
|
||||||
|
dpj.attack(target, attackRange);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
dpj.attack(target, attackRange);
|
||||||
|
}
|
||||||
} else
|
} else
|
||||||
((PlayerCharacter) ac).setWeaponPower(null);
|
((PlayerCharacter) ac).setWeaponPower(null);
|
||||||
}
|
}
|
||||||
@@ -1466,4 +1483,15 @@ public enum CombatManager {
|
|||||||
|
|
||||||
return roll <= convertedChance;
|
return roll <= convertedChance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean specialCaseHitRoll(int powerID){
|
||||||
|
switch(powerID) {
|
||||||
|
case 563200808: // Naargal's Bite
|
||||||
|
case 563205337: // Naargal's Dart
|
||||||
|
case 563205930: // Sword of Saint Malorn
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user