diff --git a/assets save/textures/dark_desktop.png b/assets/story/directory_search/background.png similarity index 100% rename from assets save/textures/dark_desktop.png rename to assets/story/directory_search/background.png diff --git a/assets save/textures/blocked_directory.png b/assets/story/directory_search/blocked_directory.png similarity index 100% rename from assets save/textures/blocked_directory.png rename to assets/story/directory_search/blocked_directory.png diff --git a/assets save/textures/user_directory.png b/assets/story/directory_search/defender_directory.png similarity index 100% rename from assets save/textures/user_directory.png rename to assets/story/directory_search/defender_directory.png diff --git a/assets save/textures/directory.png b/assets/story/directory_search/directory.png similarity index 100% rename from assets save/textures/directory.png rename to assets/story/directory_search/directory.png diff --git a/assets save/textures/attack_point.png b/assets/story/directory_search/search_alert.png similarity index 100% rename from assets save/textures/attack_point.png rename to assets/story/directory_search/search_alert.png diff --git a/src/scenes/directory_search.py b/src/scenes/directory_search.py new file mode 100644 index 0000000..2d6ca26 --- /dev/null +++ b/src/scenes/directory_search.py @@ -0,0 +1,52 @@ +""" +Scène du jeu dans lequel Windows Defender se cache de Edmond dans les dossiers. +""" + +from engine import Scene +from engine.ecs import Entity +from engine.math import Vec2 +from plugins import assets as plugin_assets, render + + +LINES = 3 +COLUMNS = 5 +SPACING = 200 + + +class DirectoryPosition(Vec2): + """ + Composant représentant la position d'un dossier sur la grille. + """ + + def screen_position(self) -> Vec2: + """ + Calcule la position du dossier sur l'écran. + """ + offset = -(Vec2(SPACING) * Vec2(COLUMNS - 1, LINES - 1) / 2) + first_position = Vec2(render.WIDTH / 2, render.HEIGHT / 2) + offset + return first_position + Vec2(self.x, self.y) * Vec2(SPACING) + + +class SelectedDirectory: + """ + Ressource permettant de savoir quel dossier a été cliqué pour la dernière fois. + + Cette ressource est utilisé pous savoir quel dossier déplacer en + analysant les déplacements de la souris. Pour cela la ressource + contient l'entité du dossier cliqué ainsi que la position + de la souris lors du clic. + """ + + def __init__(self, entity: Entity, position: Vec2): + self.entity = entity + self.position = position + + +SCENE = plugin_assets.loading_scene( + Scene( + [], + [], + [], + ), + "story/directory_search", +)