コード例 #1
0
ファイル: default.py プロジェクト: ctjh031116/dieloli
def handle_target_add_small_lust(
    character_id: int, add_time: int, change_data: game_type.CharacterStatusChange
):
    """
    交互对象增加少量色欲
    Keyword arguments:
    character_id -- 角色id
    add_time -- 结算时间
    change_data -- 状态变更信息记录对象
    """
    if not add_time:
        return
    character_data: game_type.Character = cache.character_data[character_id]
    target_data: game_type.Character = cache.character_data[character_data.target_character_id]
    if target_data.dead:
        return
    target_data.status.setdefault(21, 0)
    target_data.social_contact_data.setdefault(character_id, 0)
    if target_data.social_contact_data[character_id] >= 2:
        now_lust = target_data.status[21]
        now_lust_multiple = 1 + now_lust / 10
        target_data.knowledge.setdefault(9, 0)
        now_add_lust = (add_time + character_data.knowledge[9]) * now_lust
        target_data.status[21] += now_add_lust
        change_data.target_change.setdefault(target_data.cid, game_type.TargetChange())
        target_change: game_type.TargetChange = change_data.target_change[target_data.cid]
        target_change.status.setdefault(21, 0)
        target_change.status[21] += now_add_lust
コード例 #2
0
ファイル: default.py プロジェクト: ctjh031116/dieloli
def handle_target_add_small_clitoris_happy(
    character_id: int, add_time: int, change_data: game_type.CharacterStatusChange
):
    """
    交互对象增加少量阴蒂快感
    Keyword arguments:
    character_id -- 角色id
    add_time -- 结算时间
    change_data -- 状态变更信息记录对象
    """
    if not add_time:
        return
    character_data: game_type.Character = cache.character_data[character_id]
    if character_data.sex in {0, 4}:
        return
    target_data: game_type.Character = cache.character_data[character_data.target_character_id]
    if target_data.dead:
        return
    target_data.social_contact_data.setdefault(character_id, 0)
    if target_data.social_contact_data[character_id] >= 3:
        target_data.status.setdefault(3, 0)
        target_happy = add_time
        target_data.sex_experience.setdefault(2, 0)
        target_happy *= (
            1
            + attr_calculation.get_experience_level_weight(target_data.sex_experience[2])
            + target_data.status[3] / 100
        )
        character_data.knowledge.setdefault(9, 0)
        target_happy *= 1 + attr_calculation.get_experience_level_weight(character_data.knowledge[9])
        target_data.status[3] += target_happy
        change_data.target_change.setdefault(target_data.cid, game_type.TargetChange())
        target_change: game_type.TargetChange = change_data.target_change[target_data.cid]
        target_change.status.setdefault(3, 0)
        target_change.status[3] += target_happy
コード例 #3
0
ファイル: default.py プロジェクト: ctjh031116/dieloli
def handle_target_add_small_clitoris_sex_experience(
    character_id: int, add_time: int, change_data: game_type.CharacterStatusChange
):
    """
    交互对象增加少量阴蒂性爱经验
    Keyword arguments:
    character_id -- 角色id
    add_time -- 结算时间
    change_data -- 状态变更信息记录对象
    """
    if not add_time:
        return
    character_data: game_type.Character = cache.character_data[character_id]
    if character_data.sex in {0, 4}:
        return
    target_data: game_type.Character = cache.character_data[character_data.target_character_id]
    if target_data.dead:
        return
    target_data.social_contact_data.setdefault(character_id, 0)
    if target_data.social_contact_data[character_id] >= 3:
        target_data.sex_experience.setdefault(2, 0)
        target_data.sex_experience[2] += add_time
        change_data.target_change.setdefault(target_data.cid, game_type.TargetChange())
        target_change: game_type.TargetChange = change_data.target_change[target_data.cid]
        target_change.sex_experience.setdefault(2, 0)
        target_change.sex_experience[2] += add_time
コード例 #4
0
ファイル: default.py プロジェクト: ctjh031116/dieloli
def handle_add_social_favorability(
    character_id: int, add_time: int, change_data: game_type.CharacterStatusChange
):
    """
    增加社交关系好感
    Keyword arguments:
    character_id -- 角色id
    add_time -- 结算时间
    change_data -- 状态变更信息记录对象
    """
    if not add_time:
        return
    character_data: game_type.Character = cache.character_data[character_id]
    if character_data.target_character_id != character_id:
        target_data: game_type.Character = cache.character_data[character_data.target_character_id]
        if target_data.dead:
            return
        if (
            character_id in target_data.social_contact_data
            and target_data.social_contact_data[character_id]
        ):
            change_data.target_change.setdefault(target_data.cid, game_type.TargetChange())
            target_change = change_data.target_change[target_data.cid]
            add_favorability = character.calculation_favorability(character_id, target_data.cid, add_time)
            add_favorability *= target_data.social_contact_data[character_id]
            if add_favorability:
                character_handle.add_favorability(
                    character_id, target_data.cid, add_favorability, target_change
                )
コード例 #5
0
ファイル: default.py プロジェクト: ctjh031116/dieloli
def handle_add_intimate_favorability(
    character_id: int, add_time: int, change_data: game_type.CharacterStatusChange
):
    """
    增加私密行为好感
    Keyword arguments:
    character_id -- 角色id
    add_time -- 结算时间
    change_data -- 状态变更信息记录对象
    """
    if not add_time:
        return
    character_data: game_type.Character = cache.character_data[character_id]
    if character_data.target_character_id != character_id:
        target_data: game_type.Character = cache.character_data[character_data.target_character_id]
        if target_data.dead:
            return
        add_favorability = character.calculation_favorability(
            character_id, character_data.target_character_id, add_time * 2
        )
        add_favorability_coefficient = add_favorability / (add_time * 2)
        social = 0
        if character_id in target_data.social_contact_data:
            social = target_data.social_contact_data[character_id]
        change_data.target_change.setdefault(character_data.target_character_id, game_type.TargetChange())
        target_change: game_type.TargetChange = change_data.target_change[target_data.cid]
        target_data: game_type.Character = cache.character_data[character_data.target_character_id]
        if social >= 3:
            add_favorability += add_favorability_coefficient * social
            character_handle.add_favorability(
                character_id, target_data.cid, add_favorability, target_change
            )
        else:
            add_favorability -= add_favorability_coefficient * social
            cal_social = social
            if not cal_social:
                cal_social = 1
            add_disgust = (1000 - add_favorability) / cal_social
            target_data.status.setdefault(12, 0)
            target_data.status[12] += add_disgust
            target_change.status.setdefault(12, 0)
            target_change.status[12] += add_disgust
            character_handle.add_favorability(
                character_id, target_data.cid, add_favorability, target_change
            )