def own_charcter_move(target_scene: list): """ 主角寻路至目标场景 Keyword arguments: target_scene -- 寻路目标场景(在地图系统下的绝对坐标) """ while 1: character_data: game_type.Character = cache.character_data[0] if character_data.position != target_scene: ( move_now, now_path_list, now_target_position, now_need_time, ) = character_move(0, target_scene) if move_now == "Null": break character_data.behavior.behavior_id = constant.Behavior.MOVE character_data.behavior.move_target = now_target_position character_data.behavior.duration = now_need_time character_data.state = constant.CharacterStatus.STATUS_MOVE update.game_update_flow(now_need_time) else: break cache.character_data[0].target_character_id = 0 cache.now_panel_id = constant.Panel.IN_SCENE
def handle_teach_a_lesson(): """ 处理教课指令 """ character.init_character_behavior_start_time(0, cache.game_time) character_data: game_type.Character = cache.character_data[0] end_time = 0 now_week = cache.game_time.weekday() now_time_value = cache.game_time.hour * 100 + cache.game_time.minute timetable_list: List[ game_type.TeacherTimeTable] = cache.teacher_school_timetable[0] course = 0 end_time = 0 for timetable in timetable_list: if timetable.week_day != now_week: continue if timetable.time <= now_time_value and timetable.end_time <= now_time_value: now_value = int(now_time_value / 100) * 60 + now_time_value % 100 end_value = int( timetable.end_time / 100) * 60 + timetable.end_time % 100 end_time = end_value - now_value + 1 course = timetable.course break character_data.behavior.duration = end_time character_data.behavior.behavior_id = constant.Behavior.TEACHING character_data.state = constant.CharacterStatus.STATUS_TEACHING character_data.behavior.course_id = course update.game_update_flow(end_time)
def handle_attend_class(): """ 处理上课指令 """ character.init_character_behavior_start_time(0, cache.game_time) character_data: game_type.Character = cache.character_data[0] end_time = 0 school_id, phase = course.get_character_school_phase(0) now_time_value = cache.game_time.hour * 100 + cache.game_time.minute now_course_index = 0 for session_id in game_config.config_school_session_data[school_id]: session_config = game_config.config_school_session[session_id] if session_config.start_time <= now_time_value and session_config.end_time >= now_time_value: now_value = int(now_time_value / 100) * 60 + now_time_value % 100 end_value = int(session_config.end_time / 100) * 60 + session_config.end_time % 100 end_time = end_value - now_value + 1 now_course_index = session_config.session break now_week = cache.game_time.weekday() if not now_course_index: now_course = random.choice( list( game_config.config_school_phase_course_data[school_id][phase])) else: now_course = cache.course_time_table_data[school_id][phase][now_week][ now_course_index] character_data.behavior.duration = end_time character_data.behavior.behavior_id = constant.Behavior.ATTEND_CLASS character_data.state = constant.CharacterStatus.STATUS_ATTEND_CLASS character_data.behavior.course_id = now_course update.game_update_flow(end_time)
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 handle_handle_in_handle(): """ 处理牵手指令 """ character.init_character_behavior_start_time(0, cache.game_time) character_data: game_type.Character = cache.character_data[0] character_data.behavior.duration = 10 character_data.behavior.behavior_id = constant.Behavior.HAND_IN_HAND character_data.state = constant.CharacterStatus.STATUS_HAND_IN_HAND update.game_update_flow(10)
def handle_kiss(): """ 处理亲吻指令 """ character.init_character_behavior_start_time(0, cache.game_time) character_data: game_type.Character = cache.character_data[0] character_data.behavior.duration = 2 character_data.behavior.behavior_id = constant.Behavior.KISS character_data.state = constant.CharacterStatus.STATUS_KISS update.game_update_flow(2)
def handle_embrace(): """ 处理拥抱指令 """ character.init_character_behavior_start_time(0, cache.game_time) character_data: game_type.Character = cache.character_data[0] character_data.behavior.duration = 3 character_data.behavior.behavior_id = constant.Behavior.EMBRACE character_data.state = constant.CharacterStatus.STATUS_EMBRACE update.game_update_flow(3)
def handle_touch_head(): """ 处理摸头指令 """ character.init_character_behavior_start_time(0, cache.game_time) character_data = cache.character_data[0] character_data.behavior.duration = 2 character_data.behavior.behavior_id = constant.Behavior.TOUCH_HEAD character_data.state = constant.CharacterStatus.STATUS_TOUCH_HEAD update.game_update_flow(2)
def handle_singing(): """ 处理唱歌指令 """ character.init_character_behavior_start_time(0, cache.game_time) character_data = cache.character_data[0] character_data.behavior.duration = 5 character_data.behavior.behavior_id = constant.Behavior.SINGING character_data.state = constant.CharacterStatus.STATUS_SINGING update.game_update_flow(5)
def handle_touch_chest(): """ 处理摸胸指令 """ character.init_character_behavior_start_time(0, cache.game_time) character_data: game_type.Character = cache.character_data[0] character_data.behavior.duration = 10 character_data.behavior.behavior_id = constant.Behavior.TOUCH_CHEST character_data.state = constant.CharacterStatus.STATUS_TOUCH_CHEST update.game_update_flow(10)
def handle_rest(): """ 处理休息指令 """ character.init_character_behavior_start_time(0, cache.game_time) character_data = cache.character_data[0] character_data.behavior.duration = 10 character_data.behavior.behavior_id = constant.Behavior.REST character_data.state = constant.CharacterStatus.STATUS_REST update.game_update_flow(10)
def handle_play_guitar(): """ 处理弹吉他指令 """ character.init_character_behavior_start_time(0, cache.game_time) character_data = cache.character_data[0] character_data.behavior.duration = 10 character_data.behavior.behavior_id = constant.Behavior.PLAY_GUITAR character_data.state = constant.CharacterStatus.STATUS_PLAY_GUITAR update.game_update_flow(10)
def handle_stroke(): """ 处理抚摸指令 """ character.init_character_behavior_start_time(0, cache.game_time) character_data: game_type.Character = cache.character_data[0] character_data.behavior.duration = 10 character_data.behavior.behavior_id = constant.Behavior.STROKE character_data.state = constant.CharacterStatus.STATUS_STROKE update.game_update_flow(10)
def handle_play_piano(): """ 处理弹钢琴指令 """ character.init_character_behavior_start_time(0, cache.game_time) character_data = cache.character_data[0] character_data.behavior.duration = 30 character_data.behavior.behavior_id = constant.Behavior.PLAY_PIANO character_data.state = constant.CharacterStatus.STATUS_PLAY_PIANO update.game_update_flow(30)
def handle_sleep(): """ 处理睡觉指令 """ character.init_character_behavior_start_time(0, cache.game_time) character_data: game_type.Character = cache.character_data[0] character_data.behavior.duration = 480 character_data.behavior.behavior_id = constant.Behavior.SLEEP character_data.state = constant.CharacterStatus.STATUS_SLEEP cache.wframe_mouse.w_frame_skip_wait_mouse = 1 update.game_update_flow(480)
def eat_food(self): """ 食用食物 """ update.game_update_flow(0) character_data: game_type.Character = cache.character_data[0] now_food = character_data.food_bag[self.text] character_data.behavior.behavior_id = constant.Behavior.EAT character_data.behavior.eat_food = now_food character_data.behavior.duration = 1 character_data.state = constant.CharacterStatus.STATUS_EAT update.game_update_flow(1) cache.now_panel_id = constant.Panel.IN_SCENE
def handle_self_study(): """ 处理自习指令 """ character.init_character_behavior_start_time(0, cache.game_time) character_data: game_type.Character = cache.character_data[0] school_id, phase = course.get_character_school_phase(0) now_course_list = list( game_config.config_school_phase_course_data[school_id][phase]) now_course = random.choice(now_course_list) character_data.behavior.behavior_id = constant.Behavior.SELF_STUDY character_data.behavior.duration = 10 character_data.state = constant.CharacterStatus.STATUS_SELF_STUDY character_data.behavior.course_id = now_course update.game_update_flow(10)
def main_frame_func(): """ 游戏主页控制流程 """ input_s = [] flow_return = main_frame_panel.main_frame_panel() input_s = input_s + flow_return character_id = cache_contorl.character_data[0].target_character_id character_data = cache_contorl.character_data[character_id] character_name = character_data.name ans = game_init.askfor_all(input_s) py_cmd.clr_cmd() cache_contorl.old_flow_id = "main" if ans == character_name: cache_contorl.now_flow_id = "see_character_attr" else: if ans == "0": clothing.init_character_clothing_put_on() update.game_update_flow() cache_contorl.now_flow_id = main_frame_goto_data[ans]
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()