diff --git a/src/app/editor/character-editor/character-interaction-editor/character-interaction-editor.component.html b/src/app/editor/character-editor/character-interaction-editor/character-interaction-editor.component.html index 30c8f4d..cdb366e 100644 --- a/src/app/editor/character-editor/character-interaction-editor/character-interaction-editor.component.html +++ b/src/app/editor/character-editor/character-interaction-editor/character-interaction-editor.component.html @@ -117,13 +117,16 @@ - + Actions - +

Inventory Actions

diff --git a/src/app/editor/character-editor/character-interaction-editor/character-interaction-editor.component.ts b/src/app/editor/character-editor/character-interaction-editor/character-interaction-editor.component.ts index 4385a80..da52e9c 100644 --- a/src/app/editor/character-editor/character-interaction-editor/character-interaction-editor.component.ts +++ b/src/app/editor/character-editor/character-interaction-editor/character-interaction-editor.component.ts @@ -9,6 +9,7 @@ import {Interaction} from "../../../project/game-model/interactions/Interaction" import {Condition} from "../../../project/game-model/interactions/condition/Condition"; import {MatSnackBar} from "@angular/material/snack-bar"; import {ScriptAccountCondition} from "../../../project/game-model/gamesystems/conditions/ScriptAccountCondition"; +import {ScriptAccountAction} from "../../../project/game-model/gamesystems/actions/ScriptAccountAction"; @Component({ selector: 'app-character-interaction-editor', @@ -85,4 +86,15 @@ export class CharacterInteractionEditorComponent implements OnInit{ onDeleteCondition(interaction: AbstractInteraction, condition: ScriptAccountCondition) { 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); + } + } } diff --git a/src/app/project/game-model/interactions/AbstractInteraction.ts b/src/app/project/game-model/interactions/AbstractInteraction.ts index e8e8f22..b03d943 100644 --- a/src/app/project/game-model/interactions/AbstractInteraction.ts +++ b/src/app/project/game-model/interactions/AbstractInteraction.ts @@ -3,6 +3,7 @@ import {Condition} from "./condition/Condition"; import {ScriptAccountCondition} from "../gamesystems/conditions/ScriptAccountCondition"; import {InventoryCondition} from "./condition/InventoryCondition"; import {GamesystemCondition} from "./condition/GamesystemCondition"; +import {Action} from "./actions/Action"; export abstract class AbstractInteraction { diff --git a/src/app/project/game-model/interactions/Interaction.ts b/src/app/project/game-model/interactions/Interaction.ts index d83cbd2..0c639e4 100644 --- a/src/app/project/game-model/interactions/Interaction.ts +++ b/src/app/project/game-model/interactions/Interaction.ts @@ -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); + } }