template-systems #41
@ -15,6 +15,24 @@
 | 
			
		||||
  </mat-card-content>
 | 
			
		||||
</mat-card>
 | 
			
		||||
 | 
			
		||||
<mat-card>
 | 
			
		||||
  <mat-card-header>
 | 
			
		||||
    <mat-card-title>Characterrelationspecifc Gamesystems</mat-card-title>
 | 
			
		||||
  </mat-card-header>
 | 
			
		||||
  <mat-card-content>
 | 
			
		||||
    <mat-accordion>
 | 
			
		||||
      <mat-expansion-panel *ngFor="let templateSystem of character!.assymetricCharacterRelationSpecificTemplateSystems">
 | 
			
		||||
        <mat-expansion-panel-header>
 | 
			
		||||
          <mat-panel-title>{{templateSystem.componentName}}</mat-panel-title>
 | 
			
		||||
        </mat-expansion-panel-header>
 | 
			
		||||
        <app-gamesystem-editor [templateElement]="character" [gamesystem]="templateSystem" [scriptAccounts]="gameModel!.scriptAccounts"></app-gamesystem-editor>
 | 
			
		||||
      </mat-expansion-panel>
 | 
			
		||||
      <button mat-stroked-button class="specify-btn" (click)="openCharacterRelationTemplateSpecificator()">Specify Templatesystem</button>
 | 
			
		||||
    </mat-accordion>
 | 
			
		||||
  </mat-card-content>
 | 
			
		||||
</mat-card>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<mat-card>
 | 
			
		||||
  <mat-card-header>
 | 
			
		||||
    <mat-card-title>Character-Relations</mat-card-title>
 | 
			
		||||
 | 
			
		||||
@ -29,4 +29,12 @@ export class CharacterEditorComponent {
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  openCharacterRelationTemplateSpecificator() {
 | 
			
		||||
    const dialogRef = this.dialog.open(TemplateSpecificatorComponent, {data: this.gameModel!.getTemplateSystems(TemplateType.CHARACTER_RELATION), minWidth: "400px"});
 | 
			
		||||
    dialogRef.afterClosed().subscribe(res => {
 | 
			
		||||
      if(res != undefined) {
 | 
			
		||||
        this.character!.addAsymetricCharacterRelationGamesystem(res);
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -14,6 +14,8 @@ export class Character extends ModelComponent implements TemplateElement {
 | 
			
		||||
 | 
			
		||||
  characterRelations: CharacterRelation[] = []
 | 
			
		||||
 | 
			
		||||
  assymetricCharacterRelationSpecificTemplateSystems: Gamesystem<any, any>[] = []
 | 
			
		||||
 | 
			
		||||
  constructor(componentName: string, componentDescription: string) {
 | 
			
		||||
    super(componentName, componentDescription, ModelComponentType.CHARACTER);
 | 
			
		||||
  }
 | 
			
		||||
@ -39,6 +41,12 @@ export class Character extends ModelComponent implements TemplateElement {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  addAsymetricCharacterRelationGamesystem(gamesystem: Gamesystem<any, any>, recursiveCall: boolean = false) {
 | 
			
		||||
    if(!this.isTemplateSystemCharacterRelationSpecific(gamesystem.componentName)) {
 | 
			
		||||
      this.assymetricCharacterRelationSpecificTemplateSystems.push(gamesystem)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  addCharacterRelation(characterRelation: CharacterRelation) {
 | 
			
		||||
    this.characterRelations.push(characterRelation)
 | 
			
		||||
  }
 | 
			
		||||
@ -47,4 +55,10 @@ export class Character extends ModelComponent implements TemplateElement {
 | 
			
		||||
    return this.characterSpecificTemplateSystems.find(gamesystem => gamesystem.componentName === gamesystemName) != undefined
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private isTemplateSystemCharacterRelationSpecific(gamesystemName: string) {
 | 
			
		||||
    return this.assymetricCharacterRelationSpecificTemplateSystems.find(gamesystem =>
 | 
			
		||||
      gamesystem.componentName === gamesystemName) != undefined;
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										51
									
								
								testModel/gamesystems/Characterbeziehungssystem.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								testModel/gamesystems/Characterbeziehungssystem.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,51 @@
 | 
			
		||||
{
 | 
			
		||||
    "componentName": "Characterbeziehungssystem",
 | 
			
		||||
    "componentDescription": "",
 | 
			
		||||
    "states": [
 | 
			
		||||
        {
 | 
			
		||||
            "initial": false,
 | 
			
		||||
            "conditions": [],
 | 
			
		||||
            "stateLabel": "Feind",
 | 
			
		||||
            "stateDescription": ""
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "initial": true,
 | 
			
		||||
            "conditions": [],
 | 
			
		||||
            "stateLabel": "Freund",
 | 
			
		||||
            "stateDescription": ""
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "initial": false,
 | 
			
		||||
            "conditions": [],
 | 
			
		||||
            "stateLabel": "Fester Freund",
 | 
			
		||||
            "stateDescription": ""
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    "transitions": [
 | 
			
		||||
        {
 | 
			
		||||
            "scriptAccountActions": [],
 | 
			
		||||
            "scriptAccountConditions": [],
 | 
			
		||||
            "startingState": "Feind",
 | 
			
		||||
            "endingState": "Freund"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "scriptAccountActions": [],
 | 
			
		||||
            "scriptAccountConditions": [],
 | 
			
		||||
            "startingState": "Freund",
 | 
			
		||||
            "endingState": "Feind"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "scriptAccountActions": [],
 | 
			
		||||
            "scriptAccountConditions": [],
 | 
			
		||||
            "startingState": "Freund",
 | 
			
		||||
            "endingState": "Fester Freund"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "scriptAccountActions": [],
 | 
			
		||||
            "scriptAccountConditions": [],
 | 
			
		||||
            "startingState": "Fester Freund",
 | 
			
		||||
            "endingState": "Feind"
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    "templateType": 1
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user