41 List<String> posts =
new ArrayList<String>();
42 posts.add(Ranks.POST_AGENT);
43 if (createdAt.getSize() >= 6) {
44 posts.add(Ranks.POST_ADMINISTRATOR);
46 if (Misc.isMilitary(createdAt)) {
47 posts.add(Ranks.POST_BASE_COMMANDER);
49 if (Misc.hasOrbitalStation(createdAt)) {
50 posts.add(Ranks.POST_STATION_COMMANDER);
52 String post = pickOne(posts);
53 if (post ==
null)
return;
57 setGiverRank(pickOne(Ranks.GROUND_CAPTAIN, Ranks.GROUND_COLONEL, Ranks.GROUND_MAJOR,
58 Ranks.SPACE_COMMANDER, Ranks.SPACE_CAPTAIN, Ranks.SPACE_ADMIRAL));
59 setGiverTags(Tags.CONTACT_MILITARY);
61 setGiverImportance(pickHighImportance());
62 findOrCreateGiver(createdAt,
false,
false);
69 protected boolean create(MarketAPI createdAt,
boolean barEvent) {
76 if (!Misc.isMilitary(createdAt))
return false;
78 PersonAPI person = getPerson();
79 if (person ==
null)
return false;
81 if (!setPersonMissionRef(person,
"$tabo_ref")) {
86 setGiverIsPotentialContactOnSuccess();
89 requireMarketIsNot(createdAt);
90 requireMarketFactionNotPlayer();
91 requireMarketFactionHostileTo(createdAt.getFactionId());
92 requireMarketTacticallyBombardable();
93 requireMarketNotHidden();
94 requireMarketNotInHyperspace();
96 float q = getQuality();
98 preferMarketSizeAtMost(4);
99 }
else if (q <= 0.25) {
100 preferMarketSizeAtMost(5);
101 }
else if (q <= 0.5) {
102 preferMarketSizeAtMost(6);
103 }
else if (q <= 0.75) {
104 preferMarketSizeAtMost(7);
108 if (
market ==
null)
return false;
110 if (!setMarketMissionRef(
market,
"$tabo_ref")) {
113 makeImportant(
market,
"$tabo_target", Stage.BOMBARD);
115 setStartingStage(Stage.BOMBARD);
116 setSuccessStage(Stage.COMPLETED);
117 setFailureStage(Stage.FAILED);
119 setStageOnMemoryFlag(Stage.COMPLETED,
market,
"$tabo_completed");
122 addNoPenaltyFailureStages(Stage.FAILED_NO_PENALTY);
123 connectWithMarketDecivilized(Stage.BOMBARD, Stage.FAILED_NO_PENALTY,
market);
124 setStageOnMarketDecivilized(Stage.FAILED_NO_PENALTY, createdAt);
125 connectWithHostilitiesEnded(Stage.BOMBARD, Stage.FAILED_NO_PENALTY, person,
market);
126 setStageOnHostilitiesEnded(Stage.FAILED_NO_PENALTY, person,
market);
129 setCreditReward(CreditReward.VERY_HIGH,
market.getSize());
131 if (
market.getSize() <= 4) {
132 triggerCreateLargePatrolAroundMarket(
market, Stage.BOMBARD, 0f);
133 triggerCreateSmallPatrolAroundMarket(
market, Stage.BOMBARD, 0f);
134 }
else if (
market.getSize() <= 6) {
135 triggerCreateLargePatrolAroundMarket(
market, Stage.BOMBARD, 0f);
136 triggerCreateMediumPatrolAroundMarket(
market, Stage.BOMBARD, 0f);
137 triggerCreateSmallPatrolAroundMarket(
market, Stage.BOMBARD, 0f);
139 triggerCreateLargePatrolAroundMarket(
market, Stage.BOMBARD, 0f);
140 triggerCreateLargePatrolAroundMarket(
market, Stage.BOMBARD, 0f);
141 triggerCreateMediumPatrolAroundMarket(
market, Stage.BOMBARD, 0f);
142 triggerCreateSmallPatrolAroundMarket(
market, Stage.BOMBARD, 0f);
149 set(
"$tabo_barEvent", isBarEvent());
150 set(
"$tabo_manOrWoman", getPerson().getManOrWoman());
151 set(
"$tabo_reward", Misc.getWithDGS(getCreditsReward()));
153 set(
"$tabo_personName", getPerson().getNameString());
154 set(
"$tabo_systemName",
market.getStarSystem().getNameWithLowercaseTypeShort());
155 set(
"$tabo_marketName",
market.getName());
156 set(
"$tabo_marketOnOrAt",
market.getOnOrAt());
157 set(
"$tabo_dist", getDistanceLY(
market));
159 int fuel = getBombardmentFuel(
market);
160 set(
"$tabo_fuel", Misc.getWithDGS(fuel));
175 Color h = Misc.getHighlightColor();
176 if (currentStage == Stage.BOMBARD) {
177 info.addPara(
"Tactically bombard " +
market.getName() +
178 " in the " +
market.getStarSystem().getNameWithLowercaseTypeShort(), tc, pad);
223 MarketAPI
market, TempData actionData) {
224 if (this.market ==
market) {
225 if (!isEnded() || isEnding()) {
231 e.
triggerCreateFleet(FleetSize.VERY_LARGE, FleetQuality.HIGHER,
market.getFactionId(), FleetTypes.PATROL_LARGE,
new Vector2f());
232 e.triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER);
234 e.triggerSetPatrol();
236 e.triggerSetFleetMemoryValue(
"$tabo_marketName",
market.getName());
237 e.triggerSetFleetGenericHailPermanent(
"TABOPatrolHail");
245 market.getMemoryWithoutUpdate().set(
"$tabo_bombardedColony",
true, 1f);