Stabilize Mianzhu release QA finish
This commit is contained in:
@@ -1617,6 +1617,12 @@ async function playBattleWithoutDebugVictory(page, battle) {
|
|||||||
(!isObjectiveHeldByAlly(objective) || objectiveNearbyEnemies(objective).some((nearbyEnemy) => !nearbyEnemy.id.includes('leader')))
|
(!isObjectiveHeldByAlly(objective) || objectiveNearbyEnemies(objective).some((nearbyEnemy) => !nearbyEnemy.id.includes('leader')))
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
const secureObjectivesSatisfied = () => {
|
||||||
|
const objectives = (state().objectives ?? []).filter((objective) => {
|
||||||
|
return objective.category === 'bonus' && objective.id !== 'quick' && objective.targetTile;
|
||||||
|
});
|
||||||
|
return objectives.length > 0 && objectives.every((objective) => objective.achieved || isObjectiveHeldByAlly(objective));
|
||||||
|
};
|
||||||
|
|
||||||
function withUnitAt(unit, tile, callback) {
|
function withUnitAt(unit, tile, callback) {
|
||||||
const original = { x: unit.x, y: unit.y };
|
const original = { x: unit.x, y: unit.y };
|
||||||
@@ -1810,6 +1816,9 @@ async function playBattleWithoutDebugVictory(page, battle) {
|
|||||||
if (protectedIds.size > 1 && !isLeaderTarget) {
|
if (protectedIds.size > 1 && !isLeaderTarget) {
|
||||||
return unit.hp >= Math.ceil(unit.maxHp * 0.75) && threat <= Math.floor(unit.hp * 0.22);
|
return unit.hp >= Math.ceil(unit.maxHp * 0.75) && threat <= Math.floor(unit.hp * 0.22);
|
||||||
}
|
}
|
||||||
|
if (no === 32 && isLeaderTarget && secureObjectivesSatisfied()) {
|
||||||
|
return unit.hp >= Math.ceil(unit.maxHp * 0.45) && threat <= Math.floor(unit.hp * 0.7);
|
||||||
|
}
|
||||||
if (isLeaderTarget && (pressProtected || kill) && threat <= Math.floor(unit.hp * (pressProtected ? 0.7 : 0.42))) {
|
if (isLeaderTarget && (pressProtected || kill) && threat <= Math.floor(unit.hp * (pressProtected ? 0.7 : 0.42))) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -1917,6 +1926,10 @@ async function playBattleWithoutDebugVictory(page, battle) {
|
|||||||
if (!outerVillageDone) {
|
if (!outerVillageDone) {
|
||||||
return { x: 46, y: 27 };
|
return { x: 46, y: 27 };
|
||||||
}
|
}
|
||||||
|
const leaderDone = (state().objectives ?? []).find((objective) => objective.id === 'leader')?.achieved;
|
||||||
|
if (!leaderDone && secureObjectivesSatisfied()) {
|
||||||
|
return { x: 60, y: 18 };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
@@ -1940,7 +1953,8 @@ async function playBattleWithoutDebugVictory(page, battle) {
|
|||||||
|
|
||||||
function advancePointTile(unit, tiles) {
|
function advancePointTile(unit, tiles) {
|
||||||
const point = scenarioAdvancePoint(unit);
|
const point = scenarioAdvancePoint(unit);
|
||||||
if (!point || (protectedIds.has(unit.id) && !isLastProtectedFighter(unit))) {
|
const protectedScenarioPush = no === 32 && secureObjectivesSatisfied();
|
||||||
|
if (!point || (protectedIds.has(unit.id) && !isLastProtectedFighter(unit) && !protectedScenarioPush)) {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
const currentDistance = distance(unit, point);
|
const currentDistance = distance(unit, point);
|
||||||
|
|||||||
Reference in New Issue
Block a user