diff --git a/megamek/src/megamek/client/bot/princess/FireControl.java b/megamek/src/megamek/client/bot/princess/FireControl.java index 70f228ab23b..fc0d144f8ad 100644 --- a/megamek/src/megamek/client/bot/princess/FireControl.java +++ b/megamek/src/megamek/client/bot/princess/FireControl.java @@ -3560,6 +3560,9 @@ public Vector getUnjamWeaponPlan(Entity shooter) { if (weaponDamage == WeaponType.DAMAGE_BY_CLUSTERTABLE) { weaponDamage = ((WeaponType) mounted.getType()).getRackSize(); } + if (weaponDamage == WeaponType.DAMAGE_ARTILLERY){ + weaponDamage = 1; //Set it to something + } if (weaponDamage > maxJammedDamage) { maxDamageWeaponID = shooter.getEquipmentNum(mounted); diff --git a/megamek/src/megamek/client/bot/princess/Princess.java b/megamek/src/megamek/client/bot/princess/Princess.java index ecc1485a5c4..813890d1da6 100644 --- a/megamek/src/megamek/client/bot/princess/Princess.java +++ b/megamek/src/megamek/client/bot/princess/Princess.java @@ -1057,7 +1057,15 @@ protected void calculateTargetingOffBoardTurn() { FiringPlan firingPlan = getArtilleryTargetingControl().calculateIndirectArtilleryPlan(entityToFire, getGame(), this); - sendAttackData(entityToFire.getId(), firingPlan.getEntityActionVector()); + if (!firingPlan.getEntityActionVector().isEmpty()) { + sendAttackData(entityToFire.getId(), firingPlan.getEntityActionVector()); + } + else { + if (this.fireControls == null) { + initializeFireControls(); + } + sendAttackData(entityToFire.getId(), getFireControl(entityToFire).getUnjamWeaponPlan(entityToFire)); + } sendDone(true); }