Added the ability to double all number of dice to roll using context
This commit is contained in:
@@ -16,13 +16,9 @@ export default class IfNode extends ParseNode {
|
||||
let condition = this.condition[fn](scope, context);
|
||||
if (condition instanceof ConstantNode){
|
||||
if (condition.value){
|
||||
let consequent = this.consequent[fn](scope, context);
|
||||
consequent.inheritDetails([condition, this]);
|
||||
return this.consequent[fn](scope);
|
||||
return this.consequent[fn](scope, context);
|
||||
} else {
|
||||
let alternative = this.alternative[fn](scope, context);
|
||||
alternative.inheritDetails([condition, this]);
|
||||
return alternative;
|
||||
return this.alternative[fn](scope, context);
|
||||
}
|
||||
} else {
|
||||
return new IfNode({
|
||||
|
||||
@@ -40,9 +40,13 @@ export default class RollNode extends ParseNode {
|
||||
});
|
||||
}
|
||||
let number = left.value;
|
||||
if (context.doubleRolls){
|
||||
number *= 2;
|
||||
}
|
||||
if (number > 100) return new ErrorNode({
|
||||
node: this,
|
||||
error: 'Can\'t roll more than 100 dice at once'
|
||||
error: 'Can\'t roll more than 100 dice at once',
|
||||
context,
|
||||
});
|
||||
let diceSize = right.value;
|
||||
let randomSrc = DDP.randomStream('diceRoller');
|
||||
|
||||
@@ -8,9 +8,10 @@ export default function parser(){
|
||||
}
|
||||
|
||||
export class CompilationContext {
|
||||
constructor(){
|
||||
constructor({doubleRolls}){
|
||||
this.errors = [];
|
||||
this.rolls = [];
|
||||
this.doubleRolls = doubleRolls;
|
||||
}
|
||||
storeError(e){
|
||||
this.errors.push(e);
|
||||
|
||||
Reference in New Issue
Block a user