app.component.html 16.5 KB
Newer Older
Romain DELEAU's avatar
Romain DELEAU committed
1
<div class="container">
Romain DELEAU's avatar
Romain DELEAU committed
2 3 4 5 6
    <div class="container-appDragScroll" appDragScroll>
        <div class="container-appMouseWheelZoom" appMouseWheelZoom>

            <div class="container-scenario-main">
                <div class="container-scenario-main-gamePieces" [style.z-index]="4">
Romain DELEAU's avatar
Romain DELEAU committed
7 8
                    <app-game-educationnal-objective [scenario]="scenario" [gameEducationnalObjective]="this.scenario.educationnalObjective"></app-game-educationnal-objective>
                    <app-game-context [style.z-index]="2" [scenario]="scenario" [gameContext]="this.scenario.context"></app-game-context>
9 10
                    <app-game-characters [style.z-index]="3" [scenario]="scenario"></app-game-characters>
                    <app-rules [style.z-index]="4" [scenario]="scenario"></app-rules>
Romain DELEAU's avatar
Romain DELEAU committed
11 12
                </div>

Romain DELEAU's avatar
Romain DELEAU committed
13
                <div class="container-scenario-main-missions">
14
                    <div class="container-scenario-main-missions-mission" *ngFor="let mission of this.scenario.missions, let missionIndex = index">
15 16 17 18

                        <div class="container-scenario-chronologie">
                            <div class="container-scenario-chronologie-title">Chronologie générale de la mission</div>
                            <div class="container-scenario-chronologie-steps">
19
                                <div *ngFor="let step of mission.chronologie, let i = index" [style.z-index]="mission.chronologie.length-i">
Romain DELEAU's avatar
Romain DELEAU committed
20 21
                                    <app-step *ngIf="step != null" [step]="step" [parent]="mission" [index]="i" [mission]="mission"></app-step>
                                    <div class="container-scenario-main-missions-mission-buttonAdd" style="height: 300px;" *ngIf="step == null">
22 23 24
                                        <button mat-button (click)="addMissionStep(mission, i)"
                                        matTooltip="Ajouter une nouvelle tuile de ce type."
                                        matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"><mat-icon fontIcon="add"></mat-icon></button>
Romain DELEAU's avatar
Romain DELEAU committed
25 26 27
                                    </div>
                                </div>
                                <div class="container-scenario-main-missions-mission-buttonAdd" style="height: 300px;">
28 29 30
                                    <button mat-button (click)="addMissionStep(mission, mission.chronologie.length)"
                                    matTooltip="Ajouter une nouvelle tuile de ce type."
                                    matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"><mat-icon fontIcon="add"></mat-icon></button>
31
                                </div>
32
                            </div>
Romain DELEAU's avatar
Romain DELEAU committed
33
                        </div>           
34 35

                        <div style="display: flex;">
Romain DELEAU's avatar
Romain DELEAU committed
36

37
                            <div class="container-scenario-main-missions-mission-missionPieces" [style.z-index]="3">
38 39
                                <app-educational-objective [educationnalObjective]="mission.educationnalObjective" [scenario]="scenario" [i]="missionIndex"></app-educational-objective>
                                <app-mission-context [style.z-index]="2" [missionContext]="mission.context" [scenario]="scenario" [i]="missionIndex"></app-mission-context>
40 41 42
                            </div>

                            <div class="container-scenario-main-missions-mission-roles" [style.z-index]="2">
43
                                <div class="container-scenario-main-missions-mission-roles-role" *ngFor="let role of mission.roles, let i = index">
Romain DELEAU's avatar
Romain DELEAU committed
44 45 46 47 48 49 50

                                    <div style="display: flex; flex-direction: column;">
                                        <div class="container-scenario-main-missions-mission-roles-role-chronologie">
                                            <div class="container-scenario-main-missions-mission-roles-role-chronologie-title">Chronologie du rôle</div>
                                            <div class="container-scenario-main-missions-mission-roles-role-chronologie-steps">

                                                <div *ngFor="let step of role.chronologie, let i = index" [style.z-index]="role.chronologie.length-i">
Romain DELEAU's avatar
Romain DELEAU committed
51 52
                                                    <app-step *ngIf="step != null" [step]="step" [parent]="role" [index]="i" [mission]="mission"></app-step>
                                                    <div class="container-scenario-main-missions-mission-buttonAdd" style="height: 300px;" *ngIf="step == null">
53 54 55
                                                        <button mat-button (click)="addRoleStep(mission, role, i)"
                                                        matTooltip="Ajouter une nouvelle tuile de ce type."
                                                        matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"><mat-icon fontIcon="add"></mat-icon></button>
Romain DELEAU's avatar
Romain DELEAU committed
56
                                                    </div>
Romain DELEAU's avatar
Romain DELEAU committed
57
                                                </div>   
Romain DELEAU's avatar
Romain DELEAU committed
58
                                                <div class="container-scenario-main-missions-mission-buttonAdd" style="height: 300px;">
59 60 61
                                                    <button mat-button (click)="addRoleStep(mission, role, role.chronologie.length)"
                                                    matTooltip="Ajouter une nouvelle tuile de ce type."
                                                    matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"><mat-icon fontIcon="add"></mat-icon></button>
Romain DELEAU's avatar
Romain DELEAU committed
62
                                                </div>
Romain DELEAU's avatar
Romain DELEAU committed
63
                                            </div>
64
                                        </div>
Romain DELEAU's avatar
Romain DELEAU committed
65 66

                                        <div style="display: flex; flex-direction: row;">
67
                                            <app-role [style.z-index]="2" [scenario]="scenario" [role]="role" [mission]="mission" [i]="i" [missionIndex]="missionIndex"></app-role>
Romain DELEAU's avatar
Romain DELEAU committed
68 69 70 71
                                            <div class="container-scenario-main-missions-mission-roles-role-tasks" [style.z-index]="1">
                                                <div class="container-scenario-main-missions-mission-roles-role-tasks-inlineTasks" *ngFor="let tasks of role.tasks, let i = index" [style.z-index]="role.tasks.length+i">
                                                    <div *ngFor="let task of tasks, let j = index" [style.z-index]="tasks.length-j">
                                                        <div *ngIf="task != null">
Romain DELEAU's avatar
Romain DELEAU committed
72 73 74 75 76
                                                            <app-task *ngIf="task.type == 'normal'" [task]="task" [scenario]="scenario" [mission]="mission" [role]="role" [i]="i" [j]="j"></app-task>
                                                            <app-annexe-task *ngIf="task.type == 'annexe'" [task]="task" [scenario]="scenario" [mission]="mission" [role]="role" [i]="i" [j]="j"></app-annexe-task>
                                                            <app-random-event *ngIf="task.type == 'event'" [task]="task" [scenario]="scenario" [mission]="mission" [role]="role" [i]="i" [j]="j"></app-random-event>
                                                            <app-optionnal-task *ngIf="task.type == 'optionnal'" [task]="task" [scenario]="scenario" [mission]="mission" [role]="role" [i]="i" [j]="j"></app-optionnal-task>
                                                            <app-final-task *ngIf="task.type == 'final'" [task]="task" [scenario]="scenario" [mission]="mission" [role]="role" [i]="i" [j]="j"></app-final-task>
Romain DELEAU's avatar
Romain DELEAU committed
77 78 79
                                                            <app-repeat-task *ngIf="task.type == 'repeat'" [task]="task" [mission]="mission" [role]="role" [i]="i" [j]="j"></app-repeat-task>
                                                        </div>
                                                        <div class="container-scenario-main-missions-mission-buttonAdd" style="height: 400px;" *ngIf="task == null">
80 81 82
                                                            <button mat-button [matMenuTriggerFor]="addTaskMenu"
                                                            matTooltip="Ajouter une nouvelle tuile de ce type."
                                                            matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"><mat-icon fontIcon="add"></mat-icon></button>
Romain DELEAU's avatar
Romain DELEAU committed
83 84 85 86
                                                            <mat-menu #addTaskMenu="matMenu">
                                                                <button class="container-scenario-main-missions-mission-roles-role-tasks-menuButton" [style.background-color]="'#b9dfe3'" mat-menu-item (click)="addTask(mission, role, i, j, 'normal')">Ajouter une Tâche</button>
                                                                <button class="container-scenario-main-missions-mission-roles-role-tasks-menuButton" [style.background-color]="'#bccecc'" mat-menu-item (click)="addTask(mission, role, i, j, 'annexe')">Ajouter une Tâche annexe</button>
                                                                <button class="container-scenario-main-missions-mission-roles-role-tasks-menuButton" [style.background-color]="'#e8e3b3'" mat-menu-item (click)="addTask(mission, role, i, j, 'optionnal')">Ajouter une Tâche optionnelle</button>
87
                                                                <button class="container-scenario-main-missions-mission-roles-role-tasks-menuButton" [style.background-color]="'#b28386'" mat-menu-item (click)="addTask(mission, role, i, j, 'final')" *ngIf="canCreateFinalOrRepeatTask(tasks, j)">Ajouter une Tâche finale</button>
Romain DELEAU's avatar
Romain DELEAU committed
88
                                                                <button class="container-scenario-main-missions-mission-roles-role-tasks-menuButton" [style.background-color]="'#bfdaa3'" mat-menu-item (click)="addTask(mission, role, i, j, 'event')">Ajouter un Événement aléatoire</button>
89
                                                                <button class="container-scenario-main-missions-mission-roles-role-tasks-menuButton" [style.background-color]="'#abbcc6'" mat-menu-item (click)="addTask(mission, role, i, j, 'repeat')" *ngIf="canCreateFinalOrRepeatTask(tasks, j)">Recommencer le tour</button>
Romain DELEAU's avatar
Romain DELEAU committed
90 91 92 93
                                                            </mat-menu>
                                                        </div>
                                                    </div>
                                                    <div class="container-scenario-main-missions-mission-buttonAdd" style="height: 400px;" *ngIf="dontContainFinalOrRepeatTask(tasks)">
94 95 96
                                                        <button mat-button [matMenuTriggerFor]="addTaskMenu"
                                                        matTooltip="Ajouter une nouvelle tuile de ce type."
                                                        matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"><mat-icon fontIcon="add"></mat-icon></button>
Romain DELEAU's avatar
Romain DELEAU committed
97 98 99 100 101 102 103 104 105
                                                        <mat-menu #addTaskMenu="matMenu">
                                                            <button class="container-scenario-main-missions-mission-roles-role-tasks-menuButton" [style.background-color]="'#b9dfe3'" mat-menu-item (click)="addTask(mission, role, i, tasks.length, 'normal')">Ajouter une Tâche</button>
                                                            <button class="container-scenario-main-missions-mission-roles-role-tasks-menuButton" [style.background-color]="'#bccecc'" mat-menu-item (click)="addTask(mission, role, i, tasks.length, 'annexe')">Ajouter une Tâche annexe</button>
                                                            <button class="container-scenario-main-missions-mission-roles-role-tasks-menuButton" [style.background-color]="'#e8e3b3'" mat-menu-item (click)="addTask(mission, role, i, tasks.length, 'optionnal')">Ajouter une Tâche optionnelle</button>
                                                            <button class="container-scenario-main-missions-mission-roles-role-tasks-menuButton" [style.background-color]="'#b28386'" mat-menu-item (click)="addTask(mission, role, i, tasks.length, 'final')">Ajouter une Tâche finale</button>
                                                            <button class="container-scenario-main-missions-mission-roles-role-tasks-menuButton" [style.background-color]="'#bfdaa3'" mat-menu-item (click)="addTask(mission, role, i, tasks.length, 'event')">Ajouter un Événement aléatoire</button>
                                                            <button class="container-scenario-main-missions-mission-roles-role-tasks-menuButton" [style.background-color]="'#abbcc6'" mat-menu-item (click)="addTask(mission, role, i, tasks.length, 'repeat')">Recommencer le tour</button>
                                                        </mat-menu>
                                                    </div>
Romain DELEAU's avatar
Romain DELEAU committed
106 107
                                                </div>
                                            </div>
108
                                        </div>
Romain DELEAU's avatar
Romain DELEAU committed
109 110
                                    </div>
                                </div>
Romain DELEAU's avatar
Romain DELEAU committed
111
                            </div>
Romain DELEAU's avatar
Romain DELEAU committed
112
                        </div>
Romain DELEAU's avatar
Romain DELEAU committed
113 114
                    </div>
                </div>
Romain DELEAU's avatar
Romain DELEAU committed
115
            </div>
Romain DELEAU's avatar
Romain DELEAU committed
116
        </div>
Romain DELEAU's avatar
Romain DELEAU committed
117
    </div>
Romain DELEAU's avatar
Romain DELEAU committed
118 119

    <div class="container-sider">
120 121 122 123 124 125 126 127 128 129
        <div class="container-sider-title">{{getSiderTitle()}}</div>
        <div class="container-sider-elements">
            <app-role-occurence class="container-sider-elements-element" [role]="pieceDetailsService.pieceAsRole()" *ngIf="pieceDetailsService.pieceIsRole()"></app-role-occurence>
            <app-supplementary-task class="container-sider-elements-element" [task]="pieceDetailsService.pieceAsTask()" [role]="pieceDetailsService.parentAsRole()" *ngIf="pieceDetailsService.pieceIsTask()"></app-supplementary-task>
            <app-repeat class="container-sider-elements-element" [task]="pieceDetailsService.pieceAsTask()" *ngIf="pieceDetailsService.pieceIsTask()"></app-repeat>
            <app-interupt class="container-sider-elements-element" [task]="pieceDetailsService.pieceAsTask()" *ngIf="pieceDetailsService.pieceIsTask()"></app-interupt>
            <app-characters class="container-sider-elements-element" [scenario]="scenario" [task]="pieceDetailsService.pieceAsTask()" *ngIf="pieceDetailsService.pieceIsTask()"></app-characters>
            <app-comments class="container-sider-elements-element" [piece]="pieceDetailsService.piece"></app-comments> 
        </div>
        
Romain DELEAU's avatar
Romain DELEAU committed
130 131
    </div>

132
    <div class="container-settings">
Romain DELEAU's avatar
Romain DELEAU committed
133
        <div class="container-settings-mode"
Romain DELEAU's avatar
Romain DELEAU committed
134 135 136 137
        matTooltip="Utilisation dans un template de jeu précis. Contacter gaelle.guigon@imt-nord-europe.fr pour plus d’informations. Non disponible dans cette version."
        matTooltipPosition="below" [matTooltipDisabled]="!tooltipService.activatedTooltips"
        [style.background-color]="'lightgray'">
            <input name="unity" type="checkbox" disabled/>
138
            <label for="unity">Intégrer le jeu sous Unity (WIP)</label>
139
        </div>
Romain DELEAU's avatar
Romain DELEAU committed
140 141 142
        <div class="container-settings-mode"
        matTooltip="Descriptif de chaque élément de RLG Maker."
        matTooltipPosition="below" [matTooltipDisabled]="!tooltipService.activatedTooltips">
143 144 145
            <input name="tooltip" type="checkbox" [(ngModel)]="tooltipService.activatedTooltips"/>
            <label for="tooltip">Activer les aides</label>
        </div>
146 147 148 149 150 151
        <button mat-mini-fab color="white" (click)="downloadFile()"
        matTooltip="Télécharger une sauvegarde du scénario."
        matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"><mat-icon fontIcon="download_file"></mat-icon></button>
        <button mat-mini-fab color="white" (click)="selectFile()"
        matTooltip="Importer une sauvegarde du scénario."
        matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"><mat-icon fontIcon="upload-file"></mat-icon></button>
152
        <input type="file" #fileInput style="display: none" (change)="onFileSelected($event)"> 
153
    </div>
154 155 156 157 158 159 160 161
    <div class="container-zoom">
        <button mat-mini-fab color="white" (click)="zoomIn()"
        matTooltip="Zoomer le scénario."
        matTooltipPosition="before" [matTooltipDisabled]="!tooltipService.activatedTooltips"><mat-icon fontIcon="zoom_in"></mat-icon></button>
        <button mat-mini-fab color="white" (click)="zoomOut()"
        matTooltip="Dézoomer le scénario."
        matTooltipPosition="before" [matTooltipDisabled]="!tooltipService.activatedTooltips"><mat-icon fontIcon="zoom_out"></mat-icon></button>
    </div>
Romain DELEAU's avatar
Romain DELEAU committed
162
</div>