@@ -29,6 +29,7 @@ public class AntFarm extends ModelTask {
2929 private double benevolenceScore ;
3030 private double harvestBenevolenceScore ;
3131 private int unreceiveTaskAward = 0 ;
32+ private double finalScore = 0d ;
3233
3334 private FarmTool [] farmTools ;
3435
@@ -91,6 +92,8 @@ public ModelGroup getGroup() {
9192 private BooleanModelField answerQuestion ;
9293 private BooleanModelField receiveFarmTaskAward ;
9394 private BooleanModelField useAccelerateTool ;
95+ private BooleanModelField useAccelerateToolContinue ;
96+ private BooleanModelField useAccelerateToolWhenMaxEmotion ;
9497 private SelectAndCountModelField feedFriendAnimalList ;
9598 private BooleanModelField notifyFriend ;
9699 private ChoiceModelField notifyFriendType ;
@@ -134,7 +137,9 @@ public ModelFields getFields() {
134137 modelFields .addField (notifyFriendList = new SelectModelField ("notifyFriendList" , "通知赶鸡 | 好友列表" , new LinkedHashSet <>(), AlipayUser ::getList ));
135138 modelFields .addField (donation = new BooleanModelField ("donation" , "每日捐蛋 | 开启" , false ));
136139 modelFields .addField (donationCount = new ChoiceModelField ("donationCount" , "每日捐蛋 | 次数" , DonationCount .ONE , DonationCount .nickNames ));
137- modelFields .addField (useAccelerateTool = new BooleanModelField ("useAccelerateTool" , "使用加速卡" , false ));
140+ modelFields .addField (useAccelerateTool = new BooleanModelField ("useAccelerateTool" , "加速卡 | 使用" , false ));
141+ modelFields .addField (useAccelerateToolContinue = new BooleanModelField ("useAccelerateToolContinue" , "加速卡 | 连续使用" , false ));
142+ modelFields .addField (useAccelerateToolWhenMaxEmotion = new BooleanModelField ("useAccelerateToolWhenMaxEmotion" , "加速卡 | 仅在满状态时使用" , false ));
138143 modelFields .addField (useSpecialFood = new BooleanModelField ("useSpecialFood" , "使用特殊食品" , false ));
139144 modelFields .addField (useNewEggTool = new BooleanModelField ("useNewEggTool" , "使用新蛋卡" , false ));
140145 modelFields .addField (receiveFarmTaskAward = new BooleanModelField ("receiveFarmTaskAward" , "收取饲料奖励" , false ));
@@ -317,15 +322,16 @@ public void run() {
317322
318323 if (needReload ) {
319324 enterFarm ();
325+ syncAnimalStatus (ownerFarmId );
320326 }
321327
328+ autoFeedAnimal ();
329+
322330 // 小鸡换装
323331 if (listOrnaments .getValue () && Status .canOrnamentToday ()) {
324332 listOrnaments ();
325333 }
326334
327- autoFeedAnimal ();
328-
329335 if (unreceiveTaskAward > 0 ) {
330336 Log .record ("还有待领取的饲料" );
331337 receiveFarmTaskAward ();
@@ -1164,10 +1170,13 @@ private void listFarmTool() {
11641170 }
11651171 }
11661172
1167- private boolean useAccelerateTool () {
1173+ private Boolean useAccelerateTool () {
11681174 if (!Status .canUseAccelerateTool ()) {
11691175 return false ;
11701176 }
1177+ if (!useAccelerateToolContinue .getValue () && AnimalBuff .ACCELERATING .name ().equals (ownerAnimal .animalBuff )) {
1178+ return false ;
1179+ }
11711180 syncAnimalStatus (ownerFarmId );
11721181 double consumeSpeed = 0d ;
11731182 double allFoodHaveEatten = 0d ;
@@ -1182,12 +1191,19 @@ private boolean useAccelerateTool() {
11821191 // consumeSpeed: g/s
11831192 // AccelerateTool: -1h = -60m = -3600s
11841193 boolean isUseAccelerateTool = false ;
1185- while (180 - allFoodHaveEatten >= consumeSpeed * 3600
1186- && useFarmTool (ownerFarmId , ToolType .ACCELERATETOOL )) {
1187- allFoodHaveEatten += consumeSpeed * 3600 ;
1188- isUseAccelerateTool = true ;
1189- Status .useAccelerateTool ();
1190- TimeUtil .sleep (1000 );
1194+ while (180 - allFoodHaveEatten >= consumeSpeed * 3600 ) {
1195+ if ((useAccelerateToolWhenMaxEmotion .getValue () && finalScore != 100 )) {
1196+ break ;
1197+ }
1198+ if (useFarmTool (ownerFarmId , ToolType .ACCELERATETOOL )) {
1199+ allFoodHaveEatten += consumeSpeed * 3600 ;
1200+ isUseAccelerateTool = true ;
1201+ Status .useAccelerateTool ();
1202+ TimeUtil .sleep (1000 );
1203+ }
1204+ if (!isUseAccelerateTool || !useAccelerateToolContinue .getValue ()) {
1205+ break ;
1206+ }
11911207 }
11921208 return isUseAccelerateTool ;
11931209 }
@@ -1405,6 +1421,9 @@ private void parseSyncAnimalStatusResponse(String resp) {
14051421 if (!jo .has ("subFarmVO" )) {
14061422 return ;
14071423 }
1424+ if (jo .has ("emotionInfo" )) {
1425+ finalScore = jo .getJSONObject ("emotionInfo" ).getDouble ("finalScore" );
1426+ }
14081427 JSONObject subFarmVO = jo .getJSONObject ("subFarmVO" );
14091428 if (subFarmVO .has ("foodStock" )) {
14101429 foodStock = subFarmVO .getInt ("foodStock" );
0 commit comments