@@ -43,11 +43,19 @@ export default async function renderMove(
4343 }
4444 case "roll" : {
4545 lastRoll = item ;
46+ lastRoll . properties . action = item . properties . action ?? item . values [ 1 ] ;
47+ lastRoll . properties . stat = item . properties . stat ?? item . values [ 2 ] ;
48+ lastRoll . properties . adds = item . properties . adds ?? item . values [ 3 ] ;
49+ lastRoll . properties . vs1 = item . properties . vs1 ?? item . values [ 4 ] ;
50+ lastRoll . properties . vs2 = item . properties . vs2 ?? item . values [ 5 ] ;
4651 renderRoll ( moveNode , item ) ;
4752 break ;
4853 }
4954 case "progress-roll" : {
5055 lastRoll = item ;
56+ lastRoll . properties . score = item . properties . score ?? item . values [ 0 ] ;
57+ lastRoll . properties . vs1 = item . properties . vs1 ?? item . values [ 1 ] ;
58+ lastRoll . properties . vs2 = item . properties . vs2 ?? item . values [ 2 ] ;
5159 renderProgress ( moveNode , item ) ;
5260 break ;
5361 }
@@ -123,8 +131,8 @@ async function renderAdd(
123131
124132function renderMeter ( moveNode : HTMLElement , meter : KdlNode ) {
125133 const name = meter . values [ 0 ] as string ;
126- const from = meter . properties . from as number ;
127- const to = meter . properties . to as number ;
134+ const from = ( meter . properties . from ?? meter . values [ 1 ] ) as number ;
135+ const to = ( meter . properties . to ?? meter . values [ 2 ] ) as number ;
128136 const delta = to - from ;
129137 const neg = delta < 0 ;
130138 renderDlist ( moveNode , "meter" , {
@@ -143,9 +151,17 @@ function renderBurn(
143151 burn : KdlNode ,
144152 lastRoll : KdlNode | undefined ,
145153) {
154+ const from = Math . max (
155+ - 6 ,
156+ Math . min ( ( burn . properties . from ?? burn . values [ 0 ] ) as number , 10 ) ,
157+ ) ;
158+ const to = Math . max (
159+ - 6 ,
160+ Math . min ( ( burn . properties . to ?? burn . values [ 1 ] ) as number , 10 ) ,
161+ ) ;
146162 const def : DataList = {
147- From : { cls : "from" , value : burn . properties . from } ,
148- To : { cls : "to" , value : burn . properties . to } ,
163+ From : { cls : "from" , value : from } ,
164+ To : { cls : "to" , value : to } ,
149165 } ;
150166 let nodeCls = "burn" ;
151167 if ( lastRoll && lastRoll . name === "progress-roll" ) {
@@ -155,10 +171,9 @@ function renderBurn(
155171 } ) ;
156172 return ;
157173 } else if ( lastRoll ) {
158- const newScore = Math . min ( burn . properties . from as number , 10 ) ;
159174 const vs1 = lastRoll . properties . vs1 as number ;
160175 const vs2 = lastRoll . properties . vs2 as number ;
161- def [ "New Score" ] = { cls : "score" , value : newScore } ;
176+ def [ "New Score" ] = { cls : "score" , value : to } ;
162177 def [ "Challenge Die 1" ] = {
163178 cls : "challenge-die" ,
164179 value : vs1 ,
@@ -167,7 +182,7 @@ function renderBurn(
167182 cls : "challenge-die" ,
168183 value : vs2 ,
169184 } ;
170- const { cls, text, match } = moveOutcome ( newScore , vs1 , vs2 ) ;
185+ const { cls, text, match } = moveOutcome ( to , vs1 , vs2 ) ;
171186 setMoveHit ( moveNode , cls , match ) ;
172187 def [ "Outcome" ] = { cls : "outcome" , value : text , dataProp : false } ;
173188 nodeCls += " " + cls ;
@@ -176,13 +191,13 @@ function renderBurn(
176191}
177192
178193function renderRoll ( moveNode : HTMLElement , roll : KdlNode ) {
179- const action = roll . properties [ "action" ] as number ;
180194 const statName = roll . values [ 0 ] as string ;
181- const stat = roll . properties . stat as number ;
182- const adds = ( roll . properties . adds as number ) ?? 0 ;
195+ const action = ( roll . properties . action ?? roll . values [ 1 ] ) as number ;
196+ const stat = ( roll . properties . stat ?? roll . values [ 2 ] ) as number ;
197+ const adds = ( roll . properties . adds ?? roll . values [ 3 ] ?? 0 ) as number ;
183198 const score = Math . min ( 10 , action + stat + adds ) ;
184- const challenge1 = roll . properties [ " vs1" ] as number ;
185- const challenge2 = roll . properties [ " vs2" ] as number ;
199+ const challenge1 = ( roll . properties . vs1 ?? roll . values [ 4 ] ) as number ;
200+ const challenge2 = ( roll . properties . vs2 ?? roll . values [ 5 ] ) as number ;
186201 const {
187202 cls : outcomeClass ,
188203 text : outcome ,
@@ -207,9 +222,9 @@ function renderRoll(moveNode: HTMLElement, roll: KdlNode) {
207222}
208223
209224function renderProgress ( moveNode : HTMLElement , roll : KdlNode ) {
210- const score = roll . properties . score as number ;
211- const challenge1 = roll . properties [ " vs1" ] as number ;
212- const challenge2 = roll . properties [ " vs2" ] as number ;
225+ const score = ( roll . properties . score ?? roll . values [ 0 ] ) as number ;
226+ const challenge1 = ( roll . properties . vs1 ?? roll . values [ 1 ] ) as number ;
227+ const challenge2 = ( roll . properties . vs2 ?? roll . values [ 2 ] ) as number ;
213228 const {
214229 cls : outcomeClass ,
215230 text : outcome ,
@@ -233,9 +248,8 @@ function renderDieRoll(moveNode: HTMLElement, roll: KdlNode) {
233248}
234249
235250function renderReroll ( moveNode : HTMLElement , roll : KdlNode , lastRoll : KdlNode ) {
236- const action = lastRoll . properties . action as number | undefined ;
237251 const newScore = Math . min (
238- ( ( roll . properties . action ?? action ) as number ) +
252+ ( ( roll . properties . action ?? lastRoll . properties . action ) as number ) +
239253 ( lastRoll . properties . stat as number ) +
240254 ( ( lastRoll . properties . adds as number ) ?? 0 ) ,
241255 10 ,
@@ -252,8 +266,9 @@ function renderReroll(moveNode: HTMLElement, roll: KdlNode, lastRoll: KdlNode) {
252266 const def : DataList = { } ;
253267 if ( roll . properties . action != null ) {
254268 const newAction = roll . properties . action as number ;
269+ const lastAction = lastRoll . properties . action as number ;
255270 lastRoll . properties . action = newAction ;
256- def [ "Old Action Die" ] = { cls : "action-die from" , value : action ?? 0 } ;
271+ def [ "Old Action Die" ] = { cls : "action-die from" , value : lastAction ?? 0 } ;
257272 def [ "New Action Die" ] = { cls : "action-die to" , value : newAction } ;
258273 }
259274 if ( roll . properties . vs1 != null ) {
0 commit comments