def roarState(self): # spawn one to five Carnivores to irritate the shit out of the player self.anim = 'roar' s = False sound.serpentRoar.Play() for wait in range(200): n = self._animator.curFrame - 12 # Yet another hack. ika.Map.xwin += ika.Random(-n, n + 1) ika.Map.ywin += ika.Random(-n, n + 1) yield None # need to destroy old corpses (a first!) for e in system.engine.entities: if e.stats.hp == 0 and isinstance(e, Enemy): system.engine.destroyEntity(e) for q in range(ika.Random(1, 4)): x, y = 320 + (q * 60), 588 n = ika.EntitiesAt(x, y, x + 16, y + 16, self.layer) if not n: if self.stats.hp > self.stats.maxhp / 2: #normal if ika.Random(0, 2): e = Carnivore( ika.Entity(x, y, self.layer, 'carnivore.ika-sprite')) else: e = AnkleBiter( ika.Entity(x, y, self.layer, 'anklebiter.ika-sprite')) else: #half dead, stronger spawns if ika.Random(0, 2): e = Devourer( ika.Entity(x, y, self.layer, 'devourer.ika-sprite')) else: e = Carnivore( ika.Entity(x, y, self.layer, 'carnivore.ika-sprite')) system.engine.addEntity(e) e.mood = e.attackMood