alt-templatesystem-impl #29
@ -211,7 +211,7 @@ export class AppComponent implements OnInit{
|
||||
const gamesystemParser = new GamesystemParser(scriptAccounts);
|
||||
const gamesystems = gamesystemParser.parseStoredGamesystems(storedGameModel.storedGamesystems);
|
||||
|
||||
const characterParser = new CharacterParser(gamesystemParser.getParsedTemplateGamesystems(TemplateType.CHARACTER));
|
||||
const characterParser = new CharacterParser(gamesystemParser.getParsedTemplateGamesystems(TemplateType.CHARACTER), scriptAccounts);
|
||||
const characters = characterParser.parseCharacters(storedGameModel.storedCharacters);
|
||||
|
||||
gameModel.scriptAccounts = scriptAccounts
|
||||
|
@ -1,14 +1,19 @@
|
||||
import {StoreComponent} from "../../../../../app/storage/StoreComponent";
|
||||
import {Character} from "../../game-model/characters/Character";
|
||||
import {SimpleTemplateGamesystem} from "../../game-model/gamesystems/SimpleTemplateGamesystem";
|
||||
import {ScriptAccount} from "../../game-model/scriptAccounts/ScriptAccount";
|
||||
import {ScriptAccountParser} from "../ScriptAccountParser";
|
||||
import {ScriptAccountConditionParser} from "../gamesystemParser/ScriptAccountConditionParser";
|
||||
|
||||
|
||||
export class CharacterParser {
|
||||
|
||||
characterSpecificGamesystems: SimpleTemplateGamesystem<Character>[]
|
||||
scriptAccountConditionParser: ScriptAccountConditionParser
|
||||
|
||||
constructor(characterSpecificGamesystems: SimpleTemplateGamesystem<Character>[]) {
|
||||
constructor(characterSpecificGamesystems: SimpleTemplateGamesystem<Character>[], scriptAccounts: ScriptAccount[]) {
|
||||
this.characterSpecificGamesystems = characterSpecificGamesystems;
|
||||
this.scriptAccountConditionParser = new ScriptAccountConditionParser(scriptAccounts)
|
||||
}
|
||||
|
||||
public parseCharacters(characters: StoreComponent[]): Character[] {
|
||||
@ -20,7 +25,6 @@ export class CharacterParser {
|
||||
private parseSingleCharacter(characterData: any): Character {
|
||||
const character = new Character(characterData.componentName, characterData.componentDescription);
|
||||
character.characterSpecificGamesystems = this.parseCharacterSpecificGamesystems(character, characterData.characterSpecificGamesystems);
|
||||
console.log("Parsed Character", character)
|
||||
return character;
|
||||
}
|
||||
|
||||
@ -41,13 +45,14 @@ export class CharacterParser {
|
||||
const stateReference = characterSpecificGamesystem.states[i];
|
||||
const state = this.findReferencedState(referencedGamesystem, stateReference.stateLabel)!
|
||||
|
||||
state.conditionMap.set(character, [])
|
||||
const conditions = this.scriptAccountConditionParser.parseStoredConditions(stateReference.conditionMap);
|
||||
|
||||
state.conditionMap.set(character, conditions)
|
||||
}
|
||||
}
|
||||
|
||||
return referencedGamesystem;
|
||||
}
|
||||
|
||||
private findCharacterSpecificGamesystem(componentName: string): SimpleTemplateGamesystem<Character> | undefined{
|
||||
return this.characterSpecificGamesystems.find(gamesystem => gamesystem.componentName === componentName)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user