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
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
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
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 )
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 )