public void setWeaponHit(Mounted which) { if (weaponList.contains(which)) { which.setHit(true); } }
@Override protected boolean doChecks(Vector<Report> vPhaseReport) { if ((roll <= 3) && (howManyShots == 2)) { Report r = new Report(3160); r.subject = subjectId; weapon.setJammed(true); weapon.setHit(true); vPhaseReport.addElement(r); return true; } return false; } }
@Override protected boolean doChecks(Vector<Report> vPhaseReport) { if (roll == 2) { Report r = new Report(3165); r.subject = subjectId; weapon.setJammed(true); weapon.setHit(true); vPhaseReport.addElement(r); return true; } return false; } }
@Override protected boolean doChecks(Vector<Report> vPhaseReport) { if (roll == 2) { Report r = new Report(3165); r.subject = subjectId; weapon.setJammed(true); weapon.setHit(true); vPhaseReport.addElement(r); return true; } return false; } }
@Override protected boolean doChecks(Vector<Report> vPhaseReport) { if (roll == 2) { Report r = new Report(3161); r.subject = subjectId; r.newlines = 0; vPhaseReport.addElement(r); weapon.setJammed(true); weapon.setHit(true); } return false; } }
@Override protected boolean doChecks(Vector<Report> vPhaseReport) { if (roll == 2) { Report r = new Report(3165); r.subject = subjectId; weapon.setJammed(true); weapon.setHit(true); vPhaseReport.addElement(r); return true; } return false; } }
@Override protected boolean doChecks(Vector<Report> vPhaseReport) { if (roll == 2) { int damageRoll = Compute.d6(2); if (damageRoll >= 8) { Report r = new Report(); r.subject = subjectId; r.messageId = 3172; vPhaseReport.addElement(r); weapon.setHit(true); return false; } } return false; } }
@Override protected boolean doChecks(Vector<Report> vPhaseReport) { if (((roll <= 4) && (howManyShots == 2)) || ((roll == 2) && (howManyShots == 1))) { Report r = new Report(); r.subject = subjectId; weapon.setJammed(true); if (wtype.getAmmoType() == AmmoType.T_AC_ULTRA) { r.messageId = 3160; weapon.setHit(true); } else { r.messageId = 3170; } vPhaseReport.addElement(r); return true; } return false; } }
@Override protected boolean doChecks(Vector<Report> vPhaseReport) { if (roll <= 3) { Report r = new Report(3162); r.subject = subjectId; r.newlines = 1; weapon.setHit(true); int wloc = weapon.getLocation(); for (int i = 0; i < ae.getNumberOfCriticals(wloc); i++) { CriticalSlot slot1 = ae.getCritical(wloc, i); if ((slot1 == null) || (slot1.getType() == CriticalSlot.TYPE_SYSTEM)) { continue; } Mounted mounted = slot1.getMount(); if (mounted.equals(weapon)) { ae.hitAllCriticals(wloc, i); break; } } r.choose(false); vPhaseReport.addElement(r); vPhaseReport.addAll(server.explodeEquipment(ae, wloc, weapon)); return true; } return false; }
@Override public void updateConditionFromPart() { if(null != unit) { Mounted mounted = unit.getEntity().getEquipment(equipmentNum); if(null != mounted) { mounted.setHit(false); mounted.setDestroyed(false); mounted.setRepairable(true); unit.repairSystem(CriticalSlot.TYPE_EQUIPMENT, equipmentNum); mounted.setShotsLeft(getFullShots() - shotsNeeded); } } }
@Override public void updateConditionFromPart() { if(null != unit) { Mounted mounted = unit.getEntity().getEquipment(equipmentNum); if(null != mounted) { mounted.setHit(true); mounted.setDestroyed(true); mounted.setRepairable(false); unit.destroySystem(CriticalSlot.TYPE_EQUIPMENT, unit.getEntity().getEquipmentNum(mounted)); } } }
@Override protected boolean doChecks(Vector<Report> vPhaseReport) { if (roll == 2) { Report r = new Report(3162); r.subject = subjectId; weapon.setJammed(true); weapon.setHit(true); int wloc = weapon.getLocation(); for (int i = 0; i < ae.getNumberOfCriticals(wloc); i++) { CriticalSlot slot1 = ae.getCritical(wloc, i); if ((slot1 == null) || (slot1.getType() == CriticalSlot.TYPE_SYSTEM)) { continue; } Mounted mounted = slot1.getMount(); if (mounted.equals(weapon)) { ae.hitAllCriticals(wloc, i); break; } } vPhaseReport.addAll(server.explodeEquipment(ae, wloc, weapon)); r.choose(false); vPhaseReport.addElement(r); return false; } else { return super.doChecks(vPhaseReport); } }
@Override public void fix() { super.fix(); if(null != unit) { Mounted mounted = unit.getEntity().getEquipment(equipmentNum); if(null != mounted) { mounted.setHit(false); mounted.setMissing(false); mounted.setDestroyed(false); unit.repairSystem(CriticalSlot.TYPE_EQUIPMENT, equipmentNum); } checkWeaponBay(); } }
@Override protected boolean doChecks(Vector<Report> vPhaseReport) { if (roll == 2) { Report r = new Report(3162); r.subject = subjectId; weapon.setJammed(true); weapon.setHit(true); int wloc = weapon.getLocation(); for (int i = 0; i < ae.getNumberOfCriticals(wloc); i++) { CriticalSlot slot1 = ae.getCritical(wloc, i); if ((slot1 == null) || (slot1.getType() == CriticalSlot.TYPE_SYSTEM)) { continue; } Mounted mounted = slot1.getMount(); if (mounted.equals(weapon)) { ae.hitAllCriticals(wloc, i); break; } } vPhaseReport.addAll(server.explodeEquipment(ae, wloc, weapon)); r.choose(false); vPhaseReport.addElement(r); return true; } else { return super.doChecks(vPhaseReport); } }
@Override public void updateConditionFromPart() { if(null != unit) { Mounted mounted = unit.getEntity().getEquipment(equipmentNum); if(null != mounted) { mounted.setMissing(false); if(hits >= 1) { mounted.setDestroyed(true); mounted.setHit(true); mounted.setRepairable(true); unit.damageSystem(CriticalSlot.TYPE_EQUIPMENT, equipmentNum, hits); } else { mounted.setHit(false); mounted.setDestroyed(false); mounted.setRepairable(true); unit.repairSystem(CriticalSlot.TYPE_EQUIPMENT, equipmentNum); } setOmniPodded(mounted.isOmniPodMounted()); } checkWeaponBay(); } }
@Override public void updateConditionFromPart() { if(null != unit) { Mounted mounted = unit.getEntity().getEquipment(equipmentNum); if(null != mounted) { mounted.setHit(false); mounted.setDestroyed(false); mounted.setRepairable(true); unit.repairSystem(CriticalSlot.TYPE_EQUIPMENT, equipmentNum); mounted.setShotsLeft(getFullShots() - shotsNeeded/getNumTroopers()); } } }
@Override public void updateConditionFromPart() { if(null != unit) { Mounted mounted = unit.getEntity().getEquipment(equipmentNum); if(null != mounted) { mounted.setHit(false); mounted.setDestroyed(false); mounted.setRepairable(true); mounted.changeAmmoType((AmmoType) type); unit.repairSystem(CriticalSlot.TYPE_EQUIPMENT, equipmentNum); mounted.setShotsLeft(getFullShots() - shotsNeeded); mounted.setAmmoCapacity(capacity); } } }
@Override public void updateConditionFromPart() { if(null != unit) { unit.getEntity().setInternal((int)Math.round(percent * unit.getEntity().getOInternal(loc)), loc); //TODO: we need to cycle through slots and remove crits on non-hittable ones //We shouldn't have to do this, these slots should not be hit in MM for (int i = 0; i < unit.getEntity().getNumberOfCriticals(loc); i++) { CriticalSlot slot = unit.getEntity().getCritical(loc, i); if ((slot != null) && !slot.isEverHittable()) { slot.setDestroyed(false); slot.setHit(false); slot.setRepairable(true); slot.setMissing(false); Mounted m = slot.getMount(); m.setHit(false); m.setDestroyed(false); m.setMissing(false); m.setRepairable(true); } } } }
/** * destroys the first retractable blade critical slot found */ public void destroyRetractableBlade(int loc) { // check critical slots for (int i = 0; i < this.getNumberOfCriticals(loc); i++) { CriticalSlot slot = getCritical(loc, i); // ignore empty & system slots if ((slot == null) || (slot.getType() != CriticalSlot.TYPE_EQUIPMENT)) { continue; } Mounted m = slot.getMount(); if ((m.getLocation() == loc) && !m.isHit() && !m.isBreached() && (m.getType() instanceof MiscType) && m.getType().hasFlag(MiscType.F_CLUB) && m.getType().hasSubType(MiscType.S_RETRACTABLE_BLADE)) { slot.setHit(true); m.setHit(true); return; } } }
Mounted mounted = unit.getEntity().getEquipment(equipmentNum); if(null != mounted) { mounted.setHit(true); mounted.setDestroyed(true); mounted.setRepairable(false);