def character_move_to_item_shop(character_id: int): """ 移动至超市场景 Keyword arguments: character_id -- 角色id """ character_data: game_type.Character = cache.character_data[character_id] _, _, move_path, move_time = character_move.character_move( character_id, ["11"]) character_data.behavior.behavior_id = constant.Behavior.MOVE character_data.behavior.move_target = move_path character_data.behavior.duration = move_time character_data.state = constant.CharacterStatus.STATUS_MOVE
def character_move_to_classroom(character_id: int): """ 移动至所属教室 Keyword arguments: character_id -- 角色id """ character_data: game_type.Character = cache.character_data[character_id] _, _, move_path, move_time = character_move.character_move( character_id, map_handle.get_map_system_path_for_str(character_data.classroom), ) character_data.behavior.behavior_id = constant.Behavior.MOVE character_data.behavior.move_target = move_path character_data.behavior.duration = move_time character_data.state = constant.CharacterStatus.STATUS_MOVE
def character_move_to_rand_cafeteria(character_id: int): """ 移动至随机取餐区 Keyword arguments: character_id -- 角色id """ character_data: game_type.Character = cache.character_data[character_id] to_cafeteria = map_handle.get_map_system_path_for_str( random.choice(constant.place_data["Cafeteria"])) _, _, move_path, move_time = character_move.character_move( character_id, to_cafeteria) character_data.behavior.behavior_id = constant.Behavior.MOVE character_data.behavior.move_target = move_path character_data.behavior.duration = move_time character_data.state = constant.CharacterStatus.STATUS_MOVE
def character_move_to_rand_restaurant(character_id: int): """ 设置角色状态为向随机就餐区移动 Keyword arguments: character_id -- 角色id """ character_data: game_type.Character = cache.character_data[character_id] to_restaurant = map_handle.get_map_system_path_for_str( random.choice(constant.place_data["Restaurant"])) _, _, move_path, move_time = character_move.character_move( character_id, map_handle.get_map_system_path_for_str(character_data.classroom), ) character_data.behavior.behavior_id = constant.Behavior.MOVE character_data.behavior.move_target = move_path character_data.behavior.duration = move_time character_data.state = constant.CharacterStatus.STATUS_MOVE
def character_move_to_rand_scene(character_id: int): """ 移动至随机场景 Keyword arguments: character_id -- 角色id """ character_data: game_type.Character = cache.character_data[character_id] scene_list = list(cache.scene_data.keys()) now_scene_str = map_handle.get_map_system_path_str_for_list( character_data.position) scene_list.remove(now_scene_str) target_scene = random.choice(scene_list) _, _, move_path, move_time = character_move.character_move( character_id, map_handle.get_map_system_path_for_str(target_scene), ) character_data.behavior.behavior_id = constant.Behavior.MOVE character_data.behavior.move_target = move_path character_data.behavior.duration = move_time character_data.state = constant.CharacterStatus.STATUS_MOVE
def character_move_to_like_target_scene(character_id: int): """ 移动至随机某个自己喜欢的人所在场景 Keyword arguments: character_id -- 角色id """ character_data: game_type.Character = cache.character_data[character_id] character_list = [] for i in {4, 5}: character_data.social_contact.setdefault(i, set()) for c in character_data.social_contact[i]: character_list.append(i) if len(character_list): target_id = random.choice(character_list) target_data: game_type.Character = cache.character_data[target_id] _, _, move_path, move_time = character_move.character_move( character_id, target_data.position) character_data.behavior.behavior_id = constant.Behavior.MOVE character_data.behavior.move_target = move_path character_data.behavior.duration = move_time character_data.state = constant.CharacterStatus.STATUS_MOVE
def move_action(character_id: int, target_path: list): """ 移动行为执行 Keyword arguments: character_id -- 角色id target_path -- 目标地点 """ character_data = cache_contorl.character_data["character"][character_id] character_data.behavior[ "BehaviorId"] = constant.CharacterStatus.STATUS_MOVE if character_data.position == target_path: character_data.behavior["StartTime"] = 0 character_data.behavior["Duration"] = 0 character_data.behavior[ "BehaviorId"] = constant.CharacterStatus.STATUS_ARDER else: if character_data.behavior["MoveTarget"] != []: end_time = game_time.get_sub_date( character_data.behavior["Duration"], 0, 0, 0, 0, character_data.behavior["StartTime"], ) if game_time.judge_date_big_or_small(end_time, cache_contorl.game_time): pass ( move_status, _, now_target_position, now_need_time, ) = character_move.character_move(character_id, target_path) if move_status == "Null": pass else: pass
def move_action(character_id: int, target_path: list): """ 移动行为执行 Keyword arguments: character_id -- 角色id target_path -- 目标地点 """ character_data = cache_contorl.character_data["character"][character_id] character_data.behavior[ "BehaviorId"] = constant.CharacterStatus.STATUS_MOVE if character_data.position == target_path: character_data.behavior["StartTime"] = 0 character_data.behavior["Duration"] = 0 character_data.behavior[ "BehaviorId"] = constant.CharacterStatus.STATUS_ARDER else: if character_data.behavior["MoveTarget"] != []: end_time = game_time.get_sub_date( character_data.behavior["Duration"], 0, 0, 0, 0, character_data.behavior["StartTime"], ) time_judge = game_time.judge_date_big_or_small( end_time, cache_contorl.game_time) if time_judge == 0: map_handle.character_move_scene( character_data.position, character_data.behavior["MoveTarget"], character_id, ) character_data.behavior["StartTime"] = end_time elif time_judge == 1: need_time = (game_time.timetuple_to_datetime(end_time) - game_time.game_time_to_time_tuple( cache_contorl.game_time)).minutes character_data.behavior["Duration"] = need_time character_data.behavior[ "BehaviorId"] = constant.Behavior.SHARE_BLANKLY character_data.state = constant.CharacterStatus.STATUS_ARDER else: map_handle.character_move_scene( character_data.position, character_data.behavior["MoveTarget"], character_id, ) character_data.behavior["StartTime"] = end_time else: ( move_status, _, now_target_position, now_need_time, ) = character_move.character_move(character_id, target_path) if move_status != "Null": character_data.behavior["MoveTarget"] = now_target_position character_data.behavior["StartTime"] = cache_contorl.game_time character_data.behavior["Duration"] = now_need_time else: character_data.behavior["StartTime"] = cache_contorl.game_time character_data.state = constant.CharacterStatus.STATUS_ARDER character_data.behavior[ "BehaviorId"] = constant.Behavior.SHARE_BLANKLY cache_contorl.character_data["character"][character_id] = character_data