private ToHitData calcToHit(final MovePath shooterPath, final boolean assumeUnderFlightPath) { return owner.getFireControl(getShooter()).guessAirToGroundStrikeToHitModifier(getShooter(), null, getTarget(), getTargetState(), shooterPath, getWeapon(), getGame(), assumeUnderFlightPath); }
private WeaponAttackAction buildBombAttackAction(final int[] bombPayload) { final WeaponAttackAction diveBomb = new WeaponAttackAction(getShooter().getId(), getTarget().getTargetType(), getTarget().getTargetId(), getShooter().getEquipmentNum(getWeapon())); diveBomb.setBombPayload(bombPayload); return diveBomb; }
ToHitData calcToHit() { return owner.getFireControl(getShooter()).guessToHitModifierForWeapon(getShooter(), getShooterState(), getTarget(), getTargetState(), getWeapon(), getGame()); }
WeaponAttackAction buildWeaponAttackAction() { if (!getWeapon().getType().hasFlag(WeaponType.F_ARTILLERY)) { return new WeaponAttackAction(getShooter().getId(), getTarget().getTargetType(), getTarget().getTargetId(), getShooter().getEquipmentNum(getWeapon())); } else { return new ArtilleryAttackAction(getShooter().getId(), getTarget().getTargetType(), getTarget().getTargetId(), getShooter().getEquipmentNum(getWeapon()), getGame()); } }
WeaponAttackAction getWeaponAttackAction() { final String METHOD_NAME = "getWeaponAttackAction(IGame)"; owner.methodBegin(getClass(), METHOD_NAME); try { if (null != getAction()) { return getAction(); } if (!getWeapon().getType().hasFlag(WeaponType.F_ARTILLERY)) { setAction(new WeaponAttackAction(getShooter().getId(), getTarget().getTargetId(), getShooter().getEquipmentNum(getWeapon()))); } else { setAction(new ArtilleryAttackAction(getShooter().getId(), getTarget().getTargetType(), getTarget().getTargetId(), getShooter().getEquipmentNum(getWeapon()), getGame())); } if (getAction() == null) { setProbabilityToHit(0); return null; } setProbabilityToHit(Compute.oddsAbove(getAction().toHit(getGame()).getValue(), getShooterState().hasNaturalAptGun()) / 100.0); return getAction(); } finally { owner.methodEnd(getClass(), METHOD_NAME); } }
double computeExpectedDamage() { return computeExpectedBombDamage(getShooter(), weapon, getTarget().getPosition()); int maxRange = game.getOptions().booleanOption(OptionsConstants.ADVCOMBAT_TACOPS_RANGE) ? weaponType.getExtremeRange() : weaponType.getLongRange(); int targetDistance = getShooter().getPosition().distance(getTarget().getPosition()); if (getTarget() instanceof Entity) { double dmg = Compute.getExpectedDamage(getGame(), getAction(), true, owner.getPrecognition().getECMInfo());