Example #1
0
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
Example #2
0
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
Example #3
0
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
Example #4
0
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
Example #5
0
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
Example #6
0
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
Example #7
0
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
Example #8
0
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