diff --git a/src/app/project/game-model/characters/Character.ts b/src/app/project/game-model/characters/Character.ts index 8cae691..96cf618 100644 --- a/src/app/project/game-model/characters/Character.ts +++ b/src/app/project/game-model/characters/Character.ts @@ -1,9 +1,9 @@ import {ModelComponent} from "../ModelComponent"; import {ModelComponentType} from "../ModelComponentType"; import {SimpleTemplateGamesystem} from "../gamesystems/SimpleTemplateGamesystem"; -import {TemplateGamesystem} from "../gamesystems/TemplateGamesystem"; import {ProductTemplateSystem} from "../gamesystems/ProductTemplateSystem"; import {Gamesystem} from "../gamesystems/Gamesystem"; +import {TemplateType} from "../TemplateType"; export class Character extends ModelComponent{ @@ -16,6 +16,17 @@ export class Character extends ModelComponent{ addCharacterSpecificGamesystem(templateGamesystem: SimpleTemplateGamesystem | ProductTemplateSystem) { if(!this.isGamesystemCharacterSpecific(templateGamesystem.componentName)) { this.characterSpecificGamesystems.push(templateGamesystem); + if(templateGamesystem instanceof ProductTemplateSystem){ + templateGamesystem.innerGamesystems.forEach(innerSystem => { + if(innerSystem instanceof SimpleTemplateGamesystem && innerSystem.templateType == TemplateType.CHARACTER) { + this.addCharacterSpecificGamesystem(innerSystem) + } else if(innerSystem instanceof ProductTemplateSystem && innerSystem.templateType == TemplateType.CHARACTER) { + this.addCharacterSpecificGamesystem(innerSystem) + } + }) + } else if(templateGamesystem.parentGamesystem != undefined && templateGamesystem.parentGamesystem instanceof ProductTemplateSystem) { + this.addCharacterSpecificGamesystem(templateGamesystem.parentGamesystem) + } templateGamesystem.addReferenceKey(this); } }