def enter_character_nature_func():
    """
    请求玩家确认性格流程
    """
    cache_contorl.character_data["character"][0].init_attr()
    while 1:
        py_cmd.clr_cmd()
        creator_character_panel.enter_character_nature_head()
        input_s = see_nature_panel.see_character_nature_change_panel(0)
        input_s += creator_character_panel.enter_character_nature_end()
        yrn = game_init.askfor_all(input_s)
        if yrn in cache_contorl.character_data["character"][0].nature:
            if cache_contorl.character_data["character"][0].nature[yrn] < 50:
                cache_contorl.character_data["character"][0].nature[
                    yrn
                ] = random.uniform(50, 100)
            else:
                cache_contorl.character_data["character"][0].nature[
                    yrn
                ] = random.uniform(0, 50)
        elif int(yrn) == 0:
            cache_contorl.character_data["character"][0].init_attr()
            cache_contorl.now_flow_id = "acknowledgment_attribute"
            break
        elif int(yrn) == 1:
            cache_contorl.character_data["character"][
                0
            ].nature = nature.get_random_nature()
Example #2
0
def init_attr(character_id: int):
    """
    初始化角色属性
    Keyword arguments:
    character_id -- 角色id
    """
    character_data: game_type.Character = cache.character_data[character_id]
    character_data.language[character_data.mother_tongue] = 10000
    character_data.birthday = attr_calculation.get_rand_npc_birthday(
        character_data.age)
    character_data.end_age = attr_calculation.get_end_age(character_data.sex)
    character_data.height = attr_calculation.get_height(
        character_data.sex, 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,
    )
    character_data.sex_experience = attr_calculation.get_sex_experience(
        character_data.sex_experience_tem, character_data.sex)
    default_clothing_data = clothing.creator_suit(character_data.clothing_tem,
                                                  character_data.sex)
    for clothing_id in default_clothing_data:
        clothing_data = default_clothing_data[clothing_id]
        character_data.clothing.setdefault(clothing_id, {})
        character_data.clothing[clothing_id][clothing_data.uid] = clothing_data
        character_data.clothing_data.setdefault(clothing_data.tem_id, set())
        character_data.clothing_data[clothing_data.tem_id].add(
            clothing_data.uid)
    chest_tem_config = game_config.config_chest[character_data.chest_tem]
    if chest_tem_config.weight_fix:
        fix_weight = value_handle.get_gauss_rand(
            chest_tem_config.weight_fix - 0.5,
            chest_tem_config.weight_fix + 0.5)
        character_data.weight += fix_weight
    character_data.chest = attr_calculation.get_chest(character_data.chest_tem,
                                                      character_data.birthday)
    character_data.hit_point_max = attr_calculation.get_max_hit_point(
        character_data.hit_point_tem)
    character_data.hit_point = character_data.hit_point_max
    character_data.mana_point_max = attr_calculation.get_max_mana_point(
        character_data.mana_point_tem)
    character_data.mana_point = character_data.mana_point_max
    new_nature = nature.get_random_nature()
    for nature_id in new_nature:
        if nature_id not in character_data.nature:
            character_data.nature[nature_id] = new_nature[nature_id]
    init_class(character_data)
Example #3
0
def init_attr(character_data: game_type.Character):
    """
    初始化角色属性
    Keyword arguments:
    character_data -- 角色对象
    """
    character_data.language[character_data.mother_tongue] = 10000
    character_data.birthday = attr_calculation.get_rand_npc_birthday(
        character_data.age)
    character_data.end_age = attr_calculation.get_end_age(character_data.sex)
    character_data.height = attr_calculation.get_height(
        character_data.sex, character_data.age)
    bmi = attr_calculation.get_bmi(character_data.weigt_tem)
    character_data.weight = attr_calculation.get_weight(
        bmi, character_data.height["NowHeight"])
    character_data.bodyfat = attr_calculation.get_bodyfat(
        character_data.sex, character_data.bodyfat_tem)
    character_data.measurements = attr_calculation.get_measurements(
        character_data.sex,
        character_data.height["NowHeight"],
        character_data.weight,
        character_data.bodyfat,
        character_data.bodyfat_tem,
    )
    character_data.sex_experience = attr_calculation.get_sex_experience(
        character_data.sex_experience_tem)
    character_data.sex_grade = attr_calculation.get_sex_grade(
        character_data.sex_experience)
    default_clothing_data = clothing.creator_suit(character_data.clothing_tem,
                                                  character_data.sex)
    character_data.clothing = {
        clothing: {
            uuid.uuid1(): default_clothing_data[clothing]
        } if clothing in default_clothing_data else {}
        for clothing in character_data.clothing
    }
    character_data.chest = attr_calculation.get_chest(character_data.chest_tem,
                                                      character_data.birthday)
    character_data.hit_point_max = attr_calculation.get_max_hit_point(
        character_data.hit_point_tem)
    character_data.hit_point = character_data.hit_point_max
    character_data.mana_point_max = attr_calculation.get_max_mana_point(
        character_data.mana_point_tem)
    character_data.mana_point = character_data.mana_point_max
    character_data.nature = nature.get_random_nature()
    character_data.status = text_loading.get_game_data(
        constant.FilePath.CHARACTER_STATE_PATH)
    character_data.wear_item = {
        "Wear": {
            key: {}
            for key in text_loading.get_game_data(
                constant.FilePath.WEAR_ITEM_PATH)["Wear"]
        },
        "Item": {},
    }
    character_data.engraving = {
        "Pain": 0,
        "Happy": 0,
        "Yield": 0,
        "Fear": 0,
        "Resistance": 0,
    }
    character_data.social_contact = {
        social: {}
        for social in text_loading.get_text_data(
            constant.FilePath.STAGE_WORD_PATH, "144")
    }
    init_class(character_data)
    put_on_clothing(character_data)
    if character_data.occupation == "":
        if character_data.age <= 18:
            character_data.occupation = "Student"
        else:
            character_data.occupation = "Teacher"
Example #4
0
 def init_attr(self):
     """
     随机生成角色属性
     """
     self.language[self.mother_tongue] = 10000
     self.birthday = attr_calculation.get_rand_npc_birthday(self.age)
     self.end_age = attr_calculation.get_end_age(self.sex)
     self.height = attr_calculation.get_height(self.sex, self.age, {})
     bmi = attr_calculation.get_bmi(self.weigt_tem)
     self.weight = attr_calculation.get_weight(
         bmi, self.height["NowHeight"]
     )
     self.bodyfat = attr_calculation.get_bodyfat(self.sex, self.bodyfat_tem)
     self.measurements = attr_calculation.get_measurements(
         self.sex,
         self.height["NowHeight"],
         self.weight,
         self.bodyfat,
         self.bodyfat_tem,
     )
     self.sex_experience = attr_calculation.get_sex_experience(
         self.sex_experience_tem
     )
     self.sex_grade = attr_calculation.get_sex_grade(self.sex_experience)
     default_clothing_data = clothing.creator_suit(
         self.clothing_tem, self.sex
     )
     self.clothing = {
         clothing: {uuid.uuid1(): default_clothing_data[clothing]}
         if clothing in default_clothing_data
         else {}
         for clothing in self.clothing
     }
     self.chest = attr_calculation.get_chest(self.chest_tem, self.birthday)
     self.hit_point_max = attr_calculation.get_max_hit_point(
         self.hit_point_tem
     )
     self.hit_point = self.hit_point_max
     self.mana_point_max = attr_calculation.get_max_mana_point(
         self.mana_point_tem
     )
     self.mana_point = self.mana_point_max
     self.nature = nature.get_random_nature()
     self.status = text_loading.get_game_data(
         constant.FilePath.CHARACTER_STATE_PATH
     )
     self.wear_item = {
         "Wear": {
             key: {}
             for key in text_loading.get_game_data(
                 constant.FilePath.WEAR_ITEM_PATH
             )["Wear"]
         },
         "Item": {},
     }
     self.engraving = {
         "Pain": 0,
         "Happy": 0,
         "Yield": 0,
         "Fear": 0,
         "Resistance": 0,
     }
     self.social_contact = {
         social: {}
         for social in text_loading.get_text_data(
             constant.FilePath.STAGE_WORD_PATH, "144"
         )
     }
     self.init_class()
     self.put_on_clothing()