def own_charcter_move(target_scene: list): """ 主角寻路至目标场景 Keyword arguments: target_scene -- 寻路目标场景(在地图系统下的绝对坐标) """ ( move_now, now_path_list, now_target_position, now_need_time, ) = character_move(0, target_scene) if move_now == "Null": null_message = text_loading.get_text_data( constant.FilePath.MESSAGE_PATH, "30" ) era_print.normal_print(null_message) else: map_handle.character_move_scene( cache_contorl.character_data[0].position, now_target_position, 0, ) game_time.sub_time_now(now_need_time) if cache_contorl.character_data[0].position != target_scene: own_charcter_move(target_scene) update.game_update_flow() cache_contorl.character_data[0].target_character_id = 0 cache_contorl.now_flow_id = "in_scene"
def game_update_flow(add_time: int): """ 游戏流程刷新 Keyword arguments: add_time -- 游戏步进的时间 """ character_behavior.init_character_behavior() game_time.sub_time_now(add_time) character_behavior.init_character_behavior()
def handle_rest(): """ 处理休息指令 """ character.init_character_behavior_start_time(0) character_data = cache_contorl.character_data[0] character_data.behavior["Duration"] = 10 character_data.behavior["BehaviorId"] = constant.Behavior.REST character_data.state = constant.CharacterStatus.STATUS_REST if character_data.hit_point > character_data.hit_point_max: character_data.hit_point = character_data.hit_point_max target_character = cache_contorl.character_data[ character_data.target_character_id] if (target_character.state == constant.CharacterStatus.STATUS_ARDER and target_character.behavior["BehaviorId"] == constant.Behavior.SHARE_BLANKLY): target_character.state = constant.CharacterStatus.STATUS_REST character.init_character_behavior_start_time( character_data.target_character_id) target_character.behavior["Duration"] = 10 target_character.behavior["BehaviorId"] = constant.Behavior.REST update.game_update_flow() game_time.sub_time_now(10) update.game_update_flow()