构想数量计算获取
All checks were successful
ci/woodpecker/push/check_format Pipeline was successful

This commit is contained in:
Elaina 2024-12-25 13:39:35 +08:00
parent a52396d40d
commit 34710de065

View file

@ -24,6 +24,7 @@ class ChooseNextNodeSolver(SceneGraphSolver):
def run(self): def run(self):
self.success = False self.success = False
self.start_time = datetime.now() self.start_time = datetime.now()
self.idea_num = None
super().run() super().run()
data.next_step = {} data.next_step = {}
if self.success and self.node_id: if self.success and self.node_id:
@ -32,11 +33,16 @@ class ChooseNextNodeSolver(SceneGraphSolver):
data.last_node_id = self.node_id data.last_node_id = self.node_id
logger.info(f"{data.next_step=}") logger.info(f"{data.next_step=}")
@property
def current_idea_num(self) -> int:
if self.idea_num is None:
self.idea_num = get_idea_num()
return self.idea_num
def get_next_node_id(self) -> str: def get_next_node_id(self) -> str:
current_idea_num = get_idea_num()
layer = detect_layer() layer = detect_layer()
logger.debug(f"{current_idea_num=} {layer=}") logger.debug(f"{self.current_idea_num=} {layer=}")
idea_num = current_idea_num if layer == 5 else current_idea_num - 2 idea_num = self.current_idea_num if layer == 5 else self.current_idea_num - 2
if config.conf.rogue.mode == 1: if config.conf.rogue.mode == 1:
compare_rules: list = [("紧急作战", True), ("length", True), ("idea", True)] compare_rules: list = [("紧急作战", True), ("length", True), ("idea", True)]
elif config.conf.rogue.mode == 0: elif config.conf.rogue.mode == 0:
@ -53,6 +59,8 @@ class ChooseNextNodeSolver(SceneGraphSolver):
if not refresh_time: if not refresh_time:
continue continue
road = get_optimal_path(node_id, idea_num) road = get_optimal_path(node_id, idea_num)
if road.idea > self.current_idea_num:
continue
valid_road.append(road) valid_road.append(road)
if not valid_road: if not valid_road:
self.node_id = "" self.node_id = ""
@ -139,13 +147,11 @@ class ChooseNextNodeSolver(SceneGraphSolver):
f"{type=} {data.nodes[self.node_id].type=} {data.next_step=}" f"{type=} {data.nodes[self.node_id].type=} {data.next_step=}"
) )
data.nodes[self.node_id].type = node_type data.nodes[self.node_id].type = node_type
if data.next_step[self.node_id] == 0: # 第二次刷新时,构想数量-1
self.idea_num -= 1
return return
self.tap("rogue/refresh") self.tap("rogue/refresh")
return return
if self.need_idea > get_idea_num():
data.next_step[self.node_id] = 0
return
self.ctap("rogue/go", 3) self.ctap("rogue/go", 3)
self.success = True self.success = True