Spaces:
Runtime error
Runtime error
import random | |
class MarriagePlugin: | |
def __init__(self, marriage_rate, min_marriage_age=20): | |
self.marriage_rate = marriage_rate | |
self.min_marriage_age = min_marriage_age # 最小结婚年龄 | |
def perform_marriages(self, characters, callback=None): | |
# 随机一些表观年龄>20的角色结婚 | |
eligible_characters = [character for character in characters if character.apparent_age > self.min_marriage_age and character.partner is None and character.check_is_alive() and not character.is_immortal] | |
new_couple_count = 0 | |
for _ in range(int(len(eligible_characters) * self.marriage_rate)): | |
character = random.choice(eligible_characters) | |
partner = random.choice(eligible_characters) | |
if character != partner and character.gender != partner.gender and character.partner is None and partner.partner is None: | |
character.marry(partner) | |
new_couple_count += 1 | |
print(f"{new_couple_count}对新人结婚了") | |
if callback is not None: | |
callback(new_couple_count) | |
def set_marriage_rate(self, marriage_rate): | |
self.marriage_rate = marriage_rate | |
# 统一插件接口 | |
def execute(self, *args, **kwargs): | |
self.perform_marriages(*args, **kwargs) |