diff --git a/src/engine/InkList.ts b/src/engine/InkList.ts index f8df6da4..abaa2d1e 100644 --- a/src/engine/InkList.ts +++ b/src/engine/InkList.ts @@ -466,7 +466,7 @@ export class InkList extends Map { if (Number.isInteger(maxBound)) { maxValue = maxBound; } else { - if (minBound instanceof InkList && minBound.Count > 0) + if (maxBound instanceof InkList && maxBound.Count > 0) maxValue = maxBound.maxItem.Value; } diff --git a/src/tests/inkfiles/compiled/lists/list_range.ink.json b/src/tests/inkfiles/compiled/lists/list_range.ink.json index 27ce543f..e730f1a0 100644 --- a/src/tests/inkfiles/compiled/lists/list_range.ink.json +++ b/src/tests/inkfiles/compiled/lists/list_range.ink.json @@ -1 +1 @@ -{"inkVersion":20,"root":[["ev",{"VAR?":"Food"},"LIST_ALL",{"VAR?":"Currency"},"LIST_ALL","+","/ev",{"VAR=":"all","re":true},"\n","ev",{"VAR?":"all"},"out","/ev","\n","ev",{"VAR?":"all"},2,3,"range","out","/ev","\n","ev",{"VAR?":"Numbers"},"LIST_ALL",{"VAR?":"Two"},{"VAR?":"Six"},"range","out","/ev","\n","ev",{"list":{"Food.Pizza":1,"Food.Pasta":2}},-1,100,"range","out","/ev","\n",["done",{"#n":"g-0"}],null],"done",{"global decl":["ev",{"list":{},"origins":["Food"]},{"VAR=":"Food"},{"list":{},"origins":["Currency"]},{"VAR=":"Currency"},{"list":{},"origins":["Numbers"]},{"VAR=":"Numbers"},{"list":{}},{"VAR=":"all"},"/ev","end",null]}],"listDefs":{"Food":{"Pizza":1,"Pasta":2,"Curry":3,"Paella":4},"Currency":{"Pound":1,"Euro":2,"Dollar":3},"Numbers":{"One":1,"Two":2,"Three":3,"Four":4,"Five":5,"Six":6,"Seven":7}}} \ No newline at end of file +{"inkVersion":21,"root":[["ev",{"VAR?":"Food"},"LIST_ALL",{"VAR?":"Currency"},"LIST_ALL","+","/ev",{"VAR=":"all","re":true},"\n","ev",{"VAR?":"all"},"out","/ev","\n","ev",{"VAR?":"all"},2,3,"range","out","/ev","\n","ev",{"VAR?":"Numbers"},"LIST_ALL",{"VAR?":"Two"},{"VAR?":"Six"},"range","out","/ev","\n","ev",{"VAR?":"Numbers"},"LIST_ALL",2,{"VAR?":"Four"},"range","out","/ev","\n","ev",{"VAR?":"Numbers"},"LIST_ALL",{"VAR?":"Two"},5,"range","out","/ev","\n","ev",{"list":{"Food.Pizza":1,"Food.Pasta":2}},-1,100,"range","out","/ev","\n",["done",{"#n":"g-0"}],null],"done",{"global decl":["ev",{"list":{},"origins":["Food"]},{"VAR=":"Food"},{"list":{},"origins":["Currency"]},{"VAR=":"Currency"},{"list":{},"origins":["Numbers"]},{"VAR=":"Numbers"},{"list":{}},{"VAR=":"all"},"/ev","end",null]}],"listDefs":{"Food":{"Pizza":1,"Pasta":2,"Curry":3,"Paella":4},"Currency":{"Pound":1,"Euro":2,"Dollar":3},"Numbers":{"One":1,"Two":2,"Three":3,"Four":4,"Five":5,"Six":6,"Seven":7}}} \ No newline at end of file diff --git a/src/tests/inkfiles/original/lists/list_range.ink b/src/tests/inkfiles/original/lists/list_range.ink index 73f53b48..124bfed0 100644 --- a/src/tests/inkfiles/original/lists/list_range.ink +++ b/src/tests/inkfiles/original/lists/list_range.ink @@ -6,4 +6,6 @@ VAR all = () {all} {LIST_RANGE(all, 2, 3)} {LIST_RANGE(LIST_ALL(Numbers), Two, Six)} +{LIST_RANGE(LIST_ALL(Numbers), 2, Four)} // mix int and list +{LIST_RANGE(LIST_ALL(Numbers), Two, 5)} // mix list and int {LIST_RANGE((Pizza, Pasta), -1, 100)} // allow out of range diff --git a/src/tests/specs/ink/Lists.spec.ts b/src/tests/specs/ink/Lists.spec.ts index e291009e..7d4ca56f 100644 --- a/src/tests/specs/ink/Lists.spec.ts +++ b/src/tests/specs/ink/Lists.spec.ts @@ -65,7 +65,13 @@ describe("Lists", () => { compileStory("list_range"); expect(context.story.ContinueMaximally()).toBe( - "Pound, Pizza, Euro, Pasta, Dollar, Curry, Paella\nEuro, Pasta, Dollar, Curry\nTwo, Three, Four, Five, Six\nPizza, Pasta\n" + `Pound, Pizza, Euro, Pasta, Dollar, Curry, Paella +Euro, Pasta, Dollar, Curry +Two, Three, Four, Five, Six +Two, Three, Four +Two, Three, Four, Five +Pizza, Pasta +` ); }); diff --git a/src/tests/specs/inkjs/engine/Integration.spec.ts b/src/tests/specs/inkjs/engine/Integration.spec.ts index 2436d034..c8bb28dd 100644 --- a/src/tests/specs/inkjs/engine/Integration.spec.ts +++ b/src/tests/specs/inkjs/engine/Integration.spec.ts @@ -282,7 +282,6 @@ describe("Integration", () => { expect(context.story.currentChoices.length).toEqual(2); expect(context.story.currentChoices[0].tags.length).toEqual(1); expect(context.story.currentChoices[0].tags[0]).toEqual("a tag"); - console.log(context.story.currentChoices[0].tags); const save = context.story.state.ToJson(); context.story.state.LoadJson(save);