Example #1
0
def handle_un_collection_system():
    """ 处理关闭收藏模式指令 """
    cache.is_collection = 0
    now_draw = draw.WaitDraw()
    now_draw.width = width
    now_draw.text = _("\n现在会显示所有角色的信息了!\n")
    now_draw.draw()
Example #2
0
def handle_drink_spring():
    """ 处理喝泉水指令 """
    value = random.randint(0, 100)
    now_draw = draw.WaitDraw()
    now_draw.width = width
    now_draw.text = "\n"
    character_data: game_type.Character = cache.character_data[0]
    if value <= 5 and not character_data.sex:
        now_draw.text += _("喝到了奇怪的泉水!身体变化了!!!")
        character_data.sex = 1
        character_data.height = attr_calculation.get_height(
            1, character_data.age)
        bmi = attr_calculation.get_bmi(character_data.weight_tem)
        character_data.weight = attr_calculation.get_weight(
            bmi, character_data.height.now_height)
        character_data.bodyfat = attr_calculation.get_body_fat(
            character_data.sex, character_data.bodyfat_tem)
        character_data.measurements = attr_calculation.get_measurements(
            character_data.sex,
            character_data.height.now_height,
            character_data.weight,
            character_data.bodyfat,
            character_data.bodyfat_tem,
        )
    else:
        now_draw.text += _("喝到了甜甜的泉水~")
        character_data.status[28] = 0
    now_draw.text += "\n"
    now_draw.draw()
Example #3
0
def handle_collection_system():
    """ 处理启用收藏模式指令 """
    cache.is_collection = 1
    now_draw = draw.WaitDraw()
    now_draw.width = width
    now_draw.text = _("\n现在只会显示被收藏的角色的信息了!\n")
    now_draw.draw()
Example #4
0
 def draw(self):
     """ 绘制对象 """
     py_cmd.clr_cmd()
     if self.handle_panel != None:
         while 1:
             line_feed.draw()
             title_draw = draw.TitleLineDraw(_("更衣室"), self.width)
             title_draw.draw()
             self.return_list = []
             self.handle_panel.update()
             self.handle_panel.update_button()
             self.handle_panel.draw()
             self.return_list.extend(self.handle_panel.return_list)
             back_draw = draw.CenterButton(_("[返回]"), _("返回"), self.width)
             back_draw.draw()
             self.return_list.append(back_draw.return_text)
             yrn = flow_handle.askfor_all(self.return_list)
             py_cmd.clr_cmd()
             if yrn == back_draw.return_text:
                 break
     else:
         now_text = _("空无一物")
         now_draw = draw.WaitDraw()
         now_draw.text = now_text
         now_draw.width = self.width
         now_draw.draw()
         line_feed.draw()
Example #5
0
 def draw(self):
     """ 绘制对象 """
     clothing_config = game_config.config_clothing_tem[self.clothing_id]
     info_draw = draw.WaitDraw()
     info_draw.text = clothing_config.describe
     info_draw.width = self.width
     info_draw.draw()
     line_feed.draw()
Example #6
0
 def draw(self):
     """ 绘制道具信息 """
     py_cmd.clr_cmd()
     language_config = game_config.config_language[self.cid]
     language_draw = draw.WaitDraw()
     language_draw.text = f"{language_config.name}:{language_config.info}\n"
     language_draw.width = self.width
     language_draw.draw()
Example #7
0
 def draw(self):
     """ 绘制道具信息 """
     py_cmd.clr_cmd()
     item_config = game_config.config_item[self.cid]
     item_draw = draw.WaitDraw()
     item_draw.text = f"{item_config.name}:{item_config.info}"
     item_draw.width = self.width
     item_draw.draw()
     line_feed = draw.NormalDraw()
     line_feed.text = "\n"
     line_feed.width = 1
     line_feed.draw()
Example #8
0
 def buy_item(self):
     py_cmd.clr_cmd()
     character_data: game_type.Character = cache.character_data[0]
     character_data.item.add(self.text)
     item_config = game_config.config_item[self.text]
     now_text = _("{nickname}购买了{item_name}").format(
         nickname=character_data.nick_name, item_name=item_config.name)
     now_draw = draw.WaitDraw()
     now_draw.text = now_text
     now_draw.width = window_width
     now_draw.draw()
     line_feed.draw()
     line_feed.draw()
 def draw(self):
     """ 绘制对象 """
     character_data: game_type.Character = cache.character_data[0]
     if character_data.age <= 18:
         now_draw = StudentTimeTablePanel(self.width)
         now_draw.draw()
     else:
         if 0 in cache.teacher_school_timetable:
             now_draw = TeacherTimeTablePanel(self.width)
             now_draw.draw()
         else:
             title_draw = draw.TitleLineDraw(_("课程表"), self.width)
             title_draw.draw()
             now_draw = draw.WaitDraw()
             now_draw.width = self.width
             now_draw.text = _("无课时安排")
             now_draw.draw()
             cache.now_panel_id = constant.Panel.IN_SCENE
Example #10
0
def handle_settle_behavior(character_id: int, now_time: datetime.datetime):
    """
    处理结算角色行为
    Keyword arguments:
    character_id -- 角色id
    now_time -- 结算时间
    """
    status_data: game_type.CharacterStatusChange = cache.settle_behavior_data[
        cache.character_data[character_id].behavior.behavior_id](character_id,
                                                                 now_time)
    now_judge = False
    if status_data == None:
        return
    if status_data.mana_point:
        now_judge = True
    if status_data.hit_point:
        now_judge = True
    if len(status_data.knowledge):
        now_judge = True
    if len(status_data.language):
        now_judge = True
    if len(status_data.status):
        now_judge = True
    if len(status_data.favorability) and not character_id:
        now_judge = True
    if now_judge:
        if not character_id or character_id == cache.character_data[
                0].target_character_id:
            now_character_data = cache.character_data[character_id]
            now_draw = draw.NormalDraw()
            now_draw.text = "\n" + now_character_data.name + "\n"
            now_draw.width = width
            now_draw.draw()
            now_text_list = []
            if status_data.hit_point:
                now_text_list.append(
                    _("体力:") + str(round(status_data.hit_point, 2)))
            if status_data.mana_point:
                now_text_list.append(
                    _("气力:") + str(round(status_data.mana_point, 2)))
            if len(status_data.status):
                now_text_list.extend([
                    f"{game_config.config_character_state[i].name}:{round(status_data.status[i],2)}"
                    for i in status_data.status
                ])
            if len(status_data.knowledge):
                now_text_list.extend([
                    f"{game_config.config_knowledge[i].name}:{round(status_data.knowledge[i],2)}"
                    for i in status_data.knowledge
                ])
            if len(status_data.language):
                now_text_list.extend([
                    f"{game_config.config_language[i].name}:{round(status_data.language[i],2)}"
                    for i in status_data.language
                ])
            if len(status_data.favorability) and not character_id:
                now_text_list.extend([
                    _("{target_name}对{character_name}好感").format(
                        target_name=cache.character_data[i].name,
                        character_name=now_character_data.name) +
                    text_handle.number_to_symbol_string(
                        round(status_data.favorability[i], 2))
                    for i in status_data.favorability
                ])
            now_panel = panel.LeftDrawTextListPanel()
            now_panel.set(now_text_list, width, 8)
            now_panel.draw()
            wait_draw = draw.WaitDraw()
            wait_draw.draw()
Example #11
0
def handle_settle_behavior(character_id: int, now_time: datetime.datetime):
    """
    处理结算角色行为
    Keyword arguments:
    character_id -- 角色id
    now_time -- 结算时间
    """
    now_character_data: game_type.Character = cache.character_data[
        character_id]
    status_data = game_type.CharacterStatusChange()
    start_time = now_character_data.behavior.start_time
    add_time = int((now_time - start_time).seconds / 60)
    behavior_id = now_character_data.behavior.behavior_id
    if behavior_id in game_config.config_behavior_effect_data:
        for effect_id in game_config.config_behavior_effect_data[behavior_id]:
            constant.settle_behavior_effect_data[effect_id](character_id,
                                                            add_time,
                                                            status_data)
    change_character_social(character_id, status_data)
    now_judge = False
    if character_id:
        return
    if status_data == None:
        return
    if status_data.mana_point:
        now_judge = True
    if status_data.hit_point:
        now_judge = True
    if len(status_data.knowledge):
        now_judge = True
    if len(status_data.language):
        now_judge = True
    if len(status_data.status):
        now_judge = True
    if len(status_data.sex_experience):
        now_judge = True
    if len(status_data.target_change) and not character_id:
        now_judge = True
    if now_judge:
        now_text_list = []
        now_draw = draw.NormalDraw()
        now_draw.text = "\n" + now_character_data.name + ": "
        now_draw.width = width
        now_draw.draw()
        if status_data.hit_point:
            now_text_list.append(
                _("体力:") + str(round(status_data.hit_point, 2)))
        if status_data.mana_point:
            now_text_list.append(
                _("气力:") + str(round(status_data.mana_point, 2)))
        if len(status_data.status):
            now_text_list.extend([
                f"{game_config.config_character_state[i].name}:{text_handle.number_to_symbol_string(round(status_data.status[i],2))}"
                for i in status_data.status
            ])
        if len(status_data.knowledge):
            now_text_list.extend([
                f"{game_config.config_knowledge[i].name}:{text_handle.number_to_symbol_string(round(status_data.knowledge[i],2))}"
                for i in status_data.knowledge
            ])
        if len(status_data.language):
            now_text_list.extend([
                f"{game_config.config_language[i].name}:{text_handle.number_to_symbol_string(round(status_data.language[i],2))}"
                for i in status_data.language
            ])
        if len(status_data.sex_experience):
            now_text_list.extend([
                game_config.config_organ[i].name + _("经验:") +
                text_handle.number_to_symbol_string(
                    round(status_data.sex_experience[i], 2))
                for i in status_data.sex_experience
            ])
        if len(status_data.target_change):
            for target_character_id in status_data.target_change:
                if character_id and target_character_id:
                    continue
                target_change: game_type.TargetChange = status_data.target_change[
                    target_character_id]
                target_data: game_type.Character = cache.character_data[
                    target_character_id]
                now_text = f"\n{target_data.name}:"
                judge = 0
                if target_change.favorability:
                    now_text += _(" 对{character_name}好感").format(
                        character_name=now_character_data.name
                    ) + text_handle.number_to_symbol_string(
                        round(target_change.favorability, 2))
                    judge = 1
                if target_change.new_social != target_change.old_social:
                    now_text += (" " + game_config.config_social_type[
                        target_change.old_social].name + "->" +
                                 game_config.config_social_type[
                                     target_change.new_social].name)
                    judge = 1
                if len(target_change.status):
                    for status_id in target_change.status:
                        if target_change.status[status_id]:
                            now_text += (
                                " " + game_config.
                                config_character_state[status_id].name +
                                text_handle.number_to_symbol_string(
                                    round(target_change.status[status_id], 2)))
                            judge = 1
                if len(target_change.sex_experience):
                    for organ in target_change.sex_experience:
                        if target_change.sex_experience[organ]:
                            now_text += (
                                " " + game_config.config_organ[organ].name +
                                _("经验:") + text_handle.number_to_symbol_string(
                                    round(status_data.sex_experience[organ],
                                          2)))
                            judge = 1
                if judge:
                    now_text_list.append(now_text)
        now_panel = panel.LeftDrawTextListPanel()
        now_panel.set(now_text_list, width, 8)
        now_panel.draw()
        wait_draw = draw.WaitDraw()
        wait_draw.draw()