From 1c6050456589ffc3212ed97471c05f083450ada0 Mon Sep 17 00:00:00 2001 From: sebastian Date: Sat, 1 Jun 2024 19:38:20 +0200 Subject: [PATCH] Include Condition and Action Overview in InteractionEditor --- ...haracter-interaction-editor.component.html | 44 ++++++++++++++++++- ...haracter-interaction-editor.component.scss | 2 +- .../interactions/AbstractInteraction.ts | 15 +++++++ .../condition/GamesystemCondition.ts | 7 ++- 4 files changed, 64 insertions(+), 4 deletions(-) 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 f0c1d8c..534e938 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 @@ -94,7 +94,49 @@
-

Expanded Detail

+ + + + Conditions + + + + + + +

Inventory Conditions

+
+ +

Gamesystem Conditions

+
+
+
+ + + + Actions + + + + + + +

Inventory Actions

+
+ +

Gamesystem Actions

+
+
+
+ + + + + Sequence Elements + + + +
diff --git a/src/app/editor/character-editor/character-interaction-editor/character-interaction-editor.component.scss b/src/app/editor/character-editor/character-interaction-editor/character-interaction-editor.component.scss index fb17cfc..d311ac8 100644 --- a/src/app/editor/character-editor/character-interaction-editor/character-interaction-editor.component.scss +++ b/src/app/editor/character-editor/character-interaction-editor/character-interaction-editor.component.scss @@ -20,7 +20,7 @@ tr.example-element-row:not(.example-expanded-row):active { .example-element-detail { overflow: hidden; - display: flex; + width: 100%; } .example-element-diagram { diff --git a/src/app/project/game-model/interactions/AbstractInteraction.ts b/src/app/project/game-model/interactions/AbstractInteraction.ts index 0c7716f..c1843b9 100644 --- a/src/app/project/game-model/interactions/AbstractInteraction.ts +++ b/src/app/project/game-model/interactions/AbstractInteraction.ts @@ -1,5 +1,8 @@ import {Character} from "../characters/Character"; import {Condition} from "./condition/Condition"; +import {ScriptAccountCondition} from "../gamesystems/conditions/ScriptAccountCondition"; +import {InventoryCondition} from "./condition/InventoryCondition"; +import {GamesystemCondition} from "./condition/GamesystemCondition"; export abstract class AbstractInteraction { sourceCharacter: Character @@ -18,4 +21,16 @@ export abstract class AbstractInteraction { abstract equals(other: AbstractInteraction): boolean abstract validate(requieredCharacter: Character): boolean + + get scriptAccountConditions() { + return this.conditions.filter(condition => condition instanceof ScriptAccountCondition); + } + + get inventoryConditions() { + return this.conditions.filter(condition => condition instanceof InventoryCondition) + } + + get gamesystemConditions() { + return this.conditions.filter(condition => condition instanceof GamesystemCondition) + } } diff --git a/src/app/project/game-model/interactions/condition/GamesystemCondition.ts b/src/app/project/game-model/interactions/condition/GamesystemCondition.ts index b151e72..f5cfae0 100644 --- a/src/app/project/game-model/interactions/condition/GamesystemCondition.ts +++ b/src/app/project/game-model/interactions/condition/GamesystemCondition.ts @@ -1,12 +1,15 @@ import {Gamesystem} from "../../gamesystems/Gamesystem"; import {State} from "../../gamesystems/states/State"; +import {Condition} from "./Condition"; +import {CharacterDependency} from "../CharacterDependency"; -export class GamesystemCondition { +export class GamesystemCondition extends Condition { targetGamesystem: Gamesystem requieredState: State; - constructor(targetGamesystem: Gamesystem, requieredState: State) { + constructor(characterDependency: CharacterDependency, targetGamesystem: Gamesystem, requieredState: State) { + super(characterDependency); this.targetGamesystem = targetGamesystem; this.requieredState = requieredState; }