import random class DisasterPlugin: def __init__(self, disaster_frequency, disaster_prob): self.disaster_frequency = disaster_frequency self.disaster_prob = disaster_prob def trigger_disaster(self, characters, character_die_callback): print("发生自然灾难...") num_killed = int(len(characters) * self.disaster_prob) killed = random.sample(characters, num_killed) for c in killed: c.history.append(f"{c.real_age}岁,死于自然灾难") character_die_callback(c) def execute(self, characters, round_num, character_die_callback): if round_num % self.disaster_frequency == 0 and random.random() < self.disaster_prob: self.trigger_disaster(characters, character_die_callback)