def kill_monster(monster: Entity) -> Message: death_message = Message(f'{monster.name.capitalize()} is dead!', tcod.orange) monster.char = '%' monster.color = tcod.dark_red monster.blocks = False monster.fighter = None monster.ai = None monster.name = f'remains of {monster.name}' monster.render_order = RenderOrder.CORPSE return death_message
def kill_monster(monster: Entity): death_message = Message(f"{monster.name.capitalize()} is dead!", Colors.ORANGE) monster.char = "%" monster.color = Colors.RED monster.blocks = False monster.fighter = None monster.ai = None monster.name = f"remains of {monster.name}" monster.render_order = RenderLayer.CORPSE return death_message
def cast_confuse(entity: Entity, *, fov_map: tcod.map.Map, entities: List[Entity], target_x: int, target_y: int, **_: Any) -> ActionResults: results = [] if not fov_map.fov[target_x, target_y]: results.append({ 'consumed': False, 'message': Message( "You cannot target a tile outside your field of view.", tcod.yellow, ), }) return results for entity in entities: if entity.x == target_x and entity.y == target_y and entity.ai: confused_ai = ConfusedMonster(entity.ai, 10) confused_ai.owner = entity entity.ai = confused_ai results.append({ 'consumed': True, 'message': Message( f"The eyes of the {entity.name} look vacant, as he starts" f" to stumble around!", tcod.light_green), }) break else: results.append({ 'consumed': False, 'message': Message("There is no targetable enemy at that location.", tcod.yellow), }) return results