WorldSimulation / plugins /MarriagePlugin.py
yingqianjiang-lingoace
Add application file
bcf0302
raw
history blame
1.04 kB
import random
class MarriagePlugin:
def __init__(self, marriage_rate):
self.marriage_rate = marriage_rate
def perform_marriages(self, characters):
# 随机一些表观年龄>20的角色结婚
eligible_characters = [character for character in characters if character.apparent_age > 20 and character.partner is None]
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}对新人结婚了")
def set_marriage_rate(self, marriage_rate):
self.marriage_rate = marriage_rate
# 统一插件接口
def execute(self, *args, **kwargs):
self.perform_marriages(*args, **kwargs)