# Path: console.py
# class ConsoleVisual(object):
#     def __init__(self, width, height):
#     def get_color_fg(self, position):
#     def get_color_bg(self, position):
#     def get_symbol(self, position):
#     def get_default_color_fg(self):
#     def get_default_color_bg(self):
#     def set_default_color_fg(self, color, console=0):
#     def set_default_color_bg(self, color, console=0):
#     def set_symbol(self, position, icon, console=0):
#     def set_color_fg(self, position, color, console=0):
#     def set_color_bg(self, position, color, effect=libtcod.BKGND_SET, console=0):
#     def print_text(self, position, text):
#     def print_text_vertical(self, position, text):
#     def set_colors_and_symbol(self, position, color_fg, color_bg, icon, console=0):
#     def print_char_big(self, icon_position, destination, console=0):
#     def flush(self):
#     def print_screen(self):
# 
# Path: graphic.py
# class GraphicChar(Leaf):
#     """
#     Composites holding this has a graphical representation as a char.
#     """
# 
#     def __init__(self, color_bg, color_fg, icon):
#         super(GraphicChar, self).__init__()
#         self.component_type = "graphic_char"
#         self._color_bg = color_bg
#         self._color_fg = color_fg
#         self._icon = icon
# 
#     @property
#     def color_bg(self):
#         if self._color_bg:
#             return self._color_bg
#         elif self.next:
#             return self.next.color_bg
#         return None
# 
# 
#     @color_bg.setter
#     def color_bg(self, value):
#         self._color_bg = value
# 
#     @property
#     def color_fg(self):
#         if self._color_fg:
#             return self._color_fg
#         elif self.next:
#             return self.next.color_fg
#         return None
# 
#     @color_fg.setter
#     def color_fg(self, value):
#         self._color_fg = value
# 
#     @property
#     def icon(self):
#         if self._icon:
#             return self._icon
#         elif self.next:
#             return self.next.icon
#         return None
# 
#     @icon.setter
#     def icon(self, value):
#         self._icon = value
# 
#     def copy(self):
#         """
#         Makes a copy of this component.
#         """
#         return GraphicChar(self.color_bg, self.color_fg, self.icon)


from console import console
from graphic import GraphicChar
import icon
import settings
    if not game_state.player.dungeon_mask.can_see_point(position):
        return
    camera = game_state.camera
    x, y = camera.dungeon_to_screen_position(position)
    for graphic_char in graphic_chars:
        game_state.prepare_draw()
        console.set_color_fg((x, y), graphic_char.color_fg)
        console.set_symbol((x, y), graphic_char.icon)
        for _ in range(settings.MISSILE_ANIMATION_DELAY):
            console.flush()


def animate_fall_sync(target_entity):
    color_fg = target_entity.graphic_char.color_fg
    target_entity.game_state.value.force_draw()
    graphic_chars = [target_entity.graphic_char,
                     GraphicChar(None, color_fg, icon.BIG_CENTER_DOT),
                     GraphicChar(None, color_fg, "*"),
                     GraphicChar(None, color_fg, "+"),
                     GraphicChar(None, color_fg, icon.CENTER_DOT)]
    animate_point(target_entity.game_state.value, target_entity.position.value, graphic_chars)


def animate_fall(target_entity, animation_target_piece):
    color_fg = target_entity.graphic_char.color_fg
    target_entity.game_state.value.force_draw()
    graphic_chars = [target_entity.graphic_char,
                     GraphicChar(None, color_fg, icon.BIG_CENTER_DOT),
                     GraphicChar(None, color_fg, "*"),
                     GraphicChar(None, color_fg, "+"),

# Path: console.py
# class ConsoleVisual(object):
#     def __init__(self, width, height):
#     def get_color_fg(self, position):
#     def get_color_bg(self, position):
#     def get_symbol(self, position):
#     def get_default_color_fg(self):
#     def get_default_color_bg(self):
#     def set_default_color_fg(self, color, console=0):
#     def set_default_color_bg(self, color, console=0):
#     def set_symbol(self, position, icon, console=0):
#     def set_color_fg(self, position, color, console=0):
#     def set_color_bg(self, position, color, effect=libtcod.BKGND_SET, console=0):
#     def print_text(self, position, text):
#     def print_text_vertical(self, position, text):
#     def set_colors_and_symbol(self, position, color_fg, color_bg, icon, console=0):
#     def print_char_big(self, icon_position, destination, console=0):
#     def flush(self):
#     def print_screen(self):
# 
# Path: graphic.py
# class GraphicChar(Leaf):
#     """
#     Composites holding this has a graphical representation as a char.
#     """
# 
#     def __init__(self, color_bg, color_fg, icon):
#         super(GraphicChar, self).__init__()
#         self.component_type = "graphic_char"
#         self._color_bg = color_bg
#         self._color_fg = color_fg
#         self._icon = icon
# 
#     @property
#     def color_bg(self):
#         if self._color_bg:
#             return self._color_bg
#         elif self.next:
#             return self.next.color_bg
#         return None
# 
# 
#     @color_bg.setter
#     def color_bg(self, value):
#         self._color_bg = value
# 
#     @property
#     def color_fg(self):
#         if self._color_fg:
#             return self._color_fg
#         elif self.next:
#             return self.next.color_fg
#         return None
# 
#     @color_fg.setter
#     def color_fg(self, value):
#         self._color_fg = value
# 
#     @property
#     def icon(self):
#         if self._icon:
#             return self._icon
#         elif self.next:
#             return self.next.icon
#         return None
# 
#     @icon.setter
#     def icon(self, value):
#         self._icon = value
# 
#     def copy(self):
#         """
#         Makes a copy of this component.
#         """
#         return GraphicChar(self.color_bg, self.color_fg, self.icon)


# Path: animation.py
from console import console
from graphic import GraphicChar
import icon
import settings

    if not game_state.player.dungeon_mask.can_see_point(position):
        return
    camera = game_state.camera
    x, y = camera.dungeon_to_screen_position(position)
    for graphic_char in graphic_chars:
        game_state.prepare_draw()
        console.set_color_fg((x, y), graphic_char.color_fg)
        console.set_symbol((x, y), graphic_char.icon)
        for _ in range(settings.MISSILE_ANIMATION_DELAY):
            console.flush()


def animate_fall_sync(target_entity):
    color_fg = target_entity.graphic_char.color_fg
    target_entity.game_state.value.force_draw()
    graphic_chars = [target_entity.graphic_char,
                     GraphicChar(None, color_fg, icon.BIG_CENTER_DOT),
                     GraphicChar(None, color_fg, "*"),
                     GraphicChar(None, color_fg, "+"),
                     GraphicChar(None, color_fg, icon.CENTER_DOT)]
    animate_point(target_entity.game_state.value, target_entity.position.value, graphic_chars)


def animate_fall(target_entity, animation_target_piece):
    color_fg = target_entity.graphic_char.color_fg
    target_entity.game_state.value.force_draw()
    graphic_chars = [target_entity.graphic_char,
                     GraphicChar(None, color_fg, icon.BIG_CENTER_DOT),
                     GraphicChar(None, color_fg, "*"),
                     GraphicChar(None, color_fg, "+"),

                     GraphicChar(None, color_fg, icon.CENTER_DOT)]