diff --git a/src/app/project/game-model/characters/Character.ts b/src/app/project/game-model/characters/Character.ts index 214ef4b..8f2fe49 100644 --- a/src/app/project/game-model/characters/Character.ts +++ b/src/app/project/game-model/characters/Character.ts @@ -1,10 +1,27 @@ import {ModelComponent} from "../ModelComponent"; import {ModelComponentType} from "../ModelComponentType"; import {TemplateElement} from "../templates/TemplateElement"; +import {TemplateGamesystem} from "../templates/TemplateGamesystem"; +import {Gamesystem} from "../gamesystems/Gamesystem"; +import {SimpleTemplateGamesystem} from "../templates/simpleGamesystem/SimpleTemplateGamesystem"; export class Character extends ModelComponent implements TemplateElement { + characterSpecificTemplateSystems: Gamesystem[] = [] + constructor(componentName: string, componentDescription: string) { super(componentName, componentDescription, ModelComponentType.CHARACTER); } + + addCharacterSpecificSimpleTemplatesystem(gamesystem: SimpleTemplateGamesystem) { + if(!this.isTemplateSystemCharacterSpecific(gamesystem.componentName)) { + this.characterSpecificTemplateSystems.push(gamesystem) + gamesystem.addTemplateElement(this) + } + } + + private isTemplateSystemCharacterSpecific(gamesystemName: string) { + return this.characterSpecificTemplateSystems.find(gamesystem => gamesystem.componentName === gamesystemName) != undefined + } + } diff --git a/src/app/project/game-model/templates/simpleGamesystem/SimpleTemplateState.ts b/src/app/project/game-model/templates/simpleGamesystem/SimpleTemplateState.ts index b0b4f00..e603b6d 100644 --- a/src/app/project/game-model/templates/simpleGamesystem/SimpleTemplateState.ts +++ b/src/app/project/game-model/templates/simpleGamesystem/SimpleTemplateState.ts @@ -7,7 +7,7 @@ export class SimpleTemplateState extends SimpleState { conditionMap: Map = new Map(); addTemplateElement(templateElement: TemplateElement) { - this.conditionMap.set(templateElement, []) + this.conditionMap.set(templateElement, this.conditions) } removeTemplateElement(templateElement: TemplateElement) { diff --git a/src/app/project/game-model/templates/simpleGamesystem/SimpleTemplateTransition.ts b/src/app/project/game-model/templates/simpleGamesystem/SimpleTemplateTransition.ts index 5fb492f..a9612d5 100644 --- a/src/app/project/game-model/templates/simpleGamesystem/SimpleTemplateTransition.ts +++ b/src/app/project/game-model/templates/simpleGamesystem/SimpleTemplateTransition.ts @@ -8,8 +8,8 @@ export class SimpleTemplateTransition extends SimpleTransition{ actionMap: Map = new Map(); addTemplateElement(templateElement: TemplateElement) { - this.conditionMap.set(templateElement, []) - this.actionMap.set(templateElement, []) + this.conditionMap.set(templateElement, this.scriptAccountConditions.concat()) + this.actionMap.set(templateElement, this.scriptAccountActions.concat()) } removeTemplateElement(templateElement: TemplateElement) {