Include ScriptAccountActions in character-interaction-editor
All checks were successful
E2E Testing / test (push) Successful in 1m19s

This commit is contained in:
Sebastian Boeckelmann 2024-06-15 13:54:13 +02:00
parent e8e3c83b45
commit 5d4c9a6e58
4 changed files with 25 additions and 2 deletions

View File

@ -117,13 +117,16 @@
</mat-tab-group> </mat-tab-group>
</mat-expansion-panel> </mat-expansion-panel>
<mat-expansion-panel> <mat-expansion-panel *ngIf="!isInteractionSequence(element)">
<mat-expansion-panel-header> <mat-expansion-panel-header>
<mat-panel-title>Actions</mat-panel-title> <mat-panel-title>Actions</mat-panel-title>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<mat-tab-group> <mat-tab-group>
<mat-tab label="ScriptAccount Actions"> <mat-tab label="ScriptAccount Actions">
<app-scriptaccount-action-editor [scriptAccounts]="gameModel!.scriptAccounts"></app-scriptaccount-action-editor> <app-scriptaccount-action-editor [scriptAccounts]="gameModel!.scriptAccounts" [actions]="element.scriptAccountActions"
(onAddAction)="onAddAction(element, $event)" (onRemoveAction)="onRemoveAction(element, $event)"
[enableEditing]="true"
></app-scriptaccount-action-editor>
</mat-tab> </mat-tab>
<mat-tab label="Inventory Actions"> <mat-tab label="Inventory Actions">
<p>Inventory Actions</p> <p>Inventory Actions</p>

View File

@ -9,6 +9,7 @@ import {Interaction} from "../../../project/game-model/interactions/Interaction"
import {Condition} from "../../../project/game-model/interactions/condition/Condition"; import {Condition} from "../../../project/game-model/interactions/condition/Condition";
import {MatSnackBar} from "@angular/material/snack-bar"; import {MatSnackBar} from "@angular/material/snack-bar";
import {ScriptAccountCondition} from "../../../project/game-model/gamesystems/conditions/ScriptAccountCondition"; import {ScriptAccountCondition} from "../../../project/game-model/gamesystems/conditions/ScriptAccountCondition";
import {ScriptAccountAction} from "../../../project/game-model/gamesystems/actions/ScriptAccountAction";
@Component({ @Component({
selector: 'app-character-interaction-editor', selector: 'app-character-interaction-editor',
@ -85,4 +86,15 @@ export class CharacterInteractionEditorComponent implements OnInit{
onDeleteCondition(interaction: AbstractInteraction, condition: ScriptAccountCondition) { onDeleteCondition(interaction: AbstractInteraction, condition: ScriptAccountCondition) {
interaction!.removeCondition(condition); interaction!.removeCondition(condition);
} }
onAddAction(interaction: AbstractInteraction, action: ScriptAccountAction) {
if(interaction instanceof Interaction) {
interaction.addAction(action);
}
}
onRemoveAction(interaction: AbstractInteraction, action: ScriptAccountAction) {
if(interaction instanceof Interaction) {
interaction.removeAction(action);
}
}
} }

View File

@ -3,6 +3,7 @@ import {Condition} from "./condition/Condition";
import {ScriptAccountCondition} from "../gamesystems/conditions/ScriptAccountCondition"; import {ScriptAccountCondition} from "../gamesystems/conditions/ScriptAccountCondition";
import {InventoryCondition} from "./condition/InventoryCondition"; import {InventoryCondition} from "./condition/InventoryCondition";
import {GamesystemCondition} from "./condition/GamesystemCondition"; import {GamesystemCondition} from "./condition/GamesystemCondition";
import {Action} from "./actions/Action";
export abstract class AbstractInteraction { export abstract class AbstractInteraction {

View File

@ -35,4 +35,11 @@ export class Interaction extends AbstractInteraction{
} }
addAction(action: Action) {
this.actions.push(action);
}
removeAction(deletedAction: Action) {
this.actions = this.actions.filter(action => action !== deletedAction);
}
} }