///
class DialogueBranch extends DialogueNode {
public type = NodeType.Branch;
public variable : () => any = () => {return false;}
public branchIds : Array = [];
public branchConditions : Array<() => any> = [];
public setVariable (varFunc : () => any) {
this.variable = varFunc;
}
public addBranch (targetid : string, valueFunc : () => any) {
this.branchIds.push(targetid);
this.branchConditions.push(valueFunc);
}
public getNext () {
let variable = this.variable();
for (let i = 0; i < this.branchIds.length; i++) {
let comparing = this.branchConditions[i]();
if (comparing == variable) {
return this.branchIds[i];
}
}
return this.next;
}
}