/// 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; } }