boolean getForcedWithdrawal() { return getBehaviorSettings().isForcedWithdrawal(); }
/** * @return A string log of these behavior settings. */ public String toLog() { final StringBuilder out = new StringBuilder("Princess Behavior: ").append(getDescription()); out.append("\n\tDestination Edge: ").append(getDestinationEdge()); out.append("\n\tRetreat Edge: ").append(getRetreatEdge()); out.append("\n\tForced Withdrawal: ").append(isForcedWithdrawal()); out.append("\n\tSelf Preservation: ").append(getSelfPreservationIndex()); out.append("\n\tHyper Aggression: ").append(getHyperAggressionIndex()); out.append("\n\tFall Shame: ").append(getFallShameIndex()); out.append("\n\tBravery: ").append(getBraveryIndex()); out.append("\n\tHerd Mentality: ").append(getHerdMentalityIndex()); out.append("\n\tVerbosity: ").append(getVerbosity()); out.append("\n\tTargets:"); out.append("\n\t\tCoords: "); for (final String t : getStrategicBuildingTargets()) { out.append(" ").append(t); } out.append("\n\t\tUnits:"); for (final int id : getPriorityUnitTargets()) { out.append(" ").append(id); } return out.toString(); }
protected void setPrincessFields() { verbosityCombo.setSelectedIndex(0); forcedWithdrawalCheck.setSelected(princessBehavior.isForcedWithdrawal()); autoFleeCheck.setSelected(princessBehavior.shouldAutoFlee()); selfPreservationSlidebar.setValue(princessBehavior.getSelfPreservationIndex()); aggressionSlidebar.setValue(princessBehavior.getHyperAggressionIndex()); fallShameSlidebar.setValue(princessBehavior.getFallShameIndex()); destinationEdgeCombo.setSelectedIndex(princessBehavior.getDestinationEdge().getIndex()); retreatEdgeCombo.setSelectedIndex(princessBehavior.getRetreatEdge().getIndex()); herdingSlidebar.setValue(princessBehavior.getHerdMentalityIndex()); braverySlidebar.setValue(princessBehavior.getBraveryIndex()); targetsListModel.clear(); for (String t : princessBehavior.getStrategicBuildingTargets()) { //noinspection unchecked targetsListModel.addElement(BUILDING_TARGET + ": " + t); } for (int id : princessBehavior.getPriorityUnitTargets()) { targetsListModel.addElement(UNIT_TARGET + ": " + id); } repaint(); }
@Override protected void checkMoral() { moralUtil.checkMoral(behaviorSettings.isForcedWithdrawal(), behaviorSettings.getBraveryIndex(), behaviorSettings.getSelfPreservationIndex(), getLocalPlayer(), game); }
forcedWithdrawalNode.setTextContent("" + isForcedWithdrawal()); behavior.appendChild(forcedWithdrawalNode);
/** * Logic to determine if this entity is "falling back" for any reason * @param entity The entity to check. * @return Whether or not the entity is falling back. */ boolean isFallingBack(final Entity entity) { return (getBehaviorSettings().getDestinationEdge() != CardinalEdge.NEAREST_OR_NONE) || (getBehaviorSettings().isForcedWithdrawal() && entity.isCrippled(true)); }
@Test public void testIsFallingBack() { Entity mockMech = Mockito.mock(BipedMech.class); Mockito.when(mockMech.isImmobile()).thenReturn(false); Mockito.when(mockMech.isCrippled(Mockito.anyBoolean())).thenReturn(false); Mockito.when(mockMech.getId()).thenReturn(1); Mockito.when(mockPrincess.wantsToFallBack(Mockito.any(Entity.class))).thenReturn(false); Mockito.when(mockPrincess.isFallingBack(Mockito.any(Entity.class))).thenCallRealMethod(); BehaviorSettings mockBehavior = Mockito.mock(BehaviorSettings.class); Mockito.when(mockBehavior.getDestinationEdge()).thenReturn(CardinalEdge.NEAREST_OR_NONE); Mockito.when(mockBehavior.isForcedWithdrawal()).thenReturn(true); Mockito.when(mockPrincess.getBehaviorSettings()).thenReturn(mockBehavior); // A normal undamaged mech. Assert.assertFalse(mockPrincess.isFallingBack(mockMech)); // A mobile mech that wants to fall back (for any reason). Mockito.when(mockMech.isCrippled(Mockito.anyBoolean())).thenReturn(true); Assert.assertTrue(mockPrincess.isFallingBack(mockMech)); }
CardinalEdge getHomeEdge(Entity entity) { // if I am crippled and using forced withdrawal rules, my home edge is the "retreat" edge if(entity.isCrippled(true) && getBehaviorSettings().isForcedWithdrawal()) { if(getBehaviorSettings().getRetreatEdge() == CardinalEdge.NEAREST_OR_NONE) { return BoardUtilities.getClosestEdge(entity); } else { return getBehaviorSettings().getRetreatEdge(); } } // otherwise, return the destination edge return getBehaviorSettings().getDestinationEdge(); }
public void writeToXml(PrintWriter pw1, int indent) { MekHqXmlUtil.writeSimpleXmlTag(pw1, indent+1, "name", MekHqXmlUtil.escape(name)); MekHqXmlUtil.writeSimpleXmlTag(pw1, indent+1, "team", team); MekHqXmlUtil.writeSimpleXmlTag(pw1, indent+1, "start", start); MekHqXmlUtil.writeSimpleXmlTag(pw1, indent+1, "camoCategory", MekHqXmlUtil.escape(camoCategory)); MekHqXmlUtil.writeSimpleXmlTag(pw1, indent+1, "camoFileName", MekHqXmlUtil.escape(camoFileName)); MekHqXmlUtil.writeSimpleXmlTag(pw1, indent+1, "colorIndex", colorIndex); pw1.println(MekHqXmlUtil.indentStr(indent+1) + "<entities>"); for (Entity en : entityList) { if (en != null) { pw1.println(AtBScenario.writeEntityWithCrewToXmlString(en, indent + 2, entityList)); } } pw1.println(MekHqXmlUtil.indentStr(indent+1) + "</entities>"); pw1.println(MekHqXmlUtil.indentStr(indent+1) + "<behaviorSettings>"); MekHqXmlUtil.writeSimpleXmlTag(pw1, indent+2, "verbosity", behaviorSettings.getVerbosity().toString()); MekHqXmlUtil.writeSimpleXmlTag(pw1, indent+2, "forcedWithdrawal", behaviorSettings.isForcedWithdrawal()); MekHqXmlUtil.writeSimpleXmlTag(pw1, indent+2, "autoFlee", behaviorSettings.shouldAutoFlee()); MekHqXmlUtil.writeSimpleXmlTag(pw1, indent+2, "selfPreservationIndex", behaviorSettings.getSelfPreservationIndex()); MekHqXmlUtil.writeSimpleXmlTag(pw1, indent+2, "fallShameIndex", behaviorSettings.getFallShameIndex()); MekHqXmlUtil.writeSimpleXmlTag(pw1, indent+2, "hyperAggressionIndex", behaviorSettings.getHyperAggressionIndex()); MekHqXmlUtil.writeSimpleXmlTag(pw1, indent+2, "destinationEdge", behaviorSettings.getDestinationEdge().ordinal()); MekHqXmlUtil.writeSimpleXmlTag(pw1, indent+2, "retreatEdge", behaviorSettings.getRetreatEdge().ordinal()); MekHqXmlUtil.writeSimpleXmlTag(pw1, indent+2, "herdMentalityIndex", behaviorSettings.getHerdMentalityIndex()); MekHqXmlUtil.writeSimpleXmlTag(pw1, indent+2, "braveryIndex", behaviorSettings.getBraveryIndex()); pw1.println(MekHqXmlUtil.indentStr(indent+1) + "</behaviorSettings>"); }
boolean enemyUnitBroken = owner.getHonorUtil().isEnemyBroken(entity.getId(), shooter.getOwnerId(), owner.getBehaviorSettings().isForcedWithdrawal());
Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_DESTINATION_EDGE, behaviorSettings.getDestinationEdge()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_FORCED_WITHDRAWAL, behaviorSettings.isForcedWithdrawal()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_AUTO_FLEE, behaviorSettings.shouldAutoFlee()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_FALL_SHAME_INDEX, behaviorSettings.getFallShameIndex()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_DESTINATION_EDGE, behaviorSettings.getDestinationEdge()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_FORCED_WITHDRAWAL, behaviorSettings.isForcedWithdrawal()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_AUTO_FLEE, behaviorSettings.shouldAutoFlee()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_FALL_SHAME_INDEX, behaviorSettings.getFallShameIndex()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_DESTINATION_EDGE, behaviorSettings.getDestinationEdge()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_FORCED_WITHDRAWAL, behaviorSettings.isForcedWithdrawal()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_AUTO_FLEE, behaviorSettings.shouldAutoFlee()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_FALL_SHAME_INDEX, behaviorSettings.getFallShameIndex()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_HOME_EDGE, behaviorSettings.getRetreatEdge()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_DESTINATION_EDGE, behaviorSettings.getDestinationEdge()); Assert.assertEquals(false, behaviorSettings.isForcedWithdrawal()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_AUTO_FLEE, behaviorSettings.shouldAutoFlee()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_FALL_SHAME_INDEX, behaviorSettings.getFallShameIndex()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_DESTINATION_EDGE, behaviorSettings.getDestinationEdge()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_FORCED_WITHDRAWAL, behaviorSettings.isForcedWithdrawal()); Assert.assertEquals(false, behaviorSettings.shouldAutoFlee()); Assert.assertEquals(BehaviorSettingsTestConstants.GOOD_FALL_SHAME_INDEX, behaviorSettings.getFallShameIndex());
public BehaviorSettings getCopy() throws PrincessException { final BehaviorSettings copy = new BehaviorSettings(); copy.setDestinationEdge(getDestinationEdge()); copy.setRetreatEdge(getRetreatEdge()); copy.setForcedWithdrawal(isForcedWithdrawal()); copy.setAutoFlee(shouldAutoFlee()); copy.setDescription(getDescription()); copy.setFallShameIndex(getFallShameIndex()); copy.setBraveryIndex(getBraveryIndex()); copy.setHerdMentalityIndex(getHerdMentalityIndex()); copy.setHyperAggressionIndex(getHyperAggressionIndex()); copy.setSelfPreservationIndex(getSelfPreservationIndex()); copy.setVerbosity(getVerbosity()); for (final String t : getStrategicBuildingTargets()) { copy.addStrategicTarget(t); } for (final Integer p : getPriorityUnitTargets()) { copy.addPriorityUnit(p); } return copy; }