in rtfm/tasks/groups.py [0:0]
def _reset(self):
super()._reset()
self._cache.clear()
self.group_assignment.clear()
self.modifier_assignment.clear()
# sample dynamics
sample_group, sample_mod = random.choice(self.configs)
for group, monsters in sorted(list(sample_group)):
self.group_assignment.append((group, monsters))
for element, modifiers in sorted(list(sample_mod)):
self.modifier_assignment.append((ALL_TYPES[element], modifiers))
self.agent = self.place_object(self.Agent())
self.target_group, target_monsters = random.choice(self.group_assignment)
# choose a target element
target_element, target_modifiers = random.choice(self.modifier_assignment)
# choose a target monster
self.target_monster = self.place_object(self.Monster(target_element, name=random.choice(target_monsters)))
# create a target item
good = self.place_object(I.Unarmed(hit=100, damage='1'))
good.add_elemental_damage(target_element, dmg=50)
good.name = '{} {}'.format(random.choice(target_modifiers), random.choice(self.items))
good.char = 'y'
# create a distractor item
self.distractor_item = bad = self.place_object(I.Unarmed(hit=100, damage='1'))
bad_element, bad_modifiers = random.choice([m for m in self.modifier_assignment if m[0] != target_element])
bad.add_elemental_damage(bad_element, dmg=50)
bad.name = '{} {}'.format(random.choice(bad_modifiers), random.choice(self.items))
bad.char = 'n'
# create a distractor monster
bad_group, bad_monsters = random.choice([g for g in self.group_assignment if g[0] != self.target_group])
self.distractor_monster = self.place_object(self.Monster(bad_element, name=random.choice(bad_monsters)))
self.distractor_monster.char = '?'