Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 6c5da03

Browse files
authored
Merge pull request #263 from LazyImmortal/dev
添加部分选项,修复已知问题
2 parents ecf6595 + 1075725 commit 6c5da03

File tree

2 files changed

+67
-40
lines changed

2 files changed

+67
-40
lines changed

app/src/main/java/tkaxv7s/xposed/sesame/model/task/antDodo/AntDodo.java

Lines changed: 38 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ public ModelGroup getGroup() {
3636
private SelectModelField collectToFriendList;
3737
private SelectModelField sendFriendCard;
3838
private BooleanModelField useProp;
39+
private BooleanModelField usePropCollectTimes7Days;
40+
private BooleanModelField usePropCollectHistoryAnimal7Days;
41+
private BooleanModelField usePropCollectToFriendTimes7Days;
3942

4043
@Override
4144
public ModelFields getFields() {
@@ -44,7 +47,10 @@ public ModelFields getFields() {
4447
modelFields.addField(collectToFriendType = new ChoiceModelField("collectToFriendType", "帮抽卡 | 动作", CollectToFriendType.COLLECT, CollectToFriendType.nickNames));
4548
modelFields.addField(collectToFriendList = new SelectModelField("collectToFriendList", "帮抽卡 | 好友列表", new LinkedHashSet<>(), AlipayUser::getList));
4649
modelFields.addField(sendFriendCard = new SelectModelField("sendFriendCard", "送卡片好友列表(当前图鉴所有卡片)", new LinkedHashSet<>(), AlipayUser::getList));
47-
modelFields.addField(useProp = new BooleanModelField("useProp", "使用道具", false));
50+
modelFields.addField(useProp = new BooleanModelField("useProp", "使用道具 | 所有", false));
51+
modelFields.addField(usePropCollectTimes7Days = new BooleanModelField("usePropCollectTimes7Days", "使用道具 | 抽卡道具", false));
52+
modelFields.addField(usePropCollectHistoryAnimal7Days = new BooleanModelField("usePropCollectHistoryAnimal7Days", "使用道具 | 抽历史卡道具", false));
53+
modelFields.addField(usePropCollectToFriendTimes7Days = new BooleanModelField("usePropCollectToFriendTimes7Days", "使用道具 | 抽好友卡道具", false));
4854
return modelFields;
4955
}
5056

@@ -234,18 +240,34 @@ private void propList() {
234240
for (int i = 0; i < propList.length(); i++) {
235241
JSONObject prop = propList.getJSONObject(i);
236242
String propType = prop.getString("propType");
243+
244+
boolean usePropType = useProp.getValue();
245+
if ("COLLECT_TIMES_7_DAYS".equals(propType)) {
246+
usePropType = usePropType || usePropCollectTimes7Days.getValue();
247+
}
248+
if ("COLLECT_HISTORY_ANIMAL_7_DAYS".equals(propType)) {
249+
usePropType = usePropType || usePropCollectHistoryAnimal7Days.getValue();
250+
}
251+
if ("COLLECT_TO_FRIEND_TIMES_7_DAYS".equals(propType)) {
252+
usePropType = usePropType || usePropCollectToFriendTimes7Days.getValue();
253+
}
254+
if (!usePropType) {
255+
continue;
256+
}
257+
258+
JSONArray propIdList = prop.getJSONArray("propIdList");
259+
String propId = propIdList.getString(0);
260+
String propName = prop.getJSONObject("propConfig").getString("propName");
261+
int holdsNum = prop.optInt("holdsNum", 0);
262+
jo = new JSONObject(AntDodoRpcCall.consumeProp(propId, propType));
263+
TimeUtil.sleep(300);
264+
if (!"SUCCESS".equals(jo.getString("resultCode"))) {
265+
Log.record(jo.getString("resultDesc"));
266+
Log.i(jo.toString());
267+
continue;
268+
}
269+
237270
if ("COLLECT_TIMES_7_DAYS".equals(propType)) {
238-
JSONArray propIdList = prop.getJSONArray("propIdList");
239-
String propId = propIdList.getString(0);
240-
String propName = prop.getJSONObject("propConfig").getString("propName");
241-
int holdsNum = prop.optInt("holdsNum", 0);
242-
jo = new JSONObject(AntDodoRpcCall.consumeProp(propId, propType));
243-
TimeUtil.sleep(300);
244-
if (!"SUCCESS".equals(jo.getString("resultCode"))) {
245-
Log.record(jo.getString("resultDesc"));
246-
Log.i(jo.toString());
247-
continue;
248-
}
249271
JSONObject useResult = jo.getJSONObject("data").getJSONObject("useResult");
250272
JSONObject animal = useResult.getJSONObject("animal");
251273
String ecosystem = animal.getString("ecosystem");
@@ -261,25 +283,11 @@ private void propList() {
261283
break;
262284
}
263285
}
264-
if (holdsNum > 1) {
265-
continue th;
266-
}
267-
} else if (useProp.getValue()) {
268-
JSONArray propIdList = prop.getJSONArray("propIdList");
269-
String propId = propIdList.getString(0);
270-
String propName = prop.getJSONObject("propConfig").getString("propName");
271-
int holdsNum = prop.optInt("holdsNum", 0);
272-
jo = new JSONObject(AntDodoRpcCall.consumeProp(propId, propType));
273-
TimeUtil.sleep(300);
274-
if (!"SUCCESS".equals(jo.getString("resultCode"))) {
275-
Log.record(jo.getString("resultDesc"));
276-
Log.i(jo.toString());
277-
continue;
278-
}
286+
} else {
279287
Log.forest("使用道具🎭[" + propName + "]");
280-
if (holdsNum > 1) {
281-
continue th;
282-
}
288+
}
289+
if (holdsNum > 1) {
290+
continue th;
283291
}
284292
}
285293
}

app/src/main/java/tkaxv7s/xposed/sesame/model/task/antFarm/AntFarm.java

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)