def get_creature(self, location=None): name = Name(self.get_adjective()+" ghoul") ghoul = actor.Person(location, name=name, sched=self.schedule) ai.WanderingMonsterAI(ghoul) ghoul.body = body.UndeadBody(ghoul) ghoul.combat_skill = 60 return ghoul
def create_random_creatures(self, amount=None): if amount is None: amount = max(7, min(25, int(self.power))) out = [] for _ in range(amount): ant = actor.Person(location=None, name=Name("giant ant")) ant.damage_type = "sharp" ant.damage_mult = 2 ant.combat_skill = 30 ant.ai = ai.WanderingMonsterAI(ant) out.append(ant) return out
def create_random_creatures(self, amount=None): if amount is None: amount = len(self.adjectives) shuffle(self.adjectives) actors = [] for adjective in self.adjectives[:amount]: ghoul = actor.Person(name=Name(adjective + " ghoul")) ai.WanderingMonsterAI(ghoul) ghoul.body = body.UndeadBody(ghoul) ghoul.combat_skill = 60 actors.append(ghoul) return actors
def build_actors(self): for adjective in self.adjectives: kobold = actor.SquadActor(location=None, name=Name(adjective) + "kobold") self.actors.append(kobold) boss = actor.Person( location=None, name=Name("kobold leader"), ) self.actors.append(boss) boss.ai = ai.WanderingMonsterAI(boss) sword = game_object.Item(location=boss, name=Name("crude sword")) sword.damage_type = "sharp" sword.damage_mult = 6 self.location_functions[boss] = self.boss_location_function
def build(self): for kobold in self.create_random_creatures(): self.actors.append(kobold) boss = actor.Person( location=None, name=Name("kobold leader"), ) boss.traits.add(trait.kobold()) boss.ai = ai.WanderingMonsterAI(boss) boss.combat_skill = 75 sword = game_object.Item(location=boss, name=Name("crude sword")) sword.damage_type = "sharp" sword.damage_mult = 6 self.location_functions[boss] = self.boss_location_function self.actors.append(boss)